node-opcua-address-space 2.76.1 → 2.76.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/source/address_space_ts.d.ts +118 -118
- package/dist/source/address_space_ts.js +17 -17
- package/dist/source/continuation_points/continuation_point_manager.d.ts +32 -32
- package/dist/source/continuation_points/continuation_point_manager.js +195 -195
- package/dist/source/helpers/adjust_browse_direction.d.ts +5 -5
- package/dist/source/helpers/adjust_browse_direction.js +11 -11
- package/dist/source/helpers/argument_list.d.ts +33 -33
- package/dist/source/helpers/argument_list.js +258 -258
- package/dist/source/helpers/call_helpers.d.ts +6 -6
- package/dist/source/helpers/call_helpers.js +70 -70
- package/dist/source/helpers/check_event_clause.d.ts +17 -0
- package/dist/source/helpers/check_event_clause.js +53 -0
- package/dist/source/helpers/check_event_clause.js.map +1 -0
- package/dist/source/helpers/coerce_enum_value.d.ts +6 -6
- package/dist/source/helpers/coerce_enum_value.js +33 -33
- package/dist/source/helpers/dump_tools.d.ts +14 -14
- package/dist/source/helpers/dump_tools.js +78 -78
- package/dist/source/helpers/ensure_secure_access.d.ts +9 -9
- package/dist/source/helpers/ensure_secure_access.js +76 -76
- package/dist/source/helpers/make_optionals_map.d.ts +21 -21
- package/dist/source/helpers/make_optionals_map.js +29 -29
- package/dist/source/helpers/multiform_func.d.ts +11 -11
- package/dist/source/helpers/multiform_func.js +75 -75
- package/dist/source/helpers/resolve_opaque_on_address_space.d.ts +3 -3
- package/dist/source/helpers/resolve_opaque_on_address_space.js +36 -36
- package/dist/source/index.d.ts +56 -56
- package/dist/source/index.js +83 -83
- package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +19 -19
- package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.d.ts +193 -193
- package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.d.ts +12 -12
- package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.d.ts +10 -10
- package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +7 -7
- package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts +7 -7
- package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +4 -4
- package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +4 -4
- package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +9 -9
- package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +4 -4
- package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +4 -4
- package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +20 -20
- package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +23 -23
- package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +32 -32
- package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +19 -19
- package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +42 -42
- package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +7 -7
- package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js +25 -25
- package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +5 -5
- package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +20 -20
- package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +26 -26
- package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +8 -8
- package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js +2 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +10 -10
- package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js +2 -2
- package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +21 -21
- package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js +2 -2
- package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +24 -24
- package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js +2 -2
- package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +12 -12
- package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js +2 -2
- package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +8 -8
- package/dist/source/interfaces/data_access/ua_y_array_item_ex.js +2 -2
- package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -12
- package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +2 -2
- package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -49
- package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js +2 -2
- package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -11
- package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js +2 -2
- package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +30 -30
- package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.js +2 -2
- package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +222 -222
- package/dist/source/interfaces/state_machine/ua_state_machine_type.js +2 -2
- package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +6 -6
- package/dist/source/interfaces/state_machine/ua_transition_ex.js +2 -2
- package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +8 -8
- package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +2 -2
- package/dist/source/loader/decode_xml_extension_object.d.ts +6 -6
- package/dist/source/loader/decode_xml_extension_object.js +71 -71
- package/dist/source/loader/ensure_datatype_extracted.d.ts +5 -5
- package/dist/source/loader/ensure_datatype_extracted.js +45 -45
- package/dist/source/loader/generateAddressSpaceRaw.d.ts +10 -10
- package/dist/source/loader/generateAddressSpaceRaw.js +45 -45
- package/dist/source/loader/load_nodeset2.d.ts +16 -16
- package/dist/source/loader/load_nodeset2.js +1461 -1461
- package/dist/source/loader/make_semver_compatible.d.ts +6 -6
- package/dist/source/loader/make_semver_compatible.js +25 -25
- package/dist/source/loader/make_xml_extension_object_parser.d.ts +28 -28
- package/dist/source/loader/make_xml_extension_object_parser.js +325 -325
- package/dist/source/loader/namespace_post_step.d.ts +10 -10
- package/dist/source/loader/namespace_post_step.js +61 -61
- package/dist/source/loader/register_node_promoter.d.ts +2 -2
- package/dist/source/loader/register_node_promoter.js +9 -9
- package/dist/source/namespace.d.ts +6 -6
- package/dist/source/namespace.js +2 -2
- package/dist/source/namespace_alarm_and_condition.d.ts +32 -32
- package/dist/source/namespace_alarm_and_condition.js +2 -2
- package/dist/source/namespace_data_access.d.ts +42 -42
- package/dist/source/namespace_data_access.js +2 -2
- package/dist/source/namespace_machine_state.d.ts +7 -7
- package/dist/source/namespace_machine_state.js +2 -2
- package/dist/source/pseudo_session.d.ts +55 -55
- package/dist/source/pseudo_session.js +203 -203
- package/dist/source/session_context.d.ts +111 -111
- package/dist/source/session_context.js +265 -265
- package/dist/source/set_namespace_meta_data.d.ts +2 -2
- package/dist/source/set_namespace_meta_data.js +59 -59
- package/dist/source/ua_root_folder.d.ts +9 -9
- package/dist/source/ua_root_folder.js +2 -2
- package/dist/source/ua_two_state_variable_ex.d.ts +23 -23
- package/dist/source/ua_two_state_variable_ex.js +2 -2
- package/dist/source/xml_writer.d.ts +9 -9
- package/dist/source/xml_writer.js +2 -2
- package/dist/src/address_space.d.ts +392 -392
- package/dist/src/address_space.js +1392 -1392
- package/dist/src/address_space_change_event_tools.d.ts +6 -6
- package/dist/src/address_space_change_event_tools.js +149 -149
- package/dist/src/address_space_private.d.ts +43 -43
- package/dist/src/address_space_private.js +2 -2
- package/dist/src/alarms_and_conditions/check_where_clause.d.ts +4 -0
- package/dist/src/alarms_and_conditions/check_where_clause.js +110 -0
- package/dist/src/alarms_and_conditions/check_where_clause.js.map +1 -0
- package/dist/src/alarms_and_conditions/condition.d.ts +5 -5
- package/dist/src/alarms_and_conditions/condition.js +78 -78
- package/dist/src/alarms_and_conditions/condition_info.d.ts +27 -0
- package/dist/src/alarms_and_conditions/condition_info.js +55 -0
- package/dist/src/alarms_and_conditions/condition_info.js.map +1 -0
- package/dist/src/alarms_and_conditions/condition_info_impl.d.ts +26 -26
- package/dist/src/alarms_and_conditions/condition_info_impl.js +54 -54
- package/dist/src/alarms_and_conditions/condition_snapshot.d.ts +233 -0
- package/dist/src/alarms_and_conditions/condition_snapshot.js +667 -0
- package/dist/src/alarms_and_conditions/condition_snapshot.js.map +1 -0
- package/dist/src/alarms_and_conditions/condition_snapshot_impl.d.ts +222 -222
- package/dist/src/alarms_and_conditions/condition_snapshot_impl.js +657 -657
- package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +9 -9
- package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +61 -61
- package/dist/src/alarms_and_conditions/extract_event_fields.d.ts +10 -0
- package/dist/src/alarms_and_conditions/extract_event_fields.js +90 -0
- package/dist/src/alarms_and_conditions/extract_event_fields.js.map +1 -0
- package/dist/src/alarms_and_conditions/index.d.ts +16 -16
- package/dist/src/alarms_and_conditions/index.js +32 -32
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +44 -44
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -244
- package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +93 -93
- package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +419 -419
- package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +26 -26
- package/dist/src/alarms_and_conditions/ua_base_event_impl.js +38 -38
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +44 -44
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +183 -183
- package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +153 -153
- package/dist/src/alarms_and_conditions/ua_condition_impl.js +1028 -1028
- package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +14 -14
- package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +34 -34
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +24 -24
- package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +56 -56
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +11 -11
- package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +11 -11
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +23 -23
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +86 -86
- package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +11 -11
- package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +7 -7
- package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +79 -79
- package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +250 -250
- package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +24 -24
- package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +50 -50
- package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +19 -19
- package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +162 -162
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +46 -46
- package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +166 -166
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +18 -18
- package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +17 -17
- package/dist/src/apply_condition_refresh.d.ts +6 -6
- package/dist/src/apply_condition_refresh.js +27 -27
- package/dist/src/base_node_impl.d.ts +281 -281
- package/dist/src/base_node_impl.js +1395 -1395
- package/dist/src/base_node_private.d.ts +61 -61
- package/dist/src/base_node_private.js +705 -705
- package/dist/src/data_access/add_dataItem_stuff.d.ts +11 -11
- package/dist/src/data_access/add_dataItem_stuff.js +61 -61
- package/dist/src/data_access/check_variant_compatibility_ua_analog_item.d.ts +1 -1
- package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js +34 -34
- package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +32 -32
- package/dist/src/data_access/ua_multistate_discrete_impl.js +130 -130
- package/dist/src/data_access/ua_multistate_value_discrete.d.ts +51 -0
- package/dist/src/data_access/ua_multistate_value_discrete.js +250 -0
- package/dist/src/data_access/ua_multistate_value_discrete.js.map +1 -0
- package/dist/src/data_access/ua_multistate_value_discrete_impl.d.ts +51 -51
- package/dist/src/data_access/ua_multistate_value_discrete_impl.js +249 -249
- package/dist/src/data_access/ua_two_state_discrete.d.ts +25 -0
- package/dist/src/data_access/ua_two_state_discrete.js +154 -0
- package/dist/src/data_access/ua_two_state_discrete.js.map +1 -0
- package/dist/src/data_access/ua_two_state_discrete_impl.d.ts +25 -25
- package/dist/src/data_access/ua_two_state_discrete_impl.js +153 -153
- package/dist/src/event_data.d.ts +34 -34
- package/dist/src/event_data.js +64 -64
- package/dist/src/extension_object_array_node.d.ts +61 -61
- package/dist/src/extension_object_array_node.js +276 -276
- package/dist/src/historical_access/address_space_historical_data_node.d.ts +26 -26
- package/dist/src/historical_access/address_space_historical_data_node.js +630 -630
- package/dist/src/index_current.d.ts +43 -43
- package/dist/src/index_current.js +74 -74
- package/dist/src/namespace_impl.d.ts +461 -461
- package/dist/src/namespace_impl.js +1732 -1732
- package/dist/src/namespace_private.d.ts +21 -21
- package/dist/src/namespace_private.js +32 -32
- package/dist/src/nodeid_manager.d.ts +36 -36
- package/dist/src/nodeid_manager.js +197 -197
- package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +2 -2
- package/dist/src/nodeset_tools/adjust_namespace_array.js +13 -13
- package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +2 -2
- package/dist/src/nodeset_tools/construct_namespace_dependency.js +83 -83
- package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +2 -2
- package/dist/src/nodeset_tools/nodeset_to_xml.js +1155 -1155
- package/dist/src/nodeset_tools/typedictionary_to_xml.d.ts +2 -2
- package/dist/src/nodeset_tools/typedictionary_to_xml.js +154 -154
- package/dist/src/reference_impl.d.ts +43 -43
- package/dist/src/reference_impl.js +139 -139
- package/dist/src/role_permissions.d.ts +2 -2
- package/dist/src/role_permissions.js +10 -10
- package/dist/src/state_machine/finite_state_machine.d.ts +67 -67
- package/dist/src/state_machine/finite_state_machine.js +353 -353
- package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +38 -38
- package/dist/src/state_machine/ua_shelving_state_machine_ex.js +250 -250
- package/dist/src/state_machine/ua_two_state_variable.d.ts +61 -61
- package/dist/src/state_machine/ua_two_state_variable.js +331 -331
- package/dist/src/tool_isSupertypeOf.d.ts +17 -17
- package/dist/src/tool_isSupertypeOf.js +108 -108
- package/dist/src/ua_condition_type.d.ts +8 -8
- package/dist/src/ua_condition_type.js +2 -2
- package/dist/src/ua_data_type_impl.d.ts +93 -93
- package/dist/src/ua_data_type_impl.js +371 -371
- package/dist/src/ua_method_impl.d.ts +41 -41
- package/dist/src/ua_method_impl.js +208 -208
- package/dist/src/ua_object_impl.d.ts +35 -35
- package/dist/src/ua_object_impl.js +161 -161
- package/dist/src/ua_object_type_impl.d.ts +48 -48
- package/dist/src/ua_object_type_impl.js +124 -124
- package/dist/src/ua_reference_type_impl.d.ts +43 -43
- package/dist/src/ua_reference_type_impl.js +139 -139
- package/dist/src/ua_variable_impl.d.ts +351 -351
- package/dist/src/ua_variable_impl.js +1604 -1604
- package/dist/src/ua_variable_impl_ext_obj.d.ts +17 -17
- package/dist/src/ua_variable_impl_ext_obj.js +437 -437
- package/dist/src/ua_variable_type_impl.d.ts +62 -62
- package/dist/src/ua_variable_type_impl.js +570 -570
- package/dist/src/ua_view_impl.d.ts +19 -19
- package/dist/src/ua_view_impl.js +43 -43
- package/distHelpers/add_event_generator_object.d.ts +3 -3
- package/distHelpers/add_event_generator_object.js +64 -64
- package/distHelpers/alarms_and_conditions_demo.d.ts +9 -9
- package/distHelpers/alarms_and_conditions_demo.js +115 -115
- package/distHelpers/assertHasMatchingReference.d.ts +19 -19
- package/distHelpers/assertHasMatchingReference.js +40 -40
- package/distHelpers/boiler_system.d.ts +113 -113
- package/distHelpers/boiler_system.js +395 -395
- package/distHelpers/create_minimalist_address_space_nodeset.d.ts +5 -5
- package/distHelpers/create_minimalist_address_space_nodeset.js +171 -171
- package/distHelpers/date_utils.d.ts +3 -3
- package/distHelpers/date_utils.js +9 -9
- package/distHelpers/dump_statemachine.js +127 -127
- package/distHelpers/get_address_space_fixture.d.ts +1 -1
- package/distHelpers/get_address_space_fixture.js +30 -30
- package/distHelpers/get_mini_address_space.d.ts +7 -7
- package/distHelpers/get_mini_address_space.js +36 -36
- package/distHelpers/index.d.ts +12 -12
- package/distHelpers/index.js +28 -28
- package/distHelpers/mock_session.d.ts +14 -14
- package/distHelpers/mock_session.js +25 -25
- package/distNodeJS/generate_address_space.d.ts +4 -4
- package/distNodeJS/generate_address_space.js +41 -41
- package/distNodeJS/index.d.ts +1 -1
- package/distNodeJS/index.js +17 -17
- package/package.json +36 -35
|
@@ -1,204 +1,204 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PseudoSession = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* @module node-opcua-address-space
|
|
6
|
-
*/
|
|
7
|
-
const util_1 = require("util");
|
|
8
|
-
const async = require("async");
|
|
9
|
-
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
10
|
-
const node_opcua_data_value_1 = require("node-opcua-data-value");
|
|
11
|
-
const node_opcua_debug_1 = require("node-opcua-debug");
|
|
12
|
-
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
13
|
-
const node_opcua_pseudo_session_1 = require("node-opcua-pseudo-session");
|
|
14
|
-
const node_opcua_service_browse_1 = require("node-opcua-service-browse");
|
|
15
|
-
const node_opcua_service_call_1 = require("node-opcua-service-call");
|
|
16
|
-
const node_opcua_status_code_1 = require("node-opcua-status-code");
|
|
17
|
-
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
18
|
-
const node_opcua_basic_types_1 = require("node-opcua-basic-types");
|
|
19
|
-
const continuation_point_manager_1 = require("./continuation_points/continuation_point_manager");
|
|
20
|
-
const call_helpers_1 = require("./helpers/call_helpers");
|
|
21
|
-
const session_context_1 = require("./session_context");
|
|
22
|
-
const errorLog = (0, node_opcua_debug_1.make_errorLog)("PseudoSession");
|
|
23
|
-
/**
|
|
24
|
-
* Pseudo session is an helper object that exposes the same async methods
|
|
25
|
-
* than the ClientSession. It can be used on a server address space.
|
|
26
|
-
*
|
|
27
|
-
* Code reused !
|
|
28
|
-
* The primary benefit of this object is that its makes advanced OPCUA
|
|
29
|
-
* operations that uses browse, translate, read, write etc similar
|
|
30
|
-
* whether we work inside a server or through a client session.
|
|
31
|
-
*
|
|
32
|
-
*/
|
|
33
|
-
class PseudoSession {
|
|
34
|
-
constructor(addressSpace, context) {
|
|
35
|
-
this.requestedMaxReferencesPerNode = 0;
|
|
36
|
-
this._sessionId = new node_opcua_nodeid_1.NodeId(node_opcua_nodeid_1.NodeIdType.GUID, (0, node_opcua_basic_types_1.randomGuid)());
|
|
37
|
-
this.addressSpace = addressSpace;
|
|
38
|
-
this.context = context || session_context_1.SessionContext.defaultContext;
|
|
39
|
-
this.continuationPointManager = new continuation_point_manager_1.ContinuationPointManager();
|
|
40
|
-
}
|
|
41
|
-
getSessionId() {
|
|
42
|
-
return this._sessionId;
|
|
43
|
-
}
|
|
44
|
-
browse(nodesToBrowse, callback) {
|
|
45
|
-
setImmediate(() => {
|
|
46
|
-
const isArray = Array.isArray(nodesToBrowse);
|
|
47
|
-
if (!isArray) {
|
|
48
|
-
nodesToBrowse = [nodesToBrowse];
|
|
49
|
-
}
|
|
50
|
-
let results = [];
|
|
51
|
-
for (const browseDescription of nodesToBrowse) {
|
|
52
|
-
browseDescription.referenceTypeId = (0, node_opcua_nodeid_1.resolveNodeId)(browseDescription.referenceTypeId);
|
|
53
|
-
const _browseDescription = browseDescription instanceof node_opcua_service_browse_1.BrowseDescription ? browseDescription : new node_opcua_service_browse_1.BrowseDescription(browseDescription);
|
|
54
|
-
const nodeId = (0, node_opcua_nodeid_1.resolveNodeId)(_browseDescription.nodeId);
|
|
55
|
-
const r = this.addressSpace.browseSingleNode(nodeId, _browseDescription, this.context);
|
|
56
|
-
results.push(r);
|
|
57
|
-
}
|
|
58
|
-
// handle continuation points
|
|
59
|
-
results = results.map((result, index) => {
|
|
60
|
-
(0, node_opcua_assert_1.assert)(!result.continuationPoint);
|
|
61
|
-
const r = this.continuationPointManager.registerReferences(this.requestedMaxReferencesPerNode, result.references || [], { continuationPoint: null, index });
|
|
62
|
-
let { statusCode } = r;
|
|
63
|
-
const { continuationPoint, values } = r;
|
|
64
|
-
(0, node_opcua_assert_1.assert)(statusCode === node_opcua_status_code_1.StatusCodes.Good || statusCode === node_opcua_status_code_1.StatusCodes.GoodNoData);
|
|
65
|
-
statusCode = result.statusCode;
|
|
66
|
-
return new node_opcua_service_browse_1.BrowseResult({
|
|
67
|
-
statusCode,
|
|
68
|
-
continuationPoint,
|
|
69
|
-
references: values
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
callback(null, isArray ? results : results[0]);
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
read(nodesToRead, callback) {
|
|
76
|
-
const isArray = Array.isArray(nodesToRead);
|
|
77
|
-
if (!isArray) {
|
|
78
|
-
nodesToRead = [nodesToRead];
|
|
79
|
-
}
|
|
80
|
-
const _nodesToRead = nodesToRead;
|
|
81
|
-
const context = this.context;
|
|
82
|
-
setImmediate(() => {
|
|
83
|
-
async.map(_nodesToRead, (nodeToRead, innerCallback) => {
|
|
84
|
-
const obj = this.addressSpace.findNode(nodeToRead.nodeId);
|
|
85
|
-
if (!obj || obj.nodeClass !== node_opcua_data_model_1.NodeClass.Variable || nodeToRead.attributeId !== node_opcua_data_model_1.AttributeIds.Value) {
|
|
86
|
-
return innerCallback();
|
|
87
|
-
}
|
|
88
|
-
obj.readValueAsync(context, innerCallback);
|
|
89
|
-
}, (err) => {
|
|
90
|
-
const dataValues = _nodesToRead.map((nodeToRead) => {
|
|
91
|
-
(0, node_opcua_assert_1.assert)(!!nodeToRead.nodeId, "expecting a nodeId");
|
|
92
|
-
(0, node_opcua_assert_1.assert)(!!nodeToRead.attributeId, "expecting a attributeId");
|
|
93
|
-
const nodeId = nodeToRead.nodeId;
|
|
94
|
-
const attributeId = nodeToRead.attributeId;
|
|
95
|
-
const indexRange = nodeToRead.indexRange;
|
|
96
|
-
const dataEncoding = nodeToRead.dataEncoding;
|
|
97
|
-
const obj = this.addressSpace.findNode(nodeId);
|
|
98
|
-
if (!obj) {
|
|
99
|
-
return new node_opcua_data_value_1.DataValue({ statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdUnknown });
|
|
100
|
-
}
|
|
101
|
-
const context = this.context;
|
|
102
|
-
const dataValue = obj.readAttribute(context, attributeId, indexRange, dataEncoding);
|
|
103
|
-
return dataValue;
|
|
104
|
-
});
|
|
105
|
-
callback(null, isArray ? dataValues : dataValues[0]);
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
browseNext(continuationPoints, releaseContinuationPoints, callback) {
|
|
110
|
-
setImmediate(() => {
|
|
111
|
-
if (continuationPoints instanceof Buffer) {
|
|
112
|
-
return this.browseNext([continuationPoints], releaseContinuationPoints, (err, _results) => {
|
|
113
|
-
if (err) {
|
|
114
|
-
return callback(err);
|
|
115
|
-
}
|
|
116
|
-
callback(null, _results[0]);
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
const results = continuationPoints
|
|
120
|
-
.map((continuationPoint, index) => {
|
|
121
|
-
return this.continuationPointManager.getNextReferences(0, {
|
|
122
|
-
continuationPoint,
|
|
123
|
-
index,
|
|
124
|
-
releaseContinuationPoints
|
|
125
|
-
});
|
|
126
|
-
})
|
|
127
|
-
.map((r) => new node_opcua_service_browse_1.BrowseResult({
|
|
128
|
-
statusCode: r.statusCode,
|
|
129
|
-
continuationPoint: r.continuationPoint,
|
|
130
|
-
references: r.values
|
|
131
|
-
}));
|
|
132
|
-
callback(null, results);
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
call(methodsToCall, callback) {
|
|
136
|
-
const isArray = Array.isArray(methodsToCall);
|
|
137
|
-
if (!isArray) {
|
|
138
|
-
methodsToCall = [methodsToCall];
|
|
139
|
-
}
|
|
140
|
-
async.map(methodsToCall, (methodToCall, innerCallback) => {
|
|
141
|
-
const callMethodRequest = new node_opcua_service_call_1.CallMethodRequest(methodToCall);
|
|
142
|
-
(0, call_helpers_1.callMethodHelper)(this.context, this.addressSpace, callMethodRequest, (err, result) => {
|
|
143
|
-
let callMethodResult;
|
|
144
|
-
if (err) {
|
|
145
|
-
errorLog("Internal Error = ", err);
|
|
146
|
-
callMethodResult = new node_opcua_service_call_1.CallMethodResult({
|
|
147
|
-
statusCode: node_opcua_status_code_1.StatusCodes.BadInternalError
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
callMethodResult = new node_opcua_service_call_1.CallMethodResult(result);
|
|
152
|
-
}
|
|
153
|
-
innerCallback(null, callMethodResult);
|
|
154
|
-
});
|
|
155
|
-
}, (err, callMethodResults) => {
|
|
156
|
-
callback(null, isArray ? callMethodResults : callMethodResults[0]);
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
getArgumentDefinition(methodId, callback) {
|
|
160
|
-
return (0, node_opcua_pseudo_session_1.getArgumentDefinitionHelper)(this, methodId, callback);
|
|
161
|
-
}
|
|
162
|
-
translateBrowsePath(browsePaths, callback) {
|
|
163
|
-
const isArray = Array.isArray(browsePaths);
|
|
164
|
-
if (!isArray) {
|
|
165
|
-
browsePaths = [browsePaths];
|
|
166
|
-
}
|
|
167
|
-
const browsePathResults = browsePaths.map((browsePath) => {
|
|
168
|
-
return this.addressSpace.browsePath(browsePath);
|
|
169
|
-
});
|
|
170
|
-
callback(null, isArray ? browsePathResults : browsePathResults[0]);
|
|
171
|
-
}
|
|
172
|
-
write(nodesToWrite, callback) {
|
|
173
|
-
const isArray = nodesToWrite instanceof Array;
|
|
174
|
-
const _nodesToWrite = !isArray ? [nodesToWrite] : nodesToWrite;
|
|
175
|
-
const context = this.context;
|
|
176
|
-
setImmediate(() => {
|
|
177
|
-
const statusCodesPromises = _nodesToWrite.map((nodeToWrite) => {
|
|
178
|
-
(0, node_opcua_assert_1.assert)(!!nodeToWrite.nodeId, "expecting a nodeId");
|
|
179
|
-
(0, node_opcua_assert_1.assert)(!!nodeToWrite.attributeId, "expecting a attributeId");
|
|
180
|
-
const nodeId = nodeToWrite.nodeId;
|
|
181
|
-
const obj = this.addressSpace.findNode(nodeId);
|
|
182
|
-
if (!obj) {
|
|
183
|
-
return node_opcua_status_code_1.StatusCodes.BadNodeIdUnknown;
|
|
184
|
-
}
|
|
185
|
-
return (0, util_1.promisify)(obj.writeAttribute).call(obj, context, nodeToWrite);
|
|
186
|
-
});
|
|
187
|
-
Promise.all(statusCodesPromises).then((statusCodes) => {
|
|
188
|
-
callback(null, isArray ? statusCodes : statusCodes[0]);
|
|
189
|
-
});
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
exports.PseudoSession = PseudoSession;
|
|
194
|
-
// tslint:disable:no-var-requires
|
|
195
|
-
// tslint:disable:max-line-length
|
|
196
|
-
const thenify = require("thenify");
|
|
197
|
-
PseudoSession.prototype.read = thenify.withCallback(PseudoSession.prototype.read);
|
|
198
|
-
PseudoSession.prototype.write = thenify.withCallback(PseudoSession.prototype.write);
|
|
199
|
-
PseudoSession.prototype.browse = thenify.withCallback(PseudoSession.prototype.browse);
|
|
200
|
-
PseudoSession.prototype.browseNext = thenify.withCallback(PseudoSession.prototype.browseNext);
|
|
201
|
-
PseudoSession.prototype.getArgumentDefinition = thenify.withCallback(PseudoSession.prototype.getArgumentDefinition);
|
|
202
|
-
PseudoSession.prototype.call = thenify.withCallback(PseudoSession.prototype.call);
|
|
203
|
-
PseudoSession.prototype.translateBrowsePath = thenify.withCallback(PseudoSession.prototype.translateBrowsePath);
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PseudoSession = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @module node-opcua-address-space
|
|
6
|
+
*/
|
|
7
|
+
const util_1 = require("util");
|
|
8
|
+
const async = require("async");
|
|
9
|
+
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
10
|
+
const node_opcua_data_value_1 = require("node-opcua-data-value");
|
|
11
|
+
const node_opcua_debug_1 = require("node-opcua-debug");
|
|
12
|
+
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
13
|
+
const node_opcua_pseudo_session_1 = require("node-opcua-pseudo-session");
|
|
14
|
+
const node_opcua_service_browse_1 = require("node-opcua-service-browse");
|
|
15
|
+
const node_opcua_service_call_1 = require("node-opcua-service-call");
|
|
16
|
+
const node_opcua_status_code_1 = require("node-opcua-status-code");
|
|
17
|
+
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
18
|
+
const node_opcua_basic_types_1 = require("node-opcua-basic-types");
|
|
19
|
+
const continuation_point_manager_1 = require("./continuation_points/continuation_point_manager");
|
|
20
|
+
const call_helpers_1 = require("./helpers/call_helpers");
|
|
21
|
+
const session_context_1 = require("./session_context");
|
|
22
|
+
const errorLog = (0, node_opcua_debug_1.make_errorLog)("PseudoSession");
|
|
23
|
+
/**
|
|
24
|
+
* Pseudo session is an helper object that exposes the same async methods
|
|
25
|
+
* than the ClientSession. It can be used on a server address space.
|
|
26
|
+
*
|
|
27
|
+
* Code reused !
|
|
28
|
+
* The primary benefit of this object is that its makes advanced OPCUA
|
|
29
|
+
* operations that uses browse, translate, read, write etc similar
|
|
30
|
+
* whether we work inside a server or through a client session.
|
|
31
|
+
*
|
|
32
|
+
*/
|
|
33
|
+
class PseudoSession {
|
|
34
|
+
constructor(addressSpace, context) {
|
|
35
|
+
this.requestedMaxReferencesPerNode = 0;
|
|
36
|
+
this._sessionId = new node_opcua_nodeid_1.NodeId(node_opcua_nodeid_1.NodeIdType.GUID, (0, node_opcua_basic_types_1.randomGuid)());
|
|
37
|
+
this.addressSpace = addressSpace;
|
|
38
|
+
this.context = context || session_context_1.SessionContext.defaultContext;
|
|
39
|
+
this.continuationPointManager = new continuation_point_manager_1.ContinuationPointManager();
|
|
40
|
+
}
|
|
41
|
+
getSessionId() {
|
|
42
|
+
return this._sessionId;
|
|
43
|
+
}
|
|
44
|
+
browse(nodesToBrowse, callback) {
|
|
45
|
+
setImmediate(() => {
|
|
46
|
+
const isArray = Array.isArray(nodesToBrowse);
|
|
47
|
+
if (!isArray) {
|
|
48
|
+
nodesToBrowse = [nodesToBrowse];
|
|
49
|
+
}
|
|
50
|
+
let results = [];
|
|
51
|
+
for (const browseDescription of nodesToBrowse) {
|
|
52
|
+
browseDescription.referenceTypeId = (0, node_opcua_nodeid_1.resolveNodeId)(browseDescription.referenceTypeId);
|
|
53
|
+
const _browseDescription = browseDescription instanceof node_opcua_service_browse_1.BrowseDescription ? browseDescription : new node_opcua_service_browse_1.BrowseDescription(browseDescription);
|
|
54
|
+
const nodeId = (0, node_opcua_nodeid_1.resolveNodeId)(_browseDescription.nodeId);
|
|
55
|
+
const r = this.addressSpace.browseSingleNode(nodeId, _browseDescription, this.context);
|
|
56
|
+
results.push(r);
|
|
57
|
+
}
|
|
58
|
+
// handle continuation points
|
|
59
|
+
results = results.map((result, index) => {
|
|
60
|
+
(0, node_opcua_assert_1.assert)(!result.continuationPoint);
|
|
61
|
+
const r = this.continuationPointManager.registerReferences(this.requestedMaxReferencesPerNode, result.references || [], { continuationPoint: null, index });
|
|
62
|
+
let { statusCode } = r;
|
|
63
|
+
const { continuationPoint, values } = r;
|
|
64
|
+
(0, node_opcua_assert_1.assert)(statusCode === node_opcua_status_code_1.StatusCodes.Good || statusCode === node_opcua_status_code_1.StatusCodes.GoodNoData);
|
|
65
|
+
statusCode = result.statusCode;
|
|
66
|
+
return new node_opcua_service_browse_1.BrowseResult({
|
|
67
|
+
statusCode,
|
|
68
|
+
continuationPoint,
|
|
69
|
+
references: values
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
callback(null, isArray ? results : results[0]);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
read(nodesToRead, callback) {
|
|
76
|
+
const isArray = Array.isArray(nodesToRead);
|
|
77
|
+
if (!isArray) {
|
|
78
|
+
nodesToRead = [nodesToRead];
|
|
79
|
+
}
|
|
80
|
+
const _nodesToRead = nodesToRead;
|
|
81
|
+
const context = this.context;
|
|
82
|
+
setImmediate(() => {
|
|
83
|
+
async.map(_nodesToRead, (nodeToRead, innerCallback) => {
|
|
84
|
+
const obj = this.addressSpace.findNode(nodeToRead.nodeId);
|
|
85
|
+
if (!obj || obj.nodeClass !== node_opcua_data_model_1.NodeClass.Variable || nodeToRead.attributeId !== node_opcua_data_model_1.AttributeIds.Value) {
|
|
86
|
+
return innerCallback();
|
|
87
|
+
}
|
|
88
|
+
obj.readValueAsync(context, innerCallback);
|
|
89
|
+
}, (err) => {
|
|
90
|
+
const dataValues = _nodesToRead.map((nodeToRead) => {
|
|
91
|
+
(0, node_opcua_assert_1.assert)(!!nodeToRead.nodeId, "expecting a nodeId");
|
|
92
|
+
(0, node_opcua_assert_1.assert)(!!nodeToRead.attributeId, "expecting a attributeId");
|
|
93
|
+
const nodeId = nodeToRead.nodeId;
|
|
94
|
+
const attributeId = nodeToRead.attributeId;
|
|
95
|
+
const indexRange = nodeToRead.indexRange;
|
|
96
|
+
const dataEncoding = nodeToRead.dataEncoding;
|
|
97
|
+
const obj = this.addressSpace.findNode(nodeId);
|
|
98
|
+
if (!obj) {
|
|
99
|
+
return new node_opcua_data_value_1.DataValue({ statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdUnknown });
|
|
100
|
+
}
|
|
101
|
+
const context = this.context;
|
|
102
|
+
const dataValue = obj.readAttribute(context, attributeId, indexRange, dataEncoding);
|
|
103
|
+
return dataValue;
|
|
104
|
+
});
|
|
105
|
+
callback(null, isArray ? dataValues : dataValues[0]);
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
browseNext(continuationPoints, releaseContinuationPoints, callback) {
|
|
110
|
+
setImmediate(() => {
|
|
111
|
+
if (continuationPoints instanceof Buffer) {
|
|
112
|
+
return this.browseNext([continuationPoints], releaseContinuationPoints, (err, _results) => {
|
|
113
|
+
if (err) {
|
|
114
|
+
return callback(err);
|
|
115
|
+
}
|
|
116
|
+
callback(null, _results[0]);
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
const results = continuationPoints
|
|
120
|
+
.map((continuationPoint, index) => {
|
|
121
|
+
return this.continuationPointManager.getNextReferences(0, {
|
|
122
|
+
continuationPoint,
|
|
123
|
+
index,
|
|
124
|
+
releaseContinuationPoints
|
|
125
|
+
});
|
|
126
|
+
})
|
|
127
|
+
.map((r) => new node_opcua_service_browse_1.BrowseResult({
|
|
128
|
+
statusCode: r.statusCode,
|
|
129
|
+
continuationPoint: r.continuationPoint,
|
|
130
|
+
references: r.values
|
|
131
|
+
}));
|
|
132
|
+
callback(null, results);
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
call(methodsToCall, callback) {
|
|
136
|
+
const isArray = Array.isArray(methodsToCall);
|
|
137
|
+
if (!isArray) {
|
|
138
|
+
methodsToCall = [methodsToCall];
|
|
139
|
+
}
|
|
140
|
+
async.map(methodsToCall, (methodToCall, innerCallback) => {
|
|
141
|
+
const callMethodRequest = new node_opcua_service_call_1.CallMethodRequest(methodToCall);
|
|
142
|
+
(0, call_helpers_1.callMethodHelper)(this.context, this.addressSpace, callMethodRequest, (err, result) => {
|
|
143
|
+
let callMethodResult;
|
|
144
|
+
if (err) {
|
|
145
|
+
errorLog("Internal Error = ", err);
|
|
146
|
+
callMethodResult = new node_opcua_service_call_1.CallMethodResult({
|
|
147
|
+
statusCode: node_opcua_status_code_1.StatusCodes.BadInternalError
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
callMethodResult = new node_opcua_service_call_1.CallMethodResult(result);
|
|
152
|
+
}
|
|
153
|
+
innerCallback(null, callMethodResult);
|
|
154
|
+
});
|
|
155
|
+
}, (err, callMethodResults) => {
|
|
156
|
+
callback(null, isArray ? callMethodResults : callMethodResults[0]);
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
getArgumentDefinition(methodId, callback) {
|
|
160
|
+
return (0, node_opcua_pseudo_session_1.getArgumentDefinitionHelper)(this, methodId, callback);
|
|
161
|
+
}
|
|
162
|
+
translateBrowsePath(browsePaths, callback) {
|
|
163
|
+
const isArray = Array.isArray(browsePaths);
|
|
164
|
+
if (!isArray) {
|
|
165
|
+
browsePaths = [browsePaths];
|
|
166
|
+
}
|
|
167
|
+
const browsePathResults = browsePaths.map((browsePath) => {
|
|
168
|
+
return this.addressSpace.browsePath(browsePath);
|
|
169
|
+
});
|
|
170
|
+
callback(null, isArray ? browsePathResults : browsePathResults[0]);
|
|
171
|
+
}
|
|
172
|
+
write(nodesToWrite, callback) {
|
|
173
|
+
const isArray = nodesToWrite instanceof Array;
|
|
174
|
+
const _nodesToWrite = !isArray ? [nodesToWrite] : nodesToWrite;
|
|
175
|
+
const context = this.context;
|
|
176
|
+
setImmediate(() => {
|
|
177
|
+
const statusCodesPromises = _nodesToWrite.map((nodeToWrite) => {
|
|
178
|
+
(0, node_opcua_assert_1.assert)(!!nodeToWrite.nodeId, "expecting a nodeId");
|
|
179
|
+
(0, node_opcua_assert_1.assert)(!!nodeToWrite.attributeId, "expecting a attributeId");
|
|
180
|
+
const nodeId = nodeToWrite.nodeId;
|
|
181
|
+
const obj = this.addressSpace.findNode(nodeId);
|
|
182
|
+
if (!obj) {
|
|
183
|
+
return node_opcua_status_code_1.StatusCodes.BadNodeIdUnknown;
|
|
184
|
+
}
|
|
185
|
+
return (0, util_1.promisify)(obj.writeAttribute).call(obj, context, nodeToWrite);
|
|
186
|
+
});
|
|
187
|
+
Promise.all(statusCodesPromises).then((statusCodes) => {
|
|
188
|
+
callback(null, isArray ? statusCodes : statusCodes[0]);
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
exports.PseudoSession = PseudoSession;
|
|
194
|
+
// tslint:disable:no-var-requires
|
|
195
|
+
// tslint:disable:max-line-length
|
|
196
|
+
const thenify = require("thenify");
|
|
197
|
+
PseudoSession.prototype.read = thenify.withCallback(PseudoSession.prototype.read);
|
|
198
|
+
PseudoSession.prototype.write = thenify.withCallback(PseudoSession.prototype.write);
|
|
199
|
+
PseudoSession.prototype.browse = thenify.withCallback(PseudoSession.prototype.browse);
|
|
200
|
+
PseudoSession.prototype.browseNext = thenify.withCallback(PseudoSession.prototype.browseNext);
|
|
201
|
+
PseudoSession.prototype.getArgumentDefinition = thenify.withCallback(PseudoSession.prototype.getArgumentDefinition);
|
|
202
|
+
PseudoSession.prototype.call = thenify.withCallback(PseudoSession.prototype.call);
|
|
203
|
+
PseudoSession.prototype.translateBrowsePath = thenify.withCallback(PseudoSession.prototype.translateBrowsePath);
|
|
204
204
|
//# sourceMappingURL=pseudo_session.js.map
|
|
@@ -1,111 +1,111 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module node-opcua-address-space
|
|
3
|
-
*/
|
|
4
|
-
import { AccessRestrictionsFlag, PermissionFlag } from "node-opcua-data-model";
|
|
5
|
-
import { PreciseClock } from "node-opcua-date-time";
|
|
6
|
-
import { NodeId, NodeIdLike } from "node-opcua-nodeid";
|
|
7
|
-
import { PermissionType, RolePermissionType } from "node-opcua-types";
|
|
8
|
-
import { ISessionContext, UAObject, UAObjectType, BaseNode, ISessionBase } from "node-opcua-address-space-base";
|
|
9
|
-
export { RolePermissionType, RolePermissionTypeOptions, PermissionType } from "node-opcua-types";
|
|
10
|
-
/**
|
|
11
|
-
*
|
|
12
|
-
*/
|
|
13
|
-
export declare enum WellKnownRoles {
|
|
14
|
-
Anonymous = 15644,
|
|
15
|
-
AuthenticatedUser = 15656,
|
|
16
|
-
ConfigureAdmin = 15716,
|
|
17
|
-
Engineer = 16036,
|
|
18
|
-
Observer = 15668,
|
|
19
|
-
Operator = 15680,
|
|
20
|
-
SecurityAdmin = 15704,
|
|
21
|
-
Supervisor = 15692
|
|
22
|
-
}
|
|
23
|
-
export declare enum WellKnownRolesNodeId {
|
|
24
|
-
Anonymous = 15644,
|
|
25
|
-
AuthenticatedUser = 15656,
|
|
26
|
-
ConfigureAdmin = 15716,
|
|
27
|
-
Engineer = 16036,
|
|
28
|
-
Observer = 15668,
|
|
29
|
-
Operator = 15680,
|
|
30
|
-
SecurityAdmin = 15704,
|
|
31
|
-
Supervisor = 15692
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* OPC Unified Architecture, Part 3 13 Release 1.04
|
|
35
|
-
* 4.8.2 Well Known Roles
|
|
36
|
-
* All Servers should support the well-known Roles which are defined in Table 2. The NodeIds
|
|
37
|
-
* for the well-known Roles are defined in Part 6.
|
|
38
|
-
* Table 2 – Well-Known Roles
|
|
39
|
-
* BrowseName Suggested Permissions
|
|
40
|
-
*
|
|
41
|
-
* Anonymous The Role has very limited access for use when a Session has anonymous credentials.
|
|
42
|
-
* AuthenticatedUser The Role has limited access for use when a Session has valid non-anonymous credentials
|
|
43
|
-
* but has not been explicitly granted access to a Role.
|
|
44
|
-
* Observer The Role is allowed to browse, read live data, read historical data/events or subscribe to data/events.
|
|
45
|
-
* Operator The Role is allowed to browse, read live data, read historical data/events or subscribe to data/events.
|
|
46
|
-
* In addition, the Session is allowed to write some live data and call some Methods.
|
|
47
|
-
* Engineer The Role is allowed to browse, read/write configuration data, read historical data/events,
|
|
48
|
-
* call Methods or subscribe to data/events.
|
|
49
|
-
* Supervisor The Role is allowed to browse, read live data, read historical data/events, call Methods or
|
|
50
|
-
* subscribe to data/events.
|
|
51
|
-
* ConfigureAdmin The Role is allowed to change the non-security related config
|
|
52
|
-
* SecurityAdmin The Role is allowed to change security related settings.
|
|
53
|
-
*/
|
|
54
|
-
export declare type WellKnownRolesSemiColumnSeparated = string;
|
|
55
|
-
export interface IUserManager {
|
|
56
|
-
/**
|
|
57
|
-
* retrieve the roles of the given user
|
|
58
|
-
* @returns semicolon separated list of roles
|
|
59
|
-
*/
|
|
60
|
-
getUserRoles?: (user: string) => NodeId[];
|
|
61
|
-
}
|
|
62
|
-
export interface IServerBase {
|
|
63
|
-
userManager?: IUserManager;
|
|
64
|
-
}
|
|
65
|
-
export interface SessionContextOptions {
|
|
66
|
-
session?: ISessionBase;
|
|
67
|
-
object?: UAObject | UAObjectType;
|
|
68
|
-
server?: IServerBase;
|
|
69
|
-
}
|
|
70
|
-
export declare function makeRoles(roleIds: NodeIdLike[] | string | WellKnownRoles): NodeId[];
|
|
71
|
-
export declare class SessionContext implements ISessionContext {
|
|
72
|
-
static defaultContext: SessionContext;
|
|
73
|
-
object: any;
|
|
74
|
-
currentTime?: PreciseClock;
|
|
75
|
-
continuationPoints: any;
|
|
76
|
-
userIdentity?: string;
|
|
77
|
-
readonly session?: ISessionBase;
|
|
78
|
-
readonly server?: IServerBase;
|
|
79
|
-
constructor(options?: SessionContextOptions);
|
|
80
|
-
/**
|
|
81
|
-
* getCurrentUserRoles
|
|
82
|
-
*
|
|
83
|
-
* guest => anonymous user (unauthenticated)
|
|
84
|
-
* default => default authenticated user
|
|
85
|
-
*
|
|
86
|
-
*/
|
|
87
|
-
getCurrentUserRoles(): NodeId[];
|
|
88
|
-
getApplicableRolePermissions(node: BaseNode): RolePermissionType[] | null;
|
|
89
|
-
getPermissions(node: BaseNode): PermissionFlag;
|
|
90
|
-
getAccessRestrictions(node: BaseNode): AccessRestrictionsFlag;
|
|
91
|
-
/**
|
|
92
|
-
*
|
|
93
|
-
* @param node
|
|
94
|
-
* @returns true if the browse is denied (access is restricted)
|
|
95
|
-
*/
|
|
96
|
-
isBrowseAccessRestricted(node: BaseNode): boolean;
|
|
97
|
-
/**
|
|
98
|
-
*
|
|
99
|
-
* @param node
|
|
100
|
-
* @returns true if the context is access restricted
|
|
101
|
-
*/
|
|
102
|
-
isAccessRestricted(node: BaseNode): boolean;
|
|
103
|
-
/**
|
|
104
|
-
* @method checkPermission
|
|
105
|
-
* @param node
|
|
106
|
-
* @param requestedPermission
|
|
107
|
-
* @return {Boolean} returns true of the current user is granted the requested Permission
|
|
108
|
-
*/
|
|
109
|
-
checkPermission(node: BaseNode, requestedPermission: PermissionType): boolean;
|
|
110
|
-
currentUserHasRole(role: NodeIdLike): boolean;
|
|
111
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* @module node-opcua-address-space
|
|
3
|
+
*/
|
|
4
|
+
import { AccessRestrictionsFlag, PermissionFlag } from "node-opcua-data-model";
|
|
5
|
+
import { PreciseClock } from "node-opcua-date-time";
|
|
6
|
+
import { NodeId, NodeIdLike } from "node-opcua-nodeid";
|
|
7
|
+
import { PermissionType, RolePermissionType } from "node-opcua-types";
|
|
8
|
+
import { ISessionContext, UAObject, UAObjectType, BaseNode, ISessionBase } from "node-opcua-address-space-base";
|
|
9
|
+
export { RolePermissionType, RolePermissionTypeOptions, PermissionType } from "node-opcua-types";
|
|
10
|
+
/**
|
|
11
|
+
*
|
|
12
|
+
*/
|
|
13
|
+
export declare enum WellKnownRoles {
|
|
14
|
+
Anonymous = 15644,
|
|
15
|
+
AuthenticatedUser = 15656,
|
|
16
|
+
ConfigureAdmin = 15716,
|
|
17
|
+
Engineer = 16036,
|
|
18
|
+
Observer = 15668,
|
|
19
|
+
Operator = 15680,
|
|
20
|
+
SecurityAdmin = 15704,
|
|
21
|
+
Supervisor = 15692
|
|
22
|
+
}
|
|
23
|
+
export declare enum WellKnownRolesNodeId {
|
|
24
|
+
Anonymous = 15644,
|
|
25
|
+
AuthenticatedUser = 15656,
|
|
26
|
+
ConfigureAdmin = 15716,
|
|
27
|
+
Engineer = 16036,
|
|
28
|
+
Observer = 15668,
|
|
29
|
+
Operator = 15680,
|
|
30
|
+
SecurityAdmin = 15704,
|
|
31
|
+
Supervisor = 15692
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* OPC Unified Architecture, Part 3 13 Release 1.04
|
|
35
|
+
* 4.8.2 Well Known Roles
|
|
36
|
+
* All Servers should support the well-known Roles which are defined in Table 2. The NodeIds
|
|
37
|
+
* for the well-known Roles are defined in Part 6.
|
|
38
|
+
* Table 2 – Well-Known Roles
|
|
39
|
+
* BrowseName Suggested Permissions
|
|
40
|
+
*
|
|
41
|
+
* Anonymous The Role has very limited access for use when a Session has anonymous credentials.
|
|
42
|
+
* AuthenticatedUser The Role has limited access for use when a Session has valid non-anonymous credentials
|
|
43
|
+
* but has not been explicitly granted access to a Role.
|
|
44
|
+
* Observer The Role is allowed to browse, read live data, read historical data/events or subscribe to data/events.
|
|
45
|
+
* Operator The Role is allowed to browse, read live data, read historical data/events or subscribe to data/events.
|
|
46
|
+
* In addition, the Session is allowed to write some live data and call some Methods.
|
|
47
|
+
* Engineer The Role is allowed to browse, read/write configuration data, read historical data/events,
|
|
48
|
+
* call Methods or subscribe to data/events.
|
|
49
|
+
* Supervisor The Role is allowed to browse, read live data, read historical data/events, call Methods or
|
|
50
|
+
* subscribe to data/events.
|
|
51
|
+
* ConfigureAdmin The Role is allowed to change the non-security related config
|
|
52
|
+
* SecurityAdmin The Role is allowed to change security related settings.
|
|
53
|
+
*/
|
|
54
|
+
export declare type WellKnownRolesSemiColumnSeparated = string;
|
|
55
|
+
export interface IUserManager {
|
|
56
|
+
/**
|
|
57
|
+
* retrieve the roles of the given user
|
|
58
|
+
* @returns semicolon separated list of roles
|
|
59
|
+
*/
|
|
60
|
+
getUserRoles?: (user: string) => NodeId[];
|
|
61
|
+
}
|
|
62
|
+
export interface IServerBase {
|
|
63
|
+
userManager?: IUserManager;
|
|
64
|
+
}
|
|
65
|
+
export interface SessionContextOptions {
|
|
66
|
+
session?: ISessionBase;
|
|
67
|
+
object?: UAObject | UAObjectType;
|
|
68
|
+
server?: IServerBase;
|
|
69
|
+
}
|
|
70
|
+
export declare function makeRoles(roleIds: NodeIdLike[] | string | WellKnownRoles): NodeId[];
|
|
71
|
+
export declare class SessionContext implements ISessionContext {
|
|
72
|
+
static defaultContext: SessionContext;
|
|
73
|
+
object: any;
|
|
74
|
+
currentTime?: PreciseClock;
|
|
75
|
+
continuationPoints: any;
|
|
76
|
+
userIdentity?: string;
|
|
77
|
+
readonly session?: ISessionBase;
|
|
78
|
+
readonly server?: IServerBase;
|
|
79
|
+
constructor(options?: SessionContextOptions);
|
|
80
|
+
/**
|
|
81
|
+
* getCurrentUserRoles
|
|
82
|
+
*
|
|
83
|
+
* guest => anonymous user (unauthenticated)
|
|
84
|
+
* default => default authenticated user
|
|
85
|
+
*
|
|
86
|
+
*/
|
|
87
|
+
getCurrentUserRoles(): NodeId[];
|
|
88
|
+
getApplicableRolePermissions(node: BaseNode): RolePermissionType[] | null;
|
|
89
|
+
getPermissions(node: BaseNode): PermissionFlag;
|
|
90
|
+
getAccessRestrictions(node: BaseNode): AccessRestrictionsFlag;
|
|
91
|
+
/**
|
|
92
|
+
*
|
|
93
|
+
* @param node
|
|
94
|
+
* @returns true if the browse is denied (access is restricted)
|
|
95
|
+
*/
|
|
96
|
+
isBrowseAccessRestricted(node: BaseNode): boolean;
|
|
97
|
+
/**
|
|
98
|
+
*
|
|
99
|
+
* @param node
|
|
100
|
+
* @returns true if the context is access restricted
|
|
101
|
+
*/
|
|
102
|
+
isAccessRestricted(node: BaseNode): boolean;
|
|
103
|
+
/**
|
|
104
|
+
* @method checkPermission
|
|
105
|
+
* @param node
|
|
106
|
+
* @param requestedPermission
|
|
107
|
+
* @return {Boolean} returns true of the current user is granted the requested Permission
|
|
108
|
+
*/
|
|
109
|
+
checkPermission(node: BaseNode, requestedPermission: PermissionType): boolean;
|
|
110
|
+
currentUserHasRole(role: NodeIdLike): boolean;
|
|
111
|
+
}
|