node-opcua-address-space 2.71.0 → 2.72.2
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 +32 -32
- package/dist/source/continuation_points/continuation_point_manager.js +195 -195
- 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 +34 -34
- package/dist/source/helpers/argument_list.js +285 -285
- package/dist/source/helpers/call_helpers.d.ts +6 -6
- package/dist/source/helpers/call_helpers.js +70 -70
- package/dist/source/helpers/check_event_clause.d.ts +17 -17
- package/dist/source/helpers/check_event_clause.js +52 -52
- 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 +73 -73
- 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 +40 -40
- package/dist/source/index.js +66 -66
- package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +12 -12
- package/dist/source/interfaces/alarms_and_conditions/condition_info_i.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/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_state_machine_type.d.ts +222 -222
- 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 +45 -45
- package/dist/source/loader/generateAddressSpaceRaw.d.ts +10 -10
- package/dist/source/loader/generateAddressSpaceRaw.js +45 -45
- package/dist/source/loader/load_nodeset2.d.ts +16 -16
- package/dist/source/loader/load_nodeset2.js +1468 -1464
- package/dist/source/loader/load_nodeset2.js.map +1 -1
- package/dist/source/loader/make_semver_compatible.d.ts +6 -0
- package/dist/source/loader/make_semver_compatible.js +26 -0
- package/dist/source/loader/make_semver_compatible.js.map +1 -0
- package/dist/source/loader/make_xml_extension_object_parser.d.ts +28 -28
- package/dist/source/loader/make_xml_extension_object_parser.js +325 -315
- package/dist/source/loader/make_xml_extension_object_parser.js.map +1 -1
- package/dist/source/loader/namespace_post_step.d.ts +6 -6
- package/dist/source/loader/namespace_post_step.js +47 -47
- package/dist/source/loader/register_node_promoter.d.ts +3 -3
- 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 +24 -24
- 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 +7 -7
- package/dist/source/namespace_machine_state.js +2 -2
- package/dist/source/pseudo_session.d.ts +55 -55
- package/dist/source/pseudo_session.js +203 -203
- package/dist/source/session_context.d.ts +111 -111
- package/dist/source/session_context.js +265 -265
- 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 +9 -9
- package/dist/source/xml_writer.js +2 -2
- package/dist/src/address_space.d.ts +392 -392
- package/dist/src/address_space.js +1387 -1387
- package/dist/src/address_space_change_event_tools.d.ts +6 -6
- package/dist/src/address_space_change_event_tools.js +149 -149
- 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/check_where_clause.d.ts +4 -4
- package/dist/src/alarms_and_conditions/check_where_clause.js +109 -109
- package/dist/src/alarms_and_conditions/condition.d.ts +5 -5
- package/dist/src/alarms_and_conditions/condition.js +80 -80
- package/dist/src/alarms_and_conditions/condition_info.d.ts +27 -27
- package/dist/src/alarms_and_conditions/condition_info.js +54 -54
- package/dist/src/alarms_and_conditions/condition_snapshot.d.ts +233 -233
- package/dist/src/alarms_and_conditions/condition_snapshot.js +666 -666
- package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +21 -21
- package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +46 -46
- package/dist/src/alarms_and_conditions/extract_event_fields.d.ts +10 -10
- package/dist/src/alarms_and_conditions/extract_event_fields.js +89 -89
- package/dist/src/alarms_and_conditions/index.d.ts +18 -18
- package/dist/src/alarms_and_conditions/index.js +34 -34
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +64 -62
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -244
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +124 -118
- package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +416 -416
- 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 +29 -29
- 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 +36 -21
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +115 -25
- 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 +187 -182
- package/dist/src/alarms_and_conditions/ua_condition_impl.js +1024 -1022
- 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 +18 -17
- package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +57 -57
- package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +30 -27
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +56 -56
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +11 -9
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +11 -11
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +40 -38
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +86 -86
- 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.d.ts +10 -10
- 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 +105 -97
- package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +250 -250
- package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +29 -28
- package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +50 -50
- package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +26 -25
- package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +162 -162
- package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +48 -39
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +161 -135
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +17 -16
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +17 -17
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js.map +1 -1
- 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 +281 -281
- package/dist/src/base_node_impl.js +1395 -1395
- package/dist/src/base_node_private.d.ts +61 -61
- package/dist/src/base_node_private.js +705 -705
- 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.d.ts +51 -51
- package/dist/src/data_access/ua_multistate_value_discrete.js +249 -249
- package/dist/src/data_access/ua_two_state_discrete.d.ts +25 -25
- package/dist/src/data_access/ua_two_state_discrete.js +153 -153
- package/dist/src/event_data.d.ts +29 -29
- package/dist/src/event_data.js +95 -95
- package/dist/src/extension_object_array_node.d.ts +61 -61
- package/dist/src/extension_object_array_node.js +276 -276
- 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 +630 -630
- package/dist/src/index_current.d.ts +45 -45
- package/dist/src/index_current.js +77 -77
- package/dist/src/namespace_impl.d.ts +457 -457
- package/dist/src/namespace_impl.js +1733 -1733
- package/dist/src/namespace_private.d.ts +21 -21
- package/dist/src/namespace_private.js +32 -32
- package/dist/src/nodeid_manager.d.ts +36 -36
- package/dist/src/nodeid_manager.js +197 -197
- 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 +2 -2
- package/dist/src/nodeset_tools/construct_namespace_dependency.js +83 -83
- package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +2 -2
- package/dist/src/nodeset_tools/nodeset_to_xml.js +1143 -1143
- package/dist/src/nodeset_tools/typedictionary_to_xml.d.ts +2 -2
- package/dist/src/nodeset_tools/typedictionary_to_xml.js +154 -154
- 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 +67 -67
- package/dist/src/state_machine/finite_state_machine.js +353 -353
- package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +34 -34
- 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_isSupertypeOf.d.ts +17 -17
- package/dist/src/tool_isSupertypeOf.js +108 -108
- 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 +93 -93
- package/dist/src/ua_data_type_impl.js +368 -368
- package/dist/src/ua_method_impl.d.ts +41 -41
- package/dist/src/ua_method_impl.js +208 -208
- package/dist/src/ua_object_impl.d.ts +35 -33
- package/dist/src/ua_object_impl.js +162 -156
- package/dist/src/ua_object_impl.js.map +1 -1
- package/dist/src/ua_object_type_impl.d.ts +48 -48
- package/dist/src/ua_object_type_impl.js +124 -124
- package/dist/src/ua_reference_type_impl.d.ts +43 -43
- package/dist/src/ua_reference_type_impl.js +139 -139
- package/dist/src/ua_variable_impl.d.ts +351 -351
- package/dist/src/ua_variable_impl.js +1604 -1604
- package/dist/src/ua_variable_impl_ext_obj.d.ts +17 -17
- package/dist/src/ua_variable_impl_ext_obj.js +437 -437
- package/dist/src/ua_variable_type_impl.d.ts +62 -62
- package/dist/src/ua_variable_type_impl.js +570 -570
- package/dist/src/ua_view_impl.d.ts +19 -15
- package/dist/src/ua_view_impl.js +43 -36
- package/dist/src/ua_view_impl.js.map +1 -1
- package/distHelpers/add_event_generator_object.d.ts +3 -3
- package/distHelpers/add_event_generator_object.js +65 -65
- package/distHelpers/alarms_and_conditions_demo.d.ts +10 -10
- package/distHelpers/alarms_and_conditions_demo.js +114 -114
- 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 +14 -14
- package/distHelpers/mock_session.js +25 -25
- package/distNodeJS/generate_address_space.d.ts +4 -4
- package/distNodeJS/generate_address_space.js +41 -41
- package/distNodeJS/index.d.ts +1 -1
- package/distNodeJS/index.js +17 -17
- package/package.json +23 -23
- package/source/loader/load_nodeset2.ts +21 -17
- package/source/loader/make_semver_compatible.ts +23 -0
- package/source/loader/make_xml_extension_object_parser.ts +16 -6
- package/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.ts +13 -6
- package/src/alarms_and_conditions/ua_alarm_condition_impl.ts +15 -10
- package/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.ts +126 -10
- package/src/alarms_and_conditions/ua_condition_impl.ts +26 -13
- package/src/alarms_and_conditions/ua_discrete_alarm_impl.ts +10 -4
- package/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.ts +7 -6
- package/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.ts +5 -3
- package/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.ts +7 -6
- package/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.ts +1 -1
- package/src/alarms_and_conditions/ua_limit_alarm_impl.ts +23 -13
- package/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.ts +6 -7
- package/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.ts +6 -7
- package/src/alarms_and_conditions/ua_off_normal_alarm_impl.ts +62 -30
- package/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.ts +5 -5
- package/src/ua_object_impl.ts +11 -3
- package/src/ua_view_impl.ts +6 -4
- package/test_helpers/test_fixtures/dataType_issue.xml +9 -9
- package/test_helpers/test_fixtures/nodeset_with_guid.xml +1442 -0
- package/test_helpers/test_fixtures/nodeset_with_int64_values.xml +31 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.d.ts +0 -23
- package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.js +0 -3
- package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.js.map +0 -1
- package/dist/source/interfaces/data_access/ua_discrete_item.d.ts +0 -6
- package/dist/source/interfaces/data_access/ua_discrete_item.js +0 -3
- package/dist/source/interfaces/data_access/ua_discrete_item.js.map +0 -1
- package/dist/source/interfaces/data_access/ua_multistate_discrete.d.ts +0 -25
- package/dist/source/interfaces/data_access/ua_multistate_discrete.js +0 -3
- package/dist/source/interfaces/data_access/ua_multistate_discrete.js.map +0 -1
- package/dist/source/interfaces/data_access/ua_multistate_value_discrete.d.ts +0 -27
- package/dist/source/interfaces/data_access/ua_multistate_value_discrete.js +0 -3
- package/dist/source/interfaces/data_access/ua_multistate_value_discrete.js.map +0 -1
- package/dist/source/interfaces/data_access/ua_two_state_discrete.d.ts +0 -17
- package/dist/source/interfaces/data_access/ua_two_state_discrete.js +0 -3
- package/dist/source/interfaces/data_access/ua_two_state_discrete.js.map +0 -1
- package/dist/source/interfaces/data_access/ua_y_array_item.d.ts +0 -19
- package/dist/source/interfaces/data_access/ua_y_array_item.js +0 -3
- package/dist/source/interfaces/data_access/ua_y_array_item.js.map +0 -1
- package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.d.ts +0 -11
- package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.js +0 -3
- package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.js.map +0 -1
- package/dist/source/interfaces/state_machine/finite_state_machine.d.ts +0 -70
- package/dist/source/interfaces/state_machine/finite_state_machine.js +0 -3
- package/dist/source/interfaces/state_machine/finite_state_machine.js.map +0 -1
- package/dist/source/interfaces/state_machine/program_finite_state_machine.d.ts +0 -74
- package/dist/source/interfaces/state_machine/program_finite_state_machine.js +0 -3
- package/dist/source/interfaces/state_machine/program_finite_state_machine.js.map +0 -1
- package/dist/source/interfaces/state_machine/state_machine.d.ts +0 -342
- package/dist/source/interfaces/state_machine/state_machine.js +0 -3
- package/dist/source/interfaces/state_machine/state_machine.js.map +0 -1
- package/dist/source/interfaces/state_machine/ua_finite_state_variable.d.ts +0 -18
- package/dist/source/interfaces/state_machine/ua_finite_state_variable.js +0 -3
- package/dist/source/interfaces/state_machine/ua_finite_state_variable.js.map +0 -1
- package/dist/source/interfaces/state_machine/ua_state_variable.d.ts +0 -29
- package/dist/source/interfaces/state_machine/ua_state_variable.js +0 -3
- package/dist/source/interfaces/state_machine/ua_state_variable.js.map +0 -1
- package/dist/source/interfaces/state_machine/ua_two_state_variable.d.ts +0 -26
- package/dist/source/interfaces/state_machine/ua_two_state_variable.js +0 -3
- package/dist/source/interfaces/state_machine/ua_two_state_variable.js.map +0 -1
- package/dist/source/interfaces/subscription_diagnostics_variable.d.ts +0 -41
- package/dist/source/interfaces/subscription_diagnostics_variable.js +0 -3
- package/dist/source/interfaces/subscription_diagnostics_variable.js.map +0 -1
- package/dist/src/alarms_and_conditions/base_event_type.d.ts +0 -26
- package/dist/src/alarms_and_conditions/base_event_type.js +0 -41
- package/dist/src/alarms_and_conditions/base_event_type.js.map +0 -1
- package/dist/src/alarms_and_conditions/shelving_state_machine.d.ts +0 -22
- package/dist/src/alarms_and_conditions/shelving_state_machine.js +0 -241
- package/dist/src/alarms_and_conditions/shelving_state_machine.js.map +0 -1
- package/dist/src/alarms_and_conditions/trip_alarm.d.ts +0 -16
- package/dist/src/alarms_and_conditions/trip_alarm.js +0 -21
- package/dist/src/alarms_and_conditions/trip_alarm.js.map +0 -1
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.d.ts +0 -54
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.js +0 -255
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.js.map +0 -1
- package/dist/src/alarms_and_conditions/ua_alarm_condition_base.d.ts +0 -138
- package/dist/src/alarms_and_conditions/ua_alarm_condition_base.js +0 -460
- package/dist/src/alarms_and_conditions/ua_alarm_condition_base.js.map +0 -1
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.d.ts +0 -35
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.js +0 -32
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.js.map +0 -1
- package/dist/src/alarms_and_conditions/ua_condition_base.d.ts +0 -191
- package/dist/src/alarms_and_conditions/ua_condition_base.js +0 -1029
- package/dist/src/alarms_and_conditions/ua_condition_base.js.map +0 -1
- package/dist/src/alarms_and_conditions/ua_discrete_alarm.d.ts +0 -11
- package/dist/src/alarms_and_conditions/ua_discrete_alarm.js +0 -58
- package/dist/src/alarms_and_conditions/ua_discrete_alarm.js.map +0 -1
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.d.ts +0 -24
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.js +0 -59
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.js.map +0 -1
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.d.ts +0 -14
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.js +0 -17
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.js.map +0 -1
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.d.ts +0 -22
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.js +0 -87
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.js.map +0 -1
- package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.d.ts +0 -6
- package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.js +0 -11
- package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.js.map +0 -1
- package/dist/src/alarms_and_conditions/ua_limit_alarm.d.ts +0 -76
- package/dist/src/alarms_and_conditions/ua_limit_alarm.js +0 -237
- package/dist/src/alarms_and_conditions/ua_limit_alarm.js.map +0 -1
- package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.d.ts +0 -27
- package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.js +0 -62
- package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.js.map +0 -1
- package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.d.ts +0 -49
- package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.js +0 -176
- package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.js.map +0 -1
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm.d.ts +0 -47
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm.js +0 -151
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm.js.map +0 -1
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.d.ts +0 -16
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.js +0 -18
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.js.map +0 -1
- package/dist/src/base_node.d.ts +0 -270
- package/dist/src/base_node.js +0 -1299
- package/dist/src/base_node.js.map +0 -1
- package/dist/src/data_access/ua_analog_item.d.ts +0 -13
- package/dist/src/data_access/ua_analog_item.js +0 -37
- package/dist/src/data_access/ua_analog_item.js.map +0 -1
- package/dist/src/data_access/ua_data_item.d.ts +0 -16
- package/dist/src/data_access/ua_data_item.js +0 -66
- package/dist/src/data_access/ua_data_item.js.map +0 -1
- package/dist/src/data_access/ua_multistate_discrete.d.ts +0 -24
- package/dist/src/data_access/ua_multistate_discrete.js +0 -132
- package/dist/src/data_access/ua_multistate_discrete.js.map +0 -1
- package/dist/src/namespace.d.ts +0 -472
- package/dist/src/namespace.js +0 -1759
- package/dist/src/namespace.js.map +0 -1
- package/dist/src/reference.d.ts +0 -43
- package/dist/src/reference.js +0 -138
- package/dist/src/reference.js.map +0 -1
- package/dist/src/session_context.d.ts +0 -4
- package/dist/src/session_context.js +0 -9
- package/dist/src/session_context.js.map +0 -1
- package/dist/src/ua_data_type.d.ts +0 -81
- package/dist/src/ua_data_type.js +0 -259
- package/dist/src/ua_data_type.js.map +0 -1
- package/dist/src/ua_method.d.ts +0 -33
- package/dist/src/ua_method.js +0 -194
- package/dist/src/ua_method.js.map +0 -1
- package/dist/src/ua_object.d.ts +0 -27
- package/dist/src/ua_object.js +0 -153
- package/dist/src/ua_object.js.map +0 -1
- package/dist/src/ua_object_type.d.ts +0 -49
- package/dist/src/ua_object_type.js +0 -123
- package/dist/src/ua_object_type.js.map +0 -1
- package/dist/src/ua_reference_type.d.ts +0 -31
- package/dist/src/ua_reference_type.js +0 -108
- package/dist/src/ua_reference_type.js.map +0 -1
- package/dist/src/ua_variable.d.ts +0 -346
- package/dist/src/ua_variable.js +0 -1651
- package/dist/src/ua_variable.js.map +0 -1
- package/dist/src/ua_variable_type.d.ts +0 -57
- package/dist/src/ua_variable_type.js +0 -530
- package/dist/src/ua_variable_type.js.map +0 -1
- package/dist/src/ua_view.d.ts +0 -16
- package/dist/src/ua_view.js +0 -41
- package/dist/src/ua_view.js.map +0 -1
|
@@ -1,286 +1,286 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.build_retrieveInputArgumentsDefinition = exports.verifyArguments_ArgumentList = exports.isArgumentValid = exports.getMethodDeclaration_ArgumentList = exports.binaryStoreSize_ArgumentList = exports.decode_ArgumentList = exports.encode_ArgumentList = void 0;
|
|
4
|
-
/* eslint-disable complexity */
|
|
5
|
-
/**
|
|
6
|
-
* @module node-opcua-address-space
|
|
7
|
-
*/
|
|
8
|
-
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
9
|
-
const ec = require("node-opcua-basic-types");
|
|
10
|
-
const node_opcua_binary_stream_1 = require("node-opcua-binary-stream");
|
|
11
|
-
const node_opcua_debug_1 = require("node-opcua-debug");
|
|
12
|
-
const factories = require("node-opcua-factory");
|
|
13
|
-
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
14
|
-
const node_opcua_status_code_1 = require("node-opcua-status-code");
|
|
15
|
-
const node_opcua_variant_1 = require("node-opcua-variant");
|
|
16
|
-
const node_opcua_variant_2 = require("node-opcua-variant");
|
|
17
|
-
const node_opcua_constants_1 = require("node-opcua-constants");
|
|
18
|
-
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
19
|
-
const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
|
|
20
|
-
const warningLog = (0, node_opcua_debug_1.make_warningLog)(__filename);
|
|
21
|
-
const doDebug = (0, node_opcua_debug_1.checkDebugFlag)(__filename);
|
|
22
|
-
function myfindBuiltInType(dataType) {
|
|
23
|
-
return factories.findBuiltInType(node_opcua_variant_1.DataType[dataType]);
|
|
24
|
-
}
|
|
25
|
-
function encode_ArgumentList(definition, args, stream) {
|
|
26
|
-
(0, node_opcua_assert_1.assert)(definition.length === args.length);
|
|
27
|
-
(0, node_opcua_assert_1.assert)(Array.isArray(definition));
|
|
28
|
-
(0, node_opcua_assert_1.assert)(Array.isArray(args));
|
|
29
|
-
(0, node_opcua_assert_1.assert)(definition.length === args.length);
|
|
30
|
-
(0, node_opcua_assert_1.assert)(definition.length >= 0);
|
|
31
|
-
// we only encode arguments by following the definition
|
|
32
|
-
for (let i = 0; i < definition.length; i++) {
|
|
33
|
-
const def = definition[i];
|
|
34
|
-
const value = args[i];
|
|
35
|
-
const encodeFunc = myfindBuiltInType(def.dataType).encode;
|
|
36
|
-
// assert((def.valueRank === -1) || (def.valueRank === 0));
|
|
37
|
-
// todo : handle -3 -2
|
|
38
|
-
const isArray = def.valueRank && (def.valueRank === 1 || def.valueRank !== -1);
|
|
39
|
-
if (isArray) {
|
|
40
|
-
ec.encodeArray(value, stream, encodeFunc);
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
encodeFunc(value, stream);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
exports.encode_ArgumentList = encode_ArgumentList;
|
|
48
|
-
function decode_ArgumentList(definition, stream) {
|
|
49
|
-
if (!Array.isArray(definition)) {
|
|
50
|
-
throw new Error("This BaseDataType cannot be decoded because it has no definition.\n" +
|
|
51
|
-
"Please construct a BaseDataType({definition : [{dataType: DataType.UInt32 }]});");
|
|
52
|
-
}
|
|
53
|
-
const args = [];
|
|
54
|
-
let value;
|
|
55
|
-
for (const def of definition) {
|
|
56
|
-
const decodeFunc = myfindBuiltInType(def.dataType).decode;
|
|
57
|
-
// xx assert(def.valueRank === -1 || def.valueRank==0);
|
|
58
|
-
const isArray = def.valueRank === 1 || def.valueRank === -1;
|
|
59
|
-
if (isArray) {
|
|
60
|
-
value = ec.decodeArray(stream, decodeFunc);
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
value = decodeFunc(stream);
|
|
64
|
-
}
|
|
65
|
-
args.push(value);
|
|
66
|
-
}
|
|
67
|
-
return args;
|
|
68
|
-
}
|
|
69
|
-
exports.decode_ArgumentList = decode_ArgumentList;
|
|
70
|
-
function binaryStoreSize_ArgumentList(description, args) {
|
|
71
|
-
(0, node_opcua_assert_1.assert)(Array.isArray(description));
|
|
72
|
-
(0, node_opcua_assert_1.assert)(Array.isArray(args));
|
|
73
|
-
(0, node_opcua_assert_1.assert)(args.length === description.length);
|
|
74
|
-
const stream = new node_opcua_binary_stream_1.BinaryStreamSizeCalculator();
|
|
75
|
-
encode_ArgumentList(description, args, stream);
|
|
76
|
-
return stream.length;
|
|
77
|
-
}
|
|
78
|
-
exports.binaryStoreSize_ArgumentList = binaryStoreSize_ArgumentList;
|
|
79
|
-
function getMethodDeclaration_ArgumentList(addressSpace, objectId, methodId) {
|
|
80
|
-
// find object in address space
|
|
81
|
-
const obj = addressSpace.findNode(objectId);
|
|
82
|
-
if (!obj) {
|
|
83
|
-
// istanbul ignore next
|
|
84
|
-
if (doDebug) {
|
|
85
|
-
debugLog("cannot find node ", objectId.toString());
|
|
86
|
-
}
|
|
87
|
-
return { statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdUnknown };
|
|
88
|
-
}
|
|
89
|
-
let objectMethod = obj.getMethodById(methodId);
|
|
90
|
-
if (!objectMethod) {
|
|
91
|
-
// the method doesn't belong to the object, nevertheless
|
|
92
|
-
// the method can be called
|
|
93
|
-
objectMethod = addressSpace.findNode(methodId);
|
|
94
|
-
if (!objectMethod || objectMethod.nodeClass !== node_opcua_data_model_1.NodeClass.Method) {
|
|
95
|
-
warningLog("cannot find method with id", methodId.toString(), "object Id = ", objectId.toString());
|
|
96
|
-
return { statusCode: node_opcua_status_code_1.StatusCodes.BadMethodInvalid };
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
const methodDeclarationId = objectMethod.methodDeclarationId;
|
|
100
|
-
const methodDeclaration = addressSpace.findNode(methodDeclarationId);
|
|
101
|
-
if (!methodDeclaration) {
|
|
102
|
-
// return {statusCode: StatusCodes.BadMethodInvalid};
|
|
103
|
-
return { statusCode: node_opcua_status_code_1.StatusCodes.Good, methodDeclaration: objectMethod };
|
|
104
|
-
}
|
|
105
|
-
// istanbul ignore next
|
|
106
|
-
if (methodDeclaration.nodeClass !== node_opcua_data_model_1.NodeClass.Method) {
|
|
107
|
-
throw new Error("Expecting a Method here");
|
|
108
|
-
}
|
|
109
|
-
return { statusCode: node_opcua_status_code_1.StatusCodes.Good, methodDeclaration };
|
|
110
|
-
}
|
|
111
|
-
exports.getMethodDeclaration_ArgumentList = getMethodDeclaration_ArgumentList;
|
|
112
|
-
function checkValueRank(argDefinition, arg) {
|
|
113
|
-
const isArray = arg.arrayType === node_opcua_variant_2.VariantArrayType.Array;
|
|
114
|
-
const isMatrix = arg.arrayType === node_opcua_variant_2.VariantArrayType.Matrix;
|
|
115
|
-
if (argDefinition.valueRank > 0) {
|
|
116
|
-
if (argDefinition.valueRank === 1) {
|
|
117
|
-
if (!isArray) {
|
|
118
|
-
return false;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
if (!isMatrix) {
|
|
123
|
-
return false;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
else if (argDefinition.valueRank === -1) {
|
|
128
|
-
// SCALAR
|
|
129
|
-
if (isArray || isMatrix) {
|
|
130
|
-
return false;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
else if (argDefinition.valueRank === -2) {
|
|
134
|
-
// ANY
|
|
135
|
-
}
|
|
136
|
-
else if (argDefinition.valueRank === -3) {
|
|
137
|
-
// Scalar or OneDim
|
|
138
|
-
if (isMatrix) {
|
|
139
|
-
return false;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
else if (argDefinition.valueRank === 0) {
|
|
143
|
-
// array or matrix
|
|
144
|
-
if (!isArray && !isMatrix) {
|
|
145
|
-
return false;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
return true;
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* @private
|
|
152
|
-
*/
|
|
153
|
-
function isArgumentValid(addressSpace, argDefinition, arg) {
|
|
154
|
-
(0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(argDefinition, "dataType"));
|
|
155
|
-
(0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(argDefinition, "valueRank"));
|
|
156
|
-
const argDefDataType = addressSpace.findDataType(argDefinition.dataType);
|
|
157
|
-
const argDataType = addressSpace.findDataType((0, node_opcua_nodeid_1.resolveNodeId)(arg.dataType));
|
|
158
|
-
// istanbul ignore next
|
|
159
|
-
if (!argDefDataType) {
|
|
160
|
-
debugLog("dataType ", argDefinition.dataType.toString(), "doesn't exist");
|
|
161
|
-
return false;
|
|
162
|
-
}
|
|
163
|
-
if (argDefinition.valueRank >= 0 && arg.dataType === node_opcua_variant_1.DataType.Null) {
|
|
164
|
-
// this is valid to receive an empty array ith DataType.Null;
|
|
165
|
-
return true;
|
|
166
|
-
}
|
|
167
|
-
if (!checkValueRank(argDefinition, arg)) {
|
|
168
|
-
return false;
|
|
169
|
-
}
|
|
170
|
-
// istanbul ignore next
|
|
171
|
-
if (!argDataType) {
|
|
172
|
-
debugLog(" cannot find dataType ", arg.dataType, (0, node_opcua_nodeid_1.resolveNodeId)(arg.dataType));
|
|
173
|
-
debugLog(" arg = ", arg.toString());
|
|
174
|
-
debugLog(" def =", argDefinition.toString());
|
|
175
|
-
return false;
|
|
176
|
-
}
|
|
177
|
-
// istanbul ignore next
|
|
178
|
-
if (doDebug) {
|
|
179
|
-
debugLog(" checking argDefDataType ", argDefDataType.toString());
|
|
180
|
-
debugLog(" checking argDataType ", argDataType.toString());
|
|
181
|
-
}
|
|
182
|
-
if (argDataType.nodeId.value === argDefDataType.nodeId.value) {
|
|
183
|
-
return true;
|
|
184
|
-
}
|
|
185
|
-
// check that dataType is of the same type (derived )
|
|
186
|
-
if (argDefDataType.isSupertypeOf(argDataType)) {
|
|
187
|
-
// like argDefDataType IntegerId and argDataType Uint32
|
|
188
|
-
return true;
|
|
189
|
-
}
|
|
190
|
-
if (argDataType.isSupertypeOf(argDefDataType)) {
|
|
191
|
-
// like argDefDataType BaseDataType and argDataType any Type
|
|
192
|
-
return true;
|
|
193
|
-
}
|
|
194
|
-
// special case for Enumeration
|
|
195
|
-
if (arg.dataType === node_opcua_variant_1.DataType.Int32) {
|
|
196
|
-
const enumDataType = addressSpace.findDataType((0, node_opcua_nodeid_1.coerceNodeId)(node_opcua_constants_1.DataTypeIds.Enumeration));
|
|
197
|
-
if (argDefDataType.isSupertypeOf(enumDataType)) {
|
|
198
|
-
return true;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
return false;
|
|
202
|
-
}
|
|
203
|
-
exports.isArgumentValid = isArgumentValid;
|
|
204
|
-
/**
|
|
205
|
-
* @method verifyArguments_ArgumentList
|
|
206
|
-
* @param addressSpace
|
|
207
|
-
* @param methodInputArguments
|
|
208
|
-
* @param inputArguments
|
|
209
|
-
* @return statusCode,inputArgumentResults
|
|
210
|
-
*/
|
|
211
|
-
function verifyArguments_ArgumentList(addressSpace, methodInputArguments, inputArguments) {
|
|
212
|
-
if (!inputArguments) {
|
|
213
|
-
// it is possible to not provide inputArguments when method has no arguments
|
|
214
|
-
return methodInputArguments.length === 0
|
|
215
|
-
? { statusCode: node_opcua_status_code_1.StatusCodes.Good }
|
|
216
|
-
: { statusCode: node_opcua_status_code_1.StatusCodes.BadArgumentsMissing };
|
|
217
|
-
}
|
|
218
|
-
const inputArgumentResults = methodInputArguments.map((methodInputArgument, index) => {
|
|
219
|
-
const argument = inputArguments[index];
|
|
220
|
-
if (!argument) {
|
|
221
|
-
return node_opcua_status_code_1.StatusCodes.BadNoData;
|
|
222
|
-
}
|
|
223
|
-
else if (!isArgumentValid(addressSpace, methodInputArgument, argument)) {
|
|
224
|
-
return node_opcua_status_code_1.StatusCodes.BadTypeMismatch;
|
|
225
|
-
}
|
|
226
|
-
else {
|
|
227
|
-
return node_opcua_status_code_1.StatusCodes.Good;
|
|
228
|
-
}
|
|
229
|
-
});
|
|
230
|
-
if (methodInputArguments.length > inputArguments.length) {
|
|
231
|
-
// istanbul ignore next
|
|
232
|
-
if (doDebug) {
|
|
233
|
-
debugLog("verifyArguments_ArgumentList " +
|
|
234
|
-
"\n The client did specify too many input arguments for the method. " +
|
|
235
|
-
"\n expected : " +
|
|
236
|
-
methodInputArguments.length +
|
|
237
|
-
"" +
|
|
238
|
-
"\n actual : " +
|
|
239
|
-
inputArguments.length);
|
|
240
|
-
}
|
|
241
|
-
return { inputArgumentResults, statusCode: node_opcua_status_code_1.StatusCodes.BadArgumentsMissing };
|
|
242
|
-
}
|
|
243
|
-
if (methodInputArguments.length < inputArguments.length) {
|
|
244
|
-
// istanbul ignore next
|
|
245
|
-
if (doDebug) {
|
|
246
|
-
debugLog(" verifyArguments_ArgumentList " +
|
|
247
|
-
"\n The client did not specify all of the input arguments for the method. " +
|
|
248
|
-
"\n expected : " +
|
|
249
|
-
methodInputArguments.length +
|
|
250
|
-
"" +
|
|
251
|
-
"\n actual : " +
|
|
252
|
-
inputArguments.length);
|
|
253
|
-
}
|
|
254
|
-
return { inputArgumentResults, statusCode: node_opcua_status_code_1.StatusCodes.BadTooManyArguments };
|
|
255
|
-
}
|
|
256
|
-
return {
|
|
257
|
-
inputArgumentResults,
|
|
258
|
-
statusCode: inputArgumentResults.includes(node_opcua_status_code_1.StatusCodes.BadTypeMismatch) || inputArgumentResults.includes(node_opcua_status_code_1.StatusCodes.BadOutOfRange)
|
|
259
|
-
? node_opcua_status_code_1.StatusCodes.BadInvalidArgument
|
|
260
|
-
: node_opcua_status_code_1.StatusCodes.Good
|
|
261
|
-
};
|
|
262
|
-
}
|
|
263
|
-
exports.verifyArguments_ArgumentList = verifyArguments_ArgumentList;
|
|
264
|
-
function build_retrieveInputArgumentsDefinition(addressSpace) {
|
|
265
|
-
const the_address_space = addressSpace;
|
|
266
|
-
return (objectId, methodId) => {
|
|
267
|
-
const response = getMethodDeclaration_ArgumentList(the_address_space, objectId, methodId);
|
|
268
|
-
/* istanbul ignore next */
|
|
269
|
-
if (response.statusCode !== node_opcua_status_code_1.StatusCodes.Good) {
|
|
270
|
-
debugLog(" StatusCode = " + response.statusCode.toString());
|
|
271
|
-
throw new Error("Invalid Method " +
|
|
272
|
-
response.statusCode.toString() +
|
|
273
|
-
" ObjectId= " +
|
|
274
|
-
objectId.toString() +
|
|
275
|
-
"Method Id =" +
|
|
276
|
-
methodId.toString());
|
|
277
|
-
}
|
|
278
|
-
const methodDeclaration = response.methodDeclaration;
|
|
279
|
-
// verify input Parameters
|
|
280
|
-
const methodInputArguments = methodDeclaration.getInputArguments();
|
|
281
|
-
(0, node_opcua_assert_1.assert)(Array.isArray(methodInputArguments));
|
|
282
|
-
return methodInputArguments;
|
|
283
|
-
};
|
|
284
|
-
}
|
|
285
|
-
exports.build_retrieveInputArgumentsDefinition = build_retrieveInputArgumentsDefinition;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.build_retrieveInputArgumentsDefinition = exports.verifyArguments_ArgumentList = exports.isArgumentValid = exports.getMethodDeclaration_ArgumentList = exports.binaryStoreSize_ArgumentList = exports.decode_ArgumentList = exports.encode_ArgumentList = void 0;
|
|
4
|
+
/* eslint-disable complexity */
|
|
5
|
+
/**
|
|
6
|
+
* @module node-opcua-address-space
|
|
7
|
+
*/
|
|
8
|
+
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
9
|
+
const ec = require("node-opcua-basic-types");
|
|
10
|
+
const node_opcua_binary_stream_1 = require("node-opcua-binary-stream");
|
|
11
|
+
const node_opcua_debug_1 = require("node-opcua-debug");
|
|
12
|
+
const factories = require("node-opcua-factory");
|
|
13
|
+
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
14
|
+
const node_opcua_status_code_1 = require("node-opcua-status-code");
|
|
15
|
+
const node_opcua_variant_1 = require("node-opcua-variant");
|
|
16
|
+
const node_opcua_variant_2 = require("node-opcua-variant");
|
|
17
|
+
const node_opcua_constants_1 = require("node-opcua-constants");
|
|
18
|
+
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
19
|
+
const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
|
|
20
|
+
const warningLog = (0, node_opcua_debug_1.make_warningLog)(__filename);
|
|
21
|
+
const doDebug = (0, node_opcua_debug_1.checkDebugFlag)(__filename);
|
|
22
|
+
function myfindBuiltInType(dataType) {
|
|
23
|
+
return factories.findBuiltInType(node_opcua_variant_1.DataType[dataType]);
|
|
24
|
+
}
|
|
25
|
+
function encode_ArgumentList(definition, args, stream) {
|
|
26
|
+
(0, node_opcua_assert_1.assert)(definition.length === args.length);
|
|
27
|
+
(0, node_opcua_assert_1.assert)(Array.isArray(definition));
|
|
28
|
+
(0, node_opcua_assert_1.assert)(Array.isArray(args));
|
|
29
|
+
(0, node_opcua_assert_1.assert)(definition.length === args.length);
|
|
30
|
+
(0, node_opcua_assert_1.assert)(definition.length >= 0);
|
|
31
|
+
// we only encode arguments by following the definition
|
|
32
|
+
for (let i = 0; i < definition.length; i++) {
|
|
33
|
+
const def = definition[i];
|
|
34
|
+
const value = args[i];
|
|
35
|
+
const encodeFunc = myfindBuiltInType(def.dataType).encode;
|
|
36
|
+
// assert((def.valueRank === -1) || (def.valueRank === 0));
|
|
37
|
+
// todo : handle -3 -2
|
|
38
|
+
const isArray = def.valueRank && (def.valueRank === 1 || def.valueRank !== -1);
|
|
39
|
+
if (isArray) {
|
|
40
|
+
ec.encodeArray(value, stream, encodeFunc);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
encodeFunc(value, stream);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.encode_ArgumentList = encode_ArgumentList;
|
|
48
|
+
function decode_ArgumentList(definition, stream) {
|
|
49
|
+
if (!Array.isArray(definition)) {
|
|
50
|
+
throw new Error("This BaseDataType cannot be decoded because it has no definition.\n" +
|
|
51
|
+
"Please construct a BaseDataType({definition : [{dataType: DataType.UInt32 }]});");
|
|
52
|
+
}
|
|
53
|
+
const args = [];
|
|
54
|
+
let value;
|
|
55
|
+
for (const def of definition) {
|
|
56
|
+
const decodeFunc = myfindBuiltInType(def.dataType).decode;
|
|
57
|
+
// xx assert(def.valueRank === -1 || def.valueRank==0);
|
|
58
|
+
const isArray = def.valueRank === 1 || def.valueRank === -1;
|
|
59
|
+
if (isArray) {
|
|
60
|
+
value = ec.decodeArray(stream, decodeFunc);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
value = decodeFunc(stream);
|
|
64
|
+
}
|
|
65
|
+
args.push(value);
|
|
66
|
+
}
|
|
67
|
+
return args;
|
|
68
|
+
}
|
|
69
|
+
exports.decode_ArgumentList = decode_ArgumentList;
|
|
70
|
+
function binaryStoreSize_ArgumentList(description, args) {
|
|
71
|
+
(0, node_opcua_assert_1.assert)(Array.isArray(description));
|
|
72
|
+
(0, node_opcua_assert_1.assert)(Array.isArray(args));
|
|
73
|
+
(0, node_opcua_assert_1.assert)(args.length === description.length);
|
|
74
|
+
const stream = new node_opcua_binary_stream_1.BinaryStreamSizeCalculator();
|
|
75
|
+
encode_ArgumentList(description, args, stream);
|
|
76
|
+
return stream.length;
|
|
77
|
+
}
|
|
78
|
+
exports.binaryStoreSize_ArgumentList = binaryStoreSize_ArgumentList;
|
|
79
|
+
function getMethodDeclaration_ArgumentList(addressSpace, objectId, methodId) {
|
|
80
|
+
// find object in address space
|
|
81
|
+
const obj = addressSpace.findNode(objectId);
|
|
82
|
+
if (!obj) {
|
|
83
|
+
// istanbul ignore next
|
|
84
|
+
if (doDebug) {
|
|
85
|
+
debugLog("cannot find node ", objectId.toString());
|
|
86
|
+
}
|
|
87
|
+
return { statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdUnknown };
|
|
88
|
+
}
|
|
89
|
+
let objectMethod = obj.getMethodById(methodId);
|
|
90
|
+
if (!objectMethod) {
|
|
91
|
+
// the method doesn't belong to the object, nevertheless
|
|
92
|
+
// the method can be called
|
|
93
|
+
objectMethod = addressSpace.findNode(methodId);
|
|
94
|
+
if (!objectMethod || objectMethod.nodeClass !== node_opcua_data_model_1.NodeClass.Method) {
|
|
95
|
+
warningLog("cannot find method with id", methodId.toString(), "object Id = ", objectId.toString());
|
|
96
|
+
return { statusCode: node_opcua_status_code_1.StatusCodes.BadMethodInvalid };
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const methodDeclarationId = objectMethod.methodDeclarationId;
|
|
100
|
+
const methodDeclaration = addressSpace.findNode(methodDeclarationId);
|
|
101
|
+
if (!methodDeclaration) {
|
|
102
|
+
// return {statusCode: StatusCodes.BadMethodInvalid};
|
|
103
|
+
return { statusCode: node_opcua_status_code_1.StatusCodes.Good, methodDeclaration: objectMethod };
|
|
104
|
+
}
|
|
105
|
+
// istanbul ignore next
|
|
106
|
+
if (methodDeclaration.nodeClass !== node_opcua_data_model_1.NodeClass.Method) {
|
|
107
|
+
throw new Error("Expecting a Method here");
|
|
108
|
+
}
|
|
109
|
+
return { statusCode: node_opcua_status_code_1.StatusCodes.Good, methodDeclaration };
|
|
110
|
+
}
|
|
111
|
+
exports.getMethodDeclaration_ArgumentList = getMethodDeclaration_ArgumentList;
|
|
112
|
+
function checkValueRank(argDefinition, arg) {
|
|
113
|
+
const isArray = arg.arrayType === node_opcua_variant_2.VariantArrayType.Array;
|
|
114
|
+
const isMatrix = arg.arrayType === node_opcua_variant_2.VariantArrayType.Matrix;
|
|
115
|
+
if (argDefinition.valueRank > 0) {
|
|
116
|
+
if (argDefinition.valueRank === 1) {
|
|
117
|
+
if (!isArray) {
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
if (!isMatrix) {
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else if (argDefinition.valueRank === -1) {
|
|
128
|
+
// SCALAR
|
|
129
|
+
if (isArray || isMatrix) {
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
else if (argDefinition.valueRank === -2) {
|
|
134
|
+
// ANY
|
|
135
|
+
}
|
|
136
|
+
else if (argDefinition.valueRank === -3) {
|
|
137
|
+
// Scalar or OneDim
|
|
138
|
+
if (isMatrix) {
|
|
139
|
+
return false;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
else if (argDefinition.valueRank === 0) {
|
|
143
|
+
// array or matrix
|
|
144
|
+
if (!isArray && !isMatrix) {
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return true;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* @private
|
|
152
|
+
*/
|
|
153
|
+
function isArgumentValid(addressSpace, argDefinition, arg) {
|
|
154
|
+
(0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(argDefinition, "dataType"));
|
|
155
|
+
(0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(argDefinition, "valueRank"));
|
|
156
|
+
const argDefDataType = addressSpace.findDataType(argDefinition.dataType);
|
|
157
|
+
const argDataType = addressSpace.findDataType((0, node_opcua_nodeid_1.resolveNodeId)(arg.dataType));
|
|
158
|
+
// istanbul ignore next
|
|
159
|
+
if (!argDefDataType) {
|
|
160
|
+
debugLog("dataType ", argDefinition.dataType.toString(), "doesn't exist");
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
if (argDefinition.valueRank >= 0 && arg.dataType === node_opcua_variant_1.DataType.Null) {
|
|
164
|
+
// this is valid to receive an empty array ith DataType.Null;
|
|
165
|
+
return true;
|
|
166
|
+
}
|
|
167
|
+
if (!checkValueRank(argDefinition, arg)) {
|
|
168
|
+
return false;
|
|
169
|
+
}
|
|
170
|
+
// istanbul ignore next
|
|
171
|
+
if (!argDataType) {
|
|
172
|
+
debugLog(" cannot find dataType ", arg.dataType, (0, node_opcua_nodeid_1.resolveNodeId)(arg.dataType));
|
|
173
|
+
debugLog(" arg = ", arg.toString());
|
|
174
|
+
debugLog(" def =", argDefinition.toString());
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
// istanbul ignore next
|
|
178
|
+
if (doDebug) {
|
|
179
|
+
debugLog(" checking argDefDataType ", argDefDataType.toString());
|
|
180
|
+
debugLog(" checking argDataType ", argDataType.toString());
|
|
181
|
+
}
|
|
182
|
+
if (argDataType.nodeId.value === argDefDataType.nodeId.value) {
|
|
183
|
+
return true;
|
|
184
|
+
}
|
|
185
|
+
// check that dataType is of the same type (derived )
|
|
186
|
+
if (argDefDataType.isSupertypeOf(argDataType)) {
|
|
187
|
+
// like argDefDataType IntegerId and argDataType Uint32
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
if (argDataType.isSupertypeOf(argDefDataType)) {
|
|
191
|
+
// like argDefDataType BaseDataType and argDataType any Type
|
|
192
|
+
return true;
|
|
193
|
+
}
|
|
194
|
+
// special case for Enumeration
|
|
195
|
+
if (arg.dataType === node_opcua_variant_1.DataType.Int32) {
|
|
196
|
+
const enumDataType = addressSpace.findDataType((0, node_opcua_nodeid_1.coerceNodeId)(node_opcua_constants_1.DataTypeIds.Enumeration));
|
|
197
|
+
if (argDefDataType.isSupertypeOf(enumDataType)) {
|
|
198
|
+
return true;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
exports.isArgumentValid = isArgumentValid;
|
|
204
|
+
/**
|
|
205
|
+
* @method verifyArguments_ArgumentList
|
|
206
|
+
* @param addressSpace
|
|
207
|
+
* @param methodInputArguments
|
|
208
|
+
* @param inputArguments
|
|
209
|
+
* @return statusCode,inputArgumentResults
|
|
210
|
+
*/
|
|
211
|
+
function verifyArguments_ArgumentList(addressSpace, methodInputArguments, inputArguments) {
|
|
212
|
+
if (!inputArguments) {
|
|
213
|
+
// it is possible to not provide inputArguments when method has no arguments
|
|
214
|
+
return methodInputArguments.length === 0
|
|
215
|
+
? { statusCode: node_opcua_status_code_1.StatusCodes.Good }
|
|
216
|
+
: { statusCode: node_opcua_status_code_1.StatusCodes.BadArgumentsMissing };
|
|
217
|
+
}
|
|
218
|
+
const inputArgumentResults = methodInputArguments.map((methodInputArgument, index) => {
|
|
219
|
+
const argument = inputArguments[index];
|
|
220
|
+
if (!argument) {
|
|
221
|
+
return node_opcua_status_code_1.StatusCodes.BadNoData;
|
|
222
|
+
}
|
|
223
|
+
else if (!isArgumentValid(addressSpace, methodInputArgument, argument)) {
|
|
224
|
+
return node_opcua_status_code_1.StatusCodes.BadTypeMismatch;
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
return node_opcua_status_code_1.StatusCodes.Good;
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
if (methodInputArguments.length > inputArguments.length) {
|
|
231
|
+
// istanbul ignore next
|
|
232
|
+
if (doDebug) {
|
|
233
|
+
debugLog("verifyArguments_ArgumentList " +
|
|
234
|
+
"\n The client did specify too many input arguments for the method. " +
|
|
235
|
+
"\n expected : " +
|
|
236
|
+
methodInputArguments.length +
|
|
237
|
+
"" +
|
|
238
|
+
"\n actual : " +
|
|
239
|
+
inputArguments.length);
|
|
240
|
+
}
|
|
241
|
+
return { inputArgumentResults, statusCode: node_opcua_status_code_1.StatusCodes.BadArgumentsMissing };
|
|
242
|
+
}
|
|
243
|
+
if (methodInputArguments.length < inputArguments.length) {
|
|
244
|
+
// istanbul ignore next
|
|
245
|
+
if (doDebug) {
|
|
246
|
+
debugLog(" verifyArguments_ArgumentList " +
|
|
247
|
+
"\n The client did not specify all of the input arguments for the method. " +
|
|
248
|
+
"\n expected : " +
|
|
249
|
+
methodInputArguments.length +
|
|
250
|
+
"" +
|
|
251
|
+
"\n actual : " +
|
|
252
|
+
inputArguments.length);
|
|
253
|
+
}
|
|
254
|
+
return { inputArgumentResults, statusCode: node_opcua_status_code_1.StatusCodes.BadTooManyArguments };
|
|
255
|
+
}
|
|
256
|
+
return {
|
|
257
|
+
inputArgumentResults,
|
|
258
|
+
statusCode: inputArgumentResults.includes(node_opcua_status_code_1.StatusCodes.BadTypeMismatch) || inputArgumentResults.includes(node_opcua_status_code_1.StatusCodes.BadOutOfRange)
|
|
259
|
+
? node_opcua_status_code_1.StatusCodes.BadInvalidArgument
|
|
260
|
+
: node_opcua_status_code_1.StatusCodes.Good
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
exports.verifyArguments_ArgumentList = verifyArguments_ArgumentList;
|
|
264
|
+
function build_retrieveInputArgumentsDefinition(addressSpace) {
|
|
265
|
+
const the_address_space = addressSpace;
|
|
266
|
+
return (objectId, methodId) => {
|
|
267
|
+
const response = getMethodDeclaration_ArgumentList(the_address_space, objectId, methodId);
|
|
268
|
+
/* istanbul ignore next */
|
|
269
|
+
if (response.statusCode !== node_opcua_status_code_1.StatusCodes.Good) {
|
|
270
|
+
debugLog(" StatusCode = " + response.statusCode.toString());
|
|
271
|
+
throw new Error("Invalid Method " +
|
|
272
|
+
response.statusCode.toString() +
|
|
273
|
+
" ObjectId= " +
|
|
274
|
+
objectId.toString() +
|
|
275
|
+
"Method Id =" +
|
|
276
|
+
methodId.toString());
|
|
277
|
+
}
|
|
278
|
+
const methodDeclaration = response.methodDeclaration;
|
|
279
|
+
// verify input Parameters
|
|
280
|
+
const methodInputArguments = methodDeclaration.getInputArguments();
|
|
281
|
+
(0, node_opcua_assert_1.assert)(Array.isArray(methodInputArguments));
|
|
282
|
+
return methodInputArguments;
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
exports.build_retrieveInputArgumentsDefinition = build_retrieveInputArgumentsDefinition;
|
|
286
286
|
//# sourceMappingURL=argument_list.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { CallMethodRequest } from "node-opcua-service-call";
|
|
2
|
-
import { CallMethodResultOptions } from "node-opcua-types";
|
|
3
|
-
import { ISessionContext, IAddressSpace } from "node-opcua-address-space-base";
|
|
4
|
-
declare type ResponseCallback<T> = (err: Error | null, result?: T) => void;
|
|
5
|
-
export declare function callMethodHelper(context: ISessionContext, addressSpace: IAddressSpace, callMethodRequest: CallMethodRequest, callback: ResponseCallback<CallMethodResultOptions>): void;
|
|
6
|
-
export {};
|
|
1
|
+
import { CallMethodRequest } from "node-opcua-service-call";
|
|
2
|
+
import { CallMethodResultOptions } from "node-opcua-types";
|
|
3
|
+
import { ISessionContext, IAddressSpace } from "node-opcua-address-space-base";
|
|
4
|
+
declare type ResponseCallback<T> = (err: Error | null, result?: T) => void;
|
|
5
|
+
export declare function callMethodHelper(context: ISessionContext, addressSpace: IAddressSpace, callMethodRequest: CallMethodRequest, callback: ResponseCallback<CallMethodResultOptions>): void;
|
|
6
|
+
export {};
|