@qrkit/bc-ur 2.0.0-beta.9-qrkit.1

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.
Files changed (229) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +996 -0
  3. package/dist/commonjs/classes/FountainDecoder.d.ts +125 -0
  4. package/dist/commonjs/classes/FountainDecoder.js +453 -0
  5. package/dist/commonjs/classes/FountainDecoder.js.map +1 -0
  6. package/dist/commonjs/classes/FountainEncoder.d.ts +63 -0
  7. package/dist/commonjs/classes/FountainEncoder.js +168 -0
  8. package/dist/commonjs/classes/FountainEncoder.js.map +1 -0
  9. package/dist/commonjs/classes/RegistryItem.d.ts +104 -0
  10. package/dist/commonjs/classes/RegistryItem.js +172 -0
  11. package/dist/commonjs/classes/RegistryItem.js.map +1 -0
  12. package/dist/commonjs/classes/UR.d.ts +89 -0
  13. package/dist/commonjs/classes/UR.js +243 -0
  14. package/dist/commonjs/classes/UR.js.map +1 -0
  15. package/dist/commonjs/classes/UrFountainDecoder.d.ts +15 -0
  16. package/dist/commonjs/classes/UrFountainDecoder.js +127 -0
  17. package/dist/commonjs/classes/UrFountainDecoder.js.map +1 -0
  18. package/dist/commonjs/classes/UrFountainEncoder.d.ts +42 -0
  19. package/dist/commonjs/classes/UrFountainEncoder.js +92 -0
  20. package/dist/commonjs/classes/UrFountainEncoder.js.map +1 -0
  21. package/dist/commonjs/classes/key.helper.d.ts +27 -0
  22. package/dist/commonjs/classes/key.helper.js +70 -0
  23. package/dist/commonjs/classes/key.helper.js.map +1 -0
  24. package/dist/commonjs/encodingMethods/BytewordEncoding.d.ts +11 -0
  25. package/dist/commonjs/encodingMethods/BytewordEncoding.js +23 -0
  26. package/dist/commonjs/encodingMethods/BytewordEncoding.js.map +1 -0
  27. package/dist/commonjs/encodingMethods/CborEncoding.d.ts +44 -0
  28. package/dist/commonjs/encodingMethods/CborEncoding.js +151 -0
  29. package/dist/commonjs/encodingMethods/CborEncoding.js.map +1 -0
  30. package/dist/commonjs/encodingMethods/HexEncoding.d.ts +8 -0
  31. package/dist/commonjs/encodingMethods/HexEncoding.js +24 -0
  32. package/dist/commonjs/encodingMethods/HexEncoding.js.map +1 -0
  33. package/dist/commonjs/encodingMethods/UrEncoding.d.ts +10 -0
  34. package/dist/commonjs/encodingMethods/UrEncoding.js +19 -0
  35. package/dist/commonjs/encodingMethods/UrEncoding.js.map +1 -0
  36. package/dist/commonjs/encodingMethods/bytewords.d.ts +27 -0
  37. package/dist/commonjs/encodingMethods/bytewords.js +152 -0
  38. package/dist/commonjs/encodingMethods/bytewords.js.map +1 -0
  39. package/dist/commonjs/encodingMethods/index.d.ts +19 -0
  40. package/dist/commonjs/encodingMethods/index.js +27 -0
  41. package/dist/commonjs/encodingMethods/index.js.map +1 -0
  42. package/dist/commonjs/encodingMethods/pipeline.d.ts +19 -0
  43. package/dist/commonjs/encodingMethods/pipeline.js +80 -0
  44. package/dist/commonjs/encodingMethods/pipeline.js.map +1 -0
  45. package/dist/commonjs/enums/EncodingMethodName.d.ts +10 -0
  46. package/dist/commonjs/enums/EncodingMethodName.js +15 -0
  47. package/dist/commonjs/enums/EncodingMethodName.js.map +1 -0
  48. package/dist/commonjs/errors.d.ts +15 -0
  49. package/dist/commonjs/errors.js +39 -0
  50. package/dist/commonjs/errors.js.map +1 -0
  51. package/dist/commonjs/helpers/aliasSampling.d.ts +6 -0
  52. package/dist/commonjs/helpers/aliasSampling.js +73 -0
  53. package/dist/commonjs/helpers/aliasSampling.js.map +1 -0
  54. package/dist/commonjs/helpers/crc32.d.ts +1 -0
  55. package/dist/commonjs/helpers/crc32.js +19 -0
  56. package/dist/commonjs/helpers/crc32.js.map +1 -0
  57. package/dist/commonjs/helpers/fountainUtils.d.ts +40 -0
  58. package/dist/commonjs/helpers/fountainUtils.js +124 -0
  59. package/dist/commonjs/helpers/fountainUtils.js.map +1 -0
  60. package/dist/commonjs/helpers/sha256.d.ts +1 -0
  61. package/dist/commonjs/helpers/sha256.js +78 -0
  62. package/dist/commonjs/helpers/sha256.js.map +1 -0
  63. package/dist/commonjs/helpers/type.helper.d.ts +3 -0
  64. package/dist/commonjs/helpers/type.helper.js +3 -0
  65. package/dist/commonjs/helpers/type.helper.js.map +1 -0
  66. package/dist/commonjs/helpers/uintArrayHelper.d.ts +287 -0
  67. package/dist/commonjs/helpers/uintArrayHelper.js +545 -0
  68. package/dist/commonjs/helpers/uintArrayHelper.js.map +1 -0
  69. package/dist/commonjs/helpers/utils.d.ts +55 -0
  70. package/dist/commonjs/helpers/utils.js +123 -0
  71. package/dist/commonjs/helpers/utils.js.map +1 -0
  72. package/dist/commonjs/index-react-native.d.ts +9 -0
  73. package/dist/commonjs/index-react-native.js +15 -0
  74. package/dist/commonjs/index-react-native.js.map +1 -0
  75. package/dist/commonjs/index.d.ts +21 -0
  76. package/dist/commonjs/index.js +34 -0
  77. package/dist/commonjs/index.js.map +1 -0
  78. package/dist/commonjs/interfaces/IEncodingMethod.d.ts +9 -0
  79. package/dist/commonjs/interfaces/IEncodingMethod.js +3 -0
  80. package/dist/commonjs/interfaces/IEncodingMethod.js.map +1 -0
  81. package/dist/commonjs/package.json +3 -0
  82. package/dist/commonjs/registry.d.ts +26 -0
  83. package/dist/commonjs/registry.js +118 -0
  84. package/dist/commonjs/registry.js.map +1 -0
  85. package/dist/commonjs/test.utils.d.ts +31 -0
  86. package/dist/commonjs/test.utils.js +88 -0
  87. package/dist/commonjs/test.utils.js.map +1 -0
  88. package/dist/commonjs/wrappers/cbor2-cjs.cjs.map +1 -0
  89. package/dist/commonjs/wrappers/cbor2.d.ts +2 -0
  90. package/dist/commonjs/wrappers/cbor2.js +14 -0
  91. package/dist/commonjs/wrappers/cbor2Wrapper.d.ts +14 -0
  92. package/dist/commonjs/wrappers/cbor2Wrapper.js +49 -0
  93. package/dist/commonjs/wrappers/cbor2Wrapper.js.map +1 -0
  94. package/dist/commonjs/xoshiro.d.ts +12 -0
  95. package/dist/commonjs/xoshiro.js +52 -0
  96. package/dist/commonjs/xoshiro.js.map +1 -0
  97. package/dist/esm/classes/FountainDecoder.d.ts +125 -0
  98. package/dist/esm/classes/FountainDecoder.js +447 -0
  99. package/dist/esm/classes/FountainDecoder.js.map +1 -0
  100. package/dist/esm/classes/FountainEncoder.d.ts +63 -0
  101. package/dist/esm/classes/FountainEncoder.js +164 -0
  102. package/dist/esm/classes/FountainEncoder.js.map +1 -0
  103. package/dist/esm/classes/RegistryItem.d.ts +104 -0
  104. package/dist/esm/classes/RegistryItem.js +166 -0
  105. package/dist/esm/classes/RegistryItem.js.map +1 -0
  106. package/dist/esm/classes/UR.d.ts +89 -0
  107. package/dist/esm/classes/UR.js +239 -0
  108. package/dist/esm/classes/UR.js.map +1 -0
  109. package/dist/esm/classes/UrFountainDecoder.d.ts +15 -0
  110. package/dist/esm/classes/UrFountainDecoder.js +123 -0
  111. package/dist/esm/classes/UrFountainDecoder.js.map +1 -0
  112. package/dist/esm/classes/UrFountainEncoder.d.ts +42 -0
  113. package/dist/esm/classes/UrFountainEncoder.js +88 -0
  114. package/dist/esm/classes/UrFountainEncoder.js.map +1 -0
  115. package/dist/esm/classes/key.helper.d.ts +27 -0
  116. package/dist/esm/classes/key.helper.js +66 -0
  117. package/dist/esm/classes/key.helper.js.map +1 -0
  118. package/dist/esm/encodingMethods/BytewordEncoding.d.ts +11 -0
  119. package/dist/esm/encodingMethods/BytewordEncoding.js +19 -0
  120. package/dist/esm/encodingMethods/BytewordEncoding.js.map +1 -0
  121. package/dist/esm/encodingMethods/CborEncoding.d.ts +44 -0
  122. package/dist/esm/encodingMethods/CborEncoding.js +147 -0
  123. package/dist/esm/encodingMethods/CborEncoding.js.map +1 -0
  124. package/dist/esm/encodingMethods/HexEncoding.d.ts +8 -0
  125. package/dist/esm/encodingMethods/HexEncoding.js +20 -0
  126. package/dist/esm/encodingMethods/HexEncoding.js.map +1 -0
  127. package/dist/esm/encodingMethods/UrEncoding.d.ts +10 -0
  128. package/dist/esm/encodingMethods/UrEncoding.js +15 -0
  129. package/dist/esm/encodingMethods/UrEncoding.js.map +1 -0
  130. package/dist/esm/encodingMethods/bytewords.d.ts +27 -0
  131. package/dist/esm/encodingMethods/bytewords.js +147 -0
  132. package/dist/esm/encodingMethods/bytewords.js.map +1 -0
  133. package/dist/esm/encodingMethods/index.d.ts +19 -0
  134. package/dist/esm/encodingMethods/index.js +24 -0
  135. package/dist/esm/encodingMethods/index.js.map +1 -0
  136. package/dist/esm/encodingMethods/pipeline.d.ts +19 -0
  137. package/dist/esm/encodingMethods/pipeline.js +76 -0
  138. package/dist/esm/encodingMethods/pipeline.js.map +1 -0
  139. package/dist/esm/enums/EncodingMethodName.d.ts +10 -0
  140. package/dist/esm/enums/EncodingMethodName.js +12 -0
  141. package/dist/esm/enums/EncodingMethodName.js.map +1 -0
  142. package/dist/esm/errors.d.ts +15 -0
  143. package/dist/esm/errors.js +31 -0
  144. package/dist/esm/errors.js.map +1 -0
  145. package/dist/esm/helpers/aliasSampling.d.ts +6 -0
  146. package/dist/esm/helpers/aliasSampling.js +70 -0
  147. package/dist/esm/helpers/aliasSampling.js.map +1 -0
  148. package/dist/esm/helpers/crc32.d.ts +1 -0
  149. package/dist/esm/helpers/crc32.js +16 -0
  150. package/dist/esm/helpers/crc32.js.map +1 -0
  151. package/dist/esm/helpers/fountainUtils.d.ts +40 -0
  152. package/dist/esm/helpers/fountainUtils.js +114 -0
  153. package/dist/esm/helpers/fountainUtils.js.map +1 -0
  154. package/dist/esm/helpers/sha256.d.ts +1 -0
  155. package/dist/esm/helpers/sha256.js +75 -0
  156. package/dist/esm/helpers/sha256.js.map +1 -0
  157. package/dist/esm/helpers/type.helper.d.ts +3 -0
  158. package/dist/esm/helpers/type.helper.js +2 -0
  159. package/dist/esm/helpers/type.helper.js.map +1 -0
  160. package/dist/esm/helpers/uintArrayHelper.d.ts +287 -0
  161. package/dist/esm/helpers/uintArrayHelper.js +526 -0
  162. package/dist/esm/helpers/uintArrayHelper.js.map +1 -0
  163. package/dist/esm/helpers/utils.d.ts +55 -0
  164. package/dist/esm/helpers/utils.js +102 -0
  165. package/dist/esm/helpers/utils.js.map +1 -0
  166. package/dist/esm/index-react-native.d.ts +9 -0
  167. package/dist/esm/index-react-native.js +12 -0
  168. package/dist/esm/index-react-native.js.map +1 -0
  169. package/dist/esm/index.d.ts +21 -0
  170. package/dist/esm/index.js +16 -0
  171. package/dist/esm/index.js.map +1 -0
  172. package/dist/esm/interfaces/IEncodingMethod.d.ts +9 -0
  173. package/dist/esm/interfaces/IEncodingMethod.js +2 -0
  174. package/dist/esm/interfaces/IEncodingMethod.js.map +1 -0
  175. package/dist/esm/package.json +3 -0
  176. package/dist/esm/registry.d.ts +26 -0
  177. package/dist/esm/registry.js +114 -0
  178. package/dist/esm/registry.js.map +1 -0
  179. package/dist/esm/test.utils.d.ts +31 -0
  180. package/dist/esm/test.utils.js +83 -0
  181. package/dist/esm/test.utils.js.map +1 -0
  182. package/dist/esm/wrappers/cbor2-deno.d.mts +2 -0
  183. package/dist/esm/wrappers/cbor2-deno.mjs +5 -0
  184. package/dist/esm/wrappers/cbor2-deno.mjs.map +1 -0
  185. package/dist/esm/wrappers/cbor2.d.ts +2 -0
  186. package/dist/esm/wrappers/cbor2.js +5 -0
  187. package/dist/esm/wrappers/cbor2.js.map +1 -0
  188. package/dist/esm/wrappers/cbor2Wrapper.d.ts +5 -0
  189. package/dist/esm/wrappers/cbor2Wrapper.js +6 -0
  190. package/dist/esm/wrappers/cbor2Wrapper.js.map +1 -0
  191. package/dist/esm/xoshiro.d.ts +12 -0
  192. package/dist/esm/xoshiro.js +47 -0
  193. package/dist/esm/xoshiro.js.map +1 -0
  194. package/dist/web/bytewords.js +335 -0
  195. package/index.html +98 -0
  196. package/package.json +94 -0
  197. package/src/classes/FountainDecoder.ts +539 -0
  198. package/src/classes/FountainEncoder.ts +211 -0
  199. package/src/classes/RegistryItem.ts +240 -0
  200. package/src/classes/UR.ts +308 -0
  201. package/src/classes/UrFountainDecoder.ts +142 -0
  202. package/src/classes/UrFountainEncoder.ts +103 -0
  203. package/src/classes/key.helper.ts +85 -0
  204. package/src/encodingMethods/BytewordEncoding.ts +23 -0
  205. package/src/encodingMethods/CborEncoding.ts +196 -0
  206. package/src/encodingMethods/HexEncoding.ts +23 -0
  207. package/src/encodingMethods/UrEncoding.ts +19 -0
  208. package/src/encodingMethods/bytewords.ts +215 -0
  209. package/src/encodingMethods/index.ts +26 -0
  210. package/src/encodingMethods/pipeline.ts +103 -0
  211. package/src/enums/EncodingMethodName.ts +10 -0
  212. package/src/errors.ts +34 -0
  213. package/src/helpers/aliasSampling.ts +87 -0
  214. package/src/helpers/crc32.ts +19 -0
  215. package/src/helpers/fountainUtils.ts +157 -0
  216. package/src/helpers/sha256.ts +88 -0
  217. package/src/helpers/type.helper.ts +1 -0
  218. package/src/helpers/uintArrayHelper.ts +611 -0
  219. package/src/helpers/utils.ts +135 -0
  220. package/src/index-react-native.ts +12 -0
  221. package/src/index.ts +44 -0
  222. package/src/interfaces/IEncodingMethod.ts +10 -0
  223. package/src/registry.ts +146 -0
  224. package/src/test.utils.ts +105 -0
  225. package/src/wrappers/cbor2-cjs.cts +6 -0
  226. package/src/wrappers/cbor2-deno.mts +6 -0
  227. package/src/wrappers/cbor2.ts +7 -0
  228. package/src/wrappers/cbor2Wrapper.ts +14 -0
  229. package/src/xoshiro.ts +66 -0
