node-opcua-factory 2.51.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 (54) hide show
  1. package/LICENSE +20 -0
  2. package/dist/constructor_type.d.ts +15 -0
  3. package/dist/constructor_type.js +3 -0
  4. package/dist/constructor_type.js.map +1 -0
  5. package/dist/datatype_factory.d.ts +40 -0
  6. package/dist/datatype_factory.js +330 -0
  7. package/dist/datatype_factory.js.map +1 -0
  8. package/dist/factories_baseobject.d.ts +56 -0
  9. package/dist/factories_baseobject.js +498 -0
  10. package/dist/factories_baseobject.js.map +1 -0
  11. package/dist/factories_basic_type.d.ts +40 -0
  12. package/dist/factories_basic_type.js +136 -0
  13. package/dist/factories_basic_type.js.map +1 -0
  14. package/dist/factories_builtin_types.d.ts +32 -0
  15. package/dist/factories_builtin_types.js +262 -0
  16. package/dist/factories_builtin_types.js.map +1 -0
  17. package/dist/factories_builtin_types_special.d.ts +5 -0
  18. package/dist/factories_builtin_types_special.js +46 -0
  19. package/dist/factories_builtin_types_special.js.map +1 -0
  20. package/dist/factories_enumerations.d.ts +31 -0
  21. package/dist/factories_enumerations.js +77 -0
  22. package/dist/factories_enumerations.js.map +1 -0
  23. package/dist/factories_factories.d.ts +17 -0
  24. package/dist/factories_factories.js +54 -0
  25. package/dist/factories_factories.js.map +1 -0
  26. package/dist/factories_id_generator.d.ts +3 -0
  27. package/dist/factories_id_generator.js +22 -0
  28. package/dist/factories_id_generator.js.map +1 -0
  29. package/dist/factories_schema_helpers.d.ts +26 -0
  30. package/dist/factories_schema_helpers.js +121 -0
  31. package/dist/factories_schema_helpers.js.map +1 -0
  32. package/dist/factories_structuredTypeSchema.d.ts +46 -0
  33. package/dist/factories_structuredTypeSchema.js +269 -0
  34. package/dist/factories_structuredTypeSchema.js.map +1 -0
  35. package/dist/index.d.ts +15 -0
  36. package/dist/index.js +28 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/types.d.ts +111 -0
  39. package/dist/types.js +56 -0
  40. package/dist/types.js.map +1 -0
  41. package/package.json +41 -0
  42. package/source/constructor_type.ts +18 -0
  43. package/source/datatype_factory.ts +368 -0
  44. package/source/factories_baseobject.ts +567 -0
  45. package/source/factories_basic_type.ts +168 -0
  46. package/source/factories_builtin_types.ts +381 -0
  47. package/source/factories_builtin_types_special.ts +55 -0
  48. package/source/factories_enumerations.ts +97 -0
  49. package/source/factories_factories.ts +58 -0
  50. package/source/factories_id_generator.ts +18 -0
  51. package/source/factories_schema_helpers.ts +125 -0
  52. package/source/factories_structuredTypeSchema.ts +330 -0
  53. package/source/index.ts +15 -0
  54. package/source/types.ts +180 -0
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ /**
3
+ * @module node-opcua-factory
4
+ */
5
+ // tslint:disable:no-console
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.dump = exports.registerClassDefinition = exports.constructObject = exports.hasConstructor = exports.getConstructor = exports.getStructuredTypeSchema = exports.hasStructuredType = exports.getStructureTypeConstructor = exports.getStandardDataTypeFactory = void 0;
8
+ const node_opcua_debug_1 = require("node-opcua-debug");
9
+ const datatype_factory_1 = require("./datatype_factory");
10
+ const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
11
+ const doDebug = (0, node_opcua_debug_1.checkDebugFlag)(__filename);
12
+ let globalFactory;
13
+ function getStandardDataTypeFactory() {
14
+ if (!globalFactory) {
15
+ globalFactory = new datatype_factory_1.DataTypeFactory([]);
16
+ globalFactory.targetNamespace = "http://opcfoundation.org/UA/";
17
+ }
18
+ return globalFactory;
19
+ }
20
+ exports.getStandardDataTypeFactory = getStandardDataTypeFactory;
21
+ function getStructureTypeConstructor(typeName) {
22
+ return getStandardDataTypeFactory().getStructureTypeConstructor(typeName);
23
+ }
24
+ exports.getStructureTypeConstructor = getStructureTypeConstructor;
25
+ function hasStructuredType(typeName) {
26
+ return getStandardDataTypeFactory().hasStructuredType(typeName);
27
+ }
28
+ exports.hasStructuredType = hasStructuredType;
29
+ function getStructuredTypeSchema(typeName) {
30
+ return getStandardDataTypeFactory().getStructuredTypeSchema(typeName);
31
+ }
32
+ exports.getStructuredTypeSchema = getStructuredTypeSchema;
33
+ function getConstructor(binaryEncodingNodeId) {
34
+ return getStandardDataTypeFactory().getConstructor(binaryEncodingNodeId);
35
+ }
36
+ exports.getConstructor = getConstructor;
37
+ function hasConstructor(binaryEncodingNodeId) {
38
+ return getStandardDataTypeFactory().hasConstructor(binaryEncodingNodeId);
39
+ }
40
+ exports.hasConstructor = hasConstructor;
41
+ function constructObject(binaryEncodingNodeId) {
42
+ return getStandardDataTypeFactory().constructObject(binaryEncodingNodeId);
43
+ }
44
+ exports.constructObject = constructObject;
45
+ function registerClassDefinition(dataTypeNodeId, className, classConstructor) {
46
+ return getStandardDataTypeFactory().registerClassDefinition(dataTypeNodeId, className, classConstructor);
47
+ }
48
+ exports.registerClassDefinition = registerClassDefinition;
49
+ /* istanbul ignore next */
50
+ function dump() {
51
+ getStandardDataTypeFactory().dump();
52
+ }
53
+ exports.dump = dump;
54
+ //# sourceMappingURL=factories_factories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factories_factories.js","sourceRoot":"","sources":["../source/factories_factories.ts"],"names":[],"mappings":";AAAA;;GAEG;AACH,4BAA4B;;;AAK5B,uDAAiE;AAGjE,yDAAqD;AAMrD,MAAM,QAAQ,GAAG,IAAA,gCAAa,EAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,OAAO,GAAG,IAAA,iCAAc,EAAC,UAAU,CAAC,CAAC;AAE3C,IAAI,aAA8B,CAAC;AACnC,SAAgB,0BAA0B;IACtC,IAAI,CAAC,aAAa,EAAE;QAChB,aAAa,GAAG,IAAI,kCAAe,CAAC,EAAE,CAAC,CAAC;QACxC,aAAa,CAAC,eAAe,GAAG,8BAA8B,CAAC;KAClE;IACD,OAAO,aAAa,CAAC;AACzB,CAAC;AAND,gEAMC;AACD,SAAgB,2BAA2B,CAAC,QAAgB;IACxD,OAAO,0BAA0B,EAAE,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;AAC9E,CAAC;AAFD,kEAEC;AACD,SAAgB,iBAAiB,CAAC,QAAgB;IAC9C,OAAO,0BAA0B,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACpE,CAAC;AAFD,8CAEC;AACD,SAAgB,uBAAuB,CAAC,QAAgB;IACpD,OAAO,0BAA0B,EAAE,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AAC1E,CAAC;AAFD,0DAEC;AAED,SAAgB,cAAc,CAAC,oBAAoC;IAC/D,OAAO,0BAA0B,EAAE,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;AAC7E,CAAC;AAFD,wCAEC;AACD,SAAgB,cAAc,CAAC,oBAAoC;IAC/D,OAAO,0BAA0B,EAAE,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;AAC7E,CAAC;AAFD,wCAEC;AACD,SAAgB,eAAe,CAAC,oBAAoC;IAChE,OAAO,0BAA0B,EAAE,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;AAC9E,CAAC;AAFD,0CAEC;AACD,SAAgB,uBAAuB,CACnC,cAAsB,EACtB,SAAiB,EACjB,gBAA2C;IAE3C,OAAO,0BAA0B,EAAE,CAAC,uBAAuB,CAAC,cAAc,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;AAC7G,CAAC;AAND,0DAMC;AACD,0BAA0B;AAC1B,SAAgB,IAAI;IAChB,0BAA0B,EAAE,CAAC,IAAI,EAAE,CAAC;AACxC,CAAC;AAFD,oBAEC"}
@@ -0,0 +1,3 @@
1
+ export declare function generate_new_id(): number;
2
+ export declare function next_available_id(): number;
3
+ export declare function is_internal_id(value: number): boolean;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.is_internal_id = exports.next_available_id = exports.generate_new_id = void 0;
4
+ /**
5
+ * @module node-opcua-factory
6
+ */
7
+ const _FIRST_INTERNAL_ID = 0xFFFE0000;
8
+ let _nextAvailableId = _FIRST_INTERNAL_ID;
9
+ function generate_new_id() {
10
+ _nextAvailableId += 1;
11
+ return _nextAvailableId;
12
+ }
13
+ exports.generate_new_id = generate_new_id;
14
+ function next_available_id() {
15
+ return -1;
16
+ }
17
+ exports.next_available_id = next_available_id;
18
+ function is_internal_id(value) {
19
+ return value >= _FIRST_INTERNAL_ID;
20
+ }
21
+ exports.is_internal_id = is_internal_id;
22
+ //# sourceMappingURL=factories_id_generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factories_id_generator.js","sourceRoot":"","sources":["../source/factories_id_generator.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAEtC,IAAI,gBAAgB,GAAG,kBAAkB,CAAC;AAE1C,SAAgB,eAAe;IAC3B,gBAAgB,IAAI,CAAC,CAAC;IACtB,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AAHD,0CAGC;AAED,SAAgB,iBAAiB;IAC7B,OAAO,CAAC,CAAC,CAAC;AACd,CAAC;AAFD,8CAEC;AACD,SAAgB,cAAc,CAAC,KAAa;IACxC,OAAO,KAAK,IAAI,kBAAkB,CAAC;AACvC,CAAC;AAFD,wCAEC"}
@@ -0,0 +1,26 @@
1
+ import { FieldType, StructuredTypeField } from "./types";
2
+ export declare const parameters: {
3
+ debugSchemaHelper: boolean;
4
+ };
5
+ /**
6
+ * ensure correctness of a schema object.
7
+ *
8
+ * @method check_schema_correctness
9
+ * @param schema
10
+ *
11
+ */
12
+ export declare function check_schema_correctness(schema: any): void;
13
+ /**
14
+ * @method initialize_value
15
+ * @param value
16
+ * @param defaultValue
17
+ * @return {*}
18
+ */
19
+ export declare function initialize_field(field: StructuredTypeField, value: any): any;
20
+ /**
21
+ * @method initialize_field_array
22
+ * @param field
23
+ * @param valueArray
24
+ * @return
25
+ */
26
+ export declare function initialize_field_array(field: FieldType, valueArray: any): any[] | null;
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initialize_field_array = exports.initialize_field = exports.check_schema_correctness = exports.parameters = void 0;
4
+ /**
5
+ * @module node-opcua-factory
6
+ */
7
+ const node_opcua_assert_1 = require("node-opcua-assert");
8
+ const node_opcua_debug_1 = require("node-opcua-debug");
9
+ const types_1 = require("./types");
10
+ const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
11
+ exports.parameters = {
12
+ debugSchemaHelper: !!process.env.DEBUG_CLASS
13
+ };
14
+ /**
15
+ * ensure correctness of a schema object.
16
+ *
17
+ * @method check_schema_correctness
18
+ * @param schema
19
+ *
20
+ */
21
+ function check_schema_correctness(schema) {
22
+ (0, node_opcua_assert_1.assert)(typeof schema.name === "string", " expecting schema to have a name");
23
+ (0, node_opcua_assert_1.assert)(schema.fields instanceof Array, " expecting schema to provide a set of fields " + schema.name);
24
+ (0, node_opcua_assert_1.assert)(schema.baseType === undefined || typeof schema.baseType === "string");
25
+ }
26
+ exports.check_schema_correctness = check_schema_correctness;
27
+ /**
28
+ * @method initialize_value
29
+ * @param value
30
+ * @param defaultValue
31
+ * @return {*}
32
+ */
33
+ function initialize_field(field, value) {
34
+ const _t = field.schema;
35
+ if (!(_t !== null && typeof _t === "object")) {
36
+ throw new Error("initialize_field: expecting field.schema to be set field.name = '" + field.name + "' type = " + field.fieldType);
37
+ }
38
+ if (field.category === types_1.FieldCategory.complex) {
39
+ if (field.fieldTypeConstructor) {
40
+ return new field.fieldTypeConstructor(value);
41
+ }
42
+ else {
43
+ debugLog("xxxx => missing constructor for field type", field.fieldType);
44
+ }
45
+ }
46
+ if (value === undefined || value === null) {
47
+ const defaultValue = _t.computer_default_value ? _t.computer_default_value(field.defaultValue) : field.defaultValue;
48
+ if (value === undefined) {
49
+ if (_t.coerce) {
50
+ return _t.coerce(defaultValue);
51
+ }
52
+ return defaultValue;
53
+ }
54
+ if (defaultValue === null) {
55
+ if (value === null) {
56
+ return null;
57
+ }
58
+ }
59
+ }
60
+ if (_t.coerce) {
61
+ value = _t.coerce(value);
62
+ }
63
+ if (field.validate) {
64
+ if (!field.validate(value)) {
65
+ throw Error(" invalid value " + value + " for field " + field.name + " of type " + field.fieldType);
66
+ }
67
+ }
68
+ return value;
69
+ }
70
+ exports.initialize_field = initialize_field;
71
+ function initialize_value(value, defaultValue, _t) {
72
+ if (value === undefined) {
73
+ return defaultValue;
74
+ }
75
+ if (defaultValue === null) {
76
+ if (value === null) {
77
+ return null;
78
+ }
79
+ }
80
+ if (_t.coerce) {
81
+ value = _t.coerce(value);
82
+ return value;
83
+ }
84
+ return value;
85
+ }
86
+ /**
87
+ * @method initialize_field_array
88
+ * @param field
89
+ * @param valueArray
90
+ * @return
91
+ */
92
+ function initialize_field_array(field, valueArray) {
93
+ const _t = field.schema;
94
+ let value;
95
+ let i;
96
+ (0, node_opcua_assert_1.assert)(field !== null && typeof field === "object");
97
+ (0, node_opcua_assert_1.assert)(field.isArray);
98
+ if (!valueArray && field.defaultValue === null) {
99
+ return null;
100
+ }
101
+ valueArray = valueArray || [];
102
+ let defaultValue;
103
+ if (_t.computer_default_value) {
104
+ defaultValue = _t.computer_default_value(field.defaultValue);
105
+ }
106
+ const arr = [];
107
+ for (i = 0; i < valueArray.length; i++) {
108
+ value = initialize_value(valueArray[i], defaultValue, _t);
109
+ arr.push(value);
110
+ }
111
+ if (field.validate) {
112
+ for (i = 0; i < arr.length; i++) {
113
+ if (!field.validate(arr[i])) {
114
+ throw Error(" invalid value " + arr[i] + " for field " + field.name + " of type " + field.fieldType);
115
+ }
116
+ }
117
+ }
118
+ return arr;
119
+ }
120
+ exports.initialize_field_array = initialize_field_array;
121
+ //# sourceMappingURL=factories_schema_helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factories_schema_helpers.js","sourceRoot":"","sources":["../source/factories_schema_helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { FieldType, StructuredTypeOptions, TypeSchemaBase } from "./types";
2
+ import { BinaryStream } from "node-opcua-binary-stream";
3
+ import { ExpandedNodeId, NodeId } from "node-opcua-nodeid";
4
+ import { DataTypeFactory } from "./datatype_factory";
5
+ export declare class StructuredTypeSchema extends TypeSchemaBase {
6
+ fields: FieldType[];
7
+ id: NodeId;
8
+ dataTypeNodeId: NodeId;
9
+ baseType: string;
10
+ _possibleFields: string[];
11
+ _baseSchema: StructuredTypeSchema | null;
12
+ documentation?: string;
13
+ isValid?: (options: any) => boolean;
14
+ decodeDebug?: (stream: BinaryStream, options: any) => any;
15
+ constructHook?: (options: any) => any;
16
+ encodingDefaultBinary?: ExpandedNodeId;
17
+ encodingDefaultXml?: ExpandedNodeId;
18
+ encodingDefaultJson?: ExpandedNodeId;
19
+ bitFields?: any[];
20
+ constructor(options: StructuredTypeOptions);
21
+ toString(): string;
22
+ }
23
+ /**
24
+ *
25
+ * @method get_base_schema
26
+ * @param schema
27
+ * @return {*}
28
+ *
29
+ */
30
+ export declare function get_base_schema(schema: StructuredTypeSchema): StructuredTypeSchema | null;
31
+ /**
32
+ * extract a list of all possible fields for a schema
33
+ * (by walking up the inheritance chain)
34
+ * @method extract_all_fields
35
+ *
36
+ */
37
+ export declare function extract_all_fields(schema: StructuredTypeSchema): string[];
38
+ /**
39
+ * check correctness of option fields against scheme
40
+ *
41
+ * @method check_options_correctness_against_schema
42
+ *
43
+ */
44
+ export declare function check_options_correctness_against_schema(obj: any, schema: StructuredTypeSchema, options: any): boolean;
45
+ export declare function buildStructuredType2(dataTypeFactory: DataTypeFactory, schemaLight: StructuredTypeOptions): StructuredTypeSchema;
46
+ export declare function buildStructuredType(schemaLight: StructuredTypeOptions): StructuredTypeSchema;
@@ -0,0 +1,269 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildStructuredType = exports.buildStructuredType2 = exports.check_options_correctness_against_schema = exports.extract_all_fields = exports.get_base_schema = exports.StructuredTypeSchema = void 0;
4
+ /**
5
+ * @module node-opcua-factory
6
+ */
7
+ const chalk = require("chalk");
8
+ const types_1 = require("./types");
9
+ const node_opcua_assert_1 = require("node-opcua-assert");
10
+ const node_opcua_nodeid_1 = require("node-opcua-nodeid");
11
+ const node_opcua_utils_1 = require("node-opcua-utils");
12
+ const factories_builtin_types_1 = require("./factories_builtin_types");
13
+ const factories_enumerations_1 = require("./factories_enumerations");
14
+ const factories_factories_1 = require("./factories_factories");
15
+ const factories_schema_helpers_1 = require("./factories_schema_helpers");
16
+ function figureOutFieldCategory(field) {
17
+ const fieldType = field.fieldType;
18
+ if (field.category) {
19
+ return field.category;
20
+ }
21
+ if ((0, factories_enumerations_1.hasEnumeration)(fieldType)) {
22
+ return types_1.FieldCategory.enumeration;
23
+ }
24
+ else if ((0, factories_builtin_types_1.hasBuiltInType)(fieldType)) {
25
+ return types_1.FieldCategory.basic;
26
+ }
27
+ else if ((0, factories_factories_1.hasStructuredType)(fieldType)) {
28
+ (0, node_opcua_assert_1.assert)(fieldType !== "LocalizedText"); // LocalizedText should be treated as BasicType!!!
29
+ return types_1.FieldCategory.complex;
30
+ }
31
+ return types_1.FieldCategory.basic;
32
+ }
33
+ const regExp = /((ns[0-9]+:)?)(.*)/;
34
+ function figureOutSchema(underConstructSchema, field, category) {
35
+ if (field.schema) {
36
+ return field.schema;
37
+ }
38
+ if (underConstructSchema.name === field.fieldType) {
39
+ return underConstructSchema;
40
+ }
41
+ let returnValue = null;
42
+ // may be the field.type contains a ns<X>: prefix !! like the one found in Beckhoff PLC !
43
+ const m = field.fieldType.match(regExp);
44
+ /* istanbul ignore next */
45
+ if (!m) {
46
+ throw new Error("malformed fieldType ? : " + field.fieldType);
47
+ }
48
+ const fieldTypeWithoutNS = m[3];
49
+ switch (category) {
50
+ case types_1.FieldCategory.complex:
51
+ if ((0, factories_factories_1.hasStructuredType)(field.fieldType)) {
52
+ returnValue = (0, factories_factories_1.getStructuredTypeSchema)(fieldTypeWithoutNS);
53
+ }
54
+ else {
55
+ // LocalizedText etc ...
56
+ returnValue = (0, factories_builtin_types_1.getBuildInType)(fieldTypeWithoutNS);
57
+ }
58
+ break;
59
+ case types_1.FieldCategory.basic:
60
+ returnValue = (0, factories_builtin_types_1.getBuildInType)(fieldTypeWithoutNS);
61
+ break;
62
+ case types_1.FieldCategory.enumeration:
63
+ returnValue = (0, factories_enumerations_1.getEnumeration)(fieldTypeWithoutNS);
64
+ break;
65
+ }
66
+ if (null === returnValue || undefined === returnValue) {
67
+ returnValue = (0, factories_enumerations_1.getEnumeration)(fieldTypeWithoutNS);
68
+ throw new Error("Cannot find Schema for field with name " +
69
+ field.name +
70
+ " fieldTypeWithoutNS= " +
71
+ fieldTypeWithoutNS +
72
+ " with type " +
73
+ field.fieldType +
74
+ " category = " +
75
+ category +
76
+ JSON.stringify(field, null, "\t"));
77
+ }
78
+ return returnValue;
79
+ }
80
+ function buildField(underConstructSchema, fieldLight) {
81
+ const category = figureOutFieldCategory(fieldLight);
82
+ const schema = figureOutSchema(underConstructSchema, fieldLight, category);
83
+ /* istanbul ignore next */
84
+ if (!schema) {
85
+ throw new Error("expecting a valid schema for field with name " +
86
+ fieldLight.name +
87
+ " with type " +
88
+ fieldLight.fieldType +
89
+ " category" +
90
+ category);
91
+ }
92
+ return {
93
+ name: (0, node_opcua_utils_1.lowerFirstLetter)(fieldLight.name),
94
+ category,
95
+ defaultValue: fieldLight.defaultValue,
96
+ isArray: fieldLight.isArray,
97
+ documentation: fieldLight.documentation,
98
+ fieldType: fieldLight.fieldType,
99
+ switchBit: fieldLight.switchBit,
100
+ switchValue: fieldLight.switchValue,
101
+ schema
102
+ };
103
+ }
104
+ class StructuredTypeSchema extends types_1.TypeSchemaBase {
105
+ constructor(options) {
106
+ super(options);
107
+ this.bitFields = options.bitFields;
108
+ this.baseType = options.baseType;
109
+ this.category = types_1.FieldCategory.complex;
110
+ if ((0, factories_builtin_types_1.hasBuiltInType)(options.name)) {
111
+ this.category = types_1.FieldCategory.basic;
112
+ }
113
+ this.fields = options.fields.map(buildField.bind(null, this));
114
+ this.id = node_opcua_nodeid_1.NodeId.nullNodeId;
115
+ this.dataTypeNodeId = node_opcua_nodeid_1.NodeId.nullNodeId;
116
+ this._possibleFields = this.fields.map((field) => field.name);
117
+ this._baseSchema = null;
118
+ }
119
+ toString() {
120
+ var _a, _b, _c;
121
+ const str = [];
122
+ str.push("name = " + this.name);
123
+ str.push("baseType = " + this.baseType);
124
+ str.push("id = " + this.id.toString());
125
+ str.push("bitFields = " + (this.bitFields ? this.bitFields.map((b) => b.name).join(" ") : undefined));
126
+ str.push("dataTypeNodeId = " + (this.dataTypeNodeId ? this.dataTypeNodeId.toString() : undefined));
127
+ str.push("documentation = " + this.documentation);
128
+ str.push("encodingDefaultBinary = " + ((_a = this.encodingDefaultBinary) === null || _a === void 0 ? void 0 : _a.toString()));
129
+ str.push("encodingDefaultXml = " + ((_b = this.encodingDefaultXml) === null || _b === void 0 ? void 0 : _b.toString()));
130
+ str.push("encodingDefaultJson = " + ((_c = this.encodingDefaultJson) === null || _c === void 0 ? void 0 : _c.toString()));
131
+ for (const f of this.fields) {
132
+ str.push(" field = " +
133
+ f.name.padEnd(30) +
134
+ " isArray= " +
135
+ (f.isArray ? true : false) +
136
+ " " +
137
+ f.fieldType.toString().padEnd(30) +
138
+ (f.switchBit !== undefined ? " switchBit " + f.switchBit : "") +
139
+ (f.switchValue !== undefined ? " switchValue " + f.switchValue : ""));
140
+ }
141
+ return str.join("\n");
142
+ }
143
+ }
144
+ exports.StructuredTypeSchema = StructuredTypeSchema;
145
+ /**
146
+ *
147
+ * @method get_base_schema
148
+ * @param schema
149
+ * @return {*}
150
+ *
151
+ */
152
+ function get_base_schema(schema) {
153
+ let baseSchema = schema._baseSchema;
154
+ if (baseSchema) {
155
+ return baseSchema;
156
+ }
157
+ if (schema.baseType === "ExtensionObject" || schema.baseType === "DataTypeDefinition") {
158
+ return null;
159
+ }
160
+ if (schema.baseType === "Union") {
161
+ return null;
162
+ }
163
+ if (schema.baseType && schema.baseType !== "BaseUAObject" && schema.baseType !== "DataTypeDefinition") {
164
+ if (!(0, factories_factories_1.hasStructuredType)(schema.baseType)) {
165
+ return null;
166
+ }
167
+ const baseType = (0, factories_factories_1.getStructureTypeConstructor)(schema.baseType);
168
+ // istanbul ignore next
169
+ if (!baseType) {
170
+ throw new Error(" cannot find factory for " + schema.baseType);
171
+ }
172
+ if (baseType.prototype.schema) {
173
+ baseSchema = baseType.prototype.schema;
174
+ }
175
+ }
176
+ // put in cache for speedup
177
+ schema._baseSchema = baseSchema;
178
+ return baseSchema;
179
+ }
180
+ exports.get_base_schema = get_base_schema;
181
+ /**
182
+ * extract a list of all possible fields for a schema
183
+ * (by walking up the inheritance chain)
184
+ * @method extract_all_fields
185
+ *
186
+ */
187
+ function extract_all_fields(schema) {
188
+ // returns cached result if any
189
+ // istanbul ignore next
190
+ if (schema._possibleFields) {
191
+ return schema._possibleFields;
192
+ }
193
+ // extract the possible fields from the schema.
194
+ let possibleFields = schema.fields.map((field) => field.name);
195
+ const baseSchema = get_base_schema(schema);
196
+ // istanbul ignore next
197
+ if (baseSchema) {
198
+ const fields = extract_all_fields(baseSchema);
199
+ possibleFields = fields.concat(possibleFields);
200
+ }
201
+ // put in cache to speed up
202
+ schema._possibleFields = possibleFields;
203
+ return possibleFields;
204
+ }
205
+ exports.extract_all_fields = extract_all_fields;
206
+ /**
207
+ * check correctness of option fields against scheme
208
+ *
209
+ * @method check_options_correctness_against_schema
210
+ *
211
+ */
212
+ function check_options_correctness_against_schema(obj, schema, options) {
213
+ if (!factories_schema_helpers_1.parameters.debugSchemaHelper) {
214
+ return true; // ignoring set
215
+ }
216
+ options = options || {};
217
+ // istanbul ignore next
218
+ if (!(options !== null && typeof options === "object") && !(typeof options === "object")) {
219
+ let message = chalk.red(" Invalid options specified while trying to construct a ") + " " + chalk.yellow(schema.name);
220
+ message += "\n";
221
+ message += chalk.red(" expecting a ") + chalk.yellow(" Object ");
222
+ message += "\n";
223
+ message += chalk.red(" and got a ") + chalk.yellow(typeof options) + chalk.red(" instead ");
224
+ // console.log(" Schema = ", schema);
225
+ // console.log(" options = ", options);
226
+ throw new Error(message);
227
+ }
228
+ // istanbul ignore next
229
+ if (options instanceof obj.constructor) {
230
+ return true;
231
+ }
232
+ // extract the possible fields from the schema.
233
+ const possibleFields = obj.constructor.possibleFields || schema._possibleFields;
234
+ // extracts the fields exposed by the option object
235
+ const currentFields = Object.keys(options);
236
+ // get a list of field that are in the 'options' object but not in schema
237
+ // https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore
238
+ function difference(a1, a2) {
239
+ return [a1, a2].reduce((a, b) => a.filter((value) => !b.includes(value)));
240
+ }
241
+ const invalidOptionsFields = difference(currentFields, possibleFields);
242
+ /* istanbul ignore next */
243
+ if (invalidOptionsFields.length > 0) {
244
+ // tslint:disable:no-console
245
+ console.log("expected schema", schema.name);
246
+ console.log(chalk.yellow("possible fields= "), possibleFields.sort().join(" "));
247
+ console.log(chalk.red("current fields= "), currentFields.sort().join(" "));
248
+ console.log(chalk.cyan("invalid_options_fields= "), invalidOptionsFields.sort().join(" "));
249
+ console.log("options = ", options);
250
+ }
251
+ /* istanbul ignore next */
252
+ if (invalidOptionsFields.length !== 0) {
253
+ // tslint:disable:no-console
254
+ console.log(chalk.yellow("possible fields= "), possibleFields.sort().join(" "));
255
+ console.log(chalk.red("current fields= "), currentFields.sort().join(" "));
256
+ throw new Error(" invalid field found in option :" + JSON.stringify(invalidOptionsFields));
257
+ }
258
+ return true;
259
+ }
260
+ exports.check_options_correctness_against_schema = check_options_correctness_against_schema;
261
+ function buildStructuredType2(dataTypeFactory, schemaLight) {
262
+ return new StructuredTypeSchema(schemaLight);
263
+ }
264
+ exports.buildStructuredType2 = buildStructuredType2;
265
+ function buildStructuredType(schemaLight) {
266
+ return new StructuredTypeSchema(schemaLight);
267
+ }
268
+ exports.buildStructuredType = buildStructuredType;
269
+ //# sourceMappingURL=factories_structuredTypeSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factories_structuredTypeSchema.js","sourceRoot":"","sources":["../source/factories_structuredTypeSchema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @module node-opcua-factory
3
+ */
4
+ export * from "./constructor_type";
5
+ export * from "./datatype_factory";
6
+ export * from "./factories_id_generator";
7
+ export * from "./factories_enumerations";
8
+ export * from "./factories_basic_type";
9
+ export * from "./factories_builtin_types";
10
+ export * from "./factories_builtin_types_special";
11
+ export * from "./factories_baseobject";
12
+ export * from "./types";
13
+ export * from "./factories_schema_helpers";
14
+ export * from "./factories_factories";
15
+ export * from "./factories_structuredTypeSchema";
package/dist/index.js ADDED
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ /**
14
+ * @module node-opcua-factory
15
+ */
16
+ __exportStar(require("./constructor_type"), exports);
17
+ __exportStar(require("./datatype_factory"), exports);
18
+ __exportStar(require("./factories_id_generator"), exports);
19
+ __exportStar(require("./factories_enumerations"), exports);
20
+ __exportStar(require("./factories_basic_type"), exports);
21
+ __exportStar(require("./factories_builtin_types"), exports);
22
+ __exportStar(require("./factories_builtin_types_special"), exports);
23
+ __exportStar(require("./factories_baseobject"), exports);
24
+ __exportStar(require("./types"), exports);
25
+ __exportStar(require("./factories_schema_helpers"), exports);
26
+ __exportStar(require("./factories_factories"), exports);
27
+ __exportStar(require("./factories_structuredTypeSchema"), exports);
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;GAEG;AACH,qDAAmC;AACnC,qDAAmC;AACnC,2DAAyC;AACzC,2DAAyC;AACzC,yDAAuC;AACvC,4DAA0C;AAC1C,oEAAkD;AAClD,yDAAuC;AACvC,0CAAwB;AACxB,6DAA2C;AAC3C,wDAAsC;AACtC,mEAAiD"}