node-opcua-address-space 2.170.1 → 2.172.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/source/address_space_ts.d.ts +13 -13
- package/dist/source/address_space_ts.js +4 -0
- package/dist/source/address_space_ts.js.map +1 -1
- package/dist/source/continuation_points/continuation_point_manager.d.ts +6 -3
- package/dist/source/continuation_points/continuation_point_manager.js +4 -4
- package/dist/source/continuation_points/continuation_point_manager.js.map +1 -1
- package/dist/source/helpers/adjust_browse_direction.d.ts +1 -1
- package/dist/source/helpers/argument_list.d.ts +13 -11
- package/dist/source/helpers/argument_list.js +24 -15
- package/dist/source/helpers/argument_list.js.map +1 -1
- package/dist/source/helpers/call_helpers.d.ts +6 -3
- package/dist/source/helpers/call_helpers.js +5 -6
- package/dist/source/helpers/call_helpers.js.map +1 -1
- package/dist/source/helpers/coerce_enum_value.d.ts +2 -2
- package/dist/source/helpers/coerce_enum_value.js +2 -2
- package/dist/source/helpers/coerce_enum_value.js.map +1 -1
- package/dist/source/helpers/dump_tools.d.ts +3 -3
- package/dist/source/helpers/dump_tools.js +2 -2
- package/dist/source/helpers/dump_tools.js.map +1 -1
- package/dist/source/helpers/ensure_secure_access.d.ts +1 -1
- package/dist/source/helpers/ensure_secure_access.js +1 -1
- package/dist/source/helpers/ensure_secure_access.js.map +1 -1
- package/dist/source/helpers/make_optionals_map.js +0 -5
- package/dist/source/helpers/make_optionals_map.js.map +1 -1
- package/dist/source/helpers/multiform_func.d.ts +1 -1
- package/dist/source/helpers/resolve_opaque_on_address_space.d.ts +1 -1
- package/dist/source/helpers/resolve_opaque_on_address_space.js +1 -1
- package/dist/source/helpers/resolve_opaque_on_address_space.js.map +1 -1
- package/dist/source/index.d.ts +38 -38
- package/dist/source/index.js +53 -54
- package/dist/source/index.js.map +1 -1
- package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +3 -3
- package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.d.ts +11 -11
- package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.d.ts +6 -6
- package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.d.ts +3 -3
- package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +4 -4
- package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +4 -3
- package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +3 -3
- package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +10 -13
- package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +11 -11
- package/dist/source/interfaces/alarms_and_conditions/ua_base_event_ex.d.ts +11 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_base_event_ex.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_base_event_ex.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +5 -5
- package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +21 -29
- package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +3 -7
- package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js +0 -23
- package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js.map +1 -1
- package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +3 -3
- package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +8 -10
- package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +4 -6
- package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +5 -5
- package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +3 -3
- package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +7 -7
- package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +5 -8
- package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +5 -5
- package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +3 -3
- package/dist/source/interfaces/extension_object_constructor.d.ts +3 -3
- package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +3 -3
- package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +2 -2
- package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +3 -3
- package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +6 -6
- package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +7 -6
- package/dist/source/interfaces/state_machine/ua_state_machine_type.js +4 -0
- package/dist/source/interfaces/state_machine/ua_state_machine_type.js.map +1 -1
- package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +2 -2
- package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +2 -2
- package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +3 -0
- package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js.map +1 -1
- package/dist/source/loader/decode_xml_extension_object.d.ts +4 -4
- package/dist/source/loader/decode_xml_extension_object.js +3 -3
- package/dist/source/loader/decode_xml_extension_object.js.map +1 -1
- package/dist/source/loader/ensure_datatype_extracted.d.ts +2 -2
- package/dist/source/loader/ensure_datatype_extracted.js +5 -5
- package/dist/source/loader/ensure_datatype_extracted.js.map +1 -1
- package/dist/source/loader/generateAddressSpaceRaw.d.ts +3 -3
- package/dist/source/loader/generateAddressSpaceRaw.js +6 -6
- package/dist/source/loader/generateAddressSpaceRaw.js.map +1 -1
- package/dist/source/loader/load_nodeset2.js.map +1 -1
- package/dist/source/loader/make_xml_extension_object_parser.d.ts +2 -2
- package/dist/source/loader/make_xml_extension_object_parser.js +19 -19
- package/dist/source/loader/make_xml_extension_object_parser.js.map +1 -1
- package/dist/source/loader/namespace_post_step.d.ts +1 -1
- package/dist/source/loader/namespace_post_step.js.map +1 -1
- package/dist/source/loader/parsers/extension_object_parser.d.ts +4 -4
- package/dist/source/loader/parsers/extension_object_parser.js +22 -23
- package/dist/source/loader/parsers/extension_object_parser.js.map +1 -1
- package/dist/source/loader/parsers/localized_text_parser.d.ts +2 -2
- package/dist/source/loader/parsers/localized_text_parser.js.map +1 -1
- package/dist/source/loader/parsers/nodeid_parser.d.ts +1 -1
- package/dist/source/loader/parsers/nodeid_parser.js.map +1 -1
- package/dist/source/loader/parsers/qualified_name_parser.d.ts +3 -3
- package/dist/source/loader/parsers/qualified_name_parser.js.map +1 -1
- package/dist/source/loader/parsers/variant_parser.d.ts +5 -5
- package/dist/source/loader/parsers/variant_parser.js +13 -13
- package/dist/source/loader/parsers/variant_parser.js.map +1 -1
- package/dist/source/loader/register_node_promoter.d.ts +1 -1
- package/dist/source/loader/register_node_promoter.js.map +1 -1
- package/dist/source/namespace.d.ts +4 -4
- package/dist/source/namespace_alarm_and_condition.d.ts +22 -21
- package/dist/source/namespace_data_access.d.ts +11 -11
- package/dist/source/namespace_machine_state.d.ts +4 -4
- package/dist/source/pseudo_session.d.ts +8 -5
- package/dist/source/pseudo_session.js +28 -28
- package/dist/source/pseudo_session.js.map +1 -1
- package/dist/source/session_context.js +1 -1
- package/dist/source/session_context.js.map +1 -1
- package/dist/source/set_namespace_meta_data.d.ts +1 -1
- package/dist/source/set_namespace_meta_data.js +1 -1
- package/dist/source/set_namespace_meta_data.js.map +1 -1
- package/dist/source/ua_addin.d.ts +3 -3
- package/dist/source/ua_addin.js +1 -1
- package/dist/source/ua_addin.js.map +1 -1
- package/dist/source/ua_interface.js +4 -1
- package/dist/source/ua_interface.js.map +1 -1
- package/dist/source/ua_root_folder.d.ts +1 -1
- package/dist/source/ua_two_state_variable_ex.d.ts +5 -5
- package/dist/src/_instantiate_helpers.js +1 -1
- package/dist/src/_instantiate_helpers.js.map +1 -1
- package/dist/src/_mandatory_child_or_requested_optional_filter.d.ts +2 -2
- package/dist/src/_mandatory_child_or_requested_optional_filter.js +7 -8
- package/dist/src/_mandatory_child_or_requested_optional_filter.js.map +1 -1
- package/dist/src/address_space.js +4 -4
- package/dist/src/address_space.js.map +1 -1
- package/dist/src/address_space_change_event_tools.d.ts +3 -3
- package/dist/src/address_space_change_event_tools.js +8 -10
- package/dist/src/address_space_change_event_tools.js.map +1 -1
- package/dist/src/address_space_private.d.ts +11 -11
- package/dist/src/address_space_private.js +3 -0
- package/dist/src/address_space_private.js.map +1 -1
- package/dist/src/alarms_and_conditions/condition.js.map +1 -1
- package/dist/src/alarms_and_conditions/condition_info_impl.d.ts +6 -6
- package/dist/src/alarms_and_conditions/condition_info_impl.js +6 -15
- package/dist/src/alarms_and_conditions/condition_info_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/condition_snapshot_impl.d.ts +10 -10
- package/dist/src/alarms_and_conditions/condition_snapshot_impl.js +76 -47
- package/dist/src/alarms_and_conditions/condition_snapshot_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +8 -5
- package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +15 -9
- package/dist/src/alarms_and_conditions/deviation_alarm_helper.js.map +1 -1
- package/dist/src/alarms_and_conditions/index.d.ts +3 -3
- package/dist/src/alarms_and_conditions/index.js +3 -3
- package/dist/src/alarms_and_conditions/index.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +21 -14
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +26 -21
- 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 +6 -7
- package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +30 -28
- 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 +9 -11
- package/dist/src/alarms_and_conditions/ua_base_event_impl.js +10 -10
- package/dist/src/alarms_and_conditions/ua_base_event_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +3 -1
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +6 -5
- 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 +16 -42
- package/dist/src/alarms_and_conditions/ua_condition_impl.js +100 -82
- 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 +12 -7
- package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +9 -8
- 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 +18 -18
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +16 -18
- 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 +4 -4
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +2 -2
- 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 +10 -9
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +20 -19
- 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 +2 -4
- package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +12 -38
- package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +50 -65
- 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 +15 -17
- package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +15 -11
- 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 +22 -15
- package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +35 -24
- 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 +15 -16
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +19 -14
- 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 +4 -4
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +1 -1
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js.map +1 -1
- package/dist/src/apply_condition_refresh.d.ts +4 -4
- package/dist/src/apply_condition_refresh.js +1 -1
- package/dist/src/apply_condition_refresh.js.map +1 -1
- package/dist/src/base_node_impl.d.ts +4 -6
- package/dist/src/base_node_impl.js +3 -3
- package/dist/src/base_node_impl.js.map +1 -1
- package/dist/src/base_node_private.js +1 -2
- package/dist/src/base_node_private.js.map +1 -1
- package/dist/src/check_value_rank_compatibility.js +10 -6
- package/dist/src/check_value_rank_compatibility.js.map +1 -1
- package/dist/src/data_access/add_dataItem_stuff.d.ts +1 -1
- package/dist/src/data_access/add_dataItem_stuff.js +2 -22
- package/dist/src/data_access/add_dataItem_stuff.js.map +1 -1
- package/dist/src/data_access/adjust_datavalue_status_code.d.ts +6 -3
- package/dist/src/data_access/adjust_datavalue_status_code.js +3 -3
- package/dist/src/data_access/adjust_datavalue_status_code.js.map +1 -1
- package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +13 -11
- package/dist/src/data_access/ua_multistate_discrete_impl.js +28 -23
- package/dist/src/data_access/ua_multistate_discrete_impl.js.map +1 -1
- package/dist/src/data_access/ua_multistate_value_discrete_impl.d.ts +19 -23
- package/dist/src/data_access/ua_multistate_value_discrete_impl.js +31 -31
- package/dist/src/data_access/ua_multistate_value_discrete_impl.js.map +1 -1
- package/dist/src/data_access/ua_two_state_discrete_impl.d.ts +10 -16
- package/dist/src/data_access/ua_two_state_discrete_impl.js +18 -14
- package/dist/src/data_access/ua_two_state_discrete_impl.js.map +1 -1
- package/dist/src/event_data.js.map +1 -1
- package/dist/src/extension_object_array_node.d.ts +5 -2
- package/dist/src/extension_object_array_node.js +21 -24
- package/dist/src/extension_object_array_node.js.map +1 -1
- package/dist/src/get_basic_datatype.d.ts +2 -2
- package/dist/src/get_basic_datatype.js.map +1 -1
- package/dist/src/historical_access/address_space_historical_data_node.d.ts +3 -3
- package/dist/src/historical_access/address_space_historical_data_node.js +24 -17
- package/dist/src/historical_access/address_space_historical_data_node.js.map +1 -1
- package/dist/src/idx_iterator.js +1 -1
- package/dist/src/idx_iterator.js.map +1 -1
- package/dist/src/index_current.d.ts +31 -31
- package/dist/src/index_current.js +45 -45
- package/dist/src/index_current.js.map +1 -1
- package/dist/src/namespace_impl.d.ts +4 -3
- package/dist/src/namespace_impl.js +17 -14
- package/dist/src/namespace_impl.js.map +1 -1
- package/dist/src/namespace_private.js.map +1 -1
- package/dist/src/nodeid_manager.d.ts +3 -3
- package/dist/src/nodeid_manager.js +19 -16
- package/dist/src/nodeid_manager.js.map +1 -1
- package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +1 -1
- package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +2 -2
- package/dist/src/nodeset_tools/construct_namespace_dependency.js +7 -7
- package/dist/src/nodeset_tools/construct_namespace_dependency.js.map +1 -1
- package/dist/src/nodeset_tools/dump_to_bsd.d.ts +1 -1
- package/dist/src/nodeset_tools/dump_to_bsd.js +15 -11
- package/dist/src/nodeset_tools/dump_to_bsd.js.map +1 -1
- package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +5 -3
- package/dist/src/nodeset_tools/nodeset_to_xml.js +64 -67
- package/dist/src/nodeset_tools/nodeset_to_xml.js.map +1 -1
- package/dist/src/private_namespace.d.ts +2 -2
- package/dist/src/private_namespace.js.map +1 -1
- package/dist/src/reference_impl.d.ts +2 -2
- package/dist/src/reference_impl.js +9 -11
- package/dist/src/reference_impl.js.map +1 -1
- package/dist/src/role_permissions.d.ts +1 -1
- package/dist/src/role_permissions.js.map +1 -1
- package/dist/src/state_machine/finite_state_machine.d.ts +11 -14
- package/dist/src/state_machine/finite_state_machine.js +36 -30
- package/dist/src/state_machine/finite_state_machine.js.map +1 -1
- package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +8 -6
- package/dist/src/state_machine/ua_shelving_state_machine_ex.js +16 -18
- package/dist/src/state_machine/ua_shelving_state_machine_ex.js.map +1 -1
- package/dist/src/state_machine/ua_two_state_variable.d.ts +12 -11
- package/dist/src/state_machine/ua_two_state_variable.js +24 -29
- package/dist/src/state_machine/ua_two_state_variable.js.map +1 -1
- package/dist/src/tool_isSubtypeOf.d.ts +5 -5
- package/dist/src/tool_isSubtypeOf.js +21 -18
- package/dist/src/tool_isSubtypeOf.js.map +1 -1
- package/dist/src/ua_condition_type.d.ts +1 -1
- package/dist/src/ua_data_type_impl.js.map +1 -1
- package/dist/src/ua_method_impl.d.ts +9 -5
- package/dist/src/ua_method_impl.js +1 -1
- package/dist/src/ua_method_impl.js.map +1 -1
- package/dist/src/ua_object_impl.d.ts +7 -5
- package/dist/src/ua_object_impl.js +13 -11
- package/dist/src/ua_object_impl.js.map +1 -1
- package/dist/src/ua_object_type_impl.d.ts +7 -5
- package/dist/src/ua_object_type_impl.js +4 -5
- package/dist/src/ua_object_type_impl.js.map +1 -1
- package/dist/src/ua_reference_type_impl.d.ts +6 -8
- package/dist/src/ua_reference_type_impl.js +16 -14
- package/dist/src/ua_reference_type_impl.js.map +1 -1
- package/dist/src/ua_variable_impl.d.ts +43 -45
- package/dist/src/ua_variable_impl.js +99 -83
- package/dist/src/ua_variable_impl.js.map +1 -1
- package/dist/src/ua_variable_impl_ext_obj.d.ts +3 -3
- package/dist/src/ua_variable_impl_ext_obj.js +37 -29
- package/dist/src/ua_variable_impl_ext_obj.js.map +1 -1
- package/dist/src/ua_variable_type_impl.d.ts +11 -11
- package/dist/src/ua_variable_type_impl.js +13 -21
- package/dist/src/ua_variable_type_impl.js.map +1 -1
- package/dist/src/ua_view_impl.d.ts +3 -4
- package/dist/src/ua_view_impl.js +5 -6
- package/dist/src/ua_view_impl.js.map +1 -1
- package/dist/src/validate_data_type_correctness.d.ts +2 -2
- package/dist/src/validate_data_type_correctness.js +12 -3
- package/dist/src/validate_data_type_correctness.js.map +1 -1
- package/dist/tsconfig_base.tsbuildinfo +1 -1
- package/distHelpers/add_event_generator_object.d.ts +5 -2
- package/distHelpers/add_event_generator_object.js +2 -2
- package/distHelpers/add_event_generator_object.js.map +1 -1
- package/distHelpers/alarms_and_conditions_demo.d.ts +1 -1
- package/distHelpers/alarms_and_conditions_demo.js +4 -6
- package/distHelpers/alarms_and_conditions_demo.js.map +1 -1
- package/distHelpers/assertHasMatchingReference.d.ts +1 -1
- package/distHelpers/assertHasMatchingReference.js +2 -2
- package/distHelpers/assertHasMatchingReference.js.map +1 -1
- package/distHelpers/boiler_system.d.ts +6 -3
- package/distHelpers/boiler_system.js +44 -42
- package/distHelpers/boiler_system.js.map +1 -1
- package/distHelpers/create_minimalist_address_space_nodeset.d.ts +1 -1
- package/distHelpers/create_minimalist_address_space_nodeset.js +25 -27
- package/distHelpers/create_minimalist_address_space_nodeset.js.map +1 -1
- package/distHelpers/get_address_space_fixture.js +1 -1
- package/distHelpers/get_address_space_fixture.js.map +1 -1
- package/distHelpers/mock_session.d.ts +7 -7
- package/distHelpers/mock_session.js +4 -4
- package/distHelpers/mock_session.js.map +1 -1
- package/distNodeJS/generate_address_space.d.ts +2 -2
- package/distNodeJS/generate_address_space.js +2 -2
- package/distNodeJS/generate_address_space.js.map +1 -1
- package/package.json +36 -36
- package/source/address_space_ts.ts +29 -30
- package/source/continuation_points/continuation_point_manager.ts +8 -7
- package/source/helpers/adjust_browse_direction.ts +1 -1
- package/source/helpers/argument_list.ts +37 -25
- package/source/helpers/call_helpers.ts +10 -15
- package/source/helpers/coerce_enum_value.ts +4 -4
- package/source/helpers/dump_tools.ts +6 -11
- package/source/helpers/ensure_secure_access.ts +2 -2
- package/source/helpers/make_optionals_map.ts +3 -10
- package/source/helpers/multiform_func.ts +1 -1
- package/source/helpers/resolve_opaque_on_address_space.ts +2 -2
- package/source/index.ts +44 -54
- package/source/interfaces/alarms_and_conditions/condition_info_i.ts +3 -4
- package/source/interfaces/alarms_and_conditions/condition_snapshot.ts +13 -13
- package/source/interfaces/alarms_and_conditions/deviation_stuff.ts +8 -10
- package/source/interfaces/alarms_and_conditions/install_setpoint_options.ts +4 -5
- package/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.ts +4 -6
- package/source/interfaces/alarms_and_conditions/instantiate_condition_options.ts +3 -3
- package/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.ts +2 -2
- package/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.ts +2 -2
- package/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.ts +6 -3
- package/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.ts +2 -2
- package/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.ts +2 -2
- package/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.ts +11 -11
- package/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.ts +11 -25
- package/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.ts +16 -13
- package/source/interfaces/alarms_and_conditions/ua_base_event_ex.ts +12 -0
- package/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.ts +5 -5
- package/source/interfaces/alarms_and_conditions/ua_condition_ex.ts +30 -54
- package/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.ts +3 -34
- package/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.ts +18 -22
- package/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.ts +8 -15
- package/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.ts +4 -7
- package/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.ts +5 -6
- package/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.ts +3 -3
- package/source/interfaces/data_access/ua_multistate_discrete_ex.ts +9 -16
- package/source/interfaces/data_access/ua_multistate_value_discrete_ex.ts +5 -8
- package/source/interfaces/data_access/ua_two_state_discrete_ex.ts +5 -5
- package/source/interfaces/data_access/ua_y_array_item_ex.ts +3 -3
- package/source/interfaces/extension_object_constructor.ts +3 -4
- package/source/interfaces/i_condition_variable_type_setter_options.ts +1 -3
- package/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.ts +3 -3
- package/source/interfaces/state_machine/ua_finite_state_machine_type.ts +2 -2
- package/source/interfaces/state_machine/ua_program_state_machine_type.ts +3 -3
- package/source/interfaces/state_machine/ua_shelved_state_machine_ex.ts +10 -7
- package/source/interfaces/state_machine/ua_state_machine_type.ts +11 -8
- package/source/interfaces/state_machine/ua_transition_ex.ts +2 -2
- package/source/interfaces/ua_subscription_diagnostics_variable_ex.ts +3 -2
- package/source/loader/decode_xml_extension_object.ts +7 -7
- package/source/loader/ensure_datatype_extracted.ts +14 -19
- package/source/loader/generateAddressSpaceRaw.ts +12 -13
- package/source/loader/load_nodeset2.ts +3 -3
- package/source/loader/make_xml_extension_object_parser.ts +55 -39
- package/source/loader/namespace_post_step.ts +3 -4
- package/source/loader/parsers/extension_object_parser.ts +63 -62
- package/source/loader/parsers/localized_text_parser.ts +3 -3
- package/source/loader/parsers/nodeid_parser.ts +2 -3
- package/source/loader/parsers/qualified_name_parser.ts +6 -7
- package/source/loader/parsers/variant_parser.ts +48 -55
- package/source/loader/register_node_promoter.ts +2 -2
- package/source/namespace.ts +4 -4
- package/source/namespace_alarm_and_condition.ts +22 -22
- package/source/namespace_data_access.ts +12 -13
- package/source/namespace_machine_state.ts +10 -5
- package/source/pseudo_session.ts +53 -50
- package/source/session_context.ts +1 -1
- package/source/set_namespace_meta_data.ts +3 -3
- package/source/ua_addin.ts +10 -11
- package/source/ua_interface.ts +10 -7
- package/source/ua_root_folder.ts +1 -1
- package/source/ua_two_state_variable_ex.ts +5 -5
- package/source_nodejs/generate_address_space.ts +5 -9
- package/src/_instantiate_helpers.ts +26 -16
- package/src/_mandatory_child_or_requested_optional_filter.ts +16 -15
- package/src/address_space.ts +23 -31
- package/src/address_space_change_event_tools.ts +25 -30
- package/src/address_space_private.ts +20 -21
- package/src/alarms_and_conditions/condition.ts +0 -2
- package/src/alarms_and_conditions/condition_info_impl.ts +11 -19
- package/src/alarms_and_conditions/condition_snapshot_impl.ts +106 -82
- package/src/alarms_and_conditions/deviation_alarm_helper.ts +20 -15
- package/src/alarms_and_conditions/index.ts +3 -3
- package/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.ts +44 -32
- package/src/alarms_and_conditions/ua_alarm_condition_impl.ts +35 -34
- package/src/alarms_and_conditions/ua_base_event_impl.ts +15 -19
- package/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.ts +6 -2
- package/src/alarms_and_conditions/ua_condition_impl.ts +140 -130
- package/src/alarms_and_conditions/ua_discrete_alarm_impl.ts +20 -12
- package/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.ts +40 -43
- package/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.ts +7 -7
- package/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.ts +28 -30
- package/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.ts +3 -6
- package/src/alarms_and_conditions/ua_limit_alarm_impl.ts +59 -90
- package/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.ts +31 -27
- package/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.ts +57 -36
- package/src/alarms_and_conditions/ua_off_normal_alarm_impl.ts +31 -27
- package/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.ts +6 -6
- package/src/apply_condition_refresh.ts +7 -8
- package/src/base_node_impl.ts +63 -44
- package/src/base_node_private.ts +12 -4
- package/src/check_value_rank_compatibility.ts +18 -14
- package/src/data_access/add_dataItem_stuff.ts +3 -4
- package/src/data_access/adjust_datavalue_status_code.ts +7 -7
- package/src/data_access/ua_multistate_discrete_impl.ts +44 -28
- package/src/data_access/ua_multistate_value_discrete_impl.ts +77 -66
- package/src/data_access/ua_two_state_discrete_impl.ts +29 -36
- package/src/event_data.ts +53 -53
- package/src/extension_object_array_node.ts +27 -28
- package/src/get_basic_datatype.ts +4 -5
- package/src/historical_access/address_space_historical_data_node.ts +65 -50
- package/src/idx_iterator.ts +4 -12
- package/src/index_current.ts +33 -45
- package/src/namespace_impl.ts +75 -62
- package/src/namespace_private.ts +2 -8
- package/src/nodeid_manager.ts +30 -27
- package/src/nodeset_tools/adjust_namespace_array.ts +1 -1
- package/src/nodeset_tools/construct_namespace_dependency.ts +15 -16
- package/src/nodeset_tools/dump_to_bsd.ts +27 -22
- package/src/nodeset_tools/nodeset_to_xml.ts +95 -114
- package/src/private_namespace.ts +3 -6
- package/src/reference_impl.ts +11 -14
- package/src/role_permissions.ts +1 -1
- package/src/state_machine/finite_state_machine.ts +60 -61
- package/src/state_machine/ua_shelving_state_machine_ex.ts +23 -23
- package/src/state_machine/ua_two_state_variable.ts +34 -31
- package/src/tool_isSubtypeOf.ts +48 -33
- package/src/ua_condition_type.ts +1 -1
- package/src/ua_data_type_impl.ts +12 -13
- package/src/ua_method_impl.ts +17 -12
- package/src/ua_object_impl.ts +38 -33
- package/src/ua_object_type_impl.ts +22 -22
- package/src/ua_reference_type_impl.ts +19 -19
- package/src/ua_variable_impl.ts +240 -220
- package/src/ua_variable_impl_ext_obj.ts +63 -50
- package/src/ua_variable_type_impl.ts +43 -49
- package/src/ua_view_impl.ts +5 -5
- package/src/validate_data_type_correctness.ts +17 -8
|
@@ -1,29 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import type {
|
|
2
|
+
BindVariableOptions,
|
|
3
|
+
CloneExtraInfo,
|
|
4
|
+
CloneFilter,
|
|
5
|
+
CloneOptions,
|
|
6
|
+
INamespace,
|
|
7
|
+
UAVariable
|
|
8
|
+
} from "node-opcua-address-space-base";
|
|
4
9
|
import { assert } from "node-opcua-assert";
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
import {
|
|
11
|
+
coerceInt32,
|
|
12
|
+
coerceInt64toInt32,
|
|
13
|
+
coerceUInt64,
|
|
14
|
+
coerceUInt64toInt32,
|
|
15
|
+
type Int32,
|
|
16
|
+
type Int64,
|
|
17
|
+
isValidInt64,
|
|
18
|
+
isValidUInt64,
|
|
19
|
+
type UInt64
|
|
20
|
+
} from "node-opcua-basic-types";
|
|
14
21
|
import { VariableTypeIds } from "node-opcua-constants";
|
|
15
|
-
import {
|
|
16
|
-
|
|
17
|
-
import {
|
|
22
|
+
import { coerceLocalizedText } from "node-opcua-data-model";
|
|
23
|
+
import type { DataValue } from "node-opcua-data-value";
|
|
24
|
+
import type { DTEnumValue } from "node-opcua-nodeset-ua";
|
|
25
|
+
import { type StatusCode, StatusCodes } from "node-opcua-status-code";
|
|
26
|
+
import { DataType, Variant, VariantArrayType } from "node-opcua-variant";
|
|
27
|
+
import type { AddMultiStateValueDiscreteOptions } from "../../source/address_space_ts";
|
|
18
28
|
import { coerceEnumValues } from "../../source/helpers/coerce_enum_value";
|
|
19
|
-
import { UAMultiStateValueDiscreteEx } from "../../source/interfaces/data_access/ua_multistate_value_discrete_ex";
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
29
|
+
import type { UAMultiStateValueDiscreteEx } from "../../source/interfaces/data_access/ua_multistate_value_discrete_ex";
|
|
30
|
+
import type { ISetStateOptions } from "../../source/interfaces/i_set_state_options";
|
|
31
|
+
import { registerNodePromoter } from "../../source/loader/register_node_promoter";
|
|
32
|
+
import { _getBasicDataTypeFromDataTypeNodeId } from "../get_basic_datatype";
|
|
22
33
|
import { UAVariableImpl } from "../ua_variable_impl";
|
|
23
|
-
|
|
24
34
|
import { add_dataItem_stuff } from "./add_dataItem_stuff";
|
|
25
35
|
|
|
26
|
-
function convertToArray<T>(array:
|
|
36
|
+
function convertToArray<T>(array: ArrayLike<T> | T[]): T[] {
|
|
27
37
|
if (Array.isArray(array)) return array;
|
|
28
38
|
const result: T[] = [];
|
|
29
39
|
for (let i = 0; i < array.length; i++) {
|
|
@@ -42,18 +52,19 @@ const getCoerceToInt32 = (dataType: DataType) => {
|
|
|
42
52
|
}
|
|
43
53
|
};
|
|
44
54
|
|
|
45
|
-
|
|
46
|
-
|
|
55
|
+
type Number = number | Int64 | UInt64;
|
|
56
|
+
|
|
57
|
+
function install_synchronization<T extends Number, DT extends DataType>(
|
|
58
|
+
_variable: UAVariableImpl & UAMultiStateValueDiscreteEx<T, DT>
|
|
47
59
|
) {
|
|
48
|
-
const _variable = variable as UAMultiStateValueDiscreteEx<T, DT>;
|
|
49
60
|
_variable.on("value_changed", (dataValue: DataValue) => {
|
|
50
|
-
const valueAsTextNode =
|
|
61
|
+
const valueAsTextNode = _variable.valueAsText || (_variable.getComponentByName("ValueAsText") as UAVariable);
|
|
51
62
|
if (!valueAsTextNode) {
|
|
52
63
|
return;
|
|
53
64
|
}
|
|
54
65
|
if (dataValue.value.arrayType === VariantArrayType.Array || dataValue.value.arrayType === VariantArrayType.Matrix) {
|
|
55
66
|
//
|
|
56
|
-
const
|
|
67
|
+
const _coerce = getCoerceToInt32(_variable.getBasicDataType());
|
|
57
68
|
|
|
58
69
|
const values: number[] = convertToArray<Int32>(dataValue.value.value).map((a) => coerceInt32(a));
|
|
59
70
|
const variantArray: Variant[] = values.map((a) => _variable.findValueAsText(a));
|
|
@@ -76,50 +87,38 @@ function install_synchronization<T extends number | Int64 | Int64, DT extends Da
|
|
|
76
87
|
_variable.emit("value_changed", dataValue);
|
|
77
88
|
}
|
|
78
89
|
|
|
79
|
-
export
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
readValue(
|
|
84
|
-
context?: ISessionContext | null,
|
|
85
|
-
indexRange?: NumericRange,
|
|
86
|
-
dataEncoding?: QualifiedNameLike | null
|
|
87
|
-
): DataValueT<T, DT>;
|
|
88
|
-
|
|
89
|
-
readValueAsync(context: ISessionContext | null, callback?: any): any;
|
|
90
|
-
}
|
|
91
|
-
export class UAMultiStateValueDiscreteImpl<T, DT extends DataType>
|
|
92
|
-
extends UAVariableImpl
|
|
93
|
-
implements UAMultiStateValueDiscreteEx<T, DT>
|
|
94
|
-
{
|
|
90
|
+
export class UAMultiStateValueDiscreteImplBase<T extends Number, DT extends DataType> extends UAVariableImpl {
|
|
91
|
+
private get $6(): UAMultiStateValueDiscreteEx<T, DT> {
|
|
92
|
+
return this as unknown as UAMultiStateValueDiscreteEx<T, DT>;
|
|
93
|
+
}
|
|
95
94
|
public setValue(value: string | number | Int64, options?: ISetStateOptions): void {
|
|
96
95
|
if (typeof value === "string") {
|
|
97
|
-
const enumValues = this.enumValues.readValue().value.value;
|
|
98
|
-
const selected = enumValues.filter((a
|
|
96
|
+
const enumValues = this.$6.enumValues.readValue().value.value;
|
|
97
|
+
const selected = enumValues.filter((a) => a.displayName.text === value)[0];
|
|
99
98
|
if (selected) {
|
|
100
99
|
this._setValue(selected.value);
|
|
101
100
|
} else {
|
|
102
|
-
throw new Error(
|
|
101
|
+
throw new Error(`cannot find enum string ${value} in ${enumValues.toString()}`);
|
|
103
102
|
}
|
|
104
103
|
} else {
|
|
105
104
|
this._setValue(coerceUInt64(value), options);
|
|
106
105
|
}
|
|
107
106
|
}
|
|
108
107
|
|
|
109
|
-
public getValueAsString():
|
|
110
|
-
const v = this.valueAsText.readValue().value.value;
|
|
108
|
+
public getValueAsString(): string | string[] {
|
|
109
|
+
const v = this.$6.valueAsText.readValue().value.value;
|
|
111
110
|
if (Array.isArray(v)) {
|
|
112
111
|
return v.map((a) => a.text);
|
|
113
112
|
}
|
|
114
113
|
return v.text || "";
|
|
115
114
|
}
|
|
116
115
|
|
|
117
|
-
public getValueAsNumber():
|
|
116
|
+
public getValueAsNumber(): number {
|
|
118
117
|
return this.readValue().value.value;
|
|
119
118
|
}
|
|
120
119
|
|
|
121
120
|
public checkVariantCompatibility(value: Variant): StatusCode {
|
|
122
|
-
if (this.enumValues) {
|
|
121
|
+
if (this.$6.enumValues) {
|
|
123
122
|
if (!this._isValueInRange(coerceInt32(value.value))) {
|
|
124
123
|
return StatusCodes.BadOutOfRange;
|
|
125
124
|
}
|
|
@@ -127,7 +126,11 @@ export class UAMultiStateValueDiscreteImpl<T, DT extends DataType>
|
|
|
127
126
|
return StatusCodes.Good;
|
|
128
127
|
}
|
|
129
128
|
|
|
130
|
-
public clone
|
|
129
|
+
public clone(
|
|
130
|
+
options1: CloneOptions,
|
|
131
|
+
optionalFilter?: CloneFilter,
|
|
132
|
+
extraInfo?: CloneExtraInfo
|
|
133
|
+
): UAMultiStateValueDiscreteImpl<T, DT> {
|
|
131
134
|
const variable1 = UAVariableImpl.prototype.clone.call(this, options1, optionalFilter, extraInfo);
|
|
132
135
|
return promoteToMultiStateValueDiscrete(variable1);
|
|
133
136
|
}
|
|
@@ -137,7 +140,7 @@ export class UAMultiStateValueDiscreteImpl<T, DT extends DataType>
|
|
|
137
140
|
*/
|
|
138
141
|
public _isValueInRange(value: number): boolean {
|
|
139
142
|
// MultiStateValueDiscreteType
|
|
140
|
-
const enumValues = this.enumValues.readValue().value.value as DTEnumValue[];
|
|
143
|
+
const enumValues = this.$6.enumValues.readValue().value.value as DTEnumValue[];
|
|
141
144
|
const e = enumValues.findIndex((x: DTEnumValue) => coerceInt64toInt32(x.value) === value);
|
|
142
145
|
return !(e === -1);
|
|
143
146
|
}
|
|
@@ -147,9 +150,9 @@ export class UAMultiStateValueDiscreteImpl<T, DT extends DataType>
|
|
|
147
150
|
*/
|
|
148
151
|
public _enumValueIndex(): Record<Int32, DTEnumValue> {
|
|
149
152
|
// construct an index to quickly find a EnumValue from a value
|
|
150
|
-
const enumValues: DTEnumValue[] = this.enumValues.readValue().value.value;
|
|
153
|
+
const enumValues: DTEnumValue[] = this.$6.enumValues.readValue().value.value;
|
|
151
154
|
const enumValueIndex: Record<Int32, DTEnumValue> = Object.create(null);
|
|
152
|
-
if (!enumValues
|
|
155
|
+
if (!enumValues?.forEach) {
|
|
153
156
|
return enumValueIndex;
|
|
154
157
|
}
|
|
155
158
|
enumValues.forEach((e: DTEnumValue) => {
|
|
@@ -163,11 +166,11 @@ export class UAMultiStateValueDiscreteImpl<T, DT extends DataType>
|
|
|
163
166
|
*
|
|
164
167
|
* @private
|
|
165
168
|
*/
|
|
166
|
-
public _setValue(value: Int64,
|
|
169
|
+
public _setValue(value: Int64, _options?: ISetStateOptions): void {
|
|
167
170
|
const int32Value = coerceInt64toInt32(value);
|
|
168
171
|
// check that value is in bound
|
|
169
172
|
if (!this._isValueInRange(int32Value)) {
|
|
170
|
-
throw new Error(
|
|
173
|
+
throw new Error(`UAMultiStateValueDiscrete#_setValue out of range ${value}`);
|
|
171
174
|
}
|
|
172
175
|
|
|
173
176
|
const dataType = this._getDataType();
|
|
@@ -205,7 +208,7 @@ export class UAMultiStateValueDiscreteImpl<T, DT extends DataType>
|
|
|
205
208
|
return DataType.UInt32;
|
|
206
209
|
}
|
|
207
210
|
const dataTypeStr = DataType[this.dataType.value as number] as string;
|
|
208
|
-
return
|
|
211
|
+
return DataType[dataTypeStr as keyof typeof DataType];
|
|
209
212
|
}
|
|
210
213
|
|
|
211
214
|
/**
|
|
@@ -220,11 +223,19 @@ export class UAMultiStateValueDiscreteImpl<T, DT extends DataType>
|
|
|
220
223
|
validateIsNumericDataType(this.dataType.value);
|
|
221
224
|
|
|
222
225
|
// find the enum value type
|
|
223
|
-
install_synchronization(this);
|
|
226
|
+
install_synchronization(this as unknown as UAVariableImpl & UAMultiStateValueDiscreteEx<T, DT>);
|
|
224
227
|
}
|
|
225
228
|
}
|
|
226
|
-
|
|
227
|
-
|
|
229
|
+
export type UAMultiStateValueDiscreteImpl<T extends Number, DT extends DataType> = UAMultiStateValueDiscreteImplBase<T, DT> &
|
|
230
|
+
UAMultiStateValueDiscreteEx<T, DT>;
|
|
231
|
+
export const UAMultiStateValueDiscreteImpl = UAMultiStateValueDiscreteImplBase as unknown as new <
|
|
232
|
+
T extends Number,
|
|
233
|
+
DT extends DataType
|
|
234
|
+
>() => UAMultiStateValueDiscreteImpl<T, DT>;
|
|
235
|
+
|
|
236
|
+
export function promoteToMultiStateValueDiscrete<T extends Number, DT extends DataType>(
|
|
237
|
+
node: UAVariable
|
|
238
|
+
): UAMultiStateValueDiscreteImpl<T, DT> {
|
|
228
239
|
if (node instanceof UAMultiStateValueDiscreteImpl) {
|
|
229
240
|
return node; // already promoted
|
|
230
241
|
}
|
|
@@ -240,8 +251,8 @@ export function _addMultiStateValueDiscrete<T, DT extends DataType>(
|
|
|
240
251
|
namespace: INamespace,
|
|
241
252
|
options: AddMultiStateValueDiscreteOptions
|
|
242
253
|
): UAMultiStateValueDiscreteEx<T, DT> {
|
|
243
|
-
assert(Object.
|
|
244
|
-
assert(!Object.
|
|
254
|
+
assert(Object.hasOwn(options, "enumValues"));
|
|
255
|
+
assert(!Object.hasOwn(options, "ValuePrecision"));
|
|
245
256
|
|
|
246
257
|
const addressSpace = namespace.addressSpace;
|
|
247
258
|
|
|
@@ -275,7 +286,7 @@ export function _addMultiStateValueDiscrete<T, DT extends DataType>(
|
|
|
275
286
|
value: options.value
|
|
276
287
|
});
|
|
277
288
|
} else {
|
|
278
|
-
value = options.value as
|
|
289
|
+
value = options.value as BindVariableOptions;
|
|
279
290
|
}
|
|
280
291
|
|
|
281
292
|
const cloned_options = {
|
|
@@ -344,13 +355,13 @@ const validBasicNumericDataTypes = [
|
|
|
344
355
|
DataType.Byte,
|
|
345
356
|
DataType.Byte,
|
|
346
357
|
DataType.SByte,
|
|
347
|
-
26
|
|
348
|
-
27
|
|
349
|
-
28
|
|
358
|
+
26 /* Number (abstract)*/,
|
|
359
|
+
27 /* Integer (abstract)*/,
|
|
360
|
+
28 /* UInteger (abstract)*/
|
|
350
361
|
];
|
|
351
|
-
export function validateIsNumericDataType(dataTypeValue:
|
|
362
|
+
export function validateIsNumericDataType(dataTypeValue: unknown): void {
|
|
352
363
|
if (typeof dataTypeValue !== "number" || validBasicNumericDataTypes.indexOf(dataTypeValue) < 0) {
|
|
353
|
-
throw new Error(`Invalid DataType in UAMultiStateValueDiscrete => ${dataTypeValue
|
|
364
|
+
throw new Error(`Invalid DataType in UAMultiStateValueDiscrete => ${dataTypeValue}`);
|
|
354
365
|
}
|
|
355
366
|
}
|
|
356
367
|
|
|
@@ -1,33 +1,26 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
BindVariableOptions,
|
|
3
|
+
CloneExtraInfo,
|
|
4
|
+
CloneFilter,
|
|
5
|
+
CloneOptions,
|
|
6
|
+
INamespace,
|
|
7
|
+
UAVariable
|
|
8
|
+
} from "node-opcua-address-space-base";
|
|
1
9
|
import assert from "node-opcua-assert";
|
|
2
|
-
import { coerceLocalizedText, LocalizedText, LocalizedTextLike, QualifiedNameLike } from "node-opcua-data-model";
|
|
3
|
-
import { DataType, Variant, VariantLike } from "node-opcua-variant";
|
|
4
10
|
import { VariableTypeIds } from "node-opcua-constants";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
import {
|
|
11
|
+
import { coerceLocalizedText, type LocalizedText, type LocalizedTextLike } from "node-opcua-data-model";
|
|
12
|
+
import { DataType, Variant } from "node-opcua-variant";
|
|
13
|
+
import type { AddTwoStateDiscreteOptions } from "../../source/address_space_ts";
|
|
14
|
+
import type { UATwoStateDiscreteEx } from "../../source/interfaces/data_access/ua_two_state_discrete_ex";
|
|
15
|
+
import type { ISetStateOptions } from "../../source/interfaces/i_set_state_options";
|
|
10
16
|
import { registerNodePromoter } from "../../source/loader/register_node_promoter";
|
|
11
|
-
import {
|
|
12
|
-
import { UATwoStateDiscreteEx } from "../../source/interfaces/data_access/ua_two_state_discrete_ex";
|
|
13
|
-
import { ISetStateOptions } from "../../source/interfaces/i_set_state_options";
|
|
14
|
-
|
|
17
|
+
import { UAVariableImpl } from "../ua_variable_impl";
|
|
15
18
|
import { add_dataItem_stuff } from "./add_dataItem_stuff";
|
|
16
19
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
readValue(
|
|
23
|
-
context?: ISessionContext | null,
|
|
24
|
-
indexRange?: NumericRange,
|
|
25
|
-
dataEncoding?: QualifiedNameLike | null
|
|
26
|
-
): DataValueT<boolean, DataType.Boolean>;
|
|
27
|
-
|
|
28
|
-
readValueAsync(context: ISessionContext | null, callback?: any): any;
|
|
29
|
-
}
|
|
30
|
-
export class UATwoStateDiscreteImpl extends UAVariableImpl implements UATwoStateDiscreteEx {
|
|
20
|
+
export class UATwoStateDiscreteImplBase extends UAVariableImpl {
|
|
21
|
+
private get $5(): UATwoStateDiscreteEx {
|
|
22
|
+
return this as unknown as UATwoStateDiscreteEx;
|
|
23
|
+
}
|
|
31
24
|
/*
|
|
32
25
|
* @private
|
|
33
26
|
*/
|
|
@@ -40,9 +33,8 @@ export class UATwoStateDiscreteImpl extends UAVariableImpl implements UATwoState
|
|
|
40
33
|
const falseState = this.getPropertyByName("FalseState");
|
|
41
34
|
if (falseState) {
|
|
42
35
|
falseState.on("value_changed", handler);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
else {
|
|
36
|
+
} else {
|
|
37
|
+
/* c8 ignore next */
|
|
46
38
|
console.warn(
|
|
47
39
|
"warning: UATwoStateDiscrete -> a FalseState property is mandatory ",
|
|
48
40
|
this.browseName.toString(),
|
|
@@ -52,9 +44,8 @@ export class UATwoStateDiscreteImpl extends UAVariableImpl implements UATwoState
|
|
|
52
44
|
const trueState = this.getPropertyByName("TrueState");
|
|
53
45
|
if (trueState) {
|
|
54
46
|
trueState.on("value_changed", handler);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
else {
|
|
47
|
+
} else {
|
|
48
|
+
/* c8 ignore next */
|
|
58
49
|
console.warn(
|
|
59
50
|
"waring: UATwoStateDiscrete -> a TrueState property is mandatory",
|
|
60
51
|
this.browseName.toString(),
|
|
@@ -72,7 +63,7 @@ export class UATwoStateDiscreteImpl extends UAVariableImpl implements UATwoState
|
|
|
72
63
|
} else if (text === this.getFalseStateAsString()) {
|
|
73
64
|
this.setValue(false, options);
|
|
74
65
|
} else {
|
|
75
|
-
throw new Error(
|
|
66
|
+
throw new Error(`setValue invalid value ${value}`);
|
|
76
67
|
}
|
|
77
68
|
}
|
|
78
69
|
}
|
|
@@ -87,18 +78,20 @@ export class UATwoStateDiscreteImpl extends UAVariableImpl implements UATwoState
|
|
|
87
78
|
}
|
|
88
79
|
}
|
|
89
80
|
getTrueStateAsString(): string {
|
|
90
|
-
return (this.trueState.readValue().value.value as LocalizedText).text || "";
|
|
81
|
+
return (this.$5.trueState.readValue().value.value as LocalizedText).text || "";
|
|
91
82
|
}
|
|
92
83
|
getFalseStateAsString(): string {
|
|
93
|
-
return (this.falseState.readValue().value.value as LocalizedText).text || "";
|
|
84
|
+
return (this.$5.falseState.readValue().value.value as LocalizedText).text || "";
|
|
94
85
|
}
|
|
95
86
|
|
|
96
|
-
public clone(options1:
|
|
87
|
+
public clone(options1: CloneOptions, optionalFilter?: CloneFilter, extraInfo?: CloneExtraInfo): UAVariable {
|
|
97
88
|
const variable1 = UAVariableImpl.prototype.clone.call(this, options1, optionalFilter, extraInfo);
|
|
98
89
|
promoteToTwoStateDiscrete(variable1);
|
|
99
90
|
return variable1;
|
|
100
91
|
}
|
|
101
92
|
}
|
|
93
|
+
export type UATwoStateDiscreteImpl = UATwoStateDiscreteImplBase & UATwoStateDiscreteEx;
|
|
94
|
+
export const UATwoStateDiscreteImpl = UATwoStateDiscreteImplBase as unknown as new () => UATwoStateDiscreteImpl;
|
|
102
95
|
|
|
103
96
|
export function promoteToTwoStateDiscrete(node: UAVariable): UATwoStateDiscreteEx {
|
|
104
97
|
if (node instanceof UATwoStateDiscreteImpl) {
|
|
@@ -115,7 +108,7 @@ registerNodePromoter(VariableTypeIds.TwoStateDiscreteType, promoteToTwoStateDisc
|
|
|
115
108
|
export function _addTwoStateDiscrete(namespace: INamespace, options: AddTwoStateDiscreteOptions): UATwoStateDiscreteEx {
|
|
116
109
|
const addressSpace = namespace.addressSpace;
|
|
117
110
|
|
|
118
|
-
assert(!Object.
|
|
111
|
+
assert(!Object.hasOwn(options, "ValuePrecision"));
|
|
119
112
|
|
|
120
113
|
const twoStateDiscreteType = addressSpace.findVariableType("TwoStateDiscreteType");
|
|
121
114
|
if (!twoStateDiscreteType) {
|
package/src/event_data.ts
CHANGED
|
@@ -16,68 +16,68 @@ type FullBrowsePath = string;
|
|
|
16
16
|
/**
|
|
17
17
|
*/
|
|
18
18
|
export class EventData implements IEventData {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
constructor(eventTypeNode: BaseNode) {
|
|
29
|
-
this.#cache = {
|
|
30
|
-
__values: {},
|
|
31
|
-
__nodeIdToNode: {},
|
|
32
|
-
__pathToNodeId: {},
|
|
33
|
-
__nodeIdToFullPath: {}
|
|
19
|
+
public eventId: NodeId;
|
|
20
|
+
#eventDataSource: BaseNode;
|
|
21
|
+
#cache: {
|
|
22
|
+
__values: { [key: NodeIdString]: Variant };
|
|
23
|
+
__nodeIdToNode: { [key: NodeIdString]: BaseNode };
|
|
24
|
+
__pathToNodeId: { [key: FullBrowsePath]: NodeId };
|
|
25
|
+
__nodeIdToFullPath: { [key: NodeIdString]: FullBrowsePath };
|
|
34
26
|
};
|
|
35
27
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
28
|
+
constructor(eventTypeNode: BaseNode) {
|
|
29
|
+
this.#cache = {
|
|
30
|
+
__values: {},
|
|
31
|
+
__nodeIdToNode: {},
|
|
32
|
+
__pathToNodeId: {},
|
|
33
|
+
__nodeIdToFullPath: {}
|
|
34
|
+
};
|
|
39
35
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
public _createValue(fullBrowsePath: string, node: BaseNode, variant: VariantLike): void {
|
|
44
|
-
const eventData = this as Record<string, unknown>;
|
|
45
|
-
assert(!eventData[fullBrowsePath], `already exists ${fullBrowsePath}`);
|
|
36
|
+
this.eventId = new NodeId();
|
|
37
|
+
this.#eventDataSource = eventTypeNode;
|
|
38
|
+
}
|
|
46
39
|
|
|
47
|
-
|
|
40
|
+
public getEventDataSource(): BaseNode {
|
|
41
|
+
return this.#eventDataSource;
|
|
42
|
+
}
|
|
43
|
+
public _createValue(fullBrowsePath: string, node: BaseNode, variant: VariantLike): void {
|
|
44
|
+
const eventData = this as Record<string, unknown>;
|
|
45
|
+
assert(!eventData[fullBrowsePath], `already exists ${fullBrowsePath}`);
|
|
48
46
|
|
|
49
|
-
|
|
47
|
+
const lowerName = fullBrowsePath.split(".").map(lowerFirstLetter).join(".");
|
|
50
48
|
|
|
51
|
-
|
|
52
|
-
this.#cache.__nodeIdToNode[node.nodeId.toString()] = node;
|
|
53
|
-
this.#cache.__nodeIdToFullPath[node.nodeId.toString()] = fullBrowsePath;
|
|
54
|
-
this.#cache.__values[node.nodeId.toString()] = eventData[lowerName] as Variant;
|
|
55
|
-
}
|
|
49
|
+
eventData[lowerName] = Variant.coerce(variant);
|
|
56
50
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
51
|
+
this.#cache.__pathToNodeId[fullBrowsePath] = node.nodeId;
|
|
52
|
+
this.#cache.__nodeIdToNode[node.nodeId.toString()] = node;
|
|
53
|
+
this.#cache.__nodeIdToFullPath[node.nodeId.toString()] = fullBrowsePath;
|
|
54
|
+
this.#cache.__values[node.nodeId.toString()] = eventData[lowerName] as Variant;
|
|
60
55
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
statusCode: StatusCodes.Good,
|
|
66
|
-
targets: [
|
|
67
|
-
{
|
|
68
|
-
remainingPathIndex: 0,
|
|
69
|
-
targetId: coerceExpandedNodeId(nodeId)
|
|
56
|
+
|
|
57
|
+
public _browse(browsePath: BrowsePath): BrowsePathResult | null {
|
|
58
|
+
if (!sameNodeId(browsePath.startingNode, this.#eventDataSource.nodeId)) {
|
|
59
|
+
return null;
|
|
70
60
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
61
|
+
const fullBrowsePath = (browsePath.relativePath.elements || []).map((b) => b.targetName.toString()).join(".");
|
|
62
|
+
const nodeId = this.#cache.__pathToNodeId[fullBrowsePath];
|
|
63
|
+
if (!nodeId) return null;
|
|
64
|
+
return new BrowsePathResult({
|
|
65
|
+
statusCode: StatusCodes.Good,
|
|
66
|
+
targets: [
|
|
67
|
+
{
|
|
68
|
+
remainingPathIndex: 0,
|
|
69
|
+
targetId: coerceExpandedNodeId(nodeId)
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
74
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
75
|
+
public _readValue(nodeId: NodeId): Variant | null {
|
|
76
|
+
const key = nodeId.toString();
|
|
77
|
+
const cached_value = this.#cache.__values[key];
|
|
78
|
+
if (cached_value) {
|
|
79
|
+
return cached_value;
|
|
80
|
+
}
|
|
81
|
+
return null;
|
|
80
82
|
}
|
|
81
|
-
return null;
|
|
82
|
-
}
|
|
83
83
|
}
|
|
@@ -1,23 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module node-opcua-address-space.Private
|
|
3
3
|
*/
|
|
4
|
-
import { assert } from "node-opcua-assert";
|
|
5
4
|
|
|
5
|
+
import type { UADataType, UADynamicVariableArray, UAObject, UAReferenceType, UAVariable } from "node-opcua-address-space-base";
|
|
6
|
+
import { assert } from "node-opcua-assert";
|
|
6
7
|
import { BrowseDirection, NodeClass } from "node-opcua-data-model";
|
|
7
8
|
import { checkDebugFlag, make_debugLog, make_errorLog, make_warningLog } from "node-opcua-debug";
|
|
8
|
-
import { NodeId } from "node-opcua-nodeid";
|
|
9
|
-
import { Variant } from "node-opcua-variant";
|
|
10
|
-
import { DataType } from "node-opcua-variant";
|
|
11
|
-
import { VariantArrayType } from "node-opcua-variant";
|
|
12
|
-
|
|
13
9
|
import { ExtensionObject } from "node-opcua-extension-object";
|
|
14
|
-
import {
|
|
10
|
+
import type { NodeId } from "node-opcua-nodeid";
|
|
11
|
+
import { DataType, Variant, VariantArrayType } from "node-opcua-variant";
|
|
15
12
|
import { UAVariableImpl } from "./ua_variable_impl";
|
|
16
13
|
|
|
17
|
-
const
|
|
18
|
-
const
|
|
14
|
+
const _doDebug = checkDebugFlag(__filename);
|
|
15
|
+
const _debugLog = make_debugLog(__filename);
|
|
19
16
|
const errorLog = make_errorLog(__filename);
|
|
20
|
-
const warningLog= make_warningLog(__filename);
|
|
17
|
+
const warningLog = make_warningLog(__filename);
|
|
21
18
|
|
|
22
19
|
/*
|
|
23
20
|
* define a complex Variable containing a array of extension objects
|
|
@@ -44,8 +41,8 @@ function removeElementByIndex<T extends ExtensionObject>(uaArrayVariableNode: UA
|
|
|
44
41
|
|
|
45
42
|
// remove element from global array (inefficient)
|
|
46
43
|
uaArrayVariableNode.$$extensionObjectArray.splice(elementIndex, 1);
|
|
47
|
-
if(uaArrayVariableNode.$$extensionObjectArray !== uaArrayVariableNode.$dataValue.value.value) {
|
|
48
|
-
|
|
44
|
+
if (uaArrayVariableNode.$$extensionObjectArray !== uaArrayVariableNode.$dataValue.value.value) {
|
|
45
|
+
// throw new Error("internal error");
|
|
49
46
|
}
|
|
50
47
|
uaArrayVariableNode.touchValue();
|
|
51
48
|
|
|
@@ -125,25 +122,27 @@ export function createExtObjArrayNode<T extends ExtensionObject>(parentFolder: U
|
|
|
125
122
|
return uaArrayVariableNode;
|
|
126
123
|
}
|
|
127
124
|
|
|
128
|
-
function _getElementBrowseName<T extends ExtensionObject>
|
|
129
|
-
|
|
125
|
+
function _getElementBrowseName<T extends ExtensionObject>(
|
|
126
|
+
this: UADynamicVariableArray<T>,
|
|
127
|
+
extObj: ExtensionObject,
|
|
128
|
+
_index: number | number[]
|
|
129
|
+
) {
|
|
130
130
|
const indexPropertyName1 = this.$$indexPropertyName;
|
|
131
131
|
|
|
132
|
-
if (!Object.
|
|
132
|
+
if (!Object.hasOwn(extObj, indexPropertyName1)) {
|
|
133
133
|
warningLog(" extension object does not have ", indexPropertyName1, extObj);
|
|
134
134
|
}
|
|
135
135
|
// assert(extObj.constructor === addressSpace.constructExtensionObject(dataType));
|
|
136
|
-
assert(Object.
|
|
136
|
+
assert(Object.hasOwn(extObj, indexPropertyName1));
|
|
137
137
|
const browseName = (extObj as any)[indexPropertyName1].toString();
|
|
138
138
|
return browseName;
|
|
139
|
-
}
|
|
139
|
+
}
|
|
140
140
|
|
|
141
141
|
export function bindExtObjArrayNode<T extends ExtensionObject>(
|
|
142
142
|
uaArrayVariableNode: UADynamicVariableArray<T>,
|
|
143
143
|
variableTypeNodeId: string | NodeId,
|
|
144
144
|
indexPropertyName: string
|
|
145
145
|
): UAVariable {
|
|
146
|
-
|
|
147
146
|
assert(uaArrayVariableNode.valueRank === 1, "expecting a one dimension array");
|
|
148
147
|
|
|
149
148
|
const addressSpace = uaArrayVariableNode.addressSpace;
|
|
@@ -151,7 +150,7 @@ export function bindExtObjArrayNode<T extends ExtensionObject>(
|
|
|
151
150
|
const variableType = addressSpace.findVariableType(variableTypeNodeId);
|
|
152
151
|
// c8 ignore next
|
|
153
152
|
if (!variableType || variableType.nodeId.isEmpty()) {
|
|
154
|
-
throw new Error(
|
|
153
|
+
throw new Error(`Cannot find VariableType ${variableTypeNodeId.toString()}`);
|
|
155
154
|
}
|
|
156
155
|
|
|
157
156
|
const structure = addressSpace.findDataType("Structure");
|
|
@@ -163,7 +162,7 @@ export function bindExtObjArrayNode<T extends ExtensionObject>(
|
|
|
163
162
|
let dataType = addressSpace.findDataType(variableType.dataType);
|
|
164
163
|
// c8 ignore next
|
|
165
164
|
if (!dataType) {
|
|
166
|
-
throw new Error(
|
|
165
|
+
throw new Error(`Cannot find DataType ${variableType.dataType.toString()}`);
|
|
167
166
|
}
|
|
168
167
|
|
|
169
168
|
assert(dataType.isSubtypeOf(structure), "expecting a structure (= ExtensionObject) here ");
|
|
@@ -174,13 +173,13 @@ export function bindExtObjArrayNode<T extends ExtensionObject>(
|
|
|
174
173
|
|
|
175
174
|
// verify that an object with same doesn't already exist
|
|
176
175
|
dataType = addressSpace.findDataType(variableType.dataType)! as UADataType;
|
|
177
|
-
assert(dataType
|
|
176
|
+
assert(dataType?.isSubtypeOf(structure), "expecting a structure (= ExtensionObject) here ");
|
|
178
177
|
assert(!uaArrayVariableNode.$$extensionObjectArray, "UAVariable ExtensionObject array already bounded");
|
|
179
178
|
uaArrayVariableNode.$$dataType = dataType;
|
|
180
179
|
uaArrayVariableNode.$$extensionObjectArray = [];
|
|
181
180
|
uaArrayVariableNode.$$indexPropertyName = indexPropertyName;
|
|
182
181
|
uaArrayVariableNode.$$getElementBrowseName = _getElementBrowseName;
|
|
183
|
-
uaArrayVariableNode.$dataValue.value.value =
|
|
182
|
+
uaArrayVariableNode.$dataValue.value.value = uaArrayVariableNode.$$extensionObjectArray;
|
|
184
183
|
uaArrayVariableNode.$dataValue.value.arrayType = VariantArrayType.Array;
|
|
185
184
|
|
|
186
185
|
const bindOptions: any = {
|
|
@@ -252,8 +251,8 @@ export function addElement<T extends ExtensionObject>(
|
|
|
252
251
|
elVar.bindExtensionObject(extensionObject, { force: true });
|
|
253
252
|
}
|
|
254
253
|
|
|
255
|
-
if(uaArrayVariableNode.$$extensionObjectArray !== uaArrayVariableNode.$dataValue.value.value) {
|
|
256
|
-
|
|
254
|
+
if (uaArrayVariableNode.$$extensionObjectArray !== uaArrayVariableNode.$dataValue.value.value) {
|
|
255
|
+
// throw new Error("internal error");
|
|
257
256
|
}
|
|
258
257
|
// also add the value inside
|
|
259
258
|
uaArrayVariableNode.$$extensionObjectArray.push(elVar.$extensionObject);
|
|
@@ -284,10 +283,10 @@ export function removeElement<T extends ExtensionObject>(
|
|
|
284
283
|
} else if (typeof element === "function") {
|
|
285
284
|
// find element by functor
|
|
286
285
|
elementIndex = _array.findIndex(element);
|
|
287
|
-
} else if (element
|
|
286
|
+
} else if (element?.nodeClass) {
|
|
288
287
|
// find element by name
|
|
289
|
-
const browseNameToFind = element.browseName.name
|
|
290
|
-
elementIndex = _array.findIndex((obj: any,
|
|
288
|
+
const browseNameToFind = element.browseName.name?.toString();
|
|
289
|
+
elementIndex = _array.findIndex((obj: any, _i: number) => {
|
|
291
290
|
const browseName = uaArrayVariableNode.$$getElementBrowseName(obj, elementIndex).toString();
|
|
292
291
|
return browseName === browseNameToFind;
|
|
293
292
|
});
|
|
@@ -297,7 +296,7 @@ export function removeElement<T extends ExtensionObject>(
|
|
|
297
296
|
|
|
298
297
|
// c8 ignore next
|
|
299
298
|
if (elementIndex < 0) {
|
|
300
|
-
throw new Error(
|
|
299
|
+
throw new Error(`removeElement: cannot find element matching ${element.toString()}`);
|
|
301
300
|
}
|
|
302
301
|
return removeElementByIndex(uaArrayVariableNode, elementIndex);
|
|
303
302
|
}
|