node-opcua-address-space 2.136.0 → 2.138.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/source/helpers/adjust_browse_direction.js +1 -2
- package/dist/source/helpers/adjust_browse_direction.js.map +1 -1
- package/dist/source/helpers/argument_list.js +6 -7
- package/dist/source/helpers/argument_list.js.map +1 -1
- package/dist/source/helpers/call_helpers.js +1 -2
- package/dist/source/helpers/call_helpers.js.map +1 -1
- package/dist/source/helpers/coerce_enum_value.js +1 -2
- package/dist/source/helpers/coerce_enum_value.js.map +1 -1
- package/dist/source/helpers/dump_tools.js +5 -6
- package/dist/source/helpers/dump_tools.js.map +1 -1
- package/dist/source/helpers/ensure_secure_access.js +1 -2
- package/dist/source/helpers/ensure_secure_access.js.map +1 -1
- package/dist/source/helpers/make_optionals_map.d.ts +1 -3
- package/dist/source/helpers/make_optionals_map.js +7 -4
- package/dist/source/helpers/make_optionals_map.js.map +1 -1
- package/dist/source/helpers/multiform_func.js +2 -3
- package/dist/source/helpers/multiform_func.js.map +1 -1
- package/dist/source/helpers/resolve_opaque_on_address_space.js +1 -2
- package/dist/source/helpers/resolve_opaque_on_address_space.js.map +1 -1
- package/dist/source/index.d.ts +2 -0
- package/dist/source/index.js +2 -0
- package/dist/source/index.js.map +1 -1
- package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.d.ts +0 -3
- package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +0 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +0 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js.map +1 -1
- package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +1 -1
- package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +1 -2
- package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +1 -0
- package/dist/source/loader/decode_xml_extension_object.d.ts +1 -1
- package/dist/source/loader/decode_xml_extension_object.js +4 -5
- package/dist/source/loader/decode_xml_extension_object.js.map +1 -1
- package/dist/source/loader/ensure_datatype_extracted.js +32 -4
- package/dist/source/loader/ensure_datatype_extracted.js.map +1 -1
- package/dist/source/loader/generateAddressSpaceRaw.js +3 -4
- package/dist/source/loader/generateAddressSpaceRaw.js.map +1 -1
- package/dist/source/loader/load_nodeset2.js +145 -737
- package/dist/source/loader/load_nodeset2.js.map +1 -1
- package/dist/source/loader/make_semver_compatible.js +1 -2
- package/dist/source/loader/make_semver_compatible.js.map +1 -1
- package/dist/source/loader/make_xml_extension_object_parser.d.ts +1 -6
- package/dist/source/loader/make_xml_extension_object_parser.js +52 -73
- package/dist/source/loader/make_xml_extension_object_parser.js.map +1 -1
- package/dist/source/loader/namespace_post_step.d.ts +4 -6
- package/dist/source/loader/namespace_post_step.js +5 -5
- package/dist/source/loader/namespace_post_step.js.map +1 -1
- package/dist/source/loader/parsers/extension_object_parser.d.ts +51 -0
- package/dist/source/loader/parsers/extension_object_parser.js +269 -0
- package/dist/source/loader/parsers/extension_object_parser.js.map +1 -0
- package/dist/source/loader/parsers/localized_text_parser.d.ts +25 -0
- package/dist/source/loader/parsers/localized_text_parser.js +30 -0
- package/dist/source/loader/parsers/localized_text_parser.js.map +1 -0
- package/dist/source/loader/parsers/nodeid_parser.d.ts +11 -0
- package/dist/source/loader/parsers/nodeid_parser.js +20 -0
- package/dist/source/loader/parsers/nodeid_parser.js.map +1 -0
- package/dist/source/loader/parsers/qualified_name_parser.d.ts +26 -0
- package/dist/source/loader/parsers/qualified_name_parser.js +35 -0
- package/dist/source/loader/parsers/qualified_name_parser.js.map +1 -0
- package/dist/source/loader/parsers/variant_parser.d.ts +29 -0
- package/dist/source/loader/parsers/variant_parser.js +328 -0
- package/dist/source/loader/parsers/variant_parser.js.map +1 -0
- package/dist/source/loader/register_node_promoter.js +2 -3
- package/dist/source/loader/register_node_promoter.js.map +1 -1
- package/dist/source/pseudo_session.d.ts +0 -2
- package/dist/source/pseudo_session.js +3 -3
- package/dist/source/pseudo_session.js.map +1 -1
- package/dist/source/session_context.d.ts +1 -1
- package/dist/source/session_context.js +3 -3
- package/dist/source/session_context.js.map +1 -1
- package/dist/source/set_namespace_meta_data.js +1 -2
- package/dist/source/set_namespace_meta_data.js.map +1 -1
- package/dist/source/ua_addin.d.ts +11 -0
- package/dist/source/ua_addin.js +42 -0
- package/dist/source/ua_addin.js.map +1 -0
- package/dist/source/ua_interface.d.ts +3 -0
- package/dist/source/ua_interface.js +45 -0
- package/dist/source/ua_interface.js.map +1 -0
- package/dist/source/xml_writer.d.ts +3 -5
- package/dist/src/_instantiate_helpers.d.ts +1 -1
- package/dist/src/_instantiate_helpers.js +7 -8
- package/dist/src/_instantiate_helpers.js.map +1 -1
- package/dist/src/_mandatory_child_or_requested_optional_filter.d.ts +3 -1
- package/dist/src/_mandatory_child_or_requested_optional_filter.js +6 -5
- package/dist/src/_mandatory_child_or_requested_optional_filter.js.map +1 -1
- package/dist/src/address_space.d.ts +1 -5
- package/dist/src/address_space.js +1 -1
- package/dist/src/address_space.js.map +1 -1
- package/dist/src/address_space_change_event_tools.js +3 -4
- package/dist/src/address_space_change_event_tools.js.map +1 -1
- package/dist/src/alarms_and_conditions/condition.d.ts +4 -7
- package/dist/src/alarms_and_conditions/condition.js +1 -25
- package/dist/src/alarms_and_conditions/condition.js.map +1 -1
- package/dist/src/alarms_and_conditions/condition_snapshot_impl.d.ts +2 -20
- package/dist/src/alarms_and_conditions/condition_snapshot_impl.js +211 -234
- package/dist/src/alarms_and_conditions/condition_snapshot_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +4 -5
- package/dist/src/alarms_and_conditions/deviation_alarm_helper.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +0 -2
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +1 -2
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_base_event_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +0 -2
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +3 -3
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +0 -2
- package/dist/src/alarms_and_conditions/ua_condition_impl.js +10 -12
- package/dist/src/alarms_and_conditions/ua_condition_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js.map +1 -1
- package/dist/src/apply_condition_refresh.d.ts +1 -3
- package/dist/src/apply_condition_refresh.js +4 -5
- package/dist/src/apply_condition_refresh.js.map +1 -1
- package/dist/src/base_node_impl.d.ts +0 -1
- package/dist/src/base_node_impl.js +11 -11
- package/dist/src/base_node_impl.js.map +1 -1
- package/dist/src/base_node_private.d.ts +4 -7
- package/dist/src/base_node_private.js +23 -25
- package/dist/src/base_node_private.js.map +1 -1
- package/dist/src/check_value_rank_compatibility.js +1 -2
- package/dist/src/check_value_rank_compatibility.js.map +1 -1
- package/dist/src/data_access/add_dataItem_stuff.js +1 -2
- package/dist/src/data_access/add_dataItem_stuff.js.map +1 -1
- package/dist/src/data_access/adjust_datavalue_status_code.js +1 -2
- package/dist/src/data_access/adjust_datavalue_status_code.js.map +1 -1
- package/dist/src/data_access/ua_multistate_discrete_impl.js +3 -3
- package/dist/src/data_access/ua_multistate_discrete_impl.js.map +1 -1
- package/dist/src/data_access/ua_multistate_value_discrete_impl.js +5 -5
- package/dist/src/data_access/ua_multistate_value_discrete_impl.js.map +1 -1
- package/dist/src/data_access/ua_two_state_discrete_impl.js +3 -3
- package/dist/src/data_access/ua_two_state_discrete_impl.js.map +1 -1
- package/dist/src/extension_object_array_node.js +4 -5
- package/dist/src/extension_object_array_node.js.map +1 -1
- package/dist/src/get_basic_datatype.js +2 -3
- package/dist/src/get_basic_datatype.js.map +1 -1
- package/dist/src/historical_access/address_space_historical_data_node.js +5 -5
- package/dist/src/historical_access/address_space_historical_data_node.js.map +1 -1
- package/dist/src/index_current.d.ts +3 -1
- package/dist/src/index_current.js +3 -1
- package/dist/src/index_current.js.map +1 -1
- package/dist/src/namespace_impl.d.ts +1 -9
- package/dist/src/namespace_impl.js +19 -12
- package/dist/src/namespace_impl.js.map +1 -1
- package/dist/src/namespace_private.js +1 -2
- package/dist/src/namespace_private.js.map +1 -1
- package/dist/src/nodeid_manager.js +35 -10
- package/dist/src/nodeid_manager.js.map +1 -1
- package/dist/src/nodeset_tools/adjust_namespace_array.js +1 -2
- package/dist/src/nodeset_tools/adjust_namespace_array.js.map +1 -1
- package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +2 -2
- package/dist/src/nodeset_tools/construct_namespace_dependency.js +12 -12
- package/dist/src/nodeset_tools/construct_namespace_dependency.js.map +1 -1
- package/dist/src/nodeset_tools/dump_to_bsd.js +5 -6
- package/dist/src/nodeset_tools/dump_to_bsd.js.map +1 -1
- package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +1 -1
- package/dist/src/nodeset_tools/nodeset_to_xml.js +53 -46
- package/dist/src/nodeset_tools/nodeset_to_xml.js.map +1 -1
- package/dist/src/private_namespace.js +4 -5
- package/dist/src/private_namespace.js.map +1 -1
- package/dist/src/reference_impl.js +4 -4
- package/dist/src/reference_impl.js.map +1 -1
- package/dist/src/role_permissions.js +1 -2
- package/dist/src/role_permissions.js.map +1 -1
- package/dist/src/state_machine/finite_state_machine.js +6 -6
- package/dist/src/state_machine/finite_state_machine.js.map +1 -1
- package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +0 -1
- package/dist/src/state_machine/ua_shelving_state_machine_ex.js +2 -2
- package/dist/src/state_machine/ua_shelving_state_machine_ex.js.map +1 -1
- package/dist/src/state_machine/ua_two_state_variable.js +4 -4
- package/dist/src/state_machine/ua_two_state_variable.js.map +1 -1
- package/dist/src/tool_isSubtypeOf.d.ts +1 -1
- package/dist/src/tool_isSubtypeOf.js +18 -16
- package/dist/src/tool_isSubtypeOf.js.map +1 -1
- package/dist/src/ua_addin.d.ts +11 -0
- package/dist/src/ua_addin.js +43 -0
- package/dist/src/ua_addin.js.map +1 -0
- package/dist/src/ua_data_type_impl.js +7 -6
- package/dist/src/ua_data_type_impl.js.map +1 -1
- package/dist/src/ua_object_type_impl.d.ts +1 -0
- package/dist/src/ua_object_type_impl.js +4 -1
- package/dist/src/ua_object_type_impl.js.map +1 -1
- package/dist/src/ua_reference_type_impl.js +3 -3
- package/dist/src/ua_reference_type_impl.js.map +1 -1
- package/dist/src/ua_variable_impl.js +6 -3
- package/dist/src/ua_variable_impl.js.map +1 -1
- package/dist/src/ua_variable_impl_ext_obj.js +15 -15
- package/dist/src/ua_variable_impl_ext_obj.js.map +1 -1
- package/dist/src/ua_variable_type_impl.d.ts +2 -0
- package/dist/src/ua_variable_type_impl.js +8 -4
- package/dist/src/ua_variable_type_impl.js.map +1 -1
- package/dist/src/validate_data_type_correctness.js +1 -2
- package/dist/src/validate_data_type_correctness.js.map +1 -1
- package/dist/tsconfig_common.tsbuildinfo +1 -1
- package/distHelpers/add_event_generator_object.js +1 -2
- package/distHelpers/add_event_generator_object.js.map +1 -1
- package/distHelpers/alarms_and_conditions_demo.js +1 -2
- package/distHelpers/alarms_and_conditions_demo.js.map +1 -1
- package/distHelpers/assertHasMatchingReference.js +1 -2
- package/distHelpers/assertHasMatchingReference.js.map +1 -1
- package/distHelpers/boiler_system.js +2 -3
- package/distHelpers/boiler_system.js.map +1 -1
- package/distHelpers/create_minimalist_address_space_nodeset.js +1 -2
- package/distHelpers/create_minimalist_address_space_nodeset.js.map +1 -1
- package/distHelpers/date_utils.js +1 -2
- package/distHelpers/date_utils.js.map +1 -1
- package/distHelpers/get_address_space_fixture.js +1 -2
- package/distHelpers/get_address_space_fixture.js.map +1 -1
- package/distHelpers/get_mini_address_space.js +2 -2
- package/distHelpers/get_mini_address_space.js.map +1 -1
- package/distNodeJS/generate_address_space.js +2 -3
- package/distNodeJS/generate_address_space.js.map +1 -1
- package/package.json +24 -24
- package/source/helpers/make_optionals_map.ts +9 -6
- package/source/index.ts +3 -0
- package/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.ts +3 -1
- package/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.ts +3 -1
- package/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.ts +3 -1
- package/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.ts +3 -1
- package/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.ts +3 -1
- package/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.ts +18 -16
- package/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.ts +5 -3
- package/source/interfaces/data_access/ua_multistate_discrete_ex.ts +4 -2
- package/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.ts +4 -2
- package/source/interfaces/state_machine/ua_program_state_machine_type.ts +3 -1
- package/source/interfaces/state_machine/ua_shelved_state_machine_ex.ts +1 -1
- package/source/interfaces/state_machine/ua_state_machine_type.ts +14 -7
- package/source/loader/decode_xml_extension_object.ts +4 -3
- package/source/loader/ensure_datatype_extracted.ts +38 -2
- package/source/loader/generateAddressSpaceRaw.ts +4 -4
- package/source/loader/load_nodeset2.ts +212 -901
- package/source/loader/make_xml_extension_object_parser.ts +87 -123
- package/source/loader/namespace_post_step.ts +6 -5
- package/source/loader/parsers/extension_object_parser.ts +364 -0
- package/source/loader/parsers/localized_text_parser.ts +34 -0
- package/source/loader/parsers/nodeid_parser.ts +17 -0
- package/source/loader/parsers/qualified_name_parser.ts +43 -0
- package/source/loader/parsers/variant_parser.ts +427 -0
- package/source/loader/register_node_promoter.ts +2 -5
- package/source/session_context.ts +1 -1
- package/source/ua_addin.ts +53 -0
- package/source/ua_interface.ts +49 -0
- package/source/xml_writer.ts +4 -5
- package/src/_instantiate_helpers.ts +9 -3
- package/src/_mandatory_child_or_requested_optional_filter.ts +9 -7
- package/src/address_space.ts +1 -1
- package/src/alarms_and_conditions/condition.ts +0 -32
- package/src/alarms_and_conditions/condition_snapshot_impl.ts +176 -189
- package/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.ts +1 -3
- package/src/alarms_and_conditions/ua_base_event_impl.ts +6 -2
- package/src/alarms_and_conditions/ua_condition_impl.ts +11 -13
- package/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.ts +3 -1
- package/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.ts +3 -1
- package/src/apply_condition_refresh.ts +4 -4
- package/src/base_node_impl.ts +13 -13
- package/src/base_node_private.ts +6 -11
- package/src/data_access/ua_multistate_value_discrete_impl.ts +1 -1
- package/src/historical_access/address_space_historical_data_node.ts +3 -3
- package/src/index_current.ts +4 -1
- package/src/namespace_impl.ts +21 -10
- package/src/nodeid_manager.ts +46 -17
- package/src/nodeset_tools/construct_namespace_dependency.ts +9 -8
- package/src/nodeset_tools/dump_to_bsd.ts +7 -7
- package/src/nodeset_tools/nodeset_to_xml.ts +70 -44
- package/src/private_namespace.ts +2 -1
- package/src/tool_isSubtypeOf.ts +20 -16
- package/src/ua_data_type_impl.ts +5 -4
- package/src/ua_object_type_impl.ts +7 -2
- package/src/ua_reference_type_impl.ts +6 -6
- package/src/ua_variable_impl.ts +4 -0
- package/src/ua_variable_impl_ext_obj.ts +2 -1
- package/src/ua_variable_type_impl.ts +11 -1
|
@@ -27,7 +27,9 @@ import { UATransitionEx } from "./ua_transition_ex";
|
|
|
27
27
|
|
|
28
28
|
export type UtcTime = DateTime;
|
|
29
29
|
|
|
30
|
-
export interface NonHierarchicalReferences extends UAReferenceType {
|
|
30
|
+
export interface NonHierarchicalReferences extends UAReferenceType {
|
|
31
|
+
/** empty interface */
|
|
32
|
+
}
|
|
31
33
|
|
|
32
34
|
export interface UAStateVariableType extends UAVariableTypeT<LocalizedText, DataType.LocalizedText> {
|
|
33
35
|
// attributes
|
|
@@ -38,9 +40,14 @@ export interface StateB {
|
|
|
38
40
|
stateNumber: UAProperty<UInt32, DataType.UInt32>;
|
|
39
41
|
}
|
|
40
42
|
|
|
41
|
-
export interface UAStateType extends UAState_Base, UAObjectType {
|
|
43
|
+
export interface UAStateType extends UAState_Base, UAObjectType {
|
|
44
|
+
/** empty interface */
|
|
45
|
+
}
|
|
42
46
|
|
|
43
|
-
|
|
47
|
+
/** empty interface */
|
|
48
|
+
export interface UATransitionType extends UATransition_Base, UAObjectType {
|
|
49
|
+
/** empty interface */
|
|
50
|
+
}
|
|
44
51
|
|
|
45
52
|
/**
|
|
46
53
|
* Initial State Type
|
|
@@ -63,9 +70,11 @@ export interface UATransitionType extends UATransition_Base, UAObjectType {}
|
|
|
63
70
|
* entered directly, then the State of the SubStateMachine is server-specific.
|
|
64
71
|
*/
|
|
65
72
|
|
|
66
|
-
export interface UAInitialStateType extends UAInitialState_Base, UAStateType {
|
|
73
|
+
export interface UAInitialStateType extends UAInitialState_Base, UAStateType {
|
|
74
|
+
/** empty interface */
|
|
75
|
+
}
|
|
67
76
|
|
|
68
|
-
// export interface UAInitialState extends InitialStateB, UAState {}
|
|
77
|
+
// export interface UAInitialState extends InitialStateB, UAState { /** empty interface */}
|
|
69
78
|
|
|
70
79
|
/**
|
|
71
80
|
* ToState Reference Type
|
|
@@ -255,7 +264,6 @@ export interface UAStateMachineHelper {
|
|
|
255
264
|
|
|
256
265
|
export interface UAStateMachineEx extends UAObject, UAStateMachineHelper, UAStateMachine_Base {}
|
|
257
266
|
|
|
258
|
-
|
|
259
267
|
export interface UAStateMachineTypeHelper extends UAObjectType {
|
|
260
268
|
/**
|
|
261
269
|
* return all state nodes associated with this state machine
|
|
@@ -268,7 +276,6 @@ export interface UAStateMachineTypeHelper extends UAObjectType {
|
|
|
268
276
|
getTransitions(): UATransitionEx[];
|
|
269
277
|
|
|
270
278
|
getStateByName(name: string): UAState | null;
|
|
271
|
-
|
|
272
279
|
}
|
|
273
280
|
|
|
274
281
|
export interface UAStateMachineType extends UAObjectType, UAStateMachineTypeHelper, UAStateMachine_Base {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IAddressSpace, UADataType } from "node-opcua-address-space-base";
|
|
2
2
|
import { checkDebugFlag, make_debugLog, make_errorLog } from "node-opcua-debug";
|
|
3
3
|
import { ExtensionObject } from "node-opcua-extension-object";
|
|
4
|
-
import { NodeId } from "node-opcua-nodeid";
|
|
4
|
+
import { NodeId, resolveNodeId } from "node-opcua-nodeid";
|
|
5
5
|
import { NodeClass } from "node-opcua-types";
|
|
6
6
|
import { Xml2Json } from "node-opcua-xml2json";
|
|
7
7
|
|
|
@@ -55,7 +55,8 @@ export function makeDefinitionMap(addressSpace: IAddressSpace): DefinitionMap2 {
|
|
|
55
55
|
export function decodeXmlExtensionObject(
|
|
56
56
|
addressSpace: IAddressSpace,
|
|
57
57
|
encodingNodeId: NodeId,
|
|
58
|
-
xmlBody: string
|
|
58
|
+
xmlBody: string,
|
|
59
|
+
translateNodeId: (nodeId: string) => NodeId
|
|
59
60
|
): ExtensionObject | null {
|
|
60
61
|
const definitionMap = makeDefinitionMap(addressSpace);
|
|
61
62
|
|
|
@@ -64,7 +65,7 @@ export function decodeXmlExtensionObject(
|
|
|
64
65
|
// const { name, definition } = definitionMap.findDefinition(dataType.nodeId);
|
|
65
66
|
// const hasOptionalFields = definition.fields!.some((field) => field.isOptional);
|
|
66
67
|
|
|
67
|
-
const reader = makeXmlExtensionObjectReader(dataType.nodeId, definitionMap,
|
|
68
|
+
const reader = makeXmlExtensionObjectReader(dataType.nodeId, definitionMap, new Map(), translateNodeId);
|
|
68
69
|
const parser2 = new Xml2Json(reader);
|
|
69
70
|
const pojo = parser2.parseStringSync(xmlBody);
|
|
70
71
|
|
|
@@ -11,6 +11,7 @@ import { CallbackT } from "node-opcua-status-code";
|
|
|
11
11
|
import { StructureField } from "node-opcua-types";
|
|
12
12
|
import { AddressSpacePrivate } from "../../src/address_space_private";
|
|
13
13
|
import { PseudoSession } from "../pseudo_session";
|
|
14
|
+
import { constructNamespaceDependency, constructNamespacePriorityTable } from "../../src/nodeset_tools/construct_namespace_dependency";
|
|
14
15
|
|
|
15
16
|
const debugLog = make_debugLog(__filename);
|
|
16
17
|
|
|
@@ -40,7 +41,7 @@ function fixDefinition103(addressSpace: IAddressSpace, namespaceArray: string[],
|
|
|
40
41
|
}
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
|
-
}
|
|
44
|
+
}
|
|
44
45
|
|
|
45
46
|
export async function ensureDatatypeExtracted(addressSpace: IAddressSpace): Promise<ExtraDataTypeManager> {
|
|
46
47
|
const addressSpacePriv: any = addressSpace as AddressSpacePrivate;
|
|
@@ -52,8 +53,43 @@ export async function ensureDatatypeExtracted(addressSpace: IAddressSpace): Prom
|
|
|
52
53
|
dataTypeManager.setNamespaceArray(namespaceArray);
|
|
53
54
|
addressSpacePriv.$$extraDataTypeManager = dataTypeManager;
|
|
54
55
|
|
|
56
|
+
const factories: DataTypeFactory[] = [getStandardDataTypeFactory()];
|
|
57
|
+
|
|
58
|
+
const priorityTable = constructNamespacePriorityTable(addressSpace).priorityTable;
|
|
59
|
+
|
|
55
60
|
for (let namespaceIndex = 1; namespaceIndex < namespaceArray.length; namespaceIndex++) {
|
|
56
|
-
|
|
61
|
+
|
|
62
|
+
const namespace = addressSpace.getNamespace(namespaceIndex);
|
|
63
|
+
|
|
64
|
+
if (false) {
|
|
65
|
+
console.log("namespaceIndex = ", namespaceIndex);
|
|
66
|
+
console.log("namespace = ", namespace.namespaceUri);
|
|
67
|
+
console.log("factories = ", factories.map((f) => f.targetNamespace).join(" "));
|
|
68
|
+
// find dependent namespaces
|
|
69
|
+
let dependency = constructNamespaceDependency(namespace);
|
|
70
|
+
// remove last element that is my namespace
|
|
71
|
+
dependency = dependency.filter((ns) => ns.index !== namespaceIndex);
|
|
72
|
+
const dependFactories = dependency.map((ns) => {
|
|
73
|
+
const df = factories[ns.index];
|
|
74
|
+
if (!df) {
|
|
75
|
+
console.log("namespaceIndex = ", namespaceIndex);
|
|
76
|
+
console.log("namespace = ", namespace.namespaceUri);
|
|
77
|
+
console.log("priorityTable", priorityTable);
|
|
78
|
+
console.log(dependency.map((ns) => `${ns.index} ${ns.namespaceUri}`).join("\n"));
|
|
79
|
+
throw new Error("Cannot find factory for namespace " + ns.namespaceUri);
|
|
80
|
+
}
|
|
81
|
+
return df;
|
|
82
|
+
});
|
|
83
|
+
// getStandardDataTypeFactory()
|
|
84
|
+
|
|
85
|
+
const dataTypeFactory1 = new DataTypeFactory(dependFactories);
|
|
86
|
+
}
|
|
87
|
+
const dataTypeFactory1 = new DataTypeFactory([...factories]);
|
|
88
|
+
dataTypeFactory1.targetNamespace = namespace.namespaceUri;
|
|
89
|
+
|
|
90
|
+
factories.push(dataTypeFactory1);
|
|
91
|
+
// xx console.log("factories = ", factories.map((f) => f.targetNamespace).join(" "));
|
|
92
|
+
|
|
57
93
|
dataTypeManager.registerDataTypeFactory(namespaceIndex, dataTypeFactory1);
|
|
58
94
|
}
|
|
59
95
|
// inject simple types
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { checkDebugFlag, make_debugLog, make_errorLog } from "node-opcua-debug";
|
|
2
2
|
import { CallbackT } from "node-opcua-status-code";
|
|
3
3
|
import { IAddressSpace, RequiredModel } from "node-opcua-address-space-base";
|
|
4
|
-
import { ReaderStateParserLike, Xml2Json } from "node-opcua-xml2json";
|
|
4
|
+
import { ReaderStateParser, ReaderStateParserLike, Xml2Json } from "node-opcua-xml2json";
|
|
5
5
|
import { getMinOPCUADate } from "node-opcua-date-time";
|
|
6
6
|
import { adjustNamespaceArray } from "../../src/nodeset_tools/adjust_namespace_array";
|
|
7
7
|
import { NodeSetLoaderOptions } from "../interfaces/nodeset_loader_options";
|
|
@@ -25,14 +25,14 @@ async function parseDependencies(xmlData: string): Promise<NodesetInfo> {
|
|
|
25
25
|
|
|
26
26
|
const models: Model[] = [];
|
|
27
27
|
let currentModel: Model | undefined = undefined;
|
|
28
|
-
const state0:
|
|
28
|
+
const state0: ReaderStateParser = {
|
|
29
29
|
parser: {
|
|
30
30
|
UANodeSet: {
|
|
31
31
|
parser: {
|
|
32
32
|
NamespaceUris: {
|
|
33
33
|
parser: {
|
|
34
|
-
Uri: {
|
|
35
|
-
finish() {
|
|
34
|
+
Uri: <ReaderStateParserLike & { text: string }>{
|
|
35
|
+
finish(this: ReaderStateParserLike & {text: string}) {
|
|
36
36
|
namespaceUris.push(this.text);
|
|
37
37
|
}
|
|
38
38
|
}
|