node-opcua-packet-analyzer 2.55.0 → 2.61.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/LICENSE CHANGED
@@ -1,20 +1,20 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2014-2021 Etienne Rossignon
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy of
6
- this software and associated documentation files (the "Software"), to deal in
7
- the Software without restriction, including without limitation the rights to
8
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
- the Software, and to permit persons to whom the Software is furnished to do so,
10
- subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
- FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
- COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
- IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014-2021 Etienne Rossignon
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the "Software"), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ the Software, and to permit persons to whom the Software is furnished to do so,
10
+ subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/index.ts"],"names":[],"mappings":";;;AAAA,qEAI2C;AAHvC,gHAAA,aAAa,OAAA;AACb,yHAAA,sBAAsB,OAAA;AACtB,iIAAA,8BAA8B,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/index.ts"],"names":[],"mappings":";;;AAAA,qEAA0H;AAAjH,gHAAA,aAAa,OAAA;AAAE,yHAAA,sBAAsB,OAAA;AAAE,iIAAA,8BAA8B,OAAA"}
@@ -1,8 +1,14 @@
1
1
  /// <reference types="node" />
2
+ import { BinaryStream } from "node-opcua-binary-stream";
2
3
  import { BaseUAObject } from "node-opcua-factory";
3
4
  interface AnalyzePacketOptions {
4
5
  }
5
- export declare function analyzePacket(buffer: Buffer, objMessage: any, padding: number, offset?: number, customOptions?: AnalyzePacketOptions): void;
6
+ export interface ObjectMessage {
7
+ encode(stream: BinaryStream): void;
8
+ decode(stream: BinaryStream): void;
9
+ decodeDebug(stream: BinaryStream, options: any): void;
10
+ }
11
+ export declare function analyzePacket(buffer: Buffer, objMessage: ObjectMessage, padding: number, offset?: number, customOptions?: AnalyzePacketOptions): void;
6
12
  export declare function analyseExtensionObject(buffer: Buffer, padding: number, offset: number, customOptions?: AnalyzePacketOptions): void;
7
13
  export declare function analyze_object_binary_encoding(obj: BaseUAObject): void;
8
14
  export {};
@@ -1,13 +1,9 @@
1
1
  "use strict";
2
- // tslint:disable:no-bitwise
3
- // tslint:disable:no-console
4
- // tslint:disable:max-line-length
5
- // tslint:disable:no-empty-interface
6
2
  Object.defineProperty(exports, "__esModule", { value: true });
7
3
  exports.analyze_object_binary_encoding = exports.analyseExtensionObject = exports.analyzePacket = void 0;
4
+ const util_1 = require("util");
8
5
  const chalk = require("chalk");
9
6
  const node_opcua_assert_1 = require("node-opcua-assert");
10
- const util_1 = require("util");
11
7
  const node_opcua_basic_types_1 = require("node-opcua-basic-types");
12
8
  const node_opcua_binary_stream_1 = require("node-opcua-binary-stream");
13
9
  const node_opcua_debug_1 = require("node-opcua-debug");
@@ -20,7 +16,7 @@ function f(n, width) {
20
16
  }
