node-opcua-numeric-range 2.98.0 → 2.98.1

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,4 @@
1
+ /**
2
+ * @module node-opcua-numeric-range
3
+ */
4
+ export * from "./numeric_range";
package/dist/index.js ADDED
@@ -0,0 +1,21 @@
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-numeric-range
19
+ */
20
+ __exportStar(require("./numeric_range"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,kDAAgC"}
@@ -0,0 +1,101 @@
1
+ /// <reference types="node" />
2
+ import { UAString } from "node-opcua-basic-types";
3
+ import { BinaryStream, OutputBinaryStream } from "node-opcua-binary-stream";
4
+ import { StatusCode } from "node-opcua-status-code";
5
+ export declare const schemaNumericRange: {
6
+ name: string;
7
+ subType: string;
8
+ defaultValue: () => NumericRange;
9
+ encode: typeof encodeNumericRange;
10
+ decode: typeof decodeNumericRange;
11
+ random: () => NumericRange;
12
+ coerce: typeof coerceNumericRange;
13
+ };
14
+ export declare enum NumericRangeType {
15
+ Empty = 0,
16
+ SingleValue = 1,
17
+ ArrayRange = 2,
18
+ MatrixRange = 3,
19
+ InvalidRange = 4
20
+ }
21
+ type NumericalRangeValueType = null | number | string | number[] | number[][];
22
+ export interface NumericalRangeSingleValue {
23
+ type: NumericRangeType.SingleValue;
24
+ value: number;
25
+ }
26
+ export interface NumericalRangeArrayRange {
27
+ type: NumericRangeType.ArrayRange;
28
+ value: number[];
29
+ }
30
+ export interface NumericalRangeMatrixRange {
31
+ type: NumericRangeType.MatrixRange;
32
+ value: number[][];
33
+ }
34
+ export interface NumericalRangeEmpty {
35
+ type: NumericRangeType.Empty;
36
+ value: null;
37
+ }
38
+ export interface NumericalRangeInvalid {
39
+ type: NumericRangeType.InvalidRange;
40
+ value: string;
41
+ }
42
+ export type NumericalRange0 = NumericalRangeSingleValue | NumericalRangeArrayRange | NumericalRangeMatrixRange | NumericalRangeEmpty | NumericalRangeInvalid;
43
+ export interface NumericalRange1 {
44
+ type: NumericRangeType;
45
+ value: NumericalRangeValueType;
46
+ }
47
+ export declare class NumericRange implements NumericalRange1 {
48
+ static coerce: typeof coerceNumericRange;
49
+ static schema: {
50
+ name: string;
51
+ subType: string;
52
+ defaultValue: () => NumericRange;
53
+ encode: typeof encodeNumericRange;
54
+ decode: typeof decodeNumericRange;
55
+ random: () => NumericRange;
56
+ coerce: typeof coerceNumericRange;
57
+ };
58
+ static NumericRangeType: typeof NumericRangeType;
59
+ static readonly empty: NumericalRange0;
60
+ static overlap(nr1?: NumericalRange0, nr2?: NumericalRange0): boolean;
61
+ type: NumericRangeType;
62
+ value: NumericalRangeValueType;
63
+ constructor();
64
+ constructor(value: string | null);
65
+ constructor(value: number, secondValue?: number);
66
+ constructor(value: number[]);
67
+ constructor(value: number[], secondValue: number[]);
68
+ isValid(): boolean;
69
+ isEmpty(): boolean;
70
+ isDefined(): boolean;
71
+ toString(): string;
72
+ toJSON(): string;
73
+ toEncodeableString(): UAString;
74
+ /**
75
+ * @method extract_values
76
+ * @param array flat array containing values or string
77
+ * @param dimensions: of the matrix if data is a matrix
78
+ * @return {*}
79
+ */
80
+ extract_values<U, T extends ArrayLike<U>>(array: T, dimensions?: number[]): ExtractResult<T>;
81
+ set_values_matrix(sourceToAlter: {
82
+ matrix: Buffer | [];
83
+ dimensions: number[];
84
+ }, newMatrix: Buffer | []): {
85
+ matrix: Buffer | [];
86
+ statusCode: StatusCode;
87
+ };
88
+ set_values(arrayToAlter: Buffer | [], newValues: Buffer | []): {
89
+ array: Buffer | [] | null;
90
+ statusCode: StatusCode;
91
+ };
92
+ }
93
+ export interface ExtractResult<T> {
94
+ array?: T | null;
95
+ statusCode: StatusCode;
96
+ dimensions?: number[];
97
+ }
98
+ export declare function encodeNumericRange(numericRange: NumericRange, stream: OutputBinaryStream): void;
99
+ export declare function decodeNumericRange(stream: BinaryStream, _value?: NumericRange): NumericRange;
100
+ declare function coerceNumericRange(value: any | string | NumericRange | null | number[]): NumericRange;
101
+ export {};
@@ -0,0 +1,644 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decodeNumericRange = exports.encodeNumericRange = exports.NumericRange = exports.NumericRangeType = exports.schemaNumericRange = void 0;
4
+ const node_opcua_assert_1 = require("node-opcua-assert");
5
+ const node_opcua_basic_types_1 = require("node-opcua-basic-types");
6
+ const node_opcua_factory_1 = require("node-opcua-factory");
7
+ const node_opcua_status_code_1 = require("node-opcua-status-code");
8
+ // OPC.UA Part 4 7.21 Numerical Range
9
+ // The syntax for the string contains one of the following two constructs. The first construct is the string
10
+ // representation of an individual integer. For example, '6' is valid, but '6.0' and '3.2' are not. The
11
+ // minimum and maximum values that can be expressed are defined by the use of this parameter and
12
+ // not by this parameter type definition. The second construct is a range represented by two integers
13
+ // separated by the colon (':') character. The first integer shall always have a lower value than the
14
+ // second. For example, '5:7' is valid, while '7:5' and '5:5' are not. The minimum and maximum values
15
+ // that can be expressed by these integers are defined by the use of this parameter , and not by this
16
+ // parameter type definition. No other characters, including white - space characters, are permitted.
17
+ // Multi- dimensional arrays can be indexed by specifying a range for each dimension separated by a ','.
18
+ //
19
+ // For example, a 2x2 block in a 4x4 matrix could be selected with the range '1:2,0:1'. A single element
20
+ // in a multi - dimensional array can be selected by specifying a single number instead of a range.
21
+ // For example, '1,1' specifies selects the [1,1] element in a two dimensional array.
22
+ // Dimensions are specified in the order that they appear in the ArrayDimensions Attribute.
23
+ // All dimensions shall be specified for a NumericRange to be valid.
24
+ //
25
+ // All indexes start with 0. The maximum value for any index is one less than the length of the
26
+ // dimension.
27
+ const NUMERIC_RANGE_EMPTY_STRING = "NumericRange:<Empty>";
28
+ // BNF of NumericRange
29
+ // The following BNF describes the syntax of the NumericRange parameter type.
30
+ // <numeric-range> ::= <dimension> [',' <dimension>]
31
+ // <dimension> ::= <index> [':' <index>]
32
+ // <index> ::= <digit> [<digit>]
33
+ // <digit> ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' |9'
34
+ //
35
+ // tslint:disable:object-literal-shorthand
36
+ // tslint:disable:only-arrow-functions
37
+ exports.schemaNumericRange = {
38
+ name: "NumericRange",
39
+ subType: "String",
40
+ defaultValue: () => {
41
+ return new NumericRange();
42
+ },
43
+ encode: encodeNumericRange,
44
+ decode: decodeNumericRange,
45
+ random: () => {
46
+ function r() {
47
+ return Math.ceil(Math.random() * 100);
48
+ }
49
+ const start = r();
50
+ const end = start + r();
51
+ return new NumericRange(start, end);
52
+ },
53
+ coerce: coerceNumericRange
54
+ };
55
+ (0, node_opcua_factory_1.registerBasicType)(exports.schemaNumericRange);
56
+ var NumericRangeType;
57
+ (function (NumericRangeType) {
58
+ NumericRangeType[NumericRangeType["Empty"] = 0] = "Empty";
59
+ NumericRangeType[NumericRangeType["SingleValue"] = 1] = "SingleValue";
60
+ NumericRangeType[NumericRangeType["ArrayRange"] = 2] = "ArrayRange";
61
+ NumericRangeType[NumericRangeType["MatrixRange"] = 3] = "MatrixRange";
62
+ NumericRangeType[NumericRangeType["InvalidRange"] = 4] = "InvalidRange";
63
+ })(NumericRangeType = exports.NumericRangeType || (exports.NumericRangeType = {}));
64
+ // new Enum(["Empty", "SingleValue", "ArrayRange", "MatrixRange", "InvalidRange"]);
65
+ const regexNumericRange = /^[0-9:,]*$/;
66
+ function _valid_range(low, high) {
67
+ return !(low >= high || low < 0 || high < 0);
68
+ }
69
+ function construct_numeric_range_bit_from_string(str) {
70
+ const values = str.split(":");
71
+ if (values.length === 1) {
72
+ return {
73
+ type: NumericRangeType.SingleValue,
74
+ value: parseInt(values[0], 10)
75
+ };
76
+ }
77
+ else if (values.length === 2) {
78
+ const array = values.map((a) => parseInt(a, 10));
79
+ if (!_valid_range(array[0], array[1])) {
80
+ return {
81
+ type: NumericRangeType.InvalidRange,
82
+ value: str
83
+ };
84
+ }
85
+ return {
86
+ type: NumericRangeType.ArrayRange,
87
+ value: array
88
+ };
89
+ }
90
+ else {
91
+ return {
92
+ type: NumericRangeType.InvalidRange,
93
+ value: str
94
+ };
95
+ }
96
+ }
97
+ function _normalize(e) {
98
+ if (e.type === NumericRangeType.SingleValue) {
99
+ const ee = e;
100
+ return [ee.value, ee.value];
101
+ }
102
+ return e.value;
103
+ }
104
+ function construct_numeric_range_from_string(str) {
105
+ if (!regexNumericRange.test(str)) {
106
+ return {
107
+ type: NumericRangeType.InvalidRange,
108
+ value: str
109
+ };
110
+ }
111
+ /* detect multi dim range*/
112
+ const values = str.split(",");
113
+ if (values.length === 1) {
114
+ return construct_numeric_range_bit_from_string(values[0]);
115
+ }
116
+ else if (values.length === 2) {
117
+ const elements = values.map(construct_numeric_range_bit_from_string);
118
+ let rowRange = elements[0];
119
+ let colRange = elements[1];
120
+ if (rowRange.type === NumericRangeType.InvalidRange || colRange.type === NumericRangeType.InvalidRange) {
121
+ return { type: NumericRangeType.InvalidRange, value: str };
122
+ }
123
+ rowRange = _normalize(rowRange);
124
+ colRange = _normalize(colRange);
125
+ return {
126
+ type: NumericRangeType.MatrixRange,
127
+ value: [rowRange, colRange]
128
+ };
129
+ }
130
+ else {
131
+ // not supported yet
132
+ return { type: NumericRangeType.InvalidRange, value: str };
133
+ }
134
+ }
135
+ function construct_from_string(value) {
136
+ return construct_numeric_range_from_string(value);
137
+ }
138
+ function _set_single_value(value) {
139
+ if (value === null || value < 0 || !isFinite(value)) {
140
+ return {
141
+ type: NumericRangeType.InvalidRange,
142
+ value: "" + (value === null || value === void 0 ? void 0 : value.toString())
143
+ };
144
+ }
145
+ else {
146
+ return {
147
+ type: NumericRangeType.SingleValue,
148
+ value: value
149
+ };
150
+ }
151
+ }
152
+ function _check_range(numericalRange) {
153
+ switch (numericalRange.type) {
154
+ case NumericRangeType.ArrayRange:
155
+ return _valid_range(numericalRange.value[0], numericalRange.value[1]);
156
+ }
157
+ // istanbul ignore next
158
+ throw new Error("unsupported case");
159
+ }
160
+ function _set_range_value(low, high) {
161
+ if (low === high) {
162
+ return {
163
+ type: NumericRangeType.SingleValue,
164
+ value: low
165
+ };
166
+ }
167
+ const numericalRange = {
168
+ type: NumericRangeType.ArrayRange,
169
+ value: [low, high]
170
+ };
171
+ if (!_check_range(numericalRange)) {
172
+ return {
173
+ type: NumericRangeType.InvalidRange,
174
+ value: ""
175
+ };
176
+ }
177
+ return numericalRange;
178
+ }
179
+ function construct_from_values(value, secondValue) {
180
+ if (secondValue === undefined) {
181
+ return _set_single_value(value);
182
+ }
183
+ else {
184
+ if (!isFinite(secondValue)) {
185
+ throw new Error(" invalid second argument, expecting a number");
186
+ }
187
+ return _set_range_value(value, secondValue);
188
+ }
189
+ }
190
+ function _construct_from_array(value, value2) {
191
+ (0, node_opcua_assert_1.assert)(value.length === 2);
192
+ // istanbul ignore next
193
+ if (!isFinite(value[0]) || !isFinite(value[1])) {
194
+ return { type: NumericRangeType.InvalidRange, value: "" + value };
195
+ }
196
+ let range1 = _set_range_value(value[0], value[1]);
197
+ if (!value2) {
198
+ return range1;
199
+ }
200
+ // we have a matrix
201
+ const nr2 = new NumericRange(value2);
202
+ // istanbul ignore next
203
+ if (nr2.type === NumericRangeType.InvalidRange ||
204
+ nr2.type === NumericRangeType.MatrixRange ||
205
+ nr2.type === NumericRangeType.Empty) {
206
+ return { type: NumericRangeType.InvalidRange, value: "" + value };
207
+ }
208
+ if (range1.type === NumericRangeType.SingleValue) {
209
+ range1 = {
210
+ type: NumericRangeType.ArrayRange,
211
+ value: [range1.value, range1.value]
212
+ };
213
+ }
214
+ if (nr2.type === NumericRangeType.SingleValue) {
215
+ nr2.type = NumericRangeType.ArrayRange;
216
+ nr2.value = [nr2.value, nr2.value];
217
+ }
218
+ // istanbul ignore next
219
+ return {
220
+ type: NumericRangeType.MatrixRange,
221
+ value: [range1.value, nr2.value]
222
+ };
223
+ }
224
+ class NumericRange {
225
+ static overlap(nr1, nr2) {
226
+ nr1 = nr1 || NumericRange.empty;
227
+ nr2 = nr2 || NumericRange.empty;
228
+ if (NumericRangeType.Empty === nr1.type || NumericRangeType.Empty === nr2.type) {
229
+ return true;
230
+ }
231
+ if (NumericRangeType.SingleValue === nr1.type && NumericRangeType.SingleValue === nr2.type) {
232
+ return nr1.value === nr2.value;
233
+ }
234
+ if (NumericRangeType.ArrayRange === nr1.type && NumericRangeType.ArrayRange === nr2.type) {
235
+ // +-----+ +------+ +---+ +------+
236
+ // +----+ +---+ +--------+ +---+
237
+ const l1 = nr1.value[0];
238
+ const h1 = nr1.value[1];
239
+ const l2 = nr2.value[0];
240
+ const h2 = nr2.value[1];
241
+ return _overlap(l1, h1, l2, h2);
242
+ }
243
+ // istanbul ignore next
244
+ (0, node_opcua_assert_1.assert)(false, "NumericalRange#overlap : case not implemented yet "); // TODO
245
+ // istanbul ignore next
246
+ return false;
247
+ }
248
+ constructor(value, secondValue) {
249
+ this.type = NumericRangeType.InvalidRange;
250
+ this.value = null;
251
+ (0, node_opcua_assert_1.assert)(!value || !(value instanceof NumericRange), "use coerce to create a NumericRange");
252
+ (0, node_opcua_assert_1.assert)(!secondValue || typeof secondValue === "number" || Array.isArray(secondValue));
253
+ if (typeof value === "string") {
254
+ const a = construct_from_string(value);
255
+ this.type = a.type;
256
+ this.value = a.value;
257
+ }
258
+ else if (typeof value === "number" &&
259
+ isFinite(value) &&
260
+ (secondValue === undefined || (typeof secondValue === "number" && isFinite(secondValue)))) {
261
+ const a = construct_from_values(value, secondValue);
262
+ this.type = a.type;
263
+ this.value = a.value;
264
+ }
265
+ else if (Array.isArray(value)) {
266
+ const a = _construct_from_array(value, secondValue);
267
+ this.type = a.type;
268
+ this.value = a.value;
269
+ }
270
+ else {
271
+ this.value = "<invalid>";
272
+ this.type = NumericRangeType.Empty;
273
+ }
274
+ // xx assert((this.type !== NumericRangeType.ArrayRange) || Array.isArray(this.value));
275
+ }
276
+ isValid() {
277
+ if (this.type === NumericRangeType.ArrayRange) {
278
+ const value = this.value;
279
+ if (value[0] < 0 || value[1] < 0) {
280
+ return false;
281
+ }
282
+ }
283
+ if (this.type === NumericRangeType.SingleValue) {
284
+ const value = this.value;
285
+ // istanbul ignore next
286
+ if (value < 0) {
287
+ return false;
288
+ }
289
+ }
290
+ return this.type !== NumericRangeType.InvalidRange;
291
+ }
292
+ isEmpty() {
293
+ return this.type === NumericRangeType.Empty;
294
+ }
295
+ isDefined() {
296
+ return this.type !== NumericRangeType.Empty && this.type !== NumericRangeType.InvalidRange;
297
+ }
298
+ toString() {
299
+ function array_range_to_string(values) {
300
+ (0, node_opcua_assert_1.assert)(Array.isArray(values));
301
+ if (values.length === 2 && values[0] === values[1]) {
302
+ return values[0].toString();
303
+ }
304
+ return values.map((value) => value.toString(10)).join(":");
305
+ }
306
+ function matrix_range_to_string(values) {
307
+ return values
308
+ .map((value) => {
309
+ return Array.isArray(value) ? array_range_to_string(value) : value.toString(10);
310
+ })
311
+ .join(",");
312
+ }
313
+ switch (this.type) {
314
+ case NumericRangeType.SingleValue:
315
+ return this.value.toString(10);
316
+ case NumericRangeType.ArrayRange:
317
+ return array_range_to_string(this.value);
318
+ case NumericRangeType.Empty:
319
+ return NUMERIC_RANGE_EMPTY_STRING;
320
+ case NumericRangeType.MatrixRange:
321
+ return matrix_range_to_string(this.value);
322
+ default:
323
+ (0, node_opcua_assert_1.assert)(this.type === NumericRangeType.InvalidRange);
324
+ return "NumericRange:<Invalid>";
325
+ }
326
+ }
327
+ toJSON() {
328
+ return this.toString();
329
+ }
330
+ toEncodeableString() {
331
+ switch (this.type) {
332
+ case NumericRangeType.SingleValue:
333
+ case NumericRangeType.ArrayRange:
334
+ case NumericRangeType.MatrixRange:
335
+ return this.toString();
336
+ case NumericRangeType.InvalidRange:
337
+ // istanbul ignore next
338
+ if (!(typeof this.value === "string")) {
339
+ throw new Error("Internal Error");
340
+ }
341
+ return this.value; // value contains the original strings which was detected invalid
342
+ default:
343
+ return null;
344
+ }
345
+ }
346
+ /**
347
+ * @method extract_values
348
+ * @param array flat array containing values or string
349
+ * @param dimensions: of the matrix if data is a matrix
350
+ * @return {*}
351
+ */
352
+ extract_values(array, dimensions) {
353
+ const self = this;
354
+ if (!array) {
355
+ return {
356
+ array,
357
+ statusCode: this.type === NumericRangeType.Empty ? node_opcua_status_code_1.StatusCodes.Good : node_opcua_status_code_1.StatusCodes.BadIndexRangeNoData
358
+ };
359
+ }
360
+ let index;
361
+ let low_index;
362
+ let high_index;
363
+ let rowRange;
364
+ let colRange;
365
+ switch (self.type) {
366
+ case NumericRangeType.Empty:
367
+ return extract_empty(array, dimensions);
368
+ case NumericRangeType.SingleValue:
369
+ index = self.value;
370
+ return extract_single_value(array, index);
371
+ case NumericRangeType.ArrayRange:
372
+ low_index = self.value[0];
373
+ high_index = self.value[1];
374
+ return extract_array_range(array, low_index, high_index);
375
+ case NumericRangeType.MatrixRange:
376
+ rowRange = self.value[0];
377
+ colRange = self.value[1];
378
+ return extract_matrix_range(array, rowRange, colRange, dimensions);
379
+ default:
380
+ return { statusCode: node_opcua_status_code_1.StatusCodes.BadIndexRangeInvalid };
381
+ }
382
+ }
383
+ set_values_matrix(sourceToAlter, newMatrix) {
384
+ const { matrix, dimensions } = sourceToAlter;
385
+ const self = this;
386
+ (0, node_opcua_assert_1.assert)(dimensions, "expecting valid dimensions here");
387
+ if (self.type !== NumericRangeType.MatrixRange) {
388
+ // istanbul ignore next
389
+ return { matrix, statusCode: node_opcua_status_code_1.StatusCodes.BadTypeMismatch };
390
+ }
391
+ (0, node_opcua_assert_1.assert)(dimensions.length === 2);
392
+ const nbRows = dimensions[0];
393
+ const nbCols = dimensions[1];
394
+ (0, node_opcua_assert_1.assert)(sourceToAlter.matrix.length === nbRows * nbCols);
395
+ const [rowStart, rowEnd] = self.value[0];
396
+ const [colStart, colEnd] = self.value[1];
397
+ const nbRowInNew = rowEnd - rowStart + 1;
398
+ const nbColInNew = colEnd - colStart + 1;
399
+ if (nbRowInNew * nbColInNew !== newMatrix.length) {
400
+ return { matrix, statusCode: node_opcua_status_code_1.StatusCodes.BadTypeMismatch };
401
+ }
402
+ // check if the sub-matrix is in th range of the initial matrix
403
+ if (rowEnd >= nbRows || colEnd >= nbCols) {
404
+ // debugLog("out of band range => ", { rowEnd, nbRows, colEnd, nbCols });
405
+ return { matrix, statusCode: node_opcua_status_code_1.StatusCodes.BadTypeMismatch };
406
+ }
407
+ for (let row = rowStart; row <= rowEnd; row++) {
408
+ const ri = row - rowStart;
409
+ for (let col = colStart; col <= colEnd; col++) {
410
+ const ci = col - colStart;
411
+ matrix[row * nbCols + col] = newMatrix[ri * nbColInNew + ci];
412
+ }
413
+ }
414
+ return {
415
+ matrix,
416
+ statusCode: node_opcua_status_code_1.StatusCodes.Good
417
+ };
418
+ }
419
+ set_values(arrayToAlter, newValues) {
420
+ assert_array_or_buffer(arrayToAlter);
421
+ assert_array_or_buffer(newValues);
422
+ const self = this;
423
+ let low_index;
424
+ let high_index;
425
+ switch (self.type) {
426
+ case NumericRangeType.Empty:
427
+ low_index = 0;
428
+ high_index = arrayToAlter.length - 1;
429
+ break;
430
+ case NumericRangeType.SingleValue:
431
+ low_index = self.value;
432
+ high_index = self.value;
433
+ break;
434
+ case NumericRangeType.ArrayRange:
435
+ low_index = self.value[0];
436
+ high_index = self.value[1];
437
+ break;
438
+ case NumericRangeType.MatrixRange:
439
+ // for the time being MatrixRange is not supported
440
+ return { array: arrayToAlter, statusCode: node_opcua_status_code_1.StatusCodes.BadIndexRangeNoData };
441
+ default:
442
+ return { array: null, statusCode: node_opcua_status_code_1.StatusCodes.BadIndexRangeInvalid };
443
+ }
444
+ if (high_index >= arrayToAlter.length || low_index >= arrayToAlter.length) {
445
+ return { array: null, statusCode: node_opcua_status_code_1.StatusCodes.BadIndexRangeNoData };
446
+ }
447
+ if (this.type !== NumericRangeType.Empty && newValues.length !== high_index - low_index + 1) {
448
+ return { array: null, statusCode: node_opcua_status_code_1.StatusCodes.BadIndexRangeInvalid };
449
+ }
450
+ const insertInPlace = Array.isArray(arrayToAlter)
451
+ ? insertInPlaceStandardArray
452
+ : arrayToAlter instanceof Buffer
453
+ ? insertInPlaceBuffer
454
+ : insertInPlaceTypedArray;
455
+ return {
456
+ array: insertInPlace(arrayToAlter, low_index, high_index, newValues),
457
+ statusCode: node_opcua_status_code_1.StatusCodes.Good
458
+ };
459
+ }
460
+ }
461
+ NumericRange.coerce = coerceNumericRange;
462
+ NumericRange.schema = exports.schemaNumericRange;
463
+ // tslint:disable:variable-name
464
+ NumericRange.NumericRangeType = NumericRangeType;
465
+ NumericRange.empty = new NumericRange();
466
+ exports.NumericRange = NumericRange;
467
+ function slice(arr, start, end) {
468
+ if (start === 0 && end === arr.length) {
469
+ return arr;
470
+ }
471
+ let res;
472
+ if (arr.buffer instanceof ArrayBuffer) {
473
+ res = arr.subarray(start, end);
474
+ }
475
+ else if (arr instanceof Buffer) {
476
+ res = arr.subarray(start, end);
477
+ }
478
+ else {
479
+ (0, node_opcua_assert_1.assert)(typeof arr.slice === "function");
480
+ (0, node_opcua_assert_1.assert)(arr instanceof Buffer || arr instanceof Array || typeof arr === "string");
481
+ res = arr.slice(start, end);
482
+ }
483
+ if (res instanceof Uint8Array && arr instanceof Buffer) {
484
+ // note in io-js 3.00 onward standard Buffer are implemented differently and
485
+ // provides a buffer member and a subarray method, in fact in io-js 3.0
486
+ // it seems that Buffer acts as a Uint8Array. in this very special case
487
+ // we need to make sure that we end up with a Buffer object and not a Uint8Array.
488
+ res = Buffer.from(res);
489
+ }
490
+ return res;
491
+ }
492
+ function extract_empty(array, dimensions) {
493
+ return {
494
+ array: slice(array, 0, array.length),
495
+ dimensions,
496
+ statusCode: node_opcua_status_code_1.StatusCodes.Good
497
+ };
498
+ }
499
+ function extract_single_value(array, index) {
500
+ if (index >= array.length) {
501
+ if (typeof array === "string") {
502
+ return { array: "", statusCode: node_opcua_status_code_1.StatusCodes.BadIndexRangeNoData };
503
+ }
504
+ return { array: null, statusCode: node_opcua_status_code_1.StatusCodes.BadIndexRangeNoData };
505
+ }
506
+ return {
507
+ array: slice(array, index, index + 1),
508
+ statusCode: node_opcua_status_code_1.StatusCodes.Good
509
+ };
510
+ }
511
+ function extract_array_range(array, low_index, high_index) {
512
+ (0, node_opcua_assert_1.assert)(isFinite(low_index) && isFinite(high_index));
513
+ (0, node_opcua_assert_1.assert)(low_index >= 0);
514
+ (0, node_opcua_assert_1.assert)(low_index <= high_index);
515
+ if (low_index >= array.length) {
516
+ if (typeof array === "string") {
517
+ return { array: "", statusCode: node_opcua_status_code_1.StatusCodes.BadIndexRangeNoData };
518
+ }
519
+ return { array: null, statusCode: node_opcua_status_code_1.StatusCodes.BadIndexRangeNoData };
520
+ }
521
+ // clamp high index
522
+ high_index = Math.min(high_index, array.length - 1);
523
+ return {
524
+ array: slice(array, low_index, high_index + 1),
525
+ statusCode: node_opcua_status_code_1.StatusCodes.Good
526
+ };
527
+ }
528
+ function isArrayLike(value) {
529
+ return typeof value.length === "number" || Object.prototype.hasOwnProperty.call(value, "length");
530
+ }
531
+ function extract_matrix_range(array, rowRange, colRange, dimension) {
532
+ (0, node_opcua_assert_1.assert)(Array.isArray(rowRange) && Array.isArray(colRange));
533
+ if (array.length === 0) {
534
+ return {
535
+ array: null,
536
+ statusCode: node_opcua_status_code_1.StatusCodes.BadIndexRangeNoData
537
+ };
538
+ }
539
+ if (isArrayLike(array[0]) && !dimension) {
540
+ // like extracting data from a one dimensional array of strings or byteStrings...
541
+ const result = extract_array_range(array, rowRange[0], rowRange[1]);
542
+ for (let i = 0; i < result.array.length; i++) {
543
+ const e = result.array[i];
544
+ result.array[i] = extract_array_range(e, colRange[0], colRange[1]).array;
545
+ }
546
+ return result;
547
+ }
548
+ if (!dimension) {
549
+ return {
550
+ array: null,
551
+ statusCode: node_opcua_status_code_1.StatusCodes.BadIndexRangeNoData
552
+ };
553
+ }
554
+ (0, node_opcua_assert_1.assert)(dimension, "expecting dimension to know the shape of the matrix represented by the flat array");
555
+ //
556
+ const rowLow = rowRange[0];
557
+ const rowHigh = rowRange[1];
558
+ const colLow = colRange[0];
559
+ const colHigh = colRange[1];
560
+ const nbRow = dimension[0];
561
+ const nbCol = dimension[1];
562
+ const nbRowDest = rowHigh - rowLow + 1;
563
+ const nbColDest = colHigh - colLow + 1;
564
+ // construct an array of the same type with the appropriate length to
565
+ // store the extracted matrix.
566
+ const tmp = new array.constructor(nbColDest * nbRowDest);
567
+ let row;
568
+ let col;
569
+ let r;
570
+ let c;
571
+ r = 0;
572
+ for (row = rowLow; row <= rowHigh; row++) {
573
+ c = 0;
574
+ for (col = colLow; col <= colHigh; col++) {
575
+ const srcIndex = row * nbCol + col;
576
+ const destIndex = r * nbColDest + c;
577
+ tmp[destIndex] = array[srcIndex];
578
+ c++;
579
+ }
580
+ r += 1;
581
+ }
582
+ return {
583
+ array: tmp,
584
+ dimensions: [nbRowDest, nbColDest],
585
+ statusCode: node_opcua_status_code_1.StatusCodes.Good
586
+ };
587
+ }
588
+ function assert_array_or_buffer(array) {
589
+ (0, node_opcua_assert_1.assert)(Array.isArray(array) || array.buffer instanceof ArrayBuffer || array instanceof Buffer);
590
+ }
591
+ function insertInPlaceStandardArray(arrayToAlter, low, high, newValues) {
592
+ const args = [low, high - low + 1].concat(newValues);
593
+ arrayToAlter.splice(...args);
594
+ return arrayToAlter;
595
+ }
596
+ function insertInPlaceTypedArray(arrayToAlter, low, high, newValues) {
597
+ if (low === 0 && high === arrayToAlter.length - 1) {
598
+ return new arrayToAlter.constructor(newValues);
599
+ }
600
+ (0, node_opcua_assert_1.assert)(newValues.length === high - low + 1);
601
+ arrayToAlter.subarray(low, high + 1).set(newValues);
602
+ return arrayToAlter;
603
+ }
604
+ function insertInPlaceBuffer(bufferToAlter, low, high, newValues) {
605
+ // insertInPlaceBuffer with buffer is not really possible as existing Buffer cannot be resized
606
+ if (!(bufferToAlter instanceof Buffer))
607
+ throw new Error("expecting a buffer");
608
+ if (low === 0 && high === bufferToAlter.length - 1) {
609
+ bufferToAlter = Buffer.from(newValues);
610
+ return bufferToAlter;
611
+ }
612
+ (0, node_opcua_assert_1.assert)(newValues.length === high - low + 1);
613
+ for (let i = 0; i < newValues.length; i++) {
614
+ bufferToAlter[i + low] = newValues[i];
615
+ }
616
+ return bufferToAlter;
617
+ }
618
+ function _overlap(l1, h1, l2, h2) {
619
+ return Math.max(l1, l2) <= Math.min(h1, h2);
620
+ }
621
+ function encodeNumericRange(numericRange, stream) {
622
+ (0, node_opcua_assert_1.assert)(numericRange instanceof NumericRange);
623
+ (0, node_opcua_basic_types_1.encodeString)(numericRange.toEncodeableString(), stream);
624
+ }
625
+ exports.encodeNumericRange = encodeNumericRange;
626
+ function decodeNumericRange(stream, _value) {
627
+ const str = (0, node_opcua_basic_types_1.decodeString)(stream);
628
+ return new NumericRange(str);
629
+ }
630
+ exports.decodeNumericRange = decodeNumericRange;
631
+ function coerceNumericRange(value) {
632
+ if (value instanceof NumericRange) {
633
+ return value;
634
+ }
635
+ if (value === null || value === undefined) {
636
+ return new NumericRange();
637
+ }
638
+ if (value === NUMERIC_RANGE_EMPTY_STRING) {
639
+ return new NumericRange();
640
+ }
641
+ (0, node_opcua_assert_1.assert)(typeof value === "string" || Array.isArray(value));
642
+ return new NumericRange(value);
643
+ }
644
+ //# sourceMappingURL=numeric_range.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numeric_range.js","sourceRoot":"","sources":["../source/numeric_range.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "node-opcua-numeric-range",
3
- "version": "2.98.0",
4
- "description": "pure nodejs OPCUA SDK - module -numeric-range",
3
+ "version": "2.98.1",
4
+ "description": "pure nodejs OPCUA SDK - module numeric-range",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "scripts": {
@@ -14,15 +14,15 @@
14
14
  "author": "Etienne Rossignon",
15
15
  "license": "MIT",
16
16
  "dependencies": {
17
- "node-opcua-assert": "2.88.0",
18
- "node-opcua-basic-types": "2.98.0",
19
- "node-opcua-binary-stream": "2.98.0",
20
- "node-opcua-factory": "2.98.0",
21
- "node-opcua-status-code": "2.98.0"
17
+ "node-opcua-assert": "2.98.1",
18
+ "node-opcua-basic-types": "2.98.1",
19
+ "node-opcua-binary-stream": "2.98.1",
20
+ "node-opcua-factory": "2.98.1",
21
+ "node-opcua-status-code": "2.98.1"
22
22
  },
23
23
  "devDependencies": {
24
- "node-opcua-packet-analyzer": "2.98.0",
25
- "node-opcua-test-helpers": "2.88.0",
24
+ "node-opcua-packet-analyzer": "2.98.1",
25
+ "node-opcua-test-helpers": "2.98.1",
26
26
  "should": "^13.2.3"
27
27
  },
28
28
  "repository": {
@@ -38,5 +38,9 @@
38
38
  "internet of things"
39
39
  ],
40
40
  "homepage": "http://node-opcua.github.io/",
41
- "gitHead": "07dcdd8e8c7f2b55544c6e23023093e35674829c"
41
+ "gitHead": "07dcdd8e8c7f2b55544c6e23023093e35674829c",
42
+ "files": [
43
+ "dist",
44
+ "source"
45
+ ]
42
46
  }