You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

it-length-prefixed-stream

Package Overview
Dependencies
Maintainers
1
Versions
19
Alerts
File Explorer

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.1.7

2

dist/index.min.js
(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 N=Object.defineProperty;var W=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var X=(r,t)=>{for(var e in t)N(r,e,{get:t[e],enumerable:!0})},H=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of q(t))!v.call(r,i)&&i!==e&&N(r,i,{get:()=>t[i],enumerable:!(n=W(t,i))||n.enumerable});return r};var J=r=>H(N({},"__esModule",{value:!0}),r);var rt={};X(rt,{lpStream:()=>nt});function p(r){return globalThis.Buffer!=null?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r}function b(r=0){return globalThis.Buffer?.alloc!=null?p(globalThis.Buffer.alloc(r)):new Uint8Array(r)}function d(r=0){return globalThis.Buffer?.allocUnsafe!=null?p(globalThis.Buffer.allocUnsafe(r)):new Uint8Array(r)}function R(r,t){if(globalThis.Buffer!=null)return p(globalThis.Buffer.concat(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 p(e)}function _(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 k=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 x(r){return!!r?.[k]}var y=class r{bufs;length;[k]=!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(x(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(x(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(x(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 R(n,i)}subarray(t,e){let{bufs:n,length:i}=this._subList(t,e);return n.length===1?n[0]:R(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,f=a+s.byteLength;if(i=f,t>=f)continue;let l=t>=a&&t<f,w=e>a&&e<=f;if(l&&w){if(t===a&&e===f){n.push(s);break}let u=t-a;n.push(s.subarray(u,u+(e-t)));break}if(l){if(t===0){n.push(s);continue}n.push(s.subarray(t-a));continue}if(w){if(e===f){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(!x(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,f=this.byteLength-n.byteLength,l=n.byteLength-1,w;for(let u=e;u<=f;u+=w){w=0;for(let g=l;g>=0;g--){let V=this.get(u+g);if(n[g]!==V){w=Math.max(1,g-a[V]);break}}if(w===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(!_(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 m(){let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r}var U=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 I(r,t,e){if(t==null)return r;if(t.aborted)return Promise.reject(new U(e?.errorMessage,e?.errorCode));let n,i=new U(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 D=class{needNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.needNext=m(),this.haveNext=m()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("Have next but next was undefined");let t=this.nextResult;return this.nextResult=void 0,this.needNext.resolve(),this.needNext=m(),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");this.nextResult!=null&&await this.needNext.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 I(this.needNext.promise,e?.signal,e)}};function P(){return new D}var A=class extends Error{code;constructor(t,e){super(t),this.code=e}},E=class extends A{type;constructor(t){super(t,"ABORT_ERR"),this.type="aborted"}};function C(r,t){let e=P();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 f,l=new Promise((w,u)=>{f=()=>{u(new E("Read aborted"))},a?.signal?.addEventListener("abort",f)});try{if(s==null){let{done:u,value:g}=await Promise.race([n.next(),l]);return u===!0?new y:g}for(;i.byteLength<s;){let{value:u,done:g}=await Promise.race([n.next(),l]);if(g===!0)throw new A("unexpected end of input","ERR_UNEXPECTED_EOF");i.append(u)}let w=i.sublist(0,s);return i.consume(s),w}finally{f!=null&&a?.signal?.removeEventListener("abort",f)}},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 K=Math.pow(2,7),Y=Math.pow(2,14),Z=Math.pow(2,21),B=Math.pow(2,28),O=Math.pow(2,35),S=Math.pow(2,42),T=Math.pow(2,49),o=128,c=127;function L(r){if(r<K)return 1;if(r<Y)return 2;if(r<Z)return 3;if(r<B)return 4;if(r<O)return 5;if(r<S)return 6;if(r<T)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function $(r,t,e=0){switch(L(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 Q(r,t,e=0){switch(L(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 z(r,t){let e=r[t],n=0;if(n+=e&c,e<o||(e=r[t+1],n+=(e&c)<<7,e<o)||(e=r[t+2],n+=(e&c)<<14,e<o)||(e=r[t+3],n+=(e&c)<<21,e<o)||(e=r[t+4],n+=(e&c)*B,e<o)||(e=r[t+5],n+=(e&c)*O,e<o)||(e=r[t+6],n+=(e&c)*S,e<o)||(e=r[t+7],n+=(e&c)*T,e<o))return n;throw new RangeError("Could not decode varint")}function tt(r,t){let e=r.get(t),n=0;if(n+=e&c,e<o||(e=r.get(t+1),n+=(e&c)<<7,e<o)||(e=r.get(t+2),n+=(e&c)<<14,e<o)||(e=r.get(t+3),n+=(e&c)<<21,e<o)||(e=r.get(t+4),n+=(e&c)*B,e<o)||(e=r.get(t+5),n+=(e&c)*O,e<o)||(e=r.get(t+6),n+=(e&c)*S,e<o)||(e=r.get(t+7),n+=(e&c)*T,e<o))return n;throw new RangeError("Could not decode varint")}function G(r,t,e=0){return t==null&&(t=d(L(r))),t instanceof Uint8Array?$(r,t,e):Q(r,t,e)}function j(r,t=0){return r instanceof Uint8Array?z(r,t):tt(r,t)}var F=class extends Error{code;constructor(t,e){super(t),this.code=e}};function nt(r,t={}){let e=C(r,t);t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=L(t.maxDataLength));let n=t?.lengthDecoder??j,i=t?.lengthEncoder??G;return{read:async s=>{let a=-1,f=new y;for(;;){f.append(await e.read(1,s));try{a=n(f)}catch(l){if(l instanceof RangeError)continue;throw l}if(t?.maxLengthLength!=null&&f.byteLength>t.maxLengthLength)throw new F("message length length too long","ERR_MSG_LENGTH_TOO_LONG");if(a>-1)break}if(t?.maxDataLength!=null&&a>t.maxDataLength)throw new F("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 f=new y(...s.flatMap(l=>[i(l.byteLength),l]));await e.write(f,a)},unwrap:()=>e.unwrap()}}return J(rt);})();
"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);})();
return ItLengthPrefixedStream}));
{
"name": "it-length-prefixed-stream",
"version": "1.1.6",
"version": "1.1.7",
"description": "Read and write length-prefixed byte arrays over a duplex stream",
"author": "Alex Potsides <alex@achingbrain.net>",
"license": "Apache-2.0 OR MIT",
"homepage": "https://github.com/achingbrain/it/tree/master/packages/it-length-prefixed-stream#readme",
"homepage": "https://github.com/achingbrain/it/tree/main/packages/it-length-prefixed-stream#readme",
"repository": {

@@ -15,2 +15,6 @@ "type": "git",

},
"publishConfig": {
"access": "public",
"provenance": true
},
"type": "module",

@@ -37,87 +41,2 @@ "types": "./dist/src/index.d.ts",

},
"release": {
"branches": [
"main"
],
"plugins": [
[
"@semantic-release/commit-analyzer",
{
"preset": "conventionalcommits",
"releaseRules": [
{
"breaking": true,
"release": "major"
},
{
"revert": true,
"release": "patch"
},
{
"type": "feat",
"release": "minor"
},
{
"type": "fix",
"release": "patch"
},
{
"type": "docs",
"release": "patch"
},
{
"type": "test",
"release": "patch"
},
{
"type": "deps",
"release": "patch"
},
{
"scope": "no-release",
"release": false
}
]
}
],
[
"@semantic-release/release-notes-generator",
{
"preset": "conventionalcommits",
"presetConfig": {
"types": [
{
"type": "feat",
"section": "Features"
},
{
"type": "fix",
"section": "Bug Fixes"
},
{
"type": "chore",
"section": "Trivial Changes"
},
{
"type": "docs",
"section": "Documentation"
},
{
"type": "deps",
"section": "Dependencies"
},
{
"type": "test",
"section": "Tests"
}
]
}
}
],
"@semantic-release/changelog",
"@semantic-release/npm",
"@semantic-release/github",
"@semantic-release/git"
]
},
"scripts": {

@@ -133,4 +52,3 @@ "build": "aegir build",

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

@@ -140,10 +58,10 @@ "dependencies": {

"it-stream-types": "^2.0.1",
"uint8-varint": "^2.0.1",
"uint8arraylist": "^2.4.1"
"uint8-varint": "^2.0.4",
"uint8arraylist": "^2.4.8"
},
"devDependencies": {
"aegir": "^41.1.9",
"it-pair": "^2.0.2",
"uint8arrays": "^5.0.0"
"aegir": "^42.2.5",
"it-pair": "^2.0.6",
"uint8arrays": "^5.0.3"
}
}

@@ -0,1 +1,3 @@

# it-length-prefixed-stream
[![codecov](https://img.shields.io/codecov/c/github/achingbrain/it.svg?style=flat-square)](https://codecov.io/gh/achingbrain/it)

@@ -8,2 +10,17 @@ [![CI](https://img.shields.io/github/actions/workflow/status/achingbrain/it/js-test-and-release.yml?branch=main\&style=flat-square)](https://github.com/achingbrain/it/actions/workflows/js-test-and-release.yml?query=branch%3Amain)

<!--
!IMPORTANT!
Everything in this README between "# About" and "# Install" is automatically
generated and will be overwritten the next time the doc generator is run.
To make changes to this section, please update the @packageDocumentation section
of src/index.js or src/index.ts
To experiment with formatting, please run "npm run docs" from the root of this
repo and examine the changes made.
-->
This module makes it easy to send and receive length-prefixed byte arrays over streams.

@@ -10,0 +27,0 @@