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,42 +1,42 @@
1
- import { AttributeIds, QualifiedNameLike } from "node-opcua-data-model";
2
- import { NodeClass } from "node-opcua-data-model";
3
- import { DataValue } from "node-opcua-data-value";
4
- import { NodeId } from "node-opcua-nodeid";
5
- import { NumericRange } from "node-opcua-numeric-range";
6
- import { Argument } from "node-opcua-service-call";
7
- import { CallbackT } from "node-opcua-status-code";
8
- import { CallMethodResultOptions } from "node-opcua-types";
9
- import { VariantLike } from "node-opcua-variant";
10
- import { MethodFunctor, UAMethod, UAObject, CloneExtraInfo, CloneFilter, CloneOptions, UAObjectType, ISessionContext } from "node-opcua-address-space-base";
11
- import { SessionContext } from "../source/session_context";
12
- import { BaseNodeImpl } from "./base_node_impl";
13
- export declare class UAMethodImpl extends BaseNodeImpl implements UAMethod {
14
- static checkValidArgument(args: unknown): boolean;
15
- readonly nodeClass = NodeClass.Method;
16
- get typeDefinitionObj(): UAObjectType;
17
- get parent(): UAObject | null;
18
- value?: any;
19
- methodDeclarationId: NodeId;
20
- _getExecutableFlag?: (this: UAMethod, context: ISessionContext | null) => boolean;
21
- _asyncExecutionFunction?: MethodFunctor;
22
- constructor(options: any);
23
- /**
24
- *
25
- *
26
- */
27
- getExecutableFlag(context: ISessionContext | null): boolean;
28
- getUserExecutableFlag(context: ISessionContext | null): boolean;
29
- /**
30
- *
31
- * @returns true if the method is bound
32
- */
33
- isBound(): boolean;
34
- readAttribute(context: ISessionContext | null, attributeId: AttributeIds, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValue;
35
- getInputArguments(): Argument[];
36
- getOutputArguments(): Argument[];
37
- bindMethod(async_func: MethodFunctor): void;
38
- execute(object: UAObject | UAObjectType | null, inputArguments: null | VariantLike[], context: SessionContext): Promise<CallMethodResultOptions>;
39
- execute(object: UAObject | UAObjectType | null, inputArguments: null | VariantLike[], context: ISessionContext, callback: CallbackT<CallMethodResultOptions>): void;
40
- clone(options: CloneOptions, optionalFilter?: CloneFilter, extraInfo?: CloneExtraInfo): UAMethod;
41
- private _getArguments;
42
- }
1
+ import { AttributeIds, QualifiedNameLike } from "node-opcua-data-model";
2
+ import { NodeClass } from "node-opcua-data-model";
3
+ import { DataValue } from "node-opcua-data-value";
4
+ import { NodeId } from "node-opcua-nodeid";
5
+ import { NumericRange } from "node-opcua-numeric-range";
6
+ import { Argument } from "node-opcua-service-call";
7
+ import { CallbackT } from "node-opcua-status-code";
8
+ import { CallMethodResultOptions } from "node-opcua-types";
9
+ import { VariantLike } from "node-opcua-variant";
10
+ import { MethodFunctor, UAMethod, UAObject, CloneExtraInfo, CloneFilter, CloneOptions, UAObjectType, ISessionContext } from "node-opcua-address-space-base";
11
+ import { SessionContext } from "../source/session_context";
12
+ import { BaseNodeImpl } from "./base_node_impl";
13
+ export declare class UAMethodImpl extends BaseNodeImpl implements UAMethod {
14
+ static checkValidArgument(args: unknown): boolean;
15
+ readonly nodeClass = NodeClass.Method;
16
+ get typeDefinitionObj(): UAObjectType;
17
+ get parent(): UAObject | null;
18
+ value?: any;
19
+ methodDeclarationId: NodeId;
20
+ _getExecutableFlag?: (this: UAMethod, context: ISessionContext | null) => boolean;
21
+ _asyncExecutionFunction?: MethodFunctor;
22
+ constructor(options: any);
23
+ /**
24
+ *
25
+ *
26
+ */
27
+ getExecutableFlag(context: ISessionContext | null): boolean;
28
+ getUserExecutableFlag(context: ISessionContext | null): boolean;
29
+ /**
30
+ *
31
+ * @returns true if the method is bound
32
+ */
33
+ isBound(): boolean;
34
+ readAttribute(context: ISessionContext | null, attributeId: AttributeIds, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValue;
35
+ getInputArguments(): Argument[];
36
+ getOutputArguments(): Argument[];
37
+ bindMethod(async_func: MethodFunctor): void;
38
+ execute(object: UAObject | UAObjectType | null, inputArguments: null | VariantLike[], context: SessionContext): Promise<CallMethodResultOptions>;
39
+ execute(object: UAObject | UAObjectType | null, inputArguments: null | VariantLike[], context: ISessionContext, callback: CallbackT<CallMethodResultOptions>): void;
40
+ clone(options: CloneOptions, optionalFilter?: CloneFilter, extraInfo?: CloneExtraInfo): UAMethod;
41
+ private _getArguments;
42
+ }
@@ -1,218 +1,218 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UAMethodImpl = void 0;
4
- /**
5
- * @module node-opcua-address-space
6
- */
7
- const util_1 = require("util");
8
- const chalk = require("chalk");
9
- const node_opcua_assert_1 = require("node-opcua-assert");
10
- const node_opcua_data_model_1 = require("node-opcua-data-model");
11
- const node_opcua_data_model_2 = require("node-opcua-data-model");
12
- const node_opcua_data_value_1 = require("node-opcua-data-value");
13
- const node_opcua_debug_1 = require("node-opcua-debug");
14
- const node_opcua_service_call_1 = require("node-opcua-service-call");
15
- const node_opcua_status_code_1 = require("node-opcua-status-code");
16
- const node_opcua_types_1 = require("node-opcua-types");
17
- const node_opcua_variant_1 = require("node-opcua-variant");
18
- const node_opcua_variant_2 = require("node-opcua-variant");
19
- const node_opcua_address_space_base_1 = require("node-opcua-address-space-base");
20
- const base_node_private_1 = require("./base_node_private");
21
- const namespace_impl_1 = require("./namespace_impl");
22
- const base_node_impl_1 = require("./base_node_impl");
23
- const warningLog = (0, node_opcua_debug_1.make_warningLog)(__filename);
24
- const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
25
- const errorLog = (0, node_opcua_debug_1.make_errorLog)(__filename);
26
- function default_check_valid_argument(arg) {
27
- return arg instanceof node_opcua_service_call_1.Argument;
28
- }
29
- class UAMethodImpl extends base_node_impl_1.BaseNodeImpl {
30
- static checkValidArgument(args) {
31
- return default_check_valid_argument(args);
32
- }
33
- get typeDefinitionObj() {
34
- return super.typeDefinitionObj;
35
- }
36
- get parent() {
37
- return super.parent;
38
- }
39
- constructor(options) {
40
- super(options);
41
- this.nodeClass = node_opcua_data_model_2.NodeClass.Method;
42
- this.value = options.value;
43
- this.methodDeclarationId = options.methodDeclarationId;
44
- }
45
- /**
46
- *
47
- *
48
- */
49
- getExecutableFlag(context) {
50
- if (!this.isBound()) {
51
- return false;
52
- }
53
- if (this._getExecutableFlag) {
54
- return this._getExecutableFlag(context);
55
- }
56
- return true;
57
- }
58
- getUserExecutableFlag(context) {
59
- if (context && !context.checkPermission(this, node_opcua_types_1.PermissionType.Call)) {
60
- return false;
61
- }
62
- if (!this.getExecutableFlag(context))
63
- return false;
64
- return true;
65
- }
66
- /**
67
- *
68
- * @returns true if the method is bound
69
- */
70
- isBound() {
71
- return typeof this._asyncExecutionFunction === "function";
72
- }
73
- readAttribute(context, attributeId, indexRange, dataEncoding) {
74
- const options = {};
75
- switch (attributeId) {
76
- case node_opcua_data_model_1.AttributeIds.Executable:
77
- options.value = { dataType: node_opcua_variant_2.DataType.Boolean, value: this.getExecutableFlag(context) };
78
- options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
79
- break;
80
- case node_opcua_data_model_1.AttributeIds.UserExecutable:
81
- options.value = { dataType: node_opcua_variant_2.DataType.Boolean, value: this.getUserExecutableFlag(context) };
82
- options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
83
- break;
84
- default:
85
- return base_node_impl_1.BaseNodeImpl.prototype.readAttribute.call(this, context, attributeId, indexRange, dataEncoding);
86
- }
87
- return new node_opcua_data_value_1.DataValue(options);
88
- }
89
- getInputArguments() {
90
- return this._getArguments("InputArguments");
91
- }
92
- getOutputArguments() {
93
- return this._getArguments("OutputArguments");
94
- }
95
- bindMethod(async_func) {
96
- (0, node_opcua_assert_1.assert)(typeof async_func === "function");
97
- if (async_func.length === 2) {
98
- async_func = (0, util_1.callbackify)(async_func);
99
- }
100
- (0, node_opcua_assert_1.assert)(async_func.length === 3);
101
- this._asyncExecutionFunction = async_func;
102
- }
103
- execute(object, inputArguments, context, callback) {
104
- // istanbul ignore next
105
- if (!callback) {
106
- throw new Error("execute need to be promisified");
107
- }
108
- (0, node_opcua_assert_1.assert)(inputArguments === null || Array.isArray(inputArguments));
109
- inputArguments = inputArguments || [];
110
- inputArguments = inputArguments.map(node_opcua_variant_1.Variant.coerce);
111
- (0, node_opcua_assert_1.assert)(inputArguments.length === 0 || inputArguments[0] instanceof node_opcua_variant_1.Variant);
112
- (0, node_opcua_assert_1.assert)(context !== null && typeof context === "object");
113
- (0, node_opcua_assert_1.assert)(typeof callback === "function");
114
- object = object || this.parent;
115
- // istanbul ignore next
116
- if (!object) {
117
- errorLog("UAMethod#execute expects a valid object");
118
- return callback(null, { statusCode: node_opcua_status_code_1.StatusCodes.BadInternalError });
119
- }
120
- if (object.nodeClass !== node_opcua_data_model_2.NodeClass.Object && object.nodeClass !== node_opcua_data_model_2.NodeClass.ObjectType) {
121
- warningLog("Method " +
122
- this.nodeId.toString() +
123
- " " +
124
- this.browseName.toString() +
125
- " called for a node that is not a Object/ObjectType but " +
126
- node_opcua_data_model_2.NodeClass[context.object.nodeClass]);
127
- return callback(null, { statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdInvalid });
128
- }
129
- if (!this._asyncExecutionFunction) {
130
- warningLog("Method " + this.nodeId.toString() + " " + this.browseName.toString() + " has not been bound");
131
- return callback(null, { statusCode: node_opcua_status_code_1.StatusCodes.BadInternalError });
132
- }
133
- if (!this.getExecutableFlag(context)) {
134
- warningLog("Method " + this.nodeId.toString() + " " + this.browseName.toString() + " is not executable");
135
- return callback(null, { statusCode: node_opcua_status_code_1.StatusCodes.BadNotExecutable });
136
- }
137
- if (context.isAccessRestricted(this)) {
138
- return callback(null, { statusCode: node_opcua_status_code_1.StatusCodes.BadSecurityModeInsufficient });
139
- }
140
- if (!context.checkPermission(this, node_opcua_types_1.PermissionType.Call)) {
141
- return callback(null, { statusCode: node_opcua_status_code_1.StatusCodes.BadUserAccessDenied });
142
- }
143
- // verify that input arguments are correct
144
- // todo :
145
- const inputArgumentDiagnosticInfos = [];
146
- context.object = object;
147
- try {
148
- this._asyncExecutionFunction.call(this, inputArguments, context, (err, callMethodResult) => {
149
- var _a;
150
- if (err) {
151
- debugLog(err.message);
152
- debugLog(err);
153
- }
154
- callMethodResult = callMethodResult || {};
155
- callMethodResult.statusCode = callMethodResult.statusCode || node_opcua_status_code_1.StatusCodes.Good;
156
- callMethodResult.outputArguments = callMethodResult.outputArguments || [];
157
- callMethodResult.inputArgumentResults =
158
- ((_a = callMethodResult.inputArgumentResults) === null || _a === void 0 ? void 0 : _a.length) === (inputArguments === null || inputArguments === void 0 ? void 0 : inputArguments.length)
159
- ? callMethodResult.inputArgumentResults
160
- : inputArguments === null || inputArguments === void 0 ? void 0 : inputArguments.map(() => node_opcua_status_code_1.StatusCodes.Good);
161
- callMethodResult.inputArgumentDiagnosticInfos =
162
- callMethodResult.inputArgumentDiagnosticInfos || inputArgumentDiagnosticInfos;
163
- // verify that output arguments are correct according to schema
164
- // Todo : ...
165
- // const outputArgsDef = this.getOutputArguments();
166
- // xx assert(outputArgsDef.length === callMethodResponse.outputArguments.length,
167
- // xx "_asyncExecutionFunction did not provide the expected number of output arguments");
168
- // to be continued ...
169
- callback(err, callMethodResult);
170
- });
171
- }
172
- catch (err) {
173
- if (err instanceof Error) {
174
- warningLog(chalk.red("ERR in method handler"), err.message);
175
- warningLog(err.stack);
176
- }
177
- const callMethodResponse = { statusCode: node_opcua_status_code_1.StatusCodes.BadInternalError };
178
- callback(err, callMethodResponse);
179
- }
180
- }
181
- clone(options, optionalFilter, extraInfo) {
182
- (0, node_opcua_assert_1.assert)(!options.componentOf || options.componentOf, "trying to create an orphan method ?");
183
- const addressSpace = this.addressSpace;
184
- options = Object.assign(Object.assign({}, options), { methodDeclarationId: this.nodeId });
185
- options.references = options.references || [];
186
- (0, namespace_impl_1._handle_hierarchy_parent)(addressSpace, options.references, options);
187
- const clonedMethod = base_node_private_1._clone.call(this, UAMethodImpl, options, optionalFilter || node_opcua_address_space_base_1.defaultCloneFilter, extraInfo || node_opcua_address_space_base_1.defaultCloneExtraInfo);
188
- clonedMethod._asyncExecutionFunction = this._asyncExecutionFunction;
189
- clonedMethod._getExecutableFlag = this._getExecutableFlag;
190
- if (options.componentOf) {
191
- const m = options.componentOf.getMethodByName(clonedMethod.browseName.name);
192
- (0, node_opcua_assert_1.assert)(m);
193
- }
194
- return clonedMethod;
195
- }
196
- _getArguments(name) {
197
- (0, node_opcua_assert_1.assert)(name === "InputArguments" || name === "OutputArguments");
198
- const argsVariable = this.getPropertyByName(name);
199
- if (!argsVariable) {
200
- return [];
201
- }
202
- (0, node_opcua_assert_1.assert)(argsVariable.nodeClass === node_opcua_data_model_2.NodeClass.Variable);
203
- const args = argsVariable.readValue().value.value;
204
- if (!args) {
205
- return [];
206
- }
207
- // a list of extension object
208
- (0, node_opcua_assert_1.assert)(Array.isArray(args));
209
- (0, node_opcua_assert_1.assert)(args.length === 0 || UAMethodImpl.checkValidArgument(args[0]));
210
- return args;
211
- }
212
- }
213
- exports.UAMethodImpl = UAMethodImpl;
214
- // tslint:disable:no-var-requires
215
- // tslint:disable:max-line-length
216
- const thenify = require("thenify");
217
- UAMethodImpl.prototype.execute = thenify.withCallback(UAMethodImpl.prototype.execute);
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UAMethodImpl = void 0;
4
+ /**
5
+ * @module node-opcua-address-space
6
+ */
7
+ const util_1 = require("util");
8
+ const chalk = require("chalk");
9
+ const node_opcua_assert_1 = require("node-opcua-assert");
10
+ const node_opcua_data_model_1 = require("node-opcua-data-model");
11
+ const node_opcua_data_model_2 = require("node-opcua-data-model");
12
+ const node_opcua_data_value_1 = require("node-opcua-data-value");
13
+ const node_opcua_debug_1 = require("node-opcua-debug");
14
+ const node_opcua_service_call_1 = require("node-opcua-service-call");
15
+ const node_opcua_status_code_1 = require("node-opcua-status-code");
16
+ const node_opcua_types_1 = require("node-opcua-types");
17
+ const node_opcua_variant_1 = require("node-opcua-variant");
18
+ const node_opcua_variant_2 = require("node-opcua-variant");
19
+ const node_opcua_address_space_base_1 = require("node-opcua-address-space-base");
20
+ const base_node_private_1 = require("./base_node_private");
21
+ const namespace_impl_1 = require("./namespace_impl");
22
+ const base_node_impl_1 = require("./base_node_impl");
23
+ const warningLog = (0, node_opcua_debug_1.make_warningLog)(__filename);
24
+ const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
25
+ const errorLog = (0, node_opcua_debug_1.make_errorLog)(__filename);
26
+ function default_check_valid_argument(arg) {
27
+ return arg instanceof node_opcua_service_call_1.Argument;
28
+ }
29
+ class UAMethodImpl extends base_node_impl_1.BaseNodeImpl {
30
+ static checkValidArgument(args) {
31
+ return default_check_valid_argument(args);
32
+ }
33
+ get typeDefinitionObj() {
34
+ return super.typeDefinitionObj;
35
+ }
36
+ get parent() {
37
+ return super.parent;
38
+ }
39
+ constructor(options) {
40
+ super(options);
41
+ this.nodeClass = node_opcua_data_model_2.NodeClass.Method;
42
+ this.value = options.value;
43
+ this.methodDeclarationId = options.methodDeclarationId;
44
+ }
45
+ /**
46
+ *
47
+ *
48
+ */
49
+ getExecutableFlag(context) {
50
+ if (!this.isBound()) {
51
+ return false;
52
+ }
53
+ if (this._getExecutableFlag) {
54
+ return this._getExecutableFlag(context);
55
+ }
56
+ return true;
57
+ }
58
+ getUserExecutableFlag(context) {
59
+ if (context && !context.checkPermission(this, node_opcua_types_1.PermissionType.Call)) {
60
+ return false;
61
+ }
62
+ if (!this.getExecutableFlag(context))
63
+ return false;
64
+ return true;
65
+ }
66
+ /**
67
+ *
68
+ * @returns true if the method is bound
69
+ */
70
+ isBound() {
71
+ return typeof this._asyncExecutionFunction === "function";
72
+ }
73
+ readAttribute(context, attributeId, indexRange, dataEncoding) {
74
+ const options = {};
75
+ switch (attributeId) {
76
+ case node_opcua_data_model_1.AttributeIds.Executable:
77
+ options.value = { dataType: node_opcua_variant_2.DataType.Boolean, value: this.getExecutableFlag(context) };
78
+ options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
79
+ break;
80
+ case node_opcua_data_model_1.AttributeIds.UserExecutable:
81
+ options.value = { dataType: node_opcua_variant_2.DataType.Boolean, value: this.getUserExecutableFlag(context) };
82
+ options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
83
+ break;
84
+ default:
85
+ return base_node_impl_1.BaseNodeImpl.prototype.readAttribute.call(this, context, attributeId, indexRange, dataEncoding);
86
+ }
87
+ return new node_opcua_data_value_1.DataValue(options);
88
+ }
89
+ getInputArguments() {
90
+ return this._getArguments("InputArguments");
91
+ }
92
+ getOutputArguments() {
93
+ return this._getArguments("OutputArguments");
94
+ }
95
+ bindMethod(async_func) {
96
+ (0, node_opcua_assert_1.assert)(typeof async_func === "function");
97
+ if (async_func.length === 2) {
98
+ async_func = (0, util_1.callbackify)(async_func);
99
+ }
100
+ (0, node_opcua_assert_1.assert)(async_func.length === 3);
101
+ this._asyncExecutionFunction = async_func;
102
+ }
103
+ execute(object, inputArguments, context, callback) {
104
+ // istanbul ignore next
105
+ if (!callback) {
106
+ throw new Error("execute need to be promisified");
107
+ }
108
+ (0, node_opcua_assert_1.assert)(inputArguments === null || Array.isArray(inputArguments));
109
+ inputArguments = inputArguments || [];
110
+ inputArguments = inputArguments.map(node_opcua_variant_1.Variant.coerce);
111
+ (0, node_opcua_assert_1.assert)(inputArguments.length === 0 || inputArguments[0] instanceof node_opcua_variant_1.Variant);
112
+ (0, node_opcua_assert_1.assert)(context !== null && typeof context === "object");
113
+ (0, node_opcua_assert_1.assert)(typeof callback === "function");
114
+ object = object || this.parent;
115
+ // istanbul ignore next
116
+ if (!object) {
117
+ errorLog("UAMethod#execute expects a valid object");
118
+ return callback(null, { statusCode: node_opcua_status_code_1.StatusCodes.BadInternalError });
119
+ }
120
+ if (object.nodeClass !== node_opcua_data_model_2.NodeClass.Object && object.nodeClass !== node_opcua_data_model_2.NodeClass.ObjectType) {
121
+ warningLog("Method " +
122
+ this.nodeId.toString() +
123
+ " " +
124
+ this.browseName.toString() +
125
+ " called for a node that is not a Object/ObjectType but " +
126
+ node_opcua_data_model_2.NodeClass[context.object.nodeClass]);
127
+ return callback(null, { statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdInvalid });
128
+ }
129
+ if (!this._asyncExecutionFunction) {
130
+ warningLog("Method " + this.nodeId.toString() + " " + this.browseName.toString() + " has not been bound");
131
+ return callback(null, { statusCode: node_opcua_status_code_1.StatusCodes.BadInternalError });
132
+ }
133
+ if (!this.getExecutableFlag(context)) {
134
+ warningLog("Method " + this.nodeId.toString() + " " + this.browseName.toString() + " is not executable");
135
+ return callback(null, { statusCode: node_opcua_status_code_1.StatusCodes.BadNotExecutable });
136
+ }
137
+ if (context.isAccessRestricted(this)) {
138
+ return callback(null, { statusCode: node_opcua_status_code_1.StatusCodes.BadSecurityModeInsufficient });
139
+ }
140
+ if (!context.checkPermission(this, node_opcua_types_1.PermissionType.Call)) {
141
+ return callback(null, { statusCode: node_opcua_status_code_1.StatusCodes.BadUserAccessDenied });
142
+ }
143
+ // verify that input arguments are correct
144
+ // todo :
145
+ const inputArgumentDiagnosticInfos = [];
146
+ context.object = object;
147
+ try {
148
+ this._asyncExecutionFunction.call(this, inputArguments, context, (err, callMethodResult) => {
149
+ var _a;
150
+ if (err) {
151
+ debugLog(err.message);
152
+ debugLog(err);
153
+ }
154
+ callMethodResult = callMethodResult || {};
155
+ callMethodResult.statusCode = callMethodResult.statusCode || node_opcua_status_code_1.StatusCodes.Good;
156
+ callMethodResult.outputArguments = callMethodResult.outputArguments || [];
157
+ callMethodResult.inputArgumentResults =
158
+ ((_a = callMethodResult.inputArgumentResults) === null || _a === void 0 ? void 0 : _a.length) === (inputArguments === null || inputArguments === void 0 ? void 0 : inputArguments.length)
159
+ ? callMethodResult.inputArgumentResults
160
+ : inputArguments === null || inputArguments === void 0 ? void 0 : inputArguments.map(() => node_opcua_status_code_1.StatusCodes.Good);
161
+ callMethodResult.inputArgumentDiagnosticInfos =
162
+ callMethodResult.inputArgumentDiagnosticInfos || inputArgumentDiagnosticInfos;
163
+ // verify that output arguments are correct according to schema
164
+ // Todo : ...
165
+ // const outputArgsDef = this.getOutputArguments();
166
+ // xx assert(outputArgsDef.length === callMethodResponse.outputArguments.length,
167
+ // xx "_asyncExecutionFunction did not provide the expected number of output arguments");
168
+ // to be continued ...
169
+ callback(err, callMethodResult);
170
+ });
171
+ }
172
+ catch (err) {
173
+ if (err instanceof Error) {
174
+ warningLog(chalk.red("ERR in method handler"), err.message);
175
+ warningLog(err.stack);
176
+ }
177
+ const callMethodResponse = { statusCode: node_opcua_status_code_1.StatusCodes.BadInternalError };
178
+ callback(err, callMethodResponse);
179
+ }
180
+ }
181
+ clone(options, optionalFilter, extraInfo) {
182
+ (0, node_opcua_assert_1.assert)(!options.componentOf || options.componentOf, "trying to create an orphan method ?");
183
+ const addressSpace = this.addressSpace;
184
+ options = Object.assign(Object.assign({}, options), { methodDeclarationId: this.nodeId });
185
+ options.references = options.references || [];
186
+ (0, namespace_impl_1._handle_hierarchy_parent)(addressSpace, options.references, options);
187
+ const clonedMethod = base_node_private_1._clone.call(this, UAMethodImpl, options, optionalFilter || node_opcua_address_space_base_1.defaultCloneFilter, extraInfo || node_opcua_address_space_base_1.defaultCloneExtraInfo);
188
+ clonedMethod._asyncExecutionFunction = this._asyncExecutionFunction;
189
+ clonedMethod._getExecutableFlag = this._getExecutableFlag;
190
+ if (options.componentOf) {
191
+ const m = options.componentOf.getMethodByName(clonedMethod.browseName.name);
192
+ (0, node_opcua_assert_1.assert)(m);
193
+ }
194
+ return clonedMethod;
195
+ }
196
+ _getArguments(name) {
197
+ (0, node_opcua_assert_1.assert)(name === "InputArguments" || name === "OutputArguments");
198
+ const argsVariable = this.getPropertyByName(name);
199
+ if (!argsVariable) {
200
+ return [];
201
+ }
202
+ (0, node_opcua_assert_1.assert)(argsVariable.nodeClass === node_opcua_data_model_2.NodeClass.Variable);
203
+ const args = argsVariable.readValue().value.value;
204
+ if (!args) {
205
+ return [];
206
+ }
207
+ // a list of extension object
208
+ (0, node_opcua_assert_1.assert)(Array.isArray(args));
209
+ (0, node_opcua_assert_1.assert)(args.length === 0 || UAMethodImpl.checkValidArgument(args[0]));
210
+ return args;
211
+ }
212
+ }
213
+ exports.UAMethodImpl = UAMethodImpl;
214
+ // tslint:disable:no-var-requires
215
+ // tslint:disable:max-line-length
216
+ const thenify = require("thenify");
217
+ UAMethodImpl.prototype.execute = thenify.withCallback(UAMethodImpl.prototype.execute);
218
218
  //# sourceMappingURL=ua_method_impl.js.map
@@ -1,35 +1,35 @@
1
- import { NodeClass, QualifiedNameLike, QualifiedNameOptions } from "node-opcua-data-model";
2
- import { AttributeIds } from "node-opcua-data-model";
3
- import { DataValue } from "node-opcua-data-value";
4
- import { NumericRange } from "node-opcua-numeric-range";
5
- import { EventTypeLike, RaiseEventData, ISessionContext, UAMethod, UAObject, UAObjectType, CloneOptions, CloneFilter, CloneExtraInfo, BaseNode, IEventData, EventNotifierFlags } from "node-opcua-address-space-base";
6
- import { BaseNodeImpl, InternalBaseNodeOptions } from "./base_node_impl";
7
- import { ConditionRefreshCache } from "./apply_condition_refresh";
8
- export declare class UAObjectImpl extends BaseNodeImpl implements UAObject {
9
- private _eventNotifier;
10
- readonly nodeClass = NodeClass.Object;
11
- get eventNotifier(): EventNotifierFlags;
12
- readonly symbolicName: string | null;
13
- get typeDefinitionObj(): UAObjectType;
14
- constructor(options: InternalBaseNodeOptions & {
15
- eventNotifier?: number;
16
- symbolicName?: string | null;
17
- });
18
- readAttribute(context: ISessionContext | null, attributeId: AttributeIds, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValue;
19
- clone(options: CloneOptions, optionalFilter?: CloneFilter, extraInfo?: CloneExtraInfo): UAObject;
20
- /**
21
- * returns true if the object has some opcua methods
22
- */
23
- get hasMethods(): boolean;
24
- getMethodByName(methodName: QualifiedNameOptions): UAMethod | null;
25
- getMethodByName(methodName: string, namespaceIndex?: number): UAMethod | null;
26
- getMethods(): UAMethod[];
27
- setEventNotifier(eventNotifierFlags: EventNotifierFlags): void;
28
- /**
29
- * Raise a transient Event
30
- */
31
- raiseEvent(eventType: EventTypeLike | BaseNode, data: RaiseEventData): void;
32
- _bubble_up_event(eventData: IEventData): void;
33
- _conditionRefresh(_cache?: ConditionRefreshCache): void;
34
- toString(): string;
35
- }
1
+ import { NodeClass, QualifiedNameLike, QualifiedNameOptions } from "node-opcua-data-model";
2
+ import { AttributeIds } from "node-opcua-data-model";
3
+ import { DataValue } from "node-opcua-data-value";
4
+ import { NumericRange } from "node-opcua-numeric-range";
5
+ import { EventTypeLike, RaiseEventData, ISessionContext, UAMethod, UAObject, UAObjectType, CloneOptions, CloneFilter, CloneExtraInfo, BaseNode, IEventData, EventNotifierFlags } from "node-opcua-address-space-base";
6
+ import { BaseNodeImpl, InternalBaseNodeOptions } from "./base_node_impl";
7
+ import { ConditionRefreshCache } from "./apply_condition_refresh";
8
+ export declare class UAObjectImpl extends BaseNodeImpl implements UAObject {
9
+ private _eventNotifier;
10
+ readonly nodeClass = NodeClass.Object;
11
+ get eventNotifier(): EventNotifierFlags;
12
+ readonly symbolicName: string | null;
13
+ get typeDefinitionObj(): UAObjectType;
14
+ constructor(options: InternalBaseNodeOptions & {
15
+ eventNotifier?: number;
16
+ symbolicName?: string | null;
17
+ });
18
+ readAttribute(context: ISessionContext | null, attributeId: AttributeIds, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValue;
19
+ clone(options: CloneOptions, optionalFilter?: CloneFilter, extraInfo?: CloneExtraInfo): UAObject;
20
+ /**
21
+ * returns true if the object has some opcua methods
22
+ */
23
+ get hasMethods(): boolean;
24
+ getMethodByName(methodName: QualifiedNameOptions): UAMethod | null;
25
+ getMethodByName(methodName: string, namespaceIndex?: number): UAMethod | null;
26
+ getMethods(): UAMethod[];
27
+ setEventNotifier(eventNotifierFlags: EventNotifierFlags): void;
28
+ /**
29
+ * Raise a transient Event
30
+ */
31
+ raiseEvent(eventType: EventTypeLike | BaseNode, data: RaiseEventData): void;
32
+ _bubble_up_event(eventData: IEventData): void;
33
+ _conditionRefresh(_cache?: ConditionRefreshCache): void;
34
+ toString(): string;
35
+ }