node-opcua-address-space 2.70.3 → 2.71.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 (369) 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/alarms_and_conditions/ua_condition_base_i.d.ts +23 -0
  30. package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.js +3 -0
  31. package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.js.map +1 -0
  32. package/dist/source/interfaces/data_access/ua_discrete_item.d.ts +6 -0
  33. package/dist/source/interfaces/data_access/ua_discrete_item.js +3 -0
  34. package/dist/source/interfaces/data_access/ua_discrete_item.js.map +1 -0
  35. package/dist/source/interfaces/data_access/ua_multistate_discrete.d.ts +25 -0
  36. package/dist/source/interfaces/data_access/ua_multistate_discrete.js +3 -0
  37. package/dist/source/interfaces/data_access/ua_multistate_discrete.js.map +1 -0
  38. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +21 -21
  39. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js +2 -2
  40. package/dist/source/interfaces/data_access/ua_multistate_value_discrete.d.ts +27 -0
  41. package/dist/source/interfaces/data_access/ua_multistate_value_discrete.js +3 -0
  42. package/dist/source/interfaces/data_access/ua_multistate_value_discrete.js.map +1 -0
  43. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +24 -24
  44. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js +2 -2
  45. package/dist/source/interfaces/data_access/ua_two_state_discrete.d.ts +17 -0
  46. package/dist/source/interfaces/data_access/ua_two_state_discrete.js +3 -0
  47. package/dist/source/interfaces/data_access/ua_two_state_discrete.js.map +1 -0
  48. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +12 -12
  49. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js +2 -2
  50. package/dist/source/interfaces/data_access/ua_y_array_item.d.ts +19 -0
  51. package/dist/source/interfaces/data_access/ua_y_array_item.js +3 -0
  52. package/dist/source/interfaces/data_access/ua_y_array_item.js.map +1 -0
  53. package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +8 -8
  54. package/dist/source/interfaces/data_access/ua_y_array_item_ex.js +2 -2
  55. package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.d.ts +11 -0
  56. package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.js +3 -0
  57. package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.js.map +1 -0
  58. package/dist/source/interfaces/state_machine/finite_state_machine.d.ts +70 -0
  59. package/dist/source/interfaces/state_machine/finite_state_machine.js +3 -0
  60. package/dist/source/interfaces/state_machine/finite_state_machine.js.map +1 -0
  61. package/dist/source/interfaces/state_machine/program_finite_state_machine.d.ts +74 -0
  62. package/dist/source/interfaces/state_machine/program_finite_state_machine.js +3 -0
  63. package/dist/source/interfaces/state_machine/program_finite_state_machine.js.map +1 -0
  64. package/dist/source/interfaces/state_machine/state_machine.d.ts +342 -0
  65. package/dist/source/interfaces/state_machine/state_machine.js +3 -0
  66. package/dist/source/interfaces/state_machine/state_machine.js.map +1 -0
  67. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -12
  68. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +2 -2
  69. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -49
  70. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js +2 -2
  71. package/dist/source/interfaces/state_machine/ua_finite_state_variable.d.ts +18 -0
  72. package/dist/source/interfaces/state_machine/ua_finite_state_variable.js +3 -0
  73. package/dist/source/interfaces/state_machine/ua_finite_state_variable.js.map +1 -0
  74. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -11
  75. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js +2 -2
  76. package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +222 -222
  77. package/dist/source/interfaces/state_machine/ua_state_machine_type.js +2 -2
  78. package/dist/source/interfaces/state_machine/ua_state_variable.d.ts +29 -0
  79. package/dist/source/interfaces/state_machine/ua_state_variable.js +3 -0
  80. package/dist/source/interfaces/state_machine/ua_state_variable.js.map +1 -0
  81. package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +6 -6
  82. package/dist/source/interfaces/state_machine/ua_transition_ex.js +2 -2
  83. package/dist/source/interfaces/state_machine/ua_two_state_variable.d.ts +26 -0
  84. package/dist/source/interfaces/state_machine/ua_two_state_variable.js +3 -0
  85. package/dist/source/interfaces/state_machine/ua_two_state_variable.js.map +1 -0
  86. package/dist/source/interfaces/subscription_diagnostics_variable.d.ts +41 -0
  87. package/dist/source/interfaces/subscription_diagnostics_variable.js +3 -0
  88. package/dist/source/interfaces/subscription_diagnostics_variable.js.map +1 -0
  89. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +8 -8
  90. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +2 -2
  91. package/dist/source/loader/decode_xml_extension_object.d.ts +6 -6
  92. package/dist/source/loader/decode_xml_extension_object.js +71 -71
  93. package/dist/source/loader/ensure_datatype_extracted.d.ts +5 -5
  94. package/dist/source/loader/ensure_datatype_extracted.js +45 -45
  95. package/dist/source/loader/generateAddressSpaceRaw.d.ts +10 -10
  96. package/dist/source/loader/generateAddressSpaceRaw.js +45 -45
  97. package/dist/source/loader/load_nodeset2.d.ts +16 -16
  98. package/dist/source/loader/load_nodeset2.js +1464 -1464
  99. package/dist/source/loader/make_xml_extension_object_parser.d.ts +28 -28
  100. package/dist/source/loader/make_xml_extension_object_parser.js +315 -315
  101. package/dist/source/loader/namespace_post_step.d.ts +6 -6
  102. package/dist/source/loader/namespace_post_step.js +47 -47
  103. package/dist/source/loader/register_node_promoter.d.ts +3 -3
  104. package/dist/source/loader/register_node_promoter.js +9 -9
  105. package/dist/source/namespace.d.ts +6 -6
  106. package/dist/source/namespace.js +2 -2
  107. package/dist/source/namespace_alarm_and_condition.d.ts +24 -24
  108. package/dist/source/namespace_alarm_and_condition.js +2 -2
  109. package/dist/source/namespace_data_access.d.ts +42 -42
  110. package/dist/source/namespace_data_access.js +2 -2
  111. package/dist/source/namespace_machine_state.d.ts +7 -7
  112. package/dist/source/namespace_machine_state.js +2 -2
  113. package/dist/source/pseudo_session.d.ts +55 -55
  114. package/dist/source/pseudo_session.js +203 -203
  115. package/dist/source/session_context.d.ts +111 -111
  116. package/dist/source/session_context.js +265 -265
  117. package/dist/source/set_namespace_meta_data.d.ts +2 -2
  118. package/dist/source/set_namespace_meta_data.js +59 -59
  119. package/dist/source/ua_root_folder.d.ts +9 -9
  120. package/dist/source/ua_root_folder.js +2 -2
  121. package/dist/source/ua_two_state_variable_ex.d.ts +23 -23
  122. package/dist/source/ua_two_state_variable_ex.js +2 -2
  123. package/dist/source/xml_writer.d.ts +9 -9
  124. package/dist/source/xml_writer.js +2 -2
  125. package/dist/src/address_space.d.ts +392 -392
  126. package/dist/src/address_space.js +1387 -1387
  127. package/dist/src/address_space_change_event_tools.d.ts +6 -6
  128. package/dist/src/address_space_change_event_tools.js +149 -149
  129. package/dist/src/address_space_private.d.ts +43 -43
  130. package/dist/src/address_space_private.js +2 -2
  131. package/dist/src/alarms_and_conditions/base_event_type.d.ts +26 -0
  132. package/dist/src/alarms_and_conditions/base_event_type.js +41 -0
  133. package/dist/src/alarms_and_conditions/base_event_type.js.map +1 -0
  134. package/dist/src/alarms_and_conditions/check_where_clause.d.ts +4 -4
  135. package/dist/src/alarms_and_conditions/check_where_clause.js +109 -109
  136. package/dist/src/alarms_and_conditions/condition.d.ts +5 -5
  137. package/dist/src/alarms_and_conditions/condition.js +80 -80
  138. package/dist/src/alarms_and_conditions/condition_info.d.ts +27 -27
  139. package/dist/src/alarms_and_conditions/condition_info.js +54 -54
  140. package/dist/src/alarms_and_conditions/condition_snapshot.d.ts +233 -233
  141. package/dist/src/alarms_and_conditions/condition_snapshot.js +666 -666
  142. package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +21 -21
  143. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +46 -46
  144. package/dist/src/alarms_and_conditions/extract_event_fields.d.ts +10 -10
  145. package/dist/src/alarms_and_conditions/extract_event_fields.js +89 -89
  146. package/dist/src/alarms_and_conditions/index.d.ts +18 -18
  147. package/dist/src/alarms_and_conditions/index.js +34 -34
  148. package/dist/src/alarms_and_conditions/shelving_state_machine.d.ts +22 -0
  149. package/dist/src/alarms_and_conditions/shelving_state_machine.js +241 -0
  150. package/dist/src/alarms_and_conditions/shelving_state_machine.js.map +1 -0
  151. package/dist/src/alarms_and_conditions/trip_alarm.d.ts +16 -0
  152. package/dist/src/alarms_and_conditions/trip_alarm.js +21 -0
  153. package/dist/src/alarms_and_conditions/trip_alarm.js.map +1 -0
  154. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.d.ts +54 -0
  155. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.js +255 -0
  156. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.js.map +1 -0
  157. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +62 -62
  158. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -244
  159. package/dist/src/alarms_and_conditions/ua_alarm_condition_base.d.ts +138 -0
  160. package/dist/src/alarms_and_conditions/ua_alarm_condition_base.js +460 -0
  161. package/dist/src/alarms_and_conditions/ua_alarm_condition_base.js.map +1 -0
  162. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +118 -118
  163. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +416 -416
  164. package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +29 -29
  165. package/dist/src/alarms_and_conditions/ua_base_event_impl.js +38 -38
  166. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.d.ts +35 -0
  167. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.js +32 -0
  168. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.js.map +1 -0
  169. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +21 -21
  170. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +25 -25
  171. package/dist/src/alarms_and_conditions/ua_condition_base.d.ts +191 -0
  172. package/dist/src/alarms_and_conditions/ua_condition_base.js +1029 -0
  173. package/dist/src/alarms_and_conditions/ua_condition_base.js.map +1 -0
  174. package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +182 -182
  175. package/dist/src/alarms_and_conditions/ua_condition_impl.js +1022 -1022
  176. package/dist/src/alarms_and_conditions/ua_discrete_alarm.d.ts +11 -0
  177. package/dist/src/alarms_and_conditions/ua_discrete_alarm.js +58 -0
  178. package/dist/src/alarms_and_conditions/ua_discrete_alarm.js.map +1 -0
  179. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +17 -17
  180. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +57 -57
  181. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.d.ts +24 -0
  182. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.js +59 -0
  183. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.js.map +1 -0
  184. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +27 -27
  185. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +56 -56
  186. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.d.ts +14 -0
  187. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.js +17 -0
  188. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.js.map +1 -0
  189. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +9 -9
  190. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +11 -11
  191. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.d.ts +22 -0
  192. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.js +87 -0
  193. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.js.map +1 -0
  194. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +38 -38
  195. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +86 -86
  196. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.d.ts +6 -0
  197. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.js +11 -0
  198. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.js.map +1 -0
  199. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +10 -10
  200. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +7 -7
  201. package/dist/src/alarms_and_conditions/ua_limit_alarm.d.ts +76 -0
  202. package/dist/src/alarms_and_conditions/ua_limit_alarm.js +237 -0
  203. package/dist/src/alarms_and_conditions/ua_limit_alarm.js.map +1 -0
  204. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +97 -97
  205. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +250 -250
  206. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.d.ts +27 -0
  207. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.js +62 -0
  208. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.js.map +1 -0
  209. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +28 -28
  210. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +50 -50
  211. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.d.ts +49 -0
  212. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.js +176 -0
  213. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.js.map +1 -0
  214. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +25 -25
  215. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +162 -162
  216. package/dist/src/alarms_and_conditions/ua_off_normal_alarm.d.ts +47 -0
  217. package/dist/src/alarms_and_conditions/ua_off_normal_alarm.js +151 -0
  218. package/dist/src/alarms_and_conditions/ua_off_normal_alarm.js.map +1 -0
  219. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +39 -39
  220. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +135 -135
  221. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.d.ts +16 -0
  222. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.js +18 -0
  223. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.js.map +1 -0
  224. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +16 -16
  225. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +17 -17
  226. package/dist/src/apply_condition_refresh.d.ts +6 -6
  227. package/dist/src/apply_condition_refresh.js +27 -27
  228. package/dist/src/base_node.d.ts +270 -0
  229. package/dist/src/base_node.js +1299 -0
  230. package/dist/src/base_node.js.map +1 -0
  231. package/dist/src/base_node_impl.d.ts +281 -281
  232. package/dist/src/base_node_impl.js +1395 -1395
  233. package/dist/src/base_node_private.d.ts +61 -61
  234. package/dist/src/base_node_private.js +705 -705
  235. package/dist/src/data_access/add_dataItem_stuff.d.ts +11 -11
  236. package/dist/src/data_access/add_dataItem_stuff.js +61 -61
  237. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.d.ts +1 -1
  238. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js +34 -34
  239. package/dist/src/data_access/ua_analog_item.d.ts +13 -0
  240. package/dist/src/data_access/ua_analog_item.js +37 -0
  241. package/dist/src/data_access/ua_analog_item.js.map +1 -0
  242. package/dist/src/data_access/ua_data_item.d.ts +16 -0
  243. package/dist/src/data_access/ua_data_item.js +66 -0
  244. package/dist/src/data_access/ua_data_item.js.map +1 -0
  245. package/dist/src/data_access/ua_multistate_discrete.d.ts +24 -0
  246. package/dist/src/data_access/ua_multistate_discrete.js +132 -0
  247. package/dist/src/data_access/ua_multistate_discrete.js.map +1 -0
  248. package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +32 -32
  249. package/dist/src/data_access/ua_multistate_discrete_impl.js +130 -130
  250. package/dist/src/data_access/ua_multistate_value_discrete.d.ts +51 -51
  251. package/dist/src/data_access/ua_multistate_value_discrete.js +249 -249
  252. package/dist/src/data_access/ua_two_state_discrete.d.ts +25 -25
  253. package/dist/src/data_access/ua_two_state_discrete.js +153 -153
  254. package/dist/src/event_data.d.ts +29 -29
  255. package/dist/src/event_data.js +95 -95
  256. package/dist/src/extension_object_array_node.d.ts +61 -61
  257. package/dist/src/extension_object_array_node.js +276 -276
  258. package/dist/src/historical_access/address_space_historical_data_node.d.ts +26 -26
  259. package/dist/src/historical_access/address_space_historical_data_node.js +630 -630
  260. package/dist/src/index_current.d.ts +45 -45
  261. package/dist/src/index_current.js +77 -77
  262. package/dist/src/namespace.d.ts +472 -0
  263. package/dist/src/namespace.js +1759 -0
  264. package/dist/src/namespace.js.map +1 -0
  265. package/dist/src/namespace_impl.d.ts +457 -457
  266. package/dist/src/namespace_impl.js +1733 -1733
  267. package/dist/src/namespace_private.d.ts +21 -21
  268. package/dist/src/namespace_private.js +32 -32
  269. package/dist/src/nodeid_manager.d.ts +36 -36
  270. package/dist/src/nodeid_manager.js +197 -197
  271. package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +2 -2
  272. package/dist/src/nodeset_tools/adjust_namespace_array.js +13 -13
  273. package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +2 -2
  274. package/dist/src/nodeset_tools/construct_namespace_dependency.js +83 -83
  275. package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +2 -2
  276. package/dist/src/nodeset_tools/nodeset_to_xml.js +1143 -1143
  277. package/dist/src/nodeset_tools/typedictionary_to_xml.d.ts +2 -2
  278. package/dist/src/nodeset_tools/typedictionary_to_xml.js +154 -154
  279. package/dist/src/reference.d.ts +43 -0
  280. package/dist/src/reference.js +138 -0
  281. package/dist/src/reference.js.map +1 -0
  282. package/dist/src/reference_impl.d.ts +43 -43
  283. package/dist/src/reference_impl.js +139 -139
  284. package/dist/src/role_permissions.d.ts +2 -2
  285. package/dist/src/role_permissions.js +10 -10
  286. package/dist/src/session_context.d.ts +4 -0
  287. package/dist/src/session_context.js +9 -0
  288. package/dist/src/session_context.js.map +1 -0
  289. package/dist/src/state_machine/finite_state_machine.d.ts +67 -67
  290. package/dist/src/state_machine/finite_state_machine.js +353 -353
  291. package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +34 -34
  292. package/dist/src/state_machine/ua_shelving_state_machine_ex.js +250 -250
  293. package/dist/src/state_machine/ua_two_state_variable.d.ts +61 -61
  294. package/dist/src/state_machine/ua_two_state_variable.js +331 -331
  295. package/dist/src/tool_isSupertypeOf.d.ts +17 -17
  296. package/dist/src/tool_isSupertypeOf.js +108 -108
  297. package/dist/src/ua_condition_type.d.ts +8 -8
  298. package/dist/src/ua_condition_type.js +2 -2
  299. package/dist/src/ua_data_type.d.ts +81 -0
  300. package/dist/src/ua_data_type.js +259 -0
  301. package/dist/src/ua_data_type.js.map +1 -0
  302. package/dist/src/ua_data_type_impl.d.ts +93 -93
  303. package/dist/src/ua_data_type_impl.js +368 -368
  304. package/dist/src/ua_method.d.ts +33 -0
  305. package/dist/src/ua_method.js +194 -0
  306. package/dist/src/ua_method.js.map +1 -0
  307. package/dist/src/ua_method_impl.d.ts +41 -41
  308. package/dist/src/ua_method_impl.js +208 -208
  309. package/dist/src/ua_object.d.ts +27 -0
  310. package/dist/src/ua_object.js +153 -0
  311. package/dist/src/ua_object.js.map +1 -0
  312. package/dist/src/ua_object_impl.d.ts +33 -33
  313. package/dist/src/ua_object_impl.js +156 -156
  314. package/dist/src/ua_object_type.d.ts +49 -0
  315. package/dist/src/ua_object_type.js +123 -0
  316. package/dist/src/ua_object_type.js.map +1 -0
  317. package/dist/src/ua_object_type_impl.d.ts +48 -48
  318. package/dist/src/ua_object_type_impl.js +124 -124
  319. package/dist/src/ua_reference_type.d.ts +31 -0
  320. package/dist/src/ua_reference_type.js +108 -0
  321. package/dist/src/ua_reference_type.js.map +1 -0
  322. package/dist/src/ua_reference_type_impl.d.ts +43 -43
  323. package/dist/src/ua_reference_type_impl.js +139 -139
  324. package/dist/src/ua_variable.d.ts +346 -0
  325. package/dist/src/ua_variable.js +1651 -0
  326. package/dist/src/ua_variable.js.map +1 -0
  327. package/dist/src/ua_variable_impl.d.ts +351 -351
  328. package/dist/src/ua_variable_impl.js +1604 -1604
  329. package/dist/src/ua_variable_impl_ext_obj.d.ts +17 -17
  330. package/dist/src/ua_variable_impl_ext_obj.js +437 -437
  331. package/dist/src/ua_variable_type.d.ts +57 -0
  332. package/dist/src/ua_variable_type.js +530 -0
  333. package/dist/src/ua_variable_type.js.map +1 -0
  334. package/dist/src/ua_variable_type_impl.d.ts +62 -62
  335. package/dist/src/ua_variable_type_impl.js +570 -564
  336. package/dist/src/ua_variable_type_impl.js.map +1 -1
  337. package/dist/src/ua_view.d.ts +16 -0
  338. package/dist/src/ua_view.js +41 -0
  339. package/dist/src/ua_view.js.map +1 -0
  340. package/dist/src/ua_view_impl.d.ts +15 -15
  341. package/dist/src/ua_view_impl.js +36 -36
  342. package/distHelpers/add_event_generator_object.d.ts +3 -3
  343. package/distHelpers/add_event_generator_object.js +65 -65
  344. package/distHelpers/alarms_and_conditions_demo.d.ts +10 -10
  345. package/distHelpers/alarms_and_conditions_demo.js +114 -114
  346. package/distHelpers/assertHasMatchingReference.d.ts +19 -19
  347. package/distHelpers/assertHasMatchingReference.js +40 -40
  348. package/distHelpers/boiler_system.d.ts +113 -113
  349. package/distHelpers/boiler_system.js +395 -395
  350. package/distHelpers/create_minimalist_address_space_nodeset.d.ts +5 -5
  351. package/distHelpers/create_minimalist_address_space_nodeset.js +171 -171
  352. package/distHelpers/date_utils.d.ts +3 -3
  353. package/distHelpers/date_utils.js +9 -9
  354. package/distHelpers/dump_statemachine.js +127 -127
  355. package/distHelpers/get_address_space_fixture.d.ts +1 -1
  356. package/distHelpers/get_address_space_fixture.js +30 -30
  357. package/distHelpers/get_mini_address_space.d.ts +7 -7
  358. package/distHelpers/get_mini_address_space.js +36 -36
  359. package/distHelpers/index.d.ts +12 -12
  360. package/distHelpers/index.js +28 -28
  361. package/distHelpers/mock_session.d.ts +14 -14
  362. package/distHelpers/mock_session.js +25 -25
  363. package/distNodeJS/generate_address_space.d.ts +4 -4
  364. package/distNodeJS/generate_address_space.js +41 -41
  365. package/distNodeJS/index.d.ts +1 -1
  366. package/distNodeJS/index.js +17 -17
  367. package/package.json +38 -38
  368. package/src/ua_variable_type_impl.ts +11 -4
  369. package/test_helpers/test_fixtures/eurange_issue.xml +73 -0
