node-opcua-address-space 2.98.0 → 2.98.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 -0
- package/dist/source/address_space_ts.js +18 -0
- package/dist/source/address_space_ts.js.map +1 -0
- package/dist/source/continuation_points/continuation_point_manager.d.ts +91 -0
- package/dist/source/continuation_points/continuation_point_manager.js +201 -0
- package/dist/source/continuation_points/continuation_point_manager.js.map +1 -0
- package/dist/source/helpers/adjust_browse_direction.d.ts +5 -0
- package/dist/source/helpers/adjust_browse_direction.js +12 -0
- package/dist/source/helpers/adjust_browse_direction.js.map +1 -0
- package/dist/source/helpers/argument_list.d.ts +33 -0
- package/dist/source/helpers/argument_list.js +255 -0
- package/dist/source/helpers/argument_list.js.map +1 -0
- package/dist/source/helpers/call_helpers.d.ts +6 -0
- package/dist/source/helpers/call_helpers.js +72 -0
- package/dist/source/helpers/call_helpers.js.map +1 -0
- package/dist/source/helpers/coerce_enum_value.d.ts +6 -0
- package/dist/source/helpers/coerce_enum_value.js +34 -0
- package/dist/source/helpers/coerce_enum_value.js.map +1 -0
- package/dist/source/helpers/dump_tools.d.ts +14 -0
- package/dist/source/helpers/dump_tools.js +79 -0
- package/dist/source/helpers/dump_tools.js.map +1 -0
- package/dist/source/helpers/ensure_secure_access.d.ts +9 -0
- package/dist/source/helpers/ensure_secure_access.js +77 -0
- package/dist/source/helpers/ensure_secure_access.js.map +1 -0
- package/dist/source/helpers/make_optionals_map.d.ts +21 -0
- package/dist/source/helpers/make_optionals_map.js +30 -0
- package/dist/source/helpers/make_optionals_map.js.map +1 -0
- package/dist/source/helpers/multiform_func.d.ts +11 -0
- package/dist/source/helpers/multiform_func.js +76 -0
- package/dist/source/helpers/multiform_func.js.map +1 -0
- package/dist/source/helpers/resolve_opaque_on_address_space.d.ts +3 -0
- package/dist/source/helpers/resolve_opaque_on_address_space.js +37 -0
- package/dist/source/helpers/resolve_opaque_on_address_space.js.map +1 -0
- package/dist/source/index.d.ts +61 -0
- package/dist/source/index.js +90 -0
- package/dist/source/index.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +19 -0
- package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.d.ts +193 -0
- package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.d.ts +12 -0
- package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.d.ts +10 -0
- package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +7 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts +7 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +4 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +4 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +9 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +4 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +4 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +20 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +23 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +32 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +19 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +45 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +7 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js +26 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +5 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +20 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +26 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +8 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js.map +1 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +10 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js +3 -0
- package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js.map +1 -0
- package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +21 -0
- package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js +3 -0
- package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js.map +1 -0
- package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +24 -0
- package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js +3 -0
- package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js.map +1 -0
- package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +12 -0
- package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js +3 -0
- package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js.map +1 -0
- package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +8 -0
- package/dist/source/interfaces/data_access/ua_y_array_item_ex.js +3 -0
- package/dist/source/interfaces/data_access/ua_y_array_item_ex.js.map +1 -0
- package/dist/source/interfaces/extension_object_constructor.d.ts +10 -0
- package/dist/source/interfaces/extension_object_constructor.js +3 -0
- package/dist/source/interfaces/extension_object_constructor.js.map +1 -0
- package/dist/source/interfaces/nodeset_loader_options.d.ts +4 -0
- package/dist/source/interfaces/nodeset_loader_options.js +3 -0
- package/dist/source/interfaces/nodeset_loader_options.js.map +1 -0
- package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -0
- package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +3 -0
- package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js.map +1 -0
- package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -0
- package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js +3 -0
- package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js.map +1 -0
- package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -0
- package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js +3 -0
- package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js.map +1 -0
- package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +30 -0
- package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.js +3 -0
- package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.js.map +1 -0
- package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +234 -0
- package/dist/source/interfaces/state_machine/ua_state_machine_type.js +3 -0
- package/dist/source/interfaces/state_machine/ua_state_machine_type.js.map +1 -0
- package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +6 -0
- package/dist/source/interfaces/state_machine/ua_transition_ex.js +3 -0
- package/dist/source/interfaces/state_machine/ua_transition_ex.js.map +1 -0
- package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +8 -0
- package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +3 -0
- package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js.map +1 -0
- package/dist/source/loader/decode_xml_extension_object.d.ts +6 -0
- package/dist/source/loader/decode_xml_extension_object.js +72 -0
- package/dist/source/loader/decode_xml_extension_object.js.map +1 -0
- package/dist/source/loader/ensure_datatype_extracted.d.ts +5 -0
- package/dist/source/loader/ensure_datatype_extracted.js +71 -0
- package/dist/source/loader/ensure_datatype_extracted.js.map +1 -0
- package/dist/source/loader/generateAddressSpaceRaw.d.ts +11 -0
- package/dist/source/loader/generateAddressSpaceRaw.js +46 -0
- package/dist/source/loader/generateAddressSpaceRaw.js.map +1 -0
- package/dist/source/loader/load_nodeset2.d.ts +17 -0
- package/dist/source/loader/load_nodeset2.js +1484 -0
- package/dist/source/loader/load_nodeset2.js.map +1 -0
- 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 -0
- package/dist/source/loader/make_xml_extension_object_parser.js +327 -0
- package/dist/source/loader/make_xml_extension_object_parser.js.map +1 -0
- package/dist/source/loader/namespace_post_step.d.ts +10 -0
- package/dist/source/loader/namespace_post_step.js +62 -0
- package/dist/source/loader/namespace_post_step.js.map +1 -0
- package/dist/source/loader/register_node_promoter.d.ts +2 -0
- package/dist/source/loader/register_node_promoter.js +10 -0
- package/dist/source/loader/register_node_promoter.js.map +1 -0
- package/dist/source/namespace.d.ts +6 -0
- package/dist/source/namespace.js +3 -0
- package/dist/source/namespace.js.map +1 -0
- package/dist/source/namespace_alarm_and_condition.d.ts +32 -0
- package/dist/source/namespace_alarm_and_condition.js +3 -0
- package/dist/source/namespace_alarm_and_condition.js.map +1 -0
- package/dist/source/namespace_data_access.d.ts +42 -0
- package/dist/source/namespace_data_access.js +3 -0
- package/dist/source/namespace_data_access.js.map +1 -0
- package/dist/source/namespace_machine_state.d.ts +8 -0
- package/dist/source/namespace_machine_state.js +3 -0
- package/dist/source/namespace_machine_state.js.map +1 -0
- package/dist/source/pseudo_session.d.ts +72 -0
- package/dist/source/pseudo_session.js +255 -0
- package/dist/source/pseudo_session.js.map +1 -0
- package/dist/source/session_context.d.ts +111 -0
- package/dist/source/session_context.js +265 -0
- package/dist/source/session_context.js.map +1 -0
- package/dist/source/set_namespace_meta_data.d.ts +2 -0
- package/dist/source/set_namespace_meta_data.js +60 -0
- package/dist/source/set_namespace_meta_data.js.map +1 -0
- package/dist/source/ua_root_folder.d.ts +9 -0
- package/dist/source/ua_root_folder.js +3 -0
- package/dist/source/ua_root_folder.js.map +1 -0
- package/dist/source/ua_two_state_variable_ex.d.ts +23 -0
- package/dist/source/ua_two_state_variable_ex.js +3 -0
- package/dist/source/ua_two_state_variable_ex.js.map +1 -0
- package/dist/source/xml_writer.d.ts +18 -0
- package/dist/source/xml_writer.js +3 -0
- package/dist/source/xml_writer.js.map +1 -0
- package/dist/src/address_space.d.ts +387 -0
- package/dist/src/address_space.js +1386 -0
- package/dist/src/address_space.js.map +1 -0
- package/dist/src/address_space_change_event_tools.d.ts +6 -0
- package/dist/src/address_space_change_event_tools.js +153 -0
- package/dist/src/address_space_change_event_tools.js.map +1 -0
- package/dist/src/address_space_private.d.ts +43 -0
- package/dist/src/address_space_private.js +3 -0
- package/dist/src/address_space_private.js.map +1 -0
- package/dist/src/alarms_and_conditions/condition.d.ts +5 -0
- package/dist/src/alarms_and_conditions/condition.js +79 -0
- package/dist/src/alarms_and_conditions/condition.js.map +1 -0
- package/dist/src/alarms_and_conditions/condition_info_impl.d.ts +26 -0
- package/dist/src/alarms_and_conditions/condition_info_impl.js +55 -0
- package/dist/src/alarms_and_conditions/condition_info_impl.js.map +1 -0
- package/dist/src/alarms_and_conditions/condition_snapshot_impl.d.ts +222 -0
- package/dist/src/alarms_and_conditions/condition_snapshot_impl.js +658 -0
- package/dist/src/alarms_and_conditions/condition_snapshot_impl.js.map +1 -0
- package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +9 -0
- package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +61 -0
- package/dist/src/alarms_and_conditions/deviation_alarm_helper.js.map +1 -0
- package/dist/src/alarms_and_conditions/index.d.ts +16 -0
- package/dist/src/alarms_and_conditions/index.js +33 -0
- package/dist/src/alarms_and_conditions/index.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +44 -0
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +245 -0
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +93 -0
- package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +419 -0
- package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +26 -0
- package/dist/src/alarms_and_conditions/ua_base_event_impl.js +39 -0
- package/dist/src/alarms_and_conditions/ua_base_event_impl.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +44 -0
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +184 -0
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +155 -0
- package/dist/src/alarms_and_conditions/ua_condition_impl.js +1029 -0
- package/dist/src/alarms_and_conditions/ua_condition_impl.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +14 -0
- package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +35 -0
- package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +24 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +57 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +11 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +12 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +23 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +87 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +11 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +8 -0
- package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +79 -0
- package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +251 -0
- package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +24 -0
- package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +51 -0
- package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +19 -0
- package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +163 -0
- package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +46 -0
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +166 -0
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js.map +1 -0
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +18 -0
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +18 -0
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js.map +1 -0
- package/dist/src/apply_condition_refresh.d.ts +6 -0
- package/dist/src/apply_condition_refresh.js +28 -0
- package/dist/src/apply_condition_refresh.js.map +1 -0
- package/dist/src/base_node_impl.d.ts +284 -0
- package/dist/src/base_node_impl.js +1455 -0
- package/dist/src/base_node_impl.js.map +1 -0
- package/dist/src/base_node_private.d.ts +81 -0
- package/dist/src/base_node_private.js +833 -0
- package/dist/src/base_node_private.js.map +1 -0
- package/dist/src/check_value_rank_compatibility.d.ts +15 -0
- package/dist/src/check_value_rank_compatibility.js +82 -0
- package/dist/src/check_value_rank_compatibility.js.map +1 -0
- package/dist/src/data_access/add_dataItem_stuff.d.ts +11 -0
- package/dist/src/data_access/add_dataItem_stuff.js +62 -0
- package/dist/src/data_access/add_dataItem_stuff.js.map +1 -0
- package/dist/src/data_access/check_variant_compatibility_ua_analog_item.d.ts +1 -0
- package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js +35 -0
- package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js.map +1 -0
- package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +32 -0
- package/dist/src/data_access/ua_multistate_discrete_impl.js +131 -0
- package/dist/src/data_access/ua_multistate_discrete_impl.js.map +1 -0
- package/dist/src/data_access/ua_multistate_value_discrete_impl.d.ts +52 -0
- package/dist/src/data_access/ua_multistate_value_discrete_impl.js +254 -0
- package/dist/src/data_access/ua_multistate_value_discrete_impl.js.map +1 -0
- package/dist/src/data_access/ua_two_state_discrete_impl.d.ts +25 -0
- package/dist/src/data_access/ua_two_state_discrete_impl.js +156 -0
- package/dist/src/data_access/ua_two_state_discrete_impl.js.map +1 -0
- package/dist/src/event_data.d.ts +34 -0
- package/dist/src/event_data.js +65 -0
- package/dist/src/event_data.js.map +1 -0
- package/dist/src/extension_object_array_node.d.ts +23 -0
- package/dist/src/extension_object_array_node.js +249 -0
- package/dist/src/extension_object_array_node.js.map +1 -0
- package/dist/src/historical_access/address_space_historical_data_node.d.ts +26 -0
- package/dist/src/historical_access/address_space_historical_data_node.js +653 -0
- package/dist/src/historical_access/address_space_historical_data_node.js.map +1 -0
- package/dist/src/idx_iterator.d.ts +8 -0
- package/dist/src/idx_iterator.js +51 -0
- package/dist/src/idx_iterator.js.map +1 -0
- package/dist/src/index_current.d.ts +46 -0
- package/dist/src/index_current.js +78 -0
- package/dist/src/index_current.js.map +1 -0
- package/dist/src/namespace_impl.d.ts +456 -0
- package/dist/src/namespace_impl.js +1763 -0
- package/dist/src/namespace_impl.js.map +1 -0
- package/dist/src/namespace_private.d.ts +23 -0
- package/dist/src/namespace_private.js +33 -0
- package/dist/src/namespace_private.js.map +1 -0
- package/dist/src/nodeid_manager.d.ts +37 -0
- package/dist/src/nodeid_manager.js +184 -0
- package/dist/src/nodeid_manager.js.map +1 -0
- package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +2 -0
- package/dist/src/nodeset_tools/adjust_namespace_array.js +14 -0
- package/dist/src/nodeset_tools/adjust_namespace_array.js.map +1 -0
- package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +18 -0
- package/dist/src/nodeset_tools/construct_namespace_dependency.js +141 -0
- package/dist/src/nodeset_tools/construct_namespace_dependency.js.map +1 -0
- package/dist/src/nodeset_tools/dump_to_bsd.d.ts +2 -0
- package/dist/src/nodeset_tools/dump_to_bsd.js +165 -0
- package/dist/src/nodeset_tools/dump_to_bsd.js.map +1 -0
- package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +10 -0
- package/dist/src/nodeset_tools/nodeset_to_xml.js +1288 -0
- package/dist/src/nodeset_tools/nodeset_to_xml.js.map +1 -0
- package/dist/src/private_namespace.d.ts +5 -0
- package/dist/src/private_namespace.js +20 -0
- package/dist/src/private_namespace.js.map +1 -0
- package/dist/src/reference_impl.d.ts +43 -0
- package/dist/src/reference_impl.js +140 -0
- package/dist/src/reference_impl.js.map +1 -0
- package/dist/src/role_permissions.d.ts +2 -0
- package/dist/src/role_permissions.js +11 -0
- package/dist/src/role_permissions.js.map +1 -0
- package/dist/src/state_machine/finite_state_machine.d.ts +81 -0
- package/dist/src/state_machine/finite_state_machine.js +389 -0
- package/dist/src/state_machine/finite_state_machine.js.map +1 -0
- package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +38 -0
- package/dist/src/state_machine/ua_shelving_state_machine_ex.js +251 -0
- package/dist/src/state_machine/ua_shelving_state_machine_ex.js.map +1 -0
- package/dist/src/state_machine/ua_two_state_variable.d.ts +61 -0
- package/dist/src/state_machine/ua_two_state_variable.js +332 -0
- package/dist/src/state_machine/ua_two_state_variable.js.map +1 -0
- package/dist/src/tool_isSubtypeOf.d.ts +18 -0
- package/dist/src/tool_isSubtypeOf.js +125 -0
- package/dist/src/tool_isSubtypeOf.js.map +1 -0
- package/dist/src/ua_condition_type.d.ts +8 -0
- package/dist/src/ua_condition_type.js +3 -0
- package/dist/src/ua_condition_type.js.map +1 -0
- package/dist/src/ua_data_type_impl.d.ts +89 -0
- package/dist/src/ua_data_type_impl.js +369 -0
- package/dist/src/ua_data_type_impl.js.map +1 -0
- package/dist/src/ua_method_impl.d.ts +42 -0
- package/dist/src/ua_method_impl.js +218 -0
- package/dist/src/ua_method_impl.js.map +1 -0
- package/dist/src/ua_object_impl.d.ts +35 -0
- package/dist/src/ua_object_impl.js +169 -0
- package/dist/src/ua_object_impl.js.map +1 -0
- package/dist/src/ua_object_type_impl.d.ts +50 -0
- package/dist/src/ua_object_type_impl.js +127 -0
- package/dist/src/ua_object_type_impl.js.map +1 -0
- package/dist/src/ua_reference_type_impl.d.ts +45 -0
- package/dist/src/ua_reference_type_impl.js +142 -0
- package/dist/src/ua_reference_type_impl.js.map +1 -0
- package/dist/src/ua_variable_impl.d.ts +380 -0
- package/dist/src/ua_variable_impl.js +1739 -0
- package/dist/src/ua_variable_impl.js.map +1 -0
- package/dist/src/ua_variable_impl_ext_obj.d.ts +23 -0
- package/dist/src/ua_variable_impl_ext_obj.js +671 -0
- package/dist/src/ua_variable_impl_ext_obj.js.map +1 -0
- package/dist/src/ua_variable_type_impl.d.ts +74 -0
- package/dist/src/ua_variable_type_impl.js +598 -0
- package/dist/src/ua_variable_type_impl.js.map +1 -0
- package/dist/src/ua_view_impl.d.ts +19 -0
- package/dist/src/ua_view_impl.js +44 -0
- package/dist/src/ua_view_impl.js.map +1 -0
- package/dist/tsconfig_common.tsbuildinfo +1 -0
- package/distHelpers/add_event_generator_object.d.ts +3 -0
- package/{test_helpers/add_event_generator_object.ts → distHelpers/add_event_generator_object.js} +16 -22
- package/distHelpers/add_event_generator_object.js.map +1 -0
- package/distHelpers/alarms_and_conditions_demo.d.ts +9 -0
- package/{test_helpers/alarms_and_conditions_demo.ts → distHelpers/alarms_and_conditions_demo.js} +21 -56
- package/distHelpers/alarms_and_conditions_demo.js.map +1 -0
- package/distHelpers/assertHasMatchingReference.d.ts +19 -0
- package/{test_helpers/assertHasMatchingReference.ts → distHelpers/assertHasMatchingReference.js} +12 -14
- package/distHelpers/assertHasMatchingReference.js.map +1 -0
- package/distHelpers/boiler_system.d.ts +113 -0
- package/{test_helpers/boiler_system.ts → distHelpers/boiler_system.js} +81 -295
- package/distHelpers/boiler_system.js.map +1 -0
- package/distHelpers/create_minimalist_address_space_nodeset.d.ts +5 -0
- package/{test_helpers/create_minimalist_address_space_nodeset.ts → distHelpers/create_minimalist_address_space_nodeset.js} +51 -87
- package/distHelpers/create_minimalist_address_space_nodeset.js.map +1 -0
- package/distHelpers/date_utils.d.ts +3 -0
- package/distHelpers/date_utils.js +10 -0
- package/distHelpers/date_utils.js.map +1 -0
- package/distHelpers/dump_statemachine.d.ts +0 -0
- package/distHelpers/dump_statemachine.js +128 -0
- package/distHelpers/dump_statemachine.js.map +1 -0
- package/distHelpers/get_address_space_fixture.d.ts +1 -0
- package/{test_helpers/get_address_space_fixture.ts → distHelpers/get_address_space_fixture.js} +8 -7
- package/distHelpers/get_address_space_fixture.js.map +1 -0
- package/distHelpers/get_mini_address_space.d.ts +7 -0
- package/distHelpers/get_mini_address_space.js +37 -0
- package/distHelpers/get_mini_address_space.js.map +1 -0
- package/distHelpers/index.js +29 -0
- package/distHelpers/index.js.map +1 -0
- package/distHelpers/mock_session.d.ts +10 -0
- package/distHelpers/mock_session.js +26 -0
- package/distHelpers/mock_session.js.map +1 -0
- package/distNodeJS/generate_address_space.d.ts +6 -0
- package/distNodeJS/generate_address_space.js +53 -0
- package/distNodeJS/generate_address_space.js.map +1 -0
- package/distNodeJS/index.js +18 -0
- package/distNodeJS/index.js.map +1 -0
- package/package.json +49 -38
- package/source/helpers/dump_tools.ts +92 -0
- package/src/nodeset_tools/dump_to_bsd.ts +198 -0
- package/.mocharc.yml +0 -12
- package/generate.js +0 -1
- package/source_nodejs/generate_address_space.ts +0 -60
- package/test_helpers/date_utils.ts +0 -5
- package/test_helpers/get_mini_address_space.ts +0 -42
- package/test_helpers/mock_session.ts +0 -34
- package/test_helpers/test_fixtures/dataType_in_separateNamespace.xml +0 -150
- package/test_helpers/test_fixtures/dataType_in_separateNamespace_basic.xml +0 -57
- package/test_helpers/test_fixtures/dataType_in_separateNamespace_mix.xml +0 -136
- package/test_helpers/test_fixtures/dataType_issue.xml +0 -80
- package/test_helpers/test_fixtures/dataType_withEnumeration.xml +0 -82
- package/test_helpers/test_fixtures/dataType_with_isOptionSet.xml +0 -194
- package/test_helpers/test_fixtures/dataType_with_qualifiedname.xml +0 -71
- package/test_helpers/test_fixtures/dataType_with_recursive_structure.xml +0 -155
- package/test_helpers/test_fixtures/dataType_with_structures.xml +0 -605
- package/test_helpers/test_fixtures/dataType_with_union.xml +0 -90
- package/test_helpers/test_fixtures/datatype_as_per_1.04.xml +0 -118
- package/test_helpers/test_fixtures/datatype_with_allow_subtype.xml +0 -104
- package/test_helpers/test_fixtures/eurange_issue.xml +0 -74
- package/test_helpers/test_fixtures/example_issue1096.xml +0 -267
- package/test_helpers/test_fixtures/fixture_empty_nodeset2.xml +0 -106
- package/test_helpers/test_fixtures/fixture_simple_statemachine_nodeset2.xml +0 -1305
- package/test_helpers/test_fixtures/fixuture_nodeset_objects_with_some_methods.xml +0 -370
- package/test_helpers/test_fixtures/issue_1132_variable_with_nodeid_value.xml +0 -68
- package/test_helpers/test_fixtures/issue_846.xml +0 -3172
- package/test_helpers/test_fixtures/issue_899_variable_with_nodeid_value.xml +0 -33
- package/test_helpers/test_fixtures/mini.Node.Set2.xml +0 -4736
- package/test_helpers/test_fixtures/mini.nodeset.withVariousVariables.xml +0 -196
- package/test_helpers/test_fixtures/minimalist_nodeset_with_models.xml +0 -8
- package/test_helpers/test_fixtures/minimalist_nodeset_with_models_more_complex.xml +0 -20
- package/test_helpers/test_fixtures/nodeset_no_aliases.xml +0 -30
- package/test_helpers/test_fixtures/nodeset_no_aliases_with_aliases.xml +0 -31
- package/test_helpers/test_fixtures/nodeset_with_analog_items.xml +0 -45
- package/test_helpers/test_fixtures/nodeset_with_guid.xml +0 -1442
- package/test_helpers/test_fixtures/nodeset_with_int64_values.xml +0 -31
- package/test_helpers/test_fixtures/nodeset_with_special_char.xml +0 -34
- package/test_helpers/test_fixtures/nodeset_with_utf8_special_characters.xml +0 -20
- package/test_helpers/test_fixtures/variable_with_value.xml +0 -143
- package/test_helpers/test_fixtures/variabletype_with_value.xml +0 -324
- /package/{test_helpers/index.ts → distHelpers/index.d.ts} +0 -0
- /package/{source_nodejs/index.ts → distNodeJS/index.d.ts} +0 -0
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
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
|
+
// istanbul ignore next
|
|
50
|
+
if (!Array.isArray(definition)) {
|
|
51
|
+
throw new Error("This BaseDataType cannot be decoded because it has no definition.\n" +
|
|
52
|
+
"Please construct a BaseDataType({definition : [{dataType: DataType.UInt32 }]});");
|
|
53
|
+
}
|
|
54
|
+
const args = [];
|
|
55
|
+
let value;
|
|
56
|
+
for (const def of definition) {
|
|
57
|
+
const decodeFunc = myfindBuiltInType(def.dataType).decode;
|
|
58
|
+
// xx assert(def.valueRank === -1 || def.valueRank==0);
|
|
59
|
+
const isArray = def.valueRank === 1 || def.valueRank === -1;
|
|
60
|
+
if (isArray) {
|
|
61
|
+
value = ec.decodeArray(stream, decodeFunc);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
value = decodeFunc(stream);
|
|
65
|
+
}
|
|
66
|
+
args.push(value);
|
|
67
|
+
}
|
|
68
|
+
return args;
|
|
69
|
+
}
|
|
70
|
+
exports.decode_ArgumentList = decode_ArgumentList;
|
|
71
|
+
function binaryStoreSize_ArgumentList(description, args) {
|
|
72
|
+
(0, node_opcua_assert_1.assert)(Array.isArray(description));
|
|
73
|
+
(0, node_opcua_assert_1.assert)(Array.isArray(args));
|
|
74
|
+
(0, node_opcua_assert_1.assert)(args.length === description.length);
|
|
75
|
+
const stream = new node_opcua_binary_stream_1.BinaryStreamSizeCalculator();
|
|
76
|
+
encode_ArgumentList(description, args, stream);
|
|
77
|
+
return stream.length;
|
|
78
|
+
}
|
|
79
|
+
exports.binaryStoreSize_ArgumentList = binaryStoreSize_ArgumentList;
|
|
80
|
+
function getMethodDeclaration_ArgumentList(addressSpace, objectId, methodId) {
|
|
81
|
+
// find object in address space
|
|
82
|
+
const obj = addressSpace.findNode(objectId);
|
|
83
|
+
if (!obj) {
|
|
84
|
+
// istanbul ignore next
|
|
85
|
+
doDebug && debugLog("cannot find node ", objectId.toString());
|
|
86
|
+
return { statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdUnknown };
|
|
87
|
+
}
|
|
88
|
+
let objectMethod = obj.getMethodById(methodId);
|
|
89
|
+
if (!objectMethod) {
|
|
90
|
+
// the method doesn't belong to the object, nevertheless
|
|
91
|
+
// the method can be called
|
|
92
|
+
objectMethod = addressSpace.findNode(methodId);
|
|
93
|
+
if (!objectMethod || objectMethod.nodeClass !== node_opcua_data_model_1.NodeClass.Method) {
|
|
94
|
+
warningLog("cannot find method with id", methodId.toString(), "object Id = ", objectId.toString());
|
|
95
|
+
return { statusCode: node_opcua_status_code_1.StatusCodes.BadMethodInvalid };
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
const methodDeclarationId = objectMethod.methodDeclarationId;
|
|
99
|
+
const methodDeclaration = addressSpace.findNode(methodDeclarationId);
|
|
100
|
+
if (!methodDeclaration) {
|
|
101
|
+
// return {statusCode: StatusCodes.BadMethodInvalid};
|
|
102
|
+
return { statusCode: node_opcua_status_code_1.StatusCodes.Good, methodDeclaration: objectMethod };
|
|
103
|
+
}
|
|
104
|
+
// istanbul ignore next
|
|
105
|
+
if (methodDeclaration.nodeClass !== node_opcua_data_model_1.NodeClass.Method) {
|
|
106
|
+
throw new Error("Expecting a Method here");
|
|
107
|
+
}
|
|
108
|
+
return { statusCode: node_opcua_status_code_1.StatusCodes.Good, methodDeclaration };
|
|
109
|
+
}
|
|
110
|
+
exports.getMethodDeclaration_ArgumentList = getMethodDeclaration_ArgumentList;
|
|
111
|
+
function checkValueRank(argDefinition, arg) {
|
|
112
|
+
const isArray = arg.arrayType === node_opcua_variant_2.VariantArrayType.Array;
|
|
113
|
+
const isMatrix = arg.arrayType === node_opcua_variant_2.VariantArrayType.Matrix;
|
|
114
|
+
if (argDefinition.valueRank > 0) {
|
|
115
|
+
if (argDefinition.valueRank === 1) {
|
|
116
|
+
if (!isArray) {
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
if (!isMatrix) {
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
else if (argDefinition.valueRank === -1) {
|
|
127
|
+
// SCALAR
|
|
128
|
+
if (isArray || isMatrix) {
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
else if (argDefinition.valueRank === -2) {
|
|
133
|
+
// ANY
|
|
134
|
+
}
|
|
135
|
+
else if (argDefinition.valueRank === -3) {
|
|
136
|
+
// Scalar or OneDim
|
|
137
|
+
if (isMatrix) {
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
else if (argDefinition.valueRank === 0) {
|
|
142
|
+
// array or matrix
|
|
143
|
+
if (!isArray && !isMatrix) {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* @private
|
|
151
|
+
*/
|
|
152
|
+
function isArgumentValid(addressSpace, argDefinition, arg) {
|
|
153
|
+
(0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(argDefinition, "dataType"));
|
|
154
|
+
(0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(argDefinition, "valueRank"));
|
|
155
|
+
const argDefDataType = addressSpace.findDataType(argDefinition.dataType);
|
|
156
|
+
const argDataType = addressSpace.findDataType((0, node_opcua_nodeid_1.resolveNodeId)(arg.dataType));
|
|
157
|
+
// istanbul ignore next
|
|
158
|
+
if (!argDefDataType) {
|
|
159
|
+
debugLog("dataType ", argDefinition.dataType.toString(), "doesn't exist");
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
if (argDefinition.valueRank >= 0 && arg.dataType === node_opcua_variant_1.DataType.Null) {
|
|
163
|
+
// this is valid to receive an empty array ith DataType.Null;
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
if (!checkValueRank(argDefinition, arg)) {
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
// istanbul ignore next
|
|
170
|
+
if (!argDataType) {
|
|
171
|
+
doDebug && debugLog(" cannot find dataType ", arg.dataType, (0, node_opcua_nodeid_1.resolveNodeId)(arg.dataType));
|
|
172
|
+
doDebug && debugLog(" arg = ", arg.toString());
|
|
173
|
+
doDebug && debugLog(" def =", argDefinition.toString());
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
// istanbul ignore next
|
|
177
|
+
if (doDebug) {
|
|
178
|
+
doDebug && debugLog(" checking argDefDataType ", argDefDataType.toString());
|
|
179
|
+
doDebug && debugLog(" checking argDataType ", argDataType.toString());
|
|
180
|
+
}
|
|
181
|
+
if (argDataType.nodeId.value === argDefDataType.nodeId.value) {
|
|
182
|
+
return true;
|
|
183
|
+
}
|
|
184
|
+
// check that dataType is of the same type (derived )
|
|
185
|
+
if (argDefDataType.isSubtypeOf(argDataType)) {
|
|
186
|
+
// like argDefDataType IntegerId and argDataType Uint32
|
|
187
|
+
return true;
|
|
188
|
+
}
|
|
189
|
+
if (argDataType.isSubtypeOf(argDefDataType)) {
|
|
190
|
+
// like argDefDataType BaseDataType and argDataType any Type
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
193
|
+
// special case for Enumeration
|
|
194
|
+
if (arg.dataType === node_opcua_variant_1.DataType.Int32) {
|
|
195
|
+
const enumDataType = addressSpace.findDataType((0, node_opcua_nodeid_1.coerceNodeId)(node_opcua_constants_1.DataTypeIds.Enumeration));
|
|
196
|
+
if (argDefDataType.isSubtypeOf(enumDataType)) {
|
|
197
|
+
return true;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
exports.isArgumentValid = isArgumentValid;
|
|
203
|
+
/**
|
|
204
|
+
* @method verifyArguments_ArgumentList
|
|
205
|
+
* @param addressSpace
|
|
206
|
+
* @param methodInputArguments
|
|
207
|
+
* @param inputArguments
|
|
208
|
+
* @return statusCode,inputArgumentResults
|
|
209
|
+
*/
|
|
210
|
+
function verifyArguments_ArgumentList(addressSpace, methodInputArguments, inputArguments) {
|
|
211
|
+
const inputArgumentResults = methodInputArguments.map((methodInputArgument, index) => {
|
|
212
|
+
const argument = inputArguments[index];
|
|
213
|
+
if (!argument) {
|
|
214
|
+
return node_opcua_status_code_1.StatusCodes.BadNoData;
|
|
215
|
+
}
|
|
216
|
+
else if (!isArgumentValid(addressSpace, methodInputArgument, argument)) {
|
|
217
|
+
return node_opcua_status_code_1.StatusCodes.BadTypeMismatch;
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
return node_opcua_status_code_1.StatusCodes.Good;
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
if (methodInputArguments.length > inputArguments.length) {
|
|
224
|
+
// istanbul ignore next
|
|
225
|
+
doDebug &&
|
|
226
|
+
debugLog("verifyArguments_ArgumentList " +
|
|
227
|
+
"\n The client did specify too many input arguments for the method. " +
|
|
228
|
+
"\n expected : " +
|
|
229
|
+
methodInputArguments.length +
|
|
230
|
+
"" +
|
|
231
|
+
"\n actual : " +
|
|
232
|
+
inputArguments.length);
|
|
233
|
+
return { inputArgumentResults, statusCode: node_opcua_status_code_1.StatusCodes.BadArgumentsMissing };
|
|
234
|
+
}
|
|
235
|
+
if (methodInputArguments.length < inputArguments.length) {
|
|
236
|
+
// istanbul ignore next
|
|
237
|
+
doDebug &&
|
|
238
|
+
debugLog(" verifyArguments_ArgumentList " +
|
|
239
|
+
"\n The client did not specify all of the input arguments for the method. " +
|
|
240
|
+
"\n expected : " +
|
|
241
|
+
methodInputArguments.length +
|
|
242
|
+
"" +
|
|
243
|
+
"\n actual : " +
|
|
244
|
+
inputArguments.length);
|
|
245
|
+
return { inputArgumentResults, statusCode: node_opcua_status_code_1.StatusCodes.BadTooManyArguments };
|
|
246
|
+
}
|
|
247
|
+
return {
|
|
248
|
+
inputArgumentResults,
|
|
249
|
+
statusCode: inputArgumentResults.includes(node_opcua_status_code_1.StatusCodes.BadTypeMismatch) || inputArgumentResults.includes(node_opcua_status_code_1.StatusCodes.BadOutOfRange)
|
|
250
|
+
? node_opcua_status_code_1.StatusCodes.BadInvalidArgument
|
|
251
|
+
: node_opcua_status_code_1.StatusCodes.Good
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
exports.verifyArguments_ArgumentList = verifyArguments_ArgumentList;
|
|
255
|
+
//# sourceMappingURL=argument_list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argument_list.js","sourceRoot":"","sources":["../../../source/helpers/argument_list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +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
|
+
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 {};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.callMethodHelper = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @module node-opcua-address-space
|
|
6
|
+
*/
|
|
7
|
+
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
8
|
+
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
9
|
+
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
10
|
+
const node_opcua_status_code_1 = require("node-opcua-status-code");
|
|
11
|
+
const argument_list_1 = require("./argument_list");
|
|
12
|
+
const resolve_opaque_on_address_space_1 = require("./resolve_opaque_on_address_space");
|
|
13
|
+
function callMethodHelper(context, addressSpace, callMethodRequest, callback) {
|
|
14
|
+
const objectId = callMethodRequest.objectId;
|
|
15
|
+
const methodId = callMethodRequest.methodId;
|
|
16
|
+
const inputArguments = callMethodRequest.inputArguments || [];
|
|
17
|
+
(0, node_opcua_assert_1.assert)(objectId instanceof node_opcua_nodeid_1.NodeId);
|
|
18
|
+
(0, node_opcua_assert_1.assert)(methodId instanceof node_opcua_nodeid_1.NodeId);
|
|
19
|
+
const object = addressSpace.findNode(objectId);
|
|
20
|
+
if (!object) {
|
|
21
|
+
return callback(null, { statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdUnknown });
|
|
22
|
+
}
|
|
23
|
+
if (object.nodeClass !== node_opcua_data_model_1.NodeClass.Object && object.nodeClass !== node_opcua_data_model_1.NodeClass.ObjectType) {
|
|
24
|
+
return callback(null, { statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdInvalid });
|
|
25
|
+
}
|
|
26
|
+
const methodObj = addressSpace.findNode(methodId);
|
|
27
|
+
if (!methodObj) {
|
|
28
|
+
return callback(null, { statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdUnknown });
|
|
29
|
+
}
|
|
30
|
+
if (methodObj.nodeClass !== node_opcua_data_model_1.NodeClass.Method) {
|
|
31
|
+
return callback(null, { statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdInvalid });
|
|
32
|
+
}
|
|
33
|
+
const response1 = (0, argument_list_1.getMethodDeclaration_ArgumentList)(addressSpace, objectId, methodId);
|
|
34
|
+
if (response1.statusCode.isNotGood()) {
|
|
35
|
+
return callback(null, { statusCode: response1.statusCode });
|
|
36
|
+
}
|
|
37
|
+
const methodDeclaration = response1.methodDeclaration;
|
|
38
|
+
// verify input Parameters
|
|
39
|
+
const methodInputArguments = methodDeclaration.getInputArguments();
|
|
40
|
+
const response = (0, argument_list_1.verifyArguments_ArgumentList)(addressSpace, methodInputArguments, inputArguments);
|
|
41
|
+
if (response.statusCode.isNotGood()) {
|
|
42
|
+
return callback(null, response);
|
|
43
|
+
}
|
|
44
|
+
(0, resolve_opaque_on_address_space_1.resolveOpaqueOnAddressSpace)(addressSpace, inputArguments)
|
|
45
|
+
.then(() => {
|
|
46
|
+
methodObj.execute(object, inputArguments, context, (err, callMethodResponse) => {
|
|
47
|
+
var _a;
|
|
48
|
+
/* istanbul ignore next */
|
|
49
|
+
if (err) {
|
|
50
|
+
return callback(err);
|
|
51
|
+
}
|
|
52
|
+
if (!callMethodResponse) {
|
|
53
|
+
return callback(new Error("internal Error"));
|
|
54
|
+
}
|
|
55
|
+
callMethodResponse.inputArgumentResults =
|
|
56
|
+
callMethodResponse.inputArgumentResults || response.inputArgumentResults || [];
|
|
57
|
+
(0, node_opcua_assert_1.assert)(callMethodResponse.statusCode);
|
|
58
|
+
if ((_a = callMethodResponse.statusCode) === null || _a === void 0 ? void 0 : _a.isGood()) {
|
|
59
|
+
(0, node_opcua_assert_1.assert)(Array.isArray(callMethodResponse.outputArguments));
|
|
60
|
+
}
|
|
61
|
+
(0, node_opcua_assert_1.assert)(Array.isArray(callMethodResponse.inputArgumentResults));
|
|
62
|
+
(0, node_opcua_assert_1.assert)(callMethodResponse.inputArgumentResults.length === methodInputArguments.length);
|
|
63
|
+
const outputArguments = callMethodResponse.outputArguments || [];
|
|
64
|
+
(0, resolve_opaque_on_address_space_1.resolveOpaqueOnAddressSpace)(addressSpace, outputArguments)
|
|
65
|
+
.then(() => callback(null, callMethodResponse))
|
|
66
|
+
.catch(callback);
|
|
67
|
+
});
|
|
68
|
+
})
|
|
69
|
+
.catch((err) => callback(err));
|
|
70
|
+
}
|
|
71
|
+
exports.callMethodHelper = callMethodHelper;
|
|
72
|
+
//# sourceMappingURL=call_helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call_helpers.js","sourceRoot":"","sources":["../../../source/helpers/call_helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Int64 } from "node-opcua-basic-types";
|
|
2
|
+
import { EnumValueType } from "node-opcua-types";
|
|
3
|
+
import { EnumValueTypeOptionsLike } from "../address_space_ts";
|
|
4
|
+
export declare function coerceEnumValues(enumValues: EnumValueTypeOptionsLike[] | {
|
|
5
|
+
[key: string]: number | Int64;
|
|
6
|
+
}): EnumValueType[];
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.coerceEnumValues = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @module node-opcua-address-space
|
|
6
|
+
*/
|
|
7
|
+
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
8
|
+
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
9
|
+
const node_opcua_types_1 = require("node-opcua-types");
|
|
10
|
+
function coerceEnumValues(enumValues) {
|
|
11
|
+
if (Array.isArray(enumValues)) {
|
|
12
|
+
//
|
|
13
|
+
return enumValues.map((en) => {
|
|
14
|
+
(0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(en, "value"));
|
|
15
|
+
(0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(en, "displayName"));
|
|
16
|
+
return new node_opcua_types_1.EnumValueType({
|
|
17
|
+
displayName: (0, node_opcua_data_model_1.coerceLocalizedText)(en.displayName),
|
|
18
|
+
value: en.value
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
return coerceEnumValues(Object.entries(enumValues).map((entrie) => {
|
|
24
|
+
const [key, value] = entrie;
|
|
25
|
+
return new node_opcua_types_1.EnumValueType({
|
|
26
|
+
description: (0, node_opcua_data_model_1.coerceLocalizedText)(key),
|
|
27
|
+
displayName: (0, node_opcua_data_model_1.coerceLocalizedText)(key),
|
|
28
|
+
value
|
|
29
|
+
});
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.coerceEnumValues = coerceEnumValues;
|
|
34
|
+
//# sourceMappingURL=coerce_enum_value.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coerce_enum_value.js","sourceRoot":"","sources":["../../../source/helpers/coerce_enum_value.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,yDAA2C;AAE3C,iEAA4D;AAC5D,uDAAiD;AAGjD,SAAgB,gBAAgB,CAAC,UAA0E;IACvG,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QAC3B,EAAE;QACF,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE;YAC9B,IAAA,0BAAM,EAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1D,IAAA,0BAAM,EAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;YAChE,OAAO,IAAI,gCAAa,CAAC;gBACrB,WAAW,EAAE,IAAA,2CAAmB,EAAC,EAAE,CAAC,WAAW,CAAC;gBAChD,KAAK,EAAE,EAAE,CAAC,KAAK;aAClB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;KACN;SAAM;QACH,OAAO,gBAAgB,CACnB,MAAM,CAAC,OAAO,CAAC,UAAsC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAuB,EAAE,EAAE;YACnF,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC;YAC5B,OAAO,IAAI,gCAAa,CAAC;gBACrB,WAAW,EAAE,IAAA,2CAAmB,EAAC,GAAG,CAAC;gBACrC,WAAW,EAAE,IAAA,2CAAmB,EAAC,GAAG,CAAC;gBACrC,KAAK;aACR,CAAC,CAAC;QACP,CAAC,CAAC,CACL,CAAC;KACL;AACL,CAAC;AAvBD,4CAuBC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { NodeIdLike } from "node-opcua-nodeid";
|
|
2
|
+
import { BrowseDescriptionOptions, ReferenceDescription } from "node-opcua-types";
|
|
3
|
+
import { IAddressSpace, BaseNode, UAReference } from "node-opcua-address-space-base";
|
|
4
|
+
export declare function referenceTypeToString(addressSpace: IAddressSpace, referenceTypeId: NodeIdLike | null): string;
|
|
5
|
+
export declare function dumpReferenceDescription(addressSpace: IAddressSpace, referenceDescription: ReferenceDescription): void;
|
|
6
|
+
export declare function dumpReferenceDescriptions(addressSpace: IAddressSpace, referenceDescriptions: ReferenceDescription[]): void;
|
|
7
|
+
export declare function dumpBrowseDescription(node: BaseNode, _browseDescription: BrowseDescriptionOptions): void;
|
|
8
|
+
/**
|
|
9
|
+
* @method dumpReferences
|
|
10
|
+
* @param addressSpace {IAddressSpace}
|
|
11
|
+
* @param references {Array<Reference>|null}
|
|
12
|
+
* @static
|
|
13
|
+
*/
|
|
14
|
+
export declare function dumpReferences(addressSpace: IAddressSpace, references: UAReference[]): void;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dumpReferences = exports.dumpBrowseDescription = exports.dumpReferenceDescriptions = exports.dumpReferenceDescription = exports.referenceTypeToString = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @module node-opcua-address-space
|
|
6
|
+
*/
|
|
7
|
+
// tslint:disable:no-console
|
|
8
|
+
const chalk = require("chalk");
|
|
9
|
+
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
10
|
+
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
11
|
+
const node_opcua_types_1 = require("node-opcua-types");
|
|
12
|
+
const reference_impl_1 = require("../../src/reference_impl");
|
|
13
|
+
function referenceTypeToString(addressSpace, referenceTypeId) {
|
|
14
|
+
// istanbul ignore next
|
|
15
|
+
if (!referenceTypeId) {
|
|
16
|
+
return "<null> ";
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
const referenceType = addressSpace.findNode(referenceTypeId);
|
|
20
|
+
return referenceTypeId.toString() + " " + referenceType.browseName.toString() + "/" + referenceType.inverseName.text;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.referenceTypeToString = referenceTypeToString;
|
|
24
|
+
function nodeIdInfo(addressSpace, nodeId) {
|
|
25
|
+
const obj = addressSpace.findNode(nodeId);
|
|
26
|
+
const name = obj ? obj.browseName.toString() : " <????>";
|
|
27
|
+
return nodeId.toString() + " [ " + name + " ]";
|
|
28
|
+
}
|
|
29
|
+
function dumpReferenceDescription(addressSpace, referenceDescription) {
|
|
30
|
+
(0, node_opcua_assert_1.assert)(referenceDescription.referenceTypeId); // must be known;
|
|
31
|
+
console.log(chalk.red("referenceDescription"));
|
|
32
|
+
console.log(" referenceTypeId : ", referenceTypeToString(addressSpace, referenceDescription.referenceTypeId));
|
|
33
|
+
console.log(" isForward : ", referenceDescription.isForward ? "true" : "false");
|
|
34
|
+
console.log(" nodeId : ", nodeIdInfo(addressSpace, referenceDescription.nodeId));
|
|
35
|
+
console.log(" browseName : ", referenceDescription.browseName.toString());
|
|
36
|
+
console.log(" nodeClass : ", referenceDescription.nodeClass.toString());
|
|
37
|
+
console.log(" typeDefinition : ", nodeIdInfo(addressSpace, referenceDescription.typeDefinition));
|
|
38
|
+
}
|
|
39
|
+
exports.dumpReferenceDescription = dumpReferenceDescription;
|
|
40
|
+
function dumpReferenceDescriptions(addressSpace, referenceDescriptions) {
|
|
41
|
+
referenceDescriptions.forEach((r) => dumpReferenceDescription(addressSpace, r));
|
|
42
|
+
}
|
|
43
|
+
exports.dumpReferenceDescriptions = dumpReferenceDescriptions;
|
|
44
|
+
function dumpBrowseDescription(node, _browseDescription) {
|
|
45
|
+
const browseDescription = new node_opcua_types_1.BrowseDescription(_browseDescription);
|
|
46
|
+
const addressSpace = node.addressSpace;
|
|
47
|
+
console.log(" Browse Node :");
|
|
48
|
+
if (browseDescription.nodeId) {
|
|
49
|
+
console.log(" nodeId : ", chalk.cyan(browseDescription.nodeId.toString()));
|
|
50
|
+
}
|
|
51
|
+
console.log(" nodeId : ", chalk.cyan(node.browseName.toString()), "(", node.nodeId.toString(), ")");
|
|
52
|
+
console.log(" referenceTypeId :", referenceTypeToString(addressSpace, browseDescription.referenceTypeId));
|
|
53
|
+
console.log(" browseDirection :", chalk.cyan(node_opcua_data_model_1.BrowseDirection[browseDescription.browseDirection]));
|
|
54
|
+
console.log(" includeSubType :", browseDescription.includeSubtypes ? "true" : "false");
|
|
55
|
+
console.log(" nodeClassMask :", browseDescription.nodeClassMask);
|
|
56
|
+
console.log(" resultMask :", browseDescription.resultMask);
|
|
57
|
+
}
|
|
58
|
+
exports.dumpBrowseDescription = dumpBrowseDescription;
|
|
59
|
+
/**
|
|
60
|
+
* @method dumpReferences
|
|
61
|
+
* @param addressSpace {IAddressSpace}
|
|
62
|
+
* @param references {Array<Reference>|null}
|
|
63
|
+
* @static
|
|
64
|
+
*/
|
|
65
|
+
function dumpReferences(addressSpace, references) {
|
|
66
|
+
(0, node_opcua_assert_1.assert)(addressSpace);
|
|
67
|
+
for (const reference of references) {
|
|
68
|
+
const referenceType = (0, reference_impl_1.resolveReferenceType)(addressSpace, reference);
|
|
69
|
+
if (!referenceType) {
|
|
70
|
+
// unknown type ... this may happen when the address space is not fully build
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const dir = reference.isForward ? "(=>)" : "(<-)";
|
|
74
|
+
const objectName = nodeIdInfo(addressSpace, reference.nodeId);
|
|
75
|
+
console.log(" referenceType : ", dir, referenceType ? referenceType.browseName.toString() : reference.referenceType.toString(), " ", objectName);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.dumpReferences = dumpReferences;
|
|
79
|
+
//# sourceMappingURL=dump_tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dump_tools.js","sourceRoot":"","sources":["../../../source/helpers/dump_tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseNode } from "node-opcua-address-space-base";
|
|
2
|
+
/**
|
|
3
|
+
* this method install the access right restriction on the given node and its children
|
|
4
|
+
* values will only be available to user with role Administrator or supervisor and
|
|
5
|
+
* with a signed and encrypted channel.
|
|
6
|
+
*
|
|
7
|
+
* @param node the node which permissions are to be adjusted
|
|
8
|
+
*/
|
|
9
|
+
export declare function ensureObjectIsSecure(node: BaseNode): void;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ensureObjectIsSecure = void 0;
|
|
4
|
+
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
5
|
+
const node_opcua_types_1 = require("node-opcua-types");
|
|
6
|
+
const session_context_1 = require("../session_context");
|
|
7
|
+
function isChannelSecure(channel) {
|
|
8
|
+
if (channel.securityMode === node_opcua_types_1.MessageSecurityMode.SignAndEncrypt) {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
function newIsUserReadable(context) {
|
|
14
|
+
if (context) {
|
|
15
|
+
if (!context.session) {
|
|
16
|
+
// console.log(" context has no session", context);
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
if (!context.session.channel) {
|
|
20
|
+
// console.log(" context has no channel", context);
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
if (!isChannelSecure(context.session.channel)) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* make sure that the given ia node can only be read
|
|
32
|
+
* by Administrator user on a encrypted channel
|
|
33
|
+
* @param node
|
|
34
|
+
|
|
35
|
+
*/
|
|
36
|
+
const restrictedPermissions = [
|
|
37
|
+
{ roleId: session_context_1.WellKnownRoles.SecurityAdmin, permissions: node_opcua_data_model_1.allPermissions },
|
|
38
|
+
{ roleId: session_context_1.WellKnownRoles.ConfigureAdmin, permissions: node_opcua_data_model_1.allPermissions },
|
|
39
|
+
{ roleId: session_context_1.WellKnownRoles.Supervisor, permissions: node_opcua_data_model_1.allPermissions },
|
|
40
|
+
{ roleId: session_context_1.WellKnownRoles.Operator, permissions: (0, node_opcua_data_model_1.makePermissionFlag)("Browse") },
|
|
41
|
+
{ roleId: session_context_1.WellKnownRoles.Engineer, permissions: (0, node_opcua_data_model_1.makePermissionFlag)("Browse") },
|
|
42
|
+
{ roleId: session_context_1.WellKnownRoles.Observer, permissions: (0, node_opcua_data_model_1.makePermissionFlag)("Browse") }
|
|
43
|
+
/*
|
|
44
|
+
{ roleId: WellKnownRoles.Anonymous, permissions: makePermissionFlag("Browse") },
|
|
45
|
+
{ roleId: WellKnownRoles.AuthenticatedUser, permissions: makePermissionFlag("Browse") },
|
|
46
|
+
*/
|
|
47
|
+
];
|
|
48
|
+
const restrictedAccessFlag = (0, node_opcua_data_model_1.makeAccessRestrictionsFlag)("SigningRequired | EncryptionRequired");
|
|
49
|
+
/**
|
|
50
|
+
* this method install the access right restriction on the given node and its children
|
|
51
|
+
* values will only be available to user with role Administrator or supervisor and
|
|
52
|
+
* with a signed and encrypted channel.
|
|
53
|
+
*
|
|
54
|
+
* @param node the node which permissions are to be adjusted
|
|
55
|
+
*/
|
|
56
|
+
function ensureObjectIsSecure(node) {
|
|
57
|
+
node.setAccessRestrictions(restrictedAccessFlag);
|
|
58
|
+
if (node.nodeClass === node_opcua_data_model_1.NodeClass.Variable) {
|
|
59
|
+
// replaceMethod(node, "isUserReadable", newIsUserReadable);
|
|
60
|
+
const variable = node;
|
|
61
|
+
variable.setRolePermissions(restrictedPermissions);
|
|
62
|
+
}
|
|
63
|
+
if (node.nodeClass === node_opcua_data_model_1.NodeClass.Method) {
|
|
64
|
+
const method = node;
|
|
65
|
+
method.setRolePermissions(restrictedPermissions);
|
|
66
|
+
}
|
|
67
|
+
if (node.nodeClass === node_opcua_data_model_1.NodeClass.Object) {
|
|
68
|
+
const object = node;
|
|
69
|
+
object.setRolePermissions(restrictedPermissions);
|
|
70
|
+
}
|
|
71
|
+
const children = node.findReferencesExAsObject("Aggregates", node_opcua_data_model_1.BrowseDirection.Forward);
|
|
72
|
+
for (const child of children) {
|
|
73
|
+
ensureObjectIsSecure(child);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.ensureObjectIsSecure = ensureObjectIsSecure;
|
|
77
|
+
//# sourceMappingURL=ensure_secure_access.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensure_secure_access.js","sourceRoot":"","sources":["../../../source/helpers/ensure_secure_access.ts"],"names":[],"mappings":";;;AAAA,iEAAmI;AACnI,uDAAuD;AAEvD,wDAAoD;AAEpD,SAAS,eAAe,CAAC,OAAqB;IAC1C,IAAI,OAAO,CAAC,YAAY,KAAK,sCAAmB,CAAC,cAAc,EAAE;QAC7D,OAAO,IAAI,CAAC;KACf;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CAAiB,OAAwB;IAC/D,IAAI,OAAO,EAAE;QACT,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YAClB,mDAAmD;YACnD,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE;YAC1B,mDAAmD;YACnD,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC3C,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;KACf;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;EAKE;AACF,MAAM,qBAAqB,GAAG;IAC1B,EAAE,MAAM,EAAE,gCAAc,CAAC,aAAa,EAAE,WAAW,EAAE,sCAAc,EAAE;IACrE,EAAE,MAAM,EAAE,gCAAc,CAAC,cAAc,EAAE,WAAW,EAAE,sCAAc,EAAE;IACtE,EAAE,MAAM,EAAE,gCAAc,CAAC,UAAU,EAAE,WAAW,EAAE,sCAAc,EAAE;IAClE,EAAE,MAAM,EAAE,gCAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAA,0CAAkB,EAAC,QAAQ,CAAC,EAAE;IAC9E,EAAE,MAAM,EAAE,gCAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAA,0CAAkB,EAAC,QAAQ,CAAC,EAAE;IAC9E,EAAE,MAAM,EAAE,gCAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAA,0CAAkB,EAAC,QAAQ,CAAC,EAAE;IAC9E;;;EAGF;CACD,CAAC;AACF,MAAM,oBAAoB,GAAG,IAAA,kDAA0B,EAAC,sCAAsC,CAAC,CAAC;AAChG;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAC,IAAc;IAC/C,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC,SAAS,KAAK,iCAAS,CAAC,QAAQ,EAAE;QACvC,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,IAAkB,CAAC;QACpC,QAAQ,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;KACtD;IACD,IAAI,IAAI,CAAC,SAAS,KAAK,iCAAS,CAAC,MAAM,EAAE;QACrC,MAAM,MAAM,GAAG,IAAgB,CAAC;QAChC,MAAM,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;KACpD;IACD,IAAI,IAAI,CAAC,SAAS,KAAK,iCAAS,CAAC,MAAM,EAAE;QACrC,MAAM,MAAM,GAAG,IAAgB,CAAC;QAChC,MAAM,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;KACpD;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,uCAAe,CAAC,OAAO,CAAC,CAAC;IACtF,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;QAC1B,oBAAoB,CAAC,KAAK,CAAC,CAAC;KAC/B;AACL,CAAC;AAnBD,oDAmBC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* transform optional into a map
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```javascript
|
|
6
|
+
* const optionals = [ "A", "B", "C.D" ];
|
|
7
|
+
*
|
|
8
|
+
* const map = makeOptionalsMap(optionals);
|
|
9
|
+
* const map = {
|
|
10
|
+
* A: {}
|
|
11
|
+
* B: {}
|
|
12
|
+
* C: { D: {} }
|
|
13
|
+
* };
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
export interface OptionalMap {
|
|
19
|
+
[key: string]: OptionalMap;
|
|
20
|
+
}
|
|
21
|
+
export declare function makeOptionalsMap(optionals?: string[] | null): OptionalMap;
|