@@ -0,0 +1,49 @@
1
+ 'use strict';
2
+
3
+ const f$4={POS_INT:0,NEG_INT:1,BYTE_STRING:2,UTF8_STRING:3,ARRAY:4,MAP:5,TAG:6,SIMPLE_FLOAT:7},I$3={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,SET:258,JSON:262,REGEXP:21066,SELF_DESCRIBED:55799,INVALID_16:65535,INVALID_32:4294967295,INVALID_64:0xffffffffffffffffn},o$2={ZERO:0,ONE:24,TWO:25,FOUR:26,EIGHT:27,INDEFINITE:31},T$1={FALSE:20,TRUE:21,NULL:22,UNDEFINED:23};let N$1 = class N{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$1={MIN:-(2n**63n),MAX:2n**64n-1n};
4
+
5
+ let i$1 = class i{static#e=new Map;tag;contents;constructor(t,e=undefined){this.tag=t,this.contents=e;}get noChildren(){return !!i.#e.get(this.tag)?.noChildren}static registerDecoder(t,e,n){const o=this.#e.get(t);return this.#e.set(t,e),o&&("comment"in e||(e.comment=o.comment),"noChildren"in e||(e.noChildren=o.noChildren)),n&&!e.comment&&(e.comment=()=>`(${n})`),o}static clearDecoder(t){const e=this.#e.get(t);return this.#e.delete(t),e}static getDecoder(t){return this.#e.get(t)}static getAllDecoders(){return new Map(this.#e)}*[Symbol.iterator](){yield this.contents;}push(t){return this.contents=t,1}decode(t){const e=i.#e.get(this.tag);return e?e(this,t):this}comment(t,e){const n=i.#e.get(this.tag);if(n?.comment)return n.comment(this,t,e)}toCBOR(){return [this.tag,this.contents]}[Symbol.for("nodejs.util.inspect.custom")](t,e,n){return `${this.tag}(${n(this.contents,e)})`}};
6
+
7
+ function f$3(n){if(n!=null&&typeof n=="object")return n[N$1.ENCODED]}function s$2(n){if(n!=null&&typeof n=="object")return n[N$1.LENGTH]}function u$2(n,e){Object.defineProperty(n,N$1.ENCODED,{configurable:true,enumerable:false,value:e});}function d$1(n,e){const r=Object(n);return u$2(r,e),r}
8
+
9
+ function c$1(n){let t=Math.ceil(n.length/2);const r=new Uint8Array(t);t--;for(let e=n.length,o=e-2;e>=0;e=o,o-=2,t--)r[t]=parseInt(n.substring(o,e),16);return r}function u$1(n){return n.reduce((t,r)=>t+r.toString(16).padStart(2,"0"),"")}function g$2(n){const t=n.reduce((o,i)=>o+i.length,0),r=new Uint8Array(t);let e=0;for(const o of n)r.set(o,e),e+=o.length;return r}function s$1(n){const t=atob(n);return Uint8Array.from(t,r=>r.codePointAt(0))}const a$2={"-":"+",_:"/"};function l$2(n){const t=n.replace(/[_-]/g,r=>a$2[r]);return s$1(t.padEnd(Math.ceil(t.length/4)*4,"="))}function f$2(){const n=new Uint8Array(4),t=new Uint32Array(n.buffer);return !((t[0]=1)&n[0])}function y$1(n){let t="";for(const r of n){const e=r.codePointAt(0)?.toString(16).padStart(4,"0");t&&(t+=", "),t+=`U+${e}`;}return t}
10
+
11
+ function f$1(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}
12
+
13
+ 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.#l();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.#o()?(this.#l(),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=false){this.#e(2),this.#s.setUint16(this.#t,t,i),this.#h(2);}writeUint32(t,i=false){this.#e(4),this.#s.setUint32(this.#t,t,i),this.#h(4);}writeBigUint64(t,i=false){this.#e(8),this.#s.setBigUint64(this.#t,t,i),this.#h(8);}writeInt16(t,i=false){this.#e(2),this.#s.setInt16(this.#t,t,i),this.#h(2);}writeInt32(t,i=false){this.#e(4),this.#s.setInt32(this.#t,t,i),this.#h(4);}writeBigInt64(t,i=false){this.#e(8),this.#s.setBigInt64(this.#t,t,i),this.#h(8);}writeFloat32(t,i=false){this.#e(4),this.#s.setFloat32(this.#t,t,i),this.#h(4);}writeFloat64(t,i=false){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);}#l(){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;}#o(){const t=this.#i.length-1;return this.#i[t].length-this.#t}#e(t){this.#o()<t&&(this.#l(),this.#n());}#h(t){this.#t+=t,this.#a+=t;}}
14
+
15
+ function o$1(e,n=0,t=false){const r=e[n]&128?-1:1,f=(e[n]&124)>>2,a=(e[n]&3)<<8|e[n+1];if(f===0){if(t&&a!==0)throw new Error(`Unwanted subnormal: ${r*5960464477539063e-23*a}`);return r*5960464477539063e-23*a}else if(f===31)return a?NaN:r*(1/0);return r*2**(f-25)*(1024+a)}function s(e){const n=new DataView(new ArrayBuffer(4));n.setFloat32(0,e,false);const t=n.getUint32(0,false);if(t&8191)return null;let r=t>>16&32768;const f=t>>23&255,a=t&8388607;if(!(f===0&&a===0))if(f>=113&&f<=142)r+=(f-112<<10)+(a>>13);else if(f>=103&&f<113){if(a&(1<<126-f)-1)return null;r+=a+8388608>>126-f;}else if(f===255)r|=31744,r|=a>>13;else return null;return r}function i(e){if(e!==0){const n=new ArrayBuffer(8),t=new DataView(n);t.setFloat64(0,e,false);const r=t.getBigUint64(0,false);if((r&0x7ff0000000000000n)===0n)return r&0x8000000000000000n?-0:0}return e}function l$1(e){switch(e.length){case 2:o$1(e,0,true);break;case 4:{const n=new DataView(e.buffer,e.byteOffset,e.byteLength),t=n.getUint32(0,false);if(!(t&2139095040)&&t&8388607)throw new Error(`Unwanted subnormal: ${n.getFloat32(0,false)}`);break}case 8:{const n=new DataView(e.buffer,e.byteOffset,e.byteLength),t=n.getBigUint64(0,false);if((t&0x7ff0000000000000n)===0n&&t&0x000fffffffffffn)throw new Error(`Unwanted subnormal: ${n.getFloat64(0,false)}`);break}default:throw new TypeError(`Bad input to isSubnormal: ${e}`)}}
16
+
17
+ const O$5=f$4.SIMPLE_FLOAT<<5|o$2.TWO,h$1=f$4.SIMPLE_FLOAT<<5|o$2.FOUR,B$1=f$4.SIMPLE_FLOAT<<5|o$2.EIGHT,C$1=f$4.SIMPLE_FLOAT<<5|T$1.TRUE,j=f$4.SIMPLE_FLOAT<<5|T$1.FALSE,W=f$4.SIMPLE_FLOAT<<5|T$1.UNDEFINED,P=f$4.SIMPLE_FLOAT<<5|T$1.NULL,q=new TextEncoder,k$2={...e.defaultOptions,avoidInts:false,cde:false,collapseBigInts:true,dcbor:false,float64:false,flushToZero:false,forceEndian:null,ignoreOriginalEncoding:false,largeNegativeAsBigInt:false,reduceUnsafeNumbers:false,rejectBigInts:false,rejectCustomSimples:false,rejectDuplicateKeys:false,rejectFloats:false,rejectUndefined:false,simplifyNegativeZero:false,sortKeys:null,stringNormalization:null},R$1={cde:true,ignoreOriginalEncoding:true,sortKeys:f$1},$={...R$1,dcbor:true,largeNegativeAsBigInt:true,reduceUnsafeNumbers:true,rejectCustomSimples:true,rejectDuplicateKeys:true,rejectUndefined:true,simplifyNegativeZero:true,stringNormalization:"NFC"};function I$2(e){const n=e<0;return typeof e=="bigint"?[n?-e-1n:e,n]:[n?-e-1:e,n]}function p$1(e,n,t){if(t.rejectFloats)throw new Error(`Attempt to encode an unwanted floating point number: ${e}`);if(isNaN(e))n.writeUint8(O$5),n.writeUint16(32256);else if(!t.float64&&Math.fround(e)===e){const r=s(e);r===null?(n.writeUint8(h$1),n.writeFloat32(e)):(n.writeUint8(O$5),n.writeUint16(r));}else n.writeUint8(B$1),n.writeFloat64(e);}function a$1(e,n,t){const[r,i]=I$2(e);if(i&&t)throw new TypeError(`Negative size: ${e}`);t??=i?f$4.NEG_INT:f$4.POS_INT,t<<=5,r<24?n.writeUint8(t|r):r<=255?(n.writeUint8(t|o$2.ONE),n.writeUint8(r)):r<=65535?(n.writeUint8(t|o$2.TWO),n.writeUint16(r)):r<=4294967295?(n.writeUint8(t|o$2.FOUR),n.writeUint32(r)):(n.writeUint8(t|o$2.EIGHT),n.writeBigUint64(BigInt(r)));}function U$1(e,n,t){typeof e=="number"?a$1(e,n,f$4.TAG):typeof e=="object"&&!t.ignoreOriginalEncoding&&N$1.ENCODED in e?n.write(e[N$1.ENCODED]):e<=Number.MAX_SAFE_INTEGER?a$1(Number(e),n,f$4.TAG):(n.writeUint8(f$4.TAG<<5|o$2.EIGHT),n.writeBigUint64(BigInt(e)));}function l(e,n,t){const[r,i]=I$2(e);if(t.collapseBigInts&&(!t.largeNegativeAsBigInt||e>=-0x8000000000000000n)){if(r<=0xffffffffn){a$1(Number(e),n);return}if(r<=0xffffffffffffffffn){const E=(i?f$4.NEG_INT:f$4.POS_INT)<<5;n.writeUint8(E|o$2.EIGHT),n.writeBigUint64(r);return}}if(t.rejectBigInts)throw new Error(`Attempt to encode unwanted bigint: ${e}`);const o=i?I$3.NEG_BIGINT:I$3.POS_BIGINT,d=r.toString(16),f=d.length%2?"0":"";U$1(o,n,t);const c=c$1(f+d);a$1(c.length,n,f$4.BYTE_STRING),n.write(c);}function z(e,n,t){t.flushToZero&&(e=i(e)),Object.is(e,-0)?t.simplifyNegativeZero?t.avoidInts?p$1(0,n,t):a$1(0,n):p$1(e,n,t):!t.avoidInts&&Number.isSafeInteger(e)?a$1(e,n):t.reduceUnsafeNumbers&&Math.floor(e)===e&&e>=S$1.MIN&&e<=S$1.MAX?l(BigInt(e),n,t):p$1(e,n,t);}function K(e,n,t){const r=t.stringNormalization?e.normalize(t.stringNormalization):e,i=q.encode(r);a$1(i.length,n,f$4.UTF8_STRING),n.write(i);}function H(e,n,t){const r=e;F(r,r.length,f$4.ARRAY,n,t);for(const i of r)b(i,n,t);}function Z(e,n){const t=e;a$1(t.length,n,f$4.BYTE_STRING),n.write(t);}const m$1=new Map([[Array,H],[Uint8Array,Z]]);function ie(e,n){const t=m$1.get(e);return m$1.set(e,n),t}function F(e,n,t,r,i){const o=s$2(e);o&&!i.ignoreOriginalEncoding?r.write(o):a$1(n,r,t);}function J(e,n,t){if(e===null){n.writeUint8(P);return}if(!t.ignoreOriginalEncoding&&N$1.ENCODED in e){n.write(e[N$1.ENCODED]);return}const r=m$1.get(e.constructor);if(r){const o=r(e,n,t);o&&((typeof o[0]=="bigint"||isFinite(Number(o[0])))&&U$1(o[0],n,t),b(o[1],n,t));return}if(typeof e.toCBOR=="function"){const o=e.toCBOR(n,t);o&&((typeof o[0]=="bigint"||isFinite(Number(o[0])))&&U$1(o[0],n,t),b(o[1],n,t));return}if(typeof e.toJSON=="function"){b(e.toJSON(),n,t);return}const i=Object.entries(e).map(o=>[o[0],o[1],Y(o[0],t)]);t.sortKeys&&i.sort(t.sortKeys),F(e,i.length,f$4.MAP,n,t);for(const[o,d,f]of i)n.write(f),b(d,n,t);}function b(e,n,t){switch(typeof e){case "number":z(e,n,t);break;case "bigint":l(e,n,t);break;case "string":K(e,n,t);break;case "boolean":n.writeUint8(e?C$1:j);break;case "undefined":if(t.rejectUndefined)throw new Error("Attempt to encode unwanted undefined.");n.writeUint8(W);break;case "object":J(e,n,t);break;case "symbol":throw new TypeError(`Unknown symbol: ${e.toString()}`);default:throw new TypeError(`Unknown type: ${typeof e}, ${String(e)}`)}}function Y(e$1,n={}){const t={...k$2};n.dcbor?Object.assign(t,$):n.cde&&Object.assign(t,R$1),Object.assign(t,n);const r=new e(t);return b(e$1,r,t),r.read()}
18
+
19
+ var o=(e=>(e[e.NEVER=-1]="NEVER",e[e.PREFERRED=0]="PREFERRED",e[e.ALWAYS=1]="ALWAYS",e))(o||{});
20
+
21
+ class t{static KnownSimple=new Map([[T$1.FALSE,false],[T$1.TRUE,true],[T$1.NULL,null],[T$1.UNDEFINED,undefined]]);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}`);a$1(this.value,e,f$4.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)})`}}
22
+
23
+ const g$1=new TextDecoder("utf8",{fatal:true,ignoreBOM:true});class u{static defaultOptions={maxDepth:1024,encoding:"hex",requirePreferred:false};#t;#r;#e=0;#i;constructor(t,r){if(this.#i={...u.defaultOptions,...r},typeof t=="string")switch(this.#i.encoding){case "hex":this.#t=c$1(t);break;case "base64":this.#t=s$1(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 this.#t.subarray(t,this.#e)}*[Symbol.iterator](){if(yield*this.#n(0),this.#e!==this.#t.length)throw new Error("Extra data in input")}*#n(t$1){if(t$1++>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=false,a=0;switch(n){case o$2.ONE:if(a=1,e=this.#r.getUint8(this.#e),i===f$4.SIMPLE_FLOAT){if(e<32)throw new Error(`Invalid simple encoding in extra byte: ${e}`);f=true;}else if(this.#i.requirePreferred&&e<24)throw new Error(`Unexpectedly long integer encoding (1) for ${e}`);break;case o$2.TWO:if(a=2,i===f$4.SIMPLE_FLOAT)e=o$1(this.#t,this.#e);else if(e=this.#r.getUint16(this.#e,false),this.#i.requirePreferred&&e<=255)throw new Error(`Unexpectedly long integer encoding (2) for ${e}`);break;case o$2.FOUR:if(a=4,i===f$4.SIMPLE_FLOAT)e=this.#r.getFloat32(this.#e,false);else if(e=this.#r.getUint32(this.#e,false),this.#i.requirePreferred&&e<=65535)throw new Error(`Unexpectedly long integer encoding (4) for ${e}`);break;case o$2.EIGHT:{if(a=8,i===f$4.SIMPLE_FLOAT)e=this.#r.getFloat64(this.#e,false);else if(e=this.#r.getBigUint64(this.#e,false),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 o$2.INDEFINITE:switch(i){case f$4.POS_INT:case f$4.NEG_INT:case f$4.TAG:throw new Error(`Invalid indefinite encoding for MT ${i}`);case f$4.SIMPLE_FLOAT:yield [i,n,N$1.BREAK,r,0];return}e=1/0;break;default:f=true;}switch(this.#e+=a,i){case f$4.POS_INT:yield [i,n,e,r,a];break;case f$4.NEG_INT:yield [i,n,typeof e=="bigint"?-1n-e:-1-Number(e),r,a];break;case f$4.BYTE_STRING:e===1/0?yield*this.#s(i,t$1,r):yield [i,n,this.#a(e),r,e];break;case f$4.UTF8_STRING:e===1/0?yield*this.#s(i,t$1,r):yield [i,n,g$1.decode(this.#a(e)),r,e];break;case f$4.ARRAY:if(e===1/0)yield*this.#s(i,t$1,r,false);else {const o=Number(e);yield [i,n,o,r,a];for(let h=0;h<o;h++)yield*this.#n(t$1+1);}break;case f$4.MAP:if(e===1/0)yield*this.#s(i,t$1,r,false);else {const o=Number(e);yield [i,n,o,r,a];for(let h=0;h<o;h++)yield*this.#n(t$1),yield*this.#n(t$1);}break;case f$4.TAG:yield [i,n,e,r,a],yield*this.#n(t$1);break;case f$4.SIMPLE_FLOAT:{const o=e;f&&(e=t.create(Number(e))),yield [i,n,e,r,o];break}}}#a(t){const r=this.#t.subarray(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=true){for(yield [t,o$2.INDEFINITE,1/0,c,1/0];;){const n=this.#n(r),e=n.next(),[f,a,o]=e.value;if(o===N$1.BREAK){yield e.value,n.next();return}if(i){if(f!==t)throw new Error(`Unmatched major type. Expected ${t}, got ${f}.`);if(a===o$2.INDEFINITE)throw new Error("New stream started in typed stream")}yield e.value,yield*n;}}}
24
+
25
+ const O$4=new Map([[o$2.ZERO,1],[o$2.ONE,2],[o$2.TWO,3],[o$2.FOUR,5],[o$2.EIGHT,9]]),k$1=new Uint8Array(0);function v(d,n){return !n.boxed&&!n.preferMap&&d.every(([i])=>typeof i=="string")?Object.fromEntries(d):new Map(d)}class w{static defaultDecodeOptions={...u.defaultOptions,ParentType:w,boxed:false,cde:false,dcbor:false,diagnosticSizes:o.PREFERRED,convertUnsafeIntsToFloat:false,createObject:v,pretty:false,preferMap:false,rejectLargeNegatives:false,rejectBigInts:false,rejectDuplicateKeys:false,rejectFloats:false,rejectInts:false,rejectLongLoundNaN:false,rejectLongFloats:false,rejectNegativeZero:false,rejectSimple:false,rejectStreaming:false,rejectStringsNotNormalizedAs:null,rejectSubnormals:false,rejectUndefined:false,rejectUnsafeFloatInts:false,saveOriginal:false,sortKeys:null};static cdeDecodeOptions={cde:true,rejectStreaming:true,requirePreferred:true,sortKeys:f$1};static dcborDecodeOptions={...this.cdeDecodeOptions,dcbor:true,convertUnsafeIntsToFloat:true,rejectDuplicateKeys:true,rejectLargeNegatives:true,rejectLongLoundNaN:true,rejectLongFloats:true,rejectNegativeZero:true,rejectSimple:true,rejectUndefined:true,rejectUnsafeFloatInts:true,rejectStringsNotNormalizedAs:"NFC"};parent;mt;ai;left;offset;count=0;children=[];depth=0;#e;#t=null;constructor(n,i,e,t){if([this.mt,this.ai,,this.offset]=n,this.left=i,this.parent=e,this.#e=t,e&&(this.depth=e.depth+1),this.mt===f$4.MAP&&(this.#e.sortKeys||this.#e.rejectDuplicateKeys)&&(this.#t=[]),this.#e.rejectStreaming&&this.ai===o$2.INDEFINITE)throw new Error("Streaming not supported")}get isStreaming(){return this.left===1/0}get done(){return this.left===0}static create(n,i,e,t$1){const[s,l,r,a]=n;switch(s){case f$4.POS_INT:case f$4.NEG_INT:{if(e.rejectInts)throw new Error(`Unexpected integer: ${r}`);if(e.rejectLargeNegatives&&r<-0x8000000000000000n)throw new Error(`Invalid 65bit negative number: ${r}`);let o=r;return e.convertUnsafeIntsToFloat&&o>=S$1.MIN&&o<=S$1.MAX&&(o=Number(r)),e.boxed?d$1(o,t$1.toHere(a)):o}case f$4.SIMPLE_FLOAT:if(l>o$2.ONE){if(e.rejectFloats)throw new Error(`Decoding unwanted floating point number: ${r}`);if(e.rejectNegativeZero&&Object.is(r,-0))throw new Error("Decoding negative zero");if(e.rejectLongLoundNaN&&isNaN(r)){const o=t$1.toHere(a);if(o.length!==3||o[1]!==126||o[2]!==0)throw new Error(`Invalid NaN encoding: "${u$1(o)}"`)}if(e.rejectSubnormals&&l$1(t$1.toHere(a+1)),e.rejectLongFloats){const o=Y(r,{chunkSize:9,reduceUnsafeNumbers:e.rejectUnsafeFloatInts});if(o[0]>>5!==s)throw new Error(`Should have been encoded as int, not float: ${r}`);if(o.length<O$4.get(l))throw new Error(`Number should have been encoded shorter: ${r}`)}if(typeof r=="number"&&e.boxed)return d$1(r,t$1.toHere(a))}else {if(e.rejectSimple&&r instanceof t)throw new Error(`Invalid simple value: ${r}`);if(e.rejectUndefined&&r===undefined)throw new Error("Unexpected undefined")}return r;case f$4.BYTE_STRING:case f$4.UTF8_STRING:if(r===1/0)return new e.ParentType(n,1/0,i,e);if(e.rejectStringsNotNormalizedAs&&typeof r=="string"){const o=r.normalize(e.rejectStringsNotNormalizedAs);if(r!==o)throw new Error(`String not normalized as "${e.rejectStringsNotNormalizedAs}", got [${y$1(r)}] instead of [${y$1(o)}]`)}return e.boxed?d$1(r,t$1.toHere(a)):r;case f$4.ARRAY:return new e.ParentType(n,r,i,e);case f$4.MAP:return new e.ParentType(n,r*2,i,e);case f$4.TAG:{const o=new e.ParentType(n,1,i,e);return o.children=new i$1(r),o}}throw new TypeError(`Invalid major type: ${s}`)}push(n,i,e){if(this.children.push(n),this.#t){const t=f$3(n)||i.toHere(e);this.#t.push(t);}return --this.left}replaceLast(n,i,e){let t,s=-1/0;if(this.children instanceof i$1?(s=0,t=this.children.contents,this.children.contents=n):(s=this.children.length-1,t=this.children[s],this.children[s]=n),this.#t){const l=f$3(n)||e.toHere(i.offset);this.#t[s]=l;}return t}convert(n){let i;switch(this.mt){case f$4.ARRAY:i=this.children;break;case f$4.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,l,r]of e){const a=u$1(r);if(t.has(a))throw new Error(`Duplicate key: "0x${a}"`);t.add(a);}}i=this.#e.createObject(e,this.#e);break}case f$4.BYTE_STRING:return g$2(this.children);case f$4.UTF8_STRING:{const e=this.children.join("");i=this.#e.boxed?d$1(e,n.toHere(this.offset)):e;break}case f$4.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"&&u$2(i,n.toHere(this.offset)),i}#r(){const n=this.children,i=n.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]=[n[t],n[t+1],this.#t[t]];else for(let t=0;t<i;t+=2)e[t>>1]=[n[t],n[t+1],k$1];return e}}
26
+
27
+ class C extends w{depth=0;leaf=false;value;length;[N$1.ENCODED];constructor(a,s,e,n){super(a,s,e,n),this.parent?this.depth=this.parent.depth+1:this.depth=n.initialDepth,[,,this.value,,this.length]=a;}numBytes(){switch(this.ai){case o$2.ONE:return 1;case o$2.TWO:return 2;case o$2.FOUR:return 4;case o$2.EIGHT:return 8}return 0}}function E$1(t){return t instanceof C}function c(t,a){return t===1/0?"Indefinite":a?`${t} ${a}${t!==1&&t!==1n?"s":""}`:String(t)}function O$3(t){return "".padStart(t," ")}function T(t$1,a,s){let e="";e+=O$3(t$1.depth*2);const n=f$3(t$1);e+=u$1(n.subarray(0,1));const i=t$1.numBytes();i&&(e+=" ",e+=u$1(n.subarray(1,i+1))),e=e.padEnd(a.minCol+1," "),e+="-- ",s!==undefined&&(e+=O$3(t$1.depth*2),s!==""&&(e+=`[${s}] `));let u=false;const[r]=t$1.children;switch(t$1.mt){case f$4.POS_INT:e+=`Unsigned: ${r}`,typeof r=="bigint"&&(e+="n");break;case f$4.NEG_INT:e+=`Negative: ${r}`,typeof r=="bigint"&&(e+="n");break;case f$4.BYTE_STRING:e+=`Bytes (Length: ${c(t$1.length)})`;break;case f$4.UTF8_STRING:e+=`UTF8 (Length: ${c(t$1.length)})`,t$1.length!==1/0&&(e+=`: ${JSON.stringify(r)}`);break;case f$4.ARRAY:e+=`Array (Length: ${c(t$1.value,"item")})`;break;case f$4.MAP:e+=`Map (Length: ${c(t$1.value,"pair")})`;break;case f$4.TAG:{e+=`Tag #${t$1.value}`;const o=t$1.children,[l]=o.contents.children,f=new i$1(o.tag,l);u$2(f,n);const y=f.comment(a,t$1.depth);y&&(e+=": ",e+=y),u||=f.noChildren;break}case f$4.SIMPLE_FLOAT:r===N$1.BREAK?e+="BREAK":t$1.ai>o$2.ONE?Object.is(r,-0)?e+="Float: -0":e+=`Float: ${r}`:(e+="Simple: ",r instanceof t?e+=r.value:e+=r);break}if(!u)if(t$1.leaf){if(e+=`
28
+ `,n.length>i+1){const o=O$3((t$1.depth+1)*2);for(let l=i+1;l<n.length;l+=8)e+=o,e+=u$1(n.subarray(l,l+8)),e+=`
29
+ `;}}else {e+=`
30
+ `;let o=0;for(const l of t$1.children){if(E$1(l)){let f=String(o);t$1.mt===f$4.MAP?f=o%2?`val ${(o-1)/2}`:`key ${o/2}`:t$1.mt===f$4.TAG&&(f=""),e+=T(l,a,f);}o++;}}return e}const k={...w.defaultDecodeOptions,initialDepth:0,noPrefixHex:false,minCol:0};function I$1(t,a){const s={...k,...a,ParentType:C,saveOriginal:true},e=new u(t,s);let n,i;for(const r of e){if(i=w.create(r,n,s,e),r[2]===N$1.BREAK)if(n?.isStreaming)n.left=1;else throw new Error("Unexpected BREAK");if(!E$1(i)){const f=new C(r,0,n,s);f.leaf=true,f.children.push(i),u$2(f,e.toHere(r[3])),i=f;}let o=(i.depth+1)*2;const l=i.numBytes();for(l&&(o+=1,o+=l*2),s.minCol=Math.max(s.minCol,o),n&&n.push(i,e,r[3]),n=i;n?.done;)i=n,i.leaf||u$2(i,e.toHere(i.offset)),{parent:n}=n;}a&&(a.minCol=s.minCol);let u$3=s.noPrefixHex?"":`0x${u$1(e.toHere(0))}
31
+ `;return u$3+=T(i,s),u$3}
32
+
33
+ const R=!f$2();function B(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 U(e){if(!Array.isArray(e))throw new Error(`Expected Array: ${e}`)}ie(Map,(e,r,n)=>{const i=[...e.entries()].map(s=>[s[0],s[1],Y(s[0],n)]);if(n.rejectDuplicateKeys){const s=new Set;for(const[c,y,u]of i){const g=u$1(u);if(s.has(g))throw new Error(`Duplicate map key: 0x${g}`);s.add(g);}}n.sortKeys&&i.sort(n.sortKeys),F(e,e.size,f$4.MAP,r,n);for(const[s,c,y]of i)r.write(y),b(c,r,n);});function S(e){return f(e.contents),new Date(e.contents)}S.comment=e=>(f(e.contents),`(String Date) ${new Date(e.contents).toISOString()}`),i$1.registerDecoder(I$3.DATE_STRING,S);function h(e){return B(e.contents),new Date(e.contents*1e3)}h.comment=e=>(B(e.contents),`(Epoch Date) ${new Date(e.contents*1e3).toISOString()}`),i$1.registerDecoder(I$3.DATE_EPOCH,h),ie(Date,e=>[I$3.DATE_EPOCH,e.valueOf()/1e3]);function p(e,r,n){if(E(r.contents),n.rejectBigInts)throw new Error(`Decoding unwanted big integer: ${r}(h'${u$1(r.contents)}')`);if(n.requirePreferred&&r.contents[0]===0)throw new Error(`Decoding overly-large bigint: ${r.tag}(h'${u$1(r.contents)})`);let i=r.contents.reduce((s,c)=>s<<8n|BigInt(c),0n);if(e&&(i=-1n-i),n.requirePreferred&&i>=Number.MIN_SAFE_INTEGER&&i<=Number.MAX_SAFE_INTEGER)throw new Error(`Decoding bigint that could have been int: ${i}n`);return n.boxed?d$1(i,r.contents):i}const O$2=p.bind(null,false),N=p.bind(null,true);O$2.comment=(e,r)=>`(Positive BigInt) ${p(false,e,r)}n`,N.comment=(e,r)=>`(Negative BigInt) ${p(true,e,r)}n`,i$1.registerDecoder(I$3.POS_BIGINT,O$2),i$1.registerDecoder(I$3.NEG_BIGINT,N);function I(e,r){return E(e.contents),e}I.comment=(e,r,n)=>{E(e.contents);const i={...r,initialDepth:n+2,noPrefixHex:true},s=f$3(e);let y=2**((s[0]&31)-24)+1;const u=s[y]&31;let g=u$1(s.subarray(y,++y));u>=24&&(g+=" ",g+=u$1(s.subarray(y,y+2**(u-24)))),i.minCol=Math.max(i.minCol,(n+1)*2+g.length);const b=I$1(e.contents,i);let T=`Embedded CBOR
34
+ `;return T+=`${"".padStart((n+1)*2," ")}${g}`.padEnd(i.minCol+1," "),T+=`-- Bytes (Length: ${e.contents.length})
35
+ `,T+=b,T},I.noChildren=true,i$1.registerDecoder(I$3.CBOR,I),i$1.registerDecoder(I$3.URI,e=>(f(e.contents),new URL(e.contents)),"URI"),ie(URL,e=>[I$3.URI,e.toString()]),i$1.registerDecoder(I$3.BASE64URL,e=>(f(e.contents),l$2(e.contents)),"Base64url-encoded"),i$1.registerDecoder(I$3.BASE64,e=>(f(e.contents),s$1(e.contents)),"Base64-encoded"),i$1.registerDecoder(35,e=>(f(e.contents),new RegExp(e.contents)),"RegExp"),i$1.registerDecoder(21065,e=>{f(e.contents);const r=`^(?:${e.contents})$`;return new RegExp(r,"u")},"I-RegExp"),i$1.registerDecoder(I$3.REGEXP,e=>{if(U(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"),ie(RegExp,e=>[I$3.REGEXP,[e.source,e.flags]]),i$1.registerDecoder(64,e=>(E(e.contents),e.contents),"uint8 Typed Array");function d(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 s=new r(i),c=new DataView(e.contents.buffer,e.contents.byteOffset,e.contents.byteLength),y=c[`get${r.name.replace(/Array/,"")}`].bind(c);for(let u=0;u<i;u++)s[u]=y(u*r.BYTES_PER_ELEMENT,n);return s}function A(e,r,n,i,s){const c=s.forceEndian??R;if(U$1(c?r:n,e,s),a$1(i.byteLength,e,f$4.BYTE_STRING),R===c)e.write(new Uint8Array(i.buffer,i.byteOffset,i.byteLength));else {const u=`write${i.constructor.name.replace(/Array/,"")}`,g=e[u].bind(e);for(const b of i)g(b,c);}}i$1.registerDecoder(65,e=>d(e,Uint16Array,false),"uint16, big endian, Typed Array"),i$1.registerDecoder(66,e=>d(e,Uint32Array,false),"uint32, big endian, Typed Array"),i$1.registerDecoder(67,e=>d(e,BigUint64Array,false),"uint64, big endian, Typed Array"),i$1.registerDecoder(68,e=>(E(e.contents),new Uint8ClampedArray(e.contents)),"uint8 Typed Array, clamped arithmetic"),ie(Uint8ClampedArray,e=>[68,new Uint8Array(e.buffer,e.byteOffset,e.byteLength)]),i$1.registerDecoder(69,e=>d(e,Uint16Array,true),"uint16, little endian, Typed Array"),ie(Uint16Array,(e,r,n)=>A(r,69,65,e,n)),i$1.registerDecoder(70,e=>d(e,Uint32Array,true),"uint32, little endian, Typed Array"),ie(Uint32Array,(e,r,n)=>A(r,70,66,e,n)),i$1.registerDecoder(71,e=>d(e,BigUint64Array,true),"uint64, little endian, Typed Array"),ie(BigUint64Array,(e,r,n)=>A(r,71,67,e,n)),i$1.registerDecoder(72,e=>(E(e.contents),new Int8Array(e.contents)),"sint8 Typed Array"),ie(Int8Array,e=>[72,new Uint8Array(e.buffer,e.byteOffset,e.byteLength)]),i$1.registerDecoder(73,e=>d(e,Int16Array,false),"sint16, big endian, Typed Array"),i$1.registerDecoder(74,e=>d(e,Int32Array,false),"sint32, big endian, Typed Array"),i$1.registerDecoder(75,e=>d(e,BigInt64Array,false),"sint64, big endian, Typed Array"),i$1.registerDecoder(77,e=>d(e,Int16Array,true),"sint16, little endian, Typed Array"),ie(Int16Array,(e,r,n)=>A(r,77,73,e,n)),i$1.registerDecoder(78,e=>d(e,Int32Array,true),"sint32, little endian, Typed Array"),ie(Int32Array,(e,r,n)=>A(r,78,74,e,n)),i$1.registerDecoder(79,e=>d(e,BigInt64Array,true),"sint64, little endian, Typed Array"),ie(BigInt64Array,(e,r,n)=>A(r,79,75,e,n)),i$1.registerDecoder(81,e=>d(e,Float32Array,false),"IEEE 754 binary32, big endian, Typed Array"),i$1.registerDecoder(82,e=>d(e,Float64Array,false),"IEEE 754 binary64, big endian, Typed Array"),i$1.registerDecoder(85,e=>d(e,Float32Array,true),"IEEE 754 binary32, little endian, Typed Array"),ie(Float32Array,(e,r,n)=>A(r,85,81,e,n)),i$1.registerDecoder(86,e=>d(e,Float64Array,true),"IEEE 754 binary64, big endian, Typed Array"),ie(Float64Array,(e,r,n)=>A(r,86,82,e,n)),i$1.registerDecoder(I$3.SET,e=>(U(e.contents),new Set(e.contents)),"Set"),ie(Set,e=>[I$3.SET,[...e]]),i$1.registerDecoder(I$3.JSON,e=>(f(e.contents),JSON.parse(e.contents)),"JSON-encoded"),i$1.registerDecoder(I$3.SELF_DESCRIBED,e=>e.contents,"Self-Described"),i$1.registerDecoder(I$3.INVALID_16,()=>{throw new Error(`Tag always invalid: ${I$3.INVALID_16}`)},"Invalid"),i$1.registerDecoder(I$3.INVALID_32,()=>{throw new Error(`Tag always invalid: ${I$3.INVALID_32}`)},"Invalid"),i$1.registerDecoder(I$3.INVALID_64,()=>{throw new Error(`Tag always invalid: ${I$3.INVALID_64}`)},"Invalid");function D(e){throw new Error(`Encoding ${e.constructor.name} intentionally unimplmented. It is not concrete enough to interoperate. Convert to Uint8Array first.`)}ie(ArrayBuffer,D),ie(DataView,D),typeof SharedArrayBuffer<"u"&&ie(SharedArrayBuffer,D);function m(e){return [NaN,e.valueOf()]}ie(Boolean,m),ie(Number,m),ie(String,m),ie(BigInt,m);
36
+
37
+ function O$1(a,i={}){const n={...w.defaultDecodeOptions};if(i.dcbor?Object.assign(n,w.dcborDecodeOptions):i.cde&&Object.assign(n,w.cdeDecodeOptions),Object.assign(n,i),Object.hasOwn(n,"rejectLongNumbers"))throw new TypeError("rejectLongNumbers has changed to requirePreferred");n.boxed&&(n.saveOriginal=true);const t=new u(a,n);let e,r;for(const s of t){if(r=w.create(s,e,n,t),s[2]===N$1.BREAK)if(e?.isStreaming)e.left=0;else throw new Error("Unexpected BREAK");else e&&e.push(r,t,s[3]);for(r instanceof w&&(e=r);e?.done;){r=e.convert(t);const c=e.parent;c?.replaceLast(r,e,t),e=c;}}return r}
38
+
39
+ const O=" ",y=new TextEncoder;class g extends w{close="";quote='"';get isEmptyStream(){return (this.mt===f$4.UTF8_STRING||this.mt===f$4.BYTE_STRING)&&this.count===0}}function a(m,l,n,p){let t="";if(l===o$2.INDEFINITE)t+="_";else {if(p.diagnosticSizes===o.NEVER)return "";{let r=p.diagnosticSizes===o.ALWAYS;if(!r){let e=o$2.ZERO;if(Object.is(n,-0))e=o$2.TWO;else if(m===f$4.POS_INT||m===f$4.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=o$2.ONE:o<=65535?e=o$2.TWO:o<=4294967295?e=o$2.FOUR:e=o$2.EIGHT;}else isFinite(n)?Math.fround(n)===n?s(n)==null?e=o$2.FOUR:e=o$2.TWO:e=o$2.EIGHT:e=o$2.TWO;r=e!==l;}r&&(t+="_",l<o$2.ONE?t+="i":t+=String(l-24));}}return t}function M(m,l){const n={...w.defaultDecodeOptions,...l,ParentType:g},p=new u(m,n);let t$1,r,e="";for(const T of p){const[u,o,i]=T;switch(t$1&&(t$1.count>0&&i!==N$1.BREAK&&(t$1.mt===f$4.MAP&&t$1.count%2?e+=": ":(e+=",",n.pretty||(e+=" "))),n.pretty&&(t$1.mt!==f$4.MAP||t$1.count%2===0)&&(e+=`
40
+ ${O.repeat(t$1.depth+1)}`)),r=w.create(T,t$1,n,p),u){case f$4.POS_INT:case f$4.NEG_INT:e+=String(i),e+=a(u,o,i,n);break;case f$4.SIMPLE_FLOAT:if(i!==N$1.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 t?(e+="simple(",e+=String(i.value),e+=a(f$4.POS_INT,o,i.value,n),e+=")"):e+=String(i);break;case f$4.BYTE_STRING:i===1/0?(e+="(_ ",r.close=")",r.quote="'"):(e+="h'",e+=u$1(i),e+="'",e+=a(f$4.POS_INT,o,i.length,n));break;case f$4.UTF8_STRING:i===1/0?(e+="(_ ",r.close=")"):(e+=JSON.stringify(i),e+=a(f$4.POS_INT,o,y.encode(i).length,n));break;case f$4.ARRAY:{e+="[";const c=a(f$4.POS_INT,o,i,n);e+=c,c&&(e+=" "),n.pretty&&i?r.close=`
41
+ ${O.repeat(r.depth)}]`:r.close="]";break}case f$4.MAP:{e+="{";const c=a(f$4.POS_INT,o,i,n);e+=c,c&&(e+=" "),n.pretty&&i?r.close=`
42
+ ${O.repeat(r.depth)}}`:r.close="}";break}case f$4.TAG:e+=String(i),e+=a(f$4.POS_INT,o,i,n),e+="(",r.close=")";break}if(r===N$1.BREAK)if(t$1?.isStreaming)t$1.left=0;else throw new Error("Unexpected BREAK");else t$1&&(t$1.count++,t$1.left--);for(r instanceof g&&(t$1=r);t$1?.done;){if(t$1.isEmptyStream)e=e.slice(0,-3),e+=`${t$1.quote}${t$1.quote}_`;else {if(t$1.mt===f$4.MAP&&t$1.count%2!==0)throw new Error(`Odd streaming map size: ${t$1.count}`);e+=t$1.close;}t$1=t$1.parent;}}return e}
43
+
44
+ exports.Tag = i$1;
45
+ exports.comment = I$1;
46
+ exports.decode = O$1;
47
+ exports.diagnose = M;
48
+ exports.encode = Y;
49
+ exports.registerEncoder = ie;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cbor2Wrapper.js","sourceRoot":"","sources":["../../../src/wrappers/cbor2Wrapper.ts"],"names":[],"mappings":";;;AAOA,YAAY;AACZ,iCAA+D;AAItD,uFAJA,cAAM,OAIA;AAAE,uFAJA,cAAM,OAIA;AAAE,oFAJA,WAAG,OAIA;AAAmB,wFAJjB,eAAO,OAIiB;AAAE,yFAJjB,gBAAQ,OAIiB;AAHhE,YAAY;AACZ,2CAAgD;AAElB,gGAFrB,yBAAe,OAEqB"}
@@ -0,0 +1,12 @@
1
+ export declare const sha256Hash: (data: any) => Uint8Array<ArrayBufferLike>;
2
+ export default class Xoshiro {
3
+ private s;
4
+ constructor(seed: Uint8Array);
5
+ private setS;
6
+ private roll;
7
+ next: () => bigint;
8
+ nextDouble: () => number;
9
+ nextInt: (low: number, high: number) => number;
10
+ nextByte: () => number;
11
+ nextData: (count: number) => number[];
12
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sha256Hash = void 0;
4
+ const sha256_js_1 = require("./helpers/sha256.js");
5
+ const sha256Hash = (data) => {
6
+ return (0, sha256_js_1.sha256)(data);
7
+ };
8
+ exports.sha256Hash = sha256Hash;
9
+ const MAX_UINT64 = BigInt("0xffffffffffffffff");
10
+ const rotl = (x, k) => (x << BigInt(k) | x >> BigInt(64 - k)) & MAX_UINT64;
11
+ class Xoshiro {
12
+ s;
13
+ constructor(seed) {
14
+ const digest = (0, exports.sha256Hash)(seed);
15
+ this.s = [0n, 0n, 0n, 0n];
16
+ this.setS(digest);
17
+ }
18
+ setS = (digest) => {
19
+ for (let i = 0; i < 4; i++) {
20
+ let o = i * 8;
21
+ let v = 0n;
22
+ for (let n = 0; n < 8; n++) {
23
+ v = (v << 8n) | BigInt(digest[o + n]);
24
+ }
25
+ this.s[i] = v & MAX_UINT64;
26
+ }
27
+ };
28
+ roll = () => {
29
+ const result = ((rotl((this.s[1] * 5n) & MAX_UINT64, 7) * 9n) & MAX_UINT64);
30
+ const t = (this.s[1] << 17n) & MAX_UINT64;
31
+ this.s[2] ^= this.s[0];
32
+ this.s[3] ^= this.s[1];
33
+ this.s[1] ^= this.s[2];
34
+ this.s[0] ^= this.s[3];
35
+ this.s[2] ^= t;
36
+ this.s[3] = rotl(this.s[3], 45);
37
+ return result;
38
+ };
39
+ next = () => {
40
+ return this.roll();
41
+ };
42
+ nextDouble = () => {
43
+ return Number(this.roll()) / Number(MAX_UINT64 + 1n);
44
+ };
45
+ nextInt = (low, high) => {
46
+ return Math.floor(this.nextDouble() * (high - low + 1) + low);
47
+ };
48
+ nextByte = () => this.nextInt(0, 255);
49
+ nextData = (count) => [...new Array(count)].map(() => this.nextByte());
50
+ }
51
+ exports.default = Xoshiro;
52
+ //# sourceMappingURL=xoshiro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xoshiro.js","sourceRoot":"","sources":["../../src/xoshiro.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ export type MultipartPayload = {
2
+ seqNum: number;
3
+ seqLength: number;
4
+ messageLength: number;
5
+ checksum: number;
6
+ fragment: Uint8Array;
7
+ };
8
+ declare class FountainBlock {
9
+ protected _indexes: number[];
10
+ protected _fragment: Uint8Array;
11
+ constructor(_indexes: number[], _fragment: Uint8Array);
12
+ /** What blocks is mixed in this block */
13
+ get indexes(): number[];
14
+ /** Data */
15
+ get fragment(): Uint8Array<ArrayBufferLike>;
16
+ isSimple(): boolean;
17
+ isSubsetOf(other: FountainBlock): boolean;
18
+ isSupersetOf(other: FountainBlock): boolean;
19
+ reduceBy(other: FountainBlock): FountainBlock;
20
+ }
21
+ export declare class FountainDecoder {
22
+ /** Did we received any parts and started decoding */
23
+ started: boolean;
24
+ done: boolean;
25
+ /** Stores the error if decoding fauls */
26
+ protected error: Error | undefined;
27
+ /** Stores the decoded data*/
28
+ protected resultRaw: Uint8Array | undefined;
29
+ /** Stores the expected length of the final message */
30
+ protected expectedMessageLength: number;
31
+ /** Stores the expected checksum of the final message */
32
+ protected expectedChecksum: number;
33
+ /** Stores the expected message length of each fragment */
34
+ protected expectedFragmentLength: number;
35
+ /** Total number of simple fragments */
36
+ protected expectedPartCount: number;
37
+ /** Mixed Parts that we cannot reduce to simple parts yet */
38
+ protected mixedBlocks: FountainBlock[];
39
+ /** Non-mixed single parts */
40
+ protected simpleBlocks: FountainBlock[];
41
+ /** Queue of parts that may take part in reduction */
42
+ protected queuedBlocks: FountainBlock[];
43
+ /** Bitmap array of seen block */
44
+ seenBlocks: number[];
45
+ /** Bitmap array of decoded blocks */
46
+ decodedBlocks: number[];
47
+ /** Keeps track of the how many parts have been processed */
48
+ protected processedPartsCount: number;
49
+ get result(): Uint8Array | Error | undefined;
50
+ isSuccessful(): boolean;
51
+ isComplete(): boolean;
52
+ constructor(parts?: Uint8Array[]);
53
+ reset(): void;
54
+ protected setExpectedValues(decodedPart: MultipartPayload): void;
55
+ /**
56
+ * Set the expected values on the initial run the current decoder.
57
+ * And check if the next multipart ur is a 'member' of the originally scanned ur with the current decoder.
58
+ * @param decodedPart received multipart ur
59
+ * @returns boolean indicating if the multipart ur is a 'member' of the originally scanned ur with the current decoder.
60
+ */
61
+ protected validatePart(decodedPart: MultipartPayload): boolean;
62
+ finalize(): void;
63
+ parseInput(input: Uint8Array | MultipartPayload): MultipartPayload;
64
+ receivePart(encodedPart: Uint8Array | MultipartPayload): boolean;
65
+ protected processQueue(): void;
66
+ /**
67
+ * Process a "pure" fragment. this is a original fragment that is not mixed with any other fragments.
68
+ * @param block object with the indexes and the fragment payload buffer.
69
+ * @returns
70
+ */
71
+ protected processSimpleBlock(block: FountainBlock): void;
72
+ /**
73
+ * Process the mixed parts
74
+ * @param newPart
75
+ * @returns
76
+ */
77
+ protected processMixedBlock(newPart: FountainBlock): void;
78
+ /**
79
+ * Process all the mixed blocks by the given block
80
+ * If the mixed part can be reduced to a simple part, add it to the queue
81
+ * If a mixed part is reduced to simpler part add it to the mixed
82
+ * @param block
83
+ */
84
+ protected reduceAllMixedBlocksBy(block: FountainBlock): void;
85
+ /**
86
+ *
87
+ *
88
+ * The next part it receives is 3: A ⊕ B ⊕ C ⊕ D.
89
+ * Each time a part is received, the decoder checks to see whether the set of fragments it contains
90
+ * is a proper subset or superset of the set of fragments in any part is has received.
91
+ * If so, it can reduce the superset part by the subset part. In this case,
92
+ * it discovers it can reduce the incoming part 3: A ⊕ B ⊕ C ⊕ D by XORing it with part 1: A ⊕ B ⊕ C,
93
+ * yielding the simple part 3: D.
94
+ */
95
+ /**
96
+ *
97
+ * Try the reduce mixed part A by the part B
98
+ * If B is a subset of A then we can reduce A by B
99
+ * Otherwise return A
100
+ *
101
+ * @param a existing mixedpart
102
+ * @param b newly received mixedpart
103
+ * @returns
104
+ */
105
+ private reducePartByPart_;
106
+ private reducePartByPart;
107
+ estimatedPercentComplete(): number;
108
+ getProgress(): number;
109
+ getDecodedData(): any;
110
+ getError(): Error | undefined;
111
+ }
112
+ export type IMultipartUrPayload = [number, number, number, number, Uint8Array];
113
+ /**
114
+ * Parse CBOR encoded Multipart Payload
115
+ * @param encodeded
116
+ * @returns
117
+ */
118
+ export declare function parseMultipartCbor(encodeded: Uint8Array): MultipartPayload;
119
+ /**
120
+ * Validate and convert the decoded multipart payload to MultipartPayload object
121
+ * @param decoded
122
+ * @returns
123
+ */
124
+ export declare function validateDecodedMultipart(decoded: IMultipartUrPayload): MultipartPayload;
125
+ export {};