extended-buffer 7.0.0 → 7.0.2

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,4 +1,4 @@
1
- [![npm version](https://badge.fury.io/js/extended-buffer.svg)](https://badge.fury.io/js/extended-buffer)
1
+ [![npm version](https://badge.fury.io/js/extended-buffer.svg?flush_cache=v7_0_2)](https://badge.fury.io/js/extended-buffer)
2
2
 
3
3
  # ExtendedBuffer
4
4
 
@@ -63,7 +63,7 @@ type ExtendedBufferOptions = {
63
63
 
64
64
  Defaults (from source):
65
65
 
66
- - `capacity`: `512 * 1024` bytes (512 KiB)
66
+ - `capacity`: `16 * 1024` bytes (16 KiB)
67
67
  - `capacityStep`: same as `capacity`
68
68
 
69
69
  Example:
@@ -235,7 +235,7 @@ Common error codes you may see:
235
235
  - `SIZE_OUT_OF_RANGE` (reading more bytes than available)
236
236
  - `POINTER_OUT_OF_RANGE` (setting pointer outside `0…length`)
237
237
  - `INVALID_INTEGER_SIZE_VALUE_RANGE` (integer size not in `1…6`)
238
- - `EXCEEDING_MAXIMUM_BUFFER_SIZE` (allocation exceeds Node’s `kMaxLength`)
238
+ - `EXCEEDING_MAXIMUM_BUFFER_SIZE` (allocation exceeds Node’s `kMaxLength` or `os.totalmem()`)
239
239
  - `INVALID_INSTANCE_STATE` (internal invariant check failed)
240
240
 
241
241
  ---
@@ -4,7 +4,7 @@ exports.ExtendedBuffer = void 0;
4
4
  const buffer_1 = require("buffer");
5
5
  const utils = require("./utils");
6
6
  const errors_1 = require("./errors");
7
- const defaultCapacity = 512 * 1024;
7
+ const defaultCapacity = 16 * 1024;
8
8
  const defaultCapacityStep = defaultCapacity;
9
9
  class ExtendedBuffer {
10
10
  constructor(options) {
@@ -29,7 +29,7 @@ class ExtendedBuffer {
29
29
  return this.getPointer();
30
30
  }
31
31
  get nativeBufferView() {
32
- return this._nativeBuffer.subarray(this._pointerStart, this._pointerEnd);
32
+ return utils.nativeBufferSubarray(this._nativeBuffer, this._pointerStart, this._pointerEnd);
33
33
  }
34
34
  initExtendedBuffer() {
35
35
  this._pointer = 0;
@@ -325,7 +325,7 @@ class ExtendedBuffer {
325
325
  throw new errors_1.ExtendedBufferRangeError('SIZE_OUT_OF_RANGE');
326
326
  }
327
327
  let result;
328
- const buffer = this._nativeBuffer.subarray(this.nativePointer(), this.nativePointer() + size);
328
+ const buffer = utils.nativeBufferSubarray(this._nativeBuffer, this.nativePointer(), this.nativePointer() + size);
329
329
  if (asNative) {
330
330
  result = buffer_1.Buffer.from(buffer);
331
331
  }
@@ -1,13 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.allocNativeBuffer = void 0;
4
+ const os = require("os");
4
5
  const buffer_1 = require("buffer");
5
6
  const errors_1 = require("../errors");
6
7
  const assert_unsigned_integer_1 = require("./assert-unsigned-integer");
8
+ const maxBufferSize = Math.min(buffer_1.kMaxLength, os.totalmem());
9
+ (0, assert_unsigned_integer_1.assertUnsignedInteger)(maxBufferSize);
7
10
  function allocNativeBuffer(size) {
8
11
  (0, assert_unsigned_integer_1.assertUnsignedInteger)(size);
9
- (0, assert_unsigned_integer_1.assertUnsignedInteger)(buffer_1.kMaxLength);
10
- if (size > buffer_1.kMaxLength) {
12
+ if (size > maxBufferSize) {
11
13
  throw new errors_1.ExtendedBufferRangeError('EXCEEDING_MAXIMUM_BUFFER_SIZE');
12
14
  }
13
15
  return buffer_1.Buffer.allocUnsafe(size);
@@ -2,4 +2,5 @@ export { assertInteger } from './assert-integer';
2
2
  export { assertIntegerSize } from './assert-integer-size';
3
3
  export { allocNativeBuffer } from './alloc-native-buffer';
4
4
  export { reallocNativeBuffer } from './realloc-native-buffer';
5
+ export { nativeBufferSubarray } from './native-buffer-subarray';
5
6
  export { assertUnsignedInteger } from './assert-unsigned-integer';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assertUnsignedInteger = exports.reallocNativeBuffer = exports.allocNativeBuffer = exports.assertIntegerSize = exports.assertInteger = void 0;
3
+ exports.assertUnsignedInteger = exports.nativeBufferSubarray = exports.reallocNativeBuffer = exports.allocNativeBuffer = exports.assertIntegerSize = exports.assertInteger = void 0;
4
4
  var assert_integer_1 = require("./assert-integer");
5
5
  Object.defineProperty(exports, "assertInteger", { enumerable: true, get: function () { return assert_integer_1.assertInteger; } });
6
6
  var assert_integer_size_1 = require("./assert-integer-size");
@@ -9,5 +9,7 @@ var alloc_native_buffer_1 = require("./alloc-native-buffer");
9
9
  Object.defineProperty(exports, "allocNativeBuffer", { enumerable: true, get: function () { return alloc_native_buffer_1.allocNativeBuffer; } });
10
10
  var realloc_native_buffer_1 = require("./realloc-native-buffer");
11
11
  Object.defineProperty(exports, "reallocNativeBuffer", { enumerable: true, get: function () { return realloc_native_buffer_1.reallocNativeBuffer; } });
12
+ var native_buffer_subarray_1 = require("./native-buffer-subarray");
13
+ Object.defineProperty(exports, "nativeBufferSubarray", { enumerable: true, get: function () { return native_buffer_subarray_1.nativeBufferSubarray; } });
12
14
  var assert_unsigned_integer_1 = require("./assert-unsigned-integer");
13
15
  Object.defineProperty(exports, "assertUnsignedInteger", { enumerable: true, get: function () { return assert_unsigned_integer_1.assertUnsignedInteger; } });
@@ -0,0 +1,2 @@
1
+ /// <reference types="node" />
2
+ export declare function nativeBufferSubarray(buffer: Buffer, begin?: number, end?: number): Buffer;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nativeBufferSubarray = void 0;
4
+ const buffer_1 = require("buffer");
5
+ const sliceFallback = !(buffer_1.Buffer.allocUnsafe(1).subarray(0) instanceof buffer_1.Buffer);
6
+ function nativeBufferSubarray(buffer, begin, end) {
7
+ return sliceFallback ? buffer.slice(begin, end) : buffer.subarray(begin, end);
8
+ }
9
+ exports.nativeBufferSubarray = nativeBufferSubarray;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "extended-buffer",
3
- "version": "7.0.0",
3
+ "version": "7.0.2",
4
4
  "description": "Node JS extended Buffer",
5
5
  "type": "commonjs",
6
6
  "main": "./dist/index.js",
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "scripts": {
16
16
  "build": "npm run clean && node ./node_modules/.bin/tsc",
17
- "test": "npm run build && node ./node_modules/.bin/mocha",
17
+ "test": "node ./node_modules/.bin/mocha",
18
18
  "coverage": "node ./node_modules/.bin/nyc --reporter=html --reporter=text ./node_modules/.bin/mocha",
19
19
  "clean": "node -e \"['./dist', './coverage', './.nyc_output'].forEach(item => require('fs').rmSync(item, {recursive:true,force:true}));\"",
20
20
  "prepack": "npm run build"
@@ -55,9 +55,9 @@
55
55
  ],
56
56
  "devDependencies": {
57
57
  "@types/node": "^6.14.13",
58
- "chai": "^4.1.2",
59
- "mocha": "^4.0.1",
60
- "nyc": "^11.3.0",
58
+ "chai": "^4.5.0",
59
+ "mocha": "^6.2.3",
60
+ "nyc": "^11.9.0",
61
61
  "typescript": "^4.7.2"
62
62
  }
63
63
  }