node-opcua-address-space 2.74.0 → 2.76.1

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 (361) 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 -257
  9. package/dist/source/helpers/argument_list.js.map +1 -1
  10. package/dist/source/helpers/call_helpers.d.ts +6 -6
  11. package/dist/source/helpers/call_helpers.js +70 -70
  12. package/dist/source/helpers/coerce_enum_value.d.ts +6 -6
  13. package/dist/source/helpers/coerce_enum_value.js +33 -33
  14. package/dist/source/helpers/dump_tools.d.ts +14 -14
  15. package/dist/source/helpers/dump_tools.js +78 -78
  16. package/dist/source/helpers/ensure_secure_access.d.ts +9 -9
  17. package/dist/source/helpers/ensure_secure_access.js +76 -76
  18. package/dist/source/helpers/make_optionals_map.d.ts +21 -21
  19. package/dist/source/helpers/make_optionals_map.js +29 -29
  20. package/dist/source/helpers/multiform_func.d.ts +11 -11
  21. package/dist/source/helpers/multiform_func.js +75 -73
  22. package/dist/source/helpers/multiform_func.js.map +1 -1
  23. package/dist/source/helpers/resolve_opaque_on_address_space.d.ts +3 -3
  24. package/dist/source/helpers/resolve_opaque_on_address_space.js +36 -36
  25. package/dist/source/index.d.ts +56 -58
  26. package/dist/source/index.js +83 -87
  27. package/dist/source/index.js.map +1 -1
  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 -199
  31. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.js +2 -9
  32. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.js.map +1 -1
  33. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.d.ts +12 -14
  34. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.js +2 -2
  35. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.d.ts +10 -6
  36. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.js +2 -2
  37. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +7 -7
  38. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js +2 -2
  39. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts +7 -7
  40. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.js +2 -2
  41. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +4 -0
  42. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js +3 -0
  43. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js.map +1 -0
  44. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +4 -4
  45. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js +2 -2
  46. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +9 -9
  47. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js +2 -2
  48. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +4 -0
  49. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js +3 -0
  50. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js.map +1 -0
  51. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +4 -0
  52. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js +3 -0
  53. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js.map +1 -0
  54. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +20 -5
  55. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js +2 -2
  56. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +23 -23
  57. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js +2 -2
  58. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +32 -32
  59. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js +2 -2
  60. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +19 -15
  61. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js +2 -2
  62. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +42 -42
  63. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.js +2 -2
  64. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +7 -7
  65. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js +25 -25
  66. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +5 -5
  67. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js +2 -2
  68. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +20 -20
  69. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js +2 -2
  70. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +26 -26
  71. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js +2 -2
  72. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +8 -10
  73. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js +2 -2
  74. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +10 -10
  75. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js +2 -2
  76. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +21 -21
  77. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js +2 -2
  78. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +24 -24
  79. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js +2 -2
  80. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +12 -12
  81. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js +2 -2
  82. package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +8 -8
  83. package/dist/source/interfaces/data_access/ua_y_array_item_ex.js +2 -2
  84. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -12
  85. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +2 -2
  86. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -49
  87. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js +2 -2
  88. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -11
  89. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js +2 -2
  90. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +30 -30
  91. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.js +2 -2
  92. package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +222 -222
  93. package/dist/source/interfaces/state_machine/ua_state_machine_type.js +2 -2
  94. package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +6 -6
  95. package/dist/source/interfaces/state_machine/ua_transition_ex.js +2 -2
  96. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +8 -8
  97. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +2 -2
  98. package/dist/source/loader/decode_xml_extension_object.d.ts +6 -6
  99. package/dist/source/loader/decode_xml_extension_object.js +71 -71
  100. package/dist/source/loader/ensure_datatype_extracted.d.ts +5 -5
  101. package/dist/source/loader/ensure_datatype_extracted.js +45 -45
  102. package/dist/source/loader/generateAddressSpaceRaw.d.ts +10 -10
  103. package/dist/source/loader/generateAddressSpaceRaw.js +45 -45
  104. package/dist/source/loader/load_nodeset2.d.ts +16 -16
  105. package/dist/source/loader/load_nodeset2.js +1461 -1461
  106. package/dist/source/loader/make_semver_compatible.d.ts +6 -6
  107. package/dist/source/loader/make_semver_compatible.js +25 -25
  108. package/dist/source/loader/make_xml_extension_object_parser.d.ts +28 -28
  109. package/dist/source/loader/make_xml_extension_object_parser.js +325 -325
  110. package/dist/source/loader/namespace_post_step.d.ts +10 -6
  111. package/dist/source/loader/namespace_post_step.js +61 -47
  112. package/dist/source/loader/namespace_post_step.js.map +1 -1
  113. package/dist/source/loader/register_node_promoter.d.ts +2 -3
  114. package/dist/source/loader/register_node_promoter.js +9 -9
  115. package/dist/source/loader/register_node_promoter.js.map +1 -1
  116. package/dist/source/namespace.d.ts +6 -6
  117. package/dist/source/namespace.js +2 -2
  118. package/dist/source/namespace_alarm_and_condition.d.ts +32 -24
  119. package/dist/source/namespace_alarm_and_condition.js +2 -2
  120. package/dist/source/namespace_data_access.d.ts +42 -42
  121. package/dist/source/namespace_data_access.js +2 -2
  122. package/dist/source/namespace_machine_state.d.ts +7 -7
  123. package/dist/source/namespace_machine_state.js +2 -2
  124. package/dist/source/pseudo_session.d.ts +55 -55
  125. package/dist/source/pseudo_session.js +203 -203
  126. package/dist/source/session_context.d.ts +111 -111
  127. package/dist/source/session_context.js +265 -265
  128. package/dist/source/set_namespace_meta_data.d.ts +2 -2
  129. package/dist/source/set_namespace_meta_data.js +59 -59
  130. package/dist/source/ua_root_folder.d.ts +9 -9
  131. package/dist/source/ua_root_folder.js +2 -2
  132. package/dist/source/ua_two_state_variable_ex.d.ts +23 -23
  133. package/dist/source/ua_two_state_variable_ex.js +2 -2
  134. package/dist/source/xml_writer.d.ts +9 -9
  135. package/dist/source/xml_writer.js +2 -2
  136. package/dist/src/address_space.d.ts +392 -392
  137. package/dist/src/address_space.js +1392 -1387
  138. package/dist/src/address_space.js.map +1 -1
  139. package/dist/src/address_space_change_event_tools.d.ts +6 -6
  140. package/dist/src/address_space_change_event_tools.js +149 -149
  141. package/dist/src/address_space_private.d.ts +43 -43
  142. package/dist/src/address_space_private.js +2 -2
  143. package/dist/src/alarms_and_conditions/condition.d.ts +5 -5
  144. package/dist/src/alarms_and_conditions/condition.js +78 -78
  145. package/dist/src/alarms_and_conditions/condition_info_impl.d.ts +26 -26
  146. package/dist/src/alarms_and_conditions/condition_info_impl.js +54 -54
  147. package/dist/src/alarms_and_conditions/condition_snapshot_impl.d.ts +222 -231
  148. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js +657 -666
  149. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js.map +1 -1
  150. package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +9 -8
  151. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +61 -46
  152. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js.map +1 -1
  153. package/dist/src/alarms_and_conditions/index.d.ts +16 -18
  154. package/dist/src/alarms_and_conditions/index.js +32 -34
  155. package/dist/src/alarms_and_conditions/index.js.map +1 -1
  156. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +44 -44
  157. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -244
  158. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +93 -93
  159. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +419 -416
  160. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js.map +1 -1
  161. package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +26 -26
  162. package/dist/src/alarms_and_conditions/ua_base_event_impl.js +38 -38
  163. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +44 -36
  164. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +183 -118
  165. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js.map +1 -1
  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 -1024
  168. package/dist/src/alarms_and_conditions/ua_condition_impl.js.map +1 -1
  169. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +14 -14
  170. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +34 -34
  171. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +24 -26
  172. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +56 -56
  173. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js.map +1 -1
  174. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +11 -11
  175. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +11 -11
  176. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +23 -23
  177. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +86 -86
  178. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js.map +1 -1
  179. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +11 -11
  180. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +7 -7
  181. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +79 -79
  182. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +250 -250
  183. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js.map +1 -1
  184. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +24 -24
  185. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +50 -50
  186. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js.map +1 -1
  187. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +19 -19
  188. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +162 -162
  189. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js.map +1 -1
  190. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +46 -46
  191. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +166 -161
  192. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js.map +1 -1
  193. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +18 -18
  194. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +17 -17
  195. package/dist/src/apply_condition_refresh.d.ts +6 -6
  196. package/dist/src/apply_condition_refresh.js +27 -27
  197. package/dist/src/base_node_impl.d.ts +281 -281
  198. package/dist/src/base_node_impl.js +1395 -1395
  199. package/dist/src/base_node_private.d.ts +61 -61
  200. package/dist/src/base_node_private.js +705 -705
  201. package/dist/src/data_access/add_dataItem_stuff.d.ts +11 -11
  202. package/dist/src/data_access/add_dataItem_stuff.js +61 -61
  203. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.d.ts +1 -1
  204. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js +34 -34
  205. package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +32 -32
  206. package/dist/src/data_access/ua_multistate_discrete_impl.js +130 -130
  207. package/dist/src/data_access/ua_multistate_value_discrete_impl.d.ts +51 -51
  208. package/dist/src/data_access/ua_multistate_value_discrete_impl.js +249 -249
  209. package/dist/src/data_access/ua_two_state_discrete_impl.d.ts +25 -25
  210. package/dist/src/data_access/ua_two_state_discrete_impl.js +153 -153
  211. package/dist/src/event_data.d.ts +34 -29
  212. package/dist/src/event_data.js +64 -95
  213. package/dist/src/event_data.js.map +1 -1
  214. package/dist/src/extension_object_array_node.d.ts +61 -61
  215. package/dist/src/extension_object_array_node.js +276 -276
  216. package/dist/src/historical_access/address_space_historical_data_node.d.ts +26 -26
  217. package/dist/src/historical_access/address_space_historical_data_node.js +630 -630
  218. package/dist/src/index_current.d.ts +43 -44
  219. package/dist/src/index_current.js +74 -75
  220. package/dist/src/index_current.js.map +1 -1
  221. package/dist/src/namespace_impl.d.ts +461 -458
  222. package/dist/src/namespace_impl.js +1732 -1732
  223. package/dist/src/namespace_impl.js.map +1 -1
  224. package/dist/src/namespace_private.d.ts +21 -21
  225. package/dist/src/namespace_private.js +32 -32
  226. package/dist/src/nodeid_manager.d.ts +36 -36
  227. package/dist/src/nodeid_manager.js +197 -197
  228. package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +2 -2
  229. package/dist/src/nodeset_tools/adjust_namespace_array.js +13 -13
  230. package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +2 -2
  231. package/dist/src/nodeset_tools/construct_namespace_dependency.js +83 -83
  232. package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +2 -2
  233. package/dist/src/nodeset_tools/nodeset_to_xml.js +1155 -1155
  234. package/dist/src/nodeset_tools/typedictionary_to_xml.d.ts +2 -2
  235. package/dist/src/nodeset_tools/typedictionary_to_xml.js +154 -154
  236. package/dist/src/reference_impl.d.ts +43 -43
  237. package/dist/src/reference_impl.js +139 -139
  238. package/dist/src/role_permissions.d.ts +2 -2
  239. package/dist/src/role_permissions.js +10 -10
  240. package/dist/src/state_machine/finite_state_machine.d.ts +67 -67
  241. package/dist/src/state_machine/finite_state_machine.js +353 -353
  242. package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +38 -38
  243. package/dist/src/state_machine/ua_shelving_state_machine_ex.js +250 -250
  244. package/dist/src/state_machine/ua_two_state_variable.d.ts +61 -61
  245. package/dist/src/state_machine/ua_two_state_variable.js +331 -331
  246. package/dist/src/state_machine/ua_two_state_variable.js.map +1 -1
  247. package/dist/src/tool_isSupertypeOf.d.ts +17 -17
  248. package/dist/src/tool_isSupertypeOf.js +108 -108
  249. package/dist/src/ua_condition_type.d.ts +8 -8
  250. package/dist/src/ua_condition_type.js +2 -2
  251. package/dist/src/ua_data_type_impl.d.ts +93 -93
  252. package/dist/src/ua_data_type_impl.js +371 -371
  253. package/dist/src/ua_method_impl.d.ts +41 -41
  254. package/dist/src/ua_method_impl.js +208 -208
  255. package/dist/src/ua_object_impl.d.ts +35 -35
  256. package/dist/src/ua_object_impl.js +161 -162
  257. package/dist/src/ua_object_impl.js.map +1 -1
  258. package/dist/src/ua_object_type_impl.d.ts +48 -48
  259. package/dist/src/ua_object_type_impl.js +124 -124
  260. package/dist/src/ua_reference_type_impl.d.ts +43 -43
  261. package/dist/src/ua_reference_type_impl.js +139 -139
  262. package/dist/src/ua_variable_impl.d.ts +351 -351
  263. package/dist/src/ua_variable_impl.js +1604 -1604
  264. package/dist/src/ua_variable_impl_ext_obj.d.ts +17 -17
  265. package/dist/src/ua_variable_impl_ext_obj.js +437 -437
  266. package/dist/src/ua_variable_type_impl.d.ts +62 -62
  267. package/dist/src/ua_variable_type_impl.js +570 -570
  268. package/dist/src/ua_view_impl.d.ts +19 -19
  269. package/dist/src/ua_view_impl.js +43 -43
  270. package/distHelpers/add_event_generator_object.d.ts +3 -3
  271. package/distHelpers/add_event_generator_object.js +64 -65
  272. package/distHelpers/add_event_generator_object.js.map +1 -1
  273. package/distHelpers/alarms_and_conditions_demo.d.ts +9 -9
  274. package/distHelpers/alarms_and_conditions_demo.js +115 -114
  275. package/distHelpers/alarms_and_conditions_demo.js.map +1 -1
  276. package/distHelpers/assertHasMatchingReference.d.ts +19 -19
  277. package/distHelpers/assertHasMatchingReference.js +40 -40
  278. package/distHelpers/boiler_system.d.ts +113 -113
  279. package/distHelpers/boiler_system.js +395 -395
  280. package/distHelpers/create_minimalist_address_space_nodeset.d.ts +5 -5
  281. package/distHelpers/create_minimalist_address_space_nodeset.js +171 -171
  282. package/distHelpers/date_utils.d.ts +3 -3
  283. package/distHelpers/date_utils.js +9 -9
  284. package/distHelpers/dump_statemachine.js +127 -127
  285. package/distHelpers/get_address_space_fixture.d.ts +1 -1
  286. package/distHelpers/get_address_space_fixture.js +30 -30
  287. package/distHelpers/get_mini_address_space.d.ts +7 -7
  288. package/distHelpers/get_mini_address_space.js +36 -36
  289. package/distHelpers/index.d.ts +12 -12
  290. package/distHelpers/index.js +28 -28
  291. package/distHelpers/mock_session.d.ts +14 -14
  292. package/distHelpers/mock_session.js +25 -25
  293. package/distNodeJS/generate_address_space.d.ts +4 -4
  294. package/distNodeJS/generate_address_space.js +41 -41
  295. package/distNodeJS/index.d.ts +1 -1
  296. package/distNodeJS/index.js +17 -17
  297. package/generate.js +1 -1
  298. package/package.json +36 -37
  299. package/source/helpers/argument_list.ts +2 -0
  300. package/source/helpers/multiform_func.ts +5 -3
  301. package/source/index.ts +0 -2
  302. package/source/interfaces/alarms_and_conditions/condition_snapshot.ts +12 -30
  303. package/source/interfaces/alarms_and_conditions/deviation_stuff.ts +8 -6
  304. package/source/interfaces/alarms_and_conditions/install_setpoint_options.ts +9 -0
  305. package/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.ts +4 -0
  306. package/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.ts +2 -2
  307. package/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.ts +4 -0
  308. package/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.ts +4 -0
  309. package/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.ts +16 -1
  310. package/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.ts +5 -0
  311. package/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.ts +1 -0
  312. package/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.ts +1 -2
  313. package/source/loader/namespace_post_step.ts +26 -3
  314. package/source/loader/register_node_promoter.ts +5 -4
  315. package/source/namespace_alarm_and_condition.ts +48 -23
  316. package/src/address_space.ts +22 -16
  317. package/src/alarms_and_conditions/condition.ts +1 -1
  318. package/src/alarms_and_conditions/condition_snapshot_impl.ts +95 -102
  319. package/src/alarms_and_conditions/deviation_alarm_helper.ts +33 -18
  320. package/src/alarms_and_conditions/index.ts +0 -2
  321. package/src/alarms_and_conditions/ua_alarm_condition_impl.ts +4 -1
  322. package/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.ts +106 -49
  323. package/src/alarms_and_conditions/ua_condition_impl.ts +9 -6
  324. package/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.ts +5 -6
  325. package/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.ts +1 -1
  326. package/src/alarms_and_conditions/ua_limit_alarm_impl.ts +6 -8
  327. package/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.ts +5 -3
  328. package/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.ts +3 -3
  329. package/src/alarms_and_conditions/ua_off_normal_alarm_impl.ts +30 -26
  330. package/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.ts +1 -1
  331. package/src/event_data.ts +47 -77
  332. package/src/index_current.ts +0 -1
  333. package/src/namespace_impl.ts +47 -26
  334. package/src/state_machine/ua_two_state_variable.ts +2 -3
  335. package/src/ua_object_impl.ts +1 -2
  336. package/test_helpers/add_event_generator_object.ts +0 -1
  337. package/test_helpers/alarms_and_conditions_demo.ts +4 -1
  338. package/dist/source/helpers/check_event_clause.d.ts +0 -17
  339. package/dist/source/helpers/check_event_clause.js +0 -53
  340. package/dist/source/helpers/check_event_clause.js.map +0 -1
  341. package/dist/src/alarms_and_conditions/check_where_clause.d.ts +0 -4
  342. package/dist/src/alarms_and_conditions/check_where_clause.js +0 -110
  343. package/dist/src/alarms_and_conditions/check_where_clause.js.map +0 -1
  344. package/dist/src/alarms_and_conditions/condition_info.d.ts +0 -27
  345. package/dist/src/alarms_and_conditions/condition_info.js +0 -55
  346. package/dist/src/alarms_and_conditions/condition_info.js.map +0 -1
  347. package/dist/src/alarms_and_conditions/condition_snapshot.d.ts +0 -233
  348. package/dist/src/alarms_and_conditions/condition_snapshot.js +0 -667
  349. package/dist/src/alarms_and_conditions/condition_snapshot.js.map +0 -1
  350. package/dist/src/alarms_and_conditions/extract_event_fields.d.ts +0 -10
  351. package/dist/src/alarms_and_conditions/extract_event_fields.js +0 -90
  352. package/dist/src/alarms_and_conditions/extract_event_fields.js.map +0 -1
  353. package/dist/src/data_access/ua_multistate_value_discrete.d.ts +0 -51
  354. package/dist/src/data_access/ua_multistate_value_discrete.js +0 -250
  355. package/dist/src/data_access/ua_multistate_value_discrete.js.map +0 -1
  356. package/dist/src/data_access/ua_two_state_discrete.d.ts +0 -25
  357. package/dist/src/data_access/ua_two_state_discrete.js +0 -154
  358. package/dist/src/data_access/ua_two_state_discrete.js.map +0 -1
  359. package/source/helpers/check_event_clause.ts +0 -55
  360. package/src/alarms_and_conditions/check_where_clause.ts +0 -147
  361. package/src/alarms_and_conditions/extract_event_fields.ts +0 -103
