node-opcua-variant 2.55.0 → 2.60.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/.mocharc.js CHANGED
@@ -1,11 +1,11 @@
1
- module.exports = {
2
- require: [
3
- "../../node_modules/source-map-support/register",
4
- "../../node_modules/ts-node/register/transpile-only",
5
- "../../node_modules/should",
6
- ],
7
- timeout: 20000,
8
- extension: ["js", "ts"],
9
- spec: ["test/*.ts", "test/*.js"],
10
- bail: true
11
- };
1
+ module.exports = {
2
+ require: [
3
+ "../../node_modules/source-map-support/register",
4
+ "../../node_modules/ts-node/register/transpile-only",
5
+ "../../node_modules/should",
6
+ ],
7
+ timeout: 20000,
8
+ extension: ["js", "ts"],
9
+ spec: ["test/*.ts", "test/*.js"],
10
+ bail: true
11
+ };
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":"DataType_enum.js","sourceRoot":"","sources":["../source/DataType_enum.ts"],"names":[],"mappings":";;;AAIA,2DAAyD;AAEzD,IAAY,QA2BX;AA3BD,WAAY,QAAQ;IAChB,uCAAoB,CAAA;IACpB,6CAAoB,CAAA;IACpB,yCAAoB,CAAA;IACpB,uCAAoB,CAAA;IACpB,yCAAoB,CAAA;IACpB,2CAAoB,CAAA;IACpB,yCAAoB,CAAA;IACpB,2CAAoB,CAAA;IACpB,yCAAoB,CAAA;IACpB,2CAAoB,CAAA;IACpB,0CAAoB,CAAA;IACpB,4CAAoB,CAAA;IACpB,4CAAoB,CAAA;IACpB,gDAAoB,CAAA;IACpB,wCAAoB,CAAA;IACpB,oDAAoB,CAAA;IACpB,oDAAoB,CAAA;IACpB,4CAAoB,CAAA;IACpB,4DAAoB,CAAA;IACpB,oDAAoB,CAAA;IACpB,0DAAoB,CAAA;IACpB,0DAAoB,CAAA;IACpB,8DAAoB,CAAA;IACpB,kDAAoB,CAAA;IACpB,8CAAoB,CAAA;IACpB,4DAAoB,CAAA;AACxB,CAAC,EA3BW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QA2BnB;AACD,MAAM,cAAc,GAAG;IACnB,IAAI,EAAE,UAAU;IAEhB,UAAU,EAAE,QAAQ;CACvB,CAAC;AACW,QAAA,oBAAoB,GAAS,IAAA,wCAAmB,EAAC,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"DataType_enum.js","sourceRoot":"","sources":["../source/DataType_enum.ts"],"names":[],"mappings":";;;AAIA,2DAAyD;AAEzD,IAAY,QA2BX;AA3BD,WAAY,QAAQ;IAChB,uCAAQ,CAAA;IACR,6CAAW,CAAA;IACX,yCAAS,CAAA;IACT,uCAAQ,CAAA;IACR,yCAAS,CAAA;IACT,2CAAU,CAAA;IACV,yCAAS,CAAA;IACT,2CAAU,CAAA;IACV,yCAAS,CAAA;IACT,2CAAU,CAAA;IACV,0CAAU,CAAA;IACV,4CAAW,CAAA;IACX,4CAAW,CAAA;IACX,gDAAa,CAAA;IACb,wCAAS,CAAA;IACT,oDAAe,CAAA;IACf,oDAAe,CAAA;IACf,4CAAW,CAAA;IACX,4DAAmB,CAAA;IACnB,oDAAe,CAAA;IACf,0DAAkB,CAAA;IAClB,0DAAkB,CAAA;IAClB,8DAAoB,CAAA;IACpB,kDAAc,CAAA;IACd,8CAAY,CAAA;IACZ,4DAAmB,CAAA;AACvB,CAAC,EA3BW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QA2BnB;AACD,MAAM,cAAc,GAAG;IACnB,IAAI,EAAE,UAAU;IAEhB,UAAU,EAAE,QAAQ;CACvB,CAAC;AACW,QAAA,oBAAoB,GAAS,IAAA,wCAAmB,EAAC,cAAc,CAAC,CAAC"}
@@ -10,7 +10,7 @@ var VariantArrayType;
10
10
  })(VariantArrayType = exports.VariantArrayType || (exports.VariantArrayType = {}));
11
11
  const schemaVariantArrayType = {
12
12
  enumValues: VariantArrayType,
13
- name: "VariantArrayType",
13
+ name: "VariantArrayType"
14
14
  };
