node-opcua-address-space-for-conformance-testing 2.167.0 → 2.169.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.
Files changed (61) hide show
  1. package/dist/address_space_for_conformance_testing.d.ts +6 -2
  2. package/dist/address_space_for_conformance_testing.js +27 -1306
  3. package/dist/address_space_for_conformance_testing.js.map +1 -1
  4. package/dist/conformance_testing/access_right_variables.d.ts +5 -0
  5. package/dist/conformance_testing/access_right_variables.js +45 -0
  6. package/dist/conformance_testing/access_right_variables.js.map +1 -0
  7. package/dist/conformance_testing/analog_data_items.d.ts +5 -0
  8. package/dist/conformance_testing/analog_data_items.js +117 -0
  9. package/dist/conformance_testing/analog_data_items.js.map +1 -0
  10. package/dist/conformance_testing/discrete_variables.d.ts +4 -0
  11. package/dist/conformance_testing/discrete_variables.js +111 -0
  12. package/dist/conformance_testing/discrete_variables.js.map +1 -0
  13. package/dist/conformance_testing/enumeration_variable.d.ts +5 -0
  14. package/dist/conformance_testing/enumeration_variable.js +24 -0
  15. package/dist/conformance_testing/enumeration_variable.js.map +1 -0
  16. package/dist/conformance_testing/helpers.d.ts +13 -0
  17. package/dist/conformance_testing/helpers.js +204 -0
  18. package/dist/conformance_testing/helpers.js.map +1 -0
  19. package/dist/conformance_testing/mass_variables.d.ts +5 -0
  20. package/dist/conformance_testing/mass_variables.js +31 -0
  21. package/dist/conformance_testing/mass_variables.js.map +1 -0
  22. package/dist/conformance_testing/node_with_references.d.ts +5 -0
  23. package/dist/conformance_testing/node_with_references.js +119 -0
  24. package/dist/conformance_testing/node_with_references.js.map +1 -0
  25. package/dist/conformance_testing/object_with_methods.d.ts +5 -0
  26. package/dist/conformance_testing/object_with_methods.js +85 -0
  27. package/dist/conformance_testing/object_with_methods.js.map +1 -0
  28. package/dist/conformance_testing/path_and_large_arrays.d.ts +6 -0
  29. package/dist/conformance_testing/path_and_large_arrays.js +33 -0
  30. package/dist/conformance_testing/path_and_large_arrays.js.map +1 -0
  31. package/dist/conformance_testing/sample_view.d.ts +5 -0
  32. package/dist/conformance_testing/sample_view.js +25 -0
  33. package/dist/conformance_testing/sample_view.js.map +1 -0
  34. package/dist/conformance_testing/simulation_variables.d.ts +5 -0
  35. package/dist/conformance_testing/simulation_variables.js +113 -0
  36. package/dist/conformance_testing/simulation_variables.js.map +1 -0
  37. package/dist/conformance_testing/static_variables.d.ts +2 -0
  38. package/dist/conformance_testing/static_variables.js +70 -0
  39. package/dist/conformance_testing/static_variables.js.map +1 -0
  40. package/dist/conformance_testing/trigger_nodes.d.ts +5 -0
  41. package/dist/conformance_testing/trigger_nodes.js +41 -0
  42. package/dist/conformance_testing/trigger_nodes.js.map +1 -0
  43. package/dist/conformance_testing/type_defaults.d.ts +54 -0
  44. package/dist/conformance_testing/type_defaults.js +96 -0
  45. package/dist/conformance_testing/type_defaults.js.map +1 -0
  46. package/package.json +12 -12
  47. package/src/address_space_for_conformance_testing.ts +34 -1494
  48. package/src/conformance_testing/access_right_variables.ts +55 -0
  49. package/src/conformance_testing/analog_data_items.ts +136 -0
  50. package/src/conformance_testing/discrete_variables.ts +131 -0
  51. package/src/conformance_testing/enumeration_variable.ts +27 -0
  52. package/src/conformance_testing/helpers.ts +226 -0
  53. package/src/conformance_testing/mass_variables.ts +42 -0
  54. package/src/conformance_testing/node_with_references.ts +130 -0
  55. package/src/conformance_testing/object_with_methods.ts +93 -0
  56. package/src/conformance_testing/path_and_large_arrays.ts +35 -0
  57. package/src/conformance_testing/sample_view.ts +28 -0
  58. package/src/conformance_testing/simulation_variables.ts +129 -0
  59. package/src/conformance_testing/static_variables.ts +71 -0
  60. package/src/conformance_testing/trigger_nodes.ts +49 -0
  61. package/src/conformance_testing/type_defaults.ts +60 -0
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addSimulationVariables = addSimulationVariables;
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_variant_1 = require("node-opcua-variant");
7
+ const helpers_1 = require("./helpers");
8
+ const type_defaults_1 = require("./type_defaults");
9
+ function addSimulationVariables(namespace, scalarFolder) {
10
+ let values_to_change = [];
11
+ function add_simulation_variable(parent, dataTypeName, defaultValue, realTypeName) {
12
+ realTypeName = realTypeName || dataTypeName;
13
+ const dataType = (0, helpers_1.findDataType)(realTypeName);
14
+ const randomFunc = (0, helpers_1.getRandomFuncForType)(dataType);
15
+ // c8 ignore next
16
+ if (typeof randomFunc !== "function") {
17
+ throw new Error(`a random function must exist for basicType ${dataTypeName}`);
18
+ }
19
+ const variable = (0, helpers_1.addVariable)(namespace, parent, dataTypeName, realTypeName, defaultValue, -1, null, "");
20
+ values_to_change.push({ dataType, randomFunc, variable });
21
+ return variable;
22
+ }
23
+ const simulation = namespace.addObject({
24
+ browseName: "Scalar_Simulation",
25
+ description: "This folder will contain one item per supported data-type.",
26
+ nodeId: "s=Scalar_Simulation",
27
+ organizedBy: scalarFolder
28
+ });
29
+ for (const e of type_defaults_1.typeAndDefaultValue) {
30
+ const dataType = e.type;
31
+ const defaultValue = typeof e.defaultValue === "function" ? e.defaultValue() : e.defaultValue;
32
+ const realType = e.realType || dataType;
33
+ add_simulation_variable(simulation, dataType, defaultValue, realType);
34
+ }
35
+ // Management nodes
36
+ let interval = 2000;
37
+ let enabled = true;
38
+ let timer;
39
+ function change_randomly() {
40
+ for (const element of values_to_change) {
41
+ const variant = element.variable._backdoor_placeholder.variant;
42
+ variant.value = element.randomFunc();
43
+ element.variable.setValueFromSource(variant);
44
+ }
45
+ }
46
+ function delete_Timer() {
47
+ if (timer) {
48
+ try {
49
+ clearInterval(timer);
50
+ }
51
+ catch (_err) {
52
+ /* c8 ignore next */
53
+ // the leak detector may throw if the timer handle is already disposed
54
+ }
55
+ timer = undefined;
56
+ }
57
+ }
58
+ function install_Timer() {
59
+ delete_Timer();
60
+ (0, node_opcua_assert_1.assert)(!timer);
61
+ if (enabled) {
62
+ timer = setInterval(() => {
63
+ change_randomly();
64
+ }, interval);
65
+ }
66
+ }
67
+ function tearDown_Timer() {
68
+ delete_Timer();
69
+ values_to_change = [];
70
+ }
71
+ const intervalVariable = namespace.addVariable({
72
+ browseName: "Interval",
73
+ componentOf: simulation,
74
+ dataType: "UInt16",
75
+ description: { locale: "en", text: "The rate (in msec) of change for all Simulated items." },
76
+ nodeId: "s=Scalar_Simulation_Interval",
77
+ value: new node_opcua_variant_1.Variant({
78
+ arrayType: node_opcua_variant_1.VariantArrayType.Scalar,
79
+ dataType: node_opcua_variant_1.DataType.UInt16,
80
+ value: interval
81
+ })
82
+ });
83
+ intervalVariable.on("value_changed", (dataValue /*,indexRange*/) => {
84
+ const variant = dataValue.value;
85
+ (0, node_opcua_assert_1.assert)(variant instanceof node_opcua_variant_1.Variant);
86
+ (0, node_opcua_assert_1.assert)((0, node_opcua_basic_types_1.isValidUInt16)(variant.value), " value must be valid for dataType");
87
+ interval = variant.value;
88
+ install_Timer();
89
+ });
90
+ const enabledVariable = namespace.addVariable({
91
+ componentOf: simulation,
92
+ browseName: "Enabled",
93
+ description: { locale: "en", text: "Enabled" },
94
+ nodeId: "s=Scalar_Simulation_Enabled",
95
+ dataType: "Boolean",
96
+ value: new node_opcua_variant_1.Variant({
97
+ dataType: node_opcua_variant_1.DataType.Boolean,
98
+ arrayType: node_opcua_variant_1.VariantArrayType.Scalar,
99
+ value: enabled
100
+ })
101
+ });
102
+ enabledVariable.on("value_changed", (dataValue /*,indexRange*/) => {
103
+ const variant = dataValue.value;
104
+ (0, node_opcua_assert_1.assert)(variant instanceof node_opcua_variant_1.Variant);
105
+ (0, node_opcua_assert_1.assert)((0, node_opcua_basic_types_1.isValidBoolean)(variant.value), " value must be valid for dataType");
106
+ enabled = variant.value;
107
+ install_Timer();
108
+ });
109
+ install_Timer();
110
+ const addressSpace = namespace.addressSpace;
111
+ addressSpace.registerShutdownTask(tearDown_Timer);
112
+ }
113
+ //# sourceMappingURL=simulation_variables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulation_variables.js","sourceRoot":"","sources":["../../src/conformance_testing/simulation_variables.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { Namespace, UAObject } from "node-opcua-address-space";
2
+ export declare function addStaticVariables(namespace: Namespace, scalarFolder: UAObject): Promise<void>;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.addStaticVariables = addStaticVariables;
7
+ /**
8
+ * Static scalar, array, and multi-dimensional array variables + image loading.
9
+ */
10
+ const node_fs_1 = __importDefault(require("node:fs"));
11
+ const node_path_1 = __importDefault(require("node:path"));
12
+ const node_opcua_debug_1 = require("node-opcua-debug");
13
+ const node_opcua_variant_1 = require("node-opcua-variant");
14
+ const helpers_1 = require("./helpers");
15
+ const type_defaults_1 = require("./type_defaults");
16
+ const errorLog = (0, node_opcua_debug_1.make_errorLog)(__filename);
17
+ async function addStaticVariables(namespace, scalarFolder) {
18
+ const staticScalarFolder = namespace.addObject({
19
+ organizedBy: scalarFolder,
20
+ browseName: "Scalars",
21
+ description: "This folder will contain one item per supported data-type.",
22
+ nodeId: "s=Static_Scalar"
23
+ });
24
+ // Scalar variables
25
+ for (const e of type_defaults_1.typeAndDefaultValue) {
26
+ const dataType = e.type;
27
+ const realType = e.realType || dataType;
28
+ const defaultValue = typeof e.defaultValue === "function" ? e.defaultValue() : e.defaultValue;
29
+ (0, helpers_1.addScalarVariable)(namespace, staticScalarFolder, dataType, realType, defaultValue, "");
30
+ }
31
+ // Load images
32
+ async function setImage(imageType, filename) {
33
+ const fullPath = node_path_1.default.join(__dirname, "../../data", filename);
34
+ const imageNode = namespace.findNode(`s=Static_Scalar_Image${imageType}`);
35
+ try {
36
+ const data = await node_fs_1.default.promises.readFile(fullPath);
37
+ imageNode.setValueFromSource(new node_opcua_variant_1.Variant({ dataType: node_opcua_variant_1.DataType.ByteString, value: data }));
38
+ }
39
+ catch (_err) {
40
+ errorLog("cannot load file =", fullPath);
41
+ }
42
+ }
43
+ await setImage("BMP", "image.bmp");
44
+ await setImage("PNG", "tux.png");
45
+ await setImage("GIF", "gif-anime.gif");
46
+ await setImage("JPG", "tiger.jpg");
47
+ // Array variables
48
+ const staticArraysFolders = namespace.addObject({
49
+ organizedBy: scalarFolder,
50
+ browseName: "Arrays",
51
+ description: "Single dimension, suggested size of 10-elements per array. Unsupported types will be missing from the address-space.",
52
+ nodeId: "s=Static_Array"
53
+ });
54
+ for (const e of type_defaults_1.typeAndDefaultValue) {
55
+ const realType = e.realType || e.type;
56
+ (0, helpers_1.addArrayVariable)(namespace, staticArraysFolders, e.type, e.defaultValue, realType, 10, "");
57
+ }
58
+ // Multi-dimensional array variables
59
+ const staticMultiDimensionalArrays = namespace.addObject({
60
+ organizedBy: scalarFolder,
61
+ browseName: "Multi-Dimensional Arrays",
62
+ description: "Single dimension, suggested size of 10-elements per array. Unsupported types will be missing from the address-space.",
63
+ nodeId: "s=Static_MultiDimensional_Array"
64
+ });
65
+ for (const e of type_defaults_1.typeAndDefaultValue) {
66
+ const realType = e.realType || e.type;
67
+ (0, helpers_1.addMultiDimensionalArrayVariable)(namespace, staticMultiDimensionalArrays, e.type, e.defaultValue, realType, 2, 3, "");
68
+ }
69
+ }
70
+ //# sourceMappingURL=static_variables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static_variables.js","sourceRoot":"","sources":["../../src/conformance_testing/static_variables.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Trigger nodes that raise events on write.
3
+ */
4
+ import type { Namespace, UAObject } from "node-opcua-address-space";
5
+ export declare function addTriggerNodes(namespace: Namespace, parentFolder: UAObject): void;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addTriggerNodes = addTriggerNodes;
4
+ const node_opcua_nodeid_1 = require("node-opcua-nodeid");
5
+ const node_opcua_variant_1 = require("node-opcua-variant");
6
+ function addTriggerNodes(namespace, parentFolder) {
7
+ const addressSpace = namespace.addressSpace;
8
+ const myEvtType = namespace.findObjectType("MyEventType") ||
9
+ namespace.addEventType({
10
+ browseName: "MyEventType",
11
+ subtypeOf: "BaseEventType"
12
+ });
13
+ function _add_trigger_node(parent, browseName, nodeId) {
14
+ const triggerNode = namespace.addVariable({
15
+ browseName,
16
+ nodeId,
17
+ eventSourceOf: parent,
18
+ dataType: "Double",
19
+ typeDefinition: (0, node_opcua_nodeid_1.makeNodeId)(68)
20
+ });
21
+ let value = 100.0;
22
+ const getFunc = () => new node_opcua_variant_1.Variant({ dataType: node_opcua_variant_1.DataType.Double, value });
23
+ const setFunc = (variant) => {
24
+ value = variant.value;
25
+ const server = addressSpace.rootFolder.objects.server;
26
+ server.raiseEvent(myEvtType, {
27
+ message: { dataType: node_opcua_variant_1.DataType.LocalizedText, value: { text: "Hello World" } },
28
+ severity: { dataType: node_opcua_variant_1.DataType.UInt32, value: 32 }
29
+ });
30
+ };
31
+ triggerNode.bindVariable({ get: getFunc, set: setFunc });
32
+ }
33
+ const sampleTriggerNode = namespace.addObject({
34
+ browseName: "SampleTriggerNode",
35
+ eventNotifier: 0x1,
36
+ organizedBy: parentFolder
37
+ });
38
+ _add_trigger_node(sampleTriggerNode, "TriggerNode01", "s=TriggerNode01");
39
+ _add_trigger_node(sampleTriggerNode, "TriggerNode02", "s=TriggerNode02");
40
+ }
41
+ //# sourceMappingURL=trigger_nodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger_nodes.js","sourceRoot":"","sources":["../../src/conformance_testing/trigger_nodes.ts"],"names":[],"mappings":";;AAQA,0CAwCC;AA3CD,yDAA+C;AAC/C,2DAAuD;AAEvD,SAAgB,eAAe,CAAC,SAAoB,EAAE,YAAsB;IACxE,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;IAE5C,MAAM,SAAS,GACX,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC;QACvC,SAAS,CAAC,YAAY,CAAC;YACnB,UAAU,EAAE,aAAa;YACzB,SAAS,EAAE,eAAe;SAC7B,CAAC,CAAC;IAEP,SAAS,iBAAiB,CAAC,MAAgB,EAAE,UAAkB,EAAE,MAAkB;QAC/E,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;YACtC,UAAU;YACV,MAAM;YACN,aAAa,EAAE,MAAM;YACrB,QAAQ,EAAE,QAAQ;YAClB,cAAc,EAAE,IAAA,8BAAU,EAAC,EAAE,CAAC;SACjC,CAAC,CAAC;QAEH,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,4BAAO,CAAC,EAAE,QAAQ,EAAE,6BAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAE,EAAE;YACjC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YACtB,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC;YACtD,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE;gBACzB,OAAO,EAAE,EAAE,QAAQ,EAAE,6BAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE;gBAC7E,QAAQ,EAAE,EAAE,QAAQ,EAAE,6BAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;aACrD,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,WAAW,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,iBAAiB,GAAG,SAAS,CAAC,SAAS,CAAC;QAC1C,UAAU,EAAE,mBAAmB;QAC/B,aAAa,EAAE,GAAG;QAClB,WAAW,EAAE,YAAY;KAC5B,CAAC,CAAC;IACH,iBAAiB,CAAC,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC;IACzE,iBAAiB,CAAC,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC;AAC7E,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { LocalizedText, QualifiedName } from "node-opcua-data-model";
2
+ export declare const typeAndDefaultValue: ({
3
+ type: string;
4
+ defaultValue: boolean;
5
+ realType?: undefined;
6
+ } | {
7
+ type: string;
8
+ defaultValue: Buffer<ArrayBuffer>;
9
+ realType?: undefined;
10
+ } | {
11
+ type: string;
12
+ defaultValue: Date;
13
+ realType?: undefined;
14
+ } | {
15
+ type: string;
16
+ defaultValue: number;
17
+ realType?: undefined;
18
+ } | {
19
+ type: string;
20
+ defaultValue: string;
21
+ realType?: undefined;
22
+ } | {
23
+ type: string;
24
+ defaultValue(): import("node-opcua-nodeid").NodeId;
25
+ realType?: undefined;
26
+ } | {
27
+ type: string;
28
+ realType: string;
29
+ defaultValue: number;
30
+ } | {
31
+ type: string;
32
+ realType: string;
33
+ defaultValue(): Date;
34
+ } | {
35
+ type: string;
36
+ realType: string;
37
+ defaultValue: string;
38
+ } | {
39
+ type: string;
40
+ defaultValue(): LocalizedText;
41
+ realType?: undefined;
42
+ } | {
43
+ type: string;
44
+ defaultValue(): QualifiedName;
45
+ realType?: undefined;
46
+ } | {
47
+ type: string;
48
+ defaultValue: number[];
49
+ realType?: undefined;
50
+ } | {
51
+ type: string;
52
+ realType: string;
53
+ defaultValue: null;
54
+ })[];
@@ -0,0 +1,96 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.typeAndDefaultValue = void 0;
37
+ /**
38
+ * Default type/value table shared by static, simulation, mass, and large array builders.
39
+ */
40
+ const node_opcua_basic_types_1 = require("node-opcua-basic-types");
41
+ const ec = __importStar(require("node-opcua-basic-types"));
42
+ const node_opcua_data_model_1 = require("node-opcua-data-model");
43
+ const node_opcua_nodeid_1 = require("node-opcua-nodeid");
44
+ exports.typeAndDefaultValue = [
45
+ { type: "Boolean", defaultValue: false },
46
+ { type: "ByteString", defaultValue: Buffer.from("OPCUA") },
47
+ { type: "DateTime", defaultValue: ec.getMinOPCUADate() },
48
+ { type: "Double", defaultValue: 0.0 },
49
+ { type: "Float", defaultValue: 0.0 },
50
+ { type: "Guid", defaultValue: node_opcua_basic_types_1.emptyGuid },
51
+ { type: "SByte", defaultValue: 0 },
52
+ { type: "Int16", defaultValue: 0 },
53
+ { type: "Int32", defaultValue: 0 },
54
+ {
55
+ type: "NodeId",
56
+ defaultValue() {
57
+ return (0, node_opcua_nodeid_1.coerceNodeId)(`ns=${3};g=00000000-0000-0000-0000-000000000023`);
58
+ }
59
+ },
60
+ { type: "String", defaultValue: "OPCUA" },
61
+ { type: "Byte", defaultValue: 0 },
62
+ { type: "UInt16", defaultValue: 0 },
63
+ { type: "UInt32", defaultValue: 0 },
64
+ { type: "Duration", realType: "Double", defaultValue: 0.0 },
65
+ { type: "Number", realType: "UInt16", defaultValue: 0 }, // Number is abstract
66
+ { type: "Integer", realType: "Int64", defaultValue: 0 }, // because Integer is abstract, we choose Int64
67
+ { type: "UInteger", realType: "UInt64", defaultValue: 0 },
68
+ {
69
+ type: "UtcTime",
70
+ realType: "DateTime",
71
+ defaultValue() {
72
+ return new Date();
73
+ }
74
+ },
75
+ { type: "LocaleId", realType: "String", defaultValue: "" },
76
+ {
77
+ type: "LocalizedText",
78
+ defaultValue() {
79
+ return new node_opcua_data_model_1.LocalizedText({});
80
+ }
81
+ },
82
+ {
83
+ type: "QualifiedName",
84
+ defaultValue() {
85
+ return new node_opcua_data_model_1.QualifiedName();
86
+ }
87
+ },
88
+ { type: "UInt64", defaultValue: [0, 0] },
89
+ { type: "Int64", defaultValue: [0, 0] },
90
+ { type: "XmlElement", defaultValue: "<string1>OPCUA</string1>" },
91
+ { type: "ImageBMP", realType: "ByteString", defaultValue: null },
92
+ { type: "ImageGIF", realType: "ByteString", defaultValue: null },
93
+ { type: "ImageJPG", realType: "ByteString", defaultValue: null },
94
+ { type: "ImagePNG", realType: "ByteString", defaultValue: null }
95
+ ];
96
+ //# sourceMappingURL=type_defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type_defaults.js","sourceRoot":"","sources":["../../src/conformance_testing/type_defaults.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-opcua-address-space-for-conformance-testing",
3
- "version": "2.167.0",
3
+ "version": "2.169.0",
4
4
  "description": "pure nodejs OPCUA SDK - module address-space-for-conformance-testing",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -12,17 +12,17 @@