@@ -1,286 +1,286 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.build_retrieveInputArgumentsDefinition = exports.verifyArguments_ArgumentList = exports.isArgumentValid = exports.getMethodDeclaration_ArgumentList = exports.binaryStoreSize_ArgumentList = exports.decode_ArgumentList = exports.encode_ArgumentList = void 0;
4
- /* eslint-disable complexity */
5
- /**
6
- * @module node-opcua-address-space
7
- */
8
- const node_opcua_assert_1 = require("node-opcua-assert");
9
- const ec = require("node-opcua-basic-types");
10
- const node_opcua_binary_stream_1 = require("node-opcua-binary-stream");
11
- const node_opcua_debug_1 = require("node-opcua-debug");
12
- const factories = require("node-opcua-factory");
13
- const node_opcua_nodeid_1 = require("node-opcua-nodeid");
14
- const node_opcua_status_code_1 = require("node-opcua-status-code");
15
- const node_opcua_variant_1 = require("node-opcua-variant");
16
- const node_opcua_variant_2 = require("node-opcua-variant");
17
- const node_opcua_constants_1 = require("node-opcua-constants");
18
- const node_opcua_data_model_1 = require("node-opcua-data-model");
19
- const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
20
- const warningLog = (0, node_opcua_debug_1.make_warningLog)(__filename);
21
- const doDebug = (0, node_opcua_debug_1.checkDebugFlag)(__filename);
22
- function myfindBuiltInType(dataType) {
23
- return factories.findBuiltInType(node_opcua_variant_1.DataType[dataType]);
24
- }
25
- function encode_ArgumentList(definition, args, stream) {
26
- (0, node_opcua_assert_1.assert)(definition.length === args.length);
27
- (0, node_opcua_assert_1.assert)(Array.isArray(definition));
28
- (0, node_opcua_assert_1.assert)(Array.isArray(args));
29
- (0, node_opcua_assert_1.assert)(definition.length === args.length);
30
- (0, node_opcua_assert_1.assert)(definition.length >= 0);
31
- // we only encode arguments by following the definition
32
- for (let i = 0; i < definition.length; i++) {
33
- const def = definition[i];
34
- const value = args[i];
35
- const encodeFunc = myfindBuiltInType(def.dataType).encode;
36
- // assert((def.valueRank === -1) || (def.valueRank === 0));
37
- // todo : handle -3 -2
38
- const isArray = def.valueRank && (def.valueRank === 1 || def.valueRank !== -1);
39
- if (isArray) {
40
- ec.encodeArray(value, stream, encodeFunc);
41
- }
42
- else {
43
- encodeFunc(value, stream);
44
- }
45
- }
46
- }
47
- exports.encode_ArgumentList = encode_ArgumentList;
48
- function decode_ArgumentList(definition, stream) {
49
- if (!Array.isArray(definition)) {
50
- throw new Error("This BaseDataType cannot be decoded because it has no definition.\n" +
51
- "Please construct a BaseDataType({definition : [{dataType: DataType.UInt32 }]});");
52
- }
53
- const args = [];
54
- let value;
55
- for (const def of definition) {
56
- const decodeFunc = myfindBuiltInType(def.dataType).decode;
57
- // xx assert(def.valueRank === -1 || def.valueRank==0);
58
- const isArray = def.valueRank === 1 || def.valueRank === -1;
59
- if (isArray) {
60
- value = ec.decodeArray(stream, decodeFunc);
61
- }
62
- else {
63
- value = decodeFunc(stream);
64
- }
65
- args.push(value);
66
- }
67
- return args;
68
- }
69
- exports.decode_ArgumentList = decode_ArgumentList;
70
- function binaryStoreSize_ArgumentList(description, args) {
71
- (0, node_opcua_assert_1.assert)(Array.isArray(description));
72
- (0, node_opcua_assert_1.assert)(Array.isArray(args));
73
- (0, node_opcua_assert_1.assert)(args.length === description.length);
74
- const stream = new node_opcua_binary_stream_1.BinaryStreamSizeCalculator();
75
- encode_ArgumentList(description, args, stream);
76
- return stream.length;
77
- }
78
- exports.binaryStoreSize_ArgumentList = binaryStoreSize_ArgumentList;
79
- function getMethodDeclaration_ArgumentList(addressSpace, objectId, methodId) {
80
- // find object in address space
81
- const obj = addressSpace.findNode(objectId);
82
- if (!obj) {
83
- // istanbul ignore next
84
- if (doDebug) {
85
- debugLog("cannot find node ", objectId.toString());
86
- }
87
- return { statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdUnknown };
88
- }
89
- let objectMethod = obj.getMethodById(methodId);
90
- if (!objectMethod) {
91
- // the method doesn't belong to the object, nevertheless
92
- // the method can be called
93
- objectMethod = addressSpace.findNode(methodId);
94
- if (!objectMethod || objectMethod.nodeClass !== node_opcua_data_model_1.NodeClass.Method) {
95
- warningLog("cannot find method with id", methodId.toString(), "object Id = ", objectId.toString());
96
- return { statusCode: node_opcua_status_code_1.StatusCodes.BadMethodInvalid };
97
- }
98
- }
99
- const methodDeclarationId = objectMethod.methodDeclarationId;
100
- const methodDeclaration = addressSpace.findNode(methodDeclarationId);
101
- if (!methodDeclaration) {
102
- // return {statusCode: StatusCodes.BadMethodInvalid};
103
- return { statusCode: node_opcua_status_code_1.StatusCodes.Good, methodDeclaration: objectMethod };
104
- }
105
- // istanbul ignore next
106
- if (methodDeclaration.nodeClass !== node_opcua_data_model_1.NodeClass.Method) {
107
- throw new Error("Expecting a Method here");
108
- }
109
- return { statusCode: node_opcua_status_code_1.StatusCodes.Good, methodDeclaration };
110
- }
111
- exports.getMethodDeclaration_ArgumentList = getMethodDeclaration_ArgumentList;
112
- function checkValueRank(argDefinition, arg) {
113
- const isArray = arg.arrayType === node_opcua_variant_2.VariantArrayType.Array;
114
- const isMatrix = arg.arrayType === node_opcua_variant_2.VariantArrayType.Matrix;
115
- if (argDefinition.valueRank > 0) {
116
- if (argDefinition.valueRank === 1) {
117
- if (!isArray) {
118
- return false;
119
- }
120
- }
121
- else {
122
- if (!isMatrix) {
123
- return false;
124
- }
125
- }
126
- }
127
- else if (argDefinition.valueRank === -1) {
128
- // SCALAR
129
- if (isArray || isMatrix) {
130
- return false;
131
- }
132
- }
133
- else if (argDefinition.valueRank === -2) {
134
- // ANY
135
- }
136
- else if (argDefinition.valueRank === -3) {
137
- // Scalar or OneDim
138
- if (isMatrix) {
139
- return false;
140
- }
141
- }
142
- else if (argDefinition.valueRank === 0) {
143
- // array or matrix
144
- if (!isArray && !isMatrix) {
145
- return false;
146
- }
147
- }
148
- return true;
149
- }
150
- /**
151
- * @private
152
- */
153
- function isArgumentValid(addressSpace, argDefinition, arg) {
154
- (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(argDefinition, "dataType"));
155
- (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(argDefinition, "valueRank"));
156
- const argDefDataType = addressSpace.findDataType(argDefinition.dataType);
157
- const argDataType = addressSpace.findDataType((0, node_opcua_nodeid_1.resolveNodeId)(arg.dataType));
158
- // istanbul ignore next
159
- if (!argDefDataType) {
160
- debugLog("dataType ", argDefinition.dataType.toString(), "doesn't exist");
161
- return false;
162
- }
163
- if (argDefinition.valueRank >= 0 && arg.dataType === node_opcua_variant_1.DataType.Null) {
164
- // this is valid to receive an empty array ith DataType.Null;
165
- return true;
166
- }
167
- if (!checkValueRank(argDefinition, arg)) {
168
- return false;
169
- }
170
- // istanbul ignore next
171
- if (!argDataType) {
172
- debugLog(" cannot find dataType ", arg.dataType, (0, node_opcua_nodeid_1.resolveNodeId)(arg.dataType));
173
- debugLog(" arg = ", arg.toString());
174
- debugLog(" def =", argDefinition.toString());
175
- return false;
176
- }
177
- // istanbul ignore next
178
- if (doDebug) {
179
- debugLog(" checking argDefDataType ", argDefDataType.toString());
180
- debugLog(" checking argDataType ", argDataType.toString());
181
- }
182
- if (argDataType.nodeId.value === argDefDataType.nodeId.value) {
183
- return true;
184
- }
185
- // check that dataType is of the same type (derived )
186
- if (argDefDataType.isSupertypeOf(argDataType)) {
187
- // like argDefDataType IntegerId and argDataType Uint32
188
- return true;
189
- }
190
- if (argDataType.isSupertypeOf(argDefDataType)) {
191
- // like argDefDataType BaseDataType and argDataType any Type
192
- return true;
193
- }
194
- // special case for Enumeration
195
- if (arg.dataType === node_opcua_variant_1.DataType.Int32) {
196
- const enumDataType = addressSpace.findDataType((0, node_opcua_nodeid_1.coerceNodeId)(node_opcua_constants_1.DataTypeIds.Enumeration));
197
- if (argDefDataType.isSupertypeOf(enumDataType)) {
198
- return true;
199
- }
200
- }
201
- return false;
202
- }
203
- exports.isArgumentValid = isArgumentValid;
204
- /**
205
- * @method verifyArguments_ArgumentList
206
- * @param addressSpace
207
- * @param methodInputArguments
208
- * @param inputArguments
209
- * @return statusCode,inputArgumentResults
210
- */
211
- function verifyArguments_ArgumentList(addressSpace, methodInputArguments, inputArguments) {
212
- if (!inputArguments) {
213
- // it is possible to not provide inputArguments when method has no arguments
214
- return methodInputArguments.length === 0
215
- ? { statusCode: node_opcua_status_code_1.StatusCodes.Good }
216
- : { statusCode: node_opcua_status_code_1.StatusCodes.BadArgumentsMissing };
217
- }
218
- const inputArgumentResults = methodInputArguments.map((methodInputArgument, index) => {
219
- const argument = inputArguments[index];
220
- if (!argument) {
221
- return node_opcua_status_code_1.StatusCodes.BadNoData;
222
- }
223
- else if (!isArgumentValid(addressSpace, methodInputArgument, argument)) {
224
- return node_opcua_status_code_1.StatusCodes.BadTypeMismatch;
225
- }
226
- else {
227
- return node_opcua_status_code_1.StatusCodes.Good;
228
- }
229
- });
230
- if (methodInputArguments.length > inputArguments.length) {
231
- // istanbul ignore next
232
- if (doDebug) {
233
- debugLog("verifyArguments_ArgumentList " +
234
- "\n The client did specify too many input arguments for the method. " +
235
- "\n expected : " +
236
- methodInputArguments.length +
237
- "" +
238
- "\n actual : " +
239
- inputArguments.length);
240
- }
241
- return { inputArgumentResults, statusCode: node_opcua_status_code_1.StatusCodes.BadArgumentsMissing };
242
- }
243
- if (methodInputArguments.length < inputArguments.length) {
244
- // istanbul ignore next
245
- if (doDebug) {
246
- debugLog(" verifyArguments_ArgumentList " +
247
- "\n The client did not specify all of the input arguments for the method. " +
248
- "\n expected : " +
249
- methodInputArguments.length +
250
- "" +
251
- "\n actual : " +
252
- inputArguments.length);
253
- }
254
- return { inputArgumentResults, statusCode: node_opcua_status_code_1.StatusCodes.BadTooManyArguments };
255
- }
256
- return {
257
- inputArgumentResults,
258
- statusCode: inputArgumentResults.includes(node_opcua_status_code_1.StatusCodes.BadTypeMismatch) || inputArgumentResults.includes(node_opcua_status_code_1.StatusCodes.BadOutOfRange)
259
- ? node_opcua_status_code_1.StatusCodes.BadInvalidArgument
260
- : node_opcua_status_code_1.StatusCodes.Good
261
- };
262
- }
263
- exports.verifyArguments_ArgumentList = verifyArguments_ArgumentList;
264
- function build_retrieveInputArgumentsDefinition(addressSpace) {
265
- const the_address_space = addressSpace;
266
- return (objectId, methodId) => {
267
- const response = getMethodDeclaration_ArgumentList(the_address_space, objectId, methodId);
268
- /* istanbul ignore next */
269
- if (response.statusCode !== node_opcua_status_code_1.StatusCodes.Good) {
270
- debugLog(" StatusCode = " + response.statusCode.toString());
271
- throw new Error("Invalid Method " +
272
- response.statusCode.toString() +
273
- " ObjectId= " +
274
- objectId.toString() +
275
- "Method Id =" +
276
- methodId.toString());
277
- }
278
- const methodDeclaration = response.methodDeclaration;
279
- // verify input Parameters
280
- const methodInputArguments = methodDeclaration.getInputArguments();
281
- (0, node_opcua_assert_1.assert)(Array.isArray(methodInputArguments));
282
- return methodInputArguments;
283
- };
284
- }
285
- exports.build_retrieveInputArgumentsDefinition = build_retrieveInputArgumentsDefinition;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.build_retrieveInputArgumentsDefinition = exports.verifyArguments_ArgumentList = exports.isArgumentValid = exports.getMethodDeclaration_ArgumentList = exports.binaryStoreSize_ArgumentList = exports.decode_ArgumentList = exports.encode_ArgumentList = void 0;
4
+ /* eslint-disable complexity */
5
+ /**
6
+ * @module node-opcua-address-space
7
+ */
8
+ const node_opcua_assert_1 = require("node-opcua-assert");
9
+ const ec = require("node-opcua-basic-types");
10
+ const node_opcua_binary_stream_1 = require("node-opcua-binary-stream");
11
+ const node_opcua_debug_1 = require("node-opcua-debug");
12
+ const factories = require("node-opcua-factory");
13
+ const node_opcua_nodeid_1 = require("node-opcua-nodeid");
14
+ const node_opcua_status_code_1 = require("node-opcua-status-code");
15
+ const node_opcua_variant_1 = require("node-opcua-variant");
16
+ const node_opcua_variant_2 = require("node-opcua-variant");
17
+ const node_opcua_constants_1 = require("node-opcua-constants");
18
+ const node_opcua_data_model_1 = require("node-opcua-data-model");
19
+ const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
20
+ const warningLog = (0, node_opcua_debug_1.make_warningLog)(__filename);
21
+ const doDebug = (0, node_opcua_debug_1.checkDebugFlag)(__filename);
22
+ function myfindBuiltInType(dataType) {
23
+ return factories.findBuiltInType(node_opcua_variant_1.DataType[dataType]);
24
+ }
25
+ function encode_ArgumentList(definition, args, stream) {
26
+ (0, node_opcua_assert_1.assert)(definition.length === args.length);
27
+ (0, node_opcua_assert_1.assert)(Array.isArray(definition));
28
+ (0, node_opcua_assert_1.assert)(Array.isArray(args));
29
+ (0, node_opcua_assert_1.assert)(definition.length === args.length);
30
+ (0, node_opcua_assert_1.assert)(definition.length >= 0);
31
+ // we only encode arguments by following the definition
32
+ for (let i = 0; i < definition.length; i++) {
33
+ const def = definition[i];
34
+ const value = args[i];
35
+ const encodeFunc = myfindBuiltInType(def.dataType).encode;
36
+ // assert((def.valueRank === -1) || (def.valueRank === 0));
37
+ // todo : handle -3 -2
38
+ const isArray = def.valueRank && (def.valueRank === 1 || def.valueRank !== -1);
39
+ if (isArray) {
40
+ ec.encodeArray(value, stream, encodeFunc);
41
+ }
42
+ else {
43
+ encodeFunc(value, stream);
44
+ }
45
+ }
46
+ }
47
+ exports.encode_ArgumentList = encode_ArgumentList;
48
+ function decode_ArgumentList(definition, stream) {
49
+ if (!Array.isArray(definition)) {
50
+ throw new Error("This BaseDataType cannot be decoded because it has no definition.\n" +
51
+ "Please construct a BaseDataType({definition : [{dataType: DataType.UInt32 }]});");
52
+ }
53
+ const args = [];
54
+ let value;
55
+ for (const def of definition) {
56
+ const decodeFunc = myfindBuiltInType(def.dataType).decode;
57
+ // xx assert(def.valueRank === -1 || def.valueRank==0);
58
+ const isArray = def.valueRank === 1 || def.valueRank === -1;
59
+ if (isArray) {
60
+ value = ec.decodeArray(stream, decodeFunc);
61
+ }
62
+ else {
63
+ value = decodeFunc(stream);
64
+ }
65
+ args.push(value);
66
+ }
67
+ return args;
68
+ }
69
+ exports.decode_ArgumentList = decode_ArgumentList;
70
+ function binaryStoreSize_ArgumentList(description, args) {
71
+ (0, node_opcua_assert_1.assert)(Array.isArray(description));
72
+ (0, node_opcua_assert_1.assert)(Array.isArray(args));
73
+ (0, node_opcua_assert_1.assert)(args.length === description.length);
74
+ const stream = new node_opcua_binary_stream_1.BinaryStreamSizeCalculator();
75
+ encode_ArgumentList(description, args, stream);
76
+ return stream.length;
77
+ }
78
+ exports.binaryStoreSize_ArgumentList = binaryStoreSize_ArgumentList;
79
+ function getMethodDeclaration_ArgumentList(addressSpace, objectId, methodId) {
80
+ // find object in address space
81
+ const obj = addressSpace.findNode(objectId);
82
+ if (!obj) {
83
+ // istanbul ignore next
84
+ if (doDebug) {
85
+ debugLog("cannot find node ", objectId.toString());
86
+ }
87
+ return { statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdUnknown };
88
+ }
89
+ let objectMethod = obj.getMethodById(methodId);
90
+ if (!objectMethod) {
91
+ // the method doesn't belong to the object, nevertheless
92
+ // the method can be called
93
+ objectMethod = addressSpace.findNode(methodId);
94
+ if (!objectMethod || objectMethod.nodeClass !== node_opcua_data_model_1.NodeClass.Method) {
95
+ warningLog("cannot find method with id", methodId.toString(), "object Id = ", objectId.toString());
96
+ return { statusCode: node_opcua_status_code_1.StatusCodes.BadMethodInvalid };
97
+ }
98
+ }
99
+ const methodDeclarationId = objectMethod.methodDeclarationId;
100
+ const methodDeclaration = addressSpace.findNode(methodDeclarationId);
101
+ if (!methodDeclaration) {
102
+ // return {statusCode: StatusCodes.BadMethodInvalid};
103
+ return { statusCode: node_opcua_status_code_1.StatusCodes.Good, methodDeclaration: objectMethod };
104
+ }
105
+ // istanbul ignore next
106
+ if (methodDeclaration.nodeClass !== node_opcua_data_model_1.NodeClass.Method) {
107
+ throw new Error("Expecting a Method here");
108
+ }
109
+ return { statusCode: node_opcua_status_code_1.StatusCodes.Good, methodDeclaration };
110
+ }
111
+ exports.getMethodDeclaration_ArgumentList = getMethodDeclaration_ArgumentList;
112
+ function checkValueRank(argDefinition, arg) {
113
+ const isArray = arg.arrayType === node_opcua_variant_2.VariantArrayType.Array;
114
+ const isMatrix = arg.arrayType === node_opcua_variant_2.VariantArrayType.Matrix;
115
+ if (argDefinition.valueRank > 0) {
116
+ if (argDefinition.valueRank === 1) {
117
+ if (!isArray) {
118
+ return false;
119
+ }
120
+ }
121
+ else {
122
+ if (!isMatrix) {
123
+ return false;
124
+ }
125
+ }
126
+ }
127
+ else if (argDefinition.valueRank === -1) {
128
+ // SCALAR
129
+ if (isArray || isMatrix) {
130
+ return false;
131
+ }
132
+ }
133
+ else if (argDefinition.valueRank === -2) {
134
+ // ANY
135
+ }
136
+ else if (argDefinition.valueRank === -3) {
137
+ // Scalar or OneDim
138
+ if (isMatrix) {
139
+ return false;
140
+ }
141
+ }
142
+ else if (argDefinition.valueRank === 0) {
143
+ // array or matrix
144
+ if (!isArray && !isMatrix) {
145
+ return false;
146
+ }
147
+ }
148
+ return true;
149
+ }
150
+ /**
151
+ * @private
152
+ */
153
+ function isArgumentValid(addressSpace, argDefinition, arg) {
154
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(argDefinition, "dataType"));
155
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(argDefinition, "valueRank"));
156
+ const argDefDataType = addressSpace.findDataType(argDefinition.dataType);
157
+ const argDataType = addressSpace.findDataType((0, node_opcua_nodeid_1.resolveNodeId)(arg.dataType));
158
+ // istanbul ignore next
159
+ if (!argDefDataType) {
160
+ debugLog("dataType ", argDefinition.dataType.toString(), "doesn't exist");
161
+ return false;
162
+ }
163
+ if (argDefinition.valueRank >= 0 && arg.dataType === node_opcua_variant_1.DataType.Null) {
164
+ // this is valid to receive an empty array ith DataType.Null;
165
+ return true;
166
+ }
167
+ if (!checkValueRank(argDefinition, arg)) {
168
+ return false;
169
+ }
170
+ // istanbul ignore next
171
+ if (!argDataType) {
172
+ debugLog(" cannot find dataType ", arg.dataType, (0, node_opcua_nodeid_1.resolveNodeId)(arg.dataType));
173
+ debugLog(" arg = ", arg.toString());
174
+ debugLog(" def =", argDefinition.toString());
175
+ return false;
176
+ }
177
+ // istanbul ignore next
178
+ if (doDebug) {
179
+ debugLog(" checking argDefDataType ", argDefDataType.toString());
180
+ debugLog(" checking argDataType ", argDataType.toString());
181
+ }
182
+ if (argDataType.nodeId.value === argDefDataType.nodeId.value) {
183
+ return true;
184
+ }
185
+ // check that dataType is of the same type (derived )
186
+ if (argDefDataType.isSupertypeOf(argDataType)) {
187
+ // like argDefDataType IntegerId and argDataType Uint32
188
+ return true;
189
+ }
190
+ if (argDataType.isSupertypeOf(argDefDataType)) {
191
+ // like argDefDataType BaseDataType and argDataType any Type
192
+ return true;
193
+ }
194
+ // special case for Enumeration
195
+ if (arg.dataType === node_opcua_variant_1.DataType.Int32) {
196
+ const enumDataType = addressSpace.findDataType((0, node_opcua_nodeid_1.coerceNodeId)(node_opcua_constants_1.DataTypeIds.Enumeration));
197
+ if (argDefDataType.isSupertypeOf(enumDataType)) {
198
+ return true;
199
+ }
200
+ }
201
+ return false;
202
+ }
203
+ exports.isArgumentValid = isArgumentValid;
204
+ /**
205
+ * @method verifyArguments_ArgumentList
206
+ * @param addressSpace
207
+ * @param methodInputArguments
208
+ * @param inputArguments
209
+ * @return statusCode,inputArgumentResults
210
+ */
211
+ function verifyArguments_ArgumentList(addressSpace, methodInputArguments, inputArguments) {
212
+ if (!inputArguments) {
213
+ // it is possible to not provide inputArguments when method has no arguments
214
+ return methodInputArguments.length === 0
215
+ ? { statusCode: node_opcua_status_code_1.StatusCodes.Good }
216
+ : { statusCode: node_opcua_status_code_1.StatusCodes.BadArgumentsMissing };
217
+ }
218
+ const inputArgumentResults = methodInputArguments.map((methodInputArgument, index) => {
219
+ const argument = inputArguments[index];
220
+ if (!argument) {
221
+ return node_opcua_status_code_1.StatusCodes.BadNoData;
222
+ }
223
+ else if (!isArgumentValid(addressSpace, methodInputArgument, argument)) {
224
+ return node_opcua_status_code_1.StatusCodes.BadTypeMismatch;
225
+ }
226
+ else {
227
+ return node_opcua_status_code_1.StatusCodes.Good;
228
+ }
229
+ });
230
+ if (methodInputArguments.length > inputArguments.length) {
231
+ // istanbul ignore next
232
+ if (doDebug) {
233
+ debugLog("verifyArguments_ArgumentList " +
234
+ "\n The client did specify too many input arguments for the method. " +
235
+ "\n expected : " +
236
+ methodInputArguments.length +
237
+ "" +
238
+ "\n actual : " +
239
+ inputArguments.length);
240
+ }
241
+ return { inputArgumentResults, statusCode: node_opcua_status_code_1.StatusCodes.BadArgumentsMissing };
242
+ }
243
+ if (methodInputArguments.length < inputArguments.length) {
244
+ // istanbul ignore next
245
+ if (doDebug) {
246
+ debugLog(" verifyArguments_ArgumentList " +
247
+ "\n The client did not specify all of the input arguments for the method. " +
248
+ "\n expected : " +
249
+ methodInputArguments.length +
250
+ "" +
251
+ "\n actual : " +
252
+ inputArguments.length);
253
+ }
254
+ return { inputArgumentResults, statusCode: node_opcua_status_code_1.StatusCodes.BadTooManyArguments };
255
+ }
256
+ return {
257
+ inputArgumentResults,
258
+ statusCode: inputArgumentResults.includes(node_opcua_status_code_1.StatusCodes.BadTypeMismatch) || inputArgumentResults.includes(node_opcua_status_code_1.StatusCodes.BadOutOfRange)
259
+ ? node_opcua_status_code_1.StatusCodes.BadInvalidArgument
260
+ : node_opcua_status_code_1.StatusCodes.Good
261
+ };
262
+ }
263
+ exports.verifyArguments_ArgumentList = verifyArguments_ArgumentList;
264
+ function build_retrieveInputArgumentsDefinition(addressSpace) {
265
+ const the_address_space = addressSpace;
266
+ return (objectId, methodId) => {
267
+ const response = getMethodDeclaration_ArgumentList(the_address_space, objectId, methodId);
268
+ /* istanbul ignore next */
269
+ if (response.statusCode !== node_opcua_status_code_1.StatusCodes.Good) {
270
+ debugLog(" StatusCode = " + response.statusCode.toString());
271
+ throw new Error("Invalid Method " +
272
+ response.statusCode.toString() +
273
+ " ObjectId= " +
274
+ objectId.toString() +
275
+ "Method Id =" +
276
+ methodId.toString());
277
+ }
278
+ const methodDeclaration = response.methodDeclaration;
279
+ // verify input Parameters
280
+ const methodInputArguments = methodDeclaration.getInputArguments();
281
+ (0, node_opcua_assert_1.assert)(Array.isArray(methodInputArguments));
282
+ return methodInputArguments;
283
+ };
284
+ }
285
+ exports.build_retrieveInputArgumentsDefinition = build_retrieveInputArgumentsDefinition;
286
286
  //# sourceMappingURL=argument_list.js.map
@@ -1,6 +1,6 @@
1
- import { CallMethodRequest } from "node-opcua-service-call";
2
- import { CallMethodResultOptions } from "node-opcua-types";
3
- import { ISessionContext, IAddressSpace } from "node-opcua-address-space-base";
4
- declare type ResponseCallback<T> = (err: Error | null, result?: T) => void;
5
- export declare function callMethodHelper(context: ISessionContext, addressSpace: IAddressSpace, callMethodRequest: CallMethodRequest, callback: ResponseCallback<CallMethodResultOptions>): void;
6
- export {};
1
+ import { CallMethodRequest } from "node-opcua-service-call";
2
+ import { CallMethodResultOptions } from "node-opcua-types";
3
+ import { ISessionContext, IAddressSpace } from "node-opcua-address-space-base";
4
+ declare type ResponseCallback<T> = (err: Error | null, result?: T) => void;
5
+ export declare function callMethodHelper(context: ISessionContext, addressSpace: IAddressSpace, callMethodRequest: CallMethodRequest, callback: ResponseCallback<CallMethodResultOptions>): void;
6
+ export {};