15
15
  /***
16
16
  * @private
@@ -1 +1 @@
1
- {"version":3,"file":"VariantArrayType_enum.js","sourceRoot":"","sources":["../source/VariantArrayType_enum.ts"],"names":[],"mappings":";;;AAIA,2DAAyD;AAEzD,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IACxB,2DAAY,CAAA;IACZ,yDAAY,CAAA;IACZ,2DAAa,CAAA;AACjB,CAAC,EAJW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAI3B;AAED,MAAM,sBAAsB,GAAG;IAC3B,UAAU,EAAE,gBAAgB;IAC5B,IAAI,EAAE,kBAAkB;CAC3B,CAAC;AAEF;;GAEG;AACU,QAAA,4BAA4B,GAAS,IAAA,wCAAmB,EAAC,sBAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"VariantArrayType_enum.js","sourceRoot":"","sources":["../source/VariantArrayType_enum.ts"],"names":[],"mappings":";;;AAIA,2DAAyD;AAEzD,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IACxB,2DAAa,CAAA;IACb,yDAAY,CAAA;IACZ,2DAAa,CAAA;AACjB,CAAC,EAJW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAI3B;AAED,MAAM,sBAAsB,GAAG;IAC3B,UAAU,EAAE,gBAAgB;IAC5B,IAAI,EAAE,kBAAkB;CAC3B,CAAC;AAEF;;GAEG;AACU,QAAA,4BAA4B,GAAS,IAAA,wCAAmB,EAAC,sBAAsB,CAAC,CAAC"}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.adjustVariant = void 0;
4
+ const node_opcua_assert_1 = require("node-opcua-assert");
4
5
  const DataType_enum_1 = require("./DataType_enum");
5
6
  const VariantArrayType_enum_1 = require("./VariantArrayType_enum");
6
- const node_opcua_assert_1 = require("node-opcua-assert");
7
7
  function adjustVariant(variant, valueRank, targetDataType) {
8
8
  if (targetDataType === DataType_enum_1.DataType.Byte && valueRank === 1 /* Array */) {
9
9
  if (variant.arrayType === VariantArrayType_enum_1.VariantArrayType.Scalar && variant.dataType === DataType_enum_1.DataType.ByteString) {
@@ -1 +1 @@
1
- {"version":3,"file":"adjust_variant.js","sourceRoot":"","sources":["../source/adjust_variant.ts"],"names":[],"mappings":";;;AACA,mDAA2C;AAC3C,mEAA2D;AAC3D,yDAAuC;AAEvC,SAAgB,aAAa,CAAC,OAAgB,EAAE,SAAiB,EAAE,cAAwB;IACvF,IAAI,cAAc,KAAK,wBAAQ,CAAC,IAAI,IAAI,SAAS,KAAK,CAAC,CAAC,WAAW,EAAE;QACjE,IAAI,OAAO,CAAC,SAAS,KAAK,wCAAgB,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,wBAAQ,CAAC,UAAU,EAAE;YAC3F,OAAO;YACP,OAAO,CAAC,SAAS,GAAG,wCAAgB,CAAC,KAAK,CAAC;YAC3C,OAAO,CAAC,QAAQ,GAAG,wBAAQ,CAAC,IAAI,CAAC;YACjC,IAAA,2BAAM,EAAC,OAAO,CAAC,QAAQ,KAAK,wBAAQ,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAA,2BAAM,EAAC,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,YAAY,MAAM,CAAC,CAAC;SAC7D;KACJ;IACD,IAAI,cAAc,KAAK,wBAAQ,CAAC,UAAU,IAAI,SAAS,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE;QACxE,IAAI,OAAO,CAAC,SAAS,KAAK,wCAAgB,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,KAAK,wBAAQ,CAAC,IAAI,EAAE;YACpF,OAAO;YACP,OAAO,CAAC,SAAS,GAAG,wCAAgB,CAAC,MAAM,CAAC;YAC5C,OAAO,CAAC,QAAQ,GAAG,wBAAQ,CAAC,UAAU,CAAC;YACvC,IAAA,2BAAM,EAAC,OAAO,CAAC,QAAQ,KAAK,wBAAQ,CAAC,UAAU,CAAC,CAAC;YACjD,IAAA,2BAAM,EAAC,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,YAAY,MAAM,CAAC,CAAC;SAC7D;KACJ;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AApBD,sCAoBC"}
1
+ {"version":3,"file":"adjust_variant.js","sourceRoot":"","sources":["../source/adjust_variant.ts"],"names":[],"mappings":";;;AAAA,yDAAuC;AAEvC,mDAA2C;AAC3C,mEAA2D;AAE3D,SAAgB,aAAa,CAAC,OAAgB,EAAE,SAAiB,EAAE,cAAwB;IACvF,IAAI,cAAc,KAAK,wBAAQ,CAAC,IAAI,IAAI,SAAS,KAAK,CAAC,CAAC,WAAW,EAAE;QACjE,IAAI,OAAO,CAAC,SAAS,KAAK,wCAAgB,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,wBAAQ,CAAC,UAAU,EAAE;YAC3F,OAAO;YACP,OAAO,CAAC,SAAS,GAAG,wCAAgB,CAAC,KAAK,CAAC;YAC3C,OAAO,CAAC,QAAQ,GAAG,wBAAQ,CAAC,IAAI,CAAC;YACjC,IAAA,2BAAM,EAAC,OAAO,CAAC,QAAQ,KAAK,wBAAQ,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAA,2BAAM,EAAC,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,YAAY,MAAM,CAAC,CAAC;SAC7D;KACJ;IACD,IAAI,cAAc,KAAK,wBAAQ,CAAC,UAAU,IAAI,SAAS,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE;QACxE,IAAI,OAAO,CAAC,SAAS,KAAK,wCAAgB,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,KAAK,wBAAQ,CAAC,IAAI,EAAE;YACpF,OAAO;YACP,OAAO,CAAC,SAAS,GAAG,wCAAgB,CAAC,MAAM,CAAC;YAC5C,OAAO,CAAC,QAAQ,GAAG,wBAAQ,CAAC,UAAU,CAAC;YACvC,IAAA,2BAAM,EAAC,OAAO,CAAC,QAAQ,KAAK,wBAAQ,CAAC,UAAU,CAAC,CAAC;YACjD,IAAA,2BAAM,EAAC,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,YAAY,MAAM,CAAC,CAAC;SAC7D;KACJ;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AApBD,sCAoBC"}
package/dist/index.d.ts CHANGED
@@ -6,3 +6,4 @@ export * from "./VariantArrayType_enum";
6
6
  export * from "./variant";
7
7
  export * from "./adjust_variant";
8
8
  export * from "./cast_variant";
9
+ export * from "./verify_rank_and_dimension";
package/dist/index.js CHANGED
@@ -18,4 +18,5 @@ __exportStar(require("./VariantArrayType_enum"), exports);
18
18
  __exportStar(require("./variant"), exports);
19
19
  __exportStar(require("./adjust_variant"), exports);
20
20
  __exportStar(require("./cast_variant"), exports);
21
+ __exportStar(require("./verify_rank_and_dimension"), exports);
21
22
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;GAEG;AACH,kDAAgC;AAChC,0DAAwC;AACxC,4CAA0B;AAC1B,mDAAiC;AACjC,iDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;GAEG;AACH,kDAAgC;AAChC,0DAAwC;AACxC,4CAA0B;AAC1B,mDAAiC;AACjC,iDAA+B;AAC/B,8DAA4C"}
package/dist/variant.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import { BaseUAObject, StructuredTypeSchema } from "node-opcua-factory";
2
+ import { BaseUAObject, StructuredTypeSchema, DecodeDebugOptions } from "node-opcua-factory";
3
3
  import { BinaryStream, OutputBinaryStream } from "node-opcua-binary-stream";
4
4
  import { DataType } from "./DataType_enum";
5
5
  import { VariantArrayType } from "./VariantArrayType_enum";
@@ -27,7 +27,7 @@ export declare class Variant extends BaseUAObject {
27
27
  constructor(options?: VariantOptions | null);
28
28
  encode(stream: OutputBinaryStream): void;
29
29
  decode(stream: BinaryStream): void;
30
- decodeDebug(stream: BinaryStream, options: any): void;
30
+ decodeDebug(stream: BinaryStream, options: DecodeDebugOptions): void;
31
31
  toString(): string;
32
32
  isValid(): boolean;
33
33
  clone(): Variant;
@@ -57,9 +57,9 @@ export declare function decodeVariant(stream: BinaryStream, value?: Variant): Va
57
57
  * @private
58
58
  */
59
59
  export declare type BufferedArray2 = Float32Array | Float64Array | Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array;
60
- export declare function coerceVariantType(dataType: DataType, value: any): any;
61
- export declare function isValidVariant(arrayType: VariantArrayType, dataType: DataType, value: any, dimensions?: number[] | null): boolean;
62
- export declare function buildVariantArray(dataType: DataType, nbElements: number, defaultValue: any): any[] | Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array;
60
+ export declare function coerceVariantType(dataType: DataType, value: undefined | any): any;
61
+ export declare function isValidVariant(arrayType: VariantArrayType, dataType: DataType, value: unknown, dimensions?: number[] | null): boolean;
62
+ export declare function buildVariantArray(dataType: DataType, nbElements: number, defaultValue: unknown): Float32Array | Float64Array | Uint32Array | Int32Array | Uint16Array | Int16Array | Uint8Array | Int8Array | Array<unknown>;
63
63
  /***
64
64
  * returns true if the two variant represent the same value
65
65
  * @param v1 the first variant to compare
package/dist/variant.js CHANGED
@@ -64,6 +64,9 @@ class Variant extends node_opcua_factory_1.BaseUAObject {
64
64
  this.arrayType = options2.arrayType;
65
65
  this.value = (0, node_opcua_factory_1.initialize_field)(schema.fields[2], options2.value);
66
66
  this.dimensions = options2.dimensions || null;
67
+ if (this.dataType === undefined) {
68
+ throw new Error("dataType is not specified");
69
+ }
67
70
  if (this.dataType === DataType_enum_1.DataType.ExtensionObject) {
68
71
  if (this.arrayType === VariantArrayType_enum_1.VariantArrayType.Scalar) {
69
72
  /* istanbul ignore next */
@@ -171,28 +174,35 @@ const nullVariant = new Variant({ dataType: DataType_enum_1.DataType.Null });
171
174
  * @private
172
175
  */
173
176
  function encodeVariant(variant, stream) {
174
- if (!variant) {
175
- variant = nullVariant;
176
- }
177
- let encodingByte = variant.dataType;
178
- if (variant.arrayType === VariantArrayType_enum_1.VariantArrayType.Array || variant.arrayType === VariantArrayType_enum_1.VariantArrayType.Matrix) {
179
- encodingByte |= exports.VARIANT_ARRAY_MASK;
180
- }
181
- if (variant.dimensions) {
182
- (0, node_opcua_assert_1.assert)(variant.arrayType === VariantArrayType_enum_1.VariantArrayType.Matrix);
183
- (0, node_opcua_assert_1.assert)(variant.dimensions.length >= 0);
184
- encodingByte |= exports.VARIANT_ARRAY_DIMENSIONS_MASK;
185
- }
186
- (0, node_opcua_basic_types_1.encodeUInt8)(encodingByte, stream);
187
- if (variant.arrayType === VariantArrayType_enum_1.VariantArrayType.Array || variant.arrayType === VariantArrayType_enum_1.VariantArrayType.Matrix) {
188
- encodeVariantArray(variant.dataType, stream, variant.value);
189
- }
190
- else {
191
- const encode = get_encoder(variant.dataType);
192
- encode(variant.value, stream);
177
+ try {
178
+ if (!variant) {
179
+ variant = nullVariant;
180
+ }
181
+ let encodingByte = variant.dataType;
182
+ if (variant.arrayType === VariantArrayType_enum_1.VariantArrayType.Array || variant.arrayType === VariantArrayType_enum_1.VariantArrayType.Matrix) {
183
+ encodingByte |= exports.VARIANT_ARRAY_MASK;
184
+ }
185
+ if (variant.dimensions) {
186
+ (0, node_opcua_assert_1.assert)(variant.arrayType === VariantArrayType_enum_1.VariantArrayType.Matrix);
187
+ (0, node_opcua_assert_1.assert)(variant.dimensions.length >= 0);
188
+ encodingByte |= exports.VARIANT_ARRAY_DIMENSIONS_MASK;
189
+ }
190
+ (0, node_opcua_basic_types_1.encodeUInt8)(encodingByte, stream);
191
+ if (variant.arrayType === VariantArrayType_enum_1.VariantArrayType.Array || variant.arrayType === VariantArrayType_enum_1.VariantArrayType.Matrix) {
192
+ encodeVariantArray(variant.dataType, stream, variant.value);
193
+ }
194
+ else {
195
+ const encode = get_encoder(variant.dataType || DataType_enum_1.DataType.Null);
196
+ encode(variant.value, stream);
197
+ }
198
+ if ((encodingByte & exports.VARIANT_ARRAY_DIMENSIONS_MASK) === exports.VARIANT_ARRAY_DIMENSIONS_MASK && variant.dimensions) {
199
+ encodeDimension(variant.dimensions, stream);
200
+ }
193
201
  }
194
- if ((encodingByte & exports.VARIANT_ARRAY_DIMENSIONS_MASK) === exports.VARIANT_ARRAY_DIMENSIONS_MASK && variant.dimensions) {
195
- encodeDimension(variant.dimensions, stream);
202
+ catch (err) {
203
+ console.log("Error encoding variant", err);
204
+ console.log(variant === null || variant === void 0 ? void 0 : variant.toString());
205
+ throw err;
196
206
  }
197
207
  }
198
208
  exports.encodeVariant = encodeVariant;
@@ -394,6 +404,9 @@ function calculate_product(array) {
394
404
  }
395
405
  function get_encoder(dataType) {
396
406
  const dataTypeAsString = typeof dataType === "string" ? dataType : DataType_enum_1.DataType[dataType];
407
+ if (!dataTypeAsString) {
408
+ throw new Error("invalid dataType " + dataType);
409
+ }
397
410
  const encode = (0, node_opcua_factory_1.findBuiltInType)(dataTypeAsString).encode;
398
411
  /* istanbul ignore next */
399
412
  if (!encode) {
@@ -570,7 +583,9 @@ function encodeDimension(dimensions, stream) {
570
583
  return encodeGeneralArray(DataType_enum_1.DataType.UInt32, stream, dimensions);
571
584
  }
572
585
  function isEnumerationItem(value) {
573
- return value instanceof Object && value.hasOwnProperty("value") && value.hasOwnProperty("key");
586
+ return (value instanceof Object &&
587
+ Object.prototype.hasOwnProperty.call(value, "value") &&
588
+ Object.prototype.hasOwnProperty.call(value, "key"));
574
589
  }
575
590
  function coerceVariantType(dataType, value) {
576
591
  /* eslint max-statements: ["error",1000], complexity: ["error",1000]*/
@@ -800,7 +815,7 @@ function __check_same_object(o1, o2) {
800
815
  switch (t1) {
801
816
  case "[object Array]":
802
817
  return __check_same_array(o1, o2);
803
- case "[object Object]":
818
+ case "[object Object]": {
804
819
  if (((_a = o1.constructor) === null || _a === void 0 ? void 0 : _a.name) !== ((_b = o2.constructor) === null || _b === void 0 ? void 0 : _b.name)) {
805
820
  return false;
806
821
  }
@@ -816,6 +831,7 @@ function __check_same_object(o1, o2) {
816
831
  }
817
832
  }
818
833
  return true;
834
+ }
819
835
  case "[object Float32Array]":
820
836
  case "[object Float64Array]":
821
837
  case "[object Int32Array]":
@@ -823,10 +839,11 @@ function __check_same_object(o1, o2) {
823
839
  case "[object Int8Array]":
824
840
  case "[object Uint32Array]":
825
841
  case "[object Uint16Array]":
826
- case "[object Uint8Array]":
842
+ case "[object Uint8Array]": {
827
843
  const b1 = Buffer.from(o1.buffer, o1.byteOffset, o1.byteLength);
828
844
  const b2 = Buffer.from(o2.buffer, o2.byteOffset, o2.byteLength);
829
845
  return b1.equals(b2);
846
+ }
830
847
  default:
831
848
  return o1 === o2;
832
849
  }
@@ -1 +1 @@
1
- {"version":3,"file":"variant.js","sourceRoot":"","sources":["../source/variant.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"variant.js","sourceRoot":"","sources":["../source/variant.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * ValueRank indicates whether the Value Attribute of the Variable can be an Array and how many dimensions
3
+ * * n > 1 : the Value is an array with the specified number of dimensions.
4
+ * * OneDimension (1): The value is an array with one dimension.
5
+ * * OneOrMoreDimensions (0): The value is an array with one or more dimensions.
6
+ * * Scalar (-1): The value is not an array.
7
+ * * Any (-2): The value can be a scalar or an array with any number of dimensions.
8
+ * * ScalarOrOneDimension (-3): The value can be a scalar or a one dimensional array.
9
+ */
10
+ export declare function verifyRankAndDimensions(options: {
11
+ valueRank?: number;
12
+ arrayDimensions?: number[] | null;
13
+ }): void;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.verifyRankAndDimensions = void 0;
4
+ const node_opcua_assert_1 = require("node-opcua-assert");
5
+ /**
6
+ * ValueRank indicates whether the Value Attribute of the Variable can be an Array and how many dimensions
7
+ * * n > 1 : the Value is an array with the specified number of dimensions.
8
+ * * OneDimension (1): The value is an array with one dimension.
9
+ * * OneOrMoreDimensions (0): The value is an array with one or more dimensions.
10
+ * * Scalar (-1): The value is not an array.
11
+ * * Any (-2): The value can be a scalar or an array with any number of dimensions.
12
+ * * ScalarOrOneDimension (-3): The value can be a scalar or a one dimensional array.
13
+ */
14
+ function verifyRankAndDimensions(options) {
15
+ options.arrayDimensions = options.arrayDimensions || null;
16
+ (0, node_opcua_assert_1.default)(options.arrayDimensions === null || Array.isArray(options.arrayDimensions));
17
+ // evaluate valueRank arrayDimensions is specified but valueRank is null
18
+ if (options.arrayDimensions && options.valueRank === undefined) {
19
+ options.valueRank = options.arrayDimensions.length || -1;
20
+ }
21
+ options.valueRank = options.valueRank === undefined ? -1 : options.valueRank || 0; // UInt32
22
+ (0, node_opcua_assert_1.default)(typeof options.valueRank === "number");
23
+ if (options.arrayDimensions && options.valueRank <= 0) {
24
+ if (options.arrayDimensions.length > 0) {
25
+ throw new Error("[CONFORMANCE] arrayDimensions must be null if valueRank <=0");
26
+ }
27
+ options.arrayDimensions = null;
28
+ }
29
+ // specify default arrayDimension if not provided
30
+ if (options.valueRank > 0 && (!options.arrayDimensions || options.arrayDimensions.length === 0)) {
31
+ options.arrayDimensions = new Array(options.valueRank).fill(0);
32
+ }
33
+ if (!options.arrayDimensions && options.valueRank > 0) {
34
+ throw new Error("[CONFORMANCE] arrayDimension must be specified if valueRank >0 " + options.valueRank);
35
+ }
36
+ if (options.valueRank > 0 && options.arrayDimensions.length !== options.valueRank) {
37
+ throw new Error("[CONFORMANCE] when valueRank> 0, arrayDimensions must have valueRank elements, this.valueRank =" +
38
+ options.valueRank +
39
+ " whereas arrayDimensions.length =" +
40
+ options.arrayDimensions.length);
41
+ }
42
+ }
43
+ exports.verifyRankAndDimensions = verifyRankAndDimensions;
44
+ //# sourceMappingURL=verify_rank_and_dimension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify_rank_and_dimension.js","sourceRoot":"","sources":["../source/verify_rank_and_dimension.ts"],"names":[],"mappings":";;;AAAA,yDAAuC;AAEvC;;;;;;;;GAQG;AAEH,SAAgB,uBAAuB,CAAC,OAAkE;IACtG,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC;IAC1D,IAAA,2BAAM,EAAC,OAAO,CAAC,eAAe,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;IAEnF,wEAAwE;IACxE,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE;QAC5D,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;KAC5D;IACD,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,SAAS;IAC5F,IAAA,2BAAM,EAAC,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC;IAE9C,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,EAAE;QACnD,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;YACpC,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;SAClF;QACD,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;KAClC;IACD,iDAAiD;IACjD,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;QAC7F,OAAO,CAAC,eAAe,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAClE;IACD,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE;QACnD,MAAM,IAAI,KAAK,CAAC,kEAAkE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;KAC3G;IACD,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,IAAI,OAAO,CAAC,eAAgB,CAAC,MAAM,KAAK,OAAO,CAAC,SAAS,EAAE;QAChF,MAAM,IAAI,KAAK,CACX,iGAAiG;YAC7F,OAAO,CAAC,SAAS;YACjB,oCAAoC;YACpC,OAAO,CAAC,eAAgB,CAAC,MAAM,CACtC,CAAC;KACL;AACL,CAAC;AAhCD,0DAgCC"}
package/nyc.config.js CHANGED
@@ -1,16 +1,16 @@
1
- module.exports = {
2
- "extension": [
3
- ".ts",
4
- ".tsx"
5
- ],
6
- "all": true,
7
- "include": [
8
- "dist/**/*.js",
9
- "source/**/*.ts",
10
-
11
- ],
12
- "exclude": [
13
- "**/*.spec.js"
14
- ],
15
- "check-coverage": true
16
- };
1
+ module.exports = {
2
+ "extension": [
3
+ ".ts",
4
+ ".tsx"
5
+ ],
6
+ "all": true,
7
+ "include": [
8
+ "dist/**/*.js",
9
+ "source/**/*.ts",
10
+
11
+ ],
12
+ "exclude": [
13
+ "**/*.spec.js"
14
+ ],
15
+ "check-coverage": true
16
+ };
package/package.json CHANGED
@@ -1,36 +1,38 @@
1
1
  {
2
2
  "name": "node-opcua-variant",
3
- "version": "2.55.0",
3
+ "version": "2.60.0",
4
4
  "description": "pure nodejs OPCUA SDK - module -variant",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "scripts": {
8
8
  "build": "tsc -b",
9
9
  "test": "mocha",
10
+ "lint": "eslint source test",
11
+ "format": "prettier --write source test",
10
12
  "clean": "node -e \"require('rimraf').sync('dist');\""
11
13
  },
12
14
  "dependencies": {
13
15
  "node-opcua-assert": "2.55.0",
14
- "node-opcua-basic-types": "2.55.0",
15
- "node-opcua-data-model": "2.55.0",
16
+ "node-opcua-basic-types": "2.60.0",
17
+ "node-opcua-data-model": "2.60.0",
16
18
  "node-opcua-enum": "2.55.0",
17
- "node-opcua-extension-object": "2.55.0",
18
- "node-opcua-factory": "2.55.0",
19
- "node-opcua-nodeid": "2.55.0",
20
- "node-opcua-utils": "2.55.0"
19
+ "node-opcua-extension-object": "2.60.0",
20
+ "node-opcua-factory": "2.60.0",
21
+ "node-opcua-nodeid": "2.60.0",
22
+ "node-opcua-utils": "2.60.0"
21
23
  },
22
24
  "devDependencies": {
23
- "@types/lodash": "4.14.174",
25
+ "@types/lodash": "4.14.177",
24
26
  "@types/underscore": "^1.11.3",
25
27
  "lodash": "4.17.21",
26
28
  "node-opcua-benchmarker": "2.55.0",
27
29
  "node-opcua-binary-stream": "2.55.0",
28
- "node-opcua-debug": "2.55.0",
29
- "node-opcua-numeric-range": "2.55.0",
30
- "node-opcua-packet-analyzer": "2.55.0",
31
- "node-opcua-status-code": "2.55.0",
30
+ "node-opcua-debug": "2.60.0",
31
+ "node-opcua-numeric-range": "2.60.0",
32
+ "node-opcua-packet-analyzer": "2.60.0",
33
+ "node-opcua-status-code": "2.56.0",
32
34
  "should": "^13.2.3",
33
- "source-map-support": "^0.5.20",
35
+ "source-map-support": "^0.5.21",
34
36
  "underscore": "^1.13.1"
35
37
  },
36
38
  "author": "Etienne Rossignon",
@@ -48,5 +50,5 @@
48
50
  "internet of things"
49
51
  ],
50
52
  "homepage": "http://node-opcua.github.io/",
51
- "gitHead": "28fdbfe1c5306fd0e69758ccacfa2c6d1722115c"
53
+ "gitHead": "56dc8584b9118ee2f3bfb0b2e9d456b609ccbac8"
52
54
  }
@@ -1,40 +1,40 @@
1
- /**
2
- * @module node-opcua-variant
3
- */
4
- import { Enum } from "node-opcua-enum";
5
- import { registerEnumeration } from "node-opcua-factory";
6
-
7
- export enum DataType {
8
- Null= 0,
9
- Boolean= 1,
10
- SByte= 2, // signed Byte = Int8
11
- Byte = 3, // unsigned Byte = UInt8
12
- Int16= 4,
13
- UInt16= 5,
14
- Int32= 6,
15
- UInt32= 7,
16
- Int64= 8,
17
- UInt64= 9,
18
- Float= 10,
19
- Double= 11,
20
- String= 12,
21
- DateTime= 13,
22
- Guid= 14,
23
- ByteString= 15,
24
- XmlElement= 16,
25
- NodeId= 17,
26
- ExpandedNodeId= 18,
27
- StatusCode= 19,
28
- QualifiedName= 20,
29
- LocalizedText= 21,
30
- ExtensionObject= 22,
31
- DataValue= 23,
32
- Variant= 24,
33
- DiagnosticInfo= 25
34
- }
35
- const schemaDataType = {
36
- name: "DataType",
37
-
38
- enumValues: DataType
39
- };
40
- export const _enumerationDataType: Enum = registerEnumeration(schemaDataType);
1
+ /**
2
+ * @module node-opcua-variant
3
+ */
4
+ import { Enum } from "node-opcua-enum";
5
+ import { registerEnumeration } from "node-opcua-factory";
6
+
7
+ export enum DataType {
8
+ Null = 0,
9
+ Boolean = 1,
10
+ SByte = 2, // signed Byte = Int8
11
+ Byte = 3, // unsigned Byte = UInt8
12
+ Int16 = 4,
13
+ UInt16 = 5,
14
+ Int32 = 6,
15
+ UInt32 = 7,
16
+ Int64 = 8,
17
+ UInt64 = 9,
18
+ Float = 10,
19
+ Double = 11,
20
+ String = 12,
21
+ DateTime = 13,
22
+ Guid = 14,
23
+ ByteString = 15,
24
+ XmlElement = 16,
25
+ NodeId = 17,
26
+ ExpandedNodeId = 18,
27
+ StatusCode = 19,
28
+ QualifiedName = 20,
29
+ LocalizedText = 21,
30
+ ExtensionObject = 22,
31
+ DataValue = 23,
32
+ Variant = 24,
33
+ DiagnosticInfo = 25
34
+ }
35
+ const schemaDataType = {
36
+ name: "DataType",
37
+
38
+ enumValues: DataType
39
+ };
40
+ export const _enumerationDataType: Enum = registerEnumeration(schemaDataType);
@@ -1,21 +1,21 @@
1
- /**
2
- * @module node-opcua-variant
3
- */
4
- import { Enum } from "node-opcua-enum";
5
- import { registerEnumeration } from "node-opcua-factory";
6
-
7
- export enum VariantArrayType {
8
- Scalar= 0x00,
9
- Array= 0x01,
10
- Matrix= 0x02
11
- }
12
-
13
- const schemaVariantArrayType = {
14
- enumValues: VariantArrayType,
15
- name: "VariantArrayType",
16
- };
17
-
18
- /***
19
- * @private
20
- */
21
- export const _enumerationVariantArrayType: Enum = registerEnumeration(schemaVariantArrayType);
1
+ /**
2
+ * @module node-opcua-variant
3
+ */
4
+ import { Enum } from "node-opcua-enum";
5
+ import { registerEnumeration } from "node-opcua-factory";
6
+
7
+ export enum VariantArrayType {
8
+ Scalar = 0x00,
9
+ Array = 0x01,
10
+ Matrix = 0x02
11
+ }
12
+
13
+ const schemaVariantArrayType = {
14
+ enumValues: VariantArrayType,
15
+ name: "VariantArrayType"
16
+ };
17
+
18
+ /***
19
+ * @private
20
+ */
21
+ export const _enumerationVariantArrayType: Enum = registerEnumeration(schemaVariantArrayType);
@@ -1,26 +1,26 @@
1
- import { Variant } from "./variant";
2
- import { DataType } from "./DataType_enum";
3
- import { VariantArrayType } from "./VariantArrayType_enum";
4
- import assert from "node-opcua-assert";
5
-
6
- export function adjustVariant(variant: Variant, valueRank: number, targetDataType: DataType): Variant {
7
- if (targetDataType === DataType.Byte && valueRank === 1 /* Array */) {
8
- if (variant.arrayType === VariantArrayType.Scalar && variant.dataType === DataType.ByteString) {
9
- // Byte
10
- variant.arrayType = VariantArrayType.Array;
11
- variant.dataType = DataType.Byte;
12
- assert(variant.dataType === DataType.Byte);
13
- assert(!variant.value || variant.value instanceof Buffer);
14
- }
15
- }
16
- if (targetDataType === DataType.ByteString && valueRank === -1 /* Scalar*/) {
17
- if (variant.arrayType === VariantArrayType.Array && variant.dataType === DataType.Byte) {
18
- // Byte
19
- variant.arrayType = VariantArrayType.Scalar;
20
- variant.dataType = DataType.ByteString;
21
- assert(variant.dataType === DataType.ByteString);
22
- assert(!variant.value || variant.value instanceof Buffer);
23
- }
24
- }
25
- return variant;
26
- }
1
+ import assert from "node-opcua-assert";
2
+ import { Variant } from "./variant";
3
+ import { DataType } from "./DataType_enum";
4
+ import { VariantArrayType } from "./VariantArrayType_enum";
5
+
6
+ export function adjustVariant(variant: Variant, valueRank: number, targetDataType: DataType): Variant {
7
+ if (targetDataType === DataType.Byte && valueRank === 1 /* Array */) {
8
+ if (variant.arrayType === VariantArrayType.Scalar && variant.dataType === DataType.ByteString) {
9
+ // Byte
10
+ variant.arrayType = VariantArrayType.Array;
11
+ variant.dataType = DataType.Byte;
12
+ assert(variant.dataType === DataType.Byte);
13
+ assert(!variant.value || variant.value instanceof Buffer);
14
+ }
15
+ }
16
+ if (targetDataType === DataType.ByteString && valueRank === -1 /* Scalar*/) {
17
+ if (variant.arrayType === VariantArrayType.Array && variant.dataType === DataType.Byte) {
18
+ // Byte
19
+ variant.arrayType = VariantArrayType.Scalar;
20
+ variant.dataType = DataType.ByteString;
21
+ assert(variant.dataType === DataType.ByteString);
22
+ assert(!variant.value || variant.value instanceof Buffer);
23
+ }
24
+ }
25
+ return variant;
26
+ }
@@ -1,61 +1,61 @@
1
- import { Variant } from "./variant";
2
- import { DataType } from "./DataType_enum";
3
-
4
- // TODO
5
- /**
6
- * cast the variant value to match the type required by the variable
7
- * - the method will throw if no conversion is possible
8
- * - the original variant will not be modified if it already has the required type
9
- * - the variant will be modified accordingly to match the required type
10
- *
11
- * | .... | Byte | UInt16 | UInt32 | UInt64 | Boolean | SByte | Int16 | Int32 | Int64 | Float | Double | String | anything else |
12
- * | ------- | ---- | ------ | ------ | ------ | ------- | ----- | ----- | ------ | ----- | ----- | ------ | ------ | ------------- |
13
- * | Byte | - | OK | OK | OK | F=0;T<>0| <128 | OK | OK | OK | OK | OK | | |
14
- * | UInt16 |<=255 | - | OK | OK | F=0;T<>0| <128 |<2^15-1| OK | OK | OK | OK | | |
15
- * | UInt32 |<=255 |<2^16 | - | OK | F=0;T<>0| <128 |<2^15-1| <2^31-1| OK | OK | OK | | |
16
- * | UInt64 |<=255 |<2^16 |<2^31 | - | F=0;T<>0| <128 |<2^15-1| <2^31-1| OK | OK(*) | OK(*) | | |
17
- * | Boolean | x |F=0;T=1 |F=0;T=1 | F=0;T=1| - |F=0;T=1|F=0;T=1|F=0;T=1 |F=0;T=1|F=0;T=1|F=0;T=1 | | |
18
- * | SByte |>=0 | >=0 | >=0 | >=0 | F=0;T<>0| - | OK | OK | OK | OK | OK | | |
19
- * | Int16 |a<x<b | >=0 | OK | OK | F=0;T<>0|<128 | - | OK | OK | OK | OK | | |
20
- * | Int32 |a<x<b |a<x<b | >=0 | OK | F=0;T<>0|<128 | | - | OK | OK | OK | | |
21
- * | Int64 |a<x<b |a<x<b | a<x<b | >=0 | F=0;T<>0|<128 | - | | - | OK | OK | | |
22
- * | Float |err |err | err | err | F=0;T<>0| err | err | err | err | - | OK | | |
23
- * | Double |err |err | err | err | F=0;T<>0| err | err | err | err | * | - | | |
24
- * | String |err |err | err | err | err | err | err | err | err | err | err | - | |
25
- */
26
- /*
27
- export function castVariant(variant: Variant, targetDataType: DataType): Variant {
28
- if (targetDataType !== variant.dataType) {
29
- switch (targetDataType) {
30
- case DataType.SByte:
31
- case DataType.Int16:
32
- case DataType.Int32:
33
- case DataType.Int64:
34
- case DataType.Byte:
35
- case DataType.Int16:
36
- case DataType.UInt32:
37
- case DataType.UInt32:
38
- case DataType.UInt64:
39
- case DataType.Double:
40
- case DataType.Float:
41
- switch (variant.dataType) {
42
- case DataType.SByte:
43
- case DataType.Int16:
44
- case DataType.Int32:
45
- case DataType.Int64:
46
- case DataType.Byte:
47
- case DataType.UInt16:
48
- case DataType.UInt32:
49
- case DataType.UInt64:
50
- case DataType.Double:
51
- case DataType.Float:
52
- variant.dataType = targetDataType;
53
- break;
54
- }
55
- break;
56
- }
57
- }
58
-
59
- return variant;
60
- }
61
- */
1
+ import { Variant } from "./variant";
2
+ import { DataType } from "./DataType_enum";
3
+
4
+ // TODO
5
+ /**
6
+ * cast the variant value to match the type required by the variable
7
+ * - the method will throw if no conversion is possible
8
+ * - the original variant will not be modified if it already has the required type
9
+ * - the variant will be modified accordingly to match the required type
10
+ *
11
+ * | .... | Byte | UInt16 | UInt32 | UInt64 | Boolean | SByte | Int16 | Int32 | Int64 | Float | Double | String | anything else |
12
+ * | ------- | ---- | ------ | ------ | ------ | ------- | ----- | ----- | ------ | ----- | ----- | ------ | ------ | ------------- |
13
+ * | Byte | - | OK | OK | OK | F=0;T<>0| <128 | OK | OK | OK | OK | OK | | |
14
+ * | UInt16 |<=255 | - | OK | OK | F=0;T<>0| <128 |<2^15-1| OK | OK | OK | OK | | |
15
+ * | UInt32 |<=255 |<2^16 | - | OK | F=0;T<>0| <128 |<2^15-1| <2^31-1| OK | OK | OK | | |
16
+ * | UInt64 |<=255 |<2^16 |<2^31 | - | F=0;T<>0| <128 |<2^15-1| <2^31-1| OK | OK(*) | OK(*) | | |
17
+ * | Boolean | x |F=0;T=1 |F=0;T=1 | F=0;T=1| - |F=0;T=1|F=0;T=1|F=0;T=1 |F=0;T=1|F=0;T=1|F=0;T=1 | | |
18
+ * | SByte |>=0 | >=0 | >=0 | >=0 | F=0;T<>0| - | OK | OK | OK | OK | OK | | |
19
+ * | Int16 |a<x<b | >=0 | OK | OK | F=0;T<>0|<128 | - | OK | OK | OK | OK | | |
20
+ * | Int32 |a<x<b |a<x<b | >=0 | OK | F=0;T<>0|<128 | | - | OK | OK | OK | | |
21
+ * | Int64 |a<x<b |a<x<b | a<x<b | >=0 | F=0;T<>0|<128 | - | | - | OK | OK | | |
22
+ * | Float |err |err | err | err | F=0;T<>0| err | err | err | err | - | OK | | |
23
+ * | Double |err |err | err | err | F=0;T<>0| err | err | err | err | * | - | | |
24
+ * | String |err |err | err | err | err | err | err | err | err | err | err | - | |
25
+ */
26
+ /*
27
+ export function castVariant(variant: Variant, targetDataType: DataType): Variant {
28
+ if (targetDataType !== variant.dataType) {
29
+ switch (targetDataType) {
30
+ case DataType.SByte:
31
+ case DataType.Int16:
32
+ case DataType.Int32:
33
+ case DataType.Int64:
34
+ case DataType.Byte:
35
+ case DataType.Int16:
36
+ case DataType.UInt32:
37
+ case DataType.UInt32:
38
+ case DataType.UInt64:
39
+ case DataType.Double:
40
+ case DataType.Float:
41
+ switch (variant.dataType) {
42
+ case DataType.SByte:
43
+ case DataType.Int16:
44
+ case DataType.Int32:
45
+ case DataType.Int64:
46
+ case DataType.Byte:
47
+ case DataType.UInt16:
48
+ case DataType.UInt32:
49
+ case DataType.UInt64:
50
+ case DataType.Double:
51
+ case DataType.Float:
52
+ variant.dataType = targetDataType;
53
+ break;
54
+ }
55
+ break;
56
+ }
57
+ }
58
+
59
+ return variant;
60
+ }
61
+ */
package/source/index.ts CHANGED
@@ -1,8 +1,9 @@
1
- /**
2
- * @module node-opcua-variant
3
- */
4
- export * from "./DataType_enum";
5
- export * from "./VariantArrayType_enum";
6
- export * from "./variant";
7
- export * from "./adjust_variant";
8
- export * from "./cast_variant";
1
+ /**
2
+ * @module node-opcua-variant
3
+ */
4
+ export * from "./DataType_enum";
5
+ export * from "./VariantArrayType_enum";
6
+ export * from "./variant";
7
+ export * from "./adjust_variant";
8
+ export * from "./cast_variant";
9
+ export * from "./verify_rank_and_dimension";
package/source/variant.ts CHANGED
@@ -30,7 +30,8 @@ import {
30
30
  initialize_field,
31
31
  registerSpecialVariantEncoder,
32
32
  StructuredTypeSchema,
33
- registerType
33
+ registerType,
34
+ DecodeDebugOptions
34
35
  } from "node-opcua-factory";
35
36
 
36
37
  import * as utils from "node-opcua-utils";
@@ -92,7 +93,7 @@ export interface VariantOptions2 {
92
93
  export class Variant extends BaseUAObject {
93
94
  public static schema = schemaVariant;
94
95
  public static coerce = _coerceVariant;
95
- public static computer_default_value = () => new Variant({ dataType: DataType.Null });
96
+ public static computer_default_value = (): Variant => new Variant({ dataType: DataType.Null });
96
97
  public dataType: DataType;
97
98
  public arrayType: VariantArrayType;
98
99
  public value: any;
@@ -119,6 +120,9 @@ export class Variant extends BaseUAObject {
119
120
  this.value = initialize_field(schema.fields[2], options2.value);
120
121
  this.dimensions = options2.dimensions || null;
121
122
 
123
+ if (this.dataType === undefined) {
124
+ throw new Error("dataType is not specified");
125
+ }
122
126
  if (this.dataType === DataType.ExtensionObject) {
123
127
  if (this.arrayType === VariantArrayType.Scalar) {
124
128
  /* istanbul ignore next */
@@ -141,15 +145,15 @@ export class Variant extends BaseUAObject {
141
145
  }
142
146
  }
143
147
  }
144
- public encode(stream: OutputBinaryStream) {
148
+ public encode(stream: OutputBinaryStream): void {
145
149
  encodeVariant(this, stream);
146
150
  }
147
151
 
148
- public decode(stream: BinaryStream) {
152
+ public decode(stream: BinaryStream): void {
149
153
  internalDecodeVariant(this, stream);
150
154
  }
151
155
 
152
- public decodeDebug(stream: BinaryStream, options: any) {
156
+ public decodeDebug(stream: BinaryStream, options: DecodeDebugOptions): void {
153
157
  decodeDebugVariant(this, stream, options);
154
158
  }
155
159
 
@@ -237,37 +241,43 @@ const nullVariant = new Variant({ dataType: DataType.Null });
237
241
  * @private
238
242
  */
239
243
  export function encodeVariant(variant: Variant | undefined | null, stream: OutputBinaryStream): void {
240
- if (!variant) {
241
- variant = nullVariant;
242
- }
243
- let encodingByte = variant.dataType;
244
+ try {
245
+ if (!variant) {
246
+ variant = nullVariant;
247
+ }
248
+ let encodingByte = variant.dataType;
244
249
 
245
- if (variant.arrayType === VariantArrayType.Array || variant.arrayType === VariantArrayType.Matrix) {
246
- encodingByte |= VARIANT_ARRAY_MASK;
247
- }
248
- if (variant.dimensions) {
249
- assert(variant.arrayType === VariantArrayType.Matrix);
250
- assert(variant.dimensions.length >= 0);
251
- encodingByte |= VARIANT_ARRAY_DIMENSIONS_MASK;
252
- }
253
- encodeUInt8(encodingByte, stream);
250
+ if (variant.arrayType === VariantArrayType.Array || variant.arrayType === VariantArrayType.Matrix) {
251
+ encodingByte |= VARIANT_ARRAY_MASK;
252
+ }
253
+ if (variant.dimensions) {
254
+ assert(variant.arrayType === VariantArrayType.Matrix);
255
+ assert(variant.dimensions.length >= 0);
256
+ encodingByte |= VARIANT_ARRAY_DIMENSIONS_MASK;
257
+ }
258
+ encodeUInt8(encodingByte, stream);
254
259
 
255
- if (variant.arrayType === VariantArrayType.Array || variant.arrayType === VariantArrayType.Matrix) {
256
- encodeVariantArray(variant.dataType, stream, variant.value);
257
- } else {
258
- const encode = get_encoder(variant.dataType);
259
- encode(variant.value, stream);
260
- }
260
+ if (variant.arrayType === VariantArrayType.Array || variant.arrayType === VariantArrayType.Matrix) {
261
+ encodeVariantArray(variant.dataType, stream, variant.value);
262
+ } else {
263
+ const encode = get_encoder(variant.dataType || DataType.Null);
264
+ encode(variant.value, stream);
265
+ }
261
266
 
262
- if ((encodingByte & VARIANT_ARRAY_DIMENSIONS_MASK) === VARIANT_ARRAY_DIMENSIONS_MASK && variant.dimensions) {
263
- encodeDimension(variant.dimensions, stream);
267
+ if ((encodingByte & VARIANT_ARRAY_DIMENSIONS_MASK) === VARIANT_ARRAY_DIMENSIONS_MASK && variant.dimensions) {
268
+ encodeDimension(variant.dimensions, stream);
269
+ }
270
+ } catch (err) {
271
+ console.log("Error encoding variant", err);
272
+ console.log(variant?.toString());
273
+ throw err;
264
274
  }
265
275
  }
266
276
 
267
277
  /***
268
278
  * @private
269
279
  */
270
- function decodeDebugVariant(self: Variant, stream: BinaryStream, options: any): void {
280
+ function decodeDebugVariant(self: Variant, stream: BinaryStream, options: DecodeDebugOptions): void {
271
281
  const tracer = options.tracer;
272
282
 
273
283
  const encodingByte = decodeUInt8(stream);
@@ -488,6 +498,9 @@ function calculate_product(array: number[] | null): number {
488
498
 
489
499
  function get_encoder(dataType: DataType) {
490
500
  const dataTypeAsString = typeof dataType === "string" ? dataType : DataType[dataType];
501
+ if (!dataTypeAsString) {
502
+ throw new Error("invalid dataType " + dataType);
503
+ }
491
504
  const encode = findBuiltInType(dataTypeAsString).encode;
492
505
  /* istanbul ignore next */
493
506
  if (!encode) {
@@ -720,10 +733,14 @@ function encodeDimension(dimensions: number[], stream: OutputBinaryStream) {
720
733
  }
721
734
 
722
735
  function isEnumerationItem(value: any): boolean {
723
- return value instanceof Object && value.hasOwnProperty("value") && value.hasOwnProperty("key");
736
+ return (
737
+ value instanceof Object &&
738
+ Object.prototype.hasOwnProperty.call(value, "value") &&
739
+ Object.prototype.hasOwnProperty.call(value, "key")
740
+ );
724
741
  }
725
742
 
726
- export function coerceVariantType(dataType: DataType, value: any): any {
743
+ export function coerceVariantType(dataType: DataType, value: undefined | any): any {
727
744
  /* eslint max-statements: ["error",1000], complexity: ["error",1000]*/
728
745
  if (value === undefined) {
729
746
  value = null;
@@ -888,7 +905,12 @@ function isValidMatrixVariant(dataType: DataType, value: any, dimensions: number
888
905
  return true;
889
906
  }
890
907
 
891
- export function isValidVariant(arrayType: VariantArrayType, dataType: DataType, value: any, dimensions?: number[] | null): boolean {
908
+ export function isValidVariant(
909
+ arrayType: VariantArrayType,
910
+ dataType: DataType,
911
+ value: unknown,
912
+ dimensions?: number[] | null
913
+ ): boolean {
892
914
  switch (arrayType) {
893
915
  case VariantArrayType.Scalar:
894
916
  return isValidScalarVariant(dataType, value);
@@ -900,7 +922,11 @@ export function isValidVariant(arrayType: VariantArrayType, dataType: DataType,
900
922
  }
901
923
  }
902
924
 
903
- export function buildVariantArray(dataType: DataType, nbElements: number, defaultValue: any) {
925
+ export function buildVariantArray(
926
+ dataType: DataType,
927
+ nbElements: number,
928
+ defaultValue: unknown
929
+ ): Float32Array | Float64Array | Uint32Array | Int32Array | Uint16Array | Int16Array | Uint8Array | Int8Array | Array<unknown> {
904
930
  let value;
905
931
  switch (dataType) {
906
932
  case DataType.Float:
@@ -953,7 +979,7 @@ function __check_same_object(o1: any, o2: any): boolean {
953
979
  switch (t1) {
954
980
  case "[object Array]":
955
981
  return __check_same_array(o1, o2);
956
- case "[object Object]":
982
+ case "[object Object]": {
957
983
  if (o1.constructor?.name !== o2.constructor?.name) {
958
984
  return false;
959
985
  }
@@ -969,6 +995,7 @@ function __check_same_object(o1: any, o2: any): boolean {
969
995
  }
970
996
  }
971
997
  return true;
998
+ }
972
999
  case "[object Float32Array]":
973
1000
  case "[object Float64Array]":
974
1001
  case "[object Int32Array]":
@@ -976,10 +1003,11 @@ function __check_same_object(o1: any, o2: any): boolean {
976
1003
  case "[object Int8Array]":
977
1004
  case "[object Uint32Array]":
978
1005
  case "[object Uint16Array]":
979
- case "[object Uint8Array]":
1006
+ case "[object Uint8Array]": {
980
1007
  const b1 = Buffer.from(o1.buffer, o1.byteOffset, o1.byteLength);
981
1008
  const b2 = Buffer.from(o2.buffer, o2.byteOffset, o2.byteLength);
982
1009
  return b1.equals(b2);
1010
+ }
983
1011
  default:
984
1012
  return o1 === o2;
985
1013
  }
@@ -0,0 +1,45 @@
1
+ import assert from "node-opcua-assert";
2
+
3
+ /**
4
+ * ValueRank indicates whether the Value Attribute of the Variable can be an Array and how many dimensions
5
+ * * n > 1 : the Value is an array with the specified number of dimensions.
6
+ * * OneDimension (1): The value is an array with one dimension.
7
+ * * OneOrMoreDimensions (0): The value is an array with one or more dimensions.
8
+ * * Scalar (-1): The value is not an array.
9
+ * * Any (-2): The value can be a scalar or an array with any number of dimensions.
10
+ * * ScalarOrOneDimension (-3): The value can be a scalar or a one dimensional array.
11
+ */
12
+
13
+ export function verifyRankAndDimensions(options: { valueRank?: number; arrayDimensions?: number[] | null }): void {
14
+ options.arrayDimensions = options.arrayDimensions || null;
15
+ assert(options.arrayDimensions === null || Array.isArray(options.arrayDimensions));
16
+
17
+ // evaluate valueRank arrayDimensions is specified but valueRank is null
18
+ if (options.arrayDimensions && options.valueRank === undefined) {
19
+ options.valueRank = options.arrayDimensions.length || -1;
20
+ }
21
+ options.valueRank = options.valueRank === undefined ? -1 : options.valueRank || 0; // UInt32
22
+ assert(typeof options.valueRank === "number");
23
+
24
+ if (options.arrayDimensions && options.valueRank <= 0) {
25
+ if (options.arrayDimensions.length > 0) {
26
+ throw new Error("[CONFORMANCE] arrayDimensions must be null if valueRank <=0");
27
+ }
28
+ options.arrayDimensions = null;
29
+ }
30
+ // specify default arrayDimension if not provided
31
+ if (options.valueRank > 0 && (!options.arrayDimensions || options.arrayDimensions.length === 0)) {
32
+ options.arrayDimensions = new Array(options.valueRank).fill(0);
33
+ }
34
+ if (!options.arrayDimensions && options.valueRank > 0) {
35
+ throw new Error("[CONFORMANCE] arrayDimension must be specified if valueRank >0 " + options.valueRank);
36
+ }
37
+ if (options.valueRank > 0 && options.arrayDimensions!.length !== options.valueRank) {
38
+ throw new Error(
39
+ "[CONFORMANCE] when valueRank> 0, arrayDimensions must have valueRank elements, this.valueRank =" +
40
+ options.valueRank +
41
+ " whereas arrayDimensions.length =" +
42
+ options.arrayDimensions!.length
43
+ );
44
+ }
45
+ }