🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more →

it-length-prefixed-stream

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

it-length-prefixed-stream - npm Package Compare versions

Comparing version

to
1.2.0

(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.ItLengthPrefixedStream = factory()}(typeof self !== 'undefined' ? self : this, function () {
"use strict";var ItLengthPrefixedStream=(()=>{var F=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var W=Object.prototype.hasOwnProperty;var q=(r,t)=>{for(var e in t)F(r,e,{get:t[e],enumerable:!0})},X=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of v(t))!W.call(r,i)&&i!==e&&F(r,i,{get:()=>t[i],enumerable:!(n=j(t,i))||n.enumerable});return r};var H=r=>X(F({},"__esModule",{value:!0}),r);var nt={};q(nt,{lpStream:()=>et});function b(r=0){return new Uint8Array(r)}function d(r=0){return new Uint8Array(r)}function N(r,t){t==null&&(t=r.reduce((i,h)=>i+h.length,0));let e=d(t),n=0;for(let i of r)e.set(i,n),n+=i.length;return e}function B(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}var T=Symbol.for("@achingbrain/uint8arraylist");function M(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let i=e+n.byteLength;if(t<i)return{buf:n,index:t-e};e=i}throw new RangeError("index is out of bounds")}function L(r){return!!r?.[T]}var y=class r{bufs;length;[T]=!0;constructor(...t){this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let n of t)if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.push(n);else if(L(n))e+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let n of t.reverse())if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.unshift(n);else if(L(n))e+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=M(this.bufs,t);return e.buf[e.index]}set(t,e){let n=M(this.bufs,t);n.buf[n.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(e+n,t[n]);else if(L(t))for(let n=0;n<t.length;n++)this.set(e+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:n,length:i}=this._subList(t,e);return N(n,i)}subarray(t,e){let{bufs:n,length:i}=this._subList(t,e);return n.length===1?n[0]:N(n,i)}sublist(t,e){let{bufs:n,length:i}=this._subList(t,e),h=new r;return h.length=i,h.bufs=[...n],h}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:this.bufs,length:this.length};let n=[],i=0;for(let h=0;h<this.bufs.length;h++){let s=this.bufs[h],a=i,c=a+s.byteLength;if(i=c,t>=c)continue;let w=t>=a&&t<c,l=e>a&&e<=c;if(w&&l){if(t===a&&e===c){n.push(s);break}let u=t-a;n.push(s.subarray(u,u+(e-t)));break}if(w){if(t===0){n.push(s);continue}n.push(s.subarray(t-a));continue}if(l){if(e===c){n.push(s);break}n.push(s.subarray(0,e-a));break}n.push(s)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!L(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let h=256,s=new Int32Array(h);for(let u=0;u<h;u++)s[u]=-1;for(let u=0;u<i;u++)s[n[u]]=u;let a=s,c=this.byteLength-n.byteLength,w=n.byteLength-1,l;for(let u=e;u<=c;u+=l){l=0;for(let g=w;g>=0;g--){let _=this.get(u+g);if(n[g]!==_){l=Math.max(1,g-a[_]);break}}if(l===0)return u}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let n=d(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,e),this.write(n,t)}getInt16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,e)}setInt16(t,e,n){let i=b(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,e,n),this.write(i,t)}getInt32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,e)}setInt32(t,e,n){let i=b(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,e,n),this.write(i,t)}getBigInt64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,e)}setBigInt64(t,e,n){let i=b(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,e,n),this.write(i,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let n=d(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,e),this.write(n,t)}getUint16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,e)}setUint16(t,e,n){let i=b(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,e,n),this.write(i,t)}getUint32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,e)}setUint32(t,e,n){let i=b(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,e,n),this.write(i,t)}getBigUint64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,e)}setBigUint64(t,e,n){let i=b(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,e,n),this.write(i,t)}getFloat32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,e)}setFloat32(t,e,n){let i=b(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,e,n),this.write(i,t)}getFloat64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,e)}setFloat64(t,e,n){let i=b(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,e,n),this.write(i,t)}equals(t){if(t==null||!(t instanceof r)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;e<this.bufs.length;e++)if(!B(this.bufs[e],t.bufs[e]))return!1;return!0}static fromUint8Arrays(t,e){let n=new r;return n.bufs=t,e==null&&(e=t.reduce((i,h)=>i+h.byteLength,0)),n.length=e,n}};function p(){let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r}var x=class extends Error{type;code;constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=e??"ABORT_ERR"}};async function k(r,t,e){if(t==null)return r;if(t.aborted)return Promise.reject(new x(e?.errorMessage,e?.errorCode));let n,i=new x(e?.errorMessage,e?.errorCode);try{return await Promise.race([r,new Promise((h,s)=>{n=()=>{s(i)},t.addEventListener("abort",n)})])}finally{n!=null&&t.removeEventListener("abort",n)}}var R=class{readNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.readNext=p(),this.haveNext=p()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("HaveNext promise resolved but nextResult was undefined");let t=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=p(),t}async throw(t){return this.ended=!0,t!=null&&this.haveNext.reject(t),{done:!0,value:void 0}}async return(){let t={done:!0,value:void 0};return await this._push(void 0),t}async push(t,e){await this._push(t,e)}async end(t,e){t!=null?await this.throw(t):await this._push(void 0,e)}async _push(t,e){if(t!=null&&this.ended)throw new Error("Cannot push value onto an ended pushable");if(this.nextResult!=null&&(await this.readNext.promise,this.nextResult!=null))throw new Error("NeedNext promise resolved but nextResult was not consumed");t!=null?this.nextResult={done:!1,value:t}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=p(),await k(this.readNext.promise,e?.signal,e)}};function I(){return new R}var U=class extends Error{code;constructor(t,e){super(t),this.code=e}},D=class extends U{type;constructor(t){super(t,"ABORT_ERR"),this.type="aborted"}};function P(r,t){let e=I();r.sink(e).catch(async s=>{await e.end(s)}),r.sink=async s=>{for await(let a of s)await e.push(a);await e.end()};let n=r.source;r.source[Symbol.iterator]!=null?n=r.source[Symbol.iterator]():r.source[Symbol.asyncIterator]!=null&&(n=r.source[Symbol.asyncIterator]());let i=new y;return{read:async(s,a)=>{a?.signal?.throwIfAborted();let c,w=new Promise((l,u)=>{c=()=>{u(new D("Read aborted"))},a?.signal?.addEventListener("abort",c)});try{if(s==null){let{done:u,value:g}=await Promise.race([n.next(),w]);return u===!0?new y:g}for(;i.byteLength<s;){let{value:u,done:g}=await Promise.race([n.next(),w]);if(g===!0)throw new U("unexpected end of input","ERR_UNEXPECTED_EOF");i.append(u)}let l=i.sublist(0,s);return i.consume(s),l}finally{c!=null&&a?.signal?.removeEventListener("abort",c)}},write:async(s,a)=>{a?.signal?.throwIfAborted(),s instanceof Uint8Array?await e.push(s,a):await e.push(s.subarray(),a)},unwrap:()=>{if(i.byteLength>0){let s=r.source;r.source=async function*(){t?.yieldBytes===!1?yield i:yield*i,yield*s}()}return r}}}var z=Math.pow(2,7),J=Math.pow(2,14),K=Math.pow(2,21),E=Math.pow(2,28),O=Math.pow(2,35),S=Math.pow(2,42),V=Math.pow(2,49),o=128,f=127;function m(r){if(r<z)return 1;if(r<J)return 2;if(r<K)return 3;if(r<E)return 4;if(r<O)return 5;if(r<S)return 6;if(r<V)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Y(r,t,e=0){switch(m(r)){case 8:t[e++]=r&255|o,r/=128;case 7:t[e++]=r&255|o,r/=128;case 6:t[e++]=r&255|o,r/=128;case 5:t[e++]=r&255|o,r/=128;case 4:t[e++]=r&255|o,r>>>=7;case 3:t[e++]=r&255|o,r>>>=7;case 2:t[e++]=r&255|o,r>>>=7;case 1:{t[e++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return t}function Z(r,t,e=0){switch(m(r)){case 8:t.set(e++,r&255|o),r/=128;case 7:t.set(e++,r&255|o),r/=128;case 6:t.set(e++,r&255|o),r/=128;case 5:t.set(e++,r&255|o),r/=128;case 4:t.set(e++,r&255|o),r>>>=7;case 3:t.set(e++,r&255|o),r>>>=7;case 2:t.set(e++,r&255|o),r>>>=7;case 1:{t.set(e++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return t}function $(r,t){let e=r[t],n=0;if(n+=e&f,e<o||(e=r[t+1],n+=(e&f)<<7,e<o)||(e=r[t+2],n+=(e&f)<<14,e<o)||(e=r[t+3],n+=(e&f)<<21,e<o)||(e=r[t+4],n+=(e&f)*E,e<o)||(e=r[t+5],n+=(e&f)*O,e<o)||(e=r[t+6],n+=(e&f)*S,e<o)||(e=r[t+7],n+=(e&f)*V,e<o))return n;throw new RangeError("Could not decode varint")}function Q(r,t){let e=r.get(t),n=0;if(n+=e&f,e<o||(e=r.get(t+1),n+=(e&f)<<7,e<o)||(e=r.get(t+2),n+=(e&f)<<14,e<o)||(e=r.get(t+3),n+=(e&f)<<21,e<o)||(e=r.get(t+4),n+=(e&f)*E,e<o)||(e=r.get(t+5),n+=(e&f)*O,e<o)||(e=r.get(t+6),n+=(e&f)*S,e<o)||(e=r.get(t+7),n+=(e&f)*V,e<o))return n;throw new RangeError("Could not decode varint")}function C(r,t,e=0){return t==null&&(t=d(m(r))),t instanceof Uint8Array?Y(r,t,e):Z(r,t,e)}function G(r,t=0){return r instanceof Uint8Array?$(r,t):Q(r,t)}var A=class extends Error{code;constructor(t,e){super(t),this.code=e}};function et(r,t={}){let e=P(r,t);t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=m(t.maxDataLength));let n=t?.lengthDecoder??G,i=t?.lengthEncoder??C;return{read:async s=>{let a=-1,c=new y;for(;;){c.append(await e.read(1,s));try{a=n(c)}catch(w){if(w instanceof RangeError)continue;throw w}if(t?.maxLengthLength!=null&&c.byteLength>t.maxLengthLength)throw new A("message length length too long","ERR_MSG_LENGTH_TOO_LONG");if(a>-1)break}if(t?.maxDataLength!=null&&a>t.maxDataLength)throw new A("message length too long","ERR_MSG_DATA_TOO_LONG");return e.read(a,s)},write:async(s,a)=>{await e.write(new y(i(s.byteLength),s),a)},writeV:async(s,a)=>{let c=new y(...s.flatMap(w=>[i(w.byteLength),w]));await e.write(c,a)},unwrap:()=>e.unwrap()}}return H(nt);})();
"use strict";var ItLengthPrefixedStream=(()=>{var N=Object.defineProperty;var W=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var X=Object.prototype.hasOwnProperty;var z=(n,t)=>{for(var e in t)N(n,e,{get:t[e],enumerable:!0})},J=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of H(t))!X.call(n,i)&&i!==e&&N(n,i,{get:()=>t[i],enumerable:!(r=W(t,i))||r.enumerable});return n};var K=n=>J(N({},"__esModule",{value:!0}),n);var st={};z(st,{lpStream:()=>it});function m(){let n={};return n.promise=new Promise((t,e)=>{n.resolve=t,n.reject=e}),n}var p=class extends Error{type;code;constructor(t,e,r){super(t??"The operation was aborted"),this.type="aborted",this.name=r??"AbortError",this.code=e??"ABORT_ERR"}};async function T(n,t,e){if(t==null)return n;if(t.aborted)return Promise.reject(new p(e?.errorMessage,e?.errorCode,e?.errorName));let r,i=new p(e?.errorMessage,e?.errorCode,e?.errorName);try{return await Promise.race([n,new Promise((h,s)=>{r=()=>{s(i)},t.addEventListener("abort",r)})])}finally{r!=null&&t.removeEventListener("abort",r)}}var R=class{readNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.readNext=m(),this.haveNext=m()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("HaveNext promise resolved but nextResult was undefined");let t=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=m(),t}async throw(t){return this.ended=!0,t!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(t)),{done:!0,value:void 0}}async return(){let t={done:!0,value:void 0};return await this._push(void 0),t}async push(t,e){await this._push(t,e)}async end(t,e){t!=null?await this.throw(t):await this._push(void 0,e)}async _push(t,e){if(t!=null&&this.ended)throw new Error("Cannot push value onto an ended pushable");for(;this.nextResult!=null;)await this.readNext.promise;t!=null?this.nextResult={done:!1,value:t}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=m(),await T(this.readNext.promise,e?.signal,e)}};function k(){return new R}function b(n=0){return new Uint8Array(n)}function d(n=0){return new Uint8Array(n)}function D(n,t){t==null&&(t=n.reduce((i,h)=>i+h.length,0));let e=d(t),r=0;for(let i of n)e.set(i,r),r+=i.length;return e}function P(n,t){if(n===t)return!0;if(n.byteLength!==t.byteLength)return!1;for(let e=0;e<n.byteLength;e++)if(n[e]!==t[e])return!1;return!0}var C=Symbol.for("@achingbrain/uint8arraylist");function v(n,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let r of n){let i=e+r.byteLength;if(t<i)return{buf:r,index:t-e};e=i}throw new RangeError("index is out of bounds")}function x(n){return!!n?.[C]}var y=class n{bufs;length;[C]=!0;constructor(...t){this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let r of t)if(r instanceof Uint8Array)e+=r.byteLength,this.bufs.push(r);else if(x(r))e+=r.byteLength,this.bufs.push(...r.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let r of t.reverse())if(r instanceof Uint8Array)e+=r.byteLength,this.bufs.unshift(r);else if(x(r))e+=r.byteLength,this.bufs.unshift(...r.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=v(this.bufs,t);return e.buf[e.index]}set(t,e){let r=v(this.bufs,t);r.buf[r.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let r=0;r<t.length;r++)this.set(e+r,t[r]);else if(x(t))for(let r=0;r<t.length;r++)this.set(e+r,t.get(r));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:r,length:i}=this._subList(t,e);return D(r,i)}subarray(t,e){let{bufs:r,length:i}=this._subList(t,e);return r.length===1?r[0]:D(r,i)}sublist(t,e){let{bufs:r,length:i}=this._subList(t,e),h=new n;return h.length=i,h.bufs=[...r],h}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:this.bufs,length:this.length};let r=[],i=0;for(let h=0;h<this.bufs.length;h++){let s=this.bufs[h],a=i,c=a+s.byteLength;if(i=c,t>=c)continue;let w=t>=a&&t<c,l=e>a&&e<=c;if(w&&l){if(t===a&&e===c){r.push(s);break}let u=t-a;r.push(s.subarray(u,u+(e-t)));break}if(w){if(t===0){r.push(s);continue}r.push(s.subarray(t-a));continue}if(l){if(e===c){r.push(s);break}r.push(s.subarray(0,e-a));break}r.push(s)}return{bufs:r,length:e-t}}indexOf(t,e=0){if(!x(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let r=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let i=r.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let h=256,s=new Int32Array(h);for(let u=0;u<h;u++)s[u]=-1;for(let u=0;u<i;u++)s[r[u]]=u;let a=s,c=this.byteLength-r.byteLength,w=r.byteLength-1,l;for(let u=e;u<=c;u+=l){l=0;for(let g=w;g>=0;g--){let I=this.get(u+g);if(r[g]!==I){l=Math.max(1,g-a[I]);break}}if(l===0)return u}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let r=d(1);new DataView(r.buffer,r.byteOffset,r.byteLength).setInt8(0,e),this.write(r,t)}getInt16(t,e){let r=this.subarray(t,t+2);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt16(0,e)}setInt16(t,e,r){let i=b(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,e,r),this.write(i,t)}getInt32(t,e){let r=this.subarray(t,t+4);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt32(0,e)}setInt32(t,e,r){let i=b(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,e,r),this.write(i,t)}getBigInt64(t,e){let r=this.subarray(t,t+8);return new DataView(r.buffer,r.byteOffset,r.byteLength).getBigInt64(0,e)}setBigInt64(t,e,r){let i=b(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,e,r),this.write(i,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let r=d(1);new DataView(r.buffer,r.byteOffset,r.byteLength).setUint8(0,e),this.write(r,t)}getUint16(t,e){let r=this.subarray(t,t+2);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint16(0,e)}setUint16(t,e,r){let i=b(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,e,r),this.write(i,t)}getUint32(t,e){let r=this.subarray(t,t+4);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint32(0,e)}setUint32(t,e,r){let i=b(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,e,r),this.write(i,t)}getBigUint64(t,e){let r=this.subarray(t,t+8);return new DataView(r.buffer,r.byteOffset,r.byteLength).getBigUint64(0,e)}setBigUint64(t,e,r){let i=b(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,e,r),this.write(i,t)}getFloat32(t,e){let r=this.subarray(t,t+4);return new DataView(r.buffer,r.byteOffset,r.byteLength).getFloat32(0,e)}setFloat32(t,e,r){let i=b(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,e,r),this.write(i,t)}getFloat64(t,e){let r=this.subarray(t,t+8);return new DataView(r.buffer,r.byteOffset,r.byteLength).getFloat64(0,e)}setFloat64(t,e,r){let i=b(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,e,r),this.write(i,t)}equals(t){if(t==null||!(t instanceof n)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;e<this.bufs.length;e++)if(!P(this.bufs[e],t.bufs[e]))return!1;return!0}static fromUint8Arrays(t,e){let r=new n;return r.bufs=t,e==null&&(e=t.reduce((i,h)=>i+h.byteLength,0)),r.length=e,r}};var U=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};var _=class extends Error{code;constructor(t,e){super(t),this.code=e}},O=class extends _{type;constructor(t){super(t,"ABORT_ERR"),this.type="aborted",this.name="AbortError"}};function G(n,t){let e=k();n.sink(e).catch(async s=>{await e.end(s)}),n.sink=async s=>{for await(let a of s)await e.push(a);await e.end()};let r=n.source;n.source[Symbol.iterator]!=null?r=n.source[Symbol.iterator]():n.source[Symbol.asyncIterator]!=null&&(r=n.source[Symbol.asyncIterator]());let i=new y;return{read:async(s,a)=>{a?.signal?.throwIfAborted();let c,w=new Promise((l,u)=>{c=()=>{u(new O("Read aborted"))},a?.signal?.addEventListener("abort",c)});try{if(s==null){let{done:u,value:g}=await Promise.race([r.next(),w]);return u===!0?new y:g}for(;i.byteLength<s;){let{value:u,done:g}=await Promise.race([r.next(),w]);if(g===!0)throw new U("unexpected end of input");i.append(u)}let l=i.sublist(0,s);return i.consume(s),l}finally{c!=null&&a?.signal?.removeEventListener("abort",c)}},write:async(s,a)=>{a?.signal?.throwIfAborted(),s instanceof Uint8Array?await e.push(s,a):await e.push(s.subarray(),a)},unwrap:()=>{if(i.byteLength>0){let s=n.source;n.source=async function*(){t?.yieldBytes===!1?yield i:yield*i,yield*s}()}return n}}}var Y=Math.pow(2,7),Z=Math.pow(2,14),$=Math.pow(2,21),S=Math.pow(2,28),V=Math.pow(2,35),M=Math.pow(2,42),B=Math.pow(2,49),o=128,f=127;function L(n){if(n<Y)return 1;if(n<Z)return 2;if(n<$)return 3;if(n<S)return 4;if(n<V)return 5;if(n<M)return 6;if(n<B)return 7;if(Number.MAX_SAFE_INTEGER!=null&&n>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Q(n,t,e=0){switch(L(n)){case 8:t[e++]=n&255|o,n/=128;case 7:t[e++]=n&255|o,n/=128;case 6:t[e++]=n&255|o,n/=128;case 5:t[e++]=n&255|o,n/=128;case 4:t[e++]=n&255|o,n>>>=7;case 3:t[e++]=n&255|o,n>>>=7;case 2:t[e++]=n&255|o,n>>>=7;case 1:{t[e++]=n&255,n>>>=7;break}default:throw new Error("unreachable")}return t}function tt(n,t,e=0){switch(L(n)){case 8:t.set(e++,n&255|o),n/=128;case 7:t.set(e++,n&255|o),n/=128;case 6:t.set(e++,n&255|o),n/=128;case 5:t.set(e++,n&255|o),n/=128;case 4:t.set(e++,n&255|o),n>>>=7;case 3:t.set(e++,n&255|o),n>>>=7;case 2:t.set(e++,n&255|o),n>>>=7;case 1:{t.set(e++,n&255),n>>>=7;break}default:throw new Error("unreachable")}return t}function et(n,t){let e=n[t],r=0;if(r+=e&f,e<o||(e=n[t+1],r+=(e&f)<<7,e<o)||(e=n[t+2],r+=(e&f)<<14,e<o)||(e=n[t+3],r+=(e&f)<<21,e<o)||(e=n[t+4],r+=(e&f)*S,e<o)||(e=n[t+5],r+=(e&f)*V,e<o)||(e=n[t+6],r+=(e&f)*M,e<o)||(e=n[t+7],r+=(e&f)*B,e<o))return r;throw new RangeError("Could not decode varint")}function rt(n,t){let e=n.get(t),r=0;if(r+=e&f,e<o||(e=n.get(t+1),r+=(e&f)<<7,e<o)||(e=n.get(t+2),r+=(e&f)<<14,e<o)||(e=n.get(t+3),r+=(e&f)<<21,e<o)||(e=n.get(t+4),r+=(e&f)*S,e<o)||(e=n.get(t+5),r+=(e&f)*V,e<o)||(e=n.get(t+6),r+=(e&f)*M,e<o)||(e=n.get(t+7),r+=(e&f)*B,e<o))return r;throw new RangeError("Could not decode varint")}function j(n,t,e=0){return t==null&&(t=d(L(n))),t instanceof Uint8Array?Q(n,t,e):tt(n,t,e)}function q(n,t=0){return n instanceof Uint8Array?et(n,t):rt(n,t)}var A=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},F=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},E=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function it(n,t={}){let e=G(n,t);t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=L(t.maxDataLength));let r=t?.lengthDecoder??q,i=t?.lengthEncoder??j;return{read:async s=>{let a=-1,c=new y;for(;;){c.append(await e.read(1,s));try{a=r(c)}catch(w){if(w instanceof RangeError)continue;throw w}if(a<0)throw new A("Invalid message length");if(t?.maxLengthLength!=null&&c.byteLength>t.maxLengthLength)throw new E("message length length too long");if(a>-1)break}if(t?.maxDataLength!=null&&a>t.maxDataLength)throw new F("message length too long");return e.read(a,s)},write:async(s,a)=>{await e.write(new y(i(s.byteLength),s),a)},writeV:async(s,a)=>{let c=new y(...s.flatMap(w=>[i(w.byteLength),w]));await e.write(c,a)},unwrap:()=>e.unwrap()}}return K(st);})();
return ItLengthPrefixedStream}));