@@ -1,266 +1,266 @@
1
- "use strict";
2
- /**
3
- * @module node-opcua-address-space
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SessionContext = exports.makeRoles = exports.WellKnownRolesNodeId = exports.WellKnownRoles = exports.PermissionType = exports.RolePermissionType = void 0;
7
- const node_opcua_assert_1 = require("node-opcua-assert");
8
- const node_opcua_crypto_1 = require("node-opcua-crypto");
9
- const node_opcua_data_model_1 = require("node-opcua-data-model");
10
- const node_opcua_nodeid_1 = require("node-opcua-nodeid");
11
- const node_opcua_types_1 = require("node-opcua-types");
12
- const node_opcua_status_code_1 = require("node-opcua-status-code");
13
- var node_opcua_types_2 = require("node-opcua-types");
14
- Object.defineProperty(exports, "RolePermissionType", { enumerable: true, get: function () { return node_opcua_types_2.RolePermissionType; } });
15
- Object.defineProperty(exports, "PermissionType", { enumerable: true, get: function () { return node_opcua_types_2.PermissionType; } });
16
- function getUserName(userIdentityToken) {
17
- if (userIdentityToken instanceof node_opcua_types_1.AnonymousIdentityToken) {
18
- return "anonymous";
19
- }
20
- if (userIdentityToken instanceof node_opcua_types_1.X509IdentityToken) {
21
- const certInfo = (0, node_opcua_crypto_1.exploreCertificate)(userIdentityToken.certificateData);
22
- const userName = certInfo.tbsCertificate.subject.commonName || "";
23
- if (typeof userName !== "string") {
24
- throw new Error("Invalid username");
25
- }
26
- return userName;
27
- }
28
- if (userIdentityToken instanceof node_opcua_types_1.UserNameIdentityToken) {
29
- if (userIdentityToken.policyId === "anonymous") {
30
- return "anonymous";
31
- }
32
- (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(userIdentityToken, "userName"));
33
- return userIdentityToken.userName;
34
- }
35
- throw new Error("Invalid user identity token");
36
- }
37
- /**
38
- *
39
- */
40
- var WellKnownRoles;
41
- (function (WellKnownRoles) {
42
- WellKnownRoles[WellKnownRoles["Anonymous"] = 15644] = "Anonymous";
43
- WellKnownRoles[WellKnownRoles["AuthenticatedUser"] = 15656] = "AuthenticatedUser";
44
- WellKnownRoles[WellKnownRoles["ConfigureAdmin"] = 15716] = "ConfigureAdmin";
45
- WellKnownRoles[WellKnownRoles["Engineer"] = 16036] = "Engineer";
46
- WellKnownRoles[WellKnownRoles["Observer"] = 15668] = "Observer";
47
- WellKnownRoles[WellKnownRoles["Operator"] = 15680] = "Operator";
48
- WellKnownRoles[WellKnownRoles["SecurityAdmin"] = 15704] = "SecurityAdmin";
49
- WellKnownRoles[WellKnownRoles["Supervisor"] = 15692] = "Supervisor";
50
- })(WellKnownRoles = exports.WellKnownRoles || (exports.WellKnownRoles = {}));
51
- var WellKnownRolesNodeId;
52
- (function (WellKnownRolesNodeId) {
53
- WellKnownRolesNodeId[WellKnownRolesNodeId["Anonymous"] = 15644] = "Anonymous";
54
- WellKnownRolesNodeId[WellKnownRolesNodeId["AuthenticatedUser"] = 15656] = "AuthenticatedUser";
55
- WellKnownRolesNodeId[WellKnownRolesNodeId["ConfigureAdmin"] = 15716] = "ConfigureAdmin";
56
- WellKnownRolesNodeId[WellKnownRolesNodeId["Engineer"] = 16036] = "Engineer";
57
- WellKnownRolesNodeId[WellKnownRolesNodeId["Observer"] = 15668] = "Observer";
58
- WellKnownRolesNodeId[WellKnownRolesNodeId["Operator"] = 15680] = "Operator";
59
- WellKnownRolesNodeId[WellKnownRolesNodeId["SecurityAdmin"] = 15704] = "SecurityAdmin";
60
- WellKnownRolesNodeId[WellKnownRolesNodeId["Supervisor"] = 15692] = "Supervisor";
61
- })(WellKnownRolesNodeId = exports.WellKnownRolesNodeId || (exports.WellKnownRolesNodeId = {}));
62
- function getPermissionForRole(rolePermissions, role) {
63
- if (rolePermissions === null) {
64
- return node_opcua_data_model_1.allPermissions;
65
- }
66
- const a = rolePermissions.find((r) => {
67
- return (0, node_opcua_nodeid_1.sameNodeId)((0, node_opcua_nodeid_1.resolveNodeId)(r.roleId), role);
68
- });
69
- return a !== undefined ? a.permissions | node_opcua_data_model_1.PermissionFlag.None : node_opcua_data_model_1.PermissionFlag.None;
70
- }
71
- function isDefaultContext(context) {
72
- return context === SessionContext.defaultContext;
73
- }
74
- function getAccessRestrictionsOnNamespace(namespace, context) {
75
- var _a, _b, _c;
76
- // ignore permission when default context is provided (to avoid recursion)
77
- if (isDefaultContext(context)) {
78
- return node_opcua_data_model_1.AccessRestrictionsFlag.None;
79
- }
80
- const namespaces = (_c = (_b = (_a = namespace.addressSpace.rootFolder) === null || _a === void 0 ? void 0 : _a.objects) === null || _b === void 0 ? void 0 : _b.server) === null || _c === void 0 ? void 0 : _c.namespaces;
81
- if (!namespaces) {
82
- return node_opcua_data_model_1.AccessRestrictionsFlag.None;
83
- }
84
- const namespaceObject = namespaces.getChildByName(namespace.namespaceUri);
85
- if (!namespaceObject) {
86
- return node_opcua_data_model_1.AccessRestrictionsFlag.None;
87
- }
88
- const defaultAccessRestriction = namespaceObject.getChildByName("defaultAccessRestriction");
89
- if (defaultAccessRestriction) {
90
- const dataValue = defaultAccessRestriction.readAttribute(null, node_opcua_data_model_1.AttributeIds.Value);
91
- if (dataValue && dataValue.statusCode === node_opcua_status_code_1.StatusCodes.Good) {
92
- return dataValue.value.value;
93
- }
94
- }
95
- return node_opcua_data_model_1.AccessRestrictionsFlag.None;
96
- }
97
- function getDefaultUserRolePermissionsOnNamespace(namespace, context) {
98
- var _a, _b, _c;
99
- // ignore permission when default context is provided
100
- if (isDefaultContext(context)) {
101
- return null;
102
- }
103
- const namespaces = (_c = (_b = (_a = namespace.addressSpace.rootFolder) === null || _a === void 0 ? void 0 : _a.objects) === null || _b === void 0 ? void 0 : _b.server) === null || _c === void 0 ? void 0 : _c.namespaces;
104
- if (!namespaces) {
105
- return null;
106
- }
107
- const uaNamespaceObject = namespaces.getChildByName(namespace.namespaceUri);
108
- if (!uaNamespaceObject) {
109
- return null;
110
- }
111
- const defaultUserRolePermissions = uaNamespaceObject.getChildByName("DefaultUserRolePermissions");
112
- if (defaultUserRolePermissions) {
113
- const dataValue = defaultUserRolePermissions.readValue();
114
- if (dataValue && dataValue.statusCode === node_opcua_status_code_1.StatusCodes.Good && dataValue.value.value && dataValue.value.value.length > 0) {
115
- return dataValue.value.value;
116
- }
117
- }
118
- const defaultRolePermissions = uaNamespaceObject.getChildByName("DefaultRolePermissions");
119
- if (defaultRolePermissions) {
120
- const dataValue = defaultRolePermissions.readValue();
121
- if (dataValue && dataValue.statusCode === node_opcua_status_code_1.StatusCodes.Good) {
122
- return dataValue.value.value;
123
- }
124
- }
125
- return null;
126
- }
127
- function makeRoles(roleIds) {
128
- if (typeof roleIds === "number") {
129
- roleIds = [roleIds];
130
- }
131
- if (typeof roleIds === "string") {
132
- roleIds = roleIds.split(";").map((r) => (0, node_opcua_nodeid_1.resolveNodeId)("WellKnownRole_" + r));
133
- }
134
- return roleIds.map((r) => (0, node_opcua_nodeid_1.resolveNodeId)(r));
135
- }
136
- exports.makeRoles = makeRoles;
137
- class SessionContext {
138
- constructor(options) {
139
- this.continuationPoints = {};
140
- options = options || {};
141
- this.session = options.session;
142
- this.object = options.object;
143
- this.server = options.server;
144
- this.currentTime = undefined;
145
- }
146
- /**
147
- * getCurrentUserRoles
148
- *
149
- * guest => anonymous user (unauthenticated)
150
- * default => default authenticated user
151
- *
152
- */
153
- getCurrentUserRoles() {
154
- if (!this.session) {
155
- return []; // default context => no Session
156
- }
157
- (0, node_opcua_assert_1.assert)(this.session != null, "expecting a session");
158
- const userIdentityToken = this.session.userIdentityToken;
159
- if (!userIdentityToken) {
160
- return [];
161
- }
162
- const anonymous = makeRoles([WellKnownRoles.Anonymous]);
163
- const username = getUserName(userIdentityToken);
164
- if (username === "anonymous") {
165
- return anonymous;
166
- }
167
- if (!this.server || !this.server.userManager) {
168
- return anonymous;
169
- }
170
- (0, node_opcua_assert_1.assert)(this.server != null, "expecting a server");
171
- if (typeof this.server.userManager.getUserRoles !== "function") {
172
- return anonymous;
173
- }
174
- const rolesNodeId = this.server.userManager.getUserRoles(username);
175
- if (rolesNodeId.findIndex((r) => r.namespace === 0 && r.value === WellKnownRoles.AuthenticatedUser) < 0) {
176
- rolesNodeId.push((0, node_opcua_nodeid_1.resolveNodeId)(WellKnownRoles.AuthenticatedUser));
177
- }
178
- return rolesNodeId;
179
- }
180
- getApplicableRolePermissions(node) {
181
- if (!node.rolePermissions) {
182
- const namespace = node.namespace;
183
- const defaultUserRolePermissions = getDefaultUserRolePermissionsOnNamespace(namespace, this);
184
- return defaultUserRolePermissions;
185
- }
186
- return node.rolePermissions;
187
- }
188
- getPermissions(node) {
189
- const applicableRolePermissions = this.getApplicableRolePermissions(node);
190
- const roles = this.getCurrentUserRoles();
191
- if (roles.length === 0) {
192
- return node_opcua_data_model_1.allPermissions;
193
- }
194
- let orFlags = 0;
195
- for (const role of roles) {
196
- orFlags = orFlags | getPermissionForRole(applicableRolePermissions, role);
197
- }
198
- return orFlags;
199
- }
200
- getAccessRestrictions(node) {
201
- if (node.accessRestrictions === undefined) {
202
- const namespace = node.namespace;
203
- const accessRestrictions = getAccessRestrictionsOnNamespace(namespace, this);
204
- return accessRestrictions;
205
- }
206
- return node.accessRestrictions;
207
- }
208
- /**
209
- *
210
- * @param node
211
- * @returns true if the browse is denied (access is restricted)
212
- */
213
- isBrowseAccessRestricted(node) {
214
- if (this.checkPermission(node, node_opcua_types_1.PermissionType.Browse)) {
215
- return false; // can browse
216
- }
217
- return true; // browse restriction
218
- }
219
- /**
220
- *
221
- * @param node
222
- * @returns true if the context is access restricted
223
- */
224
- isAccessRestricted(node) {
225
- var _a, _b;
226
- const accessRestrictions = this.getAccessRestrictions(node);
227
- if (accessRestrictions === node_opcua_data_model_1.AccessRestrictionsFlag.None) {
228
- return false;
229
- }
230
- if (accessRestrictions & node_opcua_data_model_1.AccessRestrictionsFlag.SessionRequired) {
231
- if (!this.session) {
232
- return true;
233
- }
234
- }
235
- const securityMode = (_b = (_a = this.session) === null || _a === void 0 ? void 0 : _a.channel) === null || _b === void 0 ? void 0 : _b.securityMode;
236
- if (accessRestrictions & node_opcua_data_model_1.AccessRestrictionsFlag.SigningRequired) {
237
- if (securityMode !== node_opcua_types_1.MessageSecurityMode.Sign && securityMode !== node_opcua_types_1.MessageSecurityMode.SignAndEncrypt) {
238
- return true;
239
- }
240
- }
241
- if (accessRestrictions & node_opcua_data_model_1.AccessRestrictionsFlag.EncryptionRequired) {
242
- if (securityMode !== node_opcua_types_1.MessageSecurityMode.SignAndEncrypt) {
243
- return true;
244
- }
245
- }
246
- return false;
247
- }
248
- /**
249
- * @method checkPermission
250
- * @param node
251
- * @param requestedPermission
252
- * @return {Boolean} returns true of the current user is granted the requested Permission
253
- */
254
- checkPermission(node, requestedPermission) {
255
- const permissions = this.getPermissions(node);
256
- return (permissions & requestedPermission) === requestedPermission;
257
- }
258
- currentUserHasRole(role) {
259
- const currentUserRole = this.getCurrentUserRoles();
260
- const n = (0, node_opcua_nodeid_1.resolveNodeId)(role);
261
- return currentUserRole.findIndex((r) => (0, node_opcua_nodeid_1.sameNodeId)(r, n)) >= 0;
262
- }
263
- }
264
- exports.SessionContext = SessionContext;
265
- SessionContext.defaultContext = new SessionContext({});
1
+ "use strict";
2
+ /**
3
+ * @module node-opcua-address-space
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SessionContext = exports.makeRoles = exports.WellKnownRolesNodeId = exports.WellKnownRoles = exports.PermissionType = exports.RolePermissionType = void 0;
7
+ const node_opcua_assert_1 = require("node-opcua-assert");
8
+ const node_opcua_crypto_1 = require("node-opcua-crypto");
9
+ const node_opcua_data_model_1 = require("node-opcua-data-model");
10
+ const node_opcua_nodeid_1 = require("node-opcua-nodeid");
11
+ const node_opcua_types_1 = require("node-opcua-types");
12
+ const node_opcua_status_code_1 = require("node-opcua-status-code");
13
+ var node_opcua_types_2 = require("node-opcua-types");
14
+ Object.defineProperty(exports, "RolePermissionType", { enumerable: true, get: function () { return node_opcua_types_2.RolePermissionType; } });
15
+ Object.defineProperty(exports, "PermissionType", { enumerable: true, get: function () { return node_opcua_types_2.PermissionType; } });
16
+ function getUserName(userIdentityToken) {
17
+ if (userIdentityToken instanceof node_opcua_types_1.AnonymousIdentityToken) {
18
+ return "anonymous";
19
+ }
20
+ if (userIdentityToken instanceof node_opcua_types_1.X509IdentityToken) {
21
+ const certInfo = (0, node_opcua_crypto_1.exploreCertificate)(userIdentityToken.certificateData);
22
+ const userName = certInfo.tbsCertificate.subject.commonName || "";
23
+ if (typeof userName !== "string") {
24
+ throw new Error("Invalid username");
25
+ }
26
+ return userName;
27
+ }
28
+ if (userIdentityToken instanceof node_opcua_types_1.UserNameIdentityToken) {
29
+ if (userIdentityToken.policyId === "anonymous") {
30
+ return "anonymous";
31
+ }
32
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(userIdentityToken, "userName"));
33
+ return userIdentityToken.userName;
34
+ }
35
+ throw new Error("Invalid user identity token");
36
+ }
37
+ /**
38
+ *
39
+ */
40
+ var WellKnownRoles;
41
+ (function (WellKnownRoles) {
42
+ WellKnownRoles[WellKnownRoles["Anonymous"] = 15644] = "Anonymous";
43
+ WellKnownRoles[WellKnownRoles["AuthenticatedUser"] = 15656] = "AuthenticatedUser";
44
+ WellKnownRoles[WellKnownRoles["ConfigureAdmin"] = 15716] = "ConfigureAdmin";
45
+ WellKnownRoles[WellKnownRoles["Engineer"] = 16036] = "Engineer";
46
+ WellKnownRoles[WellKnownRoles["Observer"] = 15668] = "Observer";
47
+ WellKnownRoles[WellKnownRoles["Operator"] = 15680] = "Operator";
48
+ WellKnownRoles[WellKnownRoles["SecurityAdmin"] = 15704] = "SecurityAdmin";
49
+ WellKnownRoles[WellKnownRoles["Supervisor"] = 15692] = "Supervisor";
50
+ })(WellKnownRoles = exports.WellKnownRoles || (exports.WellKnownRoles = {}));
51
+ var WellKnownRolesNodeId;
52
+ (function (WellKnownRolesNodeId) {
53
+ WellKnownRolesNodeId[WellKnownRolesNodeId["Anonymous"] = 15644] = "Anonymous";
54
+ WellKnownRolesNodeId[WellKnownRolesNodeId["AuthenticatedUser"] = 15656] = "AuthenticatedUser";
55
+ WellKnownRolesNodeId[WellKnownRolesNodeId["ConfigureAdmin"] = 15716] = "ConfigureAdmin";
56
+ WellKnownRolesNodeId[WellKnownRolesNodeId["Engineer"] = 16036] = "Engineer";
57
+ WellKnownRolesNodeId[WellKnownRolesNodeId["Observer"] = 15668] = "Observer";
58
+ WellKnownRolesNodeId[WellKnownRolesNodeId["Operator"] = 15680] = "Operator";
59
+ WellKnownRolesNodeId[WellKnownRolesNodeId["SecurityAdmin"] = 15704] = "SecurityAdmin";
60
+ WellKnownRolesNodeId[WellKnownRolesNodeId["Supervisor"] = 15692] = "Supervisor";
61
+ })(WellKnownRolesNodeId = exports.WellKnownRolesNodeId || (exports.WellKnownRolesNodeId = {}));
62
+ function getPermissionForRole(rolePermissions, role) {
63
+ if (rolePermissions === null) {
64
+ return node_opcua_data_model_1.allPermissions;
65
+ }
66
+ const a = rolePermissions.find((r) => {
67
+ return (0, node_opcua_nodeid_1.sameNodeId)((0, node_opcua_nodeid_1.resolveNodeId)(r.roleId), role);
68
+ });
69
+ return a !== undefined ? a.permissions | node_opcua_data_model_1.PermissionFlag.None : node_opcua_data_model_1.PermissionFlag.None;
70
+ }
71
+ function isDefaultContext(context) {
72
+ return context === SessionContext.defaultContext;
73
+ }
74
+ function getAccessRestrictionsOnNamespace(namespace, context) {
75
+ var _a, _b, _c;
76
+ // ignore permission when default context is provided (to avoid recursion)
77
+ if (isDefaultContext(context)) {
78
+ return node_opcua_data_model_1.AccessRestrictionsFlag.None;
79
+ }
80
+ const namespaces = (_c = (_b = (_a = namespace.addressSpace.rootFolder) === null || _a === void 0 ? void 0 : _a.objects) === null || _b === void 0 ? void 0 : _b.server) === null || _c === void 0 ? void 0 : _c.namespaces;
81
+ if (!namespaces) {
82
+ return node_opcua_data_model_1.AccessRestrictionsFlag.None;
83
+ }
84
+ const namespaceObject = namespaces.getChildByName(namespace.namespaceUri);
85
+ if (!namespaceObject) {
86
+ return node_opcua_data_model_1.AccessRestrictionsFlag.None;
87
+ }
88
+ const defaultAccessRestriction = namespaceObject.getChildByName("defaultAccessRestriction");
89
+ if (defaultAccessRestriction) {
90
+ const dataValue = defaultAccessRestriction.readAttribute(null, node_opcua_data_model_1.AttributeIds.Value);
91
+ if (dataValue && dataValue.statusCode === node_opcua_status_code_1.StatusCodes.Good) {
92
+ return dataValue.value.value;
93
+ }
94
+ }
95
+ return node_opcua_data_model_1.AccessRestrictionsFlag.None;
96
+ }
97
+ function getDefaultUserRolePermissionsOnNamespace(namespace, context) {
98
+ var _a, _b, _c;
99
+ // ignore permission when default context is provided
100
+ if (isDefaultContext(context)) {
101
+ return null;
102
+ }
103
+ const namespaces = (_c = (_b = (_a = namespace.addressSpace.rootFolder) === null || _a === void 0 ? void 0 : _a.objects) === null || _b === void 0 ? void 0 : _b.server) === null || _c === void 0 ? void 0 : _c.namespaces;
104
+ if (!namespaces) {
105
+ return null;
106
+ }
107
+ const uaNamespaceObject = namespaces.getChildByName(namespace.namespaceUri);
108
+ if (!uaNamespaceObject) {
109
+ return null;
110
+ }
111
+ const defaultUserRolePermissions = uaNamespaceObject.getChildByName("DefaultUserRolePermissions");
112
+ if (defaultUserRolePermissions) {
113
+ const dataValue = defaultUserRolePermissions.readValue();
114
+ if (dataValue && dataValue.statusCode === node_opcua_status_code_1.StatusCodes.Good && dataValue.value.value && dataValue.value.value.length > 0) {
115
+ return dataValue.value.value;
116
+ }
117
+ }
118
+ const defaultRolePermissions = uaNamespaceObject.getChildByName("DefaultRolePermissions");
119
+ if (defaultRolePermissions) {
120
+ const dataValue = defaultRolePermissions.readValue();
121
+ if (dataValue && dataValue.statusCode === node_opcua_status_code_1.StatusCodes.Good) {
122
+ return dataValue.value.value;
123
+ }
124
+ }
125
+ return null;
126
+ }
127
+ function makeRoles(roleIds) {
128
+ if (typeof roleIds === "number") {
129
+ roleIds = [roleIds];
130
+ }
131
+ if (typeof roleIds === "string") {
132
+ roleIds = roleIds.split(";").map((r) => (0, node_opcua_nodeid_1.resolveNodeId)("WellKnownRole_" + r));
133
+ }
134
+ return roleIds.map((r) => (0, node_opcua_nodeid_1.resolveNodeId)(r));
135
+ }
136
+ exports.makeRoles = makeRoles;
137
+ class SessionContext {
138
+ constructor(options) {
139
+ this.continuationPoints = {};
140
+ options = options || {};
141
+ this.session = options.session;
142
+ this.object = options.object;
143
+ this.server = options.server;
144
+ this.currentTime = undefined;
145
+ }
146
+ /**
147
+ * getCurrentUserRoles
148
+ *
149
+ * guest => anonymous user (unauthenticated)
150
+ * default => default authenticated user
151
+ *
152
+ */
153
+ getCurrentUserRoles() {
154
+ if (!this.session) {
155
+ return []; // default context => no Session
156
+ }
157
+ (0, node_opcua_assert_1.assert)(this.session != null, "expecting a session");
158
+ const userIdentityToken = this.session.userIdentityToken;
159
+ if (!userIdentityToken) {
160
+ return [];
161
+ }
162
+ const anonymous = makeRoles([WellKnownRoles.Anonymous]);
163
+ const username = getUserName(userIdentityToken);
164
+ if (username === "anonymous") {
165
+ return anonymous;
166
+ }
167
+ if (!this.server || !this.server.userManager) {
168
+ return anonymous;
169
+ }
170
+ (0, node_opcua_assert_1.assert)(this.server != null, "expecting a server");
171
+ if (typeof this.server.userManager.getUserRoles !== "function") {
172
+ return anonymous;
173
+ }
174
+ const rolesNodeId = this.server.userManager.getUserRoles(username);
175
+ if (rolesNodeId.findIndex((r) => r.namespace === 0 && r.value === WellKnownRoles.AuthenticatedUser) < 0) {
176
+ rolesNodeId.push((0, node_opcua_nodeid_1.resolveNodeId)(WellKnownRoles.AuthenticatedUser));
177
+ }
178
+ return rolesNodeId;
179
+ }
180
+ getApplicableRolePermissions(node) {
181
+ if (!node.rolePermissions) {
182
+ const namespace = node.namespace;
183
+ const defaultUserRolePermissions = getDefaultUserRolePermissionsOnNamespace(namespace, this);
184
+ return defaultUserRolePermissions;
185
+ }
186
+ return node.rolePermissions;
187
+ }
188
+ getPermissions(node) {
189
+ const applicableRolePermissions = this.getApplicableRolePermissions(node);
190
+ const roles = this.getCurrentUserRoles();
191
+ if (roles.length === 0) {
192
+ return node_opcua_data_model_1.allPermissions;
193
+ }
194
+ let orFlags = 0;
195
+ for (const role of roles) {
196
+ orFlags = orFlags | getPermissionForRole(applicableRolePermissions, role);
197
+ }
198
+ return orFlags;
199
+ }
200
+ getAccessRestrictions(node) {
201
+ if (node.accessRestrictions === undefined) {
202
+ const namespace = node.namespace;
203
+ const accessRestrictions = getAccessRestrictionsOnNamespace(namespace, this);
204
+ return accessRestrictions;
205
+ }
206
+ return node.accessRestrictions;
207
+ }
208
+ /**
209
+ *
210
+ * @param node
211
+ * @returns true if the browse is denied (access is restricted)
212
+ */
213
+ isBrowseAccessRestricted(node) {
214
+ if (this.checkPermission(node, node_opcua_types_1.PermissionType.Browse)) {
215
+ return false; // can browse
216
+ }
217
+ return true; // browse restriction
218
+ }
219
+ /**
220
+ *
221
+ * @param node
222
+ * @returns true if the context is access restricted
223
+ */
224
+ isAccessRestricted(node) {
225
+ var _a, _b;
226
+ const accessRestrictions = this.getAccessRestrictions(node);
227
+ if (accessRestrictions === node_opcua_data_model_1.AccessRestrictionsFlag.None) {
228
+ return false;
229
+ }
230
+ if (accessRestrictions & node_opcua_data_model_1.AccessRestrictionsFlag.SessionRequired) {
231
+ if (!this.session) {
232
+ return true;
233
+ }
234
+ }
235
+ const securityMode = (_b = (_a = this.session) === null || _a === void 0 ? void 0 : _a.channel) === null || _b === void 0 ? void 0 : _b.securityMode;
236
+ if (accessRestrictions & node_opcua_data_model_1.AccessRestrictionsFlag.SigningRequired) {
237
+ if (securityMode !== node_opcua_types_1.MessageSecurityMode.Sign && securityMode !== node_opcua_types_1.MessageSecurityMode.SignAndEncrypt) {
238
+ return true;
239
+ }
240
+ }
241
+ if (accessRestrictions & node_opcua_data_model_1.AccessRestrictionsFlag.EncryptionRequired) {
242
+ if (securityMode !== node_opcua_types_1.MessageSecurityMode.SignAndEncrypt) {
243
+ return true;
244
+ }
245
+ }
246
+ return false;
247
+ }
248
+ /**
249
+ * @method checkPermission
250
+ * @param node
251
+ * @param requestedPermission
252
+ * @return {Boolean} returns true of the current user is granted the requested Permission
253
+ */
254
+ checkPermission(node, requestedPermission) {
255
+ const permissions = this.getPermissions(node);
256
+ return (permissions & requestedPermission) === requestedPermission;
257
+ }
258
+ currentUserHasRole(role) {
259
+ const currentUserRole = this.getCurrentUserRoles();
260
+ const n = (0, node_opcua_nodeid_1.resolveNodeId)(role);
261
+ return currentUserRole.findIndex((r) => (0, node_opcua_nodeid_1.sameNodeId)(r, n)) >= 0;
262
+ }
263
+ }
264
+ exports.SessionContext = SessionContext;
265
+ SessionContext.defaultContext = new SessionContext({});
266
266
  //# sourceMappingURL=session_context.js.map
@@ -1,2 +1,2 @@
1
- import { INamespace } from "node-opcua-address-space-base";
2
- export declare function setNamespaceMetaData(namespace: INamespace): void;
1
+ import { INamespace } from "node-opcua-address-space-base";
2
+ export declare function setNamespaceMetaData(namespace: INamespace): void;