node-opcua-variant 2.98.0 → 2.99.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.
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @module node-opcua-variant
3
+ */
4
+ import { Enum } from "node-opcua-enum";
5
+ export { DataType } from "node-opcua-basic-types";
6
+ export declare const _enumerationDataType: Enum;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._enumerationDataType = exports.DataType = void 0;
4
+ const node_opcua_factory_1 = require("node-opcua-factory");
5
+ const node_opcua_basic_types_1 = require("node-opcua-basic-types");
6
+ var node_opcua_basic_types_2 = require("node-opcua-basic-types");
7
+ Object.defineProperty(exports, "DataType", { enumerable: true, get: function () { return node_opcua_basic_types_2.DataType; } });
8
+ const schemaDataType = {
9
+ name: "DataType",
10
+ enumValues: node_opcua_basic_types_1.DataType
11
+ };
12
+ exports._enumerationDataType = (0, node_opcua_factory_1.registerEnumeration)(schemaDataType);
13
+ //# sourceMappingURL=DataType_enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataType_enum.js","sourceRoot":"","sources":["../source/DataType_enum.ts"],"names":[],"mappings":";;;AAIA,2DAAyD;AACzD,mEAAkD;AAClD,iEAAkD;AAAzC,kHAAA,QAAQ,OAAA;AACjB,MAAM,cAAc,GAAG;IACnB,IAAI,EAAE,UAAU;IAEhB,UAAU,EAAE,iCAAQ;CACvB,CAAC;AACW,QAAA,oBAAoB,GAAS,IAAA,wCAAmB,EAAC,cAAc,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @module node-opcua-variant
3
+ */
4
+ import { Enum } from "node-opcua-enum";
5
+ export declare enum VariantArrayType {
6
+ Scalar = 0,
7
+ Array = 1,
8
+ Matrix = 2
9
+ }
10
+ /***
11
+ * @private
12
+ */
13
+ export declare const _enumerationVariantArrayType: Enum;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._enumerationVariantArrayType = exports.VariantArrayType = void 0;
4
+ const node_opcua_factory_1 = require("node-opcua-factory");
5
+ var VariantArrayType;
6
+ (function (VariantArrayType) {
7
+ VariantArrayType[VariantArrayType["Scalar"] = 0] = "Scalar";
8
+ VariantArrayType[VariantArrayType["Array"] = 1] = "Array";
9
+ VariantArrayType[VariantArrayType["Matrix"] = 2] = "Matrix";
10
+ })(VariantArrayType = exports.VariantArrayType || (exports.VariantArrayType = {}));
11
+ const schemaVariantArrayType = {
12
+ enumValues: VariantArrayType,
13
+ name: "VariantArrayType"
14
+ };
15
+ /***
16
+ * @private
17
+ */
18
+ exports._enumerationVariantArrayType = (0, node_opcua_factory_1.registerEnumeration)(schemaVariantArrayType);
19
+ //# sourceMappingURL=VariantArrayType_enum.js.map
@@ -0,0 +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,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"}
@@ -0,0 +1,3 @@
1
+ import { Variant } from "./variant";
2
+ import { DataType } from "./DataType_enum";
3
+ export declare function adjustVariant(variant: Variant, valueRank: number, targetDataType: DataType): Variant;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.adjustVariant = void 0;
4
+ const node_opcua_assert_1 = require("node-opcua-assert");
5
+ const DataType_enum_1 = require("./DataType_enum");
6
+ const VariantArrayType_enum_1 = require("./VariantArrayType_enum");
7
+ function adjustVariant(variant, valueRank, targetDataType) {
8
+ if (targetDataType === DataType_enum_1.DataType.Byte && valueRank === 1 /* Array */) {
9
+ if (variant.arrayType === VariantArrayType_enum_1.VariantArrayType.Scalar && variant.dataType === DataType_enum_1.DataType.ByteString) {
10
+ // Byte
11
+ variant.arrayType = VariantArrayType_enum_1.VariantArrayType.Array;
12
+ variant.dataType = DataType_enum_1.DataType.Byte;
13
+ (0, node_opcua_assert_1.default)(variant.dataType === DataType_enum_1.DataType.Byte);
14
+ (0, node_opcua_assert_1.default)(!variant.value || variant.value instanceof Buffer);
15
+ }
16
+ }
17
+ if (targetDataType === DataType_enum_1.DataType.ByteString && valueRank === -1 /* Scalar*/) {
18
+ if (variant.arrayType === VariantArrayType_enum_1.VariantArrayType.Array && variant.dataType === DataType_enum_1.DataType.Byte) {
19
+ // Byte
20
+ variant.arrayType = VariantArrayType_enum_1.VariantArrayType.Scalar;
21
+ variant.dataType = DataType_enum_1.DataType.ByteString;
22
+ (0, node_opcua_assert_1.default)(variant.dataType === DataType_enum_1.DataType.ByteString);
23
+ (0, node_opcua_assert_1.default)(!variant.value || variant.value instanceof Buffer);
24
+ }
25
+ }
26
+ return variant;
27
+ }
28
+ exports.adjustVariant = adjustVariant;
29
+ //# sourceMappingURL=adjust_variant.js.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,22 @@
1
+ export {};
2
+ /**
3
+ * cast the variant value to match the type required by the variable
4
+ * - the method will throw if no conversion is possible
5
+ * - the original variant will not be modified if it already has the required type
6
+ * - the variant will be modified accordingly to match the required type
7
+ *
8
+ * | .... | Byte | UInt16 | UInt32 | UInt64 | Boolean | SByte | Int16 | Int32 | Int64 | Float | Double | String | anything else |
9
+ * | ------- | ---- | ------ | ------ | ------ | ------- | ----- | ----- | ------ | ----- | ----- | ------ | ------ | ------------- |
10
+ * | Byte | - | OK | OK | OK | F=0;T<>0| <128 | OK | OK | OK | OK | OK | | |
11
+ * | UInt16 |<=255 | - | OK | OK | F=0;T<>0| <128 |<2^15-1| OK | OK | OK | OK | | |
12
+ * | UInt32 |<=255 |<2^16 | - | OK | F=0;T<>0| <128 |<2^15-1| <2^31-1| OK | OK | OK | | |
13
+ * | UInt64 |<=255 |<2^16 |<2^31 | - | F=0;T<>0| <128 |<2^15-1| <2^31-1| OK | OK(*) | OK(*) | | |
14
+ * | 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 | | |
15
+ * | SByte |>=0 | >=0 | >=0 | >=0 | F=0;T<>0| - | OK | OK | OK | OK | OK | | |
16
+ * | Int16 |a<x<b | >=0 | OK | OK | F=0;T<>0|<128 | - | OK | OK | OK | OK | | |
17
+ * | Int32 |a<x<b |a<x<b | >=0 | OK | F=0;T<>0|<128 | | - | OK | OK | OK | | |
18
+ * | Int64 |a<x<b |a<x<b | a<x<b | >=0 | F=0;T<>0|<128 | - | | - | OK | OK | | |
19
+ * | Float |err |err | err | err | F=0;T<>0| err | err | err | err | - | OK | | |
20
+ * | Double |err |err | err | err | F=0;T<>0| err | err | err | err | * | - | | |
21
+ * | String |err |err | err | err | err | err | err | err | err | err | err | - | |
22
+ */
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // TODO
4
+ /**
5
+ * cast the variant value to match the type required by the variable
6
+ * - the method will throw if no conversion is possible
7
+ * - the original variant will not be modified if it already has the required type
8
+ * - the variant will be modified accordingly to match the required type
9
+ *
10
+ * | .... | Byte | UInt16 | UInt32 | UInt64 | Boolean | SByte | Int16 | Int32 | Int64 | Float | Double | String | anything else |
11
+ * | ------- | ---- | ------ | ------ | ------ | ------- | ----- | ----- | ------ | ----- | ----- | ------ | ------ | ------------- |
12
+ * | Byte | - | OK | OK | OK | F=0;T<>0| <128 | OK | OK | OK | OK | OK | | |
13
+ * | UInt16 |<=255 | - | OK | OK | F=0;T<>0| <128 |<2^15-1| OK | OK | OK | OK | | |
14
+ * | UInt32 |<=255 |<2^16 | - | OK | F=0;T<>0| <128 |<2^15-1| <2^31-1| OK | OK | OK | | |
15
+ * | UInt64 |<=255 |<2^16 |<2^31 | - | F=0;T<>0| <128 |<2^15-1| <2^31-1| OK | OK(*) | OK(*) | | |
16
+ * | 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 | | |
17
+ * | SByte |>=0 | >=0 | >=0 | >=0 | F=0;T<>0| - | OK | OK | OK | OK | OK | | |
18
+ * | Int16 |a<x<b | >=0 | OK | OK | F=0;T<>0|<128 | - | OK | OK | OK | OK | | |
19
+ * | Int32 |a<x<b |a<x<b | >=0 | OK | F=0;T<>0|<128 | | - | OK | OK | OK | | |
20
+ * | Int64 |a<x<b |a<x<b | a<x<b | >=0 | F=0;T<>0|<128 | - | | - | OK | OK | | |
21
+ * | Float |err |err | err | err | F=0;T<>0| err | err | err | err | - | OK | | |
22
+ * | Double |err |err | err | err | F=0;T<>0| err | err | err | err | * | - | | |
23
+ * | String |err |err | err | err | err | err | err | err | err | err | err | - | |
24
+ */
25
+ /*
26
+ export function castVariant(variant: Variant, targetDataType: DataType): Variant {
27
+ if (targetDataType !== variant.dataType) {
28
+ switch (targetDataType) {
29
+ case DataType.SByte:
30
+ case DataType.Int16:
31
+ case DataType.Int32:
32
+ case DataType.Int64:
33
+ case DataType.Byte:
34
+ case DataType.Int16:
35
+ case DataType.UInt32:
36
+ case DataType.UInt32:
37
+ case DataType.UInt64:
38
+ case DataType.Double:
39
+ case DataType.Float:
40
+ switch (variant.dataType) {
41
+ case DataType.SByte:
42
+ case DataType.Int16:
43
+ case DataType.Int32:
44
+ case DataType.Int64:
45
+ case DataType.Byte:
46
+ case DataType.UInt16:
47
+ case DataType.UInt32:
48
+ case DataType.UInt64:
49
+ case DataType.Double:
50
+ case DataType.Float:
51
+ variant.dataType = targetDataType;
52
+ break;
53
+ }
54
+ break;
55
+ }
56
+ }
57
+
58
+ return variant;
59
+ }
60
+ */
61
+ //# sourceMappingURL=cast_variant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cast_variant.js","sourceRoot":"","sources":["../source/cast_variant.ts"],"names":[],"mappings":";;AAGA,OAAO;AACP;;;;;;;;;;;;;;;;;;;;GAoBG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmCE"}
@@ -0,0 +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";
9
+ export * from "./verify_rank_and_dimension";
package/dist/index.js ADDED
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ /**
18
+ * @module node-opcua-variant
19
+ */
20
+ __exportStar(require("./DataType_enum"), exports);
21
+ __exportStar(require("./VariantArrayType_enum"), exports);
22
+ __exportStar(require("./variant"), exports);
23
+ __exportStar(require("./adjust_variant"), exports);
24
+ __exportStar(require("./cast_variant"), exports);
25
+ __exportStar(require("./verify_rank_and_dimension"), exports);
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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;AAC/B,8DAA4C"}
@@ -0,0 +1,83 @@
1
+ /// <reference types="node" />
2
+ import { BaseUAObject, DecodeDebugOptions } from "node-opcua-factory";
3
+ import { BinaryStream, OutputBinaryStream } from "node-opcua-binary-stream";
4
+ import { DataType } from "./DataType_enum";
5
+ import { VariantArrayType } from "./VariantArrayType_enum";
6
+ declare function _coerceVariant(variantLike: VariantOptions | Variant): Variant;
7
+ export interface VariantOptions {
8
+ dataType?: DataType | string;
9
+ arrayType?: VariantArrayType | string;
10
+ value?: any;
11
+ dimensions?: number[] | null;
12
+ }
13
+ export interface VariantOptions2 {
14
+ dataType: DataType;
15
+ arrayType: VariantArrayType;
16
+ value: any;
17
+ dimensions: number[] | null;
18
+ }
19
+ export declare class Variant extends BaseUAObject {
20
+ static maxTypedArrayLength: number;
21
+ static maxArrayLength: number;
22
+ static schema: import("node-opcua-factory").IStructuredTypeSchema;
23
+ static coerce: typeof _coerceVariant;
24
+ static computer_default_value: () => Variant;
25
+ dataType: DataType;
26
+ arrayType: VariantArrayType;
27
+ value: any;
28
+ dimensions: number[] | null;
29
+ constructor(options?: VariantOptions | null);
30
+ encode(stream: OutputBinaryStream): void;
31
+ decode(stream: BinaryStream): void;
32
+ decodeDebug(stream: BinaryStream, options: DecodeDebugOptions): void;
33
+ toString(): string;
34
+ isValid(): boolean;
35
+ clone(): Variant;
36
+ }
37
+ export type VariantLike = VariantOptions;
38
+ /***
39
+ * @private
40
+ */
41
+ export declare const VARIANT_ARRAY_MASK = 128;
42
+ /***
43
+ * @private
44
+ */
45
+ export declare const VARIANT_ARRAY_DIMENSIONS_MASK = 64;
46
+ /***
47
+ * @private
48
+ */
49
+ export declare const VARIANT_TYPE_MASK = 63;
50
+ /***
51
+ * @private
52
+ */
53
+ export declare function encodeVariant(variant: Variant | undefined | null, stream: OutputBinaryStream): void;
54
+ /***
55
+ * @private
56
+ */
57
+ export declare function decodeVariant(stream: BinaryStream, value?: Variant): Variant;
58
+ /***
59
+ * @private
60
+ */
61
+ export type BufferedArray2 = Float32Array | Float64Array | Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array;
62
+ export declare function coerceVariantType(dataType: DataType, value: undefined | any): any;
63
+ export declare function isValidVariant(arrayType: VariantArrayType, dataType: DataType, value: unknown, dimensions?: number[] | null): boolean;
64
+ export declare function buildVariantArray(dataType: DataType, nbElements: number, defaultValue: unknown): Float32Array | Float64Array | Uint32Array | Int32Array | Uint16Array | Int16Array | Uint8Array | Int8Array | Array<unknown>;
65
+ /***
66
+ * returns true if the two variant represent the same value
67
+ * @param v1 the first variant to compare
68
+ * @param v2 the variant to compare with
69
+ */
70
+ export declare function sameVariant(v1: Variant, v2: Variant): boolean;
71
+ export interface VariantOptionsT<T, DT extends DataType> extends VariantOptions {
72
+ dataType: DT;
73
+ arrayType?: VariantArrayType | string;
74
+ value: T;
75
+ dimensions?: number[] | null;
76
+ }
77
+ export interface VariantT<T, DT extends DataType> extends Variant {
78
+ value: T;
79
+ dataType: DT;
80
+ }
81
+ export declare type VariantByteString = VariantT<Buffer, DataType.ByteString>;
82
+ export declare type VariantDouble = VariantT<number, DataType.Double>;
83
+ export {};