node-opcua-address-space 2.76.0 → 2.77.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/dist/source/address_space_ts.d.ts +118 -118
  2. package/dist/source/address_space_ts.js +17 -17
  3. package/dist/source/continuation_points/continuation_point_manager.d.ts +32 -32
  4. package/dist/source/continuation_points/continuation_point_manager.js +195 -195
  5. package/dist/source/helpers/adjust_browse_direction.d.ts +5 -5
  6. package/dist/source/helpers/adjust_browse_direction.js +11 -11
  7. package/dist/source/helpers/argument_list.d.ts +33 -33
  8. package/dist/source/helpers/argument_list.js +258 -258
  9. package/dist/source/helpers/call_helpers.d.ts +6 -6
  10. package/dist/source/helpers/call_helpers.js +70 -70
  11. package/dist/source/helpers/check_event_clause.d.ts +17 -0
  12. package/dist/source/helpers/check_event_clause.js +53 -0
  13. package/dist/source/helpers/check_event_clause.js.map +1 -0
  14. package/dist/source/helpers/coerce_enum_value.d.ts +6 -6
  15. package/dist/source/helpers/coerce_enum_value.js +33 -33
  16. package/dist/source/helpers/dump_tools.d.ts +14 -14
  17. package/dist/source/helpers/dump_tools.js +78 -78
  18. package/dist/source/helpers/ensure_secure_access.d.ts +9 -9
  19. package/dist/source/helpers/ensure_secure_access.js +76 -76
  20. package/dist/source/helpers/make_optionals_map.d.ts +21 -21
  21. package/dist/source/helpers/make_optionals_map.js +29 -29
  22. package/dist/source/helpers/multiform_func.d.ts +11 -11
  23. package/dist/source/helpers/multiform_func.js +75 -75
  24. package/dist/source/helpers/resolve_opaque_on_address_space.d.ts +3 -3
  25. package/dist/source/helpers/resolve_opaque_on_address_space.js +36 -36
  26. package/dist/source/index.d.ts +56 -56
  27. package/dist/source/index.js +83 -83
  28. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +19 -19
  29. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +2 -2
  30. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.d.ts +193 -193
  31. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.js +2 -2
  32. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.d.ts +12 -12
  33. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.js +2 -2
  34. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.d.ts +10 -10
  35. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.js +2 -2
  36. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +7 -7
  37. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js +2 -2
  38. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts +7 -7
  39. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.js +2 -2
  40. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +4 -4
  41. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js +2 -2
  42. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +4 -4
  43. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js +2 -2
  44. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +9 -9
  45. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js +2 -2
  46. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +4 -4
  47. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js +2 -2
  48. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +4 -4
  49. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js +2 -2
  50. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +20 -20
  51. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js +2 -2
  52. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +23 -23
  53. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js +2 -2
  54. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +32 -32
  55. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js +2 -2
  56. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +19 -19
  57. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js +2 -2
  58. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +42 -42
  59. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.js +2 -2
  60. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +7 -7
  61. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js +25 -25
  62. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +5 -5
  63. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js +2 -2
  64. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +20 -20
  65. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js +2 -2
  66. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +26 -26
  67. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js +2 -2
  68. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +8 -8
  69. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js +2 -2
  70. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +10 -10
  71. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js +2 -2
  72. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +21 -21
  73. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js +2 -2
  74. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +24 -24
  75. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js +2 -2
  76. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +12 -12
  77. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js +2 -2
  78. package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +8 -8
  79. package/dist/source/interfaces/data_access/ua_y_array_item_ex.js +2 -2
  80. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -12
  81. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +2 -2
  82. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -49
  83. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js +2 -2
  84. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -11
  85. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js +2 -2
  86. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +30 -30
  87. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.js +2 -2
  88. package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +222 -222
  89. package/dist/source/interfaces/state_machine/ua_state_machine_type.js +2 -2
  90. package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +6 -6
  91. package/dist/source/interfaces/state_machine/ua_transition_ex.js +2 -2
  92. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +8 -8
  93. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +2 -2
  94. package/dist/source/loader/decode_xml_extension_object.d.ts +6 -6
  95. package/dist/source/loader/decode_xml_extension_object.js +71 -71
  96. package/dist/source/loader/ensure_datatype_extracted.d.ts +5 -5
  97. package/dist/source/loader/ensure_datatype_extracted.js +45 -45
  98. package/dist/source/loader/generateAddressSpaceRaw.d.ts +10 -10
  99. package/dist/source/loader/generateAddressSpaceRaw.js +45 -45
  100. package/dist/source/loader/load_nodeset2.d.ts +16 -16
  101. package/dist/source/loader/load_nodeset2.js +1461 -1461
  102. package/dist/source/loader/make_semver_compatible.d.ts +6 -6
  103. package/dist/source/loader/make_semver_compatible.js +25 -25
  104. package/dist/source/loader/make_xml_extension_object_parser.d.ts +28 -28
  105. package/dist/source/loader/make_xml_extension_object_parser.js +325 -325
  106. package/dist/source/loader/namespace_post_step.d.ts +10 -10
  107. package/dist/source/loader/namespace_post_step.js +61 -61
  108. package/dist/source/loader/register_node_promoter.d.ts +2 -2
  109. package/dist/source/loader/register_node_promoter.js +9 -9
  110. package/dist/source/namespace.d.ts +6 -6
  111. package/dist/source/namespace.js +2 -2
  112. package/dist/source/namespace_alarm_and_condition.d.ts +32 -32
  113. package/dist/source/namespace_alarm_and_condition.js +2 -2
  114. package/dist/source/namespace_data_access.d.ts +42 -42
  115. package/dist/source/namespace_data_access.js +2 -2
  116. package/dist/source/namespace_machine_state.d.ts +7 -7
  117. package/dist/source/namespace_machine_state.js +2 -2
  118. package/dist/source/pseudo_session.d.ts +55 -55
  119. package/dist/source/pseudo_session.js +203 -203
  120. package/dist/source/session_context.d.ts +111 -111
  121. package/dist/source/session_context.js +265 -265
  122. package/dist/source/set_namespace_meta_data.d.ts +2 -2
  123. package/dist/source/set_namespace_meta_data.js +59 -59
  124. package/dist/source/ua_root_folder.d.ts +9 -9
  125. package/dist/source/ua_root_folder.js +2 -2
  126. package/dist/source/ua_two_state_variable_ex.d.ts +23 -23
  127. package/dist/source/ua_two_state_variable_ex.js +2 -2
  128. package/dist/source/xml_writer.d.ts +9 -9
  129. package/dist/source/xml_writer.js +2 -2
  130. package/dist/src/address_space.d.ts +392 -392
  131. package/dist/src/address_space.js +1392 -1392
  132. package/dist/src/address_space_change_event_tools.d.ts +6 -6
  133. package/dist/src/address_space_change_event_tools.js +149 -149
  134. package/dist/src/address_space_private.d.ts +43 -43
  135. package/dist/src/address_space_private.js +2 -2
  136. package/dist/src/alarms_and_conditions/check_where_clause.d.ts +4 -0
  137. package/dist/src/alarms_and_conditions/check_where_clause.js +110 -0
  138. package/dist/src/alarms_and_conditions/check_where_clause.js.map +1 -0
  139. package/dist/src/alarms_and_conditions/condition.d.ts +5 -5
  140. package/dist/src/alarms_and_conditions/condition.js +78 -78
  141. package/dist/src/alarms_and_conditions/condition_info.d.ts +27 -0
  142. package/dist/src/alarms_and_conditions/condition_info.js +55 -0
  143. package/dist/src/alarms_and_conditions/condition_info.js.map +1 -0
  144. package/dist/src/alarms_and_conditions/condition_info_impl.d.ts +26 -26
  145. package/dist/src/alarms_and_conditions/condition_info_impl.js +54 -54
  146. package/dist/src/alarms_and_conditions/condition_snapshot.d.ts +233 -0
  147. package/dist/src/alarms_and_conditions/condition_snapshot.js +667 -0
  148. package/dist/src/alarms_and_conditions/condition_snapshot.js.map +1 -0
  149. package/dist/src/alarms_and_conditions/condition_snapshot_impl.d.ts +222 -222
  150. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js +657 -657
  151. package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +9 -9
  152. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +61 -61
  153. package/dist/src/alarms_and_conditions/extract_event_fields.d.ts +10 -0
  154. package/dist/src/alarms_and_conditions/extract_event_fields.js +90 -0
  155. package/dist/src/alarms_and_conditions/extract_event_fields.js.map +1 -0
  156. package/dist/src/alarms_and_conditions/index.d.ts +16 -16
  157. package/dist/src/alarms_and_conditions/index.js +32 -32
  158. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +44 -44
  159. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -244
  160. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +93 -93
  161. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +419 -419
  162. package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +26 -26
  163. package/dist/src/alarms_and_conditions/ua_base_event_impl.js +38 -38
  164. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +44 -44
  165. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +183 -183
  166. package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +153 -153
  167. package/dist/src/alarms_and_conditions/ua_condition_impl.js +1028 -1028
  168. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +14 -14
  169. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +34 -34
  170. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +24 -24
  171. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +56 -56
  172. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +11 -11
  173. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +11 -11
  174. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +23 -23
  175. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +86 -86
  176. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +11 -11
  177. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +7 -7
  178. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +79 -79
  179. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +250 -250
  180. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +24 -24
  181. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +50 -50
  182. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +19 -19
  183. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +162 -162
  184. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +46 -46
  185. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +166 -166
  186. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +18 -18
  187. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +17 -17
  188. package/dist/src/apply_condition_refresh.d.ts +6 -6
  189. package/dist/src/apply_condition_refresh.js +27 -27
  190. package/dist/src/base_node_impl.d.ts +281 -281
  191. package/dist/src/base_node_impl.js +1395 -1395
  192. package/dist/src/base_node_private.d.ts +61 -61
  193. package/dist/src/base_node_private.js +705 -705
  194. package/dist/src/data_access/add_dataItem_stuff.d.ts +11 -11
  195. package/dist/src/data_access/add_dataItem_stuff.js +61 -61
  196. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.d.ts +1 -1
  197. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js +34 -34
  198. package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +32 -32
  199. package/dist/src/data_access/ua_multistate_discrete_impl.js +130 -130
  200. package/dist/src/data_access/ua_multistate_value_discrete.d.ts +51 -0
  201. package/dist/src/data_access/ua_multistate_value_discrete.js +250 -0
  202. package/dist/src/data_access/ua_multistate_value_discrete.js.map +1 -0
  203. package/dist/src/data_access/ua_multistate_value_discrete_impl.d.ts +51 -51
  204. package/dist/src/data_access/ua_multistate_value_discrete_impl.js +249 -249
  205. package/dist/src/data_access/ua_two_state_discrete.d.ts +25 -0
  206. package/dist/src/data_access/ua_two_state_discrete.js +154 -0
  207. package/dist/src/data_access/ua_two_state_discrete.js.map +1 -0
  208. package/dist/src/data_access/ua_two_state_discrete_impl.d.ts +25 -25
  209. package/dist/src/data_access/ua_two_state_discrete_impl.js +153 -153
  210. package/dist/src/event_data.d.ts +34 -34
  211. package/dist/src/event_data.js +64 -64
  212. package/dist/src/extension_object_array_node.d.ts +61 -61
  213. package/dist/src/extension_object_array_node.js +276 -276
  214. package/dist/src/historical_access/address_space_historical_data_node.d.ts +26 -26
  215. package/dist/src/historical_access/address_space_historical_data_node.js +630 -630
  216. package/dist/src/index_current.d.ts +43 -43
  217. package/dist/src/index_current.js +74 -74
  218. package/dist/src/namespace_impl.d.ts +461 -461
  219. package/dist/src/namespace_impl.js +1732 -1732
  220. package/dist/src/namespace_private.d.ts +21 -21
  221. package/dist/src/namespace_private.js +32 -32
  222. package/dist/src/nodeid_manager.d.ts +36 -36
  223. package/dist/src/nodeid_manager.js +197 -197
  224. package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +2 -2
  225. package/dist/src/nodeset_tools/adjust_namespace_array.js +13 -13
  226. package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +2 -2
  227. package/dist/src/nodeset_tools/construct_namespace_dependency.js +83 -83
  228. package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +2 -2
  229. package/dist/src/nodeset_tools/nodeset_to_xml.js +1155 -1155
  230. package/dist/src/nodeset_tools/typedictionary_to_xml.d.ts +2 -2
  231. package/dist/src/nodeset_tools/typedictionary_to_xml.js +154 -154
  232. package/dist/src/reference_impl.d.ts +43 -43
  233. package/dist/src/reference_impl.js +139 -139
  234. package/dist/src/role_permissions.d.ts +2 -2
  235. package/dist/src/role_permissions.js +10 -10
  236. package/dist/src/state_machine/finite_state_machine.d.ts +67 -67
  237. package/dist/src/state_machine/finite_state_machine.js +353 -353
  238. package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +38 -38
  239. package/dist/src/state_machine/ua_shelving_state_machine_ex.js +250 -250
  240. package/dist/src/state_machine/ua_two_state_variable.d.ts +61 -61
  241. package/dist/src/state_machine/ua_two_state_variable.js +331 -331
  242. package/dist/src/tool_isSupertypeOf.d.ts +17 -17
  243. package/dist/src/tool_isSupertypeOf.js +108 -108
  244. package/dist/src/ua_condition_type.d.ts +8 -8
  245. package/dist/src/ua_condition_type.js +2 -2
  246. package/dist/src/ua_data_type_impl.d.ts +93 -93
  247. package/dist/src/ua_data_type_impl.js +371 -371
  248. package/dist/src/ua_method_impl.d.ts +41 -41
  249. package/dist/src/ua_method_impl.js +208 -208
  250. package/dist/src/ua_object_impl.d.ts +35 -35
  251. package/dist/src/ua_object_impl.js +161 -161
  252. package/dist/src/ua_object_type_impl.d.ts +48 -48
  253. package/dist/src/ua_object_type_impl.js +124 -124
  254. package/dist/src/ua_reference_type_impl.d.ts +43 -43
  255. package/dist/src/ua_reference_type_impl.js +139 -139
  256. package/dist/src/ua_variable_impl.d.ts +351 -351
  257. package/dist/src/ua_variable_impl.js +1604 -1604
  258. package/dist/src/ua_variable_impl.js.map +1 -1
  259. package/dist/src/ua_variable_impl_ext_obj.d.ts +17 -17
  260. package/dist/src/ua_variable_impl_ext_obj.js +437 -437
  261. package/dist/src/ua_variable_type_impl.d.ts +62 -62
  262. package/dist/src/ua_variable_type_impl.js +570 -570
  263. package/dist/src/ua_view_impl.d.ts +19 -19
  264. package/dist/src/ua_view_impl.js +43 -43
  265. package/distHelpers/add_event_generator_object.d.ts +3 -3
  266. package/distHelpers/add_event_generator_object.js +64 -64
  267. package/distHelpers/alarms_and_conditions_demo.d.ts +9 -9
  268. package/distHelpers/alarms_and_conditions_demo.js +115 -115
  269. package/distHelpers/assertHasMatchingReference.d.ts +19 -19
  270. package/distHelpers/assertHasMatchingReference.js +40 -40
  271. package/distHelpers/boiler_system.d.ts +113 -113
  272. package/distHelpers/boiler_system.js +395 -395
  273. package/distHelpers/create_minimalist_address_space_nodeset.d.ts +5 -5
  274. package/distHelpers/create_minimalist_address_space_nodeset.js +171 -171
  275. package/distHelpers/date_utils.d.ts +3 -3
  276. package/distHelpers/date_utils.js +9 -9
  277. package/distHelpers/dump_statemachine.js +127 -127
  278. package/distHelpers/get_address_space_fixture.d.ts +1 -1
  279. package/distHelpers/get_address_space_fixture.js +30 -30
  280. package/distHelpers/get_mini_address_space.d.ts +7 -7
  281. package/distHelpers/get_mini_address_space.js +36 -36
  282. package/distHelpers/index.d.ts +12 -12
  283. package/distHelpers/index.js +28 -28
  284. package/distHelpers/mock_session.d.ts +14 -14
  285. package/distHelpers/mock_session.js +25 -25
  286. package/distNodeJS/generate_address_space.d.ts +4 -4
  287. package/distNodeJS/generate_address_space.js +41 -41
  288. package/distNodeJS/index.d.ts +1 -1
  289. package/distNodeJS/index.js +17 -17
  290. package/package.json +42 -40
  291. package/src/ua_variable_impl.ts +3 -2
@@ -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