node-opcua-address-space 2.97.0 → 2.98.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) 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 +91 -91
  4. package/dist/source/continuation_points/continuation_point_manager.js +200 -200
  5. package/dist/source/helpers/adjust_browse_direction.d.ts +5 -5
  6. package/dist/source/helpers/adjust_browse_direction.js +11 -11
  7. package/dist/source/helpers/argument_list.d.ts +33 -33
  8. package/dist/source/helpers/argument_list.js +254 -254
  9. package/dist/source/helpers/call_helpers.d.ts +6 -6
  10. package/dist/source/helpers/call_helpers.js +71 -71
  11. package/dist/source/helpers/coerce_enum_value.d.ts +6 -6
  12. package/dist/source/helpers/coerce_enum_value.js +33 -33
  13. package/dist/source/helpers/dump_tools.d.ts +14 -14
  14. package/dist/source/helpers/dump_tools.js +78 -78
  15. package/dist/source/helpers/ensure_secure_access.d.ts +9 -9
  16. package/dist/source/helpers/ensure_secure_access.js +76 -76
  17. package/dist/source/helpers/make_optionals_map.d.ts +21 -21
  18. package/dist/source/helpers/make_optionals_map.js +29 -29
  19. package/dist/source/helpers/multiform_func.d.ts +11 -11
  20. package/dist/source/helpers/multiform_func.js +75 -75
  21. package/dist/source/helpers/resolve_opaque_on_address_space.d.ts +3 -3
  22. package/dist/source/helpers/resolve_opaque_on_address_space.js +36 -36
  23. package/dist/source/index.d.ts +61 -61
  24. package/dist/source/index.js +89 -89
  25. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +19 -19
  26. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +2 -2
  27. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.d.ts +193 -193
  28. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.js +2 -2
  29. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.d.ts +12 -12
  30. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.js +2 -2
  31. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.d.ts +10 -10
  32. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.js +2 -2
  33. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +7 -7
  34. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js +2 -2
  35. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts +7 -7
  36. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.js +2 -2
  37. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +4 -4
  38. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js +2 -2
  39. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +4 -4
  40. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js +2 -2
  41. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +9 -9
  42. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js +2 -2
  43. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +4 -4
  44. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js +2 -2
  45. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +4 -4
  46. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js +2 -2
  47. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +20 -20
  48. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js +2 -2
  49. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +23 -23
  50. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js +2 -2
  51. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +32 -32
  52. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js +2 -2
  53. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +19 -19
  54. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js +2 -2
  55. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +45 -42
  56. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.js +2 -2
  57. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +7 -7
  58. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js +25 -25
  59. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +5 -5
  60. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js +2 -2
  61. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +20 -20
  62. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js +2 -2
  63. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +26 -26
  64. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js +2 -2
  65. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +8 -8
  66. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js +2 -2
  67. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +10 -10
  68. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js +2 -2
  69. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +21 -21
  70. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js +2 -2
  71. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +24 -24
  72. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js +2 -2
  73. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +12 -12
  74. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js +2 -2
  75. package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +8 -8
  76. package/dist/source/interfaces/data_access/ua_y_array_item_ex.js +2 -2
  77. package/dist/source/interfaces/extension_object_constructor.d.ts +10 -10
  78. package/dist/source/interfaces/extension_object_constructor.js +2 -2
  79. package/dist/source/interfaces/nodeset_loader_options.d.ts +4 -4
  80. package/dist/source/interfaces/nodeset_loader_options.js +2 -2
  81. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -12
  82. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +2 -2
  83. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -49
  84. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js +2 -2
  85. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -11
  86. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js +2 -2
  87. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +30 -30
  88. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.js +2 -2
  89. package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +234 -234
  90. package/dist/source/interfaces/state_machine/ua_state_machine_type.js +2 -2
  91. package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +6 -6
  92. package/dist/source/interfaces/state_machine/ua_transition_ex.js +2 -2
  93. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +8 -8
  94. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +2 -2
  95. package/dist/source/loader/decode_xml_extension_object.d.ts +6 -6
  96. package/dist/source/loader/decode_xml_extension_object.js +71 -71
  97. package/dist/source/loader/ensure_datatype_extracted.d.ts +5 -5
  98. package/dist/source/loader/ensure_datatype_extracted.js +70 -70
  99. package/dist/source/loader/generateAddressSpaceRaw.d.ts +11 -11
  100. package/dist/source/loader/generateAddressSpaceRaw.js +45 -45
  101. package/dist/source/loader/load_nodeset2.d.ts +17 -17
  102. package/dist/source/loader/load_nodeset2.js +1483 -1483
  103. package/dist/source/loader/make_semver_compatible.d.ts +6 -6
  104. package/dist/source/loader/make_semver_compatible.js +25 -25
  105. package/dist/source/loader/make_xml_extension_object_parser.d.ts +28 -28
  106. package/dist/source/loader/make_xml_extension_object_parser.js +326 -326
  107. package/dist/source/loader/namespace_post_step.d.ts +10 -10
  108. package/dist/source/loader/namespace_post_step.js +61 -61
  109. package/dist/source/loader/register_node_promoter.d.ts +2 -2
  110. package/dist/source/loader/register_node_promoter.js +9 -9
  111. package/dist/source/namespace.d.ts +6 -6
  112. package/dist/source/namespace.js +2 -2
  113. package/dist/source/namespace_alarm_and_condition.d.ts +32 -32
  114. package/dist/source/namespace_alarm_and_condition.js +2 -2
  115. package/dist/source/namespace_data_access.d.ts +42 -42
  116. package/dist/source/namespace_data_access.js +2 -2
  117. package/dist/source/namespace_machine_state.d.ts +8 -8
  118. package/dist/source/namespace_machine_state.js +2 -2
  119. package/dist/source/pseudo_session.d.ts +72 -72
  120. package/dist/source/pseudo_session.js +254 -254
  121. package/dist/source/session_context.d.ts +111 -111
  122. package/dist/source/session_context.js +264 -264
  123. package/dist/source/session_context.js.map +1 -1
  124. package/dist/source/set_namespace_meta_data.d.ts +2 -2
  125. package/dist/source/set_namespace_meta_data.js +59 -59
  126. package/dist/source/ua_root_folder.d.ts +9 -9
  127. package/dist/source/ua_root_folder.js +2 -2
  128. package/dist/source/ua_two_state_variable_ex.d.ts +23 -23
  129. package/dist/source/ua_two_state_variable_ex.js +2 -2
  130. package/dist/source/xml_writer.d.ts +18 -18
  131. package/dist/source/xml_writer.js +2 -2
  132. package/dist/src/address_space.d.ts +387 -387
  133. package/dist/src/address_space.js +1385 -1385
  134. package/dist/src/address_space.js.map +1 -1
  135. package/dist/src/address_space_change_event_tools.d.ts +6 -6
  136. package/dist/src/address_space_change_event_tools.js +152 -152
  137. package/dist/src/address_space_private.d.ts +43 -43
  138. package/dist/src/address_space_private.js +2 -2
  139. package/dist/src/alarms_and_conditions/condition.d.ts +5 -5
  140. package/dist/src/alarms_and_conditions/condition.js +78 -78
  141. package/dist/src/alarms_and_conditions/condition_info_impl.d.ts +26 -26
  142. package/dist/src/alarms_and_conditions/condition_info_impl.js +54 -54
  143. package/dist/src/alarms_and_conditions/condition_snapshot_impl.d.ts +222 -222
  144. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js +657 -657
  145. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js.map +1 -1
  146. package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +9 -9
  147. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +60 -60
  148. package/dist/src/alarms_and_conditions/index.d.ts +16 -16
  149. package/dist/src/alarms_and_conditions/index.js +32 -32
  150. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +44 -44
  151. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -244
  152. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +93 -93
  153. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +418 -418
  154. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js.map +1 -1
  155. package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +26 -26
  156. package/dist/src/alarms_and_conditions/ua_base_event_impl.js +38 -38
  157. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +44 -44
  158. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +183 -183
  159. package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +155 -153
  160. package/dist/src/alarms_and_conditions/ua_condition_impl.js +1028 -1028
  161. package/dist/src/alarms_and_conditions/ua_condition_impl.js.map +1 -1
  162. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +14 -14
  163. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +34 -34
  164. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +24 -24
  165. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +56 -56
  166. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +11 -11
  167. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +11 -11
  168. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +23 -23
  169. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +86 -86
  170. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +11 -11
  171. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +7 -7
  172. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +79 -79
  173. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +250 -250
  174. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +24 -24
  175. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +50 -50
  176. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +19 -19
  177. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +162 -162
  178. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +46 -46
  179. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +165 -165
  180. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +18 -18
  181. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +17 -17
  182. package/dist/src/apply_condition_refresh.d.ts +6 -6
  183. package/dist/src/apply_condition_refresh.js +27 -27
  184. package/dist/src/base_node_impl.d.ts +284 -284
  185. package/dist/src/base_node_impl.js +1454 -1454
  186. package/dist/src/base_node_private.d.ts +81 -81
  187. package/dist/src/base_node_private.js +832 -803
  188. package/dist/src/base_node_private.js.map +1 -1
  189. package/dist/src/check_value_rank_compatibility.d.ts +15 -15
  190. package/dist/src/check_value_rank_compatibility.js +81 -81
  191. package/dist/src/data_access/add_dataItem_stuff.d.ts +11 -11
  192. package/dist/src/data_access/add_dataItem_stuff.js +61 -61
  193. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.d.ts +1 -1
  194. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js +34 -34
  195. package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +32 -32
  196. package/dist/src/data_access/ua_multistate_discrete_impl.js +130 -130
  197. package/dist/src/data_access/ua_multistate_value_discrete_impl.d.ts +52 -52
  198. package/dist/src/data_access/ua_multistate_value_discrete_impl.js +253 -253
  199. package/dist/src/data_access/ua_two_state_discrete_impl.d.ts +25 -25
  200. package/dist/src/data_access/ua_two_state_discrete_impl.js +155 -155
  201. package/dist/src/event_data.d.ts +34 -34
  202. package/dist/src/event_data.js +64 -64
  203. package/dist/src/extension_object_array_node.d.ts +23 -23
  204. package/dist/src/extension_object_array_node.js +248 -248
  205. package/dist/src/historical_access/address_space_historical_data_node.d.ts +26 -26
  206. package/dist/src/historical_access/address_space_historical_data_node.js +652 -652
  207. package/dist/src/idx_iterator.d.ts +8 -8
  208. package/dist/src/idx_iterator.js +50 -50
  209. package/dist/src/index_current.d.ts +46 -46
  210. package/dist/src/index_current.js +77 -77
  211. package/dist/src/namespace_impl.d.ts +456 -456
  212. package/dist/src/namespace_impl.js +1762 -1762
  213. package/dist/src/namespace_impl.js.map +1 -1
  214. package/dist/src/namespace_private.d.ts +23 -23
  215. package/dist/src/namespace_private.js +32 -32
  216. package/dist/src/nodeid_manager.d.ts +37 -37
  217. package/dist/src/nodeid_manager.js +183 -183
  218. package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +2 -2
  219. package/dist/src/nodeset_tools/adjust_namespace_array.js +13 -13
  220. package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +18 -18
  221. package/dist/src/nodeset_tools/construct_namespace_dependency.js +140 -140
  222. package/dist/src/nodeset_tools/dump_to_bsd.d.ts +2 -2
  223. package/dist/src/nodeset_tools/dump_to_bsd.js +164 -164
  224. package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +10 -10
  225. package/dist/src/nodeset_tools/nodeset_to_xml.js +1287 -1287
  226. package/dist/src/private_namespace.d.ts +5 -5
  227. package/dist/src/private_namespace.js +19 -19
  228. package/dist/src/reference_impl.d.ts +43 -43
  229. package/dist/src/reference_impl.js +139 -139
  230. package/dist/src/role_permissions.d.ts +2 -2
  231. package/dist/src/role_permissions.js +10 -10
  232. package/dist/src/state_machine/finite_state_machine.d.ts +81 -81
  233. package/dist/src/state_machine/finite_state_machine.js +388 -388
  234. package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +38 -38
  235. package/dist/src/state_machine/ua_shelving_state_machine_ex.js +250 -250
  236. package/dist/src/state_machine/ua_two_state_variable.d.ts +61 -61
  237. package/dist/src/state_machine/ua_two_state_variable.js +331 -331
  238. package/dist/src/tool_isSubtypeOf.d.ts +18 -18
  239. package/dist/src/tool_isSubtypeOf.js +124 -124
  240. package/dist/src/ua_condition_type.d.ts +8 -8
  241. package/dist/src/ua_condition_type.js +2 -2
  242. package/dist/src/ua_data_type_impl.d.ts +89 -89
  243. package/dist/src/ua_data_type_impl.js +368 -368
  244. package/dist/src/ua_method_impl.d.ts +42 -42
  245. package/dist/src/ua_method_impl.js +217 -217
  246. package/dist/src/ua_object_impl.d.ts +35 -35
  247. package/dist/src/ua_object_impl.js +168 -168
  248. package/dist/src/ua_object_type_impl.d.ts +50 -50
  249. package/dist/src/ua_object_type_impl.js +126 -126
  250. package/dist/src/ua_reference_type_impl.d.ts +45 -45
  251. package/dist/src/ua_reference_type_impl.js +141 -141
  252. package/dist/src/ua_variable_impl.d.ts +380 -380
  253. package/dist/src/ua_variable_impl.js +1738 -1738
  254. package/dist/src/ua_variable_impl_ext_obj.d.ts +23 -23
  255. package/dist/src/ua_variable_impl_ext_obj.js +670 -670
  256. package/dist/src/ua_variable_type_impl.d.ts +74 -74
  257. package/dist/src/ua_variable_type_impl.js +597 -581
  258. package/dist/src/ua_variable_type_impl.js.map +1 -1
  259. package/dist/src/ua_view_impl.d.ts +19 -19
  260. package/dist/src/ua_view_impl.js +43 -43
  261. package/dist/tsconfig_common.tsbuildinfo +1 -0
  262. package/distHelpers/add_event_generator_object.d.ts +3 -3
  263. package/distHelpers/add_event_generator_object.js +64 -64
  264. package/distHelpers/alarms_and_conditions_demo.d.ts +9 -9
  265. package/distHelpers/alarms_and_conditions_demo.js +115 -115
  266. package/distHelpers/assertHasMatchingReference.d.ts +19 -19
  267. package/distHelpers/assertHasMatchingReference.js +40 -40
  268. package/distHelpers/boiler_system.d.ts +113 -113
  269. package/distHelpers/boiler_system.js +395 -395
  270. package/distHelpers/create_minimalist_address_space_nodeset.d.ts +5 -5
  271. package/distHelpers/create_minimalist_address_space_nodeset.js +171 -171
  272. package/distHelpers/date_utils.d.ts +3 -3
  273. package/distHelpers/date_utils.js +9 -9
  274. package/distHelpers/dump_statemachine.js +127 -127
  275. package/distHelpers/get_address_space_fixture.d.ts +1 -1
  276. package/distHelpers/get_address_space_fixture.js +30 -30
  277. package/distHelpers/get_mini_address_space.d.ts +7 -7
  278. package/distHelpers/get_mini_address_space.js +36 -36
  279. package/distHelpers/index.d.ts +12 -12
  280. package/distHelpers/index.js +28 -28
  281. package/distHelpers/mock_session.d.ts +10 -10
  282. package/distHelpers/mock_session.js +25 -25
  283. package/distNodeJS/generate_address_space.d.ts +6 -6
  284. package/distNodeJS/generate_address_space.js +52 -52
  285. package/distNodeJS/index.d.ts +1 -1
  286. package/distNodeJS/index.js +17 -17
  287. package/package.json +51 -40
  288. package/source/interfaces/alarms_and_conditions/ua_condition_ex.ts +4 -3
  289. package/src/alarms_and_conditions/ua_condition_impl.ts +14 -9
  290. package/src/base_node_private.ts +73 -28
  291. package/src/ua_variable_type_impl.ts +35 -17
  292. package/.mocharc.yml +0 -12
  293. package/dist/src/tool_isSupertypeOf.d.ts +0 -18
  294. package/dist/src/tool_isSupertypeOf.js +0 -125
  295. package/dist/src/tool_isSupertypeOf.js.map +0 -1
  296. package/generate.js +0 -1
  297. package/source_nodejs/generate_address_space.ts +0 -60
  298. package/source_nodejs/index.ts +0 -1
  299. package/test_helpers/add_event_generator_object.ts +0 -71
  300. package/test_helpers/alarms_and_conditions_demo.ts +0 -151
  301. package/test_helpers/assertHasMatchingReference.ts +0 -43
  302. package/test_helpers/boiler_system.ts +0 -610
  303. package/test_helpers/create_minimalist_address_space_nodeset.ts +0 -208
  304. package/test_helpers/date_utils.ts +0 -5
  305. package/test_helpers/dump_statemachine.ts +0 -155
  306. package/test_helpers/get_address_space_fixture.ts +0 -30
  307. package/test_helpers/get_mini_address_space.ts +0 -42
  308. package/test_helpers/index.ts +0 -12
  309. package/test_helpers/mock_session.ts +0 -34
  310. package/test_helpers/test_fixtures/dataType_in_separateNamespace.xml +0 -150
  311. package/test_helpers/test_fixtures/dataType_in_separateNamespace_basic.xml +0 -57
  312. package/test_helpers/test_fixtures/dataType_in_separateNamespace_mix.xml +0 -136
  313. package/test_helpers/test_fixtures/dataType_issue.xml +0 -80
  314. package/test_helpers/test_fixtures/dataType_withEnumeration.xml +0 -82
  315. package/test_helpers/test_fixtures/dataType_with_isOptionSet.xml +0 -194
  316. package/test_helpers/test_fixtures/dataType_with_qualifiedname.xml +0 -71
  317. package/test_helpers/test_fixtures/dataType_with_recursive_structure.xml +0 -155
  318. package/test_helpers/test_fixtures/dataType_with_structures.xml +0 -605
  319. package/test_helpers/test_fixtures/dataType_with_union.xml +0 -90
  320. package/test_helpers/test_fixtures/datatype_as_per_1.04.xml +0 -118
  321. package/test_helpers/test_fixtures/datatype_with_allow_subtype.xml +0 -104
  322. package/test_helpers/test_fixtures/eurange_issue.xml +0 -74
  323. package/test_helpers/test_fixtures/example_issue1096.xml +0 -267
  324. package/test_helpers/test_fixtures/fixture_empty_nodeset2.xml +0 -106
  325. package/test_helpers/test_fixtures/fixture_simple_statemachine_nodeset2.xml +0 -1305
  326. package/test_helpers/test_fixtures/fixuture_nodeset_objects_with_some_methods.xml +0 -370
  327. package/test_helpers/test_fixtures/issue_1132_variable_with_nodeid_value.xml +0 -68
  328. package/test_helpers/test_fixtures/issue_846.xml +0 -3172
  329. package/test_helpers/test_fixtures/issue_899_variable_with_nodeid_value.xml +0 -33
  330. package/test_helpers/test_fixtures/mini.Node.Set2.xml +0 -4736
  331. package/test_helpers/test_fixtures/mini.nodeset.withVariousVariables.xml +0 -196
  332. package/test_helpers/test_fixtures/minimalist_nodeset_with_models.xml +0 -8
  333. package/test_helpers/test_fixtures/minimalist_nodeset_with_models_more_complex.xml +0 -20
  334. package/test_helpers/test_fixtures/nodeset_no_aliases.xml +0 -30
  335. package/test_helpers/test_fixtures/nodeset_no_aliases_with_aliases.xml +0 -31
  336. package/test_helpers/test_fixtures/nodeset_with_analog_items.xml +0 -45
  337. package/test_helpers/test_fixtures/nodeset_with_guid.xml +0 -1442
  338. package/test_helpers/test_fixtures/nodeset_with_int64_values.xml +0 -31
  339. package/test_helpers/test_fixtures/nodeset_with_special_char.xml +0 -34
  340. package/test_helpers/test_fixtures/nodeset_with_utf8_special_characters.xml +0 -20
  341. package/test_helpers/test_fixtures/variable_with_value.xml +0 -143
  342. package/test_helpers/test_fixtures/variabletype_with_value.xml +0 -324