@@ -29,9 +29,3 @@ /**

import { Uint8ArrayList } from 'uint8arraylist';
class CodeError extends Error {
code;
constructor(message, code) {
super(message);
this.code = code;
}
}
import { InvalidDataLengthError, InvalidDataLengthLengthError, InvalidMessageLengthError } from './errors.js';
export function lpStream(duplex, opts = {}) {

@@ -62,4 +56,7 @@ const bytes = byteStream(duplex, opts);

}
if (dataLength < 0) {
throw new InvalidMessageLengthError('Invalid message length');
}
if (opts?.maxLengthLength != null && lengthBuffer.byteLength > opts.maxLengthLength) {
throw new CodeError('message length length too long', 'ERR_MSG_LENGTH_TOO_LONG');
throw new InvalidDataLengthLengthError('message length length too long');
}

@@ -71,3 +68,3 @@ if (dataLength > -1) {

if (opts?.maxDataLength != null && dataLength > opts.maxDataLength) {
throw new CodeError('message length too long', 'ERR_MSG_DATA_TOO_LONG');
throw new InvalidDataLengthError('message length too long');
}

@@ -74,0 +71,0 @@ return bytes.read(dataLength, options);

{
"name": "it-length-prefixed-stream",
"version": "1.1.8",
"version": "1.2.0",
"description": "Read and write length-prefixed byte arrays over a duplex stream",

@@ -50,3 +50,4 @@ "author": "Alex Potsides <alex@achingbrain.net>",

"test:firefox": "aegir test -t browser -- --browser firefox",
"test:firefox-webworker": "aegir test -t webworker -- --browser firefox"
"test:firefox-webworker": "aegir test -t webworker -- --browser firefox",
"release": "aegir release"
},

@@ -60,6 +61,6 @@ "dependencies": {

"devDependencies": {
"aegir": "^42.2.5",
"aegir": "^44.1.0",
"it-pair": "^2.0.6",
"uint8arrays": "^5.0.3"
"uint8arrays": "^5.1.0"
}
}

@@ -55,3 +55,3 @@ # it-length-prefixed-stream

Loading this module through a script tag will make it's exports available as `ItLengthPrefixedStream` in the global namespace.
Loading this module through a script tag will make its exports available as `ItLengthPrefixedStream` in the global namespace.

@@ -58,0 +58,0 @@ ```html

@@ -29,13 +29,5 @@ /**

import { Uint8ArrayList } from 'uint8arraylist'
import { InvalidDataLengthError, InvalidDataLengthLengthError, InvalidMessageLengthError } from './errors.js'
import type { Duplex } from 'it-stream-types'
class CodeError extends Error {
public readonly code: string
constructor (message: string, code: string) {
super(message)
this.code = code
}
}
export interface AbortOptions {

@@ -108,4 +100,8 @@ signal?: AbortSignal

if (dataLength < 0) {
throw new InvalidMessageLengthError('Invalid message length')
}
if (opts?.maxLengthLength != null && lengthBuffer.byteLength > opts.maxLengthLength) {
throw new CodeError('message length length too long', 'ERR_MSG_LENGTH_TOO_LONG')
throw new InvalidDataLengthLengthError('message length length too long')
}

@@ -119,3 +115,3 @@

if (opts?.maxDataLength != null && dataLength > opts.maxDataLength) {
throw new CodeError('message length too long', 'ERR_MSG_DATA_TOO_LONG')
throw new InvalidDataLengthError('message length too long')
}

@@ -122,0 +118,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet