node-opcua-address-space 2.97.0 → 2.98.1
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/address_space_ts.d.ts +118 -118
- package/dist/source/address_space_ts.js +17 -17
- package/dist/source/continuation_points/continuation_point_manager.d.ts +91 -91
- package/dist/source/continuation_points/continuation_point_manager.js +200 -200
- package/dist/source/helpers/adjust_browse_direction.d.ts +5 -5
- package/dist/source/helpers/adjust_browse_direction.js +11 -11
- package/dist/source/helpers/argument_list.d.ts +33 -33
- package/dist/source/helpers/argument_list.js +254 -254
- package/dist/source/helpers/call_helpers.d.ts +6 -6
- package/dist/source/helpers/call_helpers.js +71 -71
- package/dist/source/helpers/coerce_enum_value.d.ts +6 -6
- package/dist/source/helpers/coerce_enum_value.js +33 -33
- package/dist/source/helpers/dump_tools.d.ts +14 -14
- package/dist/source/helpers/dump_tools.js +78 -78
- package/dist/source/helpers/ensure_secure_access.d.ts +9 -9
- package/dist/source/helpers/ensure_secure_access.js +76 -76
- package/dist/source/helpers/make_optionals_map.d.ts +21 -21
- package/dist/source/helpers/make_optionals_map.js +29 -29
- package/dist/source/helpers/multiform_func.d.ts +11 -11
- package/dist/source/helpers/multiform_func.js +75 -75
- package/dist/source/helpers/resolve_opaque_on_address_space.d.ts +3 -3
- package/dist/source/helpers/resolve_opaque_on_address_space.js +36 -36
- package/dist/source/index.d.ts +61 -61
- package/dist/source/index.js +89 -89
- package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +19 -19
- package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.d.ts +193 -193
- package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.d.ts +12 -12
- package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.d.ts +10 -10
- package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +7 -7
- package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts +7 -7
- package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +4 -4
- package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +4 -4
- package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +9 -9
- package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +4 -4
- package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +4 -4
- package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +20 -20
- package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +23 -23
- package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +32 -32
- package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +19 -19
- package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +45 -42
- package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +7 -7
- package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js +25 -25
- package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +5 -5
- package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +20 -20
- package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +26 -26
- package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +8 -8
- package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +10 -10
- package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js +2 -2
- package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +21 -21
- package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js +2 -2
- package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +24 -24
- package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js +2 -2
- package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +12 -12
- package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js +2 -2
- package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +8 -8
- package/dist/source/interfaces/data_access/ua_y_array_item_ex.js +2 -2
- package/dist/source/interfaces/extension_object_constructor.d.ts +10 -10
- package/dist/source/interfaces/extension_object_constructor.js +2 -2
- package/dist/source/interfaces/nodeset_loader_options.d.ts +4 -4
- package/dist/source/interfaces/nodeset_loader_options.js +2 -2
- package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -12
- package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +2 -2
- package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -49
- package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js +2 -2
- package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -11
- package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js +2 -2
- package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +30 -30
- package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.js +2 -2
- package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +234 -234
- package/dist/source/interfaces/state_machine/ua_state_machine_type.js +2 -2
- package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +6 -6
- package/dist/source/interfaces/state_machine/ua_transition_ex.js +2 -2
- package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +8 -8
- package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +2 -2
- package/dist/source/loader/decode_xml_extension_object.d.ts +6 -6
- package/dist/source/loader/decode_xml_extension_object.js +71 -71
- package/dist/source/loader/ensure_datatype_extracted.d.ts +5 -5
- package/dist/source/loader/ensure_datatype_extracted.js +70 -70
- package/dist/source/loader/generateAddressSpaceRaw.d.ts +11 -11
- package/dist/source/loader/generateAddressSpaceRaw.js +45 -45
- package/dist/source/loader/load_nodeset2.d.ts +17 -17
- package/dist/source/loader/load_nodeset2.js +1483 -1483
- package/dist/source/loader/make_semver_compatible.d.ts +6 -6
- package/dist/source/loader/make_semver_compatible.js +25 -25
- package/dist/source/loader/make_xml_extension_object_parser.d.ts +28 -28
- package/dist/source/loader/make_xml_extension_object_parser.js +326 -326
- package/dist/source/loader/namespace_post_step.d.ts +10 -10
- package/dist/source/loader/namespace_post_step.js +61 -61
- package/dist/source/loader/register_node_promoter.d.ts +2 -2
- package/dist/source/loader/register_node_promoter.js +9 -9
- package/dist/source/namespace.d.ts +6 -6
- package/dist/source/namespace.js +2 -2
- package/dist/source/namespace_alarm_and_condition.d.ts +32 -32
- package/dist/source/namespace_alarm_and_condition.js +2 -2
- package/dist/source/namespace_data_access.d.ts +42 -42
- package/dist/source/namespace_data_access.js +2 -2
- package/dist/source/namespace_machine_state.d.ts +8 -8
- package/dist/source/namespace_machine_state.js +2 -2
- package/dist/source/pseudo_session.d.ts +72 -72
- package/dist/source/pseudo_session.js +254 -254
- package/dist/source/session_context.d.ts +111 -111
- package/dist/source/session_context.js +264 -264
- package/dist/source/session_context.js.map +1 -1
- package/dist/source/set_namespace_meta_data.d.ts +2 -2
- package/dist/source/set_namespace_meta_data.js +59 -59
- package/dist/source/ua_root_folder.d.ts +9 -9
- package/dist/source/ua_root_folder.js +2 -2
- package/dist/source/ua_two_state_variable_ex.d.ts +23 -23
- package/dist/source/ua_two_state_variable_ex.js +2 -2
- package/dist/source/xml_writer.d.ts +18 -18
- package/dist/source/xml_writer.js +2 -2
- package/dist/src/address_space.d.ts +387 -387
- package/dist/src/address_space.js +1385 -1385
- package/dist/src/address_space.js.map +1 -1
- package/dist/src/address_space_change_event_tools.d.ts +6 -6
- package/dist/src/address_space_change_event_tools.js +152 -152
- package/dist/src/address_space_private.d.ts +43 -43
- package/dist/src/address_space_private.js +2 -2
- package/dist/src/alarms_and_conditions/condition.d.ts +5 -5
- package/dist/src/alarms_and_conditions/condition.js +78 -78
- package/dist/src/alarms_and_conditions/condition_info_impl.d.ts +26 -26
- package/dist/src/alarms_and_conditions/condition_info_impl.js +54 -54
- package/dist/src/alarms_and_conditions/condition_snapshot_impl.d.ts +222 -222
- package/dist/src/alarms_and_conditions/condition_snapshot_impl.js +657 -657
- package/dist/src/alarms_and_conditions/condition_snapshot_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +9 -9
- package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +60 -60
- package/dist/src/alarms_and_conditions/index.d.ts +16 -16
- package/dist/src/alarms_and_conditions/index.js +32 -32
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +44 -44
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -244
- package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +93 -93
- package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +418 -418
- package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +26 -26
- package/dist/src/alarms_and_conditions/ua_base_event_impl.js +38 -38
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +44 -44
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +183 -183
- package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +155 -153
- package/dist/src/alarms_and_conditions/ua_condition_impl.js +1028 -1028
- package/dist/src/alarms_and_conditions/ua_condition_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +14 -14
- package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +34 -34
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +24 -24
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +56 -56
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +11 -11
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +11 -11
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +23 -23
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +86 -86
- package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +11 -11
- package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +7 -7
- package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +79 -79
- package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +250 -250
- package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +24 -24
- package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +50 -50
- package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +19 -19
- package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +162 -162
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +46 -46
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +165 -165
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +18 -18
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +17 -17
- package/dist/src/apply_condition_refresh.d.ts +6 -6
- package/dist/src/apply_condition_refresh.js +27 -27
- package/dist/src/base_node_impl.d.ts +284 -284
- package/dist/src/base_node_impl.js +1454 -1454
- package/dist/src/base_node_private.d.ts +81 -81
- package/dist/src/base_node_private.js +832 -803
- package/dist/src/base_node_private.js.map +1 -1
- package/dist/src/check_value_rank_compatibility.d.ts +15 -15
- package/dist/src/check_value_rank_compatibility.js +81 -81
- package/dist/src/data_access/add_dataItem_stuff.d.ts +11 -11
- package/dist/src/data_access/add_dataItem_stuff.js +61 -61
- package/dist/src/data_access/check_variant_compatibility_ua_analog_item.d.ts +1 -1
- package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js +34 -34
- package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +32 -32
- package/dist/src/data_access/ua_multistate_discrete_impl.js +130 -130
- package/dist/src/data_access/ua_multistate_value_discrete_impl.d.ts +52 -52
- package/dist/src/data_access/ua_multistate_value_discrete_impl.js +253 -253
- package/dist/src/data_access/ua_two_state_discrete_impl.d.ts +25 -25
- package/dist/src/data_access/ua_two_state_discrete_impl.js +155 -155
- package/dist/src/event_data.d.ts +34 -34
- package/dist/src/event_data.js +64 -64
- package/dist/src/extension_object_array_node.d.ts +23 -23
- package/dist/src/extension_object_array_node.js +248 -248
- package/dist/src/historical_access/address_space_historical_data_node.d.ts +26 -26
- package/dist/src/historical_access/address_space_historical_data_node.js +652 -652
- package/dist/src/idx_iterator.d.ts +8 -8
- package/dist/src/idx_iterator.js +50 -50
- package/dist/src/index_current.d.ts +46 -46
- package/dist/src/index_current.js +77 -77
- package/dist/src/namespace_impl.d.ts +456 -456
- package/dist/src/namespace_impl.js +1762 -1762
- package/dist/src/namespace_impl.js.map +1 -1
- package/dist/src/namespace_private.d.ts +23 -23
- package/dist/src/namespace_private.js +32 -32
- package/dist/src/nodeid_manager.d.ts +37 -37
- package/dist/src/nodeid_manager.js +183 -183
- package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +2 -2
- package/dist/src/nodeset_tools/adjust_namespace_array.js +13 -13
- package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +18 -18
- package/dist/src/nodeset_tools/construct_namespace_dependency.js +140 -140
- package/dist/src/nodeset_tools/dump_to_bsd.d.ts +2 -2
- package/dist/src/nodeset_tools/dump_to_bsd.js +164 -164
- package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +10 -10
- package/dist/src/nodeset_tools/nodeset_to_xml.js +1287 -1287
- package/dist/src/private_namespace.d.ts +5 -5
- package/dist/src/private_namespace.js +19 -19
- package/dist/src/reference_impl.d.ts +43 -43
- package/dist/src/reference_impl.js +139 -139
- package/dist/src/role_permissions.d.ts +2 -2
- package/dist/src/role_permissions.js +10 -10
- package/dist/src/state_machine/finite_state_machine.d.ts +81 -81
- package/dist/src/state_machine/finite_state_machine.js +388 -388
- package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +38 -38
- package/dist/src/state_machine/ua_shelving_state_machine_ex.js +250 -250
- package/dist/src/state_machine/ua_two_state_variable.d.ts +61 -61
- package/dist/src/state_machine/ua_two_state_variable.js +331 -331
- package/dist/src/tool_isSubtypeOf.d.ts +18 -18
- package/dist/src/tool_isSubtypeOf.js +124 -124
- package/dist/src/ua_condition_type.d.ts +8 -8
- package/dist/src/ua_condition_type.js +2 -2
- package/dist/src/ua_data_type_impl.d.ts +89 -89
- package/dist/src/ua_data_type_impl.js +368 -368
- package/dist/src/ua_method_impl.d.ts +42 -42
- package/dist/src/ua_method_impl.js +217 -217
- package/dist/src/ua_object_impl.d.ts +35 -35
- package/dist/src/ua_object_impl.js +168 -168
- package/dist/src/ua_object_type_impl.d.ts +50 -50
- package/dist/src/ua_object_type_impl.js +126 -126
- package/dist/src/ua_reference_type_impl.d.ts +45 -45
- package/dist/src/ua_reference_type_impl.js +141 -141
- package/dist/src/ua_variable_impl.d.ts +380 -380
- package/dist/src/ua_variable_impl.js +1738 -1738
- package/dist/src/ua_variable_impl_ext_obj.d.ts +23 -23
- package/dist/src/ua_variable_impl_ext_obj.js +670 -670
- package/dist/src/ua_variable_type_impl.d.ts +74 -74
- package/dist/src/ua_variable_type_impl.js +597 -581
- package/dist/src/ua_variable_type_impl.js.map +1 -1
- package/dist/src/ua_view_impl.d.ts +19 -19
- package/dist/src/ua_view_impl.js +43 -43
- package/dist/tsconfig_common.tsbuildinfo +1 -0
- package/distHelpers/add_event_generator_object.d.ts +3 -3
- package/distHelpers/add_event_generator_object.js +64 -64
- package/distHelpers/alarms_and_conditions_demo.d.ts +9 -9
- package/distHelpers/alarms_and_conditions_demo.js +115 -115
- package/distHelpers/assertHasMatchingReference.d.ts +19 -19
- package/distHelpers/assertHasMatchingReference.js +40 -40
- package/distHelpers/boiler_system.d.ts +113 -113
- package/distHelpers/boiler_system.js +395 -395
- package/distHelpers/create_minimalist_address_space_nodeset.d.ts +5 -5
- package/distHelpers/create_minimalist_address_space_nodeset.js +171 -171
- package/distHelpers/date_utils.d.ts +3 -3
- package/distHelpers/date_utils.js +9 -9
- package/distHelpers/dump_statemachine.js +127 -127
- package/distHelpers/get_address_space_fixture.d.ts +1 -1
- package/distHelpers/get_address_space_fixture.js +30 -30
- package/distHelpers/get_mini_address_space.d.ts +7 -7
- package/distHelpers/get_mini_address_space.js +36 -36
- package/distHelpers/index.d.ts +12 -12
- package/distHelpers/index.js +28 -28
- package/distHelpers/mock_session.d.ts +10 -10
- package/distHelpers/mock_session.js +25 -25
- package/distNodeJS/generate_address_space.d.ts +6 -6
- package/distNodeJS/generate_address_space.js +52 -52
- package/distNodeJS/index.d.ts +1 -1
- package/distNodeJS/index.js +17 -17
- package/package.json +51 -40
- package/source/interfaces/alarms_and_conditions/ua_condition_ex.ts +4 -3
- package/src/alarms_and_conditions/ua_condition_impl.ts +14 -9
- package/src/base_node_private.ts +73 -28
- package/src/ua_variable_type_impl.ts +35 -17
- package/.mocharc.yml +0 -12
- package/dist/src/tool_isSupertypeOf.d.ts +0 -18
- package/dist/src/tool_isSupertypeOf.js +0 -125
- package/dist/src/tool_isSupertypeOf.js.map +0 -1
- package/generate.js +0 -1
- package/source_nodejs/generate_address_space.ts +0 -60
- package/source_nodejs/index.ts +0 -1
- package/test_helpers/add_event_generator_object.ts +0 -71
- package/test_helpers/alarms_and_conditions_demo.ts +0 -151
- package/test_helpers/assertHasMatchingReference.ts +0 -43
- package/test_helpers/boiler_system.ts +0 -610
- package/test_helpers/create_minimalist_address_space_nodeset.ts +0 -208
- package/test_helpers/date_utils.ts +0 -5
- package/test_helpers/dump_statemachine.ts +0 -155
- package/test_helpers/get_address_space_fixture.ts +0 -30
- package/test_helpers/get_mini_address_space.ts +0 -42
- package/test_helpers/index.ts +0 -12
- package/test_helpers/mock_session.ts +0 -34
- package/test_helpers/test_fixtures/dataType_in_separateNamespace.xml +0 -150
- package/test_helpers/test_fixtures/dataType_in_separateNamespace_basic.xml +0 -57
- package/test_helpers/test_fixtures/dataType_in_separateNamespace_mix.xml +0 -136
- package/test_helpers/test_fixtures/dataType_issue.xml +0 -80
- package/test_helpers/test_fixtures/dataType_withEnumeration.xml +0 -82
- package/test_helpers/test_fixtures/dataType_with_isOptionSet.xml +0 -194
- package/test_helpers/test_fixtures/dataType_with_qualifiedname.xml +0 -71
- package/test_helpers/test_fixtures/dataType_with_recursive_structure.xml +0 -155
- package/test_helpers/test_fixtures/dataType_with_structures.xml +0 -605
- package/test_helpers/test_fixtures/dataType_with_union.xml +0 -90
- package/test_helpers/test_fixtures/datatype_as_per_1.04.xml +0 -118
- package/test_helpers/test_fixtures/datatype_with_allow_subtype.xml +0 -104
- package/test_helpers/test_fixtures/eurange_issue.xml +0 -74
- package/test_helpers/test_fixtures/example_issue1096.xml +0 -267
- package/test_helpers/test_fixtures/fixture_empty_nodeset2.xml +0 -106
- package/test_helpers/test_fixtures/fixture_simple_statemachine_nodeset2.xml +0 -1305
- package/test_helpers/test_fixtures/fixuture_nodeset_objects_with_some_methods.xml +0 -370
- package/test_helpers/test_fixtures/issue_1132_variable_with_nodeid_value.xml +0 -68
- package/test_helpers/test_fixtures/issue_846.xml +0 -3172
- package/test_helpers/test_fixtures/issue_899_variable_with_nodeid_value.xml +0 -33
- package/test_helpers/test_fixtures/mini.Node.Set2.xml +0 -4736
- package/test_helpers/test_fixtures/mini.nodeset.withVariousVariables.xml +0 -196
- package/test_helpers/test_fixtures/minimalist_nodeset_with_models.xml +0 -8
- package/test_helpers/test_fixtures/minimalist_nodeset_with_models_more_complex.xml +0 -20
- package/test_helpers/test_fixtures/nodeset_no_aliases.xml +0 -30
- package/test_helpers/test_fixtures/nodeset_no_aliases_with_aliases.xml +0 -31
- package/test_helpers/test_fixtures/nodeset_with_analog_items.xml +0 -45
- package/test_helpers/test_fixtures/nodeset_with_guid.xml +0 -1442
- package/test_helpers/test_fixtures/nodeset_with_int64_values.xml +0 -31
- package/test_helpers/test_fixtures/nodeset_with_special_char.xml +0 -34
- package/test_helpers/test_fixtures/nodeset_with_utf8_special_characters.xml +0 -20
- package/test_helpers/test_fixtures/variable_with_value.xml +0 -143
- package/test_helpers/test_fixtures/variabletype_with_value.xml +0 -324
|
@@ -1,141 +1,141 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.constructNamespaceDependency = exports.constructNamespacePriorityTable = exports.hasHigherPriorityThan = void 0;
|
|
4
|
-
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
5
|
-
const node_opcua_debug_1 = require("node-opcua-debug");
|
|
6
|
-
const base_node_impl_1 = require("../base_node_impl");
|
|
7
|
-
const warningLog = (0, node_opcua_debug_1.make_warningLog)(__filename);
|
|
8
|
-
function _constructNamespaceDependency(namespace, dependency, depMap, _visitedDataType, priorityTable) {
|
|
9
|
-
const addressSpace = namespace.addressSpace;
|
|
10
|
-
const namespace_ = namespace;
|
|
11
|
-
// navigate all namespace recursively to
|
|
12
|
-
function consider(namespaceIndex) {
|
|
13
|
-
if (hasHigherPriorityThan(namespaceIndex, namespace.index, priorityTable)) {
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
if (!depMap.has(namespaceIndex)) {
|
|
17
|
-
depMap.add(namespaceIndex);
|
|
18
|
-
const namespace = addressSpace.getNamespace(namespaceIndex);
|
|
19
|
-
dependency.push(namespace);
|
|
20
|
-
if (namespaceIndex > 0) {
|
|
21
|
-
_constructNamespaceDependency(namespace, dependency, depMap, _visitedDataType, priorityTable);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
function exploreDataTypeField(field) {
|
|
26
|
-
const dataType = field.dataType;
|
|
27
|
-
const namespaceIndex = dataType.namespace;
|
|
28
|
-
consider(namespaceIndex);
|
|
29
|
-
const dataTypeNode = addressSpace.findDataType(field.dataType);
|
|
30
|
-
if (dataTypeNode) {
|
|
31
|
-
exploreDataTypes(dataTypeNode);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
function exploreDataTypes(dataTypeNode) {
|
|
35
|
-
const dataType = dataTypeNode.nodeId;
|
|
36
|
-
if (_visitedDataType.has(dataType.toString())) {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
// istanbul ignore next
|
|
40
|
-
if (dataTypeNode.nodeClass !== node_opcua_data_model_1.NodeClass.DataType) {
|
|
41
|
-
warningLog("exploreDataTypes! ignoring ", dataTypeNode.toString());
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
const namespaceIndex = dataType.namespace;
|
|
45
|
-
consider(namespaceIndex);
|
|
46
|
-
if (dataTypeNode.isStructure()) {
|
|
47
|
-
const definition = dataTypeNode.getStructureDefinition();
|
|
48
|
-
for (const field of definition.fields || []) {
|
|
49
|
-
exploreDataTypeField(field);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
_visitedDataType.add(dataType.toString());
|
|
53
|
-
}
|
|
54
|
-
for (const node of namespace_.nodeIterator()) {
|
|
55
|
-
if (node.nodeClass === node_opcua_data_model_1.NodeClass.Variable || node.nodeClass === node_opcua_data_model_1.NodeClass.VariableType) {
|
|
56
|
-
const dataTypeNodeId = node.dataType;
|
|
57
|
-
const dataTypeNode = addressSpace.findDataType(dataTypeNodeId);
|
|
58
|
-
if (dataTypeNode) {
|
|
59
|
-
exploreDataTypes(dataTypeNode);
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
// istanbul ignore next
|
|
63
|
-
if (dataTypeNodeId.value != 0) {
|
|
64
|
-
console.log("Internal error: Cannot find dataType", dataTypeNodeId.toString());
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
// visit all references
|
|
69
|
-
const references = node.ownReferences();
|
|
70
|
-
for (const reference of references) {
|
|
71
|
-
// check referenceId
|
|
72
|
-
const namespaceIndex = (0, base_node_impl_1.getReferenceType)(reference).nodeId.namespace;
|
|
73
|
-
consider(namespaceIndex);
|
|
74
|
-
const namespaceIndex2 = reference.nodeId.namespace;
|
|
75
|
-
consider(namespaceIndex2);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
function hasHigherPriorityThan(namespaceIndex1, namespaceIndex2, priorityTable) {
|
|
80
|
-
const order1 = priorityTable[namespaceIndex1];
|
|
81
|
-
const order2 = priorityTable[namespaceIndex2];
|
|
82
|
-
return order1 > order2;
|
|
83
|
-
}
|
|
84
|
-
exports.hasHigherPriorityThan = hasHigherPriorityThan;
|
|
85
|
-
/**
|
|
86
|
-
*
|
|
87
|
-
* @param namespace
|
|
88
|
-
* @returns the order
|
|
89
|
-
*
|
|
90
|
-
* ---
|
|
91
|
-
* ua, own , di => 0 , 2, 1
|
|
92
|
-
*
|
|
93
|
-
* ---
|
|
94
|
-
* ua, own , di , kitchen , own2, adi => 0 , 2, 3, 1
|
|
95
|
-
*
|
|
96
|
-
* ---
|
|
97
|
-
* ua, own , di , kitchen , own2, adi => 0 , 2, 3, 5, 1
|
|
98
|
-
*/
|
|
99
|
-
function constructNamespacePriorityTable(namespace) {
|
|
100
|
-
// Namespace 0 will always be 0
|
|
101
|
-
// Namespaces with no requiredModel will be considered as instance namespaces and will added at the end
|
|
102
|
-
// in the same order as they appear,
|
|
103
|
-
// Namespace with requiredModels are considered to be companion specification, so already loaded in the correct order
|
|
104
|
-
const addressSpace = namespace.addressSpace;
|
|
105
|
-
const namespaces = addressSpace.getNamespaceArray();
|
|
106
|
-
const namespaceWithReq = namespaces.filter((n) => (n.getRequiredModels() !== undefined) && n.index !== 0);
|
|
107
|
-
const namespaceWithoutReq = namespaces.filter((n) => (n.getRequiredModels() === undefined) && n.index !== 0);
|
|
108
|
-
const priorityList = [0];
|
|
109
|
-
let counter = 1;
|
|
110
|
-
for (let i = 0; i < namespaceWithReq.length; i++) {
|
|
111
|
-
priorityList[namespaceWithReq[i].index] = counter++;
|
|
112
|
-
}
|
|
113
|
-
for (let i = 0; i < namespaceWithoutReq.length; i++) {
|
|
114
|
-
priorityList[namespaceWithoutReq[i].index] = counter++;
|
|
115
|
-
}
|
|
116
|
-
return priorityList;
|
|
117
|
-
}
|
|
118
|
-
exports.constructNamespacePriorityTable = constructNamespacePriorityTable;
|
|
119
|
-
const doDebug = false;
|
|
120
|
-
function constructNamespaceDependency(namespace, priorityTable) {
|
|
121
|
-
const addressSpace = namespace.addressSpace;
|
|
122
|
-
priorityTable = priorityTable || constructNamespacePriorityTable(namespace);
|
|
123
|
-
const dependency = [];
|
|
124
|
-
const depMap = new Set();
|
|
125
|
-
dependency.push(addressSpace.getDefaultNamespace());
|
|
126
|
-
depMap.add(0);
|
|
127
|
-
if (namespace !== addressSpace.getDefaultNamespace()) {
|
|
128
|
-
dependency.push(namespace);
|
|
129
|
-
depMap.add(namespace.index);
|
|
130
|
-
}
|
|
131
|
-
const _visitedDataType = new Set();
|
|
132
|
-
_constructNamespaceDependency(namespace, dependency, depMap, _visitedDataType, priorityTable);
|
|
133
|
-
doDebug && console.log("namespace : ", namespace.index, namespace.namespaceUri);
|
|
134
|
-
doDebug && console.log(" ", dependency.map((d) => d.index + " " + d.namespaceUri).join("\n "));
|
|
135
|
-
const sorted = dependency.sort((a, b) => priorityTable[a.index] < priorityTable[b.index] ? -1 : 1);
|
|
136
|
-
doDebug && console.log("sorted:");
|
|
137
|
-
doDebug && console.log(" ", sorted.map((d) => d.index + " " + d.namespaceUri).join("\n "));
|
|
138
|
-
return sorted;
|
|
139
|
-
}
|
|
140
|
-
exports.constructNamespaceDependency = constructNamespaceDependency;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.constructNamespaceDependency = exports.constructNamespacePriorityTable = exports.hasHigherPriorityThan = void 0;
|
|
4
|
+
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
5
|
+
const node_opcua_debug_1 = require("node-opcua-debug");
|
|
6
|
+
const base_node_impl_1 = require("../base_node_impl");
|
|
7
|
+
const warningLog = (0, node_opcua_debug_1.make_warningLog)(__filename);
|
|
8
|
+
function _constructNamespaceDependency(namespace, dependency, depMap, _visitedDataType, priorityTable) {
|
|
9
|
+
const addressSpace = namespace.addressSpace;
|
|
10
|
+
const namespace_ = namespace;
|
|
11
|
+
// navigate all namespace recursively to
|
|
12
|
+
function consider(namespaceIndex) {
|
|
13
|
+
if (hasHigherPriorityThan(namespaceIndex, namespace.index, priorityTable)) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
if (!depMap.has(namespaceIndex)) {
|
|
17
|
+
depMap.add(namespaceIndex);
|
|
18
|
+
const namespace = addressSpace.getNamespace(namespaceIndex);
|
|
19
|
+
dependency.push(namespace);
|
|
20
|
+
if (namespaceIndex > 0) {
|
|
21
|
+
_constructNamespaceDependency(namespace, dependency, depMap, _visitedDataType, priorityTable);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function exploreDataTypeField(field) {
|
|
26
|
+
const dataType = field.dataType;
|
|
27
|
+
const namespaceIndex = dataType.namespace;
|
|
28
|
+
consider(namespaceIndex);
|
|
29
|
+
const dataTypeNode = addressSpace.findDataType(field.dataType);
|
|
30
|
+
if (dataTypeNode) {
|
|
31
|
+
exploreDataTypes(dataTypeNode);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function exploreDataTypes(dataTypeNode) {
|
|
35
|
+
const dataType = dataTypeNode.nodeId;
|
|
36
|
+
if (_visitedDataType.has(dataType.toString())) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
// istanbul ignore next
|
|
40
|
+
if (dataTypeNode.nodeClass !== node_opcua_data_model_1.NodeClass.DataType) {
|
|
41
|
+
warningLog("exploreDataTypes! ignoring ", dataTypeNode.toString());
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const namespaceIndex = dataType.namespace;
|
|
45
|
+
consider(namespaceIndex);
|
|
46
|
+
if (dataTypeNode.isStructure()) {
|
|
47
|
+
const definition = dataTypeNode.getStructureDefinition();
|
|
48
|
+
for (const field of definition.fields || []) {
|
|
49
|
+
exploreDataTypeField(field);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
_visitedDataType.add(dataType.toString());
|
|
53
|
+
}
|
|
54
|
+
for (const node of namespace_.nodeIterator()) {
|
|
55
|
+
if (node.nodeClass === node_opcua_data_model_1.NodeClass.Variable || node.nodeClass === node_opcua_data_model_1.NodeClass.VariableType) {
|
|
56
|
+
const dataTypeNodeId = node.dataType;
|
|
57
|
+
const dataTypeNode = addressSpace.findDataType(dataTypeNodeId);
|
|
58
|
+
if (dataTypeNode) {
|
|
59
|
+
exploreDataTypes(dataTypeNode);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
// istanbul ignore next
|
|
63
|
+
if (dataTypeNodeId.value != 0) {
|
|
64
|
+
console.log("Internal error: Cannot find dataType", dataTypeNodeId.toString());
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// visit all references
|
|
69
|
+
const references = node.ownReferences();
|
|
70
|
+
for (const reference of references) {
|
|
71
|
+
// check referenceId
|
|
72
|
+
const namespaceIndex = (0, base_node_impl_1.getReferenceType)(reference).nodeId.namespace;
|
|
73
|
+
consider(namespaceIndex);
|
|
74
|
+
const namespaceIndex2 = reference.nodeId.namespace;
|
|
75
|
+
consider(namespaceIndex2);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function hasHigherPriorityThan(namespaceIndex1, namespaceIndex2, priorityTable) {
|
|
80
|
+
const order1 = priorityTable[namespaceIndex1];
|
|
81
|
+
const order2 = priorityTable[namespaceIndex2];
|
|
82
|
+
return order1 > order2;
|
|
83
|
+
}
|
|
84
|
+
exports.hasHigherPriorityThan = hasHigherPriorityThan;
|
|
85
|
+
/**
|
|
86
|
+
*
|
|
87
|
+
* @param namespace
|
|
88
|
+
* @returns the order
|
|
89
|
+
*
|
|
90
|
+
* ---
|
|
91
|
+
* ua, own , di => 0 , 2, 1
|
|
92
|
+
*
|
|
93
|
+
* ---
|
|
94
|
+
* ua, own , di , kitchen , own2, adi => 0 , 2, 3, 1
|
|
95
|
+
*
|
|
96
|
+
* ---
|
|
97
|
+
* ua, own , di , kitchen , own2, adi => 0 , 2, 3, 5, 1
|
|
98
|
+
*/
|
|
99
|
+
function constructNamespacePriorityTable(namespace) {
|
|
100
|
+
// Namespace 0 will always be 0
|
|
101
|
+
// Namespaces with no requiredModel will be considered as instance namespaces and will added at the end
|
|
102
|
+
// in the same order as they appear,
|
|
103
|
+
// Namespace with requiredModels are considered to be companion specification, so already loaded in the correct order
|
|
104
|
+
const addressSpace = namespace.addressSpace;
|
|
105
|
+
const namespaces = addressSpace.getNamespaceArray();
|
|
106
|
+
const namespaceWithReq = namespaces.filter((n) => (n.getRequiredModels() !== undefined) && n.index !== 0);
|
|
107
|
+
const namespaceWithoutReq = namespaces.filter((n) => (n.getRequiredModels() === undefined) && n.index !== 0);
|
|
108
|
+
const priorityList = [0];
|
|
109
|
+
let counter = 1;
|
|
110
|
+
for (let i = 0; i < namespaceWithReq.length; i++) {
|
|
111
|
+
priorityList[namespaceWithReq[i].index] = counter++;
|
|
112
|
+
}
|
|
113
|
+
for (let i = 0; i < namespaceWithoutReq.length; i++) {
|
|
114
|
+
priorityList[namespaceWithoutReq[i].index] = counter++;
|
|
115
|
+
}
|
|
116
|
+
return priorityList;
|
|
117
|
+
}
|
|
118
|
+
exports.constructNamespacePriorityTable = constructNamespacePriorityTable;
|
|
119
|
+
const doDebug = false;
|
|
120
|
+
function constructNamespaceDependency(namespace, priorityTable) {
|
|
121
|
+
const addressSpace = namespace.addressSpace;
|
|
122
|
+
priorityTable = priorityTable || constructNamespacePriorityTable(namespace);
|
|
123
|
+
const dependency = [];
|
|
124
|
+
const depMap = new Set();
|
|
125
|
+
dependency.push(addressSpace.getDefaultNamespace());
|
|
126
|
+
depMap.add(0);
|
|
127
|
+
if (namespace !== addressSpace.getDefaultNamespace()) {
|
|
128
|
+
dependency.push(namespace);
|
|
129
|
+
depMap.add(namespace.index);
|
|
130
|
+
}
|
|
131
|
+
const _visitedDataType = new Set();
|
|
132
|
+
_constructNamespaceDependency(namespace, dependency, depMap, _visitedDataType, priorityTable);
|
|
133
|
+
doDebug && console.log("namespace : ", namespace.index, namespace.namespaceUri);
|
|
134
|
+
doDebug && console.log(" ", dependency.map((d) => d.index + " " + d.namespaceUri).join("\n "));
|
|
135
|
+
const sorted = dependency.sort((a, b) => priorityTable[a.index] < priorityTable[b.index] ? -1 : 1);
|
|
136
|
+
doDebug && console.log("sorted:");
|
|
137
|
+
doDebug && console.log(" ", sorted.map((d) => d.index + " " + d.namespaceUri).join("\n "));
|
|
138
|
+
return sorted;
|
|
139
|
+
}
|
|
140
|
+
exports.constructNamespaceDependency = constructNamespaceDependency;
|
|
141
141
|
//# sourceMappingURL=construct_namespace_dependency.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { NamespacePrivate } from "../namespace_private";
|
|
2
|
-
export declare function dumpToBSD(namespace: NamespacePrivate): string;
|
|
1
|
+
import { NamespacePrivate } from "../namespace_private";
|
|
2
|
+
export declare function dumpToBSD(namespace: NamespacePrivate): string;
|
|
@@ -1,165 +1,165 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.dumpToBSD = void 0;
|
|
4
|
-
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
5
|
-
const node_opcua_types_1 = require("node-opcua-types");
|
|
6
|
-
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
7
|
-
const construct_namespace_dependency_1 = require("./construct_namespace_dependency");
|
|
8
|
-
// tslint:disable-next-line: no-var-requires
|
|
9
|
-
const XMLWriter = require("xml-writer");
|
|
10
|
-
function dumpEnumeratedType(xw, e, name) {
|
|
11
|
-
xw.startElement("opc:EnumeratedType");
|
|
12
|
-
xw.writeAttribute("Name", name);
|
|
13
|
-
xw.writeAttribute("LengthInBits", "32");
|
|
14
|
-
for (const f of e.fields || []) {
|
|
15
|
-
xw.startElement("opc:EnumeratedValue");
|
|
16
|
-
xw.writeAttribute("Name", f.name);
|
|
17
|
-
(0, node_opcua_assert_1.assert)(f.value[0] === 0, "unsupported 64 bit value !");
|
|
18
|
-
xw.writeAttribute("Value", f.value[1].toString());
|
|
19
|
-
xw.endElement();
|
|
20
|
-
}
|
|
21
|
-
xw.endElement();
|
|
22
|
-
}
|
|
23
|
-
function buildXmlName(addressSpace, map, nodeId) {
|
|
24
|
-
if (node_opcua_nodeid_1.NodeId.sameNodeId(nodeId, node_opcua_nodeid_1.NodeId.nullNodeId)) {
|
|
25
|
-
return "ua:ExtensionObject";
|
|
26
|
-
}
|
|
27
|
-
const node = addressSpace.findNode(nodeId);
|
|
28
|
-
// istanbul ignore next
|
|
29
|
-
if (!node) {
|
|
30
|
-
throw new Error("Cannot find Node for" + (nodeId === null || nodeId === void 0 ? void 0 : nodeId.toString()));
|
|
31
|
-
}
|
|
32
|
-
const typeName = node.browseName.name;
|
|
33
|
-
const n = node.nodeId;
|
|
34
|
-
const prefix = (n.identifierType === node_opcua_nodeid_1.NodeIdType.NUMERIC && n.namespace === 0) ? (n.value <= 15 ? "opc" : "ua") : map[node.nodeId.namespace];
|
|
35
|
-
return prefix + ":" + (typeName === "Structure" && prefix === "ua" ? "ExtensionObject" : typeName);
|
|
36
|
-
}
|
|
37
|
-
// eslint-disable-next-line max-statements
|
|
38
|
-
function dumpDataTypeStructure(xw, addressSpace, map, structureDefinition, structureDefinitionBase, name, doc) {
|
|
39
|
-
var _a, _b;
|
|
40
|
-
xw.startElement("opc:StructuredType");
|
|
41
|
-
xw.writeAttribute("Name", name);
|
|
42
|
-
xw.writeAttribute("BaseType", buildXmlName(addressSpace, map, structureDefinition.baseDataType));
|
|
43
|
-
if (doc) {
|
|
44
|
-
xw.startElement("opc:Documentation");
|
|
45
|
-
xw.text(doc);
|
|
46
|
-
xw.endElement();
|
|
47
|
-
}
|
|
48
|
-
const fields = structureDefinition.fields || [];
|
|
49
|
-
// get base class
|
|
50
|
-
const nbFieldsInBase = structureDefinitionBase ? ((_a = structureDefinitionBase.fields) === null || _a === void 0 ? void 0 : _a.length) || 0 : 0;
|
|
51
|
-
let optionalsCount = 0;
|
|
52
|
-
for (let index = nbFieldsInBase; index < fields.length; index++) {
|
|
53
|
-
const f = fields[index];
|
|
54
|
-
if (f.isOptional) {
|
|
55
|
-
xw.startElement("opc:Field");
|
|
56
|
-
xw.writeAttribute("Name", f.name + "Specified");
|
|
57
|
-
xw.writeAttribute("TypeName", "opc:Bit");
|
|
58
|
-
xw.endElement();
|
|
59
|
-
optionalsCount++;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
// istanbul ignore next
|
|
63
|
-
if (optionalsCount >= 32) {
|
|
64
|
-
throw new Error("Too many optionals fields");
|
|
65
|
-
}
|
|
66
|
-
if (optionalsCount) {
|
|
67
|
-
/*
|
|
68
|
-
const padding = optionalsCount <= 8
|
|
69
|
-
? (8 - optionalsCount)
|
|
70
|
-
: (optionalsCount <= 16)
|
|
71
|
-
? (16 - optionalsCount)
|
|
72
|
-
: (32 - optionalsCount)
|
|
73
|
-
;
|
|
74
|
-
*/
|
|
75
|
-
const padding = 32 - optionalsCount;
|
|
76
|
-
if (padding !== 0) {
|
|
77
|
-
xw.startElement("opc:Field");
|
|
78
|
-
xw.writeAttribute("Name", "Reserved1");
|
|
79
|
-
xw.writeAttribute("TypeName", "opc:Bit");
|
|
80
|
-
xw.writeAttribute("Length", padding.toString());
|
|
81
|
-
xw.endElement();
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
for (let index = nbFieldsInBase; index < fields.length; index++) {
|
|
85
|
-
const f = fields[index];
|
|
86
|
-
const isArray = f.valueRank > 0 && ((_b = f.arrayDimensions) === null || _b === void 0 ? void 0 : _b.length);
|
|
87
|
-
if (isArray) {
|
|
88
|
-
xw.startElement("opc:Field");
|
|
89
|
-
xw.writeAttribute("Name", "NoOf" + f.name);
|
|
90
|
-
xw.writeAttribute("TypeName", "opc:Int32");
|
|
91
|
-
if (f.isOptional) {
|
|
92
|
-
xw.writeAttribute("SwitchField", f.name + "Specified");
|
|
93
|
-
}
|
|
94
|
-
xw.endElement();
|
|
95
|
-
}
|
|
96
|
-
xw.startElement("opc:Field");
|
|
97
|
-
xw.writeAttribute("Name", f.name);
|
|
98
|
-
const typeName = buildXmlName(addressSpace, map, f.dataType);
|
|
99
|
-
xw.writeAttribute("TypeName", typeName);
|
|
100
|
-
if (isArray) {
|
|
101
|
-
xw.writeAttribute("LengthField", "NoOf" + f.name);
|
|
102
|
-
}
|
|
103
|
-
if (f.isOptional) {
|
|
104
|
-
xw.writeAttribute("SwitchField", f.name + "Specified");
|
|
105
|
-
}
|
|
106
|
-
xw.endElement();
|
|
107
|
-
}
|
|
108
|
-
xw.endElement();
|
|
109
|
-
}
|
|
110
|
-
function dumpDataTypeToBSD(xw, dataType, map) {
|
|
111
|
-
var _a;
|
|
112
|
-
const addressSpace = dataType.addressSpace;
|
|
113
|
-
const name = dataType.browseName.name;
|
|
114
|
-
const definition = dataType.getDefinition();
|
|
115
|
-
if (definition instanceof node_opcua_types_1.StructureDefinition) {
|
|
116
|
-
const structureDefinitionBase = (_a = dataType.subtypeOfObj) === null || _a === void 0 ? void 0 : _a.getStructureDefinition();
|
|
117
|
-
dumpDataTypeStructure(xw, addressSpace, map, definition, structureDefinitionBase, name);
|
|
118
|
-
}
|
|
119
|
-
if (definition instanceof node_opcua_types_1.EnumDefinition) {
|
|
120
|
-
dumpEnumeratedType(xw, definition, name);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
function shortcut(namespace) {
|
|
124
|
-
return "n" + namespace.index;
|
|
125
|
-
}
|
|
126
|
-
function dumpToBSD(namespace) {
|
|
127
|
-
const dependency = (0, construct_namespace_dependency_1.constructNamespaceDependency)(namespace);
|
|
128
|
-
const addressSpace = namespace.addressSpace;
|
|
129
|
-
const xw = new XMLWriter(true);
|
|
130
|
-
//xx xw.startDocument():// { encoding: "utf-8", version: "1.0" });
|
|
131
|
-
xw.startElement("opc:TypeDictionary");
|
|
132
|
-
xw.writeAttribute("xmlns:opc", "http://opcfoundation.org/BinarySchema/");
|
|
133
|
-
xw.writeAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
|
|
134
|
-
xw.writeAttribute("xmlns:ua", "http://opcfoundation.org/UA/");
|
|
135
|
-
xw.writeAttribute("xmlns:tns", namespace.namespaceUri);
|
|
136
|
-
const map = {};
|
|
137
|
-
map[namespace.index] = "tns";
|
|
138
|
-
for (const dependantNamespace of dependency) {
|
|
139
|
-
const namespaceIndex = dependantNamespace.index;
|
|
140
|
-
if (namespaceIndex === 0 || namespaceIndex === namespace.index) {
|
|
141
|
-
continue;
|
|
142
|
-
}
|
|
143
|
-
const ns = shortcut(dependantNamespace);
|
|
144
|
-
map[namespaceIndex] = ns;
|
|
145
|
-
xw.writeAttribute(`xmlns:${ns}`, dependantNamespace.namespaceUri);
|
|
146
|
-
}
|
|
147
|
-
xw.writeAttribute("DefaultByteOrder", "LittleEndian");
|
|
148
|
-
xw.writeAttribute("TargetNamespace", namespace.namespaceUri);
|
|
149
|
-
// <opc:Import Namespace="http://opcfoundation.org/UA/"/>
|
|
150
|
-
for (const dependantNamespace of dependency) {
|
|
151
|
-
if (dependantNamespace.index === namespace.index) {
|
|
152
|
-
continue;
|
|
153
|
-
}
|
|
154
|
-
xw.startElement("opc:Import").writeAttribute("Namespace", dependantNamespace.namespaceUri).endElement();
|
|
155
|
-
}
|
|
156
|
-
//
|
|
157
|
-
for (const dataType of namespace._dataTypeIterator()) {
|
|
158
|
-
dumpDataTypeToBSD(xw, dataType, map);
|
|
159
|
-
}
|
|
160
|
-
xw.endElement();
|
|
161
|
-
// xw.endDocument();
|
|
162
|
-
return xw.toString();
|
|
163
|
-
}
|
|
164
|
-
exports.dumpToBSD = dumpToBSD;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dumpToBSD = void 0;
|
|
4
|
+
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
5
|
+
const node_opcua_types_1 = require("node-opcua-types");
|
|
6
|
+
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
7
|
+
const construct_namespace_dependency_1 = require("./construct_namespace_dependency");
|
|
8
|
+
// tslint:disable-next-line: no-var-requires
|
|
9
|
+
const XMLWriter = require("xml-writer");
|
|
10
|
+
function dumpEnumeratedType(xw, e, name) {
|
|
11
|
+
xw.startElement("opc:EnumeratedType");
|
|
12
|
+
xw.writeAttribute("Name", name);
|
|
13
|
+
xw.writeAttribute("LengthInBits", "32");
|
|
14
|
+
for (const f of e.fields || []) {
|
|
15
|
+
xw.startElement("opc:EnumeratedValue");
|
|
16
|
+
xw.writeAttribute("Name", f.name);
|
|
17
|
+
(0, node_opcua_assert_1.assert)(f.value[0] === 0, "unsupported 64 bit value !");
|
|
18
|
+
xw.writeAttribute("Value", f.value[1].toString());
|
|
19
|
+
xw.endElement();
|
|
20
|
+
}
|
|
21
|
+
xw.endElement();
|
|
22
|
+
}
|
|
23
|
+
function buildXmlName(addressSpace, map, nodeId) {
|
|
24
|
+
if (node_opcua_nodeid_1.NodeId.sameNodeId(nodeId, node_opcua_nodeid_1.NodeId.nullNodeId)) {
|
|
25
|
+
return "ua:ExtensionObject";
|
|
26
|
+
}
|
|
27
|
+
const node = addressSpace.findNode(nodeId);
|
|
28
|
+
// istanbul ignore next
|
|
29
|
+
if (!node) {
|
|
30
|
+
throw new Error("Cannot find Node for" + (nodeId === null || nodeId === void 0 ? void 0 : nodeId.toString()));
|
|
31
|
+
}
|
|
32
|
+
const typeName = node.browseName.name;
|
|
33
|
+
const n = node.nodeId;
|
|
34
|
+
const prefix = (n.identifierType === node_opcua_nodeid_1.NodeIdType.NUMERIC && n.namespace === 0) ? (n.value <= 15 ? "opc" : "ua") : map[node.nodeId.namespace];
|
|
35
|
+
return prefix + ":" + (typeName === "Structure" && prefix === "ua" ? "ExtensionObject" : typeName);
|
|
36
|
+
}
|
|
37
|
+
// eslint-disable-next-line max-statements
|
|
38
|
+
function dumpDataTypeStructure(xw, addressSpace, map, structureDefinition, structureDefinitionBase, name, doc) {
|
|
39
|
+
var _a, _b;
|
|
40
|
+
xw.startElement("opc:StructuredType");
|
|
41
|
+
xw.writeAttribute("Name", name);
|
|
42
|
+
xw.writeAttribute("BaseType", buildXmlName(addressSpace, map, structureDefinition.baseDataType));
|
|
43
|
+
if (doc) {
|
|
44
|
+
xw.startElement("opc:Documentation");
|
|
45
|
+
xw.text(doc);
|
|
46
|
+
xw.endElement();
|
|
47
|
+
}
|
|
48
|
+
const fields = structureDefinition.fields || [];
|
|
49
|
+
// get base class
|
|
50
|
+
const nbFieldsInBase = structureDefinitionBase ? ((_a = structureDefinitionBase.fields) === null || _a === void 0 ? void 0 : _a.length) || 0 : 0;
|
|
51
|
+
let optionalsCount = 0;
|
|
52
|
+
for (let index = nbFieldsInBase; index < fields.length; index++) {
|
|
53
|
+
const f = fields[index];
|
|
54
|
+
if (f.isOptional) {
|
|
55
|
+
xw.startElement("opc:Field");
|
|
56
|
+
xw.writeAttribute("Name", f.name + "Specified");
|
|
57
|
+
xw.writeAttribute("TypeName", "opc:Bit");
|
|
58
|
+
xw.endElement();
|
|
59
|
+
optionalsCount++;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// istanbul ignore next
|
|
63
|
+
if (optionalsCount >= 32) {
|
|
64
|
+
throw new Error("Too many optionals fields");
|
|
65
|
+
}
|
|
66
|
+
if (optionalsCount) {
|
|
67
|
+
/*
|
|
68
|
+
const padding = optionalsCount <= 8
|
|
69
|
+
? (8 - optionalsCount)
|
|
70
|
+
: (optionalsCount <= 16)
|
|
71
|
+
? (16 - optionalsCount)
|
|
72
|
+
: (32 - optionalsCount)
|
|
73
|
+
;
|
|
74
|
+
*/
|
|
75
|
+
const padding = 32 - optionalsCount;
|
|
76
|
+
if (padding !== 0) {
|
|
77
|
+
xw.startElement("opc:Field");
|
|
78
|
+
xw.writeAttribute("Name", "Reserved1");
|
|
79
|
+
xw.writeAttribute("TypeName", "opc:Bit");
|
|
80
|
+
xw.writeAttribute("Length", padding.toString());
|
|
81
|
+
xw.endElement();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
for (let index = nbFieldsInBase; index < fields.length; index++) {
|
|
85
|
+
const f = fields[index];
|
|
86
|
+
const isArray = f.valueRank > 0 && ((_b = f.arrayDimensions) === null || _b === void 0 ? void 0 : _b.length);
|
|
87
|
+
if (isArray) {
|
|
88
|
+
xw.startElement("opc:Field");
|
|
89
|
+
xw.writeAttribute("Name", "NoOf" + f.name);
|
|
90
|
+
xw.writeAttribute("TypeName", "opc:Int32");
|
|
91
|
+
if (f.isOptional) {
|
|
92
|
+
xw.writeAttribute("SwitchField", f.name + "Specified");
|
|
93
|
+
}
|
|
94
|
+
xw.endElement();
|
|
95
|
+
}
|
|
96
|
+
xw.startElement("opc:Field");
|
|
97
|
+
xw.writeAttribute("Name", f.name);
|
|
98
|
+
const typeName = buildXmlName(addressSpace, map, f.dataType);
|
|
99
|
+
xw.writeAttribute("TypeName", typeName);
|
|
100
|
+
if (isArray) {
|
|
101
|
+
xw.writeAttribute("LengthField", "NoOf" + f.name);
|
|
102
|
+
}
|
|
103
|
+
if (f.isOptional) {
|
|
104
|
+
xw.writeAttribute("SwitchField", f.name + "Specified");
|
|
105
|
+
}
|
|
106
|
+
xw.endElement();
|
|
107
|
+
}
|
|
108
|
+
xw.endElement();
|
|
109
|
+
}
|
|
110
|
+
function dumpDataTypeToBSD(xw, dataType, map) {
|
|
111
|
+
var _a;
|
|
112
|
+
const addressSpace = dataType.addressSpace;
|
|
113
|
+
const name = dataType.browseName.name;
|
|
114
|
+
const definition = dataType.getDefinition();
|
|
115
|
+
if (definition instanceof node_opcua_types_1.StructureDefinition) {
|
|
116
|
+
const structureDefinitionBase = (_a = dataType.subtypeOfObj) === null || _a === void 0 ? void 0 : _a.getStructureDefinition();
|
|
117
|
+
dumpDataTypeStructure(xw, addressSpace, map, definition, structureDefinitionBase, name);
|
|
118
|
+
}
|
|
119
|
+
if (definition instanceof node_opcua_types_1.EnumDefinition) {
|
|
120
|
+
dumpEnumeratedType(xw, definition, name);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
function shortcut(namespace) {
|
|
124
|
+
return "n" + namespace.index;
|
|
125
|
+
}
|
|
126
|
+
function dumpToBSD(namespace) {
|
|
127
|
+
const dependency = (0, construct_namespace_dependency_1.constructNamespaceDependency)(namespace);
|
|
128
|
+
const addressSpace = namespace.addressSpace;
|
|
129
|
+
const xw = new XMLWriter(true);
|
|
130
|
+
//xx xw.startDocument():// { encoding: "utf-8", version: "1.0" });
|
|
131
|
+
xw.startElement("opc:TypeDictionary");
|
|
132
|
+
xw.writeAttribute("xmlns:opc", "http://opcfoundation.org/BinarySchema/");
|
|
133
|
+
xw.writeAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
|
|
134
|
+
xw.writeAttribute("xmlns:ua", "http://opcfoundation.org/UA/");
|
|
135
|
+
xw.writeAttribute("xmlns:tns", namespace.namespaceUri);
|
|
136
|
+
const map = {};
|
|
137
|
+
map[namespace.index] = "tns";
|
|
138
|
+
for (const dependantNamespace of dependency) {
|
|
139
|
+
const namespaceIndex = dependantNamespace.index;
|
|
140
|
+
if (namespaceIndex === 0 || namespaceIndex === namespace.index) {
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
const ns = shortcut(dependantNamespace);
|
|
144
|
+
map[namespaceIndex] = ns;
|
|
145
|
+
xw.writeAttribute(`xmlns:${ns}`, dependantNamespace.namespaceUri);
|
|
146
|
+
}
|
|
147
|
+
xw.writeAttribute("DefaultByteOrder", "LittleEndian");
|
|
148
|
+
xw.writeAttribute("TargetNamespace", namespace.namespaceUri);
|
|
149
|
+
// <opc:Import Namespace="http://opcfoundation.org/UA/"/>
|
|
150
|
+
for (const dependantNamespace of dependency) {
|
|
151
|
+
if (dependantNamespace.index === namespace.index) {
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
xw.startElement("opc:Import").writeAttribute("Namespace", dependantNamespace.namespaceUri).endElement();
|
|
155
|
+
}
|
|
156
|
+
//
|
|
157
|
+
for (const dataType of namespace._dataTypeIterator()) {
|
|
158
|
+
dumpDataTypeToBSD(xw, dataType, map);
|
|
159
|
+
}
|
|
160
|
+
xw.endElement();
|
|
161
|
+
// xw.endDocument();
|
|
162
|
+
return xw.toString();
|
|
163
|
+
}
|
|
164
|
+
exports.dumpToBSD = dumpToBSD;
|
|
165
165
|
//# sourceMappingURL=dump_to_bsd.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { BaseNode } from "node-opcua-address-space-base";
|
|
2
|
-
export declare function sortByBrowseName(x: BaseNode, y: BaseNode): number;
|
|
3
|
-
type NodeIdString = string;
|
|
4
|
-
export interface BuildAliasesData {
|
|
5
|
-
aliases: Record<string, NodeIdString>;
|
|
6
|
-
aliases_visited?: Record<string, unknown>;
|
|
7
|
-
}
|
|
8
|
-
export interface DumpXMLOptions {
|
|
9
|
-
}
|
|
10
|
-
export {};
|
|
1
|
+
import { BaseNode } from "node-opcua-address-space-base";
|
|
2
|
+
export declare function sortByBrowseName(x: BaseNode, y: BaseNode): number;
|
|
3
|
+
type NodeIdString = string;
|
|
4
|
+
export interface BuildAliasesData {
|
|
5
|
+
aliases: Record<string, NodeIdString>;
|
|
6
|
+
aliases_visited?: Record<string, unknown>;
|
|
7
|
+
}
|
|
8
|
+
export interface DumpXMLOptions {
|
|
9
|
+
}
|
|
10
|
+
export {};
|