@@ -1,255 +1,255 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- 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
- // istanbul ignore next
50
- if (!Array.isArray(definition)) {
51
- throw new Error("This BaseDataType cannot be decoded because it has no definition.\n" +
52
- "Please construct a BaseDataType({definition : [{dataType: DataType.UInt32 }]});");
53
- }
54
- const args = [];
55
- let value;
56
- for (const def of definition) {
57
- const decodeFunc = myfindBuiltInType(def.dataType).decode;
58
- // xx assert(def.valueRank === -1 || def.valueRank==0);
59
- const isArray = def.valueRank === 1 || def.valueRank === -1;
60
- if (isArray) {
61
- value = ec.decodeArray(stream, decodeFunc);
62
- }
63
- else {
64
- value = decodeFunc(stream);
65
- }
66
- args.push(value);
67
- }
68
- return args;
69
- }
70
- exports.decode_ArgumentList = decode_ArgumentList;
71
- function binaryStoreSize_ArgumentList(description, args) {
72
- (0, node_opcua_assert_1.assert)(Array.isArray(description));
73
- (0, node_opcua_assert_1.assert)(Array.isArray(args));
74
- (0, node_opcua_assert_1.assert)(args.length === description.length);
75
- const stream = new node_opcua_binary_stream_1.BinaryStreamSizeCalculator();
76
- encode_ArgumentList(description, args, stream);
77
- return stream.length;
78
- }
79
- exports.binaryStoreSize_ArgumentList = binaryStoreSize_ArgumentList;
80
- function getMethodDeclaration_ArgumentList(addressSpace, objectId, methodId) {
81
- // find object in address space
82
- const obj = addressSpace.findNode(objectId);
83
- if (!obj) {
84
- // istanbul ignore next
85
- doDebug && debugLog("cannot find node ", objectId.toString());
86
- return { statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdUnknown };
87
- }
88
- let objectMethod = obj.getMethodById(methodId);
89
- if (!objectMethod) {
90
- // the method doesn't belong to the object, nevertheless
91
- // the method can be called
92
- objectMethod = addressSpace.findNode(methodId);
93
- if (!objectMethod || objectMethod.nodeClass !== node_opcua_data_model_1.NodeClass.Method) {
94
- warningLog("cannot find method with id", methodId.toString(), "object Id = ", objectId.toString());
95
- return { statusCode: node_opcua_status_code_1.StatusCodes.BadMethodInvalid };
96
- }
97
- }
98
- const methodDeclarationId = objectMethod.methodDeclarationId;
99
- const methodDeclaration = addressSpace.findNode(methodDeclarationId);
100
- if (!methodDeclaration) {
101
- // return {statusCode: StatusCodes.BadMethodInvalid};
102
- return { statusCode: node_opcua_status_code_1.StatusCodes.Good, methodDeclaration: objectMethod };
103
- }
104
- // istanbul ignore next
105
- if (methodDeclaration.nodeClass !== node_opcua_data_model_1.NodeClass.Method) {
106
- throw new Error("Expecting a Method here");
107
- }
108
- return { statusCode: node_opcua_status_code_1.StatusCodes.Good, methodDeclaration };
109
- }
110
- exports.getMethodDeclaration_ArgumentList = getMethodDeclaration_ArgumentList;
111
- function checkValueRank(argDefinition, arg) {
112
- const isArray = arg.arrayType === node_opcua_variant_2.VariantArrayType.Array;
113
- const isMatrix = arg.arrayType === node_opcua_variant_2.VariantArrayType.Matrix;
114
- if (argDefinition.valueRank > 0) {
115
- if (argDefinition.valueRank === 1) {
116
- if (!isArray) {
117
- return false;
118
- }
119
- }
120
- else {
121
- if (!isMatrix) {
122
- return false;
123
- }
124
- }
125
- }
126
- else if (argDefinition.valueRank === -1) {
127
- // SCALAR
128
- if (isArray || isMatrix) {
129
- return false;
130
- }
131
- }
132
- else if (argDefinition.valueRank === -2) {
133
- // ANY
134
- }
135
- else if (argDefinition.valueRank === -3) {
136
- // Scalar or OneDim
137
- if (isMatrix) {
138
- return false;
139
- }
140
- }
141
- else if (argDefinition.valueRank === 0) {
142
- // array or matrix
143
- if (!isArray && !isMatrix) {
144
- return false;
145
- }
146
- }
147
- return true;
148
- }
149
- /**
150
- * @private
151
- */
152
- function isArgumentValid(addressSpace, argDefinition, arg) {
153
- (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(argDefinition, "dataType"));
154
- (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(argDefinition, "valueRank"));
155
- const argDefDataType = addressSpace.findDataType(argDefinition.dataType);
156
- const argDataType = addressSpace.findDataType((0, node_opcua_nodeid_1.resolveNodeId)(arg.dataType));
157
- // istanbul ignore next
158
- if (!argDefDataType) {
159
- debugLog("dataType ", argDefinition.dataType.toString(), "doesn't exist");
160
- return false;
161
- }
162
- if (argDefinition.valueRank >= 0 && arg.dataType === node_opcua_variant_1.DataType.Null) {
163
- // this is valid to receive an empty array ith DataType.Null;
164
- return true;
165
- }
166
- if (!checkValueRank(argDefinition, arg)) {
167
- return false;
168
- }
169
- // istanbul ignore next
170
- if (!argDataType) {
171
- doDebug && debugLog(" cannot find dataType ", arg.dataType, (0, node_opcua_nodeid_1.resolveNodeId)(arg.dataType));
172
- doDebug && debugLog(" arg = ", arg.toString());
173
- doDebug && debugLog(" def =", argDefinition.toString());
174
- return false;
175
- }
176
- // istanbul ignore next
177
- if (doDebug) {
178
- doDebug && debugLog(" checking argDefDataType ", argDefDataType.toString());
179
- doDebug && debugLog(" checking argDataType ", argDataType.toString());
180
- }
181
- if (argDataType.nodeId.value === argDefDataType.nodeId.value) {
182
- return true;
183
- }
184
- // check that dataType is of the same type (derived )
185
- if (argDefDataType.isSubtypeOf(argDataType)) {
186
- // like argDefDataType IntegerId and argDataType Uint32
187
- return true;
188
- }
189
- if (argDataType.isSubtypeOf(argDefDataType)) {
190
- // like argDefDataType BaseDataType and argDataType any Type
191
- return true;
192
- }
193
- // special case for Enumeration
194
- if (arg.dataType === node_opcua_variant_1.DataType.Int32) {
195
- const enumDataType = addressSpace.findDataType((0, node_opcua_nodeid_1.coerceNodeId)(node_opcua_constants_1.DataTypeIds.Enumeration));
196
- if (argDefDataType.isSubtypeOf(enumDataType)) {
197
- return true;
198
- }
199
- }
200
- return false;
201
- }
202
- exports.isArgumentValid = isArgumentValid;
203
- /**
204
- * @method verifyArguments_ArgumentList
205
- * @param addressSpace
206
- * @param methodInputArguments
207
- * @param inputArguments
208
- * @return statusCode,inputArgumentResults
209
- */
210
- function verifyArguments_ArgumentList(addressSpace, methodInputArguments, inputArguments) {
211
- const inputArgumentResults = methodInputArguments.map((methodInputArgument, index) => {
212
- const argument = inputArguments[index];
213
- if (!argument) {
214
- return node_opcua_status_code_1.StatusCodes.BadNoData;
215
- }
216
- else if (!isArgumentValid(addressSpace, methodInputArgument, argument)) {
217
- return node_opcua_status_code_1.StatusCodes.BadTypeMismatch;
218
- }
219
- else {
220
- return node_opcua_status_code_1.StatusCodes.Good;
221
- }
222
- });
223
- if (methodInputArguments.length > inputArguments.length) {
224
- // istanbul ignore next
225
- doDebug &&
226
- debugLog("verifyArguments_ArgumentList " +
227
- "\n The client did specify too many input arguments for the method. " +
228
- "\n expected : " +
229
- methodInputArguments.length +
230
- "" +
231
- "\n actual : " +
232
- inputArguments.length);
233
- return { inputArgumentResults, statusCode: node_opcua_status_code_1.StatusCodes.BadArgumentsMissing };
234
- }
235
- if (methodInputArguments.length < inputArguments.length) {
236
- // istanbul ignore next
237
- doDebug &&
238
- debugLog(" verifyArguments_ArgumentList " +
239
- "\n The client did not specify all of the input arguments for the method. " +
240
- "\n expected : " +
241
- methodInputArguments.length +
242
- "" +
243
- "\n actual : " +
244
- inputArguments.length);
245
- return { inputArgumentResults, statusCode: node_opcua_status_code_1.StatusCodes.BadTooManyArguments };
246
- }
247
- return {
248
- inputArgumentResults,
249
- statusCode: inputArgumentResults.includes(node_opcua_status_code_1.StatusCodes.BadTypeMismatch) || inputArgumentResults.includes(node_opcua_status_code_1.StatusCodes.BadOutOfRange)
250
- ? node_opcua_status_code_1.StatusCodes.BadInvalidArgument
251
- : node_opcua_status_code_1.StatusCodes.Good
252
- };
253
- }
254
- exports.verifyArguments_ArgumentList = verifyArguments_ArgumentList;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ 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
+ // istanbul ignore next
50
+ if (!Array.isArray(definition)) {
51
+ throw new Error("This BaseDataType cannot be decoded because it has no definition.\n" +
52
+ "Please construct a BaseDataType({definition : [{dataType: DataType.UInt32 }]});");
53
+ }
54
+ const args = [];
55
+ let value;
56
+ for (const def of definition) {
57
+ const decodeFunc = myfindBuiltInType(def.dataType).decode;
58
+ // xx assert(def.valueRank === -1 || def.valueRank==0);
59
+ const isArray = def.valueRank === 1 || def.valueRank === -1;
60
+ if (isArray) {
61
+ value = ec.decodeArray(stream, decodeFunc);
62
+ }
63
+ else {
64
+ value = decodeFunc(stream);
65
+ }
66
+ args.push(value);
67
+ }
68
+ return args;
69
+ }
70
+ exports.decode_ArgumentList = decode_ArgumentList;
71
+ function binaryStoreSize_ArgumentList(description, args) {
72
+ (0, node_opcua_assert_1.assert)(Array.isArray(description));
73
+ (0, node_opcua_assert_1.assert)(Array.isArray(args));
74
+ (0, node_opcua_assert_1.assert)(args.length === description.length);
75
+ const stream = new node_opcua_binary_stream_1.BinaryStreamSizeCalculator();
76
+ encode_ArgumentList(description, args, stream);
77
+ return stream.length;
78
+ }
79
+ exports.binaryStoreSize_ArgumentList = binaryStoreSize_ArgumentList;
80
+ function getMethodDeclaration_ArgumentList(addressSpace, objectId, methodId) {
81
+ // find object in address space
82
+ const obj = addressSpace.findNode(objectId);
83
+ if (!obj) {
84
+ // istanbul ignore next
85
+ doDebug && debugLog("cannot find node ", objectId.toString());
86
+ return { statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdUnknown };
87
+ }
88
+ let objectMethod = obj.getMethodById(methodId);
89
+ if (!objectMethod) {
90
+ // the method doesn't belong to the object, nevertheless
91
+ // the method can be called
92
+ objectMethod = addressSpace.findNode(methodId);
93
+ if (!objectMethod || objectMethod.nodeClass !== node_opcua_data_model_1.NodeClass.Method) {
94
+ warningLog("cannot find method with id", methodId.toString(), "object Id = ", objectId.toString());
95
+ return { statusCode: node_opcua_status_code_1.StatusCodes.BadMethodInvalid };
96
+ }
97
+ }
98
+ const methodDeclarationId = objectMethod.methodDeclarationId;
99
+ const methodDeclaration = addressSpace.findNode(methodDeclarationId);
100
+ if (!methodDeclaration) {
101
+ // return {statusCode: StatusCodes.BadMethodInvalid};
102
+ return { statusCode: node_opcua_status_code_1.StatusCodes.Good, methodDeclaration: objectMethod };
103
+ }
104
+ // istanbul ignore next
105
+ if (methodDeclaration.nodeClass !== node_opcua_data_model_1.NodeClass.Method) {
106
+ throw new Error("Expecting a Method here");
107
+ }
108
+ return { statusCode: node_opcua_status_code_1.StatusCodes.Good, methodDeclaration };
109
+ }
110
+ exports.getMethodDeclaration_ArgumentList = getMethodDeclaration_ArgumentList;
111
+ function checkValueRank(argDefinition, arg) {
112
+ const isArray = arg.arrayType === node_opcua_variant_2.VariantArrayType.Array;
113
+ const isMatrix = arg.arrayType === node_opcua_variant_2.VariantArrayType.Matrix;
114
+ if (argDefinition.valueRank > 0) {
115
+ if (argDefinition.valueRank === 1) {
116
+ if (!isArray) {
117
+ return false;
118
+ }
119
+ }
120
+ else {
121
+ if (!isMatrix) {
122
+ return false;
123
+ }
124
+ }
125
+ }
126
+ else if (argDefinition.valueRank === -1) {
127
+ // SCALAR
128
+ if (isArray || isMatrix) {
129
+ return false;
130
+ }
131
+ }
132
+ else if (argDefinition.valueRank === -2) {
133
+ // ANY
134
+ }
135
+ else if (argDefinition.valueRank === -3) {
136
+ // Scalar or OneDim
137
+ if (isMatrix) {
138
+ return false;
139
+ }
140
+ }
141
+ else if (argDefinition.valueRank === 0) {
142
+ // array or matrix
143
+ if (!isArray && !isMatrix) {
144
+ return false;
145
+ }
146
+ }
147
+ return true;
148
+ }
149
+ /**
150
+ * @private
151
+ */
152
+ function isArgumentValid(addressSpace, argDefinition, arg) {
153
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(argDefinition, "dataType"));
154
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(argDefinition, "valueRank"));
155
+ const argDefDataType = addressSpace.findDataType(argDefinition.dataType);
156
+ const argDataType = addressSpace.findDataType((0, node_opcua_nodeid_1.resolveNodeId)(arg.dataType));
157
+ // istanbul ignore next
158
+ if (!argDefDataType) {
159
+ debugLog("dataType ", argDefinition.dataType.toString(), "doesn't exist");
160
+ return false;
161
+ }
162
+ if (argDefinition.valueRank >= 0 && arg.dataType === node_opcua_variant_1.DataType.Null) {
163
+ // this is valid to receive an empty array ith DataType.Null;
164
+ return true;
165
+ }
166
+ if (!checkValueRank(argDefinition, arg)) {
167
+ return false;
168
+ }
169
+ // istanbul ignore next
170
+ if (!argDataType) {
171
+ doDebug && debugLog(" cannot find dataType ", arg.dataType, (0, node_opcua_nodeid_1.resolveNodeId)(arg.dataType));
172
+ doDebug && debugLog(" arg = ", arg.toString());
173
+ doDebug && debugLog(" def =", argDefinition.toString());
174
+ return false;
175
+ }
176
+ // istanbul ignore next
177
+ if (doDebug) {
178
+ doDebug && debugLog(" checking argDefDataType ", argDefDataType.toString());
179
+ doDebug && debugLog(" checking argDataType ", argDataType.toString());
180
+ }
181
+ if (argDataType.nodeId.value === argDefDataType.nodeId.value) {
182
+ return true;
183
+ }
184
+ // check that dataType is of the same type (derived )
185
+ if (argDefDataType.isSubtypeOf(argDataType)) {
186
+ // like argDefDataType IntegerId and argDataType Uint32
187
+ return true;
188
+ }
189
+ if (argDataType.isSubtypeOf(argDefDataType)) {
190
+ // like argDefDataType BaseDataType and argDataType any Type
191
+ return true;
192
+ }
193
+ // special case for Enumeration
194
+ if (arg.dataType === node_opcua_variant_1.DataType.Int32) {
195
+ const enumDataType = addressSpace.findDataType((0, node_opcua_nodeid_1.coerceNodeId)(node_opcua_constants_1.DataTypeIds.Enumeration));
196
+ if (argDefDataType.isSubtypeOf(enumDataType)) {
197
+ return true;
198
+ }
199
+ }
200
+ return false;
201
+ }
202
+ exports.isArgumentValid = isArgumentValid;
203
+ /**
204
+ * @method verifyArguments_ArgumentList
205
+ * @param addressSpace
206
+ * @param methodInputArguments
207
+ * @param inputArguments
208
+ * @return statusCode,inputArgumentResults
209
+ */
210
+ function verifyArguments_ArgumentList(addressSpace, methodInputArguments, inputArguments) {
211
+ const inputArgumentResults = methodInputArguments.map((methodInputArgument, index) => {
212
+ const argument = inputArguments[index];
213
+ if (!argument) {
214
+ return node_opcua_status_code_1.StatusCodes.BadNoData;
215
+ }
216
+ else if (!isArgumentValid(addressSpace, methodInputArgument, argument)) {
217
+ return node_opcua_status_code_1.StatusCodes.BadTypeMismatch;
218
+ }
219
+ else {
220
+ return node_opcua_status_code_1.StatusCodes.Good;
221
+ }
222
+ });
223
+ if (methodInputArguments.length > inputArguments.length) {
224
+ // istanbul ignore next
225
+ doDebug &&
226
+ debugLog("verifyArguments_ArgumentList " +
227
+ "\n The client did specify too many input arguments for the method. " +
228
+ "\n expected : " +
229
+ methodInputArguments.length +
230
+ "" +
231
+ "\n actual : " +
232
+ inputArguments.length);
233
+ return { inputArgumentResults, statusCode: node_opcua_status_code_1.StatusCodes.BadArgumentsMissing };
234
+ }
235
+ if (methodInputArguments.length < inputArguments.length) {
236
+ // istanbul ignore next
237
+ doDebug &&
238
+ debugLog(" verifyArguments_ArgumentList " +
239
+ "\n The client did not specify all of the input arguments for the method. " +
240
+ "\n expected : " +
241
+ methodInputArguments.length +
242
+ "" +
243
+ "\n actual : " +
244
+ inputArguments.length);
245
+ return { inputArgumentResults, statusCode: node_opcua_status_code_1.StatusCodes.BadTooManyArguments };
246
+ }
247
+ return {
248
+ inputArgumentResults,
249
+ statusCode: inputArgumentResults.includes(node_opcua_status_code_1.StatusCodes.BadTypeMismatch) || inputArgumentResults.includes(node_opcua_status_code_1.StatusCodes.BadOutOfRange)
250
+ ? node_opcua_status_code_1.StatusCodes.BadInvalidArgument
251
+ : node_opcua_status_code_1.StatusCodes.Good
252
+ };
253
+ }
254
+ exports.verifyArguments_ArgumentList = verifyArguments_ArgumentList;
255
255
  //# 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
- 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
+ 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 {};