node-opcua-binary-stream 2.67.0 → 2.73.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/dist/binaryStream.d.ts +2 -0
- package/dist/binaryStream.js +13 -2
- package/dist/binaryStream.js.map +1 -1
- package/package.json +4 -4
- package/source/binaryStream.ts +13 -2
package/dist/binaryStream.d.ts
CHANGED
package/dist/binaryStream.js
CHANGED
|
@@ -327,11 +327,14 @@ class BinaryStream {
|
|
|
327
327
|
* @param length
|
|
328
328
|
*/
|
|
329
329
|
readArrayBuffer(length) {
|
|
330
|
+
if (length > BinaryStream.maxByteStringLength) {
|
|
331
|
+
throw new Error(`maxStringLength(${BinaryStream.maxByteStringLength}) has been exceeded in BinaryStream.readArrayBuffer len=${length}`);
|
|
332
|
+
}
|
|
330
333
|
// istanbul ignore next
|
|
331
334
|
if (performCheck) {
|
|
332
335
|
(0, node_opcua_assert_1.assert)(this.length + length <= this.buffer.length, "not enough bytes in buffer");
|
|
333
336
|
}
|
|
334
|
-
const slice = this.buffer.
|
|
337
|
+
const slice = this.buffer.subarray(this.length, this.length + length);
|
|
335
338
|
// istanbul ignore next
|
|
336
339
|
if (performCheck) {
|
|
337
340
|
(0, node_opcua_assert_1.assert)(slice.length === length);
|
|
@@ -358,6 +361,9 @@ class BinaryStream {
|
|
|
358
361
|
if (bufLen === 0) {
|
|
359
362
|
return zeroLengthBuffer;
|
|
360
363
|
}
|
|
364
|
+
if (bufLen > BinaryStream.maxByteStringLength) {
|
|
365
|
+
throw new Error(`maxStringLength(${BinaryStream.maxByteStringLength}) has been exceeded in BinaryStream.readArrayBuffer len=${bufLen}`);
|
|
366
|
+
}
|
|
361
367
|
// check that there is enough space in the buffer
|
|
362
368
|
const remainingBytes = this.buffer.length - this.length;
|
|
363
369
|
// istanbul ignore next
|
|
@@ -369,7 +375,7 @@ class BinaryStream {
|
|
|
369
375
|
" left");
|
|
370
376
|
}
|
|
371
377
|
// create a shared memory buffer ! for speed
|
|
372
|
-
const buf = this.buffer.
|
|
378
|
+
const buf = this.buffer.subarray(this.length, this.length + bufLen);
|
|
373
379
|
this.length += bufLen;
|
|
374
380
|
return buf;
|
|
375
381
|
}
|
|
@@ -381,6 +387,9 @@ class BinaryStream {
|
|
|
381
387
|
if (bufLen === 0) {
|
|
382
388
|
return "";
|
|
383
389
|
}
|
|
390
|
+
if (bufLen > BinaryStream.maxStringLength) {
|
|
391
|
+
throw new Error(`maxStringLength(${BinaryStream.maxStringLength}) has been exceeded in BinaryStream.readString len=${bufLen}`);
|
|
392
|
+
}
|
|
384
393
|
// check that there is enough space in the buffer
|
|
385
394
|
const remainingBytes = this.buffer.length - this.length;
|
|
386
395
|
// istanbul ignore next
|
|
@@ -397,6 +406,8 @@ class BinaryStream {
|
|
|
397
406
|
}
|
|
398
407
|
}
|
|
399
408
|
exports.BinaryStream = BinaryStream;
|
|
409
|
+
BinaryStream.maxByteStringLength = 16 * 1024 * 1024;
|
|
410
|
+
BinaryStream.maxStringLength = 16 * 1024;
|
|
400
411
|
/**
|
|
401
412
|
* @function calculateByteLength
|
|
402
413
|
* calculate the size in bytes of a utf8 string
|
package/dist/binaryStream.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binaryStream.js","sourceRoot":"","sources":["../source/binaryStream.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,gBAAc;AAEd,yDAA2C;AAC3C,qEAAwE;AAExE,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,YAAY;AAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC;AACvB,MAAM,YAAY,GAAG,KAAK,CAAC;AAE3B;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAa,YAAY;
|
|
1
|
+
{"version":3,"file":"binaryStream.js","sourceRoot":"","sources":["../source/binaryStream.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-opcua-binary-stream",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.73.0",
|
|
4
4
|
"description": "pure nodejs OPCUA SDK - module -binary-stream",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"node-opcua-assert": "2.66.0",
|
|
15
|
-
"node-opcua-buffer-utils": "2.
|
|
15
|
+
"node-opcua-buffer-utils": "2.71.0"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
|
-
"node-opcua-benchmarker": "2.
|
|
18
|
+
"node-opcua-benchmarker": "2.71.0",
|
|
19
19
|
"should": "^13.2.3"
|
|
20
20
|
},
|
|
21
21
|
"author": "Etienne Rossignon",
|
|
@@ -33,5 +33,5 @@
|
|
|
33
33
|
"internet of things"
|
|
34
34
|
],
|
|
35
35
|
"homepage": "http://node-opcua.github.io/",
|
|
36
|
-
"gitHead": "
|
|
36
|
+
"gitHead": "b23a87c1ef777c0d8b680f45ee77e2a319feb092"
|
|
37
37
|
}
|
package/source/binaryStream.ts
CHANGED
|
@@ -39,6 +39,8 @@ const performCheck = false;
|
|
|
39
39
|
*
|
|
40
40
|
*/
|
|
41
41
|
export class BinaryStream {
|
|
42
|
+
public static maxByteStringLength = 16 * 1024 * 1024;
|
|
43
|
+
public static maxStringLength = 16 * 1024;
|
|
42
44
|
/**
|
|
43
45
|
* the current position inside the buffer
|
|
44
46
|
*/
|
|
@@ -363,11 +365,14 @@ export class BinaryStream {
|
|
|
363
365
|
* @param length
|
|
364
366
|
*/
|
|
365
367
|
public readArrayBuffer(length: number): Uint8Array {
|
|
368
|
+
if (length > BinaryStream.maxByteStringLength) {
|
|
369
|
+
throw new Error(`maxStringLength(${BinaryStream.maxByteStringLength}) has been exceeded in BinaryStream.readArrayBuffer len=${length}`);
|
|
370
|
+
}
|
|
366
371
|
// istanbul ignore next
|
|
367
372
|
if (performCheck) {
|
|
368
373
|
assert(this.length + length <= this.buffer.length, "not enough bytes in buffer");
|
|
369
374
|
}
|
|
370
|
-
const slice = this.buffer.
|
|
375
|
+
const slice = this.buffer.subarray(this.length, this.length + length);
|
|
371
376
|
// istanbul ignore next
|
|
372
377
|
if (performCheck) {
|
|
373
378
|
assert(slice.length === length);
|
|
@@ -395,6 +400,9 @@ export class BinaryStream {
|
|
|
395
400
|
if (bufLen === 0) {
|
|
396
401
|
return zeroLengthBuffer;
|
|
397
402
|
}
|
|
403
|
+
if (bufLen > BinaryStream.maxByteStringLength) {
|
|
404
|
+
throw new Error(`maxStringLength(${BinaryStream.maxByteStringLength}) has been exceeded in BinaryStream.readArrayBuffer len=${bufLen}`);
|
|
405
|
+
}
|
|
398
406
|
// check that there is enough space in the buffer
|
|
399
407
|
const remainingBytes = this.buffer.length - this.length;
|
|
400
408
|
// istanbul ignore next
|
|
@@ -408,7 +416,7 @@ export class BinaryStream {
|
|
|
408
416
|
);
|
|
409
417
|
}
|
|
410
418
|
// create a shared memory buffer ! for speed
|
|
411
|
-
const buf = this.buffer.
|
|
419
|
+
const buf = this.buffer.subarray(this.length, this.length + bufLen);
|
|
412
420
|
this.length += bufLen;
|
|
413
421
|
return buf;
|
|
414
422
|
}
|
|
@@ -421,6 +429,9 @@ export class BinaryStream {
|
|
|
421
429
|
if (bufLen === 0) {
|
|
422
430
|
return "";
|
|
423
431
|
}
|
|
432
|
+
if (bufLen > BinaryStream.maxStringLength) {
|
|
433
|
+
throw new Error(`maxStringLength(${BinaryStream.maxStringLength}) has been exceeded in BinaryStream.readString len=${bufLen}`);
|
|
434
|
+
}
|
|
424
435
|
// check that there is enough space in the buffer
|
|
425
436
|
const remainingBytes = this.buffer.length - this.length;
|
|
426
437
|
// istanbul ignore next
|