12
12
  "clean": "npx rimraf -g node_modules dist *.tsbuildinfo"
13
13
  },
14
14
  "dependencies": {
15
- "node-opcua-address-space": "2.167.0",
15
+ "node-opcua-address-space": "2.169.0",
16
16
  "node-opcua-assert": "2.164.0",
17
- "node-opcua-basic-types": "2.167.0",
18
- "node-opcua-data-access": "2.167.0",
19
- "node-opcua-data-model": "2.167.0",
20
- "node-opcua-data-value": "2.167.0",
21
- "node-opcua-debug": "2.165.0",
22
- "node-opcua-factory": "2.167.0",
23
- "node-opcua-nodeid": "2.167.0",
24
- "node-opcua-status-code": "2.167.0",
25
- "node-opcua-variant": "2.167.0"
17
+ "node-opcua-basic-types": "2.169.0",
18
+ "node-opcua-data-access": "2.169.0",
19
+ "node-opcua-data-model": "2.169.0",
20
+ "node-opcua-data-value": "2.169.0",
21
+ "node-opcua-debug": "2.168.0",
22
+ "node-opcua-factory": "2.169.0",
23
+ "node-opcua-nodeid": "2.169.0",
24
+ "node-opcua-status-code": "2.169.0",
25
+ "node-opcua-variant": "2.169.0"
26
26
  },
27
27
  "author": "Etienne Rossignon",
28
28
  "license": "MIT",
@@ -39,7 +39,7 @@
39
39
  "internet of things"
40
40
  ],
41
41
  "homepage": "http://node-opcua.github.io/",
42
- "gitHead": "5decfa86ee53a36ecd3bb454e7bf6e3dd27c7a4e",
42
+ "gitHead": "82d570d3e95bea689cbbe30096279885c5282245",
43
43
  "files": [
44
44
  "data",
45
45
  "dist",