uint8arraylist 2.4.4 → 2.4.6

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.
package/README.md CHANGED
@@ -1,39 +1,12 @@
1
- # uint8arraylist <!-- omit in toc -->
2
-
3
1
  [![codecov](https://img.shields.io/codecov/c/github/achingbrain/uint8arraylist.svg?style=flat-square)](https://codecov.io/gh/achingbrain/uint8arraylist)
4
2
  [![CI](https://img.shields.io/github/actions/workflow/status/achingbrain/uint8arraylist/js-test-and-release.yml?branch=master\&style=flat-square)](https://github.com/achingbrain/uint8arraylist/actions/workflows/js-test-and-release.yml?query=branch%3Amaster)
5
3
 
6
4
  > Append and consume bytes using only no-copy operations
7
5
 
8
- ## Table of contents <!-- omit in toc -->
9
-
10
- - [Install](#install)
11
- - [Browser `<script>` tag](#browser-script-tag)
12
- - [Usage](#usage)
13
- - [Converting Uint8ArrayLists to Uint8Arrays](#converting-uint8arraylists-to-uint8arrays)
14
- - [slice](#slice)
15
- - [subarray](#subarray)
16
- - [sublist](#sublist)
17
- - [Inspiration](#inspiration)
18
- - [API Docs](#api-docs)
19
- - [License](#license)
20
- - [Contribution](#contribution)
21
-
22
- ## Install
23
-
24
- ```console
25
- $ npm i uint8arraylist
26
- ```
27
-
28
- ### Browser `<script>` tag
29
-
30
- Loading this module through a script tag will make it's exports available as `Uint8arraylist` in the global namespace.
31
-
32
- ```html
33
- <script src="https://unpkg.com/uint8arraylist/dist/index.min.js"></script>
34
- ```
6
+ # About
35
7
 
36
- ## Usage
8
+ A class that lets you do operations over a list of Uint8Arrays without
9
+ copying them.
37
10
 
38
11
  ```js
39
12
  import { Uint8ArrayList } from 'uint8arraylist'
@@ -58,11 +31,11 @@ list.subarray(0, 1)
58
31
  // -> Uint8Array([0])
59
32
  ```
60
33
 
61
- ### Converting Uint8ArrayLists to Uint8Arrays
34
+ ## Converting Uint8ArrayLists to Uint8Arrays
62
35
 
63
36
  There are two ways to turn a `Uint8ArrayList` into a `Uint8Array` - `.slice` and `.subarray` and one way to turn a `Uint8ArrayList` into a `Uint8ArrayList` with different contents - `.sublist`.
64
37
 
65
- #### slice
38
+ ### slice
66
39
 
67
40
  Slice follows the same semantics as [Uint8Array.slice](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/slice) in that it creates a new `Uint8Array` and copies bytes into it using an optional offset & length.
68
41
 
@@ -75,7 +48,7 @@ list.slice(0, 1)
75
48
  // -> Uint8Array([0])
76
49
  ```
77
50
 
78
- #### subarray
51
+ ### subarray
79
52
 
80
53
  Subarray attempts to follow the same semantics as [Uint8Array.subarray](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/subarray) with one important different - this is a no-copy operation, unless the requested bytes span two internal buffers in which case it is a copy operation.
81
54
 
@@ -84,14 +57,14 @@ const list = new Uint8ArrayList()
84
57
  list.append(Uint8Array.from([0, 1, 2]))
85
58
  list.append(Uint8Array.from([3, 4, 5]))
86
59
 
87
- list.slice(0, 1)
60
+ list.subarray(0, 1)
88
61
  // -> Uint8Array([0]) - no-copy
89
62
 
90
- list.slice(2, 5)
63
+ list.subarray(2, 5)
91
64
  // -> Uint8Array([2, 3, 4]) - copy
92
65
  ```
93
66
 
94
- #### sublist
67
+ ### sublist
95
68
 
96
69
  Sublist creates and returns a new `Uint8ArrayList` that shares the underlying buffers with the original so is always a no-copy operation.
97
70
 
@@ -104,24 +77,38 @@ list.sublist(0, 1)
104
77
  // -> Uint8ArrayList([0]) - no-copy
105
78
 
106
79
  list.sublist(2, 5)
107
- // -> Uint8ArrayList([2, 3]) - no-copy
80
+ // -> Uint8ArrayList([2], [3, 4]) - no-copy
108
81
  ```
109
82
 
110
83
  ## Inspiration
111
84
 
112
85
  Borrows liberally from [bl](https://www.npmjs.com/package/bl) but only uses native JS types.
113
86
 
114
- ## API Docs
87
+ # Install
88
+
89
+ ```console
90
+ $ npm i uint8arraylist
91
+ ```
92
+
93
+ ## Browser `<script>` tag
94
+
95
+ Loading this module through a script tag will make it's exports available as `Uint8arraylist` in the global namespace.
96
+
97
+ ```html
98
+ <script src="https://unpkg.com/uint8arraylist/dist/index.min.js"></script>
99
+ ```
100
+
101
+ # API Docs
115
102
 
116
103
  - <https://achingbrain.github.io/uint8arraylist>
117
104
 
118
- ## License
105
+ # License
119
106
 
120
107
  Licensed under either of
121
108
 
122
109
  - Apache 2.0, ([LICENSE-APACHE](LICENSE-APACHE) / <http://www.apache.org/licenses/LICENSE-2.0>)
123
110
  - MIT ([LICENSE-MIT](LICENSE-MIT) / <http://opensource.org/licenses/MIT>)
124
111
 
125
- ## Contribution
112
+ # Contribution
126
113
 
127
114
  Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
package/dist/index.min.js CHANGED
@@ -1,3 +1,3 @@
1
1
  (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Uint8Arraylist = factory()}(typeof self !== 'undefined' ? self : this, function () {
2
- "use strict";var Uint8Arraylist=(()=>{var L=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var O=(s,t)=>{for(var n in t)L(s,n,{get:t[n],enumerable:!0})},F=(s,t,n,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of B(t))!v.call(s,r)&&r!==n&&L(s,r,{get:()=>t[r],enumerable:!(e=d(t,r))||e.enumerable});return s};var T=s=>F(L({},"__esModule",{value:!0}),s);var k={};O(k,{Uint8ArrayList:()=>l,isUint8ArrayList:()=>c});function g(s){return globalThis.Buffer!=null?new Uint8Array(s.buffer,s.byteOffset,s.byteLength):s}function a(s=0){return globalThis.Buffer?.alloc!=null?g(globalThis.Buffer.alloc(s)):new Uint8Array(s)}function y(s=0){return globalThis.Buffer?.allocUnsafe!=null?g(globalThis.Buffer.allocUnsafe(s)):new Uint8Array(s)}function U(s,t){t==null&&(t=s.reduce((r,i)=>r+i.length,0));let n=y(t),e=0;for(let r of s)n.set(r,e),e+=r.length;return g(n)}function A(s,t){if(s===t)return!0;if(s.byteLength!==t.byteLength)return!1;for(let n=0;n<s.byteLength;n++)if(s[n]!==t[n])return!1;return!0}var V=Symbol.for("@achingbrain/uint8arraylist");function D(s,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let n=0;for(let e of s){let r=n+e.byteLength;if(t<r)return{buf:e,index:t-n};n=r}throw new RangeError("index is out of bounds")}function c(s){return Boolean(s?.[V])}var l=class{constructor(...t){Object.defineProperty(this,V,{value:!0}),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 n=0;for(let e of t)if(e instanceof Uint8Array)n+=e.byteLength,this.bufs.push(e);else if(c(e))n+=e.byteLength,this.bufs.push(...e.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=n}prepend(...t){this.prependAll(t)}prependAll(t){let n=0;for(let e of t.reverse())if(e instanceof Uint8Array)n+=e.byteLength,this.bufs.unshift(e);else if(c(e))n+=e.byteLength,this.bufs.unshift(...e.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=n}get(t){let n=D(this.bufs,t);return n.buf[n.index]}set(t,n){let e=D(this.bufs,t);e.buf[e.index]=n}write(t,n=0){if(t instanceof Uint8Array)for(let e=0;e<t.length;e++)this.set(n+e,t[e]);else if(c(t))for(let e=0;e<t.length;e++)this.set(n+e,t.get(e));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,n){let{bufs:e,length:r}=this._subList(t,n);return U(e,r)}subarray(t,n){let{bufs:e,length:r}=this._subList(t,n);return e.length===1?e[0]:U(e,r)}sublist(t,n){let{bufs:e,length:r}=this._subList(t,n),i=new l;return i.length=r,i.bufs=e,i}_subList(t,n){if(t=t??0,n=n??this.length,t<0&&(t=this.length+t),n<0&&(n=this.length+n),t<0||n>this.length)throw new RangeError("index is out of bounds");if(t===n)return{bufs:[],length:0};if(t===0&&n===this.length)return{bufs:[...this.bufs],length:this.length};let e=[],r=0;for(let i=0;i<this.bufs.length;i++){let o=this.bufs[i],u=r,h=u+o.byteLength;if(r=h,t>=h)continue;let p=t>=u&&t<h,b=n>u&&n<=h;if(p&&b){if(t===u&&n===h){e.push(o);break}let f=t-u;e.push(o.subarray(f,f+(n-t)));break}if(p){if(t===0){e.push(o);continue}e.push(o.subarray(t-u));continue}if(b){if(n===h){e.push(o);break}e.push(o.subarray(0,n-u));break}e.push(o)}return{bufs:e,length:n-t}}indexOf(t,n=0){if(!c(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let e=t instanceof Uint8Array?t:t.subarray();if(n=Number(n??0),isNaN(n)&&(n=0),n<0&&(n=this.length+n),n<0&&(n=0),t.length===0)return n>this.length?this.length:n;let r=e.byteLength;if(r===0)throw new TypeError("search must be at least 1 byte long");let i=256,o=new Int32Array(i);for(let f=0;f<i;f++)o[f]=-1;for(let f=0;f<r;f++)o[e[f]]=f;let u=o,h=this.byteLength-e.byteLength,p=e.byteLength-1,b;for(let f=n;f<=h;f+=b){b=0;for(let w=p;w>=0;w--){let m=this.get(f+w);if(e[w]!==m){b=Math.max(1,w-u[m]);break}}if(b===0)return f}return-1}getInt8(t){let n=this.subarray(t,t+1);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt8(0)}setInt8(t,n){let e=y(1);new DataView(e.buffer,e.byteOffset,e.byteLength).setInt8(0,n),this.write(e,t)}getInt16(t,n){let e=this.subarray(t,t+2);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt16(0,n)}setInt16(t,n,e){let r=a(2);new DataView(r.buffer,r.byteOffset,r.byteLength).setInt16(0,n,e),this.write(r,t)}getInt32(t,n){let e=this.subarray(t,t+4);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt32(0,n)}setInt32(t,n,e){let r=a(4);new DataView(r.buffer,r.byteOffset,r.byteLength).setInt32(0,n,e),this.write(r,t)}getBigInt64(t,n){let e=this.subarray(t,t+8);return new DataView(e.buffer,e.byteOffset,e.byteLength).getBigInt64(0,n)}setBigInt64(t,n,e){let r=a(8);new DataView(r.buffer,r.byteOffset,r.byteLength).setBigInt64(0,n,e),this.write(r,t)}getUint8(t){let n=this.subarray(t,t+1);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint8(0)}setUint8(t,n){let e=y(1);new DataView(e.buffer,e.byteOffset,e.byteLength).setUint8(0,n),this.write(e,t)}getUint16(t,n){let e=this.subarray(t,t+2);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint16(0,n)}setUint16(t,n,e){let r=a(2);new DataView(r.buffer,r.byteOffset,r.byteLength).setUint16(0,n,e),this.write(r,t)}getUint32(t,n){let e=this.subarray(t,t+4);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint32(0,n)}setUint32(t,n,e){let r=a(4);new DataView(r.buffer,r.byteOffset,r.byteLength).setUint32(0,n,e),this.write(r,t)}getBigUint64(t,n){let e=this.subarray(t,t+8);return new DataView(e.buffer,e.byteOffset,e.byteLength).getBigUint64(0,n)}setBigUint64(t,n,e){let r=a(8);new DataView(r.buffer,r.byteOffset,r.byteLength).setBigUint64(0,n,e),this.write(r,t)}getFloat32(t,n){let e=this.subarray(t,t+4);return new DataView(e.buffer,e.byteOffset,e.byteLength).getFloat32(0,n)}setFloat32(t,n,e){let r=a(4);new DataView(r.buffer,r.byteOffset,r.byteLength).setFloat32(0,n,e),this.write(r,t)}getFloat64(t,n){let e=this.subarray(t,t+8);return new DataView(e.buffer,e.byteOffset,e.byteLength).getFloat64(0,n)}setFloat64(t,n,e){let r=a(8);new DataView(r.buffer,r.byteOffset,r.byteLength).setFloat64(0,n,e),this.write(r,t)}equals(t){if(t==null||!(t instanceof l)||t.bufs.length!==this.bufs.length)return!1;for(let n=0;n<this.bufs.length;n++)if(!A(this.bufs[n],t.bufs[n]))return!1;return!0}static fromUint8Arrays(t,n){let e=new l;return e.bufs=t,n==null&&(n=t.reduce((r,i)=>r+i.byteLength,0)),e.length=n,e}};return T(k);})();
2
+ "use strict";var Uint8Arraylist=(()=>{var L=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var O=(s,t)=>{for(var n in t)L(s,n,{get:t[n],enumerable:!0})},F=(s,t,n,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of d(t))!v.call(s,r)&&r!==n&&L(s,r,{get:()=>t[r],enumerable:!(e=B(t,r))||e.enumerable});return s};var T=s=>F(L({},"__esModule",{value:!0}),s);var k={};O(k,{Uint8ArrayList:()=>U,isUint8ArrayList:()=>y});function w(s){return globalThis.Buffer!=null?new Uint8Array(s.buffer,s.byteOffset,s.byteLength):s}function a(s=0){return globalThis.Buffer?.alloc!=null?w(globalThis.Buffer.alloc(s)):new Uint8Array(s)}function g(s=0){return globalThis.Buffer?.allocUnsafe!=null?w(globalThis.Buffer.allocUnsafe(s)):new Uint8Array(s)}function p(s,t){t==null&&(t=s.reduce((r,i)=>r+i.length,0));let n=g(t),e=0;for(let r of s)n.set(r,e),e+=r.length;return w(n)}function A(s,t){if(s===t)return!0;if(s.byteLength!==t.byteLength)return!1;for(let n=0;n<s.byteLength;n++)if(s[n]!==t[n])return!1;return!0}var V=Symbol.for("@achingbrain/uint8arraylist");function D(s,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let n=0;for(let e of s){let r=n+e.byteLength;if(t<r)return{buf:e,index:t-n};n=r}throw new RangeError("index is out of bounds")}function y(s){return!!s?.[V]}var U=class s{bufs;length;[V]=!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 n=0;for(let e of t)if(e instanceof Uint8Array)n+=e.byteLength,this.bufs.push(e);else if(y(e))n+=e.byteLength,this.bufs.push(...e.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=n}prepend(...t){this.prependAll(t)}prependAll(t){let n=0;for(let e of t.reverse())if(e instanceof Uint8Array)n+=e.byteLength,this.bufs.unshift(e);else if(y(e))n+=e.byteLength,this.bufs.unshift(...e.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=n}get(t){let n=D(this.bufs,t);return n.buf[n.index]}set(t,n){let e=D(this.bufs,t);e.buf[e.index]=n}write(t,n=0){if(t instanceof Uint8Array)for(let e=0;e<t.length;e++)this.set(n+e,t[e]);else if(y(t))for(let e=0;e<t.length;e++)this.set(n+e,t.get(e));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,n){let{bufs:e,length:r}=this._subList(t,n);return p(e,r)}subarray(t,n){let{bufs:e,length:r}=this._subList(t,n);return e.length===1?e[0]:p(e,r)}sublist(t,n){let{bufs:e,length:r}=this._subList(t,n),i=new s;return i.length=r,i.bufs=e,i}_subList(t,n){if(t=t??0,n=n??this.length,t<0&&(t=this.length+t),n<0&&(n=this.length+n),t<0||n>this.length)throw new RangeError("index is out of bounds");if(t===n)return{bufs:[],length:0};if(t===0&&n===this.length)return{bufs:[...this.bufs],length:this.length};let e=[],r=0;for(let i=0;i<this.bufs.length;i++){let o=this.bufs[i],u=r,h=u+o.byteLength;if(r=h,t>=h)continue;let c=t>=u&&t<h,b=n>u&&n<=h;if(c&&b){if(t===u&&n===h){e.push(o);break}let f=t-u;e.push(o.subarray(f,f+(n-t)));break}if(c){if(t===0){e.push(o);continue}e.push(o.subarray(t-u));continue}if(b){if(n===h){e.push(o);break}e.push(o.subarray(0,n-u));break}e.push(o)}return{bufs:e,length:n-t}}indexOf(t,n=0){if(!y(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let e=t instanceof Uint8Array?t:t.subarray();if(n=Number(n??0),isNaN(n)&&(n=0),n<0&&(n=this.length+n),n<0&&(n=0),t.length===0)return n>this.length?this.length:n;let r=e.byteLength;if(r===0)throw new TypeError("search must be at least 1 byte long");let i=256,o=new Int32Array(i);for(let f=0;f<i;f++)o[f]=-1;for(let f=0;f<r;f++)o[e[f]]=f;let u=o,h=this.byteLength-e.byteLength,c=e.byteLength-1,b;for(let f=n;f<=h;f+=b){b=0;for(let l=c;l>=0;l--){let m=this.get(f+l);if(e[l]!==m){b=Math.max(1,l-u[m]);break}}if(b===0)return f}return-1}getInt8(t){let n=this.subarray(t,t+1);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt8(0)}setInt8(t,n){let e=g(1);new DataView(e.buffer,e.byteOffset,e.byteLength).setInt8(0,n),this.write(e,t)}getInt16(t,n){let e=this.subarray(t,t+2);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt16(0,n)}setInt16(t,n,e){let r=a(2);new DataView(r.buffer,r.byteOffset,r.byteLength).setInt16(0,n,e),this.write(r,t)}getInt32(t,n){let e=this.subarray(t,t+4);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt32(0,n)}setInt32(t,n,e){let r=a(4);new DataView(r.buffer,r.byteOffset,r.byteLength).setInt32(0,n,e),this.write(r,t)}getBigInt64(t,n){let e=this.subarray(t,t+8);return new DataView(e.buffer,e.byteOffset,e.byteLength).getBigInt64(0,n)}setBigInt64(t,n,e){let r=a(8);new DataView(r.buffer,r.byteOffset,r.byteLength).setBigInt64(0,n,e),this.write(r,t)}getUint8(t){let n=this.subarray(t,t+1);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint8(0)}setUint8(t,n){let e=g(1);new DataView(e.buffer,e.byteOffset,e.byteLength).setUint8(0,n),this.write(e,t)}getUint16(t,n){let e=this.subarray(t,t+2);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint16(0,n)}setUint16(t,n,e){let r=a(2);new DataView(r.buffer,r.byteOffset,r.byteLength).setUint16(0,n,e),this.write(r,t)}getUint32(t,n){let e=this.subarray(t,t+4);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint32(0,n)}setUint32(t,n,e){let r=a(4);new DataView(r.buffer,r.byteOffset,r.byteLength).setUint32(0,n,e),this.write(r,t)}getBigUint64(t,n){let e=this.subarray(t,t+8);return new DataView(e.buffer,e.byteOffset,e.byteLength).getBigUint64(0,n)}setBigUint64(t,n,e){let r=a(8);new DataView(r.buffer,r.byteOffset,r.byteLength).setBigUint64(0,n,e),this.write(r,t)}getFloat32(t,n){let e=this.subarray(t,t+4);return new DataView(e.buffer,e.byteOffset,e.byteLength).getFloat32(0,n)}setFloat32(t,n,e){let r=a(4);new DataView(r.buffer,r.byteOffset,r.byteLength).setFloat32(0,n,e),this.write(r,t)}getFloat64(t,n){let e=this.subarray(t,t+8);return new DataView(e.buffer,e.byteOffset,e.byteLength).getFloat64(0,n)}setFloat64(t,n,e){let r=a(8);new DataView(r.buffer,r.byteOffset,r.byteLength).setFloat64(0,n,e),this.write(r,t)}equals(t){if(t==null||!(t instanceof s)||t.bufs.length!==this.bufs.length)return!1;for(let n=0;n<this.bufs.length;n++)if(!A(this.bufs[n],t.bufs[n]))return!1;return!0}static fromUint8Arrays(t,n){let e=new s;return e.bufs=t,n==null&&(n=t.reduce((r,i)=>r+i.byteLength,0)),e.length=n,e}};return T(k);})();
3
3
  return Uint8Arraylist}));
@@ -1,3 +1,4 @@
1
+ declare const symbol: unique symbol;
1
2
  export type Appendable = Uint8ArrayList | Uint8Array;
2
3
  /**
3
4
  * Check if object is a CID instance
@@ -16,8 +17,9 @@ export declare function isUint8ArrayList(value: any): value is Uint8ArrayList;
16
17
  export declare class Uint8ArrayList implements Iterable<Uint8Array> {
17
18
  private bufs;
18
19
  length: number;
20
+ readonly [symbol] = true;
19
21
  constructor(...data: Appendable[]);
20
- [Symbol.iterator](): Generator<Uint8Array, void, undefined>;
22
+ [Symbol.iterator](): Iterator<Uint8Array>;
21
23
  get byteLength(): number;
22
24
  /**
23
25
  * Add one or more `bufs` to the end of this Uint8ArrayList
@@ -100,4 +102,5 @@ export declare class Uint8ArrayList implements Iterable<Uint8Array> {
100
102
  */
101
103
  static fromUint8Arrays(bufs: Uint8Array[], length?: number): Uint8ArrayList;
102
104
  }
105
+ export {};
103
106
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,UAAU,CAAA;AAyBpD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAE,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,cAAc,CAErE;AAED,qBAAa,cAAe,YAAW,QAAQ,CAAC,UAAU,CAAC;IACzD,OAAO,CAAC,IAAI,CAAc;IACnB,MAAM,EAAE,MAAM,CAAA;gBAER,GAAG,IAAI,EAAE,UAAU,EAAE;IAYhC,CAAC,MAAM,CAAC,QAAQ,CAAC;IAInB,IAAI,UAAU,WAEb;IAED;;OAEG;IACH,MAAM,CAAE,GAAG,IAAI,EAAE,UAAU,EAAE;IAI7B;;OAEG;IACH,SAAS,CAAE,IAAI,EAAE,UAAU,EAAE;IAkB7B;;OAEG;IACH,OAAO,CAAE,GAAG,IAAI,EAAE,UAAU,EAAE;IAI9B;;OAEG;IACH,UAAU,CAAE,IAAI,EAAE,UAAU,EAAE;IAkB9B;;OAEG;IACH,GAAG,CAAE,KAAK,EAAE,MAAM;IAMlB;;OAEG;IACH,GAAG,CAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAMjC;;OAEG;IACH,KAAK,CAAE,GAAG,EAAE,UAAU,EAAE,MAAM,GAAE,MAAU;IAc1C;;OAEG;IACH,OAAO,CAAE,KAAK,EAAE,MAAM;IA6BtB;;;;;OAKG;IACH,KAAK,CAAE,cAAc,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU;IAMlE;;;;;OAKG;IACH,QAAQ,CAAE,cAAc,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU;IAUrE;;;;OAIG;IACH,OAAO,CAAE,cAAc,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,cAAc;IAWxE,OAAO,CAAC,QAAQ;IAyFhB,OAAO,CAAE,MAAM,EAAE,cAAc,GAAG,UAAU,EAAE,MAAM,GAAE,MAAU,GAAG,MAAM;IAyEzE,OAAO,CAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAOpC,OAAO,CAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAQjD,QAAQ,CAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM;IAO7D,QAAQ,CAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI;IAQ1E,QAAQ,CAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM;IAO7D,QAAQ,CAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI;IAQ1E,WAAW,CAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM;IAOhE,WAAW,CAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI;IAQ7E,QAAQ,CAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAOrC,QAAQ,CAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAQlD,SAAS,CAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM;IAO9D,SAAS,CAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI;IAQ3E,SAAS,CAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM;IAO9D,SAAS,CAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI;IAQ3E,YAAY,CAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM;IAOjE,YAAY,CAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI;IAQ9E,UAAU,CAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM;IAO/D,UAAU,CAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI;IAQ5E,UAAU,CAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM;IAO/D,UAAU,CAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI;IAQ5E,MAAM,CAAE,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,cAAc;IAsB5C;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAE,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc;CAY7E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -1,6 +1,88 @@
1
+ /**
2
+ * @packageDocumentation
3
+ *
4
+ * A class that lets you do operations over a list of Uint8Arrays without
5
+ * copying them.
6
+ *
7
+ * ```js
8
+ * import { Uint8ArrayList } from 'uint8arraylist'
9
+ *
10
+ * const list = new Uint8ArrayList()
11
+ * list.append(Uint8Array.from([0, 1, 2]))
12
+ * list.append(Uint8Array.from([3, 4, 5]))
13
+ *
14
+ * list.subarray()
15
+ * // -> Uint8Array([0, 1, 2, 3, 4, 5])
16
+ *
17
+ * list.consume(3)
18
+ * list.subarray()
19
+ * // -> Uint8Array([3, 4, 5])
20
+ *
21
+ * // you can also iterate over the list
22
+ * for (const buf of list) {
23
+ * // ..do something with `buf`
24
+ * }
25
+ *
26
+ * list.subarray(0, 1)
27
+ * // -> Uint8Array([0])
28
+ * ```
29
+ *
30
+ * ## Converting Uint8ArrayLists to Uint8Arrays
31
+ *
32
+ * There are two ways to turn a `Uint8ArrayList` into a `Uint8Array` - `.slice` and `.subarray` and one way to turn a `Uint8ArrayList` into a `Uint8ArrayList` with different contents - `.sublist`.
33
+ *
34
+ * ### slice
35
+ *
36
+ * Slice follows the same semantics as [Uint8Array.slice](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/slice) in that it creates a new `Uint8Array` and copies bytes into it using an optional offset & length.
37
+ *
38
+ * ```js
39
+ * const list = new Uint8ArrayList()
40
+ * list.append(Uint8Array.from([0, 1, 2]))
41
+ * list.append(Uint8Array.from([3, 4, 5]))
42
+ *
43
+ * list.slice(0, 1)
44
+ * // -> Uint8Array([0])
45
+ * ```
46
+ *
47
+ * ### subarray
48
+ *
49
+ * Subarray attempts to follow the same semantics as [Uint8Array.subarray](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/subarray) with one important different - this is a no-copy operation, unless the requested bytes span two internal buffers in which case it is a copy operation.
50
+ *
51
+ * ```js
52
+ * const list = new Uint8ArrayList()
53
+ * list.append(Uint8Array.from([0, 1, 2]))
54
+ * list.append(Uint8Array.from([3, 4, 5]))
55
+ *
56
+ * list.subarray(0, 1)
57
+ * // -> Uint8Array([0]) - no-copy
58
+ *
59
+ * list.subarray(2, 5)
60
+ * // -> Uint8Array([2, 3, 4]) - copy
61
+ * ```
62
+ *
63
+ * ### sublist
64
+ *
65
+ * Sublist creates and returns a new `Uint8ArrayList` that shares the underlying buffers with the original so is always a no-copy operation.
66
+ *
67
+ * ```js
68
+ * const list = new Uint8ArrayList()
69
+ * list.append(Uint8Array.from([0, 1, 2]))
70
+ * list.append(Uint8Array.from([3, 4, 5]))
71
+ *
72
+ * list.sublist(0, 1)
73
+ * // -> Uint8ArrayList([0]) - no-copy
74
+ *
75
+ * list.sublist(2, 5)
76
+ * // -> Uint8ArrayList([2], [3, 4]) - no-copy
77
+ * ```
78
+ *
79
+ * ## Inspiration
80
+ *
81
+ * Borrows liberally from [bl](https://www.npmjs.com/package/bl) but only uses native JS types.
82
+ */
83
+ import { allocUnsafe, alloc } from 'uint8arrays/alloc';
1
84
  import { concat } from 'uint8arrays/concat';
2
85
  import { equals } from 'uint8arrays/equals';
3
- import { allocUnsafe, alloc } from 'uint8arrays/alloc';
4
86
  const symbol = Symbol.for('@achingbrain/uint8arraylist');
5
87
  function findBufAndOffset(bufs, index) {
6
88
  if (index == null || index < 0) {
@@ -36,9 +118,10 @@ export function isUint8ArrayList(value) {
36
118
  return Boolean(value?.[symbol]);
37
119
  }
38
120
  export class Uint8ArrayList {
121
+ bufs;
122
+ length;
123
+ [symbol] = true;
39
124
  constructor(...data) {
40
- // Define symbol
41
- Object.defineProperty(this, symbol, { value: true });
42
125
  this.bufs = [];
43
126
  this.length = 0;
44
127
  if (data.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  {
2
2
  "Uint8ArrayList": "https://achingbrain.github.io/uint8arraylist/classes/Uint8ArrayList.html",
3
+ ".:Uint8ArrayList": "https://achingbrain.github.io/uint8arraylist/classes/Uint8ArrayList.html",
3
4
  "Appendable": "https://achingbrain.github.io/uint8arraylist/types/Appendable.html",
4
- "isUint8ArrayList": "https://achingbrain.github.io/uint8arraylist/functions/isUint8ArrayList.html"
5
+ ".:Appendable": "https://achingbrain.github.io/uint8arraylist/types/Appendable.html",
6
+ "isUint8ArrayList": "https://achingbrain.github.io/uint8arraylist/functions/isUint8ArrayList.html",
7
+ ".:isUint8ArrayList": "https://achingbrain.github.io/uint8arraylist/functions/isUint8ArrayList.html"
5
8
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uint8arraylist",
3
- "version": "2.4.4",
3
+ "version": "2.4.6",
4
4
  "description": "Append and consume bytes using only no-copy operations",
5
5
  "author": "Alex Potsides <alex@achingbrain.net>",
6
6
  "license": "Apache-2.0 OR MIT",
@@ -12,10 +12,6 @@
12
12
  "bugs": {
13
13
  "url": "https://github.com/achingbrain/uint8arraylist/issues"
14
14
  },
15
- "engines": {
16
- "node": ">=16.0.0",
17
- "npm": ">=7.0.0"
18
- },
19
15
  "type": "module",
20
16
  "types": "./dist/src/index.d.ts",
21
17
  "files": [
@@ -33,6 +29,7 @@
33
29
  "eslintConfig": {
34
30
  "extends": "ipfs",
35
31
  "parserOptions": {
32
+ "project": true,
36
33
  "sourceType": "module"
37
34
  }
38
35
  },
@@ -140,9 +137,9 @@
140
137
  "uint8arrays": "^4.0.2"
141
138
  },
142
139
  "devDependencies": {
143
- "aegir": "^37.4.6",
140
+ "aegir": "^41.1.9",
144
141
  "benchmark": "^2.1.4",
145
142
  "bl": "^6.0.0",
146
- "it-all": "^2.0.0"
143
+ "it-all": "^3.0.4"
147
144
  }
148
145
  }
package/src/index.ts CHANGED
@@ -1,12 +1,94 @@
1
+ /**
2
+ * @packageDocumentation
3
+ *
4
+ * A class that lets you do operations over a list of Uint8Arrays without
5
+ * copying them.
6
+ *
7
+ * ```js
8
+ * import { Uint8ArrayList } from 'uint8arraylist'
9
+ *
10
+ * const list = new Uint8ArrayList()
11
+ * list.append(Uint8Array.from([0, 1, 2]))
12
+ * list.append(Uint8Array.from([3, 4, 5]))
13
+ *
14
+ * list.subarray()
15
+ * // -> Uint8Array([0, 1, 2, 3, 4, 5])
16
+ *
17
+ * list.consume(3)
18
+ * list.subarray()
19
+ * // -> Uint8Array([3, 4, 5])
20
+ *
21
+ * // you can also iterate over the list
22
+ * for (const buf of list) {
23
+ * // ..do something with `buf`
24
+ * }
25
+ *
26
+ * list.subarray(0, 1)
27
+ * // -> Uint8Array([0])
28
+ * ```
29
+ *
30
+ * ## Converting Uint8ArrayLists to Uint8Arrays
31
+ *
32
+ * There are two ways to turn a `Uint8ArrayList` into a `Uint8Array` - `.slice` and `.subarray` and one way to turn a `Uint8ArrayList` into a `Uint8ArrayList` with different contents - `.sublist`.
33
+ *
34
+ * ### slice
35
+ *
36
+ * Slice follows the same semantics as [Uint8Array.slice](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/slice) in that it creates a new `Uint8Array` and copies bytes into it using an optional offset & length.
37
+ *
38
+ * ```js
39
+ * const list = new Uint8ArrayList()
40
+ * list.append(Uint8Array.from([0, 1, 2]))
41
+ * list.append(Uint8Array.from([3, 4, 5]))
42
+ *
43
+ * list.slice(0, 1)
44
+ * // -> Uint8Array([0])
45
+ * ```
46
+ *
47
+ * ### subarray
48
+ *
49
+ * Subarray attempts to follow the same semantics as [Uint8Array.subarray](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/subarray) with one important different - this is a no-copy operation, unless the requested bytes span two internal buffers in which case it is a copy operation.
50
+ *
51
+ * ```js
52
+ * const list = new Uint8ArrayList()
53
+ * list.append(Uint8Array.from([0, 1, 2]))
54
+ * list.append(Uint8Array.from([3, 4, 5]))
55
+ *
56
+ * list.subarray(0, 1)
57
+ * // -> Uint8Array([0]) - no-copy
58
+ *
59
+ * list.subarray(2, 5)
60
+ * // -> Uint8Array([2, 3, 4]) - copy
61
+ * ```
62
+ *
63
+ * ### sublist
64
+ *
65
+ * Sublist creates and returns a new `Uint8ArrayList` that shares the underlying buffers with the original so is always a no-copy operation.
66
+ *
67
+ * ```js
68
+ * const list = new Uint8ArrayList()
69
+ * list.append(Uint8Array.from([0, 1, 2]))
70
+ * list.append(Uint8Array.from([3, 4, 5]))
71
+ *
72
+ * list.sublist(0, 1)
73
+ * // -> Uint8ArrayList([0]) - no-copy
74
+ *
75
+ * list.sublist(2, 5)
76
+ * // -> Uint8ArrayList([2], [3, 4]) - no-copy
77
+ * ```
78
+ *
79
+ * ## Inspiration
80
+ *
81
+ * Borrows liberally from [bl](https://www.npmjs.com/package/bl) but only uses native JS types.
82
+ */
83
+ import { allocUnsafe, alloc } from 'uint8arrays/alloc'
1
84
  import { concat } from 'uint8arrays/concat'
2
85
  import { equals } from 'uint8arrays/equals'
3
- import { allocUnsafe, alloc } from 'uint8arrays/alloc'
4
86
 
5
87
  const symbol = Symbol.for('@achingbrain/uint8arraylist')
6
88
 
7
89
  export type Appendable = Uint8ArrayList | Uint8Array
8
90
 
9
- function findBufAndOffset (bufs: Uint8Array[], index: number) {
91
+ function findBufAndOffset (bufs: Uint8Array[], index: number): { buf: Uint8Array, index: number } {
10
92
  if (index == null || index < 0) {
11
93
  throw new RangeError('index is out of bounds')
12
94
  }
@@ -49,11 +131,9 @@ export function isUint8ArrayList (value: any): value is Uint8ArrayList {
49
131
  export class Uint8ArrayList implements Iterable<Uint8Array> {
50
132
  private bufs: Uint8Array[]
51
133
  public length: number
134
+ public readonly [symbol] = true
52
135
 
53
136
  constructor (...data: Appendable[]) {
54
- // Define symbol
55
- Object.defineProperty(this, symbol, { value: true })
56
-
57
137
  this.bufs = []
58
138
  this.length = 0
59
139
 
@@ -62,25 +142,25 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
62
142
  }
63
143
  }
64
144
 
65
- * [Symbol.iterator] () {
145
+ * [Symbol.iterator] (): Iterator<Uint8Array> {
66
146
  yield * this.bufs
67
147
  }
68
148
 
69
- get byteLength () {
149
+ get byteLength (): number {
70
150
  return this.length
71
151
  }
72
152
 
73
153
  /**
74
154
  * Add one or more `bufs` to the end of this Uint8ArrayList
75
155
  */
76
- append (...bufs: Appendable[]) {
156
+ append (...bufs: Appendable[]): void {
77
157
  this.appendAll(bufs)
78
158
  }
79
159
 
80
160
  /**
81
161
  * Add all `bufs` to the end of this Uint8ArrayList
82
162
  */
83
- appendAll (bufs: Appendable[]) {
163
+ appendAll (bufs: Appendable[]): void {
84
164
  let length = 0
85
165
 
86
166
  for (const buf of bufs) {
@@ -101,14 +181,14 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
101
181
  /**
102
182
  * Add one or more `bufs` to the start of this Uint8ArrayList
103
183
  */
104
- prepend (...bufs: Appendable[]) {
184
+ prepend (...bufs: Appendable[]): void {
105
185
  this.prependAll(bufs)
106
186
  }
107
187
 
108
188
  /**
109
189
  * Add all `bufs` to the start of this Uint8ArrayList
110
190
  */
111
- prependAll (bufs: Appendable[]) {
191
+ prependAll (bufs: Appendable[]): void {
112
192
  let length = 0
113
193
 
114
194
  for (const buf of bufs.reverse()) {
@@ -129,7 +209,7 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
129
209
  /**
130
210
  * Read the value at `index`
131
211
  */
132
- get (index: number) {
212
+ get (index: number): number {
133
213
  const res = findBufAndOffset(this.bufs, index)
134
214
 
135
215
  return res.buf[res.index]
@@ -138,7 +218,7 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
138
218
  /**
139
219
  * Set the value at `index` to `value`
140
220
  */
141
- set (index: number, value: number) {
221
+ set (index: number, value: number): void {
142
222
  const res = findBufAndOffset(this.bufs, index)
143
223
 
144
224
  res.buf[res.index] = value
@@ -147,7 +227,7 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
147
227
  /**
148
228
  * Copy bytes from `buf` to the index specified by `offset`
149
229
  */
150
- write (buf: Appendable, offset: number = 0) {
230
+ write (buf: Appendable, offset: number = 0): void {
151
231
  if (buf instanceof Uint8Array) {
152
232
  for (let i = 0; i < buf.length; i++) {
153
233
  this.set(offset + i, buf[i])
@@ -164,7 +244,7 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
164
244
  /**
165
245
  * Remove bytes from the front of the pool
166
246
  */
167
- consume (bytes: number) {
247
+ consume (bytes: number): void {
168
248
  // first, normalize the argument, in accordance with how Buffer does it
169
249
  bytes = Math.trunc(bytes)
170
250
 
@@ -237,7 +317,7 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
237
317
  return list
238
318
  }
239
319
 
240
- private _subList (beginInclusive?: number, endExclusive?: number) {
320
+ private _subList (beginInclusive?: number, endExclusive?: number): { bufs: Uint8Array[], length: number } {
241
321
  beginInclusive = beginInclusive ?? 0
242
322
  endExclusive = endExclusive ?? this.length
243
323