node-opcua-client-dynamic-extension-object 2.178.0 → 2.180.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/dist/convert_data_type_definition_to_structuretype_schema.d.ts +8 -11
- package/dist/convert_data_type_definition_to_structuretype_schema.js +81 -48
- package/dist/convert_data_type_definition_to_structuretype_schema.js.map +1 -1
- package/dist/convert_structuretype_schema_to_structure_definition.d.ts +1 -1
- package/dist/convert_structuretype_schema_to_structure_definition.js +5 -3
- package/dist/convert_structuretype_schema_to_structure_definition.js.map +1 -1
- package/dist/extra_data_type_manager.d.ts +4 -5
- package/dist/extra_data_type_manager.js +15 -16
- package/dist/extra_data_type_manager.js.map +1 -1
- package/dist/get_extension_object_constructor.d.ts +3 -3
- package/dist/get_extension_object_constructor.js +3 -0
- package/dist/get_extension_object_constructor.js.map +1 -1
- package/dist/get_extra_data_type_manager.d.ts +2 -2
- package/dist/get_extra_data_type_manager.js +8 -8
- package/dist/get_extra_data_type_manager.js.map +1 -1
- package/dist/index.d.ts +5 -6
- package/dist/index.js +20 -21
- package/dist/index.js.map +1 -1
- package/dist/populate_data_type_manager.d.ts +2 -2
- package/dist/populate_data_type_manager.js +10 -10
- package/dist/populate_data_type_manager.js.map +1 -1
- package/dist/private/find_encodings.d.ts +2 -2
- package/dist/private/find_encodings.js.map +1 -1
- package/dist/private/populate_data_type_manager_103.d.ts +4 -4
- package/dist/private/populate_data_type_manager_103.js +97 -53
- package/dist/private/populate_data_type_manager_103.js.map +1 -1
- package/dist/private/populate_data_type_manager_104.d.ts +18 -4
- package/dist/private/populate_data_type_manager_104.js +48 -17
- package/dist/private/populate_data_type_manager_104.js.map +1 -1
- package/dist/promote_opaque_structure.d.ts +2 -2
- package/dist/promote_opaque_structure.js.map +1 -1
- package/dist/promote_opaque_structure_in_notification_data.d.ts +2 -2
- package/dist/promote_opaque_structure_in_notification_data.js +0 -2
- package/dist/promote_opaque_structure_in_notification_data.js.map +1 -1
- package/dist/resolve_dynamic_extension_object.d.ts +4 -4
- package/dist/resolve_dynamic_extension_object.js +15 -12
- package/dist/resolve_dynamic_extension_object.js.map +1 -1
- package/package.json +18 -18
- package/source/convert_data_type_definition_to_structuretype_schema.ts +146 -123
- package/source/convert_structuretype_schema_to_structure_definition.ts +9 -9
- package/source/extra_data_type_manager.ts +24 -22
- package/source/get_extension_object_constructor.ts +12 -7
- package/source/get_extra_data_type_manager.ts +21 -24
- package/source/index.ts +8 -8
- package/source/populate_data_type_manager.ts +17 -25
- package/source/private/find_encodings.ts +2 -2
- package/source/private/populate_data_type_manager_103.ts +166 -105
- package/source/private/populate_data_type_manager_104.ts +102 -45
- package/source/promote_opaque_structure.ts +3 -3
- package/source/promote_opaque_structure_in_notification_data.ts +3 -5
- package/source/resolve_dynamic_extension_object.ts +28 -29
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { FieldCategory, IStructuredTypeSchema, TypeDefinition } from "node-opcua-factory";
|
|
2
|
-
import { NodeId } from "node-opcua-nodeid";
|
|
3
|
-
import { IBasicSessionAsync2 } from "node-opcua-pseudo-session";
|
|
4
|
-
import { DataTypeAndEncodingId } from "node-opcua-schemas";
|
|
5
|
-
import { DataTypeDefinition } from "node-opcua-types";
|
|
1
|
+
import { FieldCategory, type IStructuredTypeSchema, type TypeDefinition } from "node-opcua-factory";
|
|
2
|
+
import { type NodeId } from "node-opcua-nodeid";
|
|
3
|
+
import { type IBasicSessionAsync2 } from "node-opcua-pseudo-session";
|
|
4
|
+
import { type DataTypeAndEncodingId } from "node-opcua-schemas";
|
|
5
|
+
import { type DataTypeDefinition } from "node-opcua-types";
|
|
6
6
|
import { DataType } from "node-opcua-variant";
|
|
7
|
-
import { ExtraDataTypeManager } from "./extra_data_type_manager";
|
|
7
|
+
import type { ExtraDataTypeManager } from "./extra_data_type_manager";
|
|
8
8
|
export interface CacheForFieldResolution {
|
|
9
9
|
fieldTypeName: string;
|
|
10
10
|
schema: TypeDefinition;
|
|
@@ -12,17 +12,14 @@ export interface CacheForFieldResolution {
|
|
|
12
12
|
allowSubTypes?: boolean;
|
|
13
13
|
dataType?: NodeId;
|
|
14
14
|
}
|
|
15
|
-
export type ResolveReject<T> = [
|
|
16
|
-
resolve: (value: T) => void,
|
|
17
|
-
reject: (err: Error) => void
|
|
18
|
-
];
|
|
15
|
+
export type ResolveReject<T> = [resolve: (value: T) => void, reject: (err: Error) => void];
|
|
19
16
|
export interface ICache {
|
|
20
17
|
superType?: Map<string, NodeId>;
|
|
21
18
|
fieldResolution?: Map<string, CacheForFieldResolution>;
|
|
22
19
|
dataTypes?: Map<string, DataType>;
|
|
23
20
|
browseNameCache?: Map<string, string>;
|
|
24
21
|
hitCount?: number;
|
|
25
|
-
$$resolveStuff?: Map<string, ResolveReject<
|
|
22
|
+
$$resolveStuff?: Map<string, ResolveReject<unknown>[]>;
|
|
26
23
|
}
|
|
27
24
|
export interface IDataTypeDescriptionMini {
|
|
28
25
|
encodings?: DataTypeAndEncodingId;
|
|
@@ -16,12 +16,12 @@ const find_encodings_1 = require("./private/find_encodings");
|
|
|
16
16
|
const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
|
|
17
17
|
const doDebug = (0, node_opcua_debug_1.checkDebugFlag)(__filename);
|
|
18
18
|
const errorLog = (0, node_opcua_debug_1.make_errorLog)(__filename);
|
|
19
|
-
const warningLog = (0, node_opcua_debug_1.make_warningLog)(__filename);
|
|
20
19
|
async function memoize(cache, cacheName, nodeId, func) {
|
|
21
20
|
const key = nodeId.toString();
|
|
22
|
-
|
|
21
|
+
const m = cache[cacheName];
|
|
22
|
+
if (m?.has(key)) {
|
|
23
23
|
cache.hitCount = cache.hitCount === undefined ? 0 : cache.hitCount + 1;
|
|
24
|
-
return
|
|
24
|
+
return m.get(key);
|
|
25
25
|
}
|
|
26
26
|
const value = await func();
|
|
27
27
|
if (!cache[cacheName]) {
|
|
@@ -32,9 +32,10 @@ async function memoize(cache, cacheName, nodeId, func) {
|
|
|
32
32
|
}
|
|
33
33
|
function fromCache(cache, cacheName, nodeId) {
|
|
34
34
|
const key = nodeId.toString();
|
|
35
|
-
|
|
35
|
+
const m = cache[cacheName];
|
|
36
|
+
if (m?.has(key)) {
|
|
36
37
|
cache.hitCount = cache.hitCount === undefined ? 0 : cache.hitCount + 1;
|
|
37
|
-
return
|
|
38
|
+
return m.get(key);
|
|
38
39
|
}
|
|
39
40
|
return null;
|
|
40
41
|
}
|
|
@@ -55,13 +56,13 @@ async function findSuperType(session, dataTypeNodeId, cache) {
|
|
|
55
56
|
const result3 = await (0, node_opcua_pseudo_session_1.browseAll)(session, nodeToBrowse3);
|
|
56
57
|
/* c8 ignore next */
|
|
57
58
|
if (result3.statusCode.isNotGood()) {
|
|
58
|
-
throw new Error(
|
|
59
|
+
throw new Error(`Cannot find superType for ${dataTypeNodeId.toString()}`);
|
|
59
60
|
}
|
|
60
61
|
result3.references = result3.references || [];
|
|
61
62
|
/* c8 ignore next */
|
|
62
63
|
if (result3.references.length !== 1) {
|
|
63
64
|
errorLog("Invalid dataType with more than one (or 0) superType", result3.toString());
|
|
64
|
-
throw new Error(
|
|
65
|
+
throw new Error(`Invalid dataType with more than one (or 0) superType ${dataTypeNodeId.toString()} l=${result3.references.length}`);
|
|
65
66
|
}
|
|
66
67
|
return result3.references[0].nodeId;
|
|
67
68
|
});
|
|
@@ -114,6 +115,9 @@ async function findDataTypeBasicType(session, cache, dataTypeNodeId) {
|
|
|
114
115
|
nodeId: subTypeNodeId
|
|
115
116
|
});
|
|
116
117
|
const name = nameDataValue.value.value.name;
|
|
118
|
+
if (!name) {
|
|
119
|
+
throw new Error(`Unexpected: BrowseName has no name for nodeId ${subTypeNodeId.toString()}`);
|
|
120
|
+
}
|
|
117
121
|
return (0, node_opcua_factory_1.getBuiltInType)(name);
|
|
118
122
|
}
|
|
119
123
|
// must drill down ...
|
|
@@ -124,8 +128,9 @@ async function readBrowseNameWithCache(session, nodeId, cache) {
|
|
|
124
128
|
return await memoize(cache, "browseNameCache", nodeId, async () => {
|
|
125
129
|
const dataValue = await session.read({ nodeId, attributeId: node_opcua_data_model_1.AttributeIds.BrowseName });
|
|
126
130
|
if (dataValue.statusCode.isNotGood()) {
|
|
127
|
-
const message =
|
|
128
|
-
|
|
131
|
+
const message = `cannot extract BrowseName of nodeId = ${nodeId.toString()} statusCode = ${dataValue.statusCode.toString()}`;
|
|
132
|
+
// c8 ignore next
|
|
133
|
+
doDebug && debugLog(message);
|
|
129
134
|
throw new Error(message);
|
|
130
135
|
}
|
|
131
136
|
return dataValue.value.value.name;
|
|
@@ -134,18 +139,17 @@ async function readBrowseNameWithCache(session, nodeId, cache) {
|
|
|
134
139
|
async function resolve2(session, dataTypeNodeId, dataTypeManager, fieldTypeName, cache) {
|
|
135
140
|
const dataTypeFactory = dataTypeManager.getDataTypeFactoryForNamespace(dataTypeNodeId.namespace);
|
|
136
141
|
const category = await findDataTypeCategory(session, cache, dataTypeNodeId);
|
|
137
|
-
doDebug && debugLog(
|
|
138
|
-
let schema
|
|
142
|
+
doDebug && debugLog(` type ${fieldTypeName} has not been seen yet, let resolve it => (category = `, category, " )");
|
|
143
|
+
let schema;
|
|
139
144
|
switch (category) {
|
|
140
145
|
case node_opcua_factory_1.FieldCategory.basic:
|
|
141
146
|
schema = await findDataTypeBasicType(session, cache, dataTypeNodeId);
|
|
142
147
|
/* c8 ignore next */
|
|
143
148
|
if (!schema) {
|
|
144
|
-
errorLog(
|
|
149
|
+
errorLog(`Cannot find basic type ${fieldTypeName}`);
|
|
145
150
|
}
|
|
146
151
|
break;
|
|
147
152
|
default:
|
|
148
|
-
case node_opcua_factory_1.FieldCategory.complex:
|
|
149
153
|
{
|
|
150
154
|
const dataTypeDefinitionDataValue = await session.read({
|
|
151
155
|
attributeId: node_opcua_data_model_1.AttributeIds.DataTypeDefinition,
|
|
@@ -153,23 +157,29 @@ async function resolve2(session, dataTypeNodeId, dataTypeManager, fieldTypeName,
|
|
|
153
157
|
});
|
|
154
158
|
/* c8 ignore next */
|
|
155
159
|
if (dataTypeDefinitionDataValue.statusCode.isNotGood()) {
|
|
156
|
-
throw new Error(
|
|
160
|
+
throw new Error(` Cannot find dataType Definition ! with nodeId =${dataTypeNodeId.toString()}`);
|
|
157
161
|
}
|
|
158
162
|
const definition = dataTypeDefinitionDataValue.value.value;
|
|
159
163
|
// OPC UA Spec 1.04 part 6 - 5.2.2.16
|
|
160
164
|
// Enumeration values are represented as a Int32 in the EnumValueType structure.
|
|
161
165
|
// but on 64 bit platform this value could be returned as a [ high, low] tuple.
|
|
162
166
|
// note that this is not correct as per the spec.
|
|
163
|
-
const convertIn64ToInteger = (a) => Array.isArray(a) ? a[1] : a;
|
|
167
|
+
const convertIn64ToInteger = (a) => (Array.isArray(a) ? a[1] : a);
|
|
164
168
|
const convert = (fields) => {
|
|
165
169
|
const retVal = {};
|
|
166
|
-
fields
|
|
170
|
+
fields?.forEach((field) => {
|
|
171
|
+
retVal[field.name || ""] = convertIn64ToInteger(field.value);
|
|
172
|
+
});
|
|
167
173
|
return retVal;
|
|
168
174
|
};
|
|
169
175
|
if (category === node_opcua_factory_1.FieldCategory.enumeration) {
|
|
170
176
|
if (dataTypeFactory.hasEnumeration(fieldTypeName)) {
|
|
171
177
|
// skipping already known enumeration
|
|
172
|
-
|
|
178
|
+
const existingEnumeration = dataTypeFactory.getEnumeration(fieldTypeName);
|
|
179
|
+
if (!existingEnumeration) {
|
|
180
|
+
throw new Error(`Internal error: expecting enumeration ${fieldTypeName} to be registered`);
|
|
181
|
+
}
|
|
182
|
+
schema = existingEnumeration;
|
|
173
183
|
}
|
|
174
184
|
else {
|
|
175
185
|
if (definition instanceof node_opcua_types_1.EnumDefinition) {
|
|
@@ -186,7 +196,8 @@ async function resolve2(session, dataTypeNodeId, dataTypeManager, fieldTypeName,
|
|
|
186
196
|
const isAbstract = false;
|
|
187
197
|
schema = await convertDataTypeDefinitionToStructureTypeSchema(session, dataTypeNodeId, fieldTypeName, definition, null, dataTypeManager, isAbstract, cache);
|
|
188
198
|
const structuredTypeSchema = schema;
|
|
189
|
-
if (structuredTypeSchema.encodingDefaultBinary &&
|
|
199
|
+
if (structuredTypeSchema.encodingDefaultBinary &&
|
|
200
|
+
!dataTypeFactory.hasConstructor(structuredTypeSchema.encodingDefaultBinary)) {
|
|
190
201
|
(0, node_opcua_schemas_1.createDynamicObjectConstructor)(structuredTypeSchema, dataTypeFactory);
|
|
191
202
|
}
|
|
192
203
|
}
|
|
@@ -244,7 +255,8 @@ async function resolveFieldType(session, dataTypeNodeId, dataTypeManager, cache)
|
|
|
244
255
|
]);
|
|
245
256
|
if (isAbstract) {
|
|
246
257
|
const _isExtensionObject = await isExtensionObject(session, dataTypeNodeId, cache);
|
|
247
|
-
doDebug &&
|
|
258
|
+
doDebug &&
|
|
259
|
+
debugLog(` dataType ${dataTypeNodeId.toString()} ${fieldTypeName} is abstract => extObj ?= ${_isExtensionObject}`);
|
|
248
260
|
if (_isExtensionObject) {
|
|
249
261
|
// we could have complex => Structure
|
|
250
262
|
const v3 = {
|
|
@@ -261,8 +273,7 @@ async function resolveFieldType(session, dataTypeNodeId, dataTypeManager, cache)
|
|
|
261
273
|
// Note: Only BaseDataType (i=24) should be normalized to "Variant"
|
|
262
274
|
// Other abstract basic types (e.g. Number, Integer) must keep their name
|
|
263
275
|
// for proper subtype validation
|
|
264
|
-
const isBaseDataType = dataTypeNodeId.namespace === 0
|
|
265
|
-
&& dataTypeNodeId.value === node_opcua_constants_1.DataTypeIds.BaseDataType;
|
|
276
|
+
const isBaseDataType = dataTypeNodeId.namespace === 0 && dataTypeNodeId.value === node_opcua_constants_1.DataTypeIds.BaseDataType;
|
|
266
277
|
const v3 = {
|
|
267
278
|
category: node_opcua_factory_1.FieldCategory.basic,
|
|
268
279
|
fieldTypeName: isBaseDataType ? "Variant" : fieldTypeName,
|
|
@@ -295,7 +306,7 @@ async function resolveFieldType(session, dataTypeNodeId, dataTypeManager, cache)
|
|
|
295
306
|
}
|
|
296
307
|
/* c8 ignore next */
|
|
297
308
|
if (!schema) {
|
|
298
|
-
throw new Error(
|
|
309
|
+
throw new Error(`expecting a schema here fieldTypeName=${fieldTypeName} ${dataTypeNodeId.toString()} category = ${category}`);
|
|
299
310
|
}
|
|
300
311
|
const v2 = {
|
|
301
312
|
category,
|
|
@@ -308,7 +319,7 @@ async function resolveFieldType(session, dataTypeNodeId, dataTypeManager, cache)
|
|
|
308
319
|
async function _setupEncodings(session, dataTypeNodeId, dataTypeDescription, schema, isAbstract) {
|
|
309
320
|
schema.dataTypeNodeId = dataTypeNodeId;
|
|
310
321
|
if (!isAbstract) {
|
|
311
|
-
const encodings =
|
|
322
|
+
const encodings = dataTypeDescription?.encodings || (await (0, find_encodings_1._findEncodings)(session, dataTypeNodeId));
|
|
312
323
|
schema.encodingDefaultBinary = (0, node_opcua_nodeid_1.makeExpandedNodeId)(encodings.binaryEncodingNodeId);
|
|
313
324
|
schema.encodingDefaultXml = (0, node_opcua_nodeid_1.makeExpandedNodeId)(encodings.xmlEncodingNodeId);
|
|
314
325
|
schema.encodingDefaultJson = (0, node_opcua_nodeid_1.makeExpandedNodeId)(encodings.jsonEncodingNodeId);
|
|
@@ -324,49 +335,50 @@ async function findBasicDataTypeEx(session, dataTypeNodeId, cache) {
|
|
|
324
335
|
if (!sessionEx._$$cache2) {
|
|
325
336
|
sessionEx._$$cache2 = new Map();
|
|
326
337
|
}
|
|
338
|
+
const cache2 = sessionEx._$$cache2;
|
|
327
339
|
const key = dataTypeNodeId.toString();
|
|
328
|
-
|
|
329
|
-
|
|
340
|
+
const cached = cache2.get(key);
|
|
341
|
+
if (cached !== undefined) {
|
|
342
|
+
sessionEx._$$cacheHits = sessionEx._$$cacheHits === undefined ? 0 : sessionEx._$$cacheHits + 1;
|
|
330
343
|
// debugLog("cache hit 2", key);
|
|
331
|
-
return
|
|
344
|
+
return cached;
|
|
332
345
|
}
|
|
333
346
|
const d = await (0, node_opcua_pseudo_session_1.findBasicDataType)(session, dataTypeNodeId);
|
|
334
|
-
|
|
347
|
+
cache2.set(key, d);
|
|
335
348
|
return d;
|
|
336
349
|
});
|
|
337
350
|
}
|
|
338
351
|
async function nonReentrant(cache, prefix, dataTypeNodeId, func) {
|
|
339
352
|
const key = prefix + dataTypeNodeId.toString();
|
|
340
|
-
|
|
341
|
-
|
|
353
|
+
const existingArr = cache.$$resolveStuff?.get(key);
|
|
354
|
+
if (existingArr) {
|
|
355
|
+
doDebug && debugLog(` re-entering !${key}`);
|
|
342
356
|
return await new Promise((resolve, reject) => {
|
|
343
|
-
|
|
357
|
+
existingArr.push([resolve, reject]);
|
|
344
358
|
});
|
|
345
359
|
}
|
|
360
|
+
const arr = [];
|
|
346
361
|
cache.$$resolveStuff = cache.$$resolveStuff || new Map();
|
|
347
|
-
cache.$$resolveStuff.set(key,
|
|
362
|
+
cache.$$resolveStuff.set(key, arr);
|
|
348
363
|
return await new Promise((_resolve, _reject) => {
|
|
349
|
-
|
|
364
|
+
arr.push([_resolve, _reject]);
|
|
350
365
|
(async () => {
|
|
351
366
|
try {
|
|
352
367
|
const result = await func();
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
for (const [resolve] of tmp) {
|
|
368
|
+
cache.$$resolveStuff?.delete(key);
|
|
369
|
+
for (const [resolve] of arr) {
|
|
356
370
|
resolve(result);
|
|
357
371
|
}
|
|
358
372
|
}
|
|
359
373
|
catch (err) {
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
for (const [_resolve, reject] of tmp) {
|
|
374
|
+
cache.$$resolveStuff?.delete(key);
|
|
375
|
+
for (const [_resolve, reject] of arr) {
|
|
363
376
|
reject(err);
|
|
364
377
|
}
|
|
365
378
|
}
|
|
366
379
|
})();
|
|
367
380
|
});
|
|
368
381
|
}
|
|
369
|
-
// eslint-disable-next-line max-statements, max-params
|
|
370
382
|
async function convertDataTypeDefinitionToStructureTypeSchema(session, dataTypeNodeId, name, definition, dataTypeDescription, dataTypeManager, isAbstract, cache) {
|
|
371
383
|
return await nonReentrant(cache, "convertDataTypeDefinitionToStructureTypeSchema", dataTypeNodeId, async () => {
|
|
372
384
|
if (definition instanceof node_opcua_types_1.StructureDefinition) {
|
|
@@ -395,7 +407,7 @@ async function convertDataTypeDefinitionToStructureTypeSchema(session, dataTypeN
|
|
|
395
407
|
break;
|
|
396
408
|
}
|
|
397
409
|
let switchValue = 1;
|
|
398
|
-
// let's start at fieldCountToIgnore bits
|
|
410
|
+
// let's start at fieldCountToIgnore bits
|
|
399
411
|
let switchBit = fieldCountToIgnore;
|
|
400
412
|
const bitFields = isUnion ? undefined : [];
|
|
401
413
|
const postActions = [];
|
|
@@ -426,8 +438,12 @@ async function convertDataTypeDefinitionToStructureTypeSchema(session, dataTypeN
|
|
|
426
438
|
const isSelf = (0, node_opcua_nodeid_1.sameNodeId)(fieldD.dataType, dataTypeNodeId);
|
|
427
439
|
// Pre-fetch async data for each field in parallel
|
|
428
440
|
const rt = isSelf ? null : await resolveFieldType(session, fieldD.dataType, dataTypeManager, cache);
|
|
429
|
-
const basicDataType = rt
|
|
430
|
-
|
|
441
|
+
const basicDataType = rt
|
|
442
|
+
? await findBasicDataTypeEx(session, rt.dataType || fieldD.dataType, cache)
|
|
443
|
+
: isSelf
|
|
444
|
+
? node_opcua_variant_1.DataType.ExtensionObject
|
|
445
|
+
: undefined;
|
|
446
|
+
const fieldTypeNameForSelfRef = isSelf
|
|
431
447
|
? await readBrowseNameWithCache(session, dataTypeNodeId, cache)
|
|
432
448
|
: undefined;
|
|
433
449
|
return { fieldD, rt, basicDataType, fieldTypeNameForSelfRef };
|
|
@@ -435,11 +451,20 @@ async function convertDataTypeDefinitionToStructureTypeSchema(session, dataTypeN
|
|
|
435
451
|
for (const { fieldD, rt, basicDataType, fieldTypeNameForSelfRef } of results) {
|
|
436
452
|
let field;
|
|
437
453
|
let currentAllowSubTypes;
|
|
438
|
-
({
|
|
454
|
+
({
|
|
455
|
+
field,
|
|
456
|
+
switchBit,
|
|
457
|
+
switchValue,
|
|
458
|
+
allowSubTypes: currentAllowSubTypes
|
|
459
|
+
} = createField(definition, fieldD, switchBit, bitFields, isUnion, switchValue));
|
|
439
460
|
if (fieldD.dataType.value === dataTypeNodeId.value && fieldD.dataType.namespace === dataTypeNodeId.namespace) {
|
|
440
461
|
// this is a structure with a field of the same type
|
|
441
462
|
// push an empty placeholder that we will fill later
|
|
442
|
-
(
|
|
463
|
+
if (!fieldTypeNameForSelfRef) {
|
|
464
|
+
throw new Error(`Internal error: expecting fieldTypeNameForSelfRef to be defined for self-referencing field ${fieldD.name}`);
|
|
465
|
+
}
|
|
466
|
+
field.fieldType = fieldTypeNameForSelfRef;
|
|
467
|
+
field.category = node_opcua_factory_1.FieldCategory.complex;
|
|
443
468
|
fields.push(field);
|
|
444
469
|
const capturedField = field;
|
|
445
470
|
postActions.push((schema) => {
|
|
@@ -447,6 +472,9 @@ async function convertDataTypeDefinitionToStructureTypeSchema(session, dataTypeN
|
|
|
447
472
|
});
|
|
448
473
|
continue;
|
|
449
474
|
}
|
|
475
|
+
if (!rt) {
|
|
476
|
+
throw new Error(`Internal error: expecting resolved field type for field ${fieldD.name}`);
|
|
477
|
+
}
|
|
450
478
|
const resolvedField = rt;
|
|
451
479
|
const { schema, category, fieldTypeName, dataType } = resolvedField;
|
|
452
480
|
field.fieldType = fieldTypeName;
|
|
@@ -473,26 +501,31 @@ async function convertDataTypeDefinitionToStructureTypeSchema(session, dataTypeN
|
|
|
473
501
|
dataTypeFactory
|
|
474
502
|
});
|
|
475
503
|
const structuredTypeSchema = await _setupEncodings(session, dataTypeNodeId, dataTypeDescription, os, isAbstract);
|
|
476
|
-
postActions.forEach((action) =>
|
|
504
|
+
postActions.forEach((action) => {
|
|
505
|
+
action(structuredTypeSchema);
|
|
506
|
+
});
|
|
477
507
|
doDebug && debugLog("DONE ! convertDataTypeDefinitionToStructureTypeSchema = ", dataTypeNodeId.toString());
|
|
478
508
|
return structuredTypeSchema;
|
|
479
509
|
}
|
|
480
510
|
throw new Error("Not Implemented");
|
|
481
511
|
});
|
|
482
512
|
function createField(definition, fieldD, switchBit, bitFields, isUnion, switchValue) {
|
|
513
|
+
if (!fieldD.name) {
|
|
514
|
+
throw new Error("Internal error: expecting field name to be defined");
|
|
515
|
+
}
|
|
483
516
|
const field = {
|
|
484
517
|
fieldType: "",
|
|
485
518
|
name: fieldD.name,
|
|
486
519
|
schema: undefined
|
|
487
520
|
};
|
|
488
|
-
const definitionAllowSubTypes = definition.structureType === node_opcua_types_1.StructureType.StructureWithSubtypedValues
|
|
489
|
-
|
|
521
|
+
const definitionAllowSubTypes = definition.structureType === node_opcua_types_1.StructureType.StructureWithSubtypedValues ||
|
|
522
|
+
definition.structureType === node_opcua_types_1.StructureType.UnionWithSubtypedValues;
|
|
490
523
|
if (fieldD.isOptional) {
|
|
491
524
|
// Optional has a special handling
|
|
492
525
|
if (!definitionAllowSubTypes) {
|
|
493
526
|
// we are in a true optional field structure
|
|
494
527
|
field.switchBit = switchBit++;
|
|
495
|
-
bitFields?.push({ name: fieldD.name
|
|
528
|
+
bitFields?.push({ name: `${fieldD.name}Specified`, length: 1 });
|
|
496
529
|
}
|
|
497
530
|
}
|
|
498
531
|
if (isUnion) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert_data_type_definition_to_structuretype_schema.js","sourceRoot":"","sources":["../source/convert_data_type_definition_to_structuretype_schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"convert_data_type_definition_to_structuretype_schema.js","sourceRoot":"","sources":["../source/convert_data_type_definition_to_structuretype_schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { IStructuredTypeSchema } from "node-opcua-factory";
|
|
1
|
+
import { type IStructuredTypeSchema } from "node-opcua-factory";
|
|
2
2
|
import { StructureDefinition } from "node-opcua-types";
|
|
3
3
|
export declare function convertStructureTypeSchemaToStructureDefinition(st: IStructuredTypeSchema): StructureDefinition;
|
|
@@ -2,17 +2,19 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.convertStructureTypeSchemaToStructureDefinition = convertStructureTypeSchemaToStructureDefinition;
|
|
4
4
|
const node_opcua_factory_1 = require("node-opcua-factory");
|
|
5
|
-
const node_opcua_types_1 = require("node-opcua-types");
|
|
6
5
|
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
6
|
+
const node_opcua_types_1 = require("node-opcua-types");
|
|
7
7
|
function _getDataType(field) {
|
|
8
8
|
switch (field.category) {
|
|
9
9
|
case node_opcua_factory_1.FieldCategory.complex:
|
|
10
10
|
return (0, node_opcua_nodeid_1.resolveNodeId)(field.schema.dataTypeNodeId);
|
|
11
11
|
case node_opcua_factory_1.FieldCategory.basic:
|
|
12
12
|
return (0, node_opcua_nodeid_1.resolveNodeId)(field.fieldType);
|
|
13
|
-
case node_opcua_factory_1.FieldCategory.enumeration:
|
|
14
13
|
default:
|
|
15
|
-
|
|
14
|
+
// FieldCategory.enumeration: enumeration fields don't carry a resolvable
|
|
15
|
+
// dataType NodeId here; fall back to the null NodeId, matching the
|
|
16
|
+
// pre-existing (test-verified) behaviour.
|
|
17
|
+
return field.dataType ? (0, node_opcua_nodeid_1.resolveNodeId)(field.dataType) : new node_opcua_nodeid_1.NodeId();
|
|
16
18
|
}
|
|
17
19
|
}
|
|
18
20
|
function convertStructureTypeSchemaToStructureDefinition(st) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert_structuretype_schema_to_structure_definition.js","sourceRoot":"","sources":["../source/convert_structuretype_schema_to_structure_definition.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"convert_structuretype_schema_to_structure_definition.js","sourceRoot":"","sources":["../source/convert_structuretype_schema_to_structure_definition.ts"],"names":[],"mappings":";;AAkBA,0GAgCC;AAlDD,2DAA+F;AAC/F,yDAA0D;AAC1D,uDAAmI;AAEnI,SAAS,YAAY,CAAC,KAAgB;IAClC,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrB,KAAK,kCAAa,CAAC,OAAO;YACtB,OAAO,IAAA,iCAAa,EAAE,KAAK,CAAC,MAA2C,CAAC,cAAc,CAAC,CAAC;QAC5F,KAAK,kCAAa,CAAC,KAAK;YACpB,OAAO,IAAA,iCAAa,EAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1C;YACI,yEAAyE;YACzE,mEAAmE;YACnE,0CAA0C;YAC1C,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAA,iCAAa,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,0BAAM,EAAE,CAAC;IAC7E,CAAC;AACL,CAAC;AAED,SAAgB,+CAA+C,CAAC,EAAyB;IACrF,IAAI,aAAa,GAAG,gCAAa,CAAC,OAAO,CAAC;IAC1C,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,EAAE,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC1B,aAAa,GAAG,gCAAa,CAAC,KAAK,CAAC;QACpC,OAAO,GAAG,IAAI,CAAC;IACnB,CAAC;SAAM,CAAC;QACJ,aAAa,GAAG,gCAAa,CAAC,SAAS,CAAC;IAC5C,CAAC;IACD,mDAAmD;IACnD,MAAM,mBAAmB,GAA+B;QACpD,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,EAAE,CAAC,aAAa,EAAE,EAAE,cAAc;QAChD,iBAAiB,EAAE,EAAE,CAAC,qBAAqB;QAC3C,aAAa;KAChB,CAAC;IACF,MAAM,MAAM,GAA4B,mBAAmB,CAAC,MAAM,IAAI,EAAE,CAAC;IACzE,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,OAAO,IAAI,CAAC,CAAC,YAAY,KAAK,aAAa,EAAE,CAAC;YAC9C,SAAS;QACb,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACR,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;YAC3C,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,QAAQ;YACR,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS;YAC7D,WAAW,EAAE,CAAC,CAAC,aAAa,IAAI,SAAS;YACzC,IAAI,EAAE,CAAC,CAAC,YAAY;SACvB,CAAC,CAAC;IACP,CAAC;IACD,OAAO,IAAI,sCAAmB,CAAC,mBAAmB,CAAC,CAAC;AACxD,CAAC"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { ConstructorFunc, DataTypeFactory, StructureInfo } from "node-opcua-factory";
|
|
2
|
-
import { NodeId } from "node-opcua-nodeid";
|
|
3
|
-
import { IBasicSessionAsync2 } from "node-opcua-pseudo-session";
|
|
4
|
-
import { AnyConstructorFunc } from "node-opcua-schemas";
|
|
1
|
+
import { type ConstructorFunc, type DataTypeFactory, type StructureInfo } from "node-opcua-factory";
|
|
2
|
+
import type { NodeId } from "node-opcua-nodeid";
|
|
3
|
+
import type { IBasicSessionAsync2 } from "node-opcua-pseudo-session";
|
|
4
|
+
import type { AnyConstructorFunc } from "node-opcua-schemas";
|
|
5
5
|
export declare class ExtraDataTypeManager {
|
|
6
6
|
namespaceArray: string[];
|
|
7
7
|
private dataTypeFactoryMapByNamespace;
|
|
8
8
|
private _session;
|
|
9
9
|
private _pendingExtractions;
|
|
10
|
-
constructor();
|
|
11
10
|
setSession(session: IBasicSessionAsync2): void;
|
|
12
11
|
setNamespaceArray(namespaceArray: string[]): void;
|
|
13
12
|
hasDataTypeFactory(namespaceIndex: number): boolean;
|
|
@@ -4,7 +4,7 @@ exports.ExtraDataTypeManager = void 0;
|
|
|
4
4
|
/**
|
|
5
5
|
* @module node-opcua-client-dynamic-extension-object
|
|
6
6
|
*/
|
|
7
|
-
const
|
|
7
|
+
const node_util_1 = require("node:util");
|
|
8
8
|
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
9
9
|
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
10
10
|
const node_opcua_factory_1 = require("node-opcua-factory");
|
|
@@ -13,9 +13,6 @@ class ExtraDataTypeManager {
|
|
|
13
13
|
dataTypeFactoryMapByNamespace = {};
|
|
14
14
|
_session = null;
|
|
15
15
|
_pendingExtractions = new Map();
|
|
16
|
-
constructor() {
|
|
17
|
-
/* */
|
|
18
|
-
}
|
|
19
16
|
setSession(session) {
|
|
20
17
|
this._session = session;
|
|
21
18
|
}
|
|
@@ -26,7 +23,7 @@ class ExtraDataTypeManager {
|
|
|
26
23
|
if (namespaceIndex === 0) {
|
|
27
24
|
return true;
|
|
28
25
|
}
|
|
29
|
-
return !!Object.
|
|
26
|
+
return !!Object.hasOwn(this.dataTypeFactoryMapByNamespace, namespaceIndex);
|
|
30
27
|
}
|
|
31
28
|
registerDataTypeFactory(namespaceIndex, dataTypeFactory) {
|
|
32
29
|
/* c8 ignore next */
|
|
@@ -54,12 +51,12 @@ class ExtraDataTypeManager {
|
|
|
54
51
|
if (standardDataTypeFactory.hasBuiltInType(fieldTypeName)) {
|
|
55
52
|
return standardDataTypeFactory.getBuiltInType(fieldTypeName);
|
|
56
53
|
}
|
|
57
|
-
throw new Error(
|
|
54
|
+
throw new Error(`Cannot find built-in type ${fieldTypeName}`);
|
|
58
55
|
}
|
|
59
56
|
getStructureInfoForDataType(dataTypeNodeId) {
|
|
60
57
|
const dataTypeFactory = this.getDataTypeFactory(dataTypeNodeId.namespace);
|
|
61
58
|
if (!dataTypeFactory) {
|
|
62
|
-
throw new Error(
|
|
59
|
+
throw new Error(`cannot find dataFactory for namespace=${dataTypeNodeId.namespace} when requested for ${dataTypeNodeId.toString()}`);
|
|
63
60
|
}
|
|
64
61
|
return dataTypeFactory.getStructureInfoForDataType(dataTypeNodeId);
|
|
65
62
|
}
|
|
@@ -72,19 +69,21 @@ class ExtraDataTypeManager {
|
|
|
72
69
|
throw new Error("Session is required for lazy loading. Call setSession first.");
|
|
73
70
|
}
|
|
74
71
|
const key = dataTypeNodeId.toString();
|
|
75
|
-
|
|
76
|
-
|
|
72
|
+
const pending = this._pendingExtractions.get(key);
|
|
73
|
+
if (pending) {
|
|
74
|
+
return await pending;
|
|
77
75
|
}
|
|
76
|
+
const session = this._session;
|
|
78
77
|
const promise = (async () => {
|
|
79
78
|
// We'll need to make sure it's accessible and correctly used.
|
|
80
79
|
// For now, let's assume we can import it or move it.
|
|
81
80
|
// Actually, populate_data_type_manager_104.ts exports readDataTypeDefinitionAndBuildType
|
|
82
81
|
const { readDataTypeDefinitionAndBuildType } = require("./private/populate_data_type_manager_104");
|
|
83
82
|
const cache = {}; // local cache for this extraction
|
|
84
|
-
await readDataTypeDefinitionAndBuildType(
|
|
83
|
+
await readDataTypeDefinitionAndBuildType(session, dataTypeNodeId, undefined, this, cache);
|
|
85
84
|
const info = this.getStructureInfoForDataType(dataTypeNodeId);
|
|
86
85
|
if (!info) {
|
|
87
|
-
throw new Error(
|
|
86
|
+
throw new Error(`Failed to extract data type structure for ${dataTypeNodeId.toString()}`);
|
|
88
87
|
}
|
|
89
88
|
return info;
|
|
90
89
|
})();
|
|
@@ -99,7 +98,7 @@ class ExtraDataTypeManager {
|
|
|
99
98
|
getExtensionObjectConstructorFromDataType(dataTypeNodeId) {
|
|
100
99
|
const dataTypeFactory = this.getDataTypeFactory(dataTypeNodeId.namespace);
|
|
101
100
|
if (!dataTypeFactory) {
|
|
102
|
-
throw new Error(
|
|
101
|
+
throw new Error(`cannot find dataFactory for namespace=${dataTypeNodeId.namespace} when requested for ${dataTypeNodeId.toString()}`);
|
|
103
102
|
}
|
|
104
103
|
// find schema corresponding to dataTypeNodeId in typeDictionary
|
|
105
104
|
const structureInfo = dataTypeFactory.findStructureInfoForDataType(dataTypeNodeId);
|
|
@@ -113,7 +112,7 @@ class ExtraDataTypeManager {
|
|
|
113
112
|
const structureInfo = await this.getStructureInfoForDataTypeAsync(dataTypeNodeId);
|
|
114
113
|
const Constructor = structureInfo.constructor;
|
|
115
114
|
if (!Constructor) {
|
|
116
|
-
throw new Error(
|
|
115
|
+
throw new Error(`Cannot find Extension Object Constructor for Abstract dataType ${dataTypeNodeId.toString()}`);
|
|
117
116
|
}
|
|
118
117
|
return Constructor;
|
|
119
118
|
}
|
|
@@ -145,20 +144,20 @@ class ExtraDataTypeManager {
|
|
|
145
144
|
resultMask: node_opcua_data_model_1.ResultMask.BrowseName
|
|
146
145
|
});
|
|
147
146
|
if (browseResult.statusCode.isNotGood() || !browseResult.references || browseResult.references.length !== 1) {
|
|
148
|
-
throw new Error(
|
|
147
|
+
throw new Error(`Cannot find DataType for binary encoding ${binaryEncodingNodeId.toString()}`);
|
|
149
148
|
}
|
|
150
149
|
const dataTypeNodeId = browseResult.references[0].nodeId;
|
|
151
150
|
await this.getStructureInfoForDataTypeAsync(dataTypeNodeId);
|
|
152
151
|
Constructor = dataTypeFactory.getConstructor(binaryEncodingNodeId);
|
|
153
152
|
if (!Constructor) {
|
|
154
|
-
throw new Error(
|
|
153
|
+
throw new Error(`Cannot find constructor for binary encoding ${binaryEncodingNodeId.toString()} after extraction`);
|
|
155
154
|
}
|
|
156
155
|
return Constructor;
|
|
157
156
|
}
|
|
158
157
|
toString() {
|
|
159
158
|
const l = [];
|
|
160
159
|
function write(...args) {
|
|
161
|
-
l.push(
|
|
160
|
+
l.push(node_util_1.format.apply(node_util_1.format, args));
|
|
162
161
|
}
|
|
163
162
|
write("ExtraDataTypeManager");
|
|
164
163
|
for (let n = 0; n < this.namespaceArray.length; n++) {
|