node-opcua-client-dynamic-extension-object 2.64.1 → 2.66.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 +12 -12
- package/dist/convert_data_type_definition_to_structuretype_schema.js +331 -327
- package/dist/convert_data_type_definition_to_structuretype_schema.js.map +1 -1
- package/dist/extra_data_type_manager.d.ts +16 -16
- package/dist/extra_data_type_manager.js +75 -75
- package/dist/get_extension_object_constructor.d.ts +7 -7
- package/dist/get_extension_object_constructor.js +37 -37
- package/dist/get_extra_data_type_manager.d.ts +3 -3
- package/dist/get_extra_data_type_manager.js +51 -51
- package/dist/index.d.ts +11 -11
- package/dist/index.js +27 -23
- package/dist/index.js.map +1 -1
- package/dist/populate_data_type_manager.d.ts +3 -3
- package/dist/populate_data_type_manager.js +25 -25
- package/dist/private/find_encodings.d.ts +4 -4
- package/dist/private/find_encodings.js +55 -55
- package/dist/private/populate_data_type_manager_103.d.ts +9 -9
- package/dist/private/populate_data_type_manager_103.js +601 -601
- package/dist/private/populate_data_type_manager_104.d.ts +9 -9
- package/dist/private/populate_data_type_manager_104.js +145 -145
- package/dist/promote_opaque_structure.d.ts +6 -6
- package/dist/promote_opaque_structure.js +41 -41
- package/dist/resolve_dynamic_extension_object.d.ts +4 -4
- package/dist/resolve_dynamic_extension_object.js +105 -105
- package/package.json +19 -19
- package/source/convert_data_type_definition_to_structuretype_schema.ts +31 -14
- package/dist/client_dynamic_extension_object.d.ts +0 -25
- package/dist/client_dynamic_extension_object.js +0 -1058
- package/dist/client_dynamic_extension_object.js.map +0 -1
- package/dist/convert_data_type_definition_to_structure_type_schema.d.ts +0 -1
- package/dist/convert_data_type_definition_to_structure_type_schema.js +0 -3
- package/dist/convert_data_type_definition_to_structure_type_schema.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-opcua-client-dynamic-extension-object",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.66.0",
|
|
4
4
|
"description": "pure nodejs OPCUA SDK - module client-dynamic-extension-object",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "tsc -b",
|
|
9
|
-
"clean": "
|
|
9
|
+
"clean": "npx rimraf dist *.tsbuildinfo",
|
|
10
10
|
"test": "echo no test"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"chalk": "4.1.2",
|
|
14
|
-
"node-opcua-assert": "2.
|
|
15
|
-
"node-opcua-binary-stream": "2.
|
|
16
|
-
"node-opcua-constants": "2.
|
|
17
|
-
"node-opcua-data-model": "2.
|
|
18
|
-
"node-opcua-data-value": "2.
|
|
19
|
-
"node-opcua-debug": "2.
|
|
20
|
-
"node-opcua-extension-object": "2.
|
|
21
|
-
"node-opcua-factory": "2.
|
|
22
|
-
"node-opcua-nodeid": "2.
|
|
23
|
-
"node-opcua-pseudo-session": "2.
|
|
24
|
-
"node-opcua-schemas": "2.
|
|
25
|
-
"node-opcua-service-browse": "2.
|
|
26
|
-
"node-opcua-service-translate-browse-path": "2.
|
|
27
|
-
"node-opcua-status-code": "2.
|
|
28
|
-
"node-opcua-types": "2.
|
|
29
|
-
"node-opcua-variant": "2.
|
|
14
|
+
"node-opcua-assert": "2.66.0",
|
|
15
|
+
"node-opcua-binary-stream": "2.66.0",
|
|
16
|
+
"node-opcua-constants": "2.66.0",
|
|
17
|
+
"node-opcua-data-model": "2.66.0",
|
|
18
|
+
"node-opcua-data-value": "2.66.0",
|
|
19
|
+
"node-opcua-debug": "2.66.0",
|
|
20
|
+
"node-opcua-extension-object": "2.66.0",
|
|
21
|
+
"node-opcua-factory": "2.66.0",
|
|
22
|
+
"node-opcua-nodeid": "2.66.0",
|
|
23
|
+
"node-opcua-pseudo-session": "2.66.0",
|
|
24
|
+
"node-opcua-schemas": "2.66.0",
|
|
25
|
+
"node-opcua-service-browse": "2.66.0",
|
|
26
|
+
"node-opcua-service-translate-browse-path": "2.66.0",
|
|
27
|
+
"node-opcua-status-code": "2.66.0",
|
|
28
|
+
"node-opcua-types": "2.66.0",
|
|
29
|
+
"node-opcua-variant": "2.66.0"
|
|
30
30
|
},
|
|
31
31
|
"author": "Etienne Rossignon",
|
|
32
32
|
"license": "MIT",
|
|
@@ -43,5 +43,5 @@
|
|
|
43
43
|
"internet of things"
|
|
44
44
|
],
|
|
45
45
|
"homepage": "http://node-opcua.github.io/",
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "97f47e2e242a1fd737495fd64cb65e8fb7a9964b"
|
|
47
47
|
}
|
|
@@ -14,7 +14,14 @@ import {
|
|
|
14
14
|
import { NodeId, makeExpandedNodeId, resolveNodeId } from "node-opcua-nodeid";
|
|
15
15
|
import { browseAll, BrowseDescriptionLike, IBasicSession } from "node-opcua-pseudo-session";
|
|
16
16
|
import { StatusCodes } from "node-opcua-status-code";
|
|
17
|
-
import {
|
|
17
|
+
import {
|
|
18
|
+
EnumDefinition,
|
|
19
|
+
DataTypeDefinition,
|
|
20
|
+
StructureDefinition,
|
|
21
|
+
StructureType,
|
|
22
|
+
StructureField,
|
|
23
|
+
EnumField
|
|
24
|
+
} from "node-opcua-types";
|
|
18
25
|
import { ExtensionObject } from "node-opcua-extension-object";
|
|
19
26
|
//
|
|
20
27
|
import { _findEncodings } from "./private/find_encodings";
|
|
@@ -132,11 +139,11 @@ async function resolve2(
|
|
|
132
139
|
dataTypeFactory: DataTypeFactory,
|
|
133
140
|
fieldTypeName: string,
|
|
134
141
|
cache: { [key: string]: CacheForFieldResolution }
|
|
135
|
-
): Promise<{ schema: TypeDefinition| undefined
|
|
142
|
+
): Promise<{ schema: TypeDefinition | undefined; category: FieldCategory }> {
|
|
136
143
|
const category = await findDataTypeCategory(session, cache, dataTypeNodeId);
|
|
137
144
|
debugLog(" type " + fieldTypeName + " has not been seen yet, let resolve it => (category = ", category, " )");
|
|
138
145
|
|
|
139
|
-
let schema: TypeDefinition|undefined = undefined;
|
|
146
|
+
let schema: TypeDefinition | undefined = undefined;
|
|
140
147
|
switch (category) {
|
|
141
148
|
case FieldCategory.basic:
|
|
142
149
|
schema = await findDataTypeBasicType(session, cache, dataTypeNodeId);
|
|
@@ -160,10 +167,17 @@ async function resolve2(
|
|
|
160
167
|
}
|
|
161
168
|
const definition = dataTypeDefinitionDataValue.value.value;
|
|
162
169
|
|
|
170
|
+
const convertIn64ToInteger = (a: number[]) => a[1];
|
|
171
|
+
|
|
172
|
+
const convert = (fields: EnumField[] | null) => {
|
|
173
|
+
const retVal: Record<string, number> = {};
|
|
174
|
+
fields && fields.forEach((field: EnumField) => (retVal[field.name || ""] = convertIn64ToInteger(field.value)));
|
|
175
|
+
return retVal;
|
|
176
|
+
};
|
|
163
177
|
if (category === FieldCategory.enumeration) {
|
|
164
178
|
if (definition instanceof EnumDefinition) {
|
|
165
179
|
const e = new EnumerationDefinitionSchema({
|
|
166
|
-
enumValues: definition.fields,
|
|
180
|
+
enumValues: convert(definition.fields),
|
|
167
181
|
name: fieldTypeName
|
|
168
182
|
});
|
|
169
183
|
dataTypeFactory.registerEnumeration(e);
|
|
@@ -308,22 +322,20 @@ export async function convertDataTypeDefinitionToStructureTypeSchema(
|
|
|
308
322
|
|
|
309
323
|
const bitFields: { name: string; length?: number }[] | undefined = isUnion ? undefined : [];
|
|
310
324
|
|
|
311
|
-
const postActions: ((schema: StructuredTypeSchema
|
|
325
|
+
const postActions: ((schema: StructuredTypeSchema) => void)[] = [];
|
|
312
326
|
|
|
313
327
|
for (const fieldD of definition.fields!) {
|
|
314
|
-
|
|
315
328
|
let field: FieldInterfaceOptions | undefined;
|
|
316
329
|
({ field, switchBit, switchValue } = createField(fieldD, switchBit, bitFields, isUnion, switchValue));
|
|
317
330
|
|
|
318
|
-
if (fieldD.dataType.value === dataTypeNodeId.value &&
|
|
331
|
+
if (fieldD.dataType.value === dataTypeNodeId.value && fieldD.dataType.namespace === dataTypeNodeId.namespace) {
|
|
319
332
|
// this is a structure with a field of the same type
|
|
320
333
|
// push an empty placeholder that we will fill later
|
|
321
334
|
const fieldTypeName = await readBrowseName(session, dataTypeNodeId);
|
|
322
|
-
field.fieldType= fieldTypeName
|
|
323
|
-
field.category = FieldCategory.complex;
|
|
335
|
+
(field.fieldType = fieldTypeName!), (field.category = FieldCategory.complex);
|
|
324
336
|
fields.push(field);
|
|
325
337
|
const capturedField = field;
|
|
326
|
-
postActions.push(
|
|
338
|
+
postActions.push((schema: StructuredTypeSchema) => {
|
|
327
339
|
capturedField.schema = schema;
|
|
328
340
|
});
|
|
329
341
|
continue;
|
|
@@ -341,8 +353,7 @@ export async function convertDataTypeDefinitionToStructureTypeSchema(
|
|
|
341
353
|
}
|
|
342
354
|
const { schema, category, fieldTypeName } = rt;
|
|
343
355
|
|
|
344
|
-
field.fieldType= fieldTypeName
|
|
345
|
-
field.category = category;
|
|
356
|
+
(field.fieldType = fieldTypeName!), (field.category = category);
|
|
346
357
|
field.schema = schema;
|
|
347
358
|
fields.push(field);
|
|
348
359
|
}
|
|
@@ -359,13 +370,19 @@ export async function convertDataTypeDefinitionToStructureTypeSchema(
|
|
|
359
370
|
});
|
|
360
371
|
const structuredTypeSchema = await _setupEncodings(session, dataTypeNodeId, os);
|
|
361
372
|
|
|
362
|
-
postActions.forEach((action)=>action(structuredTypeSchema));
|
|
373
|
+
postActions.forEach((action) => action(structuredTypeSchema));
|
|
363
374
|
|
|
364
375
|
return structuredTypeSchema;
|
|
365
376
|
}
|
|
366
377
|
throw new Error("Not Implemented");
|
|
367
378
|
|
|
368
|
-
function createField(
|
|
379
|
+
function createField(
|
|
380
|
+
fieldD: StructureField,
|
|
381
|
+
switchBit: number,
|
|
382
|
+
bitFields: { name: string; length?: number | undefined }[] | undefined,
|
|
383
|
+
isUnion: boolean,
|
|
384
|
+
switchValue: number
|
|
385
|
+
) {
|
|
369
386
|
const field: FieldInterfaceOptions = {
|
|
370
387
|
fieldType: "",
|
|
371
388
|
name: fieldD.name!,
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { DataTypeFactory, FieldCategory, StructuredTypeSchema, TypeDefinition } from "node-opcua-factory";
|
|
2
|
-
import { NodeId } from "node-opcua-nodeid";
|
|
3
|
-
import { IBasicSession } from "node-opcua-pseudo-session";
|
|
4
|
-
import { AnyConstructorFunc } from "node-opcua-schemas";
|
|
5
|
-
import { DataTypeDefinition } from "node-opcua-types";
|
|
6
|
-
import { ExtraDataTypeManager } from "./extra_data_type_manager";
|
|
7
|
-
/**
|
|
8
|
-
* Extract all custom dataType
|
|
9
|
-
* @param session
|
|
10
|
-
* @param dataTypeManager
|
|
11
|
-
* @async
|
|
12
|
-
*/
|
|
13
|
-
export declare function populateDataTypeManager(session: IBasicSession, dataTypeManager: ExtraDataTypeManager): Promise<void>;
|
|
14
|
-
export declare function getDataTypeDefinition(session: IBasicSession, dataTypeNodeId: NodeId, dataTypeManager: ExtraDataTypeManager): Promise<StructuredTypeSchema>;
|
|
15
|
-
interface Cache {
|
|
16
|
-
fieldTypeName: string;
|
|
17
|
-
schema: TypeDefinition;
|
|
18
|
-
category: FieldCategory;
|
|
19
|
-
}
|
|
20
|
-
export declare function convertDataTypeDefinitionToStructureTypeSchema(session: IBasicSession, dataTypeNodeId: NodeId, name: string, definition: DataTypeDefinition, dataTypeFactory: DataTypeFactory, cache: {
|
|
21
|
-
[key: string]: Cache;
|
|
22
|
-
}): Promise<StructuredTypeSchema>;
|
|
23
|
-
export declare function extractNamespaceDataType(session: IBasicSession): Promise<ExtraDataTypeManager>;
|
|
24
|
-
export declare function getExtensionObjectConstructor(session: IBasicSession, dataTypeNodeId: NodeId): Promise<AnyConstructorFunc>;
|
|
25
|
-
export {};
|