@cardanowall/poe-standard 0.2.0 → 0.4.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/dist/carriage.cjs +1972 -0
- package/dist/carriage.cjs.map +1 -0
- package/dist/carriage.d.cts +55 -0
- package/dist/carriage.d.ts +55 -0
- package/dist/carriage.js +1967 -0
- package/dist/carriage.js.map +1 -0
- package/dist/encoder.cjs +29 -77
- package/dist/encoder.cjs.map +1 -1
- package/dist/encoder.d.cts +10 -0
- package/dist/encoder.d.ts +10 -0
- package/dist/encoder.js +29 -77
- package/dist/encoder.js.map +1 -1
- package/dist/error-codes.cjs +129 -31
- package/dist/error-codes.cjs.map +1 -1
- package/dist/error-codes.d.cts +11 -6
- package/dist/error-codes.d.ts +11 -6
- package/dist/error-codes.js +126 -32
- package/dist/error-codes.js.map +1 -1
- package/dist/index.cjs +1127 -766
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -58
- package/dist/index.d.ts +4 -58
- package/dist/index.js +1116 -761
- package/dist/index.js.map +1 -1
- package/dist/schema.cjs +101 -87
- package/dist/schema.cjs.map +1 -1
- package/dist/schema.d.cts +69 -47
- package/dist/schema.d.ts +69 -47
- package/dist/schema.js +99 -86
- package/dist/schema.js.map +1 -1
- package/dist/validator.cjs +973 -512
- package/dist/validator.cjs.map +1 -1
- package/dist/validator.d.cts +48 -7
- package/dist/validator.d.ts +48 -7
- package/dist/validator.js +973 -513
- package/dist/validator.js.map +1 -1
- package/package.json +8 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/.pnpm/cbor2@2.3.0/node_modules/cbor2/lib/constants.js","../../../node_modules/.pnpm/cbor2@2.3.0/node_modules/cbor2/lib/tag.js","../../../node_modules/.pnpm/cbor2@2.3.0/node_modules/cbor2/lib/box.js","../../../node_modules/.pnpm/cbor2@2.3.0/node_modules/cbor2/lib/utils.js","../../../node_modules/.pnpm/cbor2@2.3.0/node_modules/cbor2/lib/typeEncoderMap.js","../../../node_modules/.pnpm/cbor2@2.3.0/node_modules/cbor2/lib/sorts.js","../../../node_modules/.pnpm/cbor2@2.3.0/node_modules/cbor2/lib/writer.js","../../../node_modules/.pnpm/cbor2@2.3.0/node_modules/cbor2/lib/float.js","../../../node_modules/.pnpm/@cto.af+wtf8@0.0.5/node_modules/@cto.af/wtf8/lib/errors.js","../../../node_modules/.pnpm/@cto.af+wtf8@0.0.5/node_modules/@cto.af/wtf8/lib/const.js","../../../node_modules/.pnpm/@cto.af+wtf8@0.0.5/node_modules/@cto.af/wtf8/lib/decode.js","../../../node_modules/.pnpm/@cto.af+wtf8@0.0.5/node_modules/@cto.af/wtf8/lib/encode.js","../../../node_modules/.pnpm/cbor2@2.3.0/node_modules/cbor2/lib/encoder.js","../../../node_modules/.pnpm/cbor2@2.3.0/node_modules/cbor2/lib/options.js","../../../node_modules/.pnpm/cbor2@2.3.0/node_modules/cbor2/lib/simple.js","../../../node_modules/.pnpm/cbor2@2.3.0/node_modules/cbor2/lib/decodeStream.js","../../../node_modules/.pnpm/cbor2@2.3.0/node_modules/cbor2/lib/container.js","../../../node_modules/.pnpm/cbor2@2.3.0/node_modules/cbor2/lib/diagnostic.js","../../../node_modules/.pnpm/cbor2@2.3.0/node_modules/cbor2/lib/comment.js","../../../node_modules/.pnpm/cbor2@2.3.0/node_modules/cbor2/lib/types.js","../../../node_modules/.pnpm/cbor2@2.3.0/node_modules/cbor2/lib/decoder.js","../../../node_modules/.pnpm/cbor2@2.3.0/node_modules/cbor2/lib/index.js","../../crypto-core/src/cbor/errors.ts","../../crypto-core/src/cbor/canonical.ts","../src/error-codes.ts","../src/carriage.ts"],"names":["o","e","t","n","f","r","a","s","A","d","u","c","l","b","I","g","p","S","x","U","h","B","k","F","y","N","m","O","Z","R","v","T","H","$","w","L","q","E","_"],"mappings":"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","file":"carriage.cjs","sourcesContent":["const f={POS_INT:0,NEG_INT:1,BYTE_STRING:2,UTF8_STRING:3,ARRAY:4,MAP:5,TAG:6,SIMPLE_FLOAT:7},T={DATE_STRING:0,DATE_EPOCH:1,POS_BIGINT:2,NEG_BIGINT:3,DECIMAL_FRAC:4,BIGFLOAT:5,BASE64URL_EXPECTED:21,BASE64_EXPECTED:22,BASE16_EXPECTED:23,CBOR:24,URI:32,BASE64URL:33,BASE64:34,MIME:36,DATE_EPOCH_DAYS:100,SET:258,JSON:262,WTF8:273,SYMBOL:280,DATE_FULL:1004,REGEXP:21066,SELF_DESCRIBED:55799,INVALID_16:65535,INVALID_32:4294967295,INVALID_64:0xffffffffffffffffn},I={ZERO:0,ONE:24,TWO:25,FOUR:26,EIGHT:27,INDEFINITE:31},o={FALSE:20,TRUE:21,NULL:22,UNDEFINED:23};class A{static BREAK=Symbol.for(\"github.com/hildjj/cbor2/break\");static ENCODED=Symbol.for(\"github.com/hildjj/cbor2/cbor-encoded\");static LENGTH=Symbol.for(\"github.com/hildjj/cbor2/length\")}const S={MIN:-(2n**63n),MAX:2n**64n-1n};export{S as DCBOR_INT,f as MT,I as NUMBYTES,o as SIMPLE,A as SYMS,T as TAG};\n","class o{static#e=new Map;tag;contents;constructor(e,t=void 0){this.tag=e,this.contents=t}get noChildren(){return!!o.#e.get(this.tag)?.noChildren}static registerDecoder(e,t,n){const i=this.#e.get(e);return this.#e.set(e,t),i&&(\"comment\"in t||(t.comment=i.comment),\"noChildren\"in t||(t.noChildren=i.noChildren)),n&&!t.comment&&(t.comment=()=>`(${n})`),i}static clearDecoder(e){const t=this.#e.get(e);return this.#e.delete(e),t}static getDecoder(e){return this.#e.get(e)}static getAllDecoders(){return new Map(this.#e)}*[Symbol.iterator](){yield this.contents}push(e){return this.contents=e,1}decode(e){const t=e?.tags?.get(this.tag)??(e?.ignoreGlobalTags?void 0:o.#e.get(this.tag));return t?t(this,e):this}comment(e,t){const n=e?.tags?.get(this.tag)??(e?.ignoreGlobalTags?void 0:o.#e.get(this.tag));if(n?.comment)return n.comment(this,e,t)}toCBOR(){return[this.tag,this.contents]}[Symbol.for(\"nodejs.util.inspect.custom\")](e,t,n){return`${this.tag}(${n(this.contents,t)})`}}export{o as Tag};\n","import{SYMS as i}from\"./constants.js\";import{Tag as o}from\"./tag.js\";function f(n){if(n!=null&&typeof n==\"object\")return n[i.ENCODED]}function s(n){if(n!=null&&typeof n==\"object\")return n[i.LENGTH]}function u(n,e){Object.defineProperty(n,i.ENCODED,{configurable:!0,enumerable:!1,value:e})}function l(n,e){Object.defineProperty(n,i.LENGTH,{configurable:!0,enumerable:!1,value:e})}function d(n,e){const r=Object(n);return u(r,e),r}function t(n){if(!n||typeof n!=\"object\")return n;switch(n.constructor){case BigInt:case Boolean:case Number:case String:case Symbol:return n.valueOf();case Array:return n.map(e=>t(e));case Map:{const e=t([...n.entries()]);return e.every(([r])=>typeof r==\"string\")?Object.fromEntries(e):new Map(e)}case o:return new o(t(n.tag),t(n.contents));case Object:{const e={};for(const[r,a]of Object.entries(n))e[r]=t(a);return e}}return n}export{d as box,f as getEncoded,s as getEncodedLength,u as saveEncoded,l as saveEncodedLength,t as unbox};\n","const g=Symbol(\"CBOR_RANGES\");function c(r,n){Object.defineProperty(r,g,{configurable:!1,enumerable:!1,writable:!1,value:n})}function f(r){return r[g]}function l(r){return f(r)!==void 0}function R(r,n=0,t=r.length-1){const o=r.subarray(n,t),a=f(r);if(a){const s=[];for(const e of a)if(e[0]>=n&&e[0]+e[1]<=t){const i=[...e];i[0]-=n,s.push(i)}s.length&&c(o,s)}return o}function b(r){let n=Math.ceil(r.length/2);const t=new Uint8Array(n);n--;for(let o=r.length,a=o-2;o>=0;o=a,a-=2,n--)t[n]=parseInt(r.substring(a,o),16);return t}function A(r){return r.reduce((n,t)=>n+t.toString(16).padStart(2,\"0\"),\"\")}function d(r){const n=r.reduce((e,i)=>e+i.length,0),t=r.some(e=>l(e)),o=[],a=new Uint8Array(n);let s=0;for(const e of r){if(!(e instanceof Uint8Array))throw new TypeError(`Invalid array: ${e}`);if(a.set(e,s),t){const i=e[g]??[[0,e.length]];for(const u of i)u[0]+=s;o.push(...i)}s+=e.length}return t&&c(a,o),a}function y(r){const n=atob(r);return Uint8Array.from(n,t=>t.codePointAt(0))}const p={\"-\":\"+\",_:\"/\"};function x(r){const n=r.replace(/[_-]/g,t=>p[t]);return y(n.padEnd(Math.ceil(n.length/4)*4,\"=\"))}function h(){const r=new Uint8Array(4),n=new Uint32Array(r.buffer);return!((n[0]=1)&r[0])}function U(r){let n=\"\";for(const t of r){const o=t.codePointAt(0)?.toString(16).padStart(4,\"0\");n&&(n+=\", \"),n+=`U+${o}`}return n}export{g as CBOR_RANGES,y as base64ToBytes,x as base64UrlToBytes,f as getRanges,l as hasRanges,b as hexToU8,h as isBigEndian,c as setRanges,U as stringToHex,R as subarrayRanges,d as u8concat,A as u8toHex};\n","class s{#e=new Map;registerEncoder(e,t){const n=this.#e.get(e);return this.#e.set(e,t),n}get(e){return this.#e.get(e)}delete(e){return this.#e.delete(e)}clear(){this.#e.clear()}}export{s as TypeEncoderMap};\n","function f(c,d){const[u,a,n]=c,[l,s,t]=d,r=Math.min(n.length,t.length);for(let o=0;o<r;o++){const e=n[o]-t[o];if(e!==0)return e}return 0}function y(c,d){const[u,a,n]=c,[l,s,t]=d,r=n.length-t.length;if(r!==0)return r;const o=Math.min(n.length,t.length);for(let e=0;e<o;e++){const i=n[e]-t[e];if(i!==0)return i}return 0}export{f as sortCoreDeterministic,y as sortLengthFirstDeterministic};\n","class e{static defaultOptions={chunkSize:4096};#r;#i=[];#s=null;#t=0;#a=0;constructor(t={}){if(this.#r={...e.defaultOptions,...t},this.#r.chunkSize<8)throw new RangeError(`Expected size >= 8, got ${this.#r.chunkSize}`);this.#n()}get length(){return this.#a}read(){this.#o();const t=new Uint8Array(this.#a);let i=0;for(const s of this.#i)t.set(s,i),i+=s.length;return this.#n(),t}write(t){const i=t.length;i>this.#l()?(this.#o(),i>this.#r.chunkSize?(this.#i.push(t),this.#n()):(this.#n(),this.#i[this.#i.length-1].set(t),this.#t=i)):(this.#i[this.#i.length-1].set(t,this.#t),this.#t+=i),this.#a+=i}writeUint8(t){this.#e(1),this.#s.setUint8(this.#t,t),this.#h(1)}writeUint16(t,i=!1){this.#e(2),this.#s.setUint16(this.#t,t,i),this.#h(2)}writeUint32(t,i=!1){this.#e(4),this.#s.setUint32(this.#t,t,i),this.#h(4)}writeBigUint64(t,i=!1){this.#e(8),this.#s.setBigUint64(this.#t,t,i),this.#h(8)}writeInt16(t,i=!1){this.#e(2),this.#s.setInt16(this.#t,t,i),this.#h(2)}writeInt32(t,i=!1){this.#e(4),this.#s.setInt32(this.#t,t,i),this.#h(4)}writeBigInt64(t,i=!1){this.#e(8),this.#s.setBigInt64(this.#t,t,i),this.#h(8)}writeFloat32(t,i=!1){this.#e(4),this.#s.setFloat32(this.#t,t,i),this.#h(4)}writeFloat64(t,i=!1){this.#e(8),this.#s.setFloat64(this.#t,t,i),this.#h(8)}clear(){this.#a=0,this.#i=[],this.#n()}#n(){const t=new Uint8Array(this.#r.chunkSize);this.#i.push(t),this.#t=0,this.#s=new DataView(t.buffer,t.byteOffset,t.byteLength)}#o(){if(this.#t===0){this.#i.pop();return}const t=this.#i.length-1;this.#i[t]=this.#i[t].subarray(0,this.#t),this.#t=0,this.#s=null}#l(){const t=this.#i.length-1;return this.#i[t].length-this.#t}#e(t){this.#l()<t&&(this.#o(),this.#n())}#h(t){this.#t+=t,this.#a+=t}}export{e as Writer};\n","const w=1n<<15n,f=0b11111n<<10n,b=1n<<9n,d=b-1n,I=b|d,g=1n<<31n,l=0b11111111n<<23n,A=1n<<22n,E=A-1n,p=A|E,N=1n<<63n,a=0b11111111111n<<52n,c=1n<<51n,u=c-1n,F=c|u,_=u-(d<<42n),S=u-(E<<29n),m={2:\"0b\",8:\"0o\",16:\"0x\"};var x=(t=>(t[t.NATURAL=-2]=\"NATURAL\",t[t.UNKNOWN=-1]=\"UNKNOWN\",t[t.F16=2]=\"F16\",t[t.F32=4]=\"F32\",t[t.F64=8]=\"F64\",t))(x||{});function U(i,n,e,r){let o=\"nan'\";return i.quiet||(o+=\"!\"),i.sign===-1&&(o+=\"-\"),o+=r(Math.abs(i.payload),e),o+=\"'\",o+=i.encodingIndicator,o}class O extends Number{#n;#t=-1;constructor(n,e=!0,r=-1){super(NaN);const o=n;if(typeof n==\"number\"){if(!Number.isSafeInteger(n))throw new Error(`Invalid NAN payload: ${n}`);n=BigInt(n);let t=0n;if(n<0&&(t=N,n=-n),n>=c)throw new Error(`Payload too large: ${o}`);const s=e?c:0n;switch(this.#n=t|a|s|n,r){case-2:throw new Error(\"NAN_SIZE.NATURAL only valid for bigint constructor\");case-1:r=this.preferredSize;break;case 2:if(this.#n&_)throw new Error(\"Invalid size for payload\");break;case 4:if(this.#n&S)throw new Error(\"Invalid size for payload\");break;case 8:break;default:throw new Error(`Invalid size: ${r}`)}this.#t=r}else if(typeof n==\"bigint\"){let t=-1;if((n&a)===a)this.#n=n,t=8;else if((n&l)===l){const s=(n&g)<<32n;this.#n=s|a|(n&p)<<29n,t=4}else if((n&f)===f){const s=(n&w)<<48n;this.#n=s|a|(n&I)<<42n,t=2}else throw new Error(`Invalid raw NaN value: ${n}`);if(r===-1)this.#t=this.preferredSize;else if(r===-2)this.#t=t;else{if(r<t)throw new Error(\"Invalid bigint NaN size\");this.#t=r}}else{const t=new DataView(n.buffer,n.byteOffset,n.byteLength);switch(n.length){case 3:{if(n[0]!==249)throw new Error(\"Invalid CBOR encoding for half float\");const s=BigInt(t.getUint16(1,!1));if((s&f)!==f)throw new Error(\"Not a NaN\");const h=(s&w)<<48n;this.#n=h|a|(s&I)<<42n,this.#t=2;break}case 5:{if(n[0]!==250)throw new Error(\"Invalid CBOR encoding for single float\");const s=BigInt(t.getUint32(1,!1));if((s&l)!==l)throw new Error(\"Not a NaN\");const h=(s&g)<<32n;this.#n=h|a|(s&p)<<29n,this.#t=4;break}case 9:{if(n[0]!==251)throw new Error(\"Invalid CBOR encoding for double float\");if(this.#n=t.getBigUint64(1,!1),(this.#n&a)!==a)throw new Error(\"Not a NaN (NaNaN)\");this.#t=8;break}default:throw new RangeError(`Invalid NAN size (should be 2, 4, or 8): ${n.length-1}`)}}if(!this.payload&&!this.quiet)throw new Error(\"Signalling NaN with zero payload\")}get bytes(){const n=new ArrayBuffer(this.#t+1),e=new DataView(n);switch(this.#t){case 2:{e.setUint8(0,249);const o=(this.#n&N?w:0n)|f|(this.#n&F)>>42n;e.setUint16(1,Number(o),!1);break}case 4:{e.setUint8(0,250);const o=(this.#n&N?g:0n)|l|(this.#n&F)>>29n;e.setUint32(1,Number(o),!1);break}case 8:e.setUint8(0,251),e.setBigUint64(1,this.#n);break}return new Uint8Array(n)}get quiet(){return!!(this.#n&c)}get sign(){return this.#n&N?-1:1}get payload(){return Number(this.#n&u)*this.sign}get raw(){return this.#n}get encodingIndicator(){switch(this.#t){case 2:return\"_1\";case 4:return\"_2\"}return\"_3\"}get size(){return this.#t}get preferredSize(){return(this.#n&_)===0n?2:(this.#n&S)===0n?4:8}get isShortestEncoding(){return this.preferredSize===this.#t}toCBOR(n){n.write(this.bytes)}toString(n=10){return U(this,1,{},e=>(m[n]??\"\")+e.toString(n))}[Symbol.for(\"nodejs.util.inspect.custom\")](n,e,r){return U(this,n,e,r)}}function v(i,n=0,e=!1){const r=i[n]&128?-1:1,o=(i[n]&124)>>2,t=(i[n]&3)<<8|i[n+1];if(o===0){if(e&&t!==0)throw new Error(`Unwanted subnormal: ${r*5960464477539063e-23*t}`);return r*5960464477539063e-23*t}else if(o===31)return t?NaN:r*(1/0);return r*2**(o-25)*(1024+t)}function Z(i){const n=new DataView(new ArrayBuffer(4));n.setFloat32(0,i,!1);const e=n.getUint32(0,!1);if((e&8191)!==0)return null;let r=e>>16&32768;const o=e>>23&255,t=e&8388607;if(!(o===0&&t===0))if(o>=113&&o<=142)r+=(o-112<<10)+(t>>13);else if(o>=103&&o<113){if(t&(1<<126-o)-1)return null;r+=t+8388608>>126-o}else if(o===255)r|=31744,r|=t>>13;else return null;return r}function k(i){if(i!==0){const n=new ArrayBuffer(8),e=new DataView(n);e.setFloat64(0,i,!1);const r=e.getBigUint64(0,!1);if((r&0x7ff0000000000000n)===0n)return r&0x8000000000000000n?-0:0}return i}function B(i){switch(i.length){case 2:v(i,0,!0);break;case 4:{const n=new DataView(i.buffer,i.byteOffset,i.byteLength),e=n.getUint32(0,!1);if((e&2139095040)===0&&e&8388607)throw new Error(`Unwanted subnormal: ${n.getFloat32(0,!1)}`);break}case 8:{const n=new DataView(i.buffer,i.byteOffset,i.byteLength),e=n.getBigUint64(0,!1);if((e&0x7ff0000000000000n)===0n&&e&0x000fffffffffffn)throw new Error(`Unwanted subnormal: ${n.getFloat64(0,!1)}`);break}default:throw new TypeError(`Bad input to isSubnormal: ${i}`)}}export{O as NAN,x as NAN_SIZE,B as checkSubnormal,k as flushToZero,Z as halfToUint,v as parseHalf};\n","export class DecodeError extends TypeError {\n code = 'ERR_ENCODING_INVALID_ENCODED_DATA';\n constructor() {\n super('The encoded data was not valid for encoding wtf-8');\n }\n}\nexport class InvalidEncodingError extends RangeError {\n code = 'ERR_ENCODING_NOT_SUPPORTED';\n constructor(label) {\n super(`Invalid encoding: \"${label}\"`);\n }\n}\n","export const BOM = 0xfeff;\nexport const EMPTY = new Uint8Array(0);\nexport const MAX_HIGH_SURROGATE = 0xdbff;\nexport const MAX_LOW_SURROGATE = 0xdfff;\nexport const MIN_HIGH_SURROGATE = 0xd800;\nexport const MIN_LOW_SURROGATE = 0xdc00;\nexport const REPLACEMENT = 0xfffd;\nexport const WTF8 = 'wtf-8';\n","import { BOM, EMPTY, MIN_HIGH_SURROGATE, MIN_LOW_SURROGATE, REPLACEMENT, WTF8, } from './const.js';\nimport { DecodeError, InvalidEncodingError } from './errors.js';\nfunction isArrayBufferView(input) {\n return (input &&\n (typeof input === 'object') &&\n !(input instanceof ArrayBuffer) &&\n !(input instanceof SharedArrayBuffer) &&\n input.buffer instanceof ArrayBuffer);\n}\nfunction getUint8(input) {\n if (!input) {\n return EMPTY;\n }\n if (input instanceof Uint8Array) {\n return input;\n }\n if (isArrayBufferView(input)) {\n return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n }\n return new Uint8Array(input);\n}\nconst REMAINDER = [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n -1,\n -1,\n -1,\n -1,\n 1,\n 1,\n 2,\n 3,\n];\nexport class Wtf8Decoder {\n static DEFAULT_BUFFERSIZE = 0x1000;\n encoding = WTF8;\n fatal;\n ignoreBOM;\n bufferSize;\n #left = 0;\n #cur = 0;\n #pending = 0;\n #first = true;\n #buf;\n constructor(label = 'wtf8', options = undefined) {\n if (label.toLowerCase().replace('-', '') !== 'wtf8') {\n throw new InvalidEncodingError(label);\n }\n this.fatal = Boolean(options?.fatal);\n this.ignoreBOM = Boolean(options?.ignoreBOM);\n this.bufferSize = Math.floor(options?.bufferSize ?? Wtf8Decoder.DEFAULT_BUFFERSIZE);\n if (isNaN(this.bufferSize) || (this.bufferSize < 1)) {\n throw new RangeError(`Invalid buffer size: ${options?.bufferSize}`);\n }\n this.#buf = new Uint16Array(this.bufferSize);\n }\n decode(input, options) {\n const streaming = Boolean(options?.stream);\n const bytes = getUint8(input);\n const res = [];\n const out = this.#buf;\n const maxSize = this.bufferSize - 3;\n let pos = 0;\n const fatal = () => {\n this.#cur = 0;\n this.#left = 0;\n this.#pending = 0;\n if (this.fatal) {\n throw new DecodeError();\n }\n out[pos++] = REPLACEMENT;\n };\n const fatals = () => {\n const p = this.#pending;\n for (let i = 0; i < p; i++) {\n fatal();\n }\n };\n const oneByte = (b) => {\n if (this.#left === 0) {\n const n = REMAINDER[b >> 4];\n switch (n) {\n case -1:\n fatal();\n break;\n case 0:\n out[pos++] = b;\n break;\n case 1:\n this.#cur = b & 0x1f;\n if ((this.#cur & 0x1e) === 0) {\n fatal();\n }\n else {\n this.#left = 1;\n this.#pending = 1;\n }\n break;\n case 2:\n this.#cur = b & 0x0f;\n this.#left = 2;\n this.#pending = 1;\n break;\n case 3:\n if (b & 0x08) {\n fatal();\n }\n else {\n this.#cur = b & 0x07;\n this.#left = 3;\n this.#pending = 1;\n }\n break;\n }\n }\n else {\n if ((b & 0xc0) !== 0x80) {\n fatals();\n return oneByte(b);\n }\n if ((this.#pending === 1) &&\n (this.#left === 2) &&\n (this.#cur === 0) &&\n ((b & 0x20) === 0)) {\n fatals();\n return oneByte(b);\n }\n if ((this.#left === 3) && (this.#cur === 0) && ((b & 0x30) === 0)) {\n fatals();\n return oneByte(b);\n }\n this.#cur = (this.#cur << 6) | (b & 0x3f);\n this.#pending++;\n if (--this.#left === 0) {\n if (this.ignoreBOM || !this.#first || (this.#cur !== BOM)) {\n if (this.#cur < 0x10000) {\n out[pos++] = this.#cur;\n }\n else {\n const cp = this.#cur - 0x10000;\n out[pos++] = ((cp >>> 10) & 0x3ff) | MIN_HIGH_SURROGATE;\n out[pos++] = (cp & 0x3ff) | MIN_LOW_SURROGATE;\n }\n }\n this.#cur = 0;\n this.#pending = 0;\n this.#first = false;\n }\n }\n };\n for (const b of bytes) {\n if (pos >= maxSize) {\n res.push(String.fromCharCode.apply(null, out.subarray(0, pos)));\n pos = 0;\n }\n oneByte(b);\n }\n if (!streaming) {\n this.#first = true;\n if (this.#cur || this.#left) {\n fatals();\n }\n }\n if (pos > 0) {\n res.push(String.fromCharCode.apply(null, out.subarray(0, pos)));\n }\n return res.join('');\n }\n}\n","import { EMPTY, WTF8 } from './const.js';\nfunction utf8length(str) {\n let len = 0;\n for (const s of str) {\n const cp = s.codePointAt(0);\n if (cp < 0x80) {\n len++;\n }\n else if (cp < 0x800) {\n len += 2;\n }\n else if (cp < 0x10000) {\n len += 3;\n }\n else {\n len += 4;\n }\n }\n return len;\n}\nexport class Wtf8Encoder {\n encoding = WTF8;\n encode(input) {\n if (!input) {\n return EMPTY;\n }\n const buf = new Uint8Array(utf8length(String(input)));\n this.encodeInto(input, buf);\n return buf;\n }\n encodeInto(source, destination) {\n const str = String(source);\n const len = str.length;\n const outLen = destination.length;\n let written = 0;\n let read = 0;\n for (read = 0; read < len; read++) {\n const c = str.codePointAt(read);\n if (c < 0x80) {\n if (written >= outLen) {\n break;\n }\n destination[written++] = c;\n }\n else if (c < 0x800) {\n if (written >= outLen - 1) {\n break;\n }\n destination[written++] = 0xc0 | (c >> 6);\n destination[written++] = 0x80 | (c & 0x3f);\n }\n else if (c < 0x10000) {\n if (written >= outLen - 2) {\n break;\n }\n destination[written++] = 0xe0 | (c >> 12);\n destination[written++] = 0x80 | ((c >> 6) & 0x3f);\n destination[written++] = 0x80 | (c & 0x3f);\n }\n else {\n if (written >= outLen - 3) {\n break;\n }\n destination[written++] = 0xf0 | (c >> 18);\n destination[written++] = 0x80 | ((c >> 12) & 0x3f);\n destination[written++] = 0x80 | ((c >> 6) & 0x3f);\n destination[written++] = 0x80 | (c & 0x3f);\n read++;\n }\n }\n return {\n read,\n written,\n };\n }\n}\n","import{TypeEncoderMap as _}from\"./typeEncoderMap.js\";import{DCBOR_INT as x,MT as f,NUMBYTES as d,SIMPLE as T,SYMS as E,TAG as p}from\"./constants.js\";import{sortCoreDeterministic as G}from\"./sorts.js\";import{Writer as I}from\"./writer.js\";import{box as C,getEncodedLength as D}from\"./box.js\";import{flushToZero as W,halfToUint as S}from\"./float.js\";import{Wtf8Encoder as M}from\"@cto.af/wtf8\";import{hexToU8 as P}from\"./utils.js\";const{ENCODED:ce}=E,U=f.SIMPLE_FLOAT<<5|d.TWO,h=f.SIMPLE_FLOAT<<5|d.FOUR,B=f.SIMPLE_FLOAT<<5|d.EIGHT,j=f.SIMPLE_FLOAT<<5|T.TRUE,q=f.SIMPLE_FLOAT<<5|T.FALSE,$=f.SIMPLE_FLOAT<<5|T.UNDEFINED,z=f.SIMPLE_FLOAT<<5|T.NULL,H=new TextEncoder,K=new M,k={...I.defaultOptions,avoidInts:!1,cde:!1,collapseBigInts:!0,dateTag:p.DATE_EPOCH,dcbor:!1,float64:!1,flushToZero:!1,forceEndian:null,ignoreOriginalEncoding:!1,largeNegativeAsBigInt:!1,reduceUnsafeNumbers:!1,rejectBigInts:!1,rejectCustomSimples:!1,rejectDuplicateKeys:!1,rejectFloats:!1,rejectUndefined:!1,simplifyNegativeZero:!1,sortKeys:null,stringNormalization:null,types:null,wtf8:!1,ignoreGlobalTags:!1},F={cde:!0,ignoreOriginalEncoding:!0,sortKeys:G},Y={...F,dcbor:!0,largeNegativeAsBigInt:!0,reduceUnsafeNumbers:!0,rejectCustomSimples:!0,rejectDuplicateKeys:!0,rejectUndefined:!0,simplifyNegativeZero:!0,stringNormalization:\"NFC\"};function y(e){const n=e<0;return typeof e==\"bigint\"?[n?-e-1n:e,n]:[n?-e-1:e,n]}function N(e,n,i){if(i.rejectFloats)throw new Error(`Attempt to encode an unwanted floating point number: ${e}`);if(isNaN(e))n.writeUint8(U),n.writeUint16(32256);else if(!i.float64&&Math.fround(e)===e){const r=S(e);r===null?(n.writeUint8(h),n.writeFloat32(e)):(n.writeUint8(U),n.writeUint16(r))}else n.writeUint8(B),n.writeFloat64(e)}function a(e,n,i){const[r,t]=y(e);if(t&&i)throw new TypeError(`Negative size: ${e}`);i??=t?f.NEG_INT:f.POS_INT,i<<=5,r<24?n.writeUint8(i|r):r<=255?(n.writeUint8(i|d.ONE),n.writeUint8(r)):r<=65535?(n.writeUint8(i|d.TWO),n.writeUint16(r)):r<=4294967295?(n.writeUint8(i|d.FOUR),n.writeUint32(r)):(n.writeUint8(i|d.EIGHT),n.writeBigUint64(BigInt(r)))}function m(e,n,i){typeof e==\"number\"?a(e,n,f.TAG):typeof e==\"object\"&&!i.ignoreOriginalEncoding&&E.ENCODED in e?n.write(e[E.ENCODED]):e<=Number.MAX_SAFE_INTEGER?a(Number(e),n,f.TAG):(n.writeUint8(f.TAG<<5|d.EIGHT),n.writeBigUint64(BigInt(e)))}function O(e,n,i){const[r,t]=y(e);if(i.collapseBigInts&&(!i.largeNegativeAsBigInt||e>=-0x8000000000000000n)){if(r<=0xffffffffn){a(Number(e),n);return}if(r<=0xffffffffffffffffn){const l=(t?f.NEG_INT:f.POS_INT)<<5;n.writeUint8(l|d.EIGHT),n.writeBigUint64(r);return}}if(i.rejectBigInts)throw new Error(`Attempt to encode unwanted bigint: ${e}`);const o=t?p.NEG_BIGINT:p.POS_BIGINT,c=r.toString(16),s=c.length%2?\"0\":\"\";m(o,n,i);const u=P(s+c);a(u.length,n,f.BYTE_STRING),n.write(u)}function Z(e,n,i){i.flushToZero&&(e=W(e)),Object.is(e,-0)?i.simplifyNegativeZero?i.avoidInts?N(0,n,i):a(0,n):N(e,n,i):!i.avoidInts&&Number.isSafeInteger(e)?a(e,n):i.reduceUnsafeNumbers&&Math.floor(e)===e&&e>=x.MIN&&e<=x.MAX?O(BigInt(e),n,i):N(e,n,i)}function R(e,n,i){const r=i.stringNormalization?e.normalize(i.stringNormalization):e;if(i.wtf8&&!e.isWellFormed()){const t=K.encode(r);m(p.WTF8,n,i),a(t.length,n,f.BYTE_STRING),n.write(t)}else{const t=H.encode(r);a(t.length,n,f.UTF8_STRING),n.write(t)}}function J(e,n,i){const r=e;L(r,r.length,f.ARRAY,n,i);for(const t of r)g(t,n,i)}function V(e,n){a(e.length,n,f.BYTE_STRING),n.write(e)}const b=new _;b.registerEncoder(Array,J),b.registerEncoder(Uint8Array,V);function ue(e,n){return b.registerEncoder(e,n)}function de(e){const n=b.get(e);return b.delete(e),n}function L(e,n,i,r,t){const o=D(e);o&&!t.ignoreOriginalEncoding?r.write(o):a(n,r,i)}function X(e,n,i){if(e===null){n.writeUint8(z);return}if(!i.ignoreOriginalEncoding&&E.ENCODED in e){n.write(e[E.ENCODED]);return}const r=e.constructor;if(r){const o=i.types?.get(r)??(i.ignoreGlobalTags?void 0:b.get(r));if(o){const c=o(e,n,i);if(c!==void 0){if(!Array.isArray(c)||c.length!==2)throw new Error(\"Invalid encoder return value\");(typeof c[0]==\"bigint\"||isFinite(Number(c[0])))&&m(c[0],n,i),g(c[1],n,i)}return}}if(typeof e.toCBOR==\"function\"){const o=e.toCBOR(n,i);o&&((typeof o[0]==\"bigint\"||isFinite(Number(o[0])))&&m(o[0],n,i),g(o[1],n,i));return}if(typeof e.toJSON==\"function\"){g(e.toJSON(),n,i);return}const t=Object.entries(e).map(o=>[o[0],o[1],v(o[0],i)]);i.sortKeys&&t.sort(i.sortKeys),L(e,t.length,f.MAP,n,i);for(const[o,c,s]of t)n.write(s),g(c,n,i)}function Q(e,n,i){if(!e.description||e!==Symbol.for(e.description))throw new TypeError(`Private or empty symbol: ${e.toString()}`);m(280,n,i),R(e.description,n,i)}function g(e,n,i){switch(typeof e){case\"number\":Z(e,n,i);break;case\"bigint\":O(e,n,i);break;case\"string\":R(e,n,i);break;case\"boolean\":n.writeUint8(e?j:q);break;case\"undefined\":if(i.rejectUndefined)throw new Error(\"Attempt to encode unwanted undefined.\");n.writeUint8($);break;case\"object\":X(e,n,i);break;case\"symbol\":Q(e,n,i);break;default:throw new TypeError(`Unknown type: ${typeof e}, ${String(e)}`)}}function v(e,n={}){const i={...k};n.dcbor?Object.assign(i,Y):n.cde&&Object.assign(i,F),Object.assign(i,n);const r=new I(i);return g(e,r,i),r.read()}function ae(e,n,i=f.POS_INT){n||(n=\"f\");const r={...k,collapseBigInts:!1,chunkSize:10,simplifyNegativeZero:!1},t=new I(r),o=Number(e);function c(s){if(Object.is(e,-0))throw new Error(\"Invalid integer: -0\");const[u,l]=y(e);if(l&&i!==f.POS_INT)throw new Error(\"Invalid major type combination\");const w=typeof s==\"number\"&&isFinite(s);if(w&&!Number.isSafeInteger(o))throw new TypeError(`Unsafe number for ${n}: ${e}`);if(u>s)throw new TypeError(`Undersized encoding ${n} for: ${e}`);const A=(l?f.NEG_INT:i)<<5;return w?[A,Number(u)]:[A,u]}switch(n){case\"bigint\":if(Object.is(e,-0))throw new TypeError(\"Invalid bigint: -0\");e=BigInt(e),O(e,t,r);break;case\"f\":N(o,t,r);break;case\"f16\":{const s=S(o);if(s===null)throw new TypeError(`Invalid f16: ${e}`);t.writeUint8(U),t.writeUint16(s);break}case\"f32\":if(!isNaN(o)&&Math.fround(o)!==o)throw new TypeError(`Invalid f32: ${e}`);t.writeUint8(h),t.writeFloat32(o);break;case\"f64\":t.writeUint8(B),t.writeFloat64(o);break;case\"i\":if(Object.is(e,-0))throw new Error(\"Invalid integer: -0\");if(Number.isSafeInteger(o))a(o,t,e<0?void 0:i);else{const[s,u]=c(1/0);u>0xffffffffffffffffn?(e=BigInt(e),O(e,t,r)):(t.writeUint8(s|d.EIGHT),t.writeBigUint64(BigInt(u)))}break;case\"i0\":{const[s,u]=c(23);t.writeUint8(s|u);break}case\"i8\":{const[s,u]=c(255);t.writeUint8(s|d.ONE),t.writeUint8(u);break}case\"i16\":{const[s,u]=c(65535);t.writeUint8(s|d.TWO),t.writeUint16(u);break}case\"i32\":{const[s,u]=c(4294967295);t.writeUint8(s|d.FOUR),t.writeUint32(u);break}case\"i64\":{const[s,u]=c(0xffffffffffffffffn);t.writeUint8(s|d.EIGHT),t.writeBigUint64(BigInt(u));break}default:throw new TypeError(`Invalid number encoding: \"${n}\"`)}return C(e,t.read())}export{ce as ENCODED,F as cdeEncodeOptions,de as clearEncoder,Y as dcborEncodeOptions,k as defaultEncodeOptions,v as encode,ae as encodedNumber,ue as registerEncoder,J as writeArray,O as writeBigInt,N as writeFloat,a as writeInt,L as writeLength,Z as writeNumber,R as writeString,Q as writeSymbol,m as writeTag,V as writeUint8Array,g as writeUnknown};\n","var o=(e=>(e[e.NEVER=-1]=\"NEVER\",e[e.PREFERRED=0]=\"PREFERRED\",e[e.ALWAYS=1]=\"ALWAYS\",e))(o||{});export{o as DiagnosticSizes};\n","import{MT as u,SIMPLE as n}from\"./constants.js\";import{writeInt as o}from\"./encoder.js\";class t{static KnownSimple=new Map([[n.FALSE,!1],[n.TRUE,!0],[n.NULL,null],[n.UNDEFINED,void 0]]);value;constructor(e){this.value=e}static create(e){return t.KnownSimple.has(e)?t.KnownSimple.get(e):new t(e)}toCBOR(e,i){if(i.rejectCustomSimples)throw new Error(`Cannot encode non-standard Simple value: ${this.value}`);o(this.value,e,u.SIMPLE_FLOAT)}toString(){return`simple(${this.value})`}decode(){return t.KnownSimple.has(this.value)?t.KnownSimple.get(this.value):this}[Symbol.for(\"nodejs.util.inspect.custom\")](e,i,r){return`simple(${r(this.value,i)})`}}export{t as Simple};\n","import{MT as s,NUMBYTES as l,SYMS as d}from\"./constants.js\";import{base64ToBytes as m,hexToU8 as b,subarrayRanges as u}from\"./utils.js\";import{Simple as g}from\"./simple.js\";import{parseHalf as E}from\"./float.js\";const p=new TextDecoder(\"utf8\",{fatal:!0,ignoreBOM:!0});class y{static defaultOptions={maxDepth:1024,encoding:\"hex\",requirePreferred:!1};#t;#r;#e=0;#i;constructor(t,r){if(this.#i={...y.defaultOptions,...r},typeof t==\"string\")switch(this.#i.encoding){case\"hex\":this.#t=b(t);break;case\"base64\":this.#t=m(t);break;default:throw new TypeError(`Encoding not implemented: \"${this.#i.encoding}\"`)}else this.#t=t;this.#r=new DataView(this.#t.buffer,this.#t.byteOffset,this.#t.byteLength)}toHere(t){return u(this.#t,t,this.#e)}*[Symbol.iterator](){if(yield*this.#n(0),this.#e!==this.#t.length)throw new Error(\"Extra data in input\")}*seq(){for(;this.#e<this.#t.length;)yield*this.#n(0)}*#n(t){if(t++>this.#i.maxDepth)throw new Error(`Maximum depth ${this.#i.maxDepth} exceeded`);const r=this.#e,c=this.#r.getUint8(this.#e++),i=c>>5,n=c&31;let e=n,f=!1,a=0;switch(n){case l.ONE:if(a=1,e=this.#r.getUint8(this.#e),i===s.SIMPLE_FLOAT){if(e<32)throw new Error(`Invalid simple encoding in extra byte: ${e}`);f=!0}else if(this.#i.requirePreferred&&e<24)throw new Error(`Unexpectedly long integer encoding (1) for ${e}`);break;case l.TWO:if(a=2,i===s.SIMPLE_FLOAT)e=E(this.#t,this.#e);else if(e=this.#r.getUint16(this.#e,!1),this.#i.requirePreferred&&e<=255)throw new Error(`Unexpectedly long integer encoding (2) for ${e}`);break;case l.FOUR:if(a=4,i===s.SIMPLE_FLOAT)e=this.#r.getFloat32(this.#e,!1);else if(e=this.#r.getUint32(this.#e,!1),this.#i.requirePreferred&&e<=65535)throw new Error(`Unexpectedly long integer encoding (4) for ${e}`);break;case l.EIGHT:{if(a=8,i===s.SIMPLE_FLOAT)e=this.#r.getFloat64(this.#e,!1);else if(e=this.#r.getBigUint64(this.#e,!1),e<=Number.MAX_SAFE_INTEGER&&(e=Number(e)),this.#i.requirePreferred&&e<=4294967295)throw new Error(`Unexpectedly long integer encoding (8) for ${e}`);break}case 28:case 29:case 30:throw new Error(`Additional info not implemented: ${n}`);case l.INDEFINITE:switch(i){case s.POS_INT:case s.NEG_INT:case s.TAG:throw new Error(`Invalid indefinite encoding for MT ${i}`);case s.SIMPLE_FLOAT:yield[i,n,d.BREAK,r,0];return}e=1/0;break;default:f=!0}switch(this.#e+=a,i){case s.POS_INT:yield[i,n,e,r,a];break;case s.NEG_INT:yield[i,n,typeof e==\"bigint\"?-1n-e:-1-Number(e),r,a];break;case s.BYTE_STRING:e===1/0?yield*this.#s(i,t,r):yield[i,n,this.#a(e),r,e];break;case s.UTF8_STRING:e===1/0?yield*this.#s(i,t,r):yield[i,n,p.decode(this.#a(e)),r,e];break;case s.ARRAY:if(e===1/0)yield*this.#s(i,t,r,!1);else{const o=Number(e);yield[i,n,o,r,a];for(let h=0;h<o;h++)yield*this.#n(t+1)}break;case s.MAP:if(e===1/0)yield*this.#s(i,t,r,!1);else{const o=Number(e);yield[i,n,o,r,a];for(let h=0;h<o;h++)yield*this.#n(t),yield*this.#n(t)}break;case s.TAG:yield[i,n,e,r,a],yield*this.#n(t);break;case s.SIMPLE_FLOAT:{const o=e;f&&(e=g.create(Number(e))),yield[i,n,e,r,o];break}}}#a(t){const r=u(this.#t,this.#e,this.#e+=t);if(r.length!==t)throw new Error(`Unexpected end of stream reading ${t} bytes, got ${r.length}`);return r}*#s(t,r,c,i=!0){for(yield[t,l.INDEFINITE,1/0,c,1/0];;){const n=this.#n(r),e=n.next(),[f,a,o]=e.value;if(o===d.BREAK){yield e.value,n.next();return}if(i){if(f!==t)throw new Error(`Unmatched major type. Expected ${t}, got ${f}.`);if(a===l.INDEFINITE)throw new Error(\"New stream started in typed stream\")}yield e.value,yield*n}}}export{y as DecodeStream};\n","import{DCBOR_INT as g,MT as a,NUMBYTES as l}from\"./constants.js\";import{DiagnosticSizes as N}from\"./options.js\";import{sortCoreDeterministic as j}from\"./sorts.js\";import{NAN as E,checkSubnormal as I}from\"./float.js\";import{box as d,getEncoded as b,saveEncoded as T}from\"./box.js\";import{defaultEncodeOptions as S,encode as O}from\"./encoder.js\";import{stringToHex as p,u8concat as D,u8toHex as m}from\"./utils.js\";import{DecodeStream as v}from\"./decodeStream.js\";import{Simple as k}from\"./simple.js\";import{Tag as w}from\"./tag.js\";const A=new Map([[l.ZERO,1],[l.ONE,2],[l.TWO,3],[l.FOUR,5],[l.EIGHT,9]]),R=new Uint8Array(0);function F(h,r){return!r.boxed&&!r.preferMap&&h.every(([i])=>typeof i==\"string\")?Object.fromEntries(h):new Map(h)}class y{static defaultDecodeOptions={...v.defaultOptions,ParentType:y,boxed:!1,cde:!1,dcbor:!1,diagnosticSizes:N.PREFERRED,collapseBigInts:!1,convertUnsafeIntsToFloat:!1,createObject:F,keepNanPayloads:!1,pretty:!1,preferBigInt:!1,preferMap:!1,rejectLargeNegatives:!1,rejectBigInts:!1,rejectDuplicateKeys:!1,rejectFloats:!1,rejectInts:!1,rejectLongLoundNaN:!1,rejectLongFloats:!1,rejectNegativeZero:!1,rejectSimple:!1,rejectStreaming:!1,rejectStringsNotNormalizedAs:null,rejectSubnormals:!1,rejectUndefined:!1,rejectUnsafeFloatInts:!1,saveOriginal:!1,sortKeys:null,tags:null,ignoreGlobalTags:!1};static cdeDecodeOptions={cde:!0,rejectStreaming:!0,requirePreferred:!0,sortKeys:j};static dcborDecodeOptions={...this.cdeDecodeOptions,dcbor:!0,convertUnsafeIntsToFloat:!0,rejectDuplicateKeys:!0,rejectLargeNegatives:!0,rejectLongLoundNaN:!0,rejectLongFloats:!0,rejectNegativeZero:!0,rejectSimple:!0,rejectUndefined:!0,rejectUnsafeFloatInts:!0,rejectStringsNotNormalizedAs:\"NFC\"};parent;mt;ai;left;offset;count=0;children=[];depth=0;#e;#t=null;constructor(r,i,e,t){if([this.mt,this.ai,,this.offset]=r,this.left=i,this.parent=e,this.#e=t,e&&(this.depth=e.depth+1),this.mt===a.MAP&&(this.#e.sortKeys||this.#e.rejectDuplicateKeys)&&(this.#t=[]),this.#e.rejectStreaming&&this.ai===l.INDEFINITE)throw new Error(\"Streaming not supported\")}get isStreaming(){return this.left===1/0}get done(){return this.left===0}static create(r,i,e,t){const[s,u,n,c]=r;switch(s){case a.POS_INT:case a.NEG_INT:{if(e.rejectInts)throw new Error(`Unexpected integer: ${n}`);if(e.rejectLargeNegatives&&n<-0x8000000000000000n)throw new Error(`Invalid 65bit negative number: ${n}`);let o=n;return e.preferBigInt?o=BigInt(o):e.convertUnsafeIntsToFloat&&o>=g.MIN&&o<=g.MAX&&(o=Number(n)),e.boxed?d(o,t.toHere(c)):o}case a.SIMPLE_FLOAT:if(u>l.ONE){if(typeof n==\"symbol\")return n;if(e.rejectFloats)throw new Error(`Decoding unwanted floating point number: ${n}`);if(e.rejectNegativeZero&&Object.is(n,-0))throw new Error(\"Decoding negative zero\");if(isNaN(n)){const o=t.toHere(c),f=new E(o);if(e.rejectLongLoundNaN){if(f.payload||o.length>3)throw new Error(`Invalid NaN encoding: \"${m(o)}\"`)}else if(e.keepNanPayloads&&(f.payload||f.sign===-1)){if(e.rejectLongFloats&&!f.isShortestEncoding)throw new Error(`NaN should have been encoded shorter: ${n}`);return f}}if(e.rejectSubnormals&&I(t.toHere(c+1)),e.rejectLongFloats){const o=O(n,{chunkSize:9,reduceUnsafeNumbers:e.rejectUnsafeFloatInts});if(o[0]>>5!==s)throw new Error(`Should have been encoded as int, not float: ${n}`);if(o.length<A.get(u))throw new Error(`Number should have been encoded shorter: ${n}`)}if(typeof n==\"number\"&&e.boxed)return d(n,t.toHere(c))}else{if(e.rejectSimple&&n instanceof k)throw new Error(`Invalid simple value: ${n}`);if(e.rejectUndefined&&n===void 0)throw new Error(\"Unexpected undefined\")}return n;case a.BYTE_STRING:case a.UTF8_STRING:if(n===1/0)return new e.ParentType(r,1/0,i,e);if(e.rejectStringsNotNormalizedAs&&typeof n==\"string\"){const o=n.normalize(e.rejectStringsNotNormalizedAs);if(n!==o)throw new Error(`String not normalized as \"${e.rejectStringsNotNormalizedAs}\", got [${p(n)}] instead of [${p(o)}]`)}return e.boxed?d(n,t.toHere(c)):n;case a.ARRAY:return new e.ParentType(r,n,i,e);case a.MAP:return new e.ParentType(r,n*2,i,e);case a.TAG:{const o=new e.ParentType(r,1,i,e);return o.children=new w(n),o}}throw new TypeError(`Invalid major type: ${s}`)}static decodeToEncodeOpts(r){return{...S,avoidInts:r.rejectInts,float64:!r.rejectLongFloats,flushToZero:r.rejectSubnormals,largeNegativeAsBigInt:r.rejectLargeNegatives,sortKeys:r.sortKeys}}push(r,i,e){if(this.children.push(r),this.#t){const t=b(r)||i.toHere(e);this.#t.push(t)}return--this.left}replaceLast(r,i,e){let t,s=-1/0;if(this.children instanceof w?(s=0,t=this.children.contents,this.children.contents=r):(s=this.children.length-1,t=this.children[s],this.children[s]=r),this.#t){const u=b(r)||e.toHere(i.offset);this.#t[s]=u}return t}convert(r){let i;switch(this.mt){case a.ARRAY:i=this.children;break;case a.MAP:{const e=this.#r();if(this.#e.sortKeys){let t;for(const s of e){if(t&&this.#e.sortKeys(t,s)>=0)throw new Error(`Duplicate or out of order key: \"0x${s[2]}\"`);t=s}}else if(this.#e.rejectDuplicateKeys){const t=new Set;for(const[s,u,n]of e){const c=m(n);if(t.has(c))throw new Error(`Duplicate key: \"0x${c}\"`);t.add(c)}}i=this.#e.createObject(e,this.#e);break}case a.BYTE_STRING:return D(this.children);case a.UTF8_STRING:{const e=this.children.join(\"\");i=this.#e.boxed?d(e,r.toHere(this.offset)):e;break}case a.TAG:i=this.children.decode(this.#e);break;default:throw new TypeError(`Invalid mt on convert: ${this.mt}`)}return this.#e.saveOriginal&&i&&typeof i==\"object\"&&T(i,r.toHere(this.offset)),i}#r(){const r=this.children,i=r.length;if(i%2)throw new Error(\"Missing map value\");const e=new Array(i/2);if(this.#t)for(let t=0;t<i;t+=2)e[t>>1]=[r[t],r[t+1],this.#t[t]];else for(let t=0;t<i;t+=2)e[t>>1]=[r[t],r[t+1],R];return e}}export{y as CBORcontainer};\n","import{DiagnosticSizes as b}from\"./options.js\";import{MT as s,NUMBYTES as f,SYMS as d}from\"./constants.js\";import{CBORcontainer as S}from\"./container.js\";import{DecodeStream as E}from\"./decodeStream.js\";import{Simple as N}from\"./simple.js\";import{halfToUint as I}from\"./float.js\";import{u8toHex as _}from\"./utils.js\";const O=\" \",y=new TextEncoder;class g extends S{close=\"\";quote='\"';get isEmptyStream(){return(this.mt===s.UTF8_STRING||this.mt===s.BYTE_STRING)&&this.count===0}}function a(m,l,n,p){let t=\"\";if(l===f.INDEFINITE)t+=\"_\";else{if(p.diagnosticSizes===b.NEVER)return\"\";{let r=p.diagnosticSizes===b.ALWAYS;if(!r){let e=f.ZERO;if(Object.is(n,-0))e=f.TWO;else if(m===s.POS_INT||m===s.NEG_INT){const T=n<0,u=typeof n==\"bigint\"?1n:1,o=T?-n-u:n;o<=23?e=Number(o):o<=255?e=f.ONE:o<=65535?e=f.TWO:o<=4294967295?e=f.FOUR:e=f.EIGHT}else isFinite(n)?Math.fround(n)===n?I(n)==null?e=f.FOUR:e=f.TWO:e=f.EIGHT:e=f.TWO;r=e!==l}r&&(t+=\"_\",l<f.ONE?t+=\"i\":t+=String(l-24))}}return t}function M(m,l){const n={...S.defaultDecodeOptions,...l,ParentType:g},p=new E(m,n);let t,r,e=\"\";for(const T of p){const[u,o,i]=T;switch(t&&(t.count>0&&i!==d.BREAK&&(t.mt===s.MAP&&t.count%2?e+=\": \":(e+=\",\",n.pretty||(e+=\" \"))),n.pretty&&(t.mt!==s.MAP||t.count%2===0)&&(e+=`\n${O.repeat(t.depth+1)}`)),r=S.create(T,t,n,p),u){case s.POS_INT:case s.NEG_INT:e+=String(i),e+=a(u,o,i,n);break;case s.SIMPLE_FLOAT:if(i!==d.BREAK)if(typeof i==\"number\"){const c=Object.is(i,-0)?\"-0.0\":String(i);e+=c,isFinite(i)&&!/[.e]/.test(c)&&(e+=\".0\"),e+=a(u,o,i,n)}else i instanceof N?(e+=\"simple(\",e+=String(i.value),e+=a(s.POS_INT,o,i.value,n),e+=\")\"):e+=String(i);break;case s.BYTE_STRING:i===1/0?(e+=\"(_ \",r.close=\")\",r.quote=\"'\"):(e+=\"h'\",e+=_(i),e+=\"'\",e+=a(s.POS_INT,o,i.length,n));break;case s.UTF8_STRING:i===1/0?(e+=\"(_ \",r.close=\")\"):(e+=JSON.stringify(i),e+=a(s.POS_INT,o,y.encode(i).length,n));break;case s.ARRAY:{e+=\"[\";const c=a(s.POS_INT,o,i,n);e+=c,c&&(e+=\" \"),n.pretty&&i?r.close=`\n${O.repeat(r.depth)}]`:r.close=\"]\";break}case s.MAP:{e+=\"{\";const c=a(s.POS_INT,o,i,n);e+=c,c&&(e+=\" \"),n.pretty&&i?r.close=`\n${O.repeat(r.depth)}}`:r.close=\"}\";break}case s.TAG:e+=String(i),e+=a(s.POS_INT,o,i,n),e+=\"(\",r.close=\")\";break}if(r===d.BREAK)if(t?.isStreaming)t.left=0;else throw new Error(\"Unexpected BREAK\");else t&&(t.count++,t.left--);for(r instanceof g&&(t=r);t?.done;){if(t.isEmptyStream)e=e.slice(0,-3),e+=`${t.quote}${t.quote}_`;else{if(t.mt===s.MAP&&t.count%2!==0)throw new Error(`Odd streaming map size: ${t.count}`);e+=t.close}t=t.parent}}return e}export{M as diagnose};\n","import{MT as u,NUMBYTES as b,SYMS as E}from\"./constants.js\";import{getEncoded as B,saveEncoded as R}from\"./box.js\";import{getRanges as S,subarrayRanges as I,u8toHex as C}from\"./utils.js\";import{CBORcontainer as T}from\"./container.js\";import{DecodeStream as M}from\"./decodeStream.js\";import{Simple as N}from\"./simple.js\";import{Tag as P}from\"./tag.js\";import{diagnose as U}from\"./diagnostic.js\";const H=new TextDecoder;class A extends T{depth=0;leaf=!1;value;length;[E.ENCODED];constructor(a,f,e,n){super(a,f,e,n),this.parent?this.depth=this.parent.depth+1:this.depth=n.initialDepth,[,,this.value,,this.length]=a}numBytes(){switch(this.ai){case b.ONE:return 1;case b.TWO:return 2;case b.FOUR:return 4;case b.EIGHT:return 8}return 0}}function k(t){return t instanceof A}function O(t,a){return t===1/0?\"Indefinite\":a?`${t} ${a}${t!==1&&t!==1n?\"s\":\"\"}`:String(t)}function y(t){return\"\".padStart(t,\" \")}function x(t,a,f){let e=\"\";e+=y(t.depth*2);const n=B(t);e+=C(n.subarray(0,1));const r=t.numBytes();r&&(e+=\" \",e+=C(n.subarray(1,r+1))),e=e.padEnd(a.minCol+1,\" \"),e+=\"-- \",f!==void 0&&(e+=y(t.depth*2),f!==\"\"&&(e+=`[${f}] `));let p=!1;const[s]=t.children;switch(t.mt){case u.POS_INT:e+=`Unsigned: ${s}`,typeof s==\"bigint\"&&(e+=\"n\");break;case u.NEG_INT:e+=`Negative: ${s}`,typeof s==\"bigint\"&&(e+=\"n\");break;case u.BYTE_STRING:e+=`Bytes (Length: ${O(t.length)})`;break;case u.UTF8_STRING:e+=`UTF8 (Length: ${O(t.length)})`,t.length!==1/0&&(e+=`: ${JSON.stringify(s)}`);break;case u.ARRAY:e+=`Array (Length: ${O(t.value,\"item\")})`;break;case u.MAP:e+=`Map (Length: ${O(t.value,\"pair\")})`;break;case u.TAG:{e+=`Tag #${t.value}`;const o=t.children,[m]=o.contents.children,i=new P(o.tag,m);R(i,n);const l=i.comment(a,t.depth);l&&(e+=\": \",e+=l),p||=i.noChildren;break}case u.SIMPLE_FLOAT:s===E.BREAK?e+=\"BREAK\":t.ai>b.ONE?Object.is(s,-0)?e+=\"Float: -0\":e+=`Float: ${s}`:(e+=\"Simple: \",s instanceof N?e+=s.value:e+=s);break}if(!p)if(t.leaf){if(e+=`\n`,n.length>r+1){const o=y((t.depth+1)*2),m=S(n);if(m?.length){m.sort((l,c)=>{const g=l[0]-c[0];return g||c[1]-l[1]});let i=0;for(const[l,c,g]of m)if(!(l<i)){if(i=l+c,g===\"<<\"){e+=y(a.minCol+1),e+=\"--\",e+=o,e+=\"<< \";const d=I(n,l,l+c),h=S(d);if(h){const $=h.findIndex(([w,D,v])=>w===0&&D===c&&v===\"<<\");$>=0&&h.splice($,1)}e+=U(d),e+=` >>\n`,e+=L(d,{initialDepth:t.depth+1,minCol:a.minCol,noPrefixHex:!0});continue}else g===\"'\"&&(e+=y(a.minCol+1),e+=\"--\",e+=o,e+=\"'\",e+=H.decode(n.subarray(l,l+c)),e+=`'\n`);if(l>r)for(let d=l;d<l+c;d+=8){const h=Math.min(d+8,l+c);e+=o,e+=C(n.subarray(d,h)),e+=`\n`}}}else for(let i=r+1;i<n.length;i+=8)e+=o,e+=C(n.subarray(i,i+8)),e+=`\n`}}else{e+=`\n`;let o=0;for(const m of t.children){if(k(m)){let i=String(o);t.mt===u.MAP?i=o%2?`val ${(o-1)/2}`:`key ${o/2}`:t.mt===u.TAG&&(i=\"\"),e+=x(m,a,i)}o++}}return e}const q={...T.defaultDecodeOptions,initialDepth:0,noPrefixHex:!1,minCol:0};function L(t,a){const f={...q,...a,ParentType:A,saveOriginal:!0},e=new M(t,f);let n,r;for(const s of e){if(r=T.create(s,n,f,e),s[2]===E.BREAK)if(n?.isStreaming)n.left=1;else throw new Error(\"Unexpected BREAK\");if(!k(r)){const i=new A(s,0,n,f);i.leaf=!0,i.children.push(r),R(i,e.toHere(s[3])),r=i}let o=(r.depth+1)*2;const m=r.numBytes();for(m&&(o+=1,o+=m*2),f.minCol=Math.max(f.minCol,o),n&&n.push(r,e,s[3]),n=r;n?.done;)r=n,r.leaf||R(r,e.toHere(r.offset)),{parent:n}=n}a&&(a.minCol=f.minCol);let p=f.noPrefixHex?\"\":`0x${C(e.toHere(0))}\n`;return p+=x(r,f),p}export{L as comment};\n","import{MT as O,TAG as o}from\"./constants.js\";import{box as q,getEncoded as F}from\"./box.js\";import{base64ToBytes as v,base64UrlToBytes as V,isBigEndian as W,u8toHex as A}from\"./utils.js\";import{encode as b,registerEncoder as s,writeInt as k,writeLength as P,writeTag as M,writeUnknown as K}from\"./encoder.js\";import{CBORcontainer as G}from\"./container.js\";import{Tag as t}from\"./tag.js\";import{Wtf8Decoder as B}from\"@cto.af/wtf8\";import{comment as Y}from\"./comment.js\";const U=!W();function I(e){if(typeof e==\"object\"&&e){if(e.constructor!==Number)throw new Error(`Expected number: ${e}`)}else if(typeof e!=\"number\")throw new Error(`Expected number: ${e}`)}function f(e){if(typeof e==\"object\"&&e){if(e.constructor!==String)throw new Error(`Expected string: ${e}`)}else if(typeof e!=\"string\")throw new Error(`Expected string: ${e}`)}function E(e){if(!(e instanceof Uint8Array))throw new Error(`Expected Uint8Array: ${e}`)}function _(e){if(!Array.isArray(e))throw new Error(`Expected Array: ${e}`)}s(Map,(e,r,n)=>{const i=[...e.entries()].map(a=>[a[0],a[1],b(a[0],n)]);if(n.rejectDuplicateKeys){const a=new Set;for(const[d,u,g]of i){const y=A(g);if(a.has(y))throw new Error(`Duplicate map key: 0x${y}`);a.add(y)}}n.sortKeys&&i.sort(n.sortKeys),P(e,e.size,O.MAP,r,n);for(const[a,d,u]of i)r.write(u),K(d,r,n)});function w(e){return f(e.contents),new Date(e.contents)}w.comment=e=>{f(e.contents);const r=new Date(e.contents);return`(String ${e.tag===o.DATE_FULL?\"Full \":\"\"}Date) ${r.toISOString()}`},t.registerDecoder(o.DATE_STRING,w),t.registerDecoder(o.DATE_FULL,w);function N(e){return I(e.contents),new Date(e.contents*1e3)}N.comment=e=>(I(e.contents),`(Epoch Date) ${new Date(e.contents*1e3).toISOString()}`),t.registerDecoder(o.DATE_EPOCH,N);const S=1e3*60*60*24;function $(e){return I(e.contents),new Date(e.contents*S)}$.comment=e=>(I(e.contents),`(Epoch Date) ${new Date(e.contents*S).toISOString()}`),t.registerDecoder(o.DATE_EPOCH_DAYS,$),s(Date,(e,r,n)=>{switch(n.dateTag){case o.DATE_EPOCH:return[n.dateTag,e.valueOf()/1e3];case o.DATE_STRING:return[n.dateTag,e.toISOString().replace(/\\.000Z$/,\"Z\")];case o.DATE_EPOCH_DAYS:return[n.dateTag,Math.floor(e.valueOf()/S)];case o.DATE_FULL:return[n.dateTag,e.toISOString().split(\"T\")[0]];default:throw new Error(`Unsupported date tag: ${n.dateTag}`)}});function m(e,r,n){if(E(r.contents),n.rejectBigInts)throw new Error(`Decoding unwanted big integer: ${r}(h'${A(r.contents)}')`);if(n.requirePreferred&&r.contents[0]===0)throw new Error(`Decoding overly-large bigint: ${r.tag}(h'${A(r.contents)})`);let i=r.contents.reduce((d,u)=>d<<8n|BigInt(u),0n);e&&(i=-1n-i);const a=i>=Number.MIN_SAFE_INTEGER&&i<=Number.MAX_SAFE_INTEGER;if(n.requirePreferred&&a)throw new Error(`Decoding bigint that could have been int: ${i}n`);return n.collapseBigInts&&a&&(i=Number(i)),n.boxed?q(i,r.contents):i}const L=m.bind(null,!1),x=m.bind(null,!0);L.comment=(e,r)=>`(Positive BigInt) ${m(!1,e,r)}n`,x.comment=(e,r)=>`(Negative BigInt) ${m(!0,e,r)}n`,t.registerDecoder(o.POS_BIGINT,L),t.registerDecoder(o.NEG_BIGINT,x);function R(e,r){return E(e.contents),e}R.comment=(e,r,n)=>{E(e.contents);const i={...r,initialDepth:n+2,noPrefixHex:!0},a=F(e);let u=2**((a[0]&31)-24)+1;const g=a[u]&31;let y=A(a.subarray(u,++u));g>=24&&(y+=\" \",y+=A(a.subarray(u,u+2**(g-24)))),i.minCol=Math.max(i.minCol,(n+1)*2+y.length);const D=Y(e.contents,i);let T=`Embedded CBOR\n`;return T+=`${\"\".padStart((n+1)*2,\" \")}${y}`.padEnd(i.minCol+1,\" \"),T+=`-- Bytes (Length: ${e.contents.length})\n`,T+=D,T},R.noChildren=!0,t.registerDecoder(o.CBOR,R),t.registerDecoder(o.URI,e=>(f(e.contents),new URL(e.contents)),\"URI\"),s(URL,e=>[o.URI,e.toString()]),t.registerDecoder(o.BASE64URL,e=>(f(e.contents),V(e.contents)),\"Base64url-encoded\"),t.registerDecoder(o.BASE64,e=>(f(e.contents),v(e.contents)),\"Base64-encoded\"),t.registerDecoder(35,e=>(f(e.contents),new RegExp(e.contents)),\"RegExp\"),t.registerDecoder(21065,e=>{f(e.contents);const r=`^(?:${e.contents})$`;return new RegExp(r,\"u\")},\"I-RegExp\"),t.registerDecoder(o.REGEXP,e=>{if(_(e.contents),e.contents.length<1||e.contents.length>2)throw new Error(`Invalid RegExp Array: ${e.contents}`);return new RegExp(e.contents[0],e.contents[1])},\"RegExp\"),s(RegExp,e=>[o.REGEXP,[e.source,e.flags]]),t.registerDecoder(64,e=>(E(e.contents),e.contents),\"uint8 Typed Array\");function c(e,r,n){E(e.contents);let i=e.contents.length;if(i%r.BYTES_PER_ELEMENT!==0)throw new Error(`Number of bytes must be divisible by ${r.BYTES_PER_ELEMENT}, got: ${i}`);i/=r.BYTES_PER_ELEMENT;const a=new r(i),d=new DataView(e.contents.buffer,e.contents.byteOffset,e.contents.byteLength),u=d[`get${r.name.replace(/Array/,\"\")}`].bind(d);for(let g=0;g<i;g++)a[g]=u(g*r.BYTES_PER_ELEMENT,n);return a}function l(e,r,n,i,a){const d=a.forceEndian??U;if(M(d?r:n,e,a),k(i.byteLength,e,O.BYTE_STRING),U===d)e.write(new Uint8Array(i.buffer,i.byteOffset,i.byteLength));else{const g=`write${i.constructor.name.replace(/Array/,\"\")}`,y=e[g].bind(e);for(const D of i)y(D,d)}}t.registerDecoder(65,e=>c(e,Uint16Array,!1),\"uint16, big endian, Typed Array\"),t.registerDecoder(66,e=>c(e,Uint32Array,!1),\"uint32, big endian, Typed Array\"),t.registerDecoder(67,e=>c(e,BigUint64Array,!1),\"uint64, big endian, Typed Array\"),t.registerDecoder(68,e=>(E(e.contents),new Uint8ClampedArray(e.contents)),\"uint8 Typed Array, clamped arithmetic\"),s(Uint8ClampedArray,e=>[68,new Uint8Array(e.buffer,e.byteOffset,e.byteLength)]),t.registerDecoder(69,e=>c(e,Uint16Array,!0),\"uint16, little endian, Typed Array\"),s(Uint16Array,(e,r,n)=>l(r,69,65,e,n)),t.registerDecoder(70,e=>c(e,Uint32Array,!0),\"uint32, little endian, Typed Array\"),s(Uint32Array,(e,r,n)=>l(r,70,66,e,n)),t.registerDecoder(71,e=>c(e,BigUint64Array,!0),\"uint64, little endian, Typed Array\"),s(BigUint64Array,(e,r,n)=>l(r,71,67,e,n)),t.registerDecoder(72,e=>(E(e.contents),new Int8Array(e.contents)),\"sint8 Typed Array\"),s(Int8Array,e=>[72,new Uint8Array(e.buffer,e.byteOffset,e.byteLength)]),t.registerDecoder(73,e=>c(e,Int16Array,!1),\"sint16, big endian, Typed Array\"),t.registerDecoder(74,e=>c(e,Int32Array,!1),\"sint32, big endian, Typed Array\"),t.registerDecoder(75,e=>c(e,BigInt64Array,!1),\"sint64, big endian, Typed Array\"),t.registerDecoder(77,e=>c(e,Int16Array,!0),\"sint16, little endian, Typed Array\"),s(Int16Array,(e,r,n)=>l(r,77,73,e,n)),t.registerDecoder(78,e=>c(e,Int32Array,!0),\"sint32, little endian, Typed Array\"),s(Int32Array,(e,r,n)=>l(r,78,74,e,n)),t.registerDecoder(79,e=>c(e,BigInt64Array,!0),\"sint64, little endian, Typed Array\"),s(BigInt64Array,(e,r,n)=>l(r,79,75,e,n)),t.registerDecoder(81,e=>c(e,Float32Array,!1),\"IEEE 754 binary32, big endian, Typed Array\"),t.registerDecoder(82,e=>c(e,Float64Array,!1),\"IEEE 754 binary64, big endian, Typed Array\"),t.registerDecoder(85,e=>c(e,Float32Array,!0),\"IEEE 754 binary32, little endian, Typed Array\"),s(Float32Array,(e,r,n)=>l(r,85,81,e,n)),t.registerDecoder(86,e=>c(e,Float64Array,!0),\"IEEE 754 binary64, big endian, Typed Array\"),s(Float64Array,(e,r,n)=>l(r,86,82,e,n)),t.registerDecoder(o.SET,(e,r)=>{if(_(e.contents),r.sortKeys){const n=G.decodeToEncodeOpts(r);let i=null;for(const a of e.contents){const d=[a,void 0,b(a,n)];if(i&&r.sortKeys(i,d)>=0)throw new Error(`Set items out of order in tag #${o.SET}`);i=d}}return new Set(e.contents)},\"Set\"),s(Set,(e,r,n)=>{let i=[...e];if(n.sortKeys){const a=i.map(d=>[d,void 0,b(d,n)]);a.sort(n.sortKeys),i=a.map(([d])=>d)}return[o.SET,i]}),t.registerDecoder(o.JSON,e=>(f(e.contents),JSON.parse(e.contents)),\"JSON-encoded\");function C(e){return E(e.contents),new B().decode(e.contents)}C.comment=e=>{E(e.contents);const r=new B;return`(WTF8 string): ${JSON.stringify(r.decode(e.contents))}`},t.registerDecoder(o.WTF8,C),t.registerDecoder(o.SELF_DESCRIBED,e=>e.contents,\"Self-Described\"),t.registerDecoder(o.INVALID_16,()=>{throw new Error(`Tag always invalid: ${o.INVALID_16}`)},\"Invalid\"),t.registerDecoder(o.INVALID_32,()=>{throw new Error(`Tag always invalid: ${o.INVALID_32}`)},\"Invalid\"),t.registerDecoder(o.INVALID_64,()=>{throw new Error(`Tag always invalid: ${o.INVALID_64}`)},\"Invalid\"),t.registerDecoder(o.SYMBOL,e=>{let r=e.contents;if(Array.isArray(e.contents)){if(e.contents.length!==1)throw new Error(`Expected Array of size 1: ${e.contents}`);[r]=e.contents}if(f(r),!r.length)throw new Error(`Expected non-empty string: ${e.contents}`);return Symbol.for(r)},\"Symbol\");function h(e){throw new Error(`Encoding ${e.constructor.name} intentionally unimplmented. It is not concrete enough to interoperate. Convert to Uint8Array first.`)}s(ArrayBuffer,h),s(DataView,h),typeof SharedArrayBuffer<\"u\"&&s(SharedArrayBuffer,h);function p(e){return[NaN,e.valueOf()]}s(Boolean,p),s(Number,p),s(String,p),s(BigInt,p);\n","import{DecodeStream as a}from\"./decodeStream.js\";import{CBORcontainer as s}from\"./container.js\";import{SYMS as u}from\"./constants.js\";function c(i){const e={...s.defaultDecodeOptions};if(i.dcbor?Object.assign(e,s.dcborDecodeOptions):i.cde&&Object.assign(e,s.cdeDecodeOptions),Object.assign(e,i),Object.hasOwn(e,\"rejectLongNumbers\"))throw new TypeError(\"rejectLongNumbers has changed to requirePreferred\");return e.boxed&&(e.saveOriginal=!0),e}class d{parent=void 0;ret=void 0;step(e,n,t){if(this.ret=s.create(e,this.parent,n,t),e[2]===u.BREAK)if(this.parent?.isStreaming)this.parent.left=0;else throw new Error(\"Unexpected BREAK\");else this.parent&&this.parent.push(this.ret,t,e[3]);for(this.ret instanceof s&&(this.parent=this.ret);this.parent?.done;){this.ret=this.parent.convert(t);const r=this.parent.parent;r?.replaceLast(this.ret,this.parent,t),this.parent=r}}}function l(i,e={}){const n=c(e),t=new a(i,n),r=new d;for(const o of t)r.step(o,n,t);return r.ret}class O{#t;#e;constructor(e,n={}){const t=new a(e,c(n));this.#t=t.seq()}peek(){return this.#e||(this.#e=this.#n()),this.#e}read(){const e=this.#e??this.#n();return this.#e=void 0,e}*[Symbol.iterator](){for(;;){const e=this.read();if(!e)return;yield e}}#n(){const{value:e,done:n}=this.#t.next();if(!n)return e}}function*b(i,e={}){const n=c(e),t=new a(i,n),r=new d;for(const o of t.seq())r.step(o,n,t),r.parent||(yield r.ret)}export{O as SequenceEvents,l as decode,b as decodeSequence};\n","import\"./types.js\";import{version as i}from\"./version.js\";import{CBORcontainer as e}from\"./container.js\";import{DiagnosticSizes as m}from\"./options.js\";import{decode as O,decodeSequence as f,SequenceEvents as u}from\"./decoder.js\";import{diagnose as g}from\"./diagnostic.js\";import{comment as D}from\"./comment.js\";import{cdeEncodeOptions as y,defaultEncodeOptions as S,dcborEncodeOptions as T,encode as b,encodedNumber as C}from\"./encoder.js\";import{Simple as q}from\"./simple.js\";import{Tag as v}from\"./tag.js\";import{Writer as V}from\"./writer.js\";import{saveEncoded as B,saveEncodedLength as I,unbox as M,getEncoded as W}from\"./box.js\";const{cdeDecodeOptions:r,dcborDecodeOptions:n,defaultDecodeOptions:d}=e;import{TypeEncoderMap as P}from\"./typeEncoderMap.js\";import{NAN as G,NAN_SIZE as L}from\"./float.js\";export{m as DiagnosticSizes,G as NAN,L as NAN_SIZE,u as SequenceEvents,q as Simple,v as Tag,P as TypeEncoderMap,V as Writer,r as cdeDecodeOptions,y as cdeEncodeOptions,D as comment,n as dcborDecodeOptions,T as dcborEncodeOptions,O as decode,f as decodeSequence,d as defaultDecodeOptions,S as defaultEncodeOptions,g as diagnose,b as encode,C as encodedNumber,W as getEncoded,B as saveEncoded,I as saveEncodedLength,M as unbox,i as version};\n","// Every canonical-CBOR decode violation collapses to the single public Label 309\n// taxonomy code MALFORMED_CBOR: indefinite-length (streaming) items, duplicate\n// keys, unsorted keys, non-minimal integer encodings, and invalid UTF-8 in text\n// strings. The taxonomy intentionally has one code for all of these; the\n// specific cause survives in the human-readable error message, not as a\n// separate code.\nexport type CanonicalCborErrorCode = 'MALFORMED_CBOR';\n\nexport class CanonicalCborError extends Error {\n readonly code: CanonicalCborErrorCode;\n\n constructor(code: CanonicalCborErrorCode, message: string, options?: { cause?: unknown }) {\n super(message, options);\n this.name = 'CanonicalCborError';\n this.code = code;\n }\n}\n","import { cdeDecodeOptions, decode, encode } from 'cbor2';\nimport { sortCoreDeterministic } from 'cbor2/sorts';\n\nimport { CanonicalCborError } from './errors';\n\nexport type CanonicalCborValue =\n | null\n | boolean\n | number\n | bigint\n | string\n | Uint8Array\n | readonly CanonicalCborValue[]\n | { readonly [key: string]: CanonicalCborValue }\n | ReadonlyMap<string | number, CanonicalCborValue>;\n\nexport function encodeCanonicalCbor(value: CanonicalCborValue): Uint8Array {\n return encode(value, {\n cde: true,\n collapseBigInts: true,\n rejectDuplicateKeys: true,\n sortKeys: sortCoreDeterministic,\n });\n}\n\nexport function decodeCanonicalCbor(bytes: Uint8Array): unknown {\n try {\n return decode(bytes, {\n ...cdeDecodeOptions,\n rejectStreaming: true,\n rejectDuplicateKeys: true,\n // A Label 309 record carries integers, byte/text strings, arrays, maps and\n // `null` — and nothing else. Without these rejections the major-type-7\n // surface leaks into the decoder: a float16/32/64 that happens to hold an\n // integral value (e.g. 1.0) silently decodes to the integer 1 and passes\n // a `z.literal(1)` / Number.isInteger schema check, so two byte strings\n // that are NOT byte-identical canonicalise to the same record. That\n // breaks the cross-implementation parity invariant (the Python twin\n // already rejects non-integer `v` / `enc.scheme` outright). Reject the\n // whole non-record surface — floats, negative zero, undefined, and\n // non-{true,false,null} simple values — so any such input surfaces as\n // MALFORMED_CBOR via mapDecodeError rather than decoding to a look-alike.\n rejectFloats: true,\n rejectNegativeZero: true,\n rejectUndefined: true,\n rejectSimple: true,\n });\n } catch (cause) {\n throw mapDecodeError(cause);\n }\n}\n\nfunction mapDecodeError(cause: unknown): CanonicalCborError {\n const message = cause instanceof Error ? cause.message : String(cause);\n const lower = message.toLowerCase();\n // Every canonical-decode violation collapses to the single public taxonomy\n // code MALFORMED_CBOR: indefinite-length (streaming) items, duplicate keys,\n // non-canonical (unsorted) key ordering, non-minimal integer encodings, and\n // invalid UTF-8 in text strings. cbor2 raises the SAME \"Duplicate or out of\n // order key\" message for both true duplicates AND distinct-but-unsorted keys,\n // so the two are indistinguishable by message — and per the Label 309 taxonomy\n // both belong under MALFORMED_CBOR anyway. The specific cause survives in the\n // human-readable message below; for indefinite-length we state it explicitly\n // so the diagnostic is not lost when the code is collapsed.\n const isIndefinite = lower.includes('streaming') || lower.includes('indefinite');\n const detail = isIndefinite\n ? `indefinite-length items are not permitted in canonical CBOR: ${message}`\n : message;\n return new CanonicalCborError('MALFORMED_CBOR', `cbor decode failed: ${detail}`, { cause });\n}\n","// Label 309 v1 error-code catalogue — the TypeScript projection of the\n// machine-readable registry (`error-codes.json` in the Label 309 distribution).\n//\n// Three layers emit these codes:\n// - Part A — the structural validator (`validatePoeRecord`): a pure\n// function over the reassembled CBOR record body.\n// - carriage — the pre-validator transport step that reassembles the\n// label-309 chunk array (`reassembleLabel309Value`).\n// - Part B — the public / recipient verifier (chain resolution,\n// signature verification, content fetch, decryption).\n// Re-exported here so downstream verifiers dispatch on a\n// single `ErrorCode` union.\n//\n// Codes are SCREAMING_SNAKE_CASE and MUST match the canonical catalogue\n// byte-exact across the TS/PY/RS implementations — no lowercase synonyms,\n// no parser-internal codes, no free-form reason strings.\n//\n// `ERROR_CODES` preserves the registry's entry order. That order is\n// load-bearing: issues sharing an identical path tie-break by the order in\n// which their codes appear in the registry, so the list below doubles as the\n// cross-implementation sort key (`errorCodeRegistryIndex`).\n\nexport const ERROR_CODES = [\n 'MALFORMED_CBOR',\n 'SCHEMA_TYPE_MISMATCH',\n 'SCHEMA_MISSING_REQUIRED',\n 'SCHEMA_UNKNOWN_FIELD',\n 'SCHEMA_INVALID_LITERAL',\n 'SCHEMA_EMPTY_RECORD',\n 'HASH_DIGEST_LENGTH_MISMATCH',\n 'UNSUPPORTED_HASH_ALG',\n 'UNSUPPORTED_MERKLE_COMMIT_ALG',\n 'SCHEMA_MERKLE_LEAF_COUNT_INVALID',\n 'INVALID_URI',\n 'CHUNK_TOO_LARGE',\n 'UNAUTHENTICATED_CIPHER_FORBIDDEN',\n 'UNSUPPORTED_AEAD_ALG',\n 'NONCE_LENGTH_MISMATCH',\n 'UNSUPPORTED_ENVELOPE_SCHEME',\n 'ENC_UNSUPPORTED',\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_SLOTS_DUPLICATE_KEM_MATERIAL',\n 'ENC_SLOTS_TOO_MANY',\n 'ENC_ENVELOPE_TOO_LARGE',\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 '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 'SUPERSEDES_TX_INVALID_LENGTH',\n 'EXTENSION_UNSUPPORTED_CRITICAL',\n 'CRIT_SHAPE_INVALID',\n 'TX_NOT_FOUND',\n 'PROVIDER_UNAVAILABLE',\n 'TX_INTEGRITY_MISMATCH',\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_PROVIDER_INTEGRITY_MISMATCH',\n 'URI_FETCH_FAILED',\n 'CONTENT_UNAVAILABLE',\n 'CONTENT_FETCH_LIMIT_EXCEEDED',\n 'CIPHERTEXT_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 'ENC_PASSPHRASE_UNNORMALIZABLE',\n 'ENC_PASSPHRASE_EMPTY',\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_UNSUPPORTED',\n 'OUT_OF_PROFILE_SKIPPED',\n] as const;\n\nexport type ErrorCode = (typeof ERROR_CODES)[number];\n\n// =============================================================================\n// Emitting layer (`part` in the registry)\n// =============================================================================\n\nexport type ErrorCodePart = 'A' | 'B' | 'carriage';\n\nexport const ERROR_CODE_PART: Readonly<Record<ErrorCode, ErrorCodePart>> = Object.freeze({\n MALFORMED_CBOR: 'A',\n SCHEMA_TYPE_MISMATCH: 'A',\n SCHEMA_MISSING_REQUIRED: 'A',\n SCHEMA_UNKNOWN_FIELD: 'A',\n SCHEMA_INVALID_LITERAL: 'A',\n SCHEMA_EMPTY_RECORD: 'A',\n HASH_DIGEST_LENGTH_MISMATCH: 'A',\n UNSUPPORTED_HASH_ALG: 'A',\n UNSUPPORTED_MERKLE_COMMIT_ALG: 'A',\n SCHEMA_MERKLE_LEAF_COUNT_INVALID: 'A',\n INVALID_URI: 'A',\n CHUNK_TOO_LARGE: 'carriage',\n UNAUTHENTICATED_CIPHER_FORBIDDEN: 'A',\n UNSUPPORTED_AEAD_ALG: 'A',\n NONCE_LENGTH_MISMATCH: 'A',\n UNSUPPORTED_ENVELOPE_SCHEME: 'A',\n ENC_UNSUPPORTED: 'A',\n ENC_SLOTS_EMPTY: 'A',\n ENC_SLOT_INVALID_SHAPE: 'A',\n UNSUPPORTED_KEM_ALG: 'A',\n ENC_KEM_REQUIRED: 'A',\n KEM_EPK_LENGTH_MISMATCH: 'A',\n KEM_CT_LENGTH_MISMATCH: 'A',\n WRAP_LENGTH_MISMATCH: 'A',\n ENC_SLOTS_MAC_INVALID_LENGTH: 'A',\n ENC_SLOTS_MAC_REQUIRED: 'A',\n ENC_SLOTS_REQUIRED: 'A',\n ENC_SLOTS_DUPLICATE_KEM_MATERIAL: 'A',\n ENC_SLOTS_TOO_MANY: 'A',\n ENC_ENVELOPE_TOO_LARGE: 'A',\n ENC_EXCLUSIVITY_VIOLATION: 'A',\n ENC_NO_KEY_PATH: 'A',\n ENC_REQUIRES_CONTENT_HASH: 'A',\n ENC_PASSPHRASE_ALG_UNSUPPORTED: 'A',\n ENC_PASSPHRASE_SALT_TOO_SHORT: 'A',\n ENC_PASSPHRASE_SALT_TOO_LONG: 'A',\n ENC_PASSPHRASE_ARGON2_PARAMS_TOO_LOW: 'A',\n ENC_PASSPHRASE_PARAMS_EXCEED_POLICY: 'A',\n MALFORMED_SIG_COSE_SIGN1: 'A',\n SIGNATURE_UNSUPPORTED: 'A',\n SIG_ENTRY_INVALID_SHAPE: 'A',\n SIG_ENTRY_KID_COSE_KEY_CONFLICT: 'A',\n SIG_PRIVATE_KEY_LEAKED: 'A',\n SUPERSEDES_TX_INVALID_LENGTH: 'A',\n EXTENSION_UNSUPPORTED_CRITICAL: 'A',\n CRIT_SHAPE_INVALID: 'A',\n TX_NOT_FOUND: 'B',\n PROVIDER_UNAVAILABLE: 'B',\n TX_INTEGRITY_MISMATCH: 'B',\n METADATA_NOT_FOUND: 'B',\n INSUFFICIENT_CONFIRMATIONS: 'B',\n SIGNATURE_INVALID: 'B',\n SIGNER_KEY_UNRESOLVED: 'B',\n WALLET_ADDRESS_MISMATCH: 'B',\n URI_TARGET_FORBIDDEN: 'B',\n URI_INTEGRITY_MISMATCH: 'B',\n URI_PROVIDER_INTEGRITY_MISMATCH: 'B',\n URI_FETCH_FAILED: 'B',\n CONTENT_UNAVAILABLE: 'B',\n CONTENT_FETCH_LIMIT_EXCEEDED: 'B',\n CIPHERTEXT_UNAVAILABLE: 'B',\n SERVICE_INDEPENDENCE_VIOLATION: 'B',\n WRONG_DECRYPTION_INPUT_SHAPE: 'B',\n WRONG_RECIPIENT_KEY: 'B',\n TAMPERED_HEADER: 'B',\n TAMPERED_CIPHERTEXT: 'B',\n KDF_DERIVATION_FAILED: 'B',\n ENC_PASSPHRASE_UNNORMALIZABLE: 'B',\n ENC_PASSPHRASE_EMPTY: 'B',\n SCHEMA_MERKLE_LEAF_COUNT_MISMATCH: 'B',\n SCHEMA_MERKLE_LEAVES_FORMAT_UNSUPPORTED: 'B',\n SCHEMA_MERKLE_LEAVES_MALFORMED: 'B',\n MERKLE_ROOT_MISMATCH: 'B',\n MERKLE_LEAVES_UNAVAILABLE: 'B',\n MERKLE_UNSUPPORTED: 'B',\n OUT_OF_PROFILE_SKIPPED: 'B',\n});\n\n// Layer-filtered views, in registry order. The structural validator emits only\n// Part A codes; the carriage (transport) step emits only the carriage code;\n// the verifier layer emits Part B codes (and re-runs the first two layers).\nexport const STRUCTURAL_ERROR_CODES: ReadonlyArray<ErrorCode> = Object.freeze(\n ERROR_CODES.filter((code) => ERROR_CODE_PART[code] === 'A'),\n);\nexport const CARRIAGE_ERROR_CODES: ReadonlyArray<ErrorCode> = Object.freeze(\n ERROR_CODES.filter((code) => ERROR_CODE_PART[code] === 'carriage'),\n);\nexport const VERIFIER_ERROR_CODES: ReadonlyArray<ErrorCode> = Object.freeze(\n ERROR_CODES.filter((code) => ERROR_CODE_PART[code] === 'B'),\n);\n\nexport type StructuralErrorCode = ErrorCode;\nexport type VerifierErrorCode = ErrorCode;\n\n// =============================================================================\n// Severity\n// =============================================================================\n//\n// `error` fails the record; `warning` is a non-fatal runtime anomaly; `info`\n// is a deliberate non-failing disposition. Four codes carry DUAL severity —\n// the map records their DEFAULT reading, and a strict context promotes them\n// to `error`:\n// - ENC_UNSUPPORTED — info by default; error for the recipient\n// role / strict sealed-crypto mode.\n// - MERKLE_LEAVES_UNAVAILABLE — warning beside a verified content\n// commitment; error when its absence leaves\n// the record with no verified commitment.\n// - MERKLE_UNSUPPORTED — info beside a validated items[] claim;\n// error on a merkle-only record.\n// - OUT_OF_PROFILE_SKIPPED — info in render mode; error in strict\n// end-to-end mode.\n// No layer may soften an `error` into a `warning` to make a record pass.\n\nexport type Severity = 'error' | 'warning' | 'info';\n\nexport const SEVERITY: Readonly<Record<ErrorCode, Severity>> = Object.freeze({\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 SCHEMA_MERKLE_LEAF_COUNT_INVALID: '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_UNSUPPORTED: 'info',\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_SLOTS_DUPLICATE_KEM_MATERIAL: 'error',\n ENC_SLOTS_TOO_MANY: 'error',\n ENC_ENVELOPE_TOO_LARGE: '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 TX_NOT_FOUND: 'error',\n PROVIDER_UNAVAILABLE: 'error',\n TX_INTEGRITY_MISMATCH: 'error',\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_PROVIDER_INTEGRITY_MISMATCH: 'warning',\n URI_FETCH_FAILED: 'warning',\n CONTENT_UNAVAILABLE: 'error',\n CONTENT_FETCH_LIMIT_EXCEEDED: 'error',\n CIPHERTEXT_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 ENC_PASSPHRASE_UNNORMALIZABLE: 'error',\n ENC_PASSPHRASE_EMPTY: '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_UNSUPPORTED: 'info',\n OUT_OF_PROFILE_SKIPPED: 'info',\n});\n\n// Codes whose severity is context-dependent. `SEVERITY` records the default\n// reading; the promoting context escalates to `error`.\nexport const DUAL_SEVERITY_CODES: ReadonlySet<ErrorCode> = new Set<ErrorCode>([\n 'ENC_UNSUPPORTED',\n 'MERKLE_LEAVES_UNAVAILABLE',\n 'MERKLE_UNSUPPORTED',\n 'OUT_OF_PROFILE_SKIPPED',\n]);\n\nexport function severityOf(code: ErrorCode): Severity {\n return SEVERITY[code];\n}\n\n// Position of a code in the canonical registry. Issues that carry an\n// identical path are ordered by this index, so every implementation sorts an\n// issue list identically.\nconst REGISTRY_INDEX: ReadonlyMap<ErrorCode, number> = new Map(\n ERROR_CODES.map((code, index) => [code, index]),\n);\n\nexport function errorCodeRegistryIndex(code: ErrorCode): number {\n return REGISTRY_INDEX.get(code) as number;\n}\n","// Label 309 metadata-label-309 carriage: the whole-body chunk-array transport.\n//\n// The Cardano ledger caps every metadata byte string and text string at 64\n// bytes, so a serialised record body crosses the ledger as an opaque\n// whole-body chunk array: a definite-length CBOR array of definite-length\n// byte strings of at most 64 bytes each, whose in-order concatenation is the\n// canonical record-body bytes. This transport split is the ONLY chunking the\n// format performs — fields inside the reassembled body are ordinary CBOR\n// values with no per-field chunk wrappers and no 64-byte cap of their own.\n//\n// This module owns both directions of that transport:\n//\n// - `chunkRecordBody` — producer: canonical body bytes → the chunk\n// array stored as the label-309 value.\n// - `reassembleLabel309Value`— consumer: raw label-309 value bytes → the\n// record body, enforcing the carriage-error\n// taxonomy (`MALFORMED_CBOR` for every\n// non-chunk-array shape, `CHUNK_TOO_LARGE` for\n// an oversized element, zero-length elements\n// tolerated).\n//\n// Reassembly happens BEFORE structural validation: `validatePoeRecord`\n// receives the concatenated body and never sees the transport wrapper.\n\nimport { decodeCanonicalCbor, encodeCanonicalCbor } from '@cardanowall/crypto-core/cbor';\n\nimport { SEVERITY, type ErrorCode } from './error-codes';\nimport type { ValidationIssue } from './validator';\n\n/** The ledger's per-metadatum string cap: the maximum transport chunk size. */\nexport const TRANSPORT_CHUNK_MAX_BYTES = 64;\n\n/**\n * Split a serialised record body into the whole-body transport chunk array —\n * the value a producer stores under metadata label 309.\n *\n * Uses the minimal split: every chunk except the last is exactly 64 bytes.\n * The chunk-array form is required regardless of body length, so a body of\n * 64 bytes or fewer still yields a one-element array. Chunks are copies — a\n * caller mutating the input body afterwards cannot corrupt them.\n *\n * A canonical CBOR record body is never empty, so zero-length input is a\n * caller bug and throws `RangeError` (the `1* bstr` transport grammar cannot\n * represent an empty body).\n */\nexport function chunkRecordBody(body: Uint8Array): Uint8Array[] {\n if (body.length === 0) {\n throw new RangeError('record body must be non-empty; a CBOR value is at least one byte');\n }\n const chunks: Uint8Array[] = [];\n for (let offset = 0; offset < body.length; offset += TRANSPORT_CHUNK_MAX_BYTES) {\n chunks.push(body.slice(offset, Math.min(offset + TRANSPORT_CHUNK_MAX_BYTES, body.length)));\n }\n return chunks;\n}\n\n/**\n * Serialise the transport chunk array to the CBOR bytes of the label-309\n * value (the byte form of `chunkRecordBody`'s output). Convenience for\n * producers and test harnesses that embed the value at the byte level.\n */\nexport function encodeLabel309Value(body: Uint8Array): Uint8Array {\n return encodeCanonicalCbor(chunkRecordBody(body));\n}\n\nexport type Label309ReassemblyResult =\n | { readonly ok: true; readonly body: Uint8Array }\n | { readonly ok: false; readonly issue: ValidationIssue };\n\n/**\n * Reassemble a label-309 value into the record body, enforcing the\n * carriage-error taxonomy:\n *\n * - a definite-length array of definite-length byte strings each ≤ 64\n * bytes is accepted; the body is the in-order concatenation;\n * - zero-length elements are tolerated (chunk boundaries are\n * semantics-free, including degenerate ones) — an array whose\n * concatenation is empty reassembles to zero bytes, and the failure then\n * surfaces from the canonical decode of the empty body, not from this\n * layer;\n * - an element longer than 64 bytes is `CHUNK_TOO_LARGE`;\n * - every other shape — a non-array value, a non-byte-string element, an\n * indefinite-length array or element — is `MALFORMED_CBOR`.\n *\n * The input is the raw CBOR bytes of the label-309 value exactly as carried\n * in the transaction's auxiliary data.\n */\nexport function reassembleLabel309Value(valueBytes: Uint8Array): Label309ReassemblyResult {\n let decoded: unknown;\n try {\n decoded = decodeCanonicalCbor(valueBytes);\n } catch (cause) {\n return failure(\n 'MALFORMED_CBOR',\n `label-309 value failed to decode: ${cause instanceof Error ? cause.message : String(cause)}`,\n );\n }\n if (!Array.isArray(decoded)) {\n return failure(\n 'MALFORMED_CBOR',\n 'label-309 value must be the whole-body chunk array (a CBOR array of byte strings), regardless of body length',\n );\n }\n let total = 0;\n for (let i = 0; i < decoded.length; i++) {\n const element: unknown = decoded[i];\n if (!(element instanceof Uint8Array)) {\n return failure('MALFORMED_CBOR', `chunk array element ${i} is not a byte string`);\n }\n if (element.length > TRANSPORT_CHUNK_MAX_BYTES) {\n return failure(\n 'CHUNK_TOO_LARGE',\n `chunk array element ${i} is ${element.length} bytes; the ledger caps metadata byte strings at ${TRANSPORT_CHUNK_MAX_BYTES}`,\n );\n }\n total += element.length;\n }\n const body = new Uint8Array(total);\n let offset = 0;\n for (const element of decoded as ReadonlyArray<Uint8Array>) {\n body.set(element, offset);\n offset += element.length;\n }\n return { ok: true, body };\n}\n\nfunction failure(code: ErrorCode, message: string): Label309ReassemblyResult {\n return { ok: false, issue: { code, path: [], message, severity: SEVERITY[code] } };\n}\n"]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { ValidationIssue } from './validator.cjs';
|
|
2
|
+
import './error-codes.cjs';
|
|
3
|
+
import './schema.cjs';
|
|
4
|
+
import 'zod';
|
|
5
|
+
|
|
6
|
+
/** The ledger's per-metadatum string cap: the maximum transport chunk size. */
|
|
7
|
+
declare const TRANSPORT_CHUNK_MAX_BYTES = 64;
|
|
8
|
+
/**
|
|
9
|
+
* Split a serialised record body into the whole-body transport chunk array —
|
|
10
|
+
* the value a producer stores under metadata label 309.
|
|
11
|
+
*
|
|
12
|
+
* Uses the minimal split: every chunk except the last is exactly 64 bytes.
|
|
13
|
+
* The chunk-array form is required regardless of body length, so a body of
|
|
14
|
+
* 64 bytes or fewer still yields a one-element array. Chunks are copies — a
|
|
15
|
+
* caller mutating the input body afterwards cannot corrupt them.
|
|
16
|
+
*
|
|
17
|
+
* A canonical CBOR record body is never empty, so zero-length input is a
|
|
18
|
+
* caller bug and throws `RangeError` (the `1* bstr` transport grammar cannot
|
|
19
|
+
* represent an empty body).
|
|
20
|
+
*/
|
|
21
|
+
declare function chunkRecordBody(body: Uint8Array): Uint8Array[];
|
|
22
|
+
/**
|
|
23
|
+
* Serialise the transport chunk array to the CBOR bytes of the label-309
|
|
24
|
+
* value (the byte form of `chunkRecordBody`'s output). Convenience for
|
|
25
|
+
* producers and test harnesses that embed the value at the byte level.
|
|
26
|
+
*/
|
|
27
|
+
declare function encodeLabel309Value(body: Uint8Array): Uint8Array;
|
|
28
|
+
type Label309ReassemblyResult = {
|
|
29
|
+
readonly ok: true;
|
|
30
|
+
readonly body: Uint8Array;
|
|
31
|
+
} | {
|
|
32
|
+
readonly ok: false;
|
|
33
|
+
readonly issue: ValidationIssue;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Reassemble a label-309 value into the record body, enforcing the
|
|
37
|
+
* carriage-error taxonomy:
|
|
38
|
+
*
|
|
39
|
+
* - a definite-length array of definite-length byte strings each ≤ 64
|
|
40
|
+
* bytes is accepted; the body is the in-order concatenation;
|
|
41
|
+
* - zero-length elements are tolerated (chunk boundaries are
|
|
42
|
+
* semantics-free, including degenerate ones) — an array whose
|
|
43
|
+
* concatenation is empty reassembles to zero bytes, and the failure then
|
|
44
|
+
* surfaces from the canonical decode of the empty body, not from this
|
|
45
|
+
* layer;
|
|
46
|
+
* - an element longer than 64 bytes is `CHUNK_TOO_LARGE`;
|
|
47
|
+
* - every other shape — a non-array value, a non-byte-string element, an
|
|
48
|
+
* indefinite-length array or element — is `MALFORMED_CBOR`.
|
|
49
|
+
*
|
|
50
|
+
* The input is the raw CBOR bytes of the label-309 value exactly as carried
|
|
51
|
+
* in the transaction's auxiliary data.
|
|
52
|
+
*/
|
|
53
|
+
declare function reassembleLabel309Value(valueBytes: Uint8Array): Label309ReassemblyResult;
|
|
54
|
+
|
|
55
|
+
export { type Label309ReassemblyResult, TRANSPORT_CHUNK_MAX_BYTES, chunkRecordBody, encodeLabel309Value, reassembleLabel309Value };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { ValidationIssue } from './validator.js';
|
|
2
|
+
import './error-codes.js';
|
|
3
|
+
import './schema.js';
|
|
4
|
+
import 'zod';
|
|
5
|
+
|
|
6
|
+
/** The ledger's per-metadatum string cap: the maximum transport chunk size. */
|
|
7
|
+
declare const TRANSPORT_CHUNK_MAX_BYTES = 64;
|
|
8
|
+
/**
|
|
9
|
+
* Split a serialised record body into the whole-body transport chunk array —
|
|
10
|
+
* the value a producer stores under metadata label 309.
|
|
11
|
+
*
|
|
12
|
+
* Uses the minimal split: every chunk except the last is exactly 64 bytes.
|
|
13
|
+
* The chunk-array form is required regardless of body length, so a body of
|
|
14
|
+
* 64 bytes or fewer still yields a one-element array. Chunks are copies — a
|
|
15
|
+
* caller mutating the input body afterwards cannot corrupt them.
|
|
16
|
+
*
|
|
17
|
+
* A canonical CBOR record body is never empty, so zero-length input is a
|
|
18
|
+
* caller bug and throws `RangeError` (the `1* bstr` transport grammar cannot
|
|
19
|
+
* represent an empty body).
|
|
20
|
+
*/
|
|
21
|
+
declare function chunkRecordBody(body: Uint8Array): Uint8Array[];
|
|
22
|
+
/**
|
|
23
|
+
* Serialise the transport chunk array to the CBOR bytes of the label-309
|
|
24
|
+
* value (the byte form of `chunkRecordBody`'s output). Convenience for
|
|
25
|
+
* producers and test harnesses that embed the value at the byte level.
|
|
26
|
+
*/
|
|
27
|
+
declare function encodeLabel309Value(body: Uint8Array): Uint8Array;
|
|
28
|
+
type Label309ReassemblyResult = {
|
|
29
|
+
readonly ok: true;
|
|
30
|
+
readonly body: Uint8Array;
|
|
31
|
+
} | {
|
|
32
|
+
readonly ok: false;
|
|
33
|
+
readonly issue: ValidationIssue;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Reassemble a label-309 value into the record body, enforcing the
|
|
37
|
+
* carriage-error taxonomy:
|
|
38
|
+
*
|
|
39
|
+
* - a definite-length array of definite-length byte strings each ≤ 64
|
|
40
|
+
* bytes is accepted; the body is the in-order concatenation;
|
|
41
|
+
* - zero-length elements are tolerated (chunk boundaries are
|
|
42
|
+
* semantics-free, including degenerate ones) — an array whose
|
|
43
|
+
* concatenation is empty reassembles to zero bytes, and the failure then
|
|
44
|
+
* surfaces from the canonical decode of the empty body, not from this
|
|
45
|
+
* layer;
|
|
46
|
+
* - an element longer than 64 bytes is `CHUNK_TOO_LARGE`;
|
|
47
|
+
* - every other shape — a non-array value, a non-byte-string element, an
|
|
48
|
+
* indefinite-length array or element — is `MALFORMED_CBOR`.
|
|
49
|
+
*
|
|
50
|
+
* The input is the raw CBOR bytes of the label-309 value exactly as carried
|
|
51
|
+
* in the transaction's auxiliary data.
|
|
52
|
+
*/
|
|
53
|
+
declare function reassembleLabel309Value(valueBytes: Uint8Array): Label309ReassemblyResult;
|
|
54
|
+
|
|
55
|
+
export { type Label309ReassemblyResult, TRANSPORT_CHUNK_MAX_BYTES, chunkRecordBody, encodeLabel309Value, reassembleLabel309Value };
|