@cardanowall/poe-standard 0.0.0 → 0.2.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.
@@ -1 +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/index.js","../../crypto-core/src/cbor/canonical.ts","../src/encoder.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":"encoder.js","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\"./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","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 CIP-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 CIP-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","// CIP-309 v1 record encoder.\n//\n// Produces canonical CBOR bytes per RFC 8949 §4.2.1 deterministic encoding —\n// definite-length, sorted bytewise lex map keys, no duplicates, preferred\n// integer/float form. The canonical layer (`@cardanowall/crypto-core/cbor`)\n// configures `cbor2` with `cde: true, rejectDuplicateKeys: true`, so the\n// encoder's only job is to translate the validator-typed record shape into\n// the `CanonicalCborValue` algebra.\n//\n// Wire-shape contract:\n// - `items[i].hashes` is a CBOR MAP (text-keyed) — not an array of `{alg,h}`.\n// - `merkle[]` is a top-level array, peer to `items` and `sigs`.\n// - Each `sigs[i]` is a CBOR MAP `{cose_sign1, ? cose_key}` (canonical\n// sort places the optional `cose_key` BEFORE `cose_sign1`).\n// - The encryption envelope uses `scheme` (NOT `v`), `aead` (NOT `alg`),\n// `nonce` (NOT `iv`), `slots` (NOT `recipients`), `slots_mac` (NOT\n// `hdr_mac`); the KEM identifier is hoisted to envelope scope as `kem`.\n// - The passphrase block uses key name `passphrase` and `alg = \"argon2id\"`.\n//\n// Round-trip property: for every record `R` that the validator accepts,\n// validate(encode(R)).ok === true\n// && validate(encode(R)).record ≡ R (modulo CBOR-canonical key sort)\n\nimport { encodeCanonicalCbor, type CanonicalCborValue } from '@cardanowall/crypto-core/cbor';\n\nimport type {\n EncryptionEnvelope,\n ItemEntry,\n MerkleCommit,\n PassphraseBlock,\n PoeRecord,\n SigEntry,\n Slot,\n} from './schema';\n\ntype CborMap = { [key: string]: CanonicalCborValue };\n\nexport function encodePoeRecord(record: PoeRecord): Uint8Array {\n return encodeCanonicalCbor(recordToCbor(record));\n}\n\n// Helper: build the canonical-CBOR `record_body` (the bytes that record-level\n// `sigs[i]` signs over). The body is the full record map MINUS the `sigs`\n// field; producers prepend the 25-byte UTF-8 domain prefix\n// `cardano-poe-record-sig-v1` before invoking Ed25519 (the crypto-core\n// helper `buildCip309SigStructure` handles the prefix and `Sig_structure`\n// wrapping).\nexport function encodeRecordBodyForSigning(record: PoeRecord): Uint8Array {\n const body: CborMap = recordToCborInternal(record, /* includeSigs */ false);\n return encodeCanonicalCbor(body);\n}\n\nfunction recordToCbor(record: PoeRecord): CanonicalCborValue {\n return recordToCborInternal(record, /* includeSigs */ true);\n}\n\nfunction recordToCborInternal(record: PoeRecord, includeSigs: boolean): CborMap {\n const out: CborMap = { v: record.v };\n if (record.items !== undefined) out['items'] = record.items.map(itemToCbor);\n if (record.merkle !== undefined) out['merkle'] = record.merkle.map(merkleToCbor);\n if (record.supersedes !== undefined) out['supersedes'] = record.supersedes;\n if (includeSigs && record.sigs !== undefined) out['sigs'] = record.sigs.map(sigEntryToCbor);\n if (record.crit !== undefined) out['crit'] = record.crit.slice();\n // Preserve extension keys verbatim — they are part of the signed\n // `record_body` and MUST round-trip byte-identical.\n for (const [k, v] of Object.entries(record)) {\n if (\n k === 'v' ||\n k === 'items' ||\n k === 'merkle' ||\n k === 'supersedes' ||\n k === 'sigs' ||\n k === 'crit'\n ) {\n continue;\n }\n out[k] = v as CanonicalCborValue;\n }\n return out;\n}\n\nfunction itemToCbor(item: ItemEntry): CanonicalCborValue {\n const out: CborMap = { hashes: hashesToCbor(item.hashes) };\n if (item.uris !== undefined) {\n out['uris'] = item.uris.map((chunks) => chunks.slice());\n }\n if (item.enc !== undefined) {\n out['enc'] = envelopeToCbor(item.enc as EncryptionEnvelope);\n }\n return out;\n}\n\nfunction hashesToCbor(hashes: Readonly<Record<string, Uint8Array>>): CanonicalCborValue {\n // text-keyed CBOR map — canonical sort orders by encoded-key bytewise lex\n // automatically (`sha2-256` `0x68` precedes `blake2b-256` `0x6b`).\n const out: CborMap = {};\n for (const [alg, digest] of Object.entries(hashes)) {\n out[alg] = digest;\n }\n return out;\n}\n\nfunction merkleToCbor(commit: MerkleCommit): CanonicalCborValue {\n const out: CborMap = {\n alg: commit.alg,\n root: commit.root,\n leaf_count: commit.leaf_count,\n };\n if (commit.uris !== undefined) {\n out['uris'] = commit.uris.map((chunks) => chunks.slice());\n }\n return out;\n}\n\nfunction envelopeToCbor(enc: EncryptionEnvelope): CanonicalCborValue {\n const out: CborMap = {\n scheme: enc.scheme as CanonicalCborValue,\n aead: enc.aead,\n nonce: enc.nonce,\n };\n if (enc.kem !== undefined) out['kem'] = enc.kem;\n if (enc.slots !== undefined) out['slots'] = enc.slots.map(slotToCbor);\n if (enc.slots_mac !== undefined) out['slots_mac'] = enc.slots_mac;\n if (enc.passphrase !== undefined) out['passphrase'] = passphraseToCbor(enc.passphrase);\n return out;\n}\n\nfunction slotToCbor(slot: Slot): CanonicalCborValue {\n // KEM-driven slot serialization. The canonical encoder sorts map keys by\n // length-then-bytewise (RFC 8949 §4.2.1), so it emits `wrap` (4-byte key)\n // before `kem_ct` (6-byte key) and `epk` (3-byte key) before `wrap`\n // automatically — insertion order here is irrelevant to the wire bytes.\n //\n // - x25519: `{ epk: bstr(32), wrap: bstr(48) }`\n // - mlkem768x25519: `{ kem_ct: [ bstr, ... ], wrap: bstr(48) }` — `kem_ct`\n // is the already-chunked array (NOT re-chunked here), so the bytes match\n // what crypto-core committed to `slots_mac` byte-for-byte.\n if (slot.kem_ct !== undefined) {\n return { kem_ct: slot.kem_ct.map((c) => c), wrap: slot.wrap! };\n }\n return { epk: slot.epk!, wrap: slot.wrap! };\n}\n\nfunction passphraseToCbor(pp: PassphraseBlock): CanonicalCborValue {\n return {\n alg: pp.alg,\n salt: pp.salt,\n params: pp.params as { readonly [key: string]: CanonicalCborValue },\n };\n}\n\nfunction sigEntryToCbor(entry: SigEntry): CanonicalCborValue {\n const out: CborMap = { cose_sign1: entry.cose_sign1.map((b) => b) };\n if (entry.cose_key !== undefined) {\n out['cose_key'] = entry.cose_key.map((b) => b);\n }\n return out;\n}\n"]}
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/index.js","../../crypto-core/src/cbor/canonical.ts","../src/encoder.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":"encoder.js","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\"./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","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 record encoder.\n//\n// Produces canonical CBOR bytes per RFC 8949 §4.2.1 deterministic encoding —\n// definite-length, sorted bytewise lex map keys, no duplicates, preferred\n// integer/float form. The canonical layer (`@cardanowall/crypto-core/cbor`)\n// configures `cbor2` with `cde: true, rejectDuplicateKeys: true`, so the\n// encoder's only job is to translate the validator-typed record shape into\n// the `CanonicalCborValue` algebra.\n//\n// Wire-shape contract:\n// - `items[i].hashes` is a CBOR MAP (text-keyed) — not an array of `{alg,h}`.\n// - `merkle[]` is a top-level array, peer to `items` and `sigs`.\n// - Each `sigs[i]` is a CBOR MAP `{cose_sign1, ? cose_key}` (canonical\n// sort places the optional `cose_key` BEFORE `cose_sign1`).\n// - The encryption envelope uses `scheme` (NOT `v`), `aead` (NOT `alg`),\n// `nonce` (NOT `iv`), `slots` (NOT `recipients`), `slots_mac` (NOT\n// `hdr_mac`); the KEM identifier is hoisted to envelope scope as `kem`.\n// - The passphrase block uses key name `passphrase` and `alg = \"argon2id\"`.\n//\n// Round-trip property: for every record `R` that the validator accepts,\n// validate(encode(R)).ok === true\n// && validate(encode(R)).record ≡ R (modulo CBOR-canonical key sort)\n\nimport { encodeCanonicalCbor, type CanonicalCborValue } from '@cardanowall/crypto-core/cbor';\n\nimport type {\n EncryptionEnvelope,\n ItemEntry,\n MerkleCommit,\n PassphraseBlock,\n PoeRecord,\n SigEntry,\n Slot,\n} from './schema';\n\ntype CborMap = { [key: string]: CanonicalCborValue };\n\nexport function encodePoeRecord(record: PoeRecord): Uint8Array {\n return encodeCanonicalCbor(recordToCbor(record));\n}\n\n// Helper: build the canonical-CBOR `record_body` (the bytes that record-level\n// `sigs[i]` signs over). The body is the full record map MINUS the `sigs`\n// field; producers prepend the 25-byte UTF-8 domain prefix\n// `cardano-poe-record-sig-v1` before invoking Ed25519 (the crypto-core\n// helper `buildLabel309SigStructure` handles the prefix and `Sig_structure`\n// wrapping).\nexport function encodeRecordBodyForSigning(record: PoeRecord): Uint8Array {\n const body: CborMap = recordToCborInternal(record, /* includeSigs */ false);\n return encodeCanonicalCbor(body);\n}\n\nfunction recordToCbor(record: PoeRecord): CanonicalCborValue {\n return recordToCborInternal(record, /* includeSigs */ true);\n}\n\nfunction recordToCborInternal(record: PoeRecord, includeSigs: boolean): CborMap {\n const out: CborMap = { v: record.v };\n if (record.items !== undefined) out['items'] = record.items.map(itemToCbor);\n if (record.merkle !== undefined) out['merkle'] = record.merkle.map(merkleToCbor);\n if (record.supersedes !== undefined) out['supersedes'] = record.supersedes;\n if (includeSigs && record.sigs !== undefined) out['sigs'] = record.sigs.map(sigEntryToCbor);\n if (record.crit !== undefined) out['crit'] = record.crit.slice();\n // Preserve extension keys verbatim — they are part of the signed\n // `record_body` and MUST round-trip byte-identical.\n for (const [k, v] of Object.entries(record)) {\n if (\n k === 'v' ||\n k === 'items' ||\n k === 'merkle' ||\n k === 'supersedes' ||\n k === 'sigs' ||\n k === 'crit'\n ) {\n continue;\n }\n out[k] = v as CanonicalCborValue;\n }\n return out;\n}\n\nfunction itemToCbor(item: ItemEntry): CanonicalCborValue {\n const out: CborMap = { hashes: hashesToCbor(item.hashes) };\n if (item.uris !== undefined) {\n out['uris'] = item.uris.map((chunks) => chunks.slice());\n }\n if (item.enc !== undefined) {\n out['enc'] = envelopeToCbor(item.enc as EncryptionEnvelope);\n }\n return out;\n}\n\nfunction hashesToCbor(hashes: Readonly<Record<string, Uint8Array>>): CanonicalCborValue {\n // text-keyed CBOR map — canonical sort orders by encoded-key bytewise lex\n // automatically (`sha2-256` `0x68` precedes `blake2b-256` `0x6b`).\n const out: CborMap = {};\n for (const [alg, digest] of Object.entries(hashes)) {\n out[alg] = digest;\n }\n return out;\n}\n\nfunction merkleToCbor(commit: MerkleCommit): CanonicalCborValue {\n const out: CborMap = {\n alg: commit.alg,\n root: commit.root,\n leaf_count: commit.leaf_count,\n };\n if (commit.uris !== undefined) {\n out['uris'] = commit.uris.map((chunks) => chunks.slice());\n }\n return out;\n}\n\nfunction envelopeToCbor(enc: EncryptionEnvelope): CanonicalCborValue {\n const out: CborMap = {\n scheme: enc.scheme as CanonicalCborValue,\n aead: enc.aead,\n nonce: enc.nonce,\n };\n if (enc.kem !== undefined) out['kem'] = enc.kem;\n if (enc.slots !== undefined) out['slots'] = enc.slots.map(slotToCbor);\n if (enc.slots_mac !== undefined) out['slots_mac'] = enc.slots_mac;\n if (enc.passphrase !== undefined) out['passphrase'] = passphraseToCbor(enc.passphrase);\n return out;\n}\n\nfunction slotToCbor(slot: Slot): CanonicalCborValue {\n // KEM-driven slot serialization. The canonical encoder sorts map keys by\n // length-then-bytewise (RFC 8949 §4.2.1), so it emits `wrap` (4-byte key)\n // before `kem_ct` (6-byte key) and `epk` (3-byte key) before `wrap`\n // automatically — insertion order here is irrelevant to the wire bytes.\n //\n // - x25519: `{ epk: bstr(32), wrap: bstr(48) }`\n // - mlkem768x25519: `{ kem_ct: [ bstr, ... ], wrap: bstr(48) }` — `kem_ct`\n // is the already-chunked array (NOT re-chunked here), so the bytes match\n // what crypto-core committed to `slots_mac` byte-for-byte.\n if (slot.kem_ct !== undefined) {\n return { kem_ct: slot.kem_ct.map((c) => c), wrap: slot.wrap! };\n }\n return { epk: slot.epk!, wrap: slot.wrap! };\n}\n\nfunction passphraseToCbor(pp: PassphraseBlock): CanonicalCborValue {\n return {\n alg: pp.alg,\n salt: pp.salt,\n params: pp.params as { readonly [key: string]: CanonicalCborValue },\n };\n}\n\nfunction sigEntryToCbor(entry: SigEntry): CanonicalCborValue {\n const out: CborMap = { cose_sign1: entry.cose_sign1.map((b) => b) };\n if (entry.cose_key !== undefined) {\n out['cose_key'] = entry.cose_key.map((b) => b);\n }\n return out;\n}\n"]}