uint8arraylist 1.5.1 → 2.0.0

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,7 +1,18 @@
1
- # Uint8ArrayList
1
+ # uint8arraylist <!-- omit in toc -->
2
+
3
+ [![codecov](https://img.shields.io/codecov/c/github/achingbrain/uint8arraylist.svg?style=flat-square)](https://codecov.io/gh/achingbrain/uint8arraylist)
4
+ [![CI](https://img.shields.io/github/workflow/status/achingbrain/uint8arraylist/test%20&%20maybe%20release/master?style=flat-square)](https://github.com/achingbrain/uint8arraylist/actions/workflows/js-test-and-release.yml)
2
5
 
3
6
  > Append and consume bytes using only no-copy operations
4
7
 
8
+ ## Table of contents <!-- omit in toc -->
9
+
10
+ - [Install](#install)
11
+ - [Usage](#usage)
12
+ - [Inspiration](#inspiration)
13
+ - [License](#license)
14
+ - [Contribution](#contribution)
15
+
5
16
  ## Install
6
17
 
7
18
  ```console
@@ -36,3 +47,14 @@ list.slice(0, 1)
36
47
  ## Inspiration
37
48
 
38
49
  Borrows liberally from [bl](https://www.npmjs.com/package/bl) but only uses native JS types.
50
+
51
+ ## License
52
+
53
+ Licensed under either of
54
+
55
+ - Apache 2.0, ([LICENSE-APACHE](LICENSE-APACHE) / <http://www.apache.org/licenses/LICENSE-2.0>)
56
+ - MIT ([LICENSE-MIT](LICENSE-MIT) / <http://opensource.org/licenses/MIT>)
57
+
58
+ ## Contribution
59
+
60
+ 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.
@@ -33,12 +33,27 @@ export declare class Uint8ArrayList implements Iterable<Uint8Array> {
33
33
  * Remove bytes from the front of the pool
34
34
  */
35
35
  consume(bytes: number): void;
36
+ /**
37
+ * Extracts a section of an array and returns a new array.
38
+ *
39
+ * This is a copy operation as it is with Uint8Arrays and Arrays
40
+ * - note this is different to the behaviour of Node Buffers.
41
+ */
36
42
  slice(beginInclusive?: number, endExclusive?: number): Uint8Array;
37
- subarray(beginInclusive?: number, endExclusive?: number): Uint8ArrayList;
38
- _subList(beginInclusive?: number, endExclusive?: number): {
39
- bufs: Uint8Array[];
40
- length: number;
41
- };
43
+ /**
44
+ * Returns a new Uint8Array from the given start and end element index.
45
+ *
46
+ * In the best case where the data extracted comes from a single Uint8Array
47
+ * internally this is a no-copy operation otherwise it is a copy operation.
48
+ */
49
+ subarray(beginInclusive?: number, endExclusive?: number): Uint8Array;
50
+ /**
51
+ * Returns a new Uint8ArrayList from the given start and end element index.
52
+ *
53
+ * This is a no-copy operation.
54
+ */
55
+ sublist(beginInclusive?: number, endExclusive?: number): Uint8ArrayList;
56
+ private _subList;
42
57
  getInt8(byteOffset: number): number;
43
58
  setInt8(byteOffset: number, value: number): void;
44
59
  getInt16(byteOffset: number, littleEndian?: boolean): number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,aAAK,UAAU,GAAG,cAAc,GAAG,UAAU,CAAA;AAyB7C;;GAEG;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;IAUhC,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,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;IAsBtB,KAAK,CAAE,cAAc,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAMrD,QAAQ,CAAE,cAAc,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IASxD,QAAQ,CAAE,cAAc,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;;;;IA4DxD,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;CAO7E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -118,11 +118,35 @@ export class Uint8ArrayList {
118
118
  }
119
119
  }
120
120
  }
121
+ /**
122
+ * Extracts a section of an array and returns a new array.
123
+ *
124
+ * This is a copy operation as it is with Uint8Arrays and Arrays
125
+ * - note this is different to the behaviour of Node Buffers.
126
+ */
121
127
  slice(beginInclusive, endExclusive) {
122
128
  const { bufs, length } = this._subList(beginInclusive, endExclusive);
123
129
  return concat(bufs, length);
124
130
  }
131
+ /**
132
+ * Returns a new Uint8Array from the given start and end element index.
133
+ *
134
+ * In the best case where the data extracted comes from a single Uint8Array
135
+ * internally this is a no-copy operation otherwise it is a copy operation.
136
+ */
125
137
  subarray(beginInclusive, endExclusive) {
138
+ const { bufs, length } = this._subList(beginInclusive, endExclusive);
139
+ if (bufs.length === 1) {
140
+ return bufs[0];
141
+ }
142
+ return concat(bufs, length);
143
+ }
144
+ /**
145
+ * Returns a new Uint8ArrayList from the given start and end element index.
146
+ *
147
+ * This is a no-copy operation.
148
+ */
149
+ sublist(beginInclusive, endExclusive) {
126
150
  const { bufs } = this._subList(beginInclusive, endExclusive);
127
151
  const list = new Uint8ArrayList();
128
152
  list.appendAll(bufs);
@@ -134,6 +158,12 @@ export class Uint8ArrayList {
134
158
  }
135
159
  beginInclusive = beginInclusive ?? 0;
136
160
  endExclusive = endExclusive ?? (this.length > 0 ? this.length : 0);
161
+ if (beginInclusive < 0) {
162
+ beginInclusive = this.length + beginInclusive;
163
+ }
164
+ if (endExclusive < 0) {
165
+ endExclusive = this.length + endExclusive;
166
+ }
137
167
  if (beginInclusive < 0 || endExclusive > this.length) {
138
168
  throw new RangeError('index out of bounds');
139
169
  }
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uint8arraylist",
3
- "version": "1.5.1",
3
+ "version": "2.0.0",
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",
@@ -26,6 +26,7 @@
26
26
  ],
27
27
  "exports": {
28
28
  ".": {
29
+ "types": "./dist/src/index.d.ts",
29
30
  "import": "./dist/src/index.js"
30
31
  }
31
32
  },
@@ -100,7 +101,11 @@
100
101
  },
101
102
  {
102
103
  "type": "docs",
103
- "section": "Trivial Changes"
104
+ "section": "Documentation"
105
+ },
106
+ {
107
+ "type": "deps",
108
+ "section": "Dependencies"
104
109
  },
105
110
  {
106
111
  "type": "test",
@@ -117,24 +122,25 @@
117
122
  ]
118
123
  },
119
124
  "scripts": {
125
+ "clean": "aegir clean",
120
126
  "lint": "aegir lint",
121
- "dep-check": "aegir dep-check dist/src/**/*.js dist/test/**/*.js",
122
- "build": "tsc",
123
- "pretest": "npm run build",
124
- "test": "aegir test -f ./dist/test/**/*.js",
125
- "test:chrome": "npm run test -- -t browser",
126
- "test:chrome-webworker": "npm run test -- -t webworker",
127
- "test:firefox": "npm run test -- -t browser -- --browser firefox",
128
- "test:firefox-webworker": "npm run test -- -t webworker -- --browser firefox",
129
- "test:node": "npm run test -- -t node --cov",
130
- "test:electron-main": "npm run test -- -t electron-main",
131
- "release": "semantic-release"
127
+ "dep-check": "aegir dep-check",
128
+ "build": "aegir build",
129
+ "test": "aegir test",
130
+ "test:chrome": "aegir test -t browser --cov",
131
+ "test:chrome-webworker": "aegir test -t webworker",
132
+ "test:firefox": "aegir test -t browser -- --browser firefox",
133
+ "test:firefox-webworker": "aegir test -t webworker -- --browser firefox",
134
+ "test:node": "aegir test -t node --cov",
135
+ "test:electron-main": "aegir test -t electron-main",
136
+ "release": "aegir release"
132
137
  },
133
138
  "dependencies": {
134
139
  "uint8arrays": "^3.0.0"
135
140
  },
136
141
  "devDependencies": {
137
- "aegir": "^36.1.3",
142
+ "aegir": "^37.4.6",
143
+ "bl": "^5.0.0",
138
144
  "it-all": "^1.0.6"
139
145
  }
140
146
  }
package/src/index.ts CHANGED
@@ -144,13 +144,40 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
144
144
  }
145
145
  }
146
146
 
147
- slice (beginInclusive?: number, endExclusive?: number) {
147
+ /**
148
+ * Extracts a section of an array and returns a new array.
149
+ *
150
+ * This is a copy operation as it is with Uint8Arrays and Arrays
151
+ * - note this is different to the behaviour of Node Buffers.
152
+ */
153
+ slice (beginInclusive?: number, endExclusive?: number): Uint8Array {
148
154
  const { bufs, length } = this._subList(beginInclusive, endExclusive)
149
155
 
150
156
  return concat(bufs, length)
151
157
  }
152
158
 
153
- subarray (beginInclusive?: number, endExclusive?: number) {
159
+ /**
160
+ * Returns a new Uint8Array from the given start and end element index.
161
+ *
162
+ * In the best case where the data extracted comes from a single Uint8Array
163
+ * internally this is a no-copy operation otherwise it is a copy operation.
164
+ */
165
+ subarray (beginInclusive?: number, endExclusive?: number): Uint8Array {
166
+ const { bufs, length } = this._subList(beginInclusive, endExclusive)
167
+
168
+ if (bufs.length === 1) {
169
+ return bufs[0]
170
+ }
171
+
172
+ return concat(bufs, length)
173
+ }
174
+
175
+ /**
176
+ * Returns a new Uint8ArrayList from the given start and end element index.
177
+ *
178
+ * This is a no-copy operation.
179
+ */
180
+ sublist (beginInclusive?: number, endExclusive?: number): Uint8ArrayList {
154
181
  const { bufs } = this._subList(beginInclusive, endExclusive)
155
182
 
156
183
  const list = new Uint8ArrayList()
@@ -159,7 +186,7 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
159
186
  return list
160
187
  }
161
188
 
162
- _subList (beginInclusive?: number, endExclusive?: number) {
189
+ private _subList (beginInclusive?: number, endExclusive?: number) {
163
190
  if (beginInclusive == null && endExclusive == null) {
164
191
  return { bufs: this.bufs, length: this.length }
165
192
  }
@@ -167,6 +194,14 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
167
194
  beginInclusive = beginInclusive ?? 0
168
195
  endExclusive = endExclusive ?? (this.length > 0 ? this.length : 0)
169
196
 
197
+ if (beginInclusive < 0) {
198
+ beginInclusive = this.length + beginInclusive
199
+ }
200
+
201
+ if (endExclusive < 0) {
202
+ endExclusive = this.length + endExclusive
203
+ }
204
+
170
205
  if (beginInclusive < 0 || endExclusive > this.length) {
171
206
  throw new RangeError('index out of bounds')
172
207
  }