21
17
  function display_encoding_mask(padding, encodingMask, encodingInfo) {
22
18
  for (const v in encodingInfo) {
23
- if (!encodingInfo.hasOwnProperty(v)) {
19
+ if (!Object.prototype.hasOwnProperty.call(encodingInfo, v)) {
24
20
  continue;
25
21
  }
26
22
  const enumKey = encodingInfo[v];
@@ -1 +1 @@
1
- {"version":3,"file":"packet_analyzer.js","sourceRoot":"","sources":["../../../source/packet_analyzer/packet_analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"packet_analyzer.js","sourceRoot":"","sources":["../../../source/packet_analyzer/packet_analyzer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compare_obj_by_encoding.js","sourceRoot":"","sources":["../../test_helpers/compare_obj_by_encoding.ts"],"names":[],"mappings":";;;AAAA,uEAAwD;AAExD,iCAAiC;AACjC,MAAM,OAAO,GAAG,MAAM,CAAC;AAEvB,SAAgB,uBAAuB,CAAC,IAAkB,EAAE,IAAkB;IAE1E,SAAS,OAAO,CAAC,GAAiB;QAC9B,MAAM,MAAM,GAAG,IAAI,uCAAY,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;QACvD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnB,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC;AAChB,CAAC;AATD,0DASC"}
1
+ {"version":3,"file":"compare_obj_by_encoding.js","sourceRoot":"","sources":["../../test_helpers/compare_obj_by_encoding.ts"],"names":[],"mappings":";;;AAAA,uEAAwD;AAExD,iCAAiC;AACjC,MAAM,OAAO,GAAG,MAAM,CAAC;AAEvB,SAAgB,uBAAuB,CAAC,IAAkB,EAAE,IAAkB;IAC1E,SAAS,OAAO,CAAC,GAAiB;QAC9B,MAAM,MAAM,GAAG,IAAI,uCAAY,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;QACvD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnB,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC;AAChB,CAAC;AARD,0DAQC"}
@@ -1,4 +1,14 @@
1
1
  /// <reference types="node" />
2
+ import { BinaryStream } from "node-opcua-binary-stream";
3
+ import { ExpandedNodeId } from "node-opcua-nodeid";
4
+ import { BaseUAObject } from "node-opcua-factory";
5
+ export interface IExtensionObject extends BaseUAObject {
6
+ binaryStoreSize(): number;
7
+ encode(stream: BinaryStream): void;
8
+ decode(stream: BinaryStream): void;
9
+ encodingDefaultBinary?: ExpandedNodeId;
10
+ constructor: any;
11
+ }
2
12
  declare type encode_decode_round_trip_testCallback = (buffer: Buffer, encoding: any, options: any) => void;
3
13
  /**
4
14
  * @method encode_decode_round_trip_test
@@ -7,6 +17,6 @@ declare type encode_decode_round_trip_testCallback = (buffer: Buffer, encoding:
7
17
  * @param callback_buffer
8
18
  * @return {*}
9
19
  */
10
- export declare function encode_decode_round_trip_test(obj: any, options?: any, callback_buffer?: encode_decode_round_trip_testCallback): any;
11
- export declare function json_encode_decode_round_trip_test(obj: any, options: any, callbackBuffer?: any): any;
20
+ export declare function encode_decode_round_trip_test(obj: IExtensionObject, options?: unknown | encode_decode_round_trip_testCallback, callback_buffer?: encode_decode_round_trip_testCallback): any;
21
+ export declare function json_encode_decode_round_trip_test(obj: unknown, options: unknown, callbackBuffer?: unknown): void;
12
22
  export {};
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.json_encode_decode_round_trip_test = exports.encode_decode_round_trip_test = void 0;
4
+ // tslint:disable:no-console
4
5
  // @ts-check
5
6
  const chalk = require("chalk");
6
7
  const node_opcua_binary_stream_1 = require("node-opcua-binary-stream");
@@ -9,7 +10,6 @@ const node_opcua_factory_1 = require("node-opcua-factory");
9
10
  const node_opcua_test_helpers_1 = require("node-opcua-test-helpers");
10
11
  const should = require("should");
11
12
  const source_1 = require("../source");
12
- // tslint:disable:no-console
13
13
  function dump_block_in_debug_mode(buffer, id, options) {
14
14
  if (process.env.DEBUG) {
15
15
  console.log((0, node_opcua_debug_1.hexDump)(buffer));
@@ -57,14 +57,13 @@ function redirectToNull(functor) {
57
57
  const old = console.log;
58
58
  if (!process.env.DEBUG) {
59
59
  // tslint:disable:no-empty
60
- console.log = (...args) => { };
60
+ console.log = (...args) => {
61
+ /** */
62
+ };
61
63
  }
62
64
  try {
63
65
  functor();
64
66
  }
65
- catch (err) {
66
- throw err;
67
- }
68
67
  finally {
69
68
  console.log = old;
70
69
  }
@@ -83,15 +82,15 @@ function encode_decode_round_trip_test(obj, options, callback_buffer) {
83
82
  }
84
83
  callback_buffer = callback_buffer || dump_block_in_debug_mode;
85
84
  should.exist(obj);
86
- const size = obj.binaryStoreSize(options);
85
+ const size = obj.binaryStoreSize();
87
86
  const stream = new node_opcua_binary_stream_1.BinaryStream(Buffer.alloc(size));
88
- obj.encode(stream, options);
87
+ obj.encode(stream);
89
88
  callback_buffer(stream.buffer, obj.encodingDefaultBinary, options);
90
89
  stream.rewind();
91
90
  // reconstruct a object ( some object may not have a default Binary and should be recreated
92
91
  const expandedNodeId = obj.encodingDefaultBinary;
93
92
  const objReloaded = expandedNodeId ? (0, node_opcua_factory_1.constructObject)(expandedNodeId) : new obj.constructor();
94
- objReloaded.decode(stream, options);
93
+ objReloaded.decode(stream);
95
94
  redirectToNull(() => (0, source_1.analyze_object_binary_encoding)(obj));
96
95
  compare(objReloaded, obj);
97
96
  return objReloaded;
@@ -1 +1 @@
1
- {"version":3,"file":"encode_decode_round_trip_test.js","sourceRoot":"","sources":["../../test_helpers/encode_decode_round_trip_test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encode_decode_round_trip_test.js","sourceRoot":"","sources":["../../test_helpers/encode_decode_round_trip_test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,13 @@
1
1
  {
2
2
  "name": "node-opcua-packet-analyzer",
3
- "version": "2.55.0",
3
+ "version": "2.61.0",
4
4
  "description": "pure nodejs OPCUA SDK - module -packet-analyzer",
5
5
  "main": "./dist/source/index.js",
6
6
  "types": "./dist/source/index.d.ts",
7
7
  "scripts": {
8
8
  "build": "tsc -b",
9
+ "lint": "eslint source test_helpers",
10
+ "format": "prettier --write source test_helpers",
9
11
  "clean": "node -e \"require('rimraf').sync('dist');\"",
10
12
  "test": "echo no test"
11
13
  },
@@ -14,11 +16,12 @@
14
16
  "dependencies": {
15
17
  "chalk": "4.1.2",
16
18
  "node-opcua-assert": "2.55.0",
17
- "node-opcua-basic-types": "2.55.0",
19
+ "node-opcua-basic-types": "2.61.0",
18
20
  "node-opcua-binary-stream": "2.55.0",
19
- "node-opcua-debug": "2.55.0",
20
- "node-opcua-factory": "2.55.0",
21
- "node-opcua-utils": "2.55.0"
21
+ "node-opcua-debug": "2.61.0",
22
+ "node-opcua-factory": "2.61.0",
23
+ "node-opcua-nodeid": "2.61.0",
24
+ "node-opcua-utils": "2.60.0"
22
25
  },
23
26
  "devDependencies": {
24
27
  "node-opcua-test-helpers": "2.42.0",
@@ -37,5 +40,5 @@
37
40
  "internet of things"
38
41
  ],
39
42
  "homepage": "http://node-opcua.github.io/",
40
- "gitHead": "28fdbfe1c5306fd0e69758ccacfa2c6d1722115c"
43
+ "gitHead": "dd8776f047686ca791989f27e11ee48bfd8b61b7"
41
44
  }
package/source/index.ts CHANGED
@@ -1,5 +1 @@
1
- export {
2
- analyzePacket,
3
- analyseExtensionObject,
4
- analyze_object_binary_encoding
5
- } from "./packet_analyzer/packet_analyzer";
1
+ export { analyzePacket, analyseExtensionObject, analyze_object_binary_encoding } from "./packet_analyzer/packet_analyzer";
@@ -1,11 +1,6 @@
1
- // tslint:disable:no-bitwise
2
- // tslint:disable:no-console
3
- // tslint:disable:max-line-length
4
- // tslint:disable:no-empty-interface
5
-
1
+ import { inspect } from "util";
6
2
  import * as chalk from "chalk";
7
3
  import { assert } from "node-opcua-assert";
8
- import { inspect } from "util";
9
4
 
10
5
  import { decodeByte, decodeExpandedNodeId, decodeNodeId, decodeUInt32 } from "node-opcua-basic-types";
11
6
  import { BinaryStream } from "node-opcua-binary-stream";
@@ -23,7 +18,7 @@ function f(n: number, width: number): string {
23
18
 
24
19
  function display_encoding_mask(padding: string, encodingMask: any, encodingInfo: any) {
25
20
  for (const v in encodingInfo) {
26
- if (!encodingInfo.hasOwnProperty(v)) {
21
+ if (!Object.prototype.hasOwnProperty.call(encodingInfo, v)) {
27
22
  continue;
28
23
  }
29
24
  const enumKey = encodingInfo[v];
@@ -50,7 +45,15 @@ function hex_block(start: number, end: number, buffer: Buffer) {
50
45
  );
51
46
  }
52
47
 
53
- function make_tracer(buffer: Buffer, padding: number, offset?: number) {
48
+ interface Tracer {
49
+ name?: string;
50
+ tracer: {
51
+ dump: (title: string, value: any) => void;
52
+ encoding_byte: (encodingMask: any, valueEnum: any, start: number, end: number) => void;
53
+ trace: (operation: any, name: any, value: any, start: number, end: number, fieldType: string) => void;
54
+ };
55
+ }
56
+ function make_tracer(buffer: Buffer, padding: number, offset?: number): Tracer {
54
57
  padding = !padding ? 0 : padding;
55
58
  offset = offset || 0;
56
59
 
@@ -157,18 +160,29 @@ function make_tracer(buffer: Buffer, padding: number, offset?: number) {
157
160
 
158
161
  interface AnalyzePacketOptions {}
159
162
 
163
+ export interface ObjectMessage {
164
+ encode(stream: BinaryStream): void;
165
+ decode(stream: BinaryStream): void;
166
+ decodeDebug(stream: BinaryStream, options: any): void;
167
+ }
168
+
160
169
  export function analyzePacket(
161
170
  buffer: Buffer,
162
- objMessage: any,
171
+ objMessage: ObjectMessage,
163
172
  padding: number,
164
173
  offset?: number,
165
174
  customOptions?: AnalyzePacketOptions
166
- ) {
175
+ ): void {
167
176
  const stream = new BinaryStream(buffer);
168
177
  _internalAnalyzePacket(buffer, stream, objMessage, padding, customOptions, offset);
169
178
  }
170
179
 
171
- export function analyseExtensionObject(buffer: Buffer, padding: number, offset: number, customOptions?: AnalyzePacketOptions) {
180
+ export function analyseExtensionObject(
181
+ buffer: Buffer,
182
+ padding: number,
183
+ offset: number,
184
+ customOptions?: AnalyzePacketOptions
185
+ ): void {
172
186
  const stream = new BinaryStream(buffer);
173
187
  let id;
174
188
  let objMessage;
@@ -186,12 +200,12 @@ export function analyseExtensionObject(buffer: Buffer, padding: number, offset:
186
200
  function _internalAnalyzePacket(
187
201
  buffer: Buffer,
188
202
  stream: BinaryStream,
189
- objMessage: any,
203
+ objMessage: ObjectMessage | undefined,
190
204
  padding: number,
191
205
  customOptions?: AnalyzePacketOptions,
192
206
  offset?: number
193
207
  ) {
194
- let options: any = make_tracer(buffer, padding, offset);
208
+ let options = make_tracer(buffer, padding, offset);
195
209
  options.name = "message";
196
210
  if (customOptions) options = { ...options, ...customOptions };
197
211
  try {
@@ -209,7 +223,7 @@ function _internalAnalyzePacket(
209
223
  }
210
224
  }
211
225
 
212
- export function analyze_object_binary_encoding(obj: BaseUAObject) {
226
+ export function analyze_object_binary_encoding(obj: BaseUAObject): void {
213
227
  assert(obj);
214
228
 
215
229
  const size = obj.binaryStoreSize();
@@ -1,15 +1,14 @@
1
- import { BinaryStream } from "node-opcua-binary-stream";
2
- import { BaseUAObject } from "node-opcua-factory";
3
- import * as should from "should";
4
- const persist = should;
5
-
6
- export function compare_obj_by_encoding(obj1: BaseUAObject, obj2: BaseUAObject): boolean {
7
-
8
- function encoded(obj: BaseUAObject) {
9
- const stream = new BinaryStream(obj.binaryStoreSize());
10
- obj.encode(stream);
11
- return stream.buffer.toString("hex");
12
- }
13
- encoded(obj1).should.eql(encoded(obj2));
14
- return true;
15
- }
1
+ import { BinaryStream } from "node-opcua-binary-stream";
2
+ import { BaseUAObject } from "node-opcua-factory";
3
+ import * as should from "should";
4
+ const persist = should;
5
+
6
+ export function compare_obj_by_encoding(obj1: BaseUAObject, obj2: BaseUAObject): boolean {
7
+ function encoded(obj: BaseUAObject) {
8
+ const stream = new BinaryStream(obj.binaryStoreSize());
9
+ obj.encode(stream);
10
+ return stream.buffer.toString("hex");
11
+ }
12
+ encoded(obj1).should.eql(encoded(obj2));
13
+ return true;
14
+ }
@@ -1,135 +1,143 @@
1
- // @ts-check
2
- import * as chalk from "chalk";
3
- import { BinaryStream } from "node-opcua-binary-stream";
4
- import { hexDump } from "node-opcua-debug";
5
- import { BaseUAObject, constructObject } from "node-opcua-factory";
6
- import { assert_arrays_are_equal } from "node-opcua-test-helpers";
7
- import * as should from "should";
8
-
9
- import { analyze_object_binary_encoding, analyzePacket } from "../source";
10
- // tslint:disable:no-console
11
-
12
- function dump_block_in_debug_mode(buffer: Buffer, id: any, options: any) {
13
- if (process.env.DEBUG) {
14
- console.log(hexDump(buffer));
15
- analyzePacket(buffer, id, 0, 0, options);
16
- }
17
- }
18
-
19
- function isTypedArray(v: any): boolean {
20
- if (v && v.buffer && v.buffer instanceof ArrayBuffer) {
21
- return true;
22
- }
23
- return false;
24
- }
25
-
26
- function isArrayOrTypedArray(v: any): boolean {
27
- return isTypedArray(v) || v instanceof Array;
28
- }
29
-
30
- function compare(objReloaded: any, obj: any) {
31
- function displayError(p: string, expected: any, actual: any) {
32
- console.log(chalk.yellow(" ---------------------------------- error in encode_decode_round_trip_test"));
33
- console.log(chalk.red(" key "), p);
34
- console.log(chalk.red(" expected "), JSON.stringify(expected));
35
- console.log(chalk.cyan(" actual "), JSON.stringify(actual));
36
- }
37
-
38
- Object.keys(objReloaded).forEach((p: any) => {
39
- try {
40
- if (isArrayOrTypedArray(obj[p])) {
41
- assert_arrays_are_equal(objReloaded[p], obj[p]);
42
- } else {
43
- if (objReloaded[p] === undefined || obj[p] === undefined) {
44
- return;
45
- }
46
- (JSON.stringify(objReloaded[p]) as any).should.eql(JSON.stringify(obj[p]));
47
- }
48
- } catch (err) {
49
- displayError(p, obj[p], objReloaded[p]);
50
- console.log(obj.toString());
51
- console.log(objReloaded.toString());
52
- // re throw exception
53
- throw err;
54
- }
55
- });
56
- }
57
-
58
- function redirectToNull(functor: () => void) {
59
- const old = console.log;
60
-
61
- if (!process.env.DEBUG) {
62
- // tslint:disable:no-empty
63
- console.log = (...args: any[]) => {};
64
- }
65
-
66
- try {
67
- functor();
68
- } catch (err) {
69
- throw err;
70
- } finally {
71
- console.log = old;
72
- }
73
- }
74
-
75
- type encode_decode_round_trip_testCallback = (buffer: Buffer, encoding: any, options: any) => void;
76
-
77
- /**
78
- * @method encode_decode_round_trip_test
79
- * @param obj : object to test ( the object must provide a binaryStoreSize,encode,decode method
80
- * @param [options]
81
- * @param callback_buffer
82
- * @return {*}
83
- */
84
- export function encode_decode_round_trip_test(
85
- obj: any,
86
- options?: any,
87
- callback_buffer?: encode_decode_round_trip_testCallback
88
- ): any {
89
- if (!callback_buffer && typeof options === "function") {
90
- callback_buffer = options;
91
- options = {};
92
- }
93
-
94
- callback_buffer = callback_buffer || dump_block_in_debug_mode;
95
-
96
- should.exist(obj);
97
-
98
- const size = obj.binaryStoreSize(options);
99
-
100
- const stream = new BinaryStream(Buffer.alloc(size));
101
-
102
- obj.encode(stream, options);
103
-
104
- callback_buffer(stream.buffer, obj.encodingDefaultBinary, options);
105
-
106
- stream.rewind();
107
-
108
- // reconstruct a object ( some object may not have a default Binary and should be recreated
109
- const expandedNodeId = obj.encodingDefaultBinary;
110
- const objReloaded = expandedNodeId ? constructObject(expandedNodeId) : new obj.constructor();
111
-
112
- objReloaded.decode(stream, options);
113
-
114
- redirectToNull(() => analyze_object_binary_encoding(obj));
115
- compare(objReloaded, obj);
116
- return objReloaded;
117
- }
118
-
119
- export function json_encode_decode_round_trip_test(obj: any, options: any, callbackBuffer?: any) {
120
- if (!callbackBuffer && typeof options === "function") {
121
- callbackBuffer = options;
122
- options = {};
123
- }
124
- callbackBuffer = callbackBuffer || dump_block_in_debug_mode;
125
-
126
- should.exist(obj);
127
-
128
- const json = JSON.stringify(obj);
129
-
130
- const objReloaded = JSON.parse(json);
131
-
132
- compare(objReloaded, obj);
133
-
134
- return objReloaded;
135
- }
1
+ // tslint:disable:no-console
2
+ // @ts-check
3
+ import * as chalk from "chalk";
4
+ import { BinaryStream } from "node-opcua-binary-stream";
5
+ import { hexDump } from "node-opcua-debug";
6
+ import { ExpandedNodeId } from "node-opcua-nodeid";
7
+ import { BaseUAObject, constructObject, ConstructorFuncWithSchema } from "node-opcua-factory";
8
+ import { assert_arrays_are_equal } from "node-opcua-test-helpers";
9
+ import * as should from "should";
10
+
11
+ import { analyze_object_binary_encoding, analyzePacket } from "../source";
12
+
13
+ export interface IExtensionObject extends BaseUAObject {
14
+ binaryStoreSize(): number;
15
+ encode(stream: BinaryStream): void;
16
+ decode(stream: BinaryStream): void;
17
+ encodingDefaultBinary?: ExpandedNodeId;
18
+ constructor: any;
19
+ }
20
+ function dump_block_in_debug_mode(buffer: Buffer, id: any, options: any) {
21
+ if (process.env.DEBUG) {
22
+ console.log(hexDump(buffer));
23
+ analyzePacket(buffer, id, 0, 0, options);
24
+ }
25
+ }
26
+
27
+ function isTypedArray(v: any): boolean {
28
+ if (v && v.buffer && v.buffer instanceof ArrayBuffer) {
29
+ return true;
30
+ }
31
+ return false;
32
+ }
33
+
34
+ function isArrayOrTypedArray(v: any): boolean {
35
+ return isTypedArray(v) || v instanceof Array;
36
+ }
37
+
38
+ function compare(objReloaded: any, obj: any) {
39
+ function displayError(p: string, expected: any, actual: any) {
40
+ console.log(chalk.yellow(" ---------------------------------- error in encode_decode_round_trip_test"));
41
+ console.log(chalk.red(" key "), p);
42
+ console.log(chalk.red(" expected "), JSON.stringify(expected));
43
+ console.log(chalk.cyan(" actual "), JSON.stringify(actual));
44
+ }
45
+
46
+ Object.keys(objReloaded).forEach((p: any) => {
47
+ try {
48
+ if (isArrayOrTypedArray(obj[p])) {
49
+ assert_arrays_are_equal(objReloaded[p], obj[p]);
50
+ } else {
51
+ if (objReloaded[p] === undefined || obj[p] === undefined) {
52
+ return;
53
+ }
54
+ (JSON.stringify(objReloaded[p]) as any).should.eql(JSON.stringify(obj[p]));
55
+ }
56
+ } catch (err) {
57
+ displayError(p, obj[p], objReloaded[p]);
58
+ console.log(obj.toString());
59
+ console.log(objReloaded.toString());
60
+ // re throw exception
61
+ throw err;
62
+ }
63
+ });
64
+ }
65
+
66
+ function redirectToNull(functor: () => void) {
67
+ const old = console.log;
68
+
69
+ if (!process.env.DEBUG) {
70
+ // tslint:disable:no-empty
71
+ console.log = (...args: any[]) => {
72
+ /** */
73
+ };
74
+ }
75
+
76
+ try {
77
+ functor();
78
+ } finally {
79
+ console.log = old;
80
+ }
81
+ }
82
+
83
+ type encode_decode_round_trip_testCallback = (buffer: Buffer, encoding: any, options: any) => void;
84
+
85
+ /**
86
+ * @method encode_decode_round_trip_test
87
+ * @param obj : object to test ( the object must provide a binaryStoreSize,encode,decode method
88
+ * @param [options]
89
+ * @param callback_buffer
90
+ * @return {*}
91
+ */
92
+ export function encode_decode_round_trip_test(
93
+ obj: IExtensionObject,
94
+ options?: unknown | encode_decode_round_trip_testCallback,
95
+ callback_buffer?: encode_decode_round_trip_testCallback
96
+ ): any {
97
+ if (!callback_buffer && typeof options === "function") {
98
+ callback_buffer = options as encode_decode_round_trip_testCallback;
99
+ options = {};
100
+ }
101
+
102
+ callback_buffer = callback_buffer || dump_block_in_debug_mode;
103
+
104
+ should.exist(obj);
105
+
106
+ const size = obj.binaryStoreSize();
107
+
108
+ const stream = new BinaryStream(Buffer.alloc(size));
109
+
110
+ obj.encode(stream);
111
+
112
+ callback_buffer(stream.buffer, obj.encodingDefaultBinary, options);
113
+
114
+ stream.rewind();
115
+
116
+ // reconstruct a object ( some object may not have a default Binary and should be recreated
117
+ const expandedNodeId = obj.encodingDefaultBinary;
118
+ const objReloaded = expandedNodeId ? constructObject(expandedNodeId) : new obj.constructor();
119
+
120
+ objReloaded.decode(stream);
121
+
122
+ redirectToNull(() => analyze_object_binary_encoding(obj));
123
+ compare(objReloaded, obj);
124
+ return objReloaded;
125
+ }
126
+
127
+ export function json_encode_decode_round_trip_test(obj: unknown, options: unknown, callbackBuffer?: unknown): void {
128
+ if (!callbackBuffer && typeof options === "function") {
129
+ callbackBuffer = options;
130
+ options = {};
131
+ }
132
+ callbackBuffer = callbackBuffer || dump_block_in_debug_mode;
133
+
134
+ should.exist(obj);
135
+
136
+ const json = JSON.stringify(obj);
137
+
138
+ const objReloaded = JSON.parse(json);
139
+
140
+ compare(objReloaded, obj);
141
+
142
+ return objReloaded;
143
+ }
@@ -1,2 +1,2 @@
1
- export * from "./compare_obj_by_encoding";
2
- export * from "./encode_decode_round_trip_test";
1
+ export * from "./compare_obj_by_encoding";
2
+ export * from "./encode_decode_round_trip_test";