node-opcua-address-space 2.71.0 → 2.72.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 (407) 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 +34 -34
  8. package/dist/source/helpers/argument_list.js +285 -285
  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 -17
  12. package/dist/source/helpers/check_event_clause.js +52 -52
  13. package/dist/source/helpers/coerce_enum_value.d.ts +6 -6
  14. package/dist/source/helpers/coerce_enum_value.js +33 -33
  15. package/dist/source/helpers/dump_tools.d.ts +14 -14
  16. package/dist/source/helpers/dump_tools.js +78 -78
  17. package/dist/source/helpers/ensure_secure_access.d.ts +9 -9
  18. package/dist/source/helpers/ensure_secure_access.js +76 -76
  19. package/dist/source/helpers/make_optionals_map.d.ts +21 -21
  20. package/dist/source/helpers/make_optionals_map.js +29 -29
  21. package/dist/source/helpers/multiform_func.d.ts +11 -11
  22. package/dist/source/helpers/multiform_func.js +73 -73
  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 +40 -40
  26. package/dist/source/index.js +66 -66
  27. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +12 -12
  28. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +2 -2
  29. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +21 -21
  30. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js +2 -2
  31. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +24 -24
  32. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js +2 -2
  33. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +12 -12
  34. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js +2 -2
  35. package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +8 -8
  36. package/dist/source/interfaces/data_access/ua_y_array_item_ex.js +2 -2
  37. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -12
  38. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +2 -2
  39. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -49
  40. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js +2 -2
  41. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -11
  42. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js +2 -2
  43. package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +222 -222
  44. package/dist/source/interfaces/state_machine/ua_state_machine_type.js +2 -2
  45. package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +6 -6
  46. package/dist/source/interfaces/state_machine/ua_transition_ex.js +2 -2
  47. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +8 -8
  48. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +2 -2
  49. package/dist/source/loader/decode_xml_extension_object.d.ts +6 -6
  50. package/dist/source/loader/decode_xml_extension_object.js +71 -71
  51. package/dist/source/loader/ensure_datatype_extracted.d.ts +5 -5
  52. package/dist/source/loader/ensure_datatype_extracted.js +45 -45
  53. package/dist/source/loader/generateAddressSpaceRaw.d.ts +10 -10
  54. package/dist/source/loader/generateAddressSpaceRaw.js +45 -45
  55. package/dist/source/loader/load_nodeset2.d.ts +16 -16
  56. package/dist/source/loader/load_nodeset2.js +1463 -1464
  57. package/dist/source/loader/load_nodeset2.js.map +1 -1
  58. package/dist/source/loader/make_semver_compatible.d.ts +6 -0
  59. package/dist/source/loader/make_semver_compatible.js +26 -0
  60. package/dist/source/loader/make_semver_compatible.js.map +1 -0
  61. package/dist/source/loader/make_xml_extension_object_parser.d.ts +28 -28
  62. package/dist/source/loader/make_xml_extension_object_parser.js +324 -315
  63. package/dist/source/loader/make_xml_extension_object_parser.js.map +1 -1
  64. package/dist/source/loader/namespace_post_step.d.ts +6 -6
  65. package/dist/source/loader/namespace_post_step.js +47 -47
  66. package/dist/source/loader/register_node_promoter.d.ts +3 -3
  67. package/dist/source/loader/register_node_promoter.js +9 -9
  68. package/dist/source/namespace.d.ts +6 -6
  69. package/dist/source/namespace.js +2 -2
  70. package/dist/source/namespace_alarm_and_condition.d.ts +24 -24
  71. package/dist/source/namespace_alarm_and_condition.js +2 -2
  72. package/dist/source/namespace_data_access.d.ts +42 -42
  73. package/dist/source/namespace_data_access.js +2 -2
  74. package/dist/source/namespace_machine_state.d.ts +7 -7
  75. package/dist/source/namespace_machine_state.js +2 -2
  76. package/dist/source/pseudo_session.d.ts +55 -55
  77. package/dist/source/pseudo_session.js +203 -203
  78. package/dist/source/session_context.d.ts +111 -111
  79. package/dist/source/session_context.js +265 -265
  80. package/dist/source/set_namespace_meta_data.d.ts +2 -2
  81. package/dist/source/set_namespace_meta_data.js +59 -59
  82. package/dist/source/ua_root_folder.d.ts +9 -9
  83. package/dist/source/ua_root_folder.js +2 -2
  84. package/dist/source/ua_two_state_variable_ex.d.ts +23 -23
  85. package/dist/source/ua_two_state_variable_ex.js +2 -2
  86. package/dist/source/xml_writer.d.ts +9 -9
  87. package/dist/source/xml_writer.js +2 -2
  88. package/dist/src/address_space.d.ts +392 -392
  89. package/dist/src/address_space.js +1387 -1387
  90. package/dist/src/address_space_change_event_tools.d.ts +6 -6
  91. package/dist/src/address_space_change_event_tools.js +149 -149
  92. package/dist/src/address_space_private.d.ts +43 -43
  93. package/dist/src/address_space_private.js +2 -2
  94. package/dist/src/alarms_and_conditions/check_where_clause.d.ts +4 -4
  95. package/dist/src/alarms_and_conditions/check_where_clause.js +109 -109
  96. package/dist/src/alarms_and_conditions/condition.d.ts +5 -5
  97. package/dist/src/alarms_and_conditions/condition.js +80 -80
  98. package/dist/src/alarms_and_conditions/condition_info.d.ts +27 -27
  99. package/dist/src/alarms_and_conditions/condition_info.js +54 -54
  100. package/dist/src/alarms_and_conditions/condition_snapshot.d.ts +233 -233
  101. package/dist/src/alarms_and_conditions/condition_snapshot.js +666 -666
  102. package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +21 -21
  103. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +46 -46
  104. package/dist/src/alarms_and_conditions/extract_event_fields.d.ts +10 -10
  105. package/dist/src/alarms_and_conditions/extract_event_fields.js +89 -89
  106. package/dist/src/alarms_and_conditions/index.d.ts +18 -18
  107. package/dist/src/alarms_and_conditions/index.js +34 -34
  108. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +64 -62
  109. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -244
  110. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js.map +1 -1
  111. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +124 -118
  112. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +416 -416
  113. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js.map +1 -1
  114. package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +29 -29
  115. package/dist/src/alarms_and_conditions/ua_base_event_impl.js +38 -38
  116. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +36 -21
  117. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +115 -25
  118. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js.map +1 -1
  119. package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +187 -182
  120. package/dist/src/alarms_and_conditions/ua_condition_impl.js +1024 -1022
  121. package/dist/src/alarms_and_conditions/ua_condition_impl.js.map +1 -1
  122. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +18 -17
  123. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +57 -57
  124. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js.map +1 -1
  125. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +30 -27
  126. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +56 -56
  127. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js.map +1 -1
  128. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +11 -9
  129. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +11 -11
  130. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js.map +1 -1
  131. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +40 -38
  132. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +86 -86
  133. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js.map +1 -1
  134. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +10 -10
  135. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +7 -7
  136. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +105 -97
  137. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +250 -250
  138. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js.map +1 -1
  139. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +29 -28
  140. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +50 -50
  141. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js.map +1 -1
  142. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +26 -25
  143. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +162 -162
  144. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js.map +1 -1
  145. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +48 -39
  146. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +161 -135
  147. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js.map +1 -1
  148. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +17 -16
  149. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +17 -17
  150. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js.map +1 -1
  151. package/dist/src/apply_condition_refresh.d.ts +6 -6
  152. package/dist/src/apply_condition_refresh.js +27 -27
  153. package/dist/src/base_node_impl.d.ts +281 -281
  154. package/dist/src/base_node_impl.js +1395 -1395
  155. package/dist/src/base_node_private.d.ts +61 -61
  156. package/dist/src/base_node_private.js +705 -705
  157. package/dist/src/data_access/add_dataItem_stuff.d.ts +11 -11
  158. package/dist/src/data_access/add_dataItem_stuff.js +61 -61
  159. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.d.ts +1 -1
  160. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js +34 -34
  161. package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +32 -32
  162. package/dist/src/data_access/ua_multistate_discrete_impl.js +130 -130
  163. package/dist/src/data_access/ua_multistate_value_discrete.d.ts +51 -51
  164. package/dist/src/data_access/ua_multistate_value_discrete.js +249 -249
  165. package/dist/src/data_access/ua_two_state_discrete.d.ts +25 -25
  166. package/dist/src/data_access/ua_two_state_discrete.js +153 -153
  167. package/dist/src/event_data.d.ts +29 -29
  168. package/dist/src/event_data.js +95 -95
  169. package/dist/src/extension_object_array_node.d.ts +61 -61
  170. package/dist/src/extension_object_array_node.js +276 -276
  171. package/dist/src/historical_access/address_space_historical_data_node.d.ts +26 -26
  172. package/dist/src/historical_access/address_space_historical_data_node.js +630 -630
  173. package/dist/src/index_current.d.ts +45 -45
  174. package/dist/src/index_current.js +77 -77
  175. package/dist/src/namespace_impl.d.ts +457 -457
  176. package/dist/src/namespace_impl.js +1733 -1733
  177. package/dist/src/namespace_private.d.ts +21 -21
  178. package/dist/src/namespace_private.js +32 -32
  179. package/dist/src/nodeid_manager.d.ts +36 -36
  180. package/dist/src/nodeid_manager.js +197 -197
  181. package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +2 -2
  182. package/dist/src/nodeset_tools/adjust_namespace_array.js +13 -13
  183. package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +2 -2
  184. package/dist/src/nodeset_tools/construct_namespace_dependency.js +83 -83
  185. package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +2 -2
  186. package/dist/src/nodeset_tools/nodeset_to_xml.js +1143 -1143
  187. package/dist/src/nodeset_tools/typedictionary_to_xml.d.ts +2 -2
  188. package/dist/src/nodeset_tools/typedictionary_to_xml.js +154 -154
  189. package/dist/src/reference_impl.d.ts +43 -43
  190. package/dist/src/reference_impl.js +139 -139
  191. package/dist/src/role_permissions.d.ts +2 -2
  192. package/dist/src/role_permissions.js +10 -10
  193. package/dist/src/state_machine/finite_state_machine.d.ts +67 -67
  194. package/dist/src/state_machine/finite_state_machine.js +353 -353
  195. package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +34 -34
  196. package/dist/src/state_machine/ua_shelving_state_machine_ex.js +250 -250
  197. package/dist/src/state_machine/ua_two_state_variable.d.ts +61 -61
  198. package/dist/src/state_machine/ua_two_state_variable.js +331 -331
  199. package/dist/src/tool_isSupertypeOf.d.ts +17 -17
  200. package/dist/src/tool_isSupertypeOf.js +108 -108
  201. package/dist/src/ua_condition_type.d.ts +8 -8
  202. package/dist/src/ua_condition_type.js +2 -2
  203. package/dist/src/ua_data_type_impl.d.ts +93 -93
  204. package/dist/src/ua_data_type_impl.js +368 -368
  205. package/dist/src/ua_method_impl.d.ts +41 -41
  206. package/dist/src/ua_method_impl.js +208 -208
  207. package/dist/src/ua_object_impl.d.ts +35 -33
  208. package/dist/src/ua_object_impl.js +162 -156
  209. package/dist/src/ua_object_impl.js.map +1 -1
  210. package/dist/src/ua_object_type_impl.d.ts +48 -48
  211. package/dist/src/ua_object_type_impl.js +124 -124
  212. package/dist/src/ua_reference_type_impl.d.ts +43 -43
  213. package/dist/src/ua_reference_type_impl.js +139 -139
  214. package/dist/src/ua_variable_impl.d.ts +351 -351
  215. package/dist/src/ua_variable_impl.js +1604 -1604
  216. package/dist/src/ua_variable_impl_ext_obj.d.ts +17 -17
  217. package/dist/src/ua_variable_impl_ext_obj.js +437 -437
  218. package/dist/src/ua_variable_type_impl.d.ts +62 -62
  219. package/dist/src/ua_variable_type_impl.js +570 -570
  220. package/dist/src/ua_view_impl.d.ts +19 -15
  221. package/dist/src/ua_view_impl.js +43 -36
  222. package/dist/src/ua_view_impl.js.map +1 -1
  223. package/distHelpers/add_event_generator_object.d.ts +3 -3
  224. package/distHelpers/add_event_generator_object.js +65 -65
  225. package/distHelpers/alarms_and_conditions_demo.d.ts +10 -10
  226. package/distHelpers/alarms_and_conditions_demo.js +114 -114
  227. package/distHelpers/assertHasMatchingReference.d.ts +19 -19
  228. package/distHelpers/assertHasMatchingReference.js +40 -40
  229. package/distHelpers/boiler_system.d.ts +113 -113
  230. package/distHelpers/boiler_system.js +395 -395
  231. package/distHelpers/create_minimalist_address_space_nodeset.d.ts +5 -5
  232. package/distHelpers/create_minimalist_address_space_nodeset.js +171 -171
  233. package/distHelpers/date_utils.d.ts +3 -3
  234. package/distHelpers/date_utils.js +9 -9
  235. package/distHelpers/dump_statemachine.js +127 -127
  236. package/distHelpers/get_address_space_fixture.d.ts +1 -1
  237. package/distHelpers/get_address_space_fixture.js +30 -30
  238. package/distHelpers/get_mini_address_space.d.ts +7 -7
  239. package/distHelpers/get_mini_address_space.js +36 -36
  240. package/distHelpers/index.d.ts +12 -12
  241. package/distHelpers/index.js +28 -28
  242. package/distHelpers/mock_session.d.ts +14 -14
  243. package/distHelpers/mock_session.js +25 -25
  244. package/distNodeJS/generate_address_space.d.ts +4 -4
  245. package/distNodeJS/generate_address_space.js +41 -41
  246. package/distNodeJS/index.d.ts +1 -1
  247. package/distNodeJS/index.js +17 -17
  248. package/package.json +15 -15
  249. package/source/loader/load_nodeset2.ts +14 -17
  250. package/source/loader/make_semver_compatible.ts +23 -0
  251. package/source/loader/make_xml_extension_object_parser.ts +10 -0
  252. package/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.ts +13 -6
  253. package/src/alarms_and_conditions/ua_alarm_condition_impl.ts +15 -10
  254. package/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.ts +126 -10
  255. package/src/alarms_and_conditions/ua_condition_impl.ts +26 -13
  256. package/src/alarms_and_conditions/ua_discrete_alarm_impl.ts +10 -4
  257. package/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.ts +7 -6
  258. package/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.ts +5 -3
  259. package/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.ts +7 -6
  260. package/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.ts +1 -1
  261. package/src/alarms_and_conditions/ua_limit_alarm_impl.ts +23 -13
  262. package/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.ts +6 -7
  263. package/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.ts +6 -7
  264. package/src/alarms_and_conditions/ua_off_normal_alarm_impl.ts +62 -30
  265. package/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.ts +5 -5
  266. package/src/ua_object_impl.ts +11 -3
  267. package/src/ua_view_impl.ts +6 -4
  268. package/test_helpers/test_fixtures/dataType_issue.xml +9 -9
  269. package/test_helpers/test_fixtures/nodeset_with_guid.xml +1441 -0
  270. package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.d.ts +0 -23
  271. package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.js +0 -3
  272. package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.js.map +0 -1
  273. package/dist/source/interfaces/data_access/ua_discrete_item.d.ts +0 -6
  274. package/dist/source/interfaces/data_access/ua_discrete_item.js +0 -3
  275. package/dist/source/interfaces/data_access/ua_discrete_item.js.map +0 -1
  276. package/dist/source/interfaces/data_access/ua_multistate_discrete.d.ts +0 -25
  277. package/dist/source/interfaces/data_access/ua_multistate_discrete.js +0 -3
  278. package/dist/source/interfaces/data_access/ua_multistate_discrete.js.map +0 -1
  279. package/dist/source/interfaces/data_access/ua_multistate_value_discrete.d.ts +0 -27
  280. package/dist/source/interfaces/data_access/ua_multistate_value_discrete.js +0 -3
  281. package/dist/source/interfaces/data_access/ua_multistate_value_discrete.js.map +0 -1
  282. package/dist/source/interfaces/data_access/ua_two_state_discrete.d.ts +0 -17
  283. package/dist/source/interfaces/data_access/ua_two_state_discrete.js +0 -3
  284. package/dist/source/interfaces/data_access/ua_two_state_discrete.js.map +0 -1
  285. package/dist/source/interfaces/data_access/ua_y_array_item.d.ts +0 -19
  286. package/dist/source/interfaces/data_access/ua_y_array_item.js +0 -3
  287. package/dist/source/interfaces/data_access/ua_y_array_item.js.map +0 -1
  288. package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.d.ts +0 -11
  289. package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.js +0 -3
  290. package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.js.map +0 -1
  291. package/dist/source/interfaces/state_machine/finite_state_machine.d.ts +0 -70
  292. package/dist/source/interfaces/state_machine/finite_state_machine.js +0 -3
  293. package/dist/source/interfaces/state_machine/finite_state_machine.js.map +0 -1
  294. package/dist/source/interfaces/state_machine/program_finite_state_machine.d.ts +0 -74
  295. package/dist/source/interfaces/state_machine/program_finite_state_machine.js +0 -3
  296. package/dist/source/interfaces/state_machine/program_finite_state_machine.js.map +0 -1
  297. package/dist/source/interfaces/state_machine/state_machine.d.ts +0 -342
  298. package/dist/source/interfaces/state_machine/state_machine.js +0 -3
  299. package/dist/source/interfaces/state_machine/state_machine.js.map +0 -1
  300. package/dist/source/interfaces/state_machine/ua_finite_state_variable.d.ts +0 -18
  301. package/dist/source/interfaces/state_machine/ua_finite_state_variable.js +0 -3
  302. package/dist/source/interfaces/state_machine/ua_finite_state_variable.js.map +0 -1
  303. package/dist/source/interfaces/state_machine/ua_state_variable.d.ts +0 -29
  304. package/dist/source/interfaces/state_machine/ua_state_variable.js +0 -3
  305. package/dist/source/interfaces/state_machine/ua_state_variable.js.map +0 -1
  306. package/dist/source/interfaces/state_machine/ua_two_state_variable.d.ts +0 -26
  307. package/dist/source/interfaces/state_machine/ua_two_state_variable.js +0 -3
  308. package/dist/source/interfaces/state_machine/ua_two_state_variable.js.map +0 -1
  309. package/dist/source/interfaces/subscription_diagnostics_variable.d.ts +0 -41
  310. package/dist/source/interfaces/subscription_diagnostics_variable.js +0 -3
  311. package/dist/source/interfaces/subscription_diagnostics_variable.js.map +0 -1
  312. package/dist/src/alarms_and_conditions/base_event_type.d.ts +0 -26
  313. package/dist/src/alarms_and_conditions/base_event_type.js +0 -41
  314. package/dist/src/alarms_and_conditions/base_event_type.js.map +0 -1
  315. package/dist/src/alarms_and_conditions/shelving_state_machine.d.ts +0 -22
  316. package/dist/src/alarms_and_conditions/shelving_state_machine.js +0 -241
  317. package/dist/src/alarms_and_conditions/shelving_state_machine.js.map +0 -1
  318. package/dist/src/alarms_and_conditions/trip_alarm.d.ts +0 -16
  319. package/dist/src/alarms_and_conditions/trip_alarm.js +0 -21
  320. package/dist/src/alarms_and_conditions/trip_alarm.js.map +0 -1
  321. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.d.ts +0 -54
  322. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.js +0 -255
  323. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.js.map +0 -1
  324. package/dist/src/alarms_and_conditions/ua_alarm_condition_base.d.ts +0 -138
  325. package/dist/src/alarms_and_conditions/ua_alarm_condition_base.js +0 -460
  326. package/dist/src/alarms_and_conditions/ua_alarm_condition_base.js.map +0 -1
  327. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.d.ts +0 -35
  328. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.js +0 -32
  329. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.js.map +0 -1
  330. package/dist/src/alarms_and_conditions/ua_condition_base.d.ts +0 -191
  331. package/dist/src/alarms_and_conditions/ua_condition_base.js +0 -1029
  332. package/dist/src/alarms_and_conditions/ua_condition_base.js.map +0 -1
  333. package/dist/src/alarms_and_conditions/ua_discrete_alarm.d.ts +0 -11
  334. package/dist/src/alarms_and_conditions/ua_discrete_alarm.js +0 -58
  335. package/dist/src/alarms_and_conditions/ua_discrete_alarm.js.map +0 -1
  336. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.d.ts +0 -24
  337. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.js +0 -59
  338. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.js.map +0 -1
  339. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.d.ts +0 -14
  340. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.js +0 -17
  341. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.js.map +0 -1
  342. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.d.ts +0 -22
  343. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.js +0 -87
  344. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.js.map +0 -1
  345. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.d.ts +0 -6
  346. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.js +0 -11
  347. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.js.map +0 -1
  348. package/dist/src/alarms_and_conditions/ua_limit_alarm.d.ts +0 -76
  349. package/dist/src/alarms_and_conditions/ua_limit_alarm.js +0 -237
  350. package/dist/src/alarms_and_conditions/ua_limit_alarm.js.map +0 -1
  351. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.d.ts +0 -27
  352. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.js +0 -62
  353. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.js.map +0 -1
  354. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.d.ts +0 -49
  355. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.js +0 -176
  356. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.js.map +0 -1
  357. package/dist/src/alarms_and_conditions/ua_off_normal_alarm.d.ts +0 -47
  358. package/dist/src/alarms_and_conditions/ua_off_normal_alarm.js +0 -151
  359. package/dist/src/alarms_and_conditions/ua_off_normal_alarm.js.map +0 -1
  360. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.d.ts +0 -16
  361. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.js +0 -18
  362. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.js.map +0 -1
  363. package/dist/src/base_node.d.ts +0 -270
  364. package/dist/src/base_node.js +0 -1299
  365. package/dist/src/base_node.js.map +0 -1
  366. package/dist/src/data_access/ua_analog_item.d.ts +0 -13
  367. package/dist/src/data_access/ua_analog_item.js +0 -37
  368. package/dist/src/data_access/ua_analog_item.js.map +0 -1
  369. package/dist/src/data_access/ua_data_item.d.ts +0 -16
  370. package/dist/src/data_access/ua_data_item.js +0 -66
  371. package/dist/src/data_access/ua_data_item.js.map +0 -1
  372. package/dist/src/data_access/ua_multistate_discrete.d.ts +0 -24
  373. package/dist/src/data_access/ua_multistate_discrete.js +0 -132
  374. package/dist/src/data_access/ua_multistate_discrete.js.map +0 -1
  375. package/dist/src/namespace.d.ts +0 -472
  376. package/dist/src/namespace.js +0 -1759
  377. package/dist/src/namespace.js.map +0 -1
  378. package/dist/src/reference.d.ts +0 -43
  379. package/dist/src/reference.js +0 -138
  380. package/dist/src/reference.js.map +0 -1
  381. package/dist/src/session_context.d.ts +0 -4
  382. package/dist/src/session_context.js +0 -9
  383. package/dist/src/session_context.js.map +0 -1
  384. package/dist/src/ua_data_type.d.ts +0 -81
  385. package/dist/src/ua_data_type.js +0 -259
  386. package/dist/src/ua_data_type.js.map +0 -1
  387. package/dist/src/ua_method.d.ts +0 -33
  388. package/dist/src/ua_method.js +0 -194
  389. package/dist/src/ua_method.js.map +0 -1
  390. package/dist/src/ua_object.d.ts +0 -27
  391. package/dist/src/ua_object.js +0 -153
  392. package/dist/src/ua_object.js.map +0 -1
  393. package/dist/src/ua_object_type.d.ts +0 -49
  394. package/dist/src/ua_object_type.js +0 -123
  395. package/dist/src/ua_object_type.js.map +0 -1
  396. package/dist/src/ua_reference_type.d.ts +0 -31
  397. package/dist/src/ua_reference_type.js +0 -108
  398. package/dist/src/ua_reference_type.js.map +0 -1
  399. package/dist/src/ua_variable.d.ts +0 -346
  400. package/dist/src/ua_variable.js +0 -1651
  401. package/dist/src/ua_variable.js.map +0 -1
  402. package/dist/src/ua_variable_type.d.ts +0 -57
  403. package/dist/src/ua_variable_type.js +0 -530
  404. package/dist/src/ua_variable_type.js.map +0 -1
  405. package/dist/src/ua_view.d.ts +0 -16
  406. package/dist/src/ua_view.js +0 -41
  407. package/dist/src/ua_view.js.map +0 -1
@@ -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;