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.
Files changed (32) hide show
  1. package/dist/convert_data_type_definition_to_structuretype_schema.d.ts +12 -12
  2. package/dist/convert_data_type_definition_to_structuretype_schema.js +331 -327
  3. package/dist/convert_data_type_definition_to_structuretype_schema.js.map +1 -1
  4. package/dist/extra_data_type_manager.d.ts +16 -16
  5. package/dist/extra_data_type_manager.js +75 -75
  6. package/dist/get_extension_object_constructor.d.ts +7 -7
  7. package/dist/get_extension_object_constructor.js +37 -37
  8. package/dist/get_extra_data_type_manager.d.ts +3 -3
  9. package/dist/get_extra_data_type_manager.js +51 -51
  10. package/dist/index.d.ts +11 -11
  11. package/dist/index.js +27 -23
  12. package/dist/index.js.map +1 -1
  13. package/dist/populate_data_type_manager.d.ts +3 -3
  14. package/dist/populate_data_type_manager.js +25 -25
  15. package/dist/private/find_encodings.d.ts +4 -4
  16. package/dist/private/find_encodings.js +55 -55
  17. package/dist/private/populate_data_type_manager_103.d.ts +9 -9
  18. package/dist/private/populate_data_type_manager_103.js +601 -601
  19. package/dist/private/populate_data_type_manager_104.d.ts +9 -9
  20. package/dist/private/populate_data_type_manager_104.js +145 -145
  21. package/dist/promote_opaque_structure.d.ts +6 -6
  22. package/dist/promote_opaque_structure.js +41 -41
  23. package/dist/resolve_dynamic_extension_object.d.ts +4 -4
  24. package/dist/resolve_dynamic_extension_object.js +105 -105
  25. package/package.json +19 -19
  26. package/source/convert_data_type_definition_to_structuretype_schema.ts +31 -14
  27. package/dist/client_dynamic_extension_object.d.ts +0 -25
  28. package/dist/client_dynamic_extension_object.js +0 -1058
  29. package/dist/client_dynamic_extension_object.js.map +0 -1
  30. package/dist/convert_data_type_definition_to_structure_type_schema.d.ts +0 -1
  31. package/dist/convert_data_type_definition_to_structure_type_schema.js +0 -3
  32. 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.64.1",
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": "node -e \"require('rimraf').sync('dist');\"",
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.64.1",
15
- "node-opcua-binary-stream": "2.64.1",
16
- "node-opcua-constants": "2.64.1",
17
- "node-opcua-data-model": "2.64.1",
18
- "node-opcua-data-value": "2.64.1",
19
- "node-opcua-debug": "2.64.1",
20
- "node-opcua-extension-object": "2.64.1",
21
- "node-opcua-factory": "2.64.1",
22
- "node-opcua-nodeid": "2.64.1",
23
- "node-opcua-pseudo-session": "2.64.1",
24
- "node-opcua-schemas": "2.64.1",
25
- "node-opcua-service-browse": "2.64.1",
26
- "node-opcua-service-translate-browse-path": "2.64.1",
27
- "node-opcua-status-code": "2.64.1",
28
- "node-opcua-types": "2.64.1",
29
- "node-opcua-variant": "2.64.1"
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": "b65b8738603cd475d7d99a2b20b0ae9d32b4110c"
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 { EnumDefinition, DataTypeDefinition, StructureDefinition, StructureType, StructureField } from "node-opcua-types";
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, category: FieldCategory}> {
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 ) => void)[] = [];
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 && fieldD.dataType.namespace === dataTypeNodeId.namespace ) {
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( (schema: StructuredTypeSchema )=> {
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(fieldD: StructureField, switchBit: number, bitFields: { name: string; length?: number | undefined; }[] | undefined, isUnion: boolean, switchValue: number) {
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 {};