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,26 +1,26 @@
|
|
|
1
|
-
import { NodeId } from "node-opcua-nodeid";
|
|
2
|
-
import { BaseNode } from "node-opcua-address-space-base";
|
|
3
|
-
import { UABaseEvent_Base } from "node-opcua-nodeset-ua";
|
|
4
|
-
import { UAObjectImpl } from "../ua_object_impl";
|
|
5
|
-
import { UABaseEventHelper } from "../../source/interfaces/alarms_and_conditions/ua_condition_ex";
|
|
6
|
-
export interface UABaseEventEx extends UABaseEvent_Base, UABaseEventHelper {
|
|
7
|
-
}
|
|
8
|
-
export declare interface UABaseEventImpl extends UABaseEventEx {
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* @class BaseEventType
|
|
12
|
-
* @class UAObject
|
|
13
|
-
* @constructor
|
|
14
|
-
*/
|
|
15
|
-
export declare class UABaseEventImpl extends UAObjectImpl implements UABaseEventEx {
|
|
16
|
-
/**
|
|
17
|
-
* @method setSourceName
|
|
18
|
-
* @param name
|
|
19
|
-
*/
|
|
20
|
-
setSourceName(name: string): void;
|
|
21
|
-
/**
|
|
22
|
-
* @method setSourceNode
|
|
23
|
-
* @param node {NodeId|UAObject}
|
|
24
|
-
*/
|
|
25
|
-
setSourceNode(node: NodeId | BaseNode): void;
|
|
26
|
-
}
|
|
1
|
+
import { NodeId } from "node-opcua-nodeid";
|
|
2
|
+
import { BaseNode } from "node-opcua-address-space-base";
|
|
3
|
+
import { UABaseEvent_Base } from "node-opcua-nodeset-ua";
|
|
4
|
+
import { UAObjectImpl } from "../ua_object_impl";
|
|
5
|
+
import { UABaseEventHelper } from "../../source/interfaces/alarms_and_conditions/ua_condition_ex";
|
|
6
|
+
export interface UABaseEventEx extends UABaseEvent_Base, UABaseEventHelper {
|
|
7
|
+
}
|
|
8
|
+
export declare interface UABaseEventImpl extends UABaseEventEx {
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* @class BaseEventType
|
|
12
|
+
* @class UAObject
|
|
13
|
+
* @constructor
|
|
14
|
+
*/
|
|
15
|
+
export declare class UABaseEventImpl extends UAObjectImpl implements UABaseEventEx {
|
|
16
|
+
/**
|
|
17
|
+
* @method setSourceName
|
|
18
|
+
* @param name
|
|
19
|
+
*/
|
|
20
|
+
setSourceName(name: string): void;
|
|
21
|
+
/**
|
|
22
|
+
* @method setSourceNode
|
|
23
|
+
* @param node {NodeId|UAObject}
|
|
24
|
+
*/
|
|
25
|
+
setSourceNode(node: NodeId | BaseNode): void;
|
|
26
|
+
}
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UABaseEventImpl = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* @module node-opcua-address-space.AlarmsAndConditions
|
|
6
|
-
*/
|
|
7
|
-
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
8
|
-
const node_opcua_variant_1 = require("node-opcua-variant");
|
|
9
|
-
const ua_object_impl_1 = require("../ua_object_impl");
|
|
10
|
-
/**
|
|
11
|
-
* @class BaseEventType
|
|
12
|
-
* @class UAObject
|
|
13
|
-
* @constructor
|
|
14
|
-
*/
|
|
15
|
-
class UABaseEventImpl extends ua_object_impl_1.UAObjectImpl {
|
|
16
|
-
/**
|
|
17
|
-
* @method setSourceName
|
|
18
|
-
* @param name
|
|
19
|
-
*/
|
|
20
|
-
setSourceName(name) {
|
|
21
|
-
(0, node_opcua_assert_1.assert)(typeof name === "string");
|
|
22
|
-
this.sourceName.setValueFromSource(new node_opcua_variant_1.Variant({
|
|
23
|
-
dataType: node_opcua_variant_1.DataType.String,
|
|
24
|
-
value: name
|
|
25
|
-
}));
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* @method setSourceNode
|
|
29
|
-
* @param node {NodeId|UAObject}
|
|
30
|
-
*/
|
|
31
|
-
setSourceNode(node) {
|
|
32
|
-
this.sourceNode.setValueFromSource(new node_opcua_variant_1.Variant({
|
|
33
|
-
dataType: node_opcua_variant_1.DataType.NodeId,
|
|
34
|
-
value: node.nodeId ? node.nodeId : node
|
|
35
|
-
}));
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
exports.UABaseEventImpl = UABaseEventImpl;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UABaseEventImpl = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @module node-opcua-address-space.AlarmsAndConditions
|
|
6
|
+
*/
|
|
7
|
+
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
8
|
+
const node_opcua_variant_1 = require("node-opcua-variant");
|
|
9
|
+
const ua_object_impl_1 = require("../ua_object_impl");
|
|
10
|
+
/**
|
|
11
|
+
* @class BaseEventType
|
|
12
|
+
* @class UAObject
|
|
13
|
+
* @constructor
|
|
14
|
+
*/
|
|
15
|
+
class UABaseEventImpl extends ua_object_impl_1.UAObjectImpl {
|
|
16
|
+
/**
|
|
17
|
+
* @method setSourceName
|
|
18
|
+
* @param name
|
|
19
|
+
*/
|
|
20
|
+
setSourceName(name) {
|
|
21
|
+
(0, node_opcua_assert_1.assert)(typeof name === "string");
|
|
22
|
+
this.sourceName.setValueFromSource(new node_opcua_variant_1.Variant({
|
|
23
|
+
dataType: node_opcua_variant_1.DataType.String,
|
|
24
|
+
value: name
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* @method setSourceNode
|
|
29
|
+
* @param node {NodeId|UAObject}
|
|
30
|
+
*/
|
|
31
|
+
setSourceNode(node) {
|
|
32
|
+
this.sourceNode.setValueFromSource(new node_opcua_variant_1.Variant({
|
|
33
|
+
dataType: node_opcua_variant_1.DataType.NodeId,
|
|
34
|
+
value: node.nodeId ? node.nodeId : node
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.UABaseEventImpl = UABaseEventImpl;
|
|
39
39
|
//# sourceMappingURL=ua_base_event_impl.js.map
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/**
|
|
3
|
-
* @module node-opcua-address-space.AlarmsAndConditions
|
|
4
|
-
*/
|
|
5
|
-
import { Certificate } from "node-opcua-crypto";
|
|
6
|
-
import { DateTime } from "node-opcua-basic-types";
|
|
7
|
-
import { NodeId } from "node-opcua-nodeid";
|
|
8
|
-
import { DataType } from "node-opcua-variant";
|
|
9
|
-
import { INamespace, UAObject, UAProperty } from "node-opcua-address-space-base";
|
|
10
|
-
import { UACertificateExpirationAlarmEx } from "../../source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex";
|
|
11
|
-
import { InstantiateOffNormalAlarmOptions } from "../../source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options";
|
|
12
|
-
import { UASystemOffNormalAlarmImpl } from "./ua_system_off_normal_alarm_impl";
|
|
13
|
-
export declare function instantiateCertificateExpirationAlarm(namespace: INamespace, alarmType: "CertificateExpirationAlarmType", options: InstantiateOffNormalAlarmOptions): UACertificateExpirationAlarmEx;
|
|
14
|
-
interface UACertificateExpirationAlarmImpl {
|
|
15
|
-
expirationDate: UAProperty<Date, /*z*/ DataType.DateTime>;
|
|
16
|
-
expirationLimit?: UAProperty<number, /*z*/ DataType.Double>;
|
|
17
|
-
certificateType: UAProperty<NodeId, /*z*/ DataType.NodeId>;
|
|
18
|
-
certificate: UAProperty<Buffer, /*z*/ DataType.ByteString>;
|
|
19
|
-
}
|
|
20
|
-
export declare const OneDayDuration: number;
|
|
21
|
-
export declare const TwoWeeksDuration: number;
|
|
22
|
-
/**
|
|
23
|
-
* This UACertificateExpirationAlarm (SystemOffNormalAlarmType) is raised by the Server when the Server’s
|
|
24
|
-
* Certificate is within the ExpirationLimit
|
|
25
|
-
* of expiration. This alarm automatically returns to normal when the certificate is updated.
|
|
26
|
-
*/
|
|
27
|
-
declare class UACertificateExpirationAlarmImpl extends UASystemOffNormalAlarmImpl implements UACertificateExpirationAlarmEx {
|
|
28
|
-
private timer;
|
|
29
|
-
static instantiate(namespace: INamespace, alarmType: "CertificateExpirationAlarmType", options: InstantiateOffNormalAlarmOptions): UACertificateExpirationAlarmImpl;
|
|
30
|
-
getExpirationDate(): DateTime | null;
|
|
31
|
-
updateAlarmState2(isActive: boolean, severity: number, message: string): void;
|
|
32
|
-
update(): void;
|
|
33
|
-
private _updateAlarm;
|
|
34
|
-
setExpirationDate(expirationDate: Date): void;
|
|
35
|
-
getExpirationLimit(): number;
|
|
36
|
-
setExpirationLimit(value: number): void;
|
|
37
|
-
getCertificate(): Certificate | null;
|
|
38
|
-
private _extractAndSetExpiryDate;
|
|
39
|
-
setCertificate(certificate: Certificate | null): void;
|
|
40
|
-
stopTimer(): void;
|
|
41
|
-
_post_initialize(): void;
|
|
42
|
-
}
|
|
43
|
-
export declare function promoteToCertificateExpirationAlarm(node: UAObject): UACertificateExpirationAlarmImpl;
|
|
44
|
-
export {};
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/**
|
|
3
|
+
* @module node-opcua-address-space.AlarmsAndConditions
|
|
4
|
+
*/
|
|
5
|
+
import { Certificate } from "node-opcua-crypto";
|
|
6
|
+
import { DateTime } from "node-opcua-basic-types";
|
|
7
|
+
import { NodeId } from "node-opcua-nodeid";
|
|
8
|
+
import { DataType } from "node-opcua-variant";
|
|
9
|
+
import { INamespace, UAObject, UAProperty } from "node-opcua-address-space-base";
|
|
10
|
+
import { UACertificateExpirationAlarmEx } from "../../source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex";
|
|
11
|
+
import { InstantiateOffNormalAlarmOptions } from "../../source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options";
|
|
12
|
+
import { UASystemOffNormalAlarmImpl } from "./ua_system_off_normal_alarm_impl";
|
|
13
|
+
export declare function instantiateCertificateExpirationAlarm(namespace: INamespace, alarmType: "CertificateExpirationAlarmType", options: InstantiateOffNormalAlarmOptions): UACertificateExpirationAlarmEx;
|
|
14
|
+
interface UACertificateExpirationAlarmImpl {
|
|
15
|
+
expirationDate: UAProperty<Date, /*z*/ DataType.DateTime>;
|
|
16
|
+
expirationLimit?: UAProperty<number, /*z*/ DataType.Double>;
|
|
17
|
+
certificateType: UAProperty<NodeId, /*z*/ DataType.NodeId>;
|
|
18
|
+
certificate: UAProperty<Buffer, /*z*/ DataType.ByteString>;
|
|
19
|
+
}
|
|
20
|
+
export declare const OneDayDuration: number;
|
|
21
|
+
export declare const TwoWeeksDuration: number;
|
|
22
|
+
/**
|
|
23
|
+
* This UACertificateExpirationAlarm (SystemOffNormalAlarmType) is raised by the Server when the Server’s
|
|
24
|
+
* Certificate is within the ExpirationLimit
|
|
25
|
+
* of expiration. This alarm automatically returns to normal when the certificate is updated.
|
|
26
|
+
*/
|
|
27
|
+
declare class UACertificateExpirationAlarmImpl extends UASystemOffNormalAlarmImpl implements UACertificateExpirationAlarmEx {
|
|
28
|
+
private timer;
|
|
29
|
+
static instantiate(namespace: INamespace, alarmType: "CertificateExpirationAlarmType", options: InstantiateOffNormalAlarmOptions): UACertificateExpirationAlarmImpl;
|
|
30
|
+
getExpirationDate(): DateTime | null;
|
|
31
|
+
updateAlarmState2(isActive: boolean, severity: number, message: string): void;
|
|
32
|
+
update(): void;
|
|
33
|
+
private _updateAlarm;
|
|
34
|
+
setExpirationDate(expirationDate: Date): void;
|
|
35
|
+
getExpirationLimit(): number;
|
|
36
|
+
setExpirationLimit(value: number): void;
|
|
37
|
+
getCertificate(): Certificate | null;
|
|
38
|
+
private _extractAndSetExpiryDate;
|
|
39
|
+
setCertificate(certificate: Certificate | null): void;
|
|
40
|
+
stopTimer(): void;
|
|
41
|
+
_post_initialize(): void;
|
|
42
|
+
}
|
|
43
|
+
export declare function promoteToCertificateExpirationAlarm(node: UAObject): UACertificateExpirationAlarmImpl;
|
|
44
|
+
export {};
|
|
@@ -1,184 +1,184 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.promoteToCertificateExpirationAlarm = exports.TwoWeeksDuration = exports.OneDayDuration = exports.instantiateCertificateExpirationAlarm = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* @module node-opcua-address-space.AlarmsAndConditions
|
|
6
|
-
*/
|
|
7
|
-
const node_opcua_crypto_1 = require("node-opcua-crypto");
|
|
8
|
-
const node_opcua_basic_types_1 = require("node-opcua-basic-types");
|
|
9
|
-
const node_opcua_debug_1 = require("node-opcua-debug");
|
|
10
|
-
const node_opcua_variant_1 = require("node-opcua-variant");
|
|
11
|
-
const node_opcua_constants_1 = require("node-opcua-constants");
|
|
12
|
-
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
13
|
-
const register_node_promoter_1 = require("../../source/loader/register_node_promoter");
|
|
14
|
-
const ua_system_off_normal_alarm_impl_1 = require("./ua_system_off_normal_alarm_impl");
|
|
15
|
-
const warningLog = (0, node_opcua_debug_1.make_warningLog)("AlarmsAndConditions");
|
|
16
|
-
const ellipsis = (arg0, arg1 = 4) => {
|
|
17
|
-
arg1 = Math.max(arg1, 4);
|
|
18
|
-
return arg0.length <= arg1 ? arg0 : arg0.slice(0, arg1 / 2) + "..." + arg0.slice(arg0.length - arg1 / 2);
|
|
19
|
-
};
|
|
20
|
-
const d = (d) => {
|
|
21
|
-
return d.toISOString();
|
|
22
|
-
};
|
|
23
|
-
function instantiateCertificateExpirationAlarm(namespace, alarmType, options) {
|
|
24
|
-
return UACertificateExpirationAlarmImpl.instantiate(namespace, alarmType, options);
|
|
25
|
-
}
|
|
26
|
-
exports.instantiateCertificateExpirationAlarm = instantiateCertificateExpirationAlarm;
|
|
27
|
-
// This Simple DataType is a Double that defines an interval of time in milliseconds (fractions can be used to define sub-millisecond values).
|
|
28
|
-
// Negative values are generally invalid but may have special meanings where the Duration is used.
|
|
29
|
-
exports.OneDayDuration = 1000 * 60 * 60 * 24;
|
|
30
|
-
exports.TwoWeeksDuration = exports.OneDayDuration * 2 * 7;
|
|
31
|
-
/**
|
|
32
|
-
* This UACertificateExpirationAlarm (SystemOffNormalAlarmType) is raised by the Server when the Server’s
|
|
33
|
-
* Certificate is within the ExpirationLimit
|
|
34
|
-
* of expiration. This alarm automatically returns to normal when the certificate is updated.
|
|
35
|
-
*/
|
|
36
|
-
class UACertificateExpirationAlarmImpl extends ua_system_off_normal_alarm_impl_1.UASystemOffNormalAlarmImpl {
|
|
37
|
-
static instantiate(namespace, alarmType, options
|
|
38
|
-
// data?: Record<string, VariantOptions>
|
|
39
|
-
) {
|
|
40
|
-
const alarm = ua_system_off_normal_alarm_impl_1.UASystemOffNormalAlarmImpl.instantiate(namespace, alarmType || "CertificateExpirationAlarmType", options
|
|
41
|
-
// data
|
|
42
|
-
);
|
|
43
|
-
promoteToCertificateExpirationAlarm(alarm);
|
|
44
|
-
return alarm;
|
|
45
|
-
}
|
|
46
|
-
getExpirationDate() {
|
|
47
|
-
return this.expirationDate.readValue().value.value;
|
|
48
|
-
}
|
|
49
|
-
updateAlarmState2(isActive, severity, message) {
|
|
50
|
-
//xx console.log(`${message} ${severity} ${d(new Date())}`);
|
|
51
|
-
isActive ? this.activateAlarm() : this.deactivateAlarm();
|
|
52
|
-
this.raiseNewCondition({
|
|
53
|
-
message,
|
|
54
|
-
quality: node_opcua_basic_types_1.StatusCodes.Good,
|
|
55
|
-
retain: isActive ? true : false,
|
|
56
|
-
severity
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
update() {
|
|
60
|
-
this._updateAlarm();
|
|
61
|
-
}
|
|
62
|
-
_updateAlarm() {
|
|
63
|
-
const expirationDate = this.getExpirationDate();
|
|
64
|
-
const now = new Date();
|
|
65
|
-
const expirationLimit = this.getExpirationLimit();
|
|
66
|
-
const checkDate = new Date(now.getTime() + +expirationLimit);
|
|
67
|
-
const certificate = this.getCertificate();
|
|
68
|
-
if (!expirationDate || (expirationDate === node_opcua_basic_types_1.minOPCUADate && !certificate)) {
|
|
69
|
-
if (!this.currentBranch() || this.currentBranch().getActiveState()) {
|
|
70
|
-
this.updateAlarmState2(true, 255, "certificate is missing");
|
|
71
|
-
}
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
const thumbprint = ellipsis((0, node_opcua_crypto_1.makeSHA1Thumbprint)(this.getCertificate() || Buffer.alloc(0)).toString("hex"), 10);
|
|
75
|
-
const info = `| end date: ${d(expirationDate)} | expirationLimit=${expirationLimit}|`;
|
|
76
|
-
//
|
|
77
|
-
if (expirationDate.getTime() <= checkDate.getTime()) {
|
|
78
|
-
// also raise the event
|
|
79
|
-
if (expirationDate.getTime() <= now.getTime()) {
|
|
80
|
-
this.updateAlarmState2(true, 250, `certificate ${thumbprint} has expired ${info}`);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
// check--------------------+
|
|
84
|
-
// expiry---------------+ |
|
|
85
|
-
// today-----+ | |
|
|
86
|
-
// v v v
|
|
87
|
-
// ----------------+----------+---------+----------+
|
|
88
|
-
const t1 = checkDate.getTime() - now.getTime();
|
|
89
|
-
const t2 = checkDate.getTime() - expirationDate.getTime();
|
|
90
|
-
const severity = t1 === 0 ? 255 : Math.floor((t2 / t1) * 100) + 100;
|
|
91
|
-
this.updateAlarmState2(true, severity, `certificate ${thumbprint} is about to expire ${info}`);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
this.updateAlarmState2(false, 0, `certificate ${thumbprint} is OK! ${info}`);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
setExpirationDate(expirationDate) {
|
|
99
|
-
this.expirationDate.setValueFromSource({
|
|
100
|
-
dataType: node_opcua_variant_1.DataType.DateTime,
|
|
101
|
-
value: expirationDate
|
|
102
|
-
});
|
|
103
|
-
this._updateAlarm();
|
|
104
|
-
}
|
|
105
|
-
getExpirationLimit() {
|
|
106
|
-
var _a;
|
|
107
|
-
// This shall be a positive number. If the property is not provided, a default of 2 weeks shall be used.
|
|
108
|
-
if (!this.expirationLimit) {
|
|
109
|
-
return exports.TwoWeeksDuration;
|
|
110
|
-
}
|
|
111
|
-
const dataValue = this.expirationLimit.readValue();
|
|
112
|
-
if (dataValue.dataType === node_opcua_variant_1.DataType.Null) {
|
|
113
|
-
return exports.TwoWeeksDuration;
|
|
114
|
-
}
|
|
115
|
-
return ((_a = this.expirationLimit) === null || _a === void 0 ? void 0 : _a.readValue().value.value) || 0;
|
|
116
|
-
}
|
|
117
|
-
setExpirationLimit(value) {
|
|
118
|
-
var _a;
|
|
119
|
-
(_a = this.expirationLimit) === null || _a === void 0 ? void 0 : _a.setValueFromSource({
|
|
120
|
-
dataType: node_opcua_variant_1.DataType.Double,
|
|
121
|
-
value
|
|
122
|
-
});
|
|
123
|
-
this._updateAlarm();
|
|
124
|
-
}
|
|
125
|
-
getCertificate() {
|
|
126
|
-
return this.certificate.readValue().value.value || null;
|
|
127
|
-
}
|
|
128
|
-
_extractAndSetExpiryDate(certificate) {
|
|
129
|
-
if (certificate && certificate.length > 0) {
|
|
130
|
-
const info = (0, node_opcua_crypto_1.exploreCertificate)(certificate);
|
|
131
|
-
if (info.tbsCertificate.validity.notAfter instanceof Date) {
|
|
132
|
-
this.setExpirationDate(info.tbsCertificate.validity.notAfter);
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
this.setExpirationDate(node_opcua_basic_types_1.minOPCUADate);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
this.setExpirationDate(node_opcua_basic_types_1.minOPCUADate);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
setCertificate(certificate) {
|
|
143
|
-
this.certificate.setValueFromSource({
|
|
144
|
-
dataType: node_opcua_variant_1.DataType.ByteString,
|
|
145
|
-
value: certificate
|
|
146
|
-
});
|
|
147
|
-
this._extractAndSetExpiryDate(certificate);
|
|
148
|
-
}
|
|
149
|
-
stopTimer() {
|
|
150
|
-
if (this.timer) {
|
|
151
|
-
clearInterval(this.timer);
|
|
152
|
-
this.timer = null;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
_post_initialize() {
|
|
156
|
-
if (this.expirationLimit) {
|
|
157
|
-
this.expirationLimit.accessLevel = (0, node_opcua_data_model_1.makeAccessLevelExFlag)("CurrentRead | CurrentWrite");
|
|
158
|
-
this.expirationLimit.userAccessLevel = (0, node_opcua_data_model_1.makeAccessLevelExFlag)("CurrentRead | CurrentWrite");
|
|
159
|
-
this.expirationLimit.on("value_changed", (dataValue) => {
|
|
160
|
-
// make sure we re-evaluate the certificfate
|
|
161
|
-
const certificate = this.getCertificate();
|
|
162
|
-
this.setCertificate(certificate);
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
const certificate = this.getCertificate();
|
|
166
|
-
this._extractAndSetExpiryDate(certificate);
|
|
167
|
-
this.addressSpace.registerShutdownTask(() => {
|
|
168
|
-
this.stopTimer();
|
|
169
|
-
});
|
|
170
|
-
this.timer = setInterval(() => this.update(), exports.OneDayDuration / 48);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
function promoteToCertificateExpirationAlarm(node) {
|
|
174
|
-
if (node instanceof UACertificateExpirationAlarmImpl) {
|
|
175
|
-
return node; // already promoted
|
|
176
|
-
}
|
|
177
|
-
Object.setPrototypeOf(node, UACertificateExpirationAlarmImpl.prototype);
|
|
178
|
-
const _node = node;
|
|
179
|
-
_node._post_initialize();
|
|
180
|
-
return _node;
|
|
181
|
-
}
|
|
182
|
-
exports.promoteToCertificateExpirationAlarm = promoteToCertificateExpirationAlarm;
|
|
183
|
-
(0, register_node_promoter_1.registerNodePromoter)(node_opcua_constants_1.ObjectTypeIds.CertificateExpirationAlarmType, promoteToCertificateExpirationAlarm, true);
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.promoteToCertificateExpirationAlarm = exports.TwoWeeksDuration = exports.OneDayDuration = exports.instantiateCertificateExpirationAlarm = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @module node-opcua-address-space.AlarmsAndConditions
|
|
6
|
+
*/
|
|
7
|
+
const node_opcua_crypto_1 = require("node-opcua-crypto");
|
|
8
|
+
const node_opcua_basic_types_1 = require("node-opcua-basic-types");
|
|
9
|
+
const node_opcua_debug_1 = require("node-opcua-debug");
|
|
10
|
+
const node_opcua_variant_1 = require("node-opcua-variant");
|
|
11
|
+
const node_opcua_constants_1 = require("node-opcua-constants");
|
|
12
|
+
const node_opcua_data_model_1 = require("node-opcua-data-model");
|
|
13
|
+
const register_node_promoter_1 = require("../../source/loader/register_node_promoter");
|
|
14
|
+
const ua_system_off_normal_alarm_impl_1 = require("./ua_system_off_normal_alarm_impl");
|
|
15
|
+
const warningLog = (0, node_opcua_debug_1.make_warningLog)("AlarmsAndConditions");
|
|
16
|
+
const ellipsis = (arg0, arg1 = 4) => {
|
|
17
|
+
arg1 = Math.max(arg1, 4);
|
|
18
|
+
return arg0.length <= arg1 ? arg0 : arg0.slice(0, arg1 / 2) + "..." + arg0.slice(arg0.length - arg1 / 2);
|
|
19
|
+
};
|
|
20
|
+
const d = (d) => {
|
|
21
|
+
return d.toISOString();
|
|
22
|
+
};
|
|
23
|
+
function instantiateCertificateExpirationAlarm(namespace, alarmType, options) {
|
|
24
|
+
return UACertificateExpirationAlarmImpl.instantiate(namespace, alarmType, options);
|
|
25
|
+
}
|
|
26
|
+
exports.instantiateCertificateExpirationAlarm = instantiateCertificateExpirationAlarm;
|
|
27
|
+
// This Simple DataType is a Double that defines an interval of time in milliseconds (fractions can be used to define sub-millisecond values).
|
|
28
|
+
// Negative values are generally invalid but may have special meanings where the Duration is used.
|
|
29
|
+
exports.OneDayDuration = 1000 * 60 * 60 * 24;
|
|
30
|
+
exports.TwoWeeksDuration = exports.OneDayDuration * 2 * 7;
|
|
31
|
+
/**
|
|
32
|
+
* This UACertificateExpirationAlarm (SystemOffNormalAlarmType) is raised by the Server when the Server’s
|
|
33
|
+
* Certificate is within the ExpirationLimit
|
|
34
|
+
* of expiration. This alarm automatically returns to normal when the certificate is updated.
|
|
35
|
+
*/
|
|
36
|
+
class UACertificateExpirationAlarmImpl extends ua_system_off_normal_alarm_impl_1.UASystemOffNormalAlarmImpl {
|
|
37
|
+
static instantiate(namespace, alarmType, options
|
|
38
|
+
// data?: Record<string, VariantOptions>
|
|
39
|
+
) {
|
|
40
|
+
const alarm = ua_system_off_normal_alarm_impl_1.UASystemOffNormalAlarmImpl.instantiate(namespace, alarmType || "CertificateExpirationAlarmType", options
|
|
41
|
+
// data
|
|
42
|
+
);
|
|
43
|
+
promoteToCertificateExpirationAlarm(alarm);
|
|
44
|
+
return alarm;
|
|
45
|
+
}
|
|
46
|
+
getExpirationDate() {
|
|
47
|
+
return this.expirationDate.readValue().value.value;
|
|
48
|
+
}
|
|
49
|
+
updateAlarmState2(isActive, severity, message) {
|
|
50
|
+
//xx console.log(`${message} ${severity} ${d(new Date())}`);
|
|
51
|
+
isActive ? this.activateAlarm() : this.deactivateAlarm();
|
|
52
|
+
this.raiseNewCondition({
|
|
53
|
+
message,
|
|
54
|
+
quality: node_opcua_basic_types_1.StatusCodes.Good,
|
|
55
|
+
retain: isActive ? true : false,
|
|
56
|
+
severity
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
update() {
|
|
60
|
+
this._updateAlarm();
|
|
61
|
+
}
|
|
62
|
+
_updateAlarm() {
|
|
63
|
+
const expirationDate = this.getExpirationDate();
|
|
64
|
+
const now = new Date();
|
|
65
|
+
const expirationLimit = this.getExpirationLimit();
|
|
66
|
+
const checkDate = new Date(now.getTime() + +expirationLimit);
|
|
67
|
+
const certificate = this.getCertificate();
|
|
68
|
+
if (!expirationDate || (expirationDate === node_opcua_basic_types_1.minOPCUADate && !certificate)) {
|
|
69
|
+
if (!this.currentBranch() || this.currentBranch().getActiveState()) {
|
|
70
|
+
this.updateAlarmState2(true, 255, "certificate is missing");
|
|
71
|
+
}
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const thumbprint = ellipsis((0, node_opcua_crypto_1.makeSHA1Thumbprint)(this.getCertificate() || Buffer.alloc(0)).toString("hex"), 10);
|
|
75
|
+
const info = `| end date: ${d(expirationDate)} | expirationLimit=${expirationLimit}|`;
|
|
76
|
+
//
|
|
77
|
+
if (expirationDate.getTime() <= checkDate.getTime()) {
|
|
78
|
+
// also raise the event
|
|
79
|
+
if (expirationDate.getTime() <= now.getTime()) {
|
|
80
|
+
this.updateAlarmState2(true, 250, `certificate ${thumbprint} has expired ${info}`);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
// check--------------------+
|
|
84
|
+
// expiry---------------+ |
|
|
85
|
+
// today-----+ | |
|
|
86
|
+
// v v v
|
|
87
|
+
// ----------------+----------+---------+----------+
|
|
88
|
+
const t1 = checkDate.getTime() - now.getTime();
|
|
89
|
+
const t2 = checkDate.getTime() - expirationDate.getTime();
|
|
90
|
+
const severity = t1 === 0 ? 255 : Math.floor((t2 / t1) * 100) + 100;
|
|
91
|
+
this.updateAlarmState2(true, severity, `certificate ${thumbprint} is about to expire ${info}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
this.updateAlarmState2(false, 0, `certificate ${thumbprint} is OK! ${info}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
setExpirationDate(expirationDate) {
|
|
99
|
+
this.expirationDate.setValueFromSource({
|
|
100
|
+
dataType: node_opcua_variant_1.DataType.DateTime,
|
|
101
|
+
value: expirationDate
|
|
102
|
+
});
|
|
103
|
+
this._updateAlarm();
|
|
104
|
+
}
|
|
105
|
+
getExpirationLimit() {
|
|
106
|
+
var _a;
|
|
107
|
+
// This shall be a positive number. If the property is not provided, a default of 2 weeks shall be used.
|
|
108
|
+
if (!this.expirationLimit) {
|
|
109
|
+
return exports.TwoWeeksDuration;
|
|
110
|
+
}
|
|
111
|
+
const dataValue = this.expirationLimit.readValue();
|
|
112
|
+
if (dataValue.dataType === node_opcua_variant_1.DataType.Null) {
|
|
113
|
+
return exports.TwoWeeksDuration;
|
|
114
|
+
}
|
|
115
|
+
return ((_a = this.expirationLimit) === null || _a === void 0 ? void 0 : _a.readValue().value.value) || 0;
|
|
116
|
+
}
|
|
117
|
+
setExpirationLimit(value) {
|
|
118
|
+
var _a;
|
|
119
|
+
(_a = this.expirationLimit) === null || _a === void 0 ? void 0 : _a.setValueFromSource({
|
|
120
|
+
dataType: node_opcua_variant_1.DataType.Double,
|
|
121
|
+
value
|
|
122
|
+
});
|
|
123
|
+
this._updateAlarm();
|
|
124
|
+
}
|
|
125
|
+
getCertificate() {
|
|
126
|
+
return this.certificate.readValue().value.value || null;
|
|
127
|
+
}
|
|
128
|
+
_extractAndSetExpiryDate(certificate) {
|
|
129
|
+
if (certificate && certificate.length > 0) {
|
|
130
|
+
const info = (0, node_opcua_crypto_1.exploreCertificate)(certificate);
|
|
131
|
+
if (info.tbsCertificate.validity.notAfter instanceof Date) {
|
|
132
|
+
this.setExpirationDate(info.tbsCertificate.validity.notAfter);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
this.setExpirationDate(node_opcua_basic_types_1.minOPCUADate);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
this.setExpirationDate(node_opcua_basic_types_1.minOPCUADate);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
setCertificate(certificate) {
|
|
143
|
+
this.certificate.setValueFromSource({
|
|
144
|
+
dataType: node_opcua_variant_1.DataType.ByteString,
|
|
145
|
+
value: certificate
|
|
146
|
+
});
|
|
147
|
+
this._extractAndSetExpiryDate(certificate);
|
|
148
|
+
}
|
|
149
|
+
stopTimer() {
|
|
150
|
+
if (this.timer) {
|
|
151
|
+
clearInterval(this.timer);
|
|
152
|
+
this.timer = null;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
_post_initialize() {
|
|
156
|
+
if (this.expirationLimit) {
|
|
157
|
+
this.expirationLimit.accessLevel = (0, node_opcua_data_model_1.makeAccessLevelExFlag)("CurrentRead | CurrentWrite");
|
|
158
|
+
this.expirationLimit.userAccessLevel = (0, node_opcua_data_model_1.makeAccessLevelExFlag)("CurrentRead | CurrentWrite");
|
|
159
|
+
this.expirationLimit.on("value_changed", (dataValue) => {
|
|
160
|
+
// make sure we re-evaluate the certificfate
|
|
161
|
+
const certificate = this.getCertificate();
|
|
162
|
+
this.setCertificate(certificate);
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
const certificate = this.getCertificate();
|
|
166
|
+
this._extractAndSetExpiryDate(certificate);
|
|
167
|
+
this.addressSpace.registerShutdownTask(() => {
|
|
168
|
+
this.stopTimer();
|
|
169
|
+
});
|
|
170
|
+
this.timer = setInterval(() => this.update(), exports.OneDayDuration / 48);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
function promoteToCertificateExpirationAlarm(node) {
|
|
174
|
+
if (node instanceof UACertificateExpirationAlarmImpl) {
|
|
175
|
+
return node; // already promoted
|
|
176
|
+
}
|
|
177
|
+
Object.setPrototypeOf(node, UACertificateExpirationAlarmImpl.prototype);
|
|
178
|
+
const _node = node;
|
|
179
|
+
_node._post_initialize();
|
|
180
|
+
return _node;
|
|
181
|
+
}
|
|
182
|
+
exports.promoteToCertificateExpirationAlarm = promoteToCertificateExpirationAlarm;
|
|
183
|
+
(0, register_node_promoter_1.registerNodePromoter)(node_opcua_constants_1.ObjectTypeIds.CertificateExpirationAlarmType, promoteToCertificateExpirationAlarm, true);
|
|
184
184
|
//# sourceMappingURL=ua_certificate_expiration_alarm_impl.js.map
|