UNPKG

@substrate-system/bencode

Version:
3 lines (2 loc) 2.37 kB
"use strict";var d=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var l=(r,t)=>d(r,"name",{value:t,configurable:!0});var m=(r,t)=>{for(var e in t)d(r,e,{get:t[e],enumerable:!0})},p=(r,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of y(t))!b.call(r,o)&&o!==e&&d(r,o,{get:()=>t[o],enumerable:!(i=g(t,o))||i.enumerable});return r};var A=r=>p(d({},"__esModule",{value:!0}),r);var T={};m(T,{default:()=>R});module.exports=A(T);var s=require("@substrate-system/uint8-util");const x=105,h=58,w=100,D=108,c=101,n=l(function r(t,e,i,o){if(!t||t.length===0)throw new Error("Missing data to decode.");return typeof e!="number"&&o==null&&(o=e,e=void 0),typeof i!="number"&&o==null&&(o=i,i=void 0),r.position=0,r.encoding=o||null,r.data=ArrayBuffer.isView(t)?new Uint8Array(t.slice(e,i)):(0,s.text2arr)(t),r.bytes=r.data.length,r.next()},"decode");n.bytes=0,n.position=0,n.data=null,n.encoding=null,n.next=function(){switch(n.data[n.position]){case w:return n.dictionary();case D:return n.list();case x:return n.integer();default:return n.buffer()}},n.find=function(r){if(!n.data?.length)return null;let t=n.position;const e=n.data.length,i=n.data;for(;t<e;){if(i[t]===r)return t;t++}throw new Error('Invalid data: Missing delimiter "'+String.fromCharCode(r)+'" [0x'+r.toString(16)+"]")},n.dictionary=function(){if(!n.data)return null;n.position++;const r={};for(;n.data[n.position]!==c;){const t=n.buffer();if(typeof t=="string"){r[t]=n.next();continue}let e=(0,s.arr2text)(t);e.includes("\uFFFD")&&(e=(0,s.arr2hex)(t)),r[e]=n.next()}return n.position++,r},n.list=function(){n.position++;const r=[];for(;n.data[n.position]!==c;)r.push(n.next());return n.position++,r},n.integer=function(){const r=n.find(c),t=f(n.data,n.position+1,r);if(!r)throw new Error("not end");return n.position+=r+1-n.position,t},n.buffer=function(){const r=n.find(h),t=(r||0)+1,e=f(n.data,n.position,r),i=t+e;return n.position=i,n.encoding?(0,s.arr2text)(n.data.slice(t,i)):n.data.slice(t,i)};var R=n;function f(r,t,e){let i=0,o=1;for(let a=t;a<e;a++){const u=r[a];if(u<58&&u>=48){i=i*10+(u-48);continue}if(!(a===t&&u===43)){if(a===t&&u===45){o=-1;continue}if(u===46)break;throw new Error("not a number: buffer["+a+"] = "+u)}}return i*o}l(f,"getIntFromBuffer"); //# sourceMappingURL=decode.min.cjs.map