node-opcua-address-space 2.74.0 → 2.76.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/dist/source/address_space_ts.d.ts +118 -118
  2. package/dist/source/address_space_ts.js +17 -17
  3. package/dist/source/continuation_points/continuation_point_manager.d.ts +32 -32
  4. package/dist/source/continuation_points/continuation_point_manager.js +195 -195
  5. package/dist/source/helpers/adjust_browse_direction.d.ts +5 -5
  6. package/dist/source/helpers/adjust_browse_direction.js +11 -11
  7. package/dist/source/helpers/argument_list.d.ts +33 -33
  8. package/dist/source/helpers/argument_list.js +258 -257
  9. package/dist/source/helpers/argument_list.js.map +1 -1
  10. package/dist/source/helpers/call_helpers.d.ts +6 -6
  11. package/dist/source/helpers/call_helpers.js +70 -70
  12. package/dist/source/helpers/coerce_enum_value.d.ts +6 -6
  13. package/dist/source/helpers/coerce_enum_value.js +33 -33
  14. package/dist/source/helpers/dump_tools.d.ts +14 -14
  15. package/dist/source/helpers/dump_tools.js +78 -78
  16. package/dist/source/helpers/ensure_secure_access.d.ts +9 -9
  17. package/dist/source/helpers/ensure_secure_access.js +76 -76
  18. package/dist/source/helpers/make_optionals_map.d.ts +21 -21
  19. package/dist/source/helpers/make_optionals_map.js +29 -29
  20. package/dist/source/helpers/multiform_func.d.ts +11 -11
  21. package/dist/source/helpers/multiform_func.js +75 -73
  22. package/dist/source/helpers/multiform_func.js.map +1 -1
  23. package/dist/source/helpers/resolve_opaque_on_address_space.d.ts +3 -3
  24. package/dist/source/helpers/resolve_opaque_on_address_space.js +36 -36
  25. package/dist/source/index.d.ts +56 -58
  26. package/dist/source/index.js +83 -87
  27. package/dist/source/index.js.map +1 -1
  28. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +19 -19
  29. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +2 -2
  30. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.d.ts +193 -199
  31. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.js +2 -9
  32. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.js.map +1 -1
  33. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.d.ts +12 -14
  34. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.js +2 -2
  35. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.d.ts +10 -6
  36. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.js +2 -2
  37. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +7 -7
  38. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js +2 -2
  39. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts +7 -7
  40. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.js +2 -2
  41. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +4 -0
  42. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js +3 -0
  43. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js.map +1 -0
  44. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +4 -4
  45. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js +2 -2
  46. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +9 -9
  47. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js +2 -2
  48. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +4 -0
  49. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js +3 -0
  50. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js.map +1 -0
  51. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +4 -0
  52. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js +3 -0
  53. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js.map +1 -0
  54. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +20 -5
  55. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js +2 -2
  56. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +23 -23
  57. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js +2 -2
  58. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +32 -32
  59. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js +2 -2
  60. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +19 -15
  61. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js +2 -2
  62. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +42 -42
  63. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.js +2 -2
  64. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +7 -7
  65. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js +25 -25
  66. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +5 -5
  67. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js +2 -2
  68. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +20 -20
  69. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js +2 -2
  70. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +26 -26
  71. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js +2 -2
  72. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +8 -10
  73. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js +2 -2
  74. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +10 -10
  75. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js +2 -2
  76. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +21 -21
  77. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js +2 -2
  78. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +24 -24
  79. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js +2 -2
  80. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +12 -12
  81. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js +2 -2
  82. package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +8 -8
  83. package/dist/source/interfaces/data_access/ua_y_array_item_ex.js +2 -2
  84. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -12
  85. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +2 -2
  86. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -49
  87. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js +2 -2
  88. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -11
  89. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js +2 -2
  90. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +30 -30
  91. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.js +2 -2
  92. package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +222 -222
  93. package/dist/source/interfaces/state_machine/ua_state_machine_type.js +2 -2
  94. package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +6 -6
  95. package/dist/source/interfaces/state_machine/ua_transition_ex.js +2 -2
  96. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +8 -8
  97. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +2 -2
  98. package/dist/source/loader/decode_xml_extension_object.d.ts +6 -6
  99. package/dist/source/loader/decode_xml_extension_object.js +71 -71
  100. package/dist/source/loader/ensure_datatype_extracted.d.ts +5 -5
  101. package/dist/source/loader/ensure_datatype_extracted.js +45 -45
  102. package/dist/source/loader/generateAddressSpaceRaw.d.ts +10 -10
  103. package/dist/source/loader/generateAddressSpaceRaw.js +45 -45
  104. package/dist/source/loader/load_nodeset2.d.ts +16 -16
  105. package/dist/source/loader/load_nodeset2.js +1461 -1461
  106. package/dist/source/loader/make_semver_compatible.d.ts +6 -6
  107. package/dist/source/loader/make_semver_compatible.js +25 -25
  108. package/dist/source/loader/make_xml_extension_object_parser.d.ts +28 -28
  109. package/dist/source/loader/make_xml_extension_object_parser.js +325 -325
  110. package/dist/source/loader/namespace_post_step.d.ts +10 -6
  111. package/dist/source/loader/namespace_post_step.js +61 -47
  112. package/dist/source/loader/namespace_post_step.js.map +1 -1
  113. package/dist/source/loader/register_node_promoter.d.ts +2 -3
  114. package/dist/source/loader/register_node_promoter.js +9 -9
  115. package/dist/source/loader/register_node_promoter.js.map +1 -1
  116. package/dist/source/namespace.d.ts +6 -6
  117. package/dist/source/namespace.js +2 -2
  118. package/dist/source/namespace_alarm_and_condition.d.ts +32 -24
  119. package/dist/source/namespace_alarm_and_condition.js +2 -2
  120. package/dist/source/namespace_data_access.d.ts +42 -42
  121. package/dist/source/namespace_data_access.js +2 -2
  122. package/dist/source/namespace_machine_state.d.ts +7 -7
  123. package/dist/source/namespace_machine_state.js +2 -2
  124. package/dist/source/pseudo_session.d.ts +55 -55
  125. package/dist/source/pseudo_session.js +203 -203
  126. package/dist/source/session_context.d.ts +111 -111
  127. package/dist/source/session_context.js +265 -265
  128. package/dist/source/set_namespace_meta_data.d.ts +2 -2
  129. package/dist/source/set_namespace_meta_data.js +59 -59
  130. package/dist/source/ua_root_folder.d.ts +9 -9
  131. package/dist/source/ua_root_folder.js +2 -2
  132. package/dist/source/ua_two_state_variable_ex.d.ts +23 -23
  133. package/dist/source/ua_two_state_variable_ex.js +2 -2
  134. package/dist/source/xml_writer.d.ts +9 -9
  135. package/dist/source/xml_writer.js +2 -2
  136. package/dist/src/address_space.d.ts +392 -392
  137. package/dist/src/address_space.js +1392 -1387
  138. package/dist/src/address_space.js.map +1 -1
  139. package/dist/src/address_space_change_event_tools.d.ts +6 -6
  140. package/dist/src/address_space_change_event_tools.js +149 -149
  141. package/dist/src/address_space_private.d.ts +43 -43
  142. package/dist/src/address_space_private.js +2 -2
  143. package/dist/src/alarms_and_conditions/condition.d.ts +5 -5
  144. package/dist/src/alarms_and_conditions/condition.js +78 -78
  145. package/dist/src/alarms_and_conditions/condition_info_impl.d.ts +26 -26
  146. package/dist/src/alarms_and_conditions/condition_info_impl.js +54 -54
  147. package/dist/src/alarms_and_conditions/condition_snapshot_impl.d.ts +222 -231
  148. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js +657 -666
  149. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js.map +1 -1
  150. package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +9 -8
  151. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +61 -46
  152. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js.map +1 -1
  153. package/dist/src/alarms_and_conditions/index.d.ts +16 -18
  154. package/dist/src/alarms_and_conditions/index.js +32 -34
  155. package/dist/src/alarms_and_conditions/index.js.map +1 -1
  156. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +44 -44
  157. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -244
  158. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +93 -93
  159. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +419 -416
  160. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js.map +1 -1
  161. package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +26 -26
  162. package/dist/src/alarms_and_conditions/ua_base_event_impl.js +38 -38
  163. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +44 -36
  164. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +183 -118
  165. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js.map +1 -1
  166. package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +153 -153
  167. package/dist/src/alarms_and_conditions/ua_condition_impl.js +1028 -1024
  168. package/dist/src/alarms_and_conditions/ua_condition_impl.js.map +1 -1
  169. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +14 -14
  170. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +34 -34
  171. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +24 -26
  172. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +56 -56
  173. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js.map +1 -1
  174. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +11 -11
  175. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +11 -11
  176. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +23 -23
  177. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +86 -86
  178. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js.map +1 -1
  179. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +11 -11
  180. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +7 -7
  181. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +79 -79
  182. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +250 -250
  183. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js.map +1 -1
  184. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +24 -24
  185. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +50 -50
  186. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js.map +1 -1
  187. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +19 -19
  188. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +162 -162
  189. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js.map +1 -1
  190. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +46 -46
  191. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +166 -161
  192. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js.map +1 -1
  193. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +18 -18
  194. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +17 -17
  195. package/dist/src/apply_condition_refresh.d.ts +6 -6
  196. package/dist/src/apply_condition_refresh.js +27 -27
  197. package/dist/src/base_node_impl.d.ts +281 -281
  198. package/dist/src/base_node_impl.js +1395 -1395
  199. package/dist/src/base_node_private.d.ts +61 -61
  200. package/dist/src/base_node_private.js +705 -705
  201. package/dist/src/data_access/add_dataItem_stuff.d.ts +11 -11
  202. package/dist/src/data_access/add_dataItem_stuff.js +61 -61
  203. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.d.ts +1 -1
  204. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js +34 -34
  205. package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +32 -32
  206. package/dist/src/data_access/ua_multistate_discrete_impl.js +130 -130
  207. package/dist/src/data_access/ua_multistate_value_discrete_impl.d.ts +51 -51
  208. package/dist/src/data_access/ua_multistate_value_discrete_impl.js +249 -249
  209. package/dist/src/data_access/ua_two_state_discrete_impl.d.ts +25 -25
  210. package/dist/src/data_access/ua_two_state_discrete_impl.js +153 -153
  211. package/dist/src/event_data.d.ts +34 -29
  212. package/dist/src/event_data.js +64 -95
  213. package/dist/src/event_data.js.map +1 -1
  214. package/dist/src/extension_object_array_node.d.ts +61 -61
  215. package/dist/src/extension_object_array_node.js +276 -276
  216. package/dist/src/historical_access/address_space_historical_data_node.d.ts +26 -26
  217. package/dist/src/historical_access/address_space_historical_data_node.js +630 -630
  218. package/dist/src/index_current.d.ts +43 -44
  219. package/dist/src/index_current.js +74 -75
  220. package/dist/src/index_current.js.map +1 -1
  221. package/dist/src/namespace_impl.d.ts +461 -458
  222. package/dist/src/namespace_impl.js +1732 -1732
  223. package/dist/src/namespace_impl.js.map +1 -1
  224. package/dist/src/namespace_private.d.ts +21 -21
  225. package/dist/src/namespace_private.js +32 -32
  226. package/dist/src/nodeid_manager.d.ts +36 -36
  227. package/dist/src/nodeid_manager.js +197 -197
  228. package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +2 -2
  229. package/dist/src/nodeset_tools/adjust_namespace_array.js +13 -13
  230. package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +2 -2
  231. package/dist/src/nodeset_tools/construct_namespace_dependency.js +83 -83
  232. package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +2 -2
  233. package/dist/src/nodeset_tools/nodeset_to_xml.js +1155 -1155
  234. package/dist/src/nodeset_tools/typedictionary_to_xml.d.ts +2 -2
  235. package/dist/src/nodeset_tools/typedictionary_to_xml.js +154 -154
  236. package/dist/src/reference_impl.d.ts +43 -43
  237. package/dist/src/reference_impl.js +139 -139
  238. package/dist/src/role_permissions.d.ts +2 -2
  239. package/dist/src/role_permissions.js +10 -10
  240. package/dist/src/state_machine/finite_state_machine.d.ts +67 -67
  241. package/dist/src/state_machine/finite_state_machine.js +353 -353
  242. package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +38 -38
  243. package/dist/src/state_machine/ua_shelving_state_machine_ex.js +250 -250
  244. package/dist/src/state_machine/ua_two_state_variable.d.ts +61 -61
  245. package/dist/src/state_machine/ua_two_state_variable.js +331 -331
  246. package/dist/src/state_machine/ua_two_state_variable.js.map +1 -1
  247. package/dist/src/tool_isSupertypeOf.d.ts +17 -17
  248. package/dist/src/tool_isSupertypeOf.js +108 -108
  249. package/dist/src/ua_condition_type.d.ts +8 -8
  250. package/dist/src/ua_condition_type.js +2 -2
  251. package/dist/src/ua_data_type_impl.d.ts +93 -93
  252. package/dist/src/ua_data_type_impl.js +371 -371
  253. package/dist/src/ua_method_impl.d.ts +41 -41
  254. package/dist/src/ua_method_impl.js +208 -208
  255. package/dist/src/ua_object_impl.d.ts +35 -35
  256. package/dist/src/ua_object_impl.js +161 -162
  257. package/dist/src/ua_object_impl.js.map +1 -1
  258. package/dist/src/ua_object_type_impl.d.ts +48 -48
  259. package/dist/src/ua_object_type_impl.js +124 -124
  260. package/dist/src/ua_reference_type_impl.d.ts +43 -43
  261. package/dist/src/ua_reference_type_impl.js +139 -139
  262. package/dist/src/ua_variable_impl.d.ts +351 -351
  263. package/dist/src/ua_variable_impl.js +1604 -1604
  264. package/dist/src/ua_variable_impl_ext_obj.d.ts +17 -17
  265. package/dist/src/ua_variable_impl_ext_obj.js +437 -437
  266. package/dist/src/ua_variable_type_impl.d.ts +62 -62
  267. package/dist/src/ua_variable_type_impl.js +570 -570
  268. package/dist/src/ua_view_impl.d.ts +19 -19
  269. package/dist/src/ua_view_impl.js +43 -43
  270. package/distHelpers/add_event_generator_object.d.ts +3 -3
  271. package/distHelpers/add_event_generator_object.js +64 -65
  272. package/distHelpers/add_event_generator_object.js.map +1 -1
  273. package/distHelpers/alarms_and_conditions_demo.d.ts +9 -9
  274. package/distHelpers/alarms_and_conditions_demo.js +115 -114
  275. package/distHelpers/alarms_and_conditions_demo.js.map +1 -1
  276. package/distHelpers/assertHasMatchingReference.d.ts +19 -19
  277. package/distHelpers/assertHasMatchingReference.js +40 -40
  278. package/distHelpers/boiler_system.d.ts +113 -113
  279. package/distHelpers/boiler_system.js +395 -395
  280. package/distHelpers/create_minimalist_address_space_nodeset.d.ts +5 -5
  281. package/distHelpers/create_minimalist_address_space_nodeset.js +171 -171
  282. package/distHelpers/date_utils.d.ts +3 -3
  283. package/distHelpers/date_utils.js +9 -9
  284. package/distHelpers/dump_statemachine.js +127 -127
  285. package/distHelpers/get_address_space_fixture.d.ts +1 -1
  286. package/distHelpers/get_address_space_fixture.js +30 -30
  287. package/distHelpers/get_mini_address_space.d.ts +7 -7
  288. package/distHelpers/get_mini_address_space.js +36 -36
  289. package/distHelpers/index.d.ts +12 -12
  290. package/distHelpers/index.js +28 -28
  291. package/distHelpers/mock_session.d.ts +14 -14
  292. package/distHelpers/mock_session.js +25 -25
  293. package/distNodeJS/generate_address_space.d.ts +4 -4
  294. package/distNodeJS/generate_address_space.js +41 -41
  295. package/distNodeJS/index.d.ts +1 -1
  296. package/distNodeJS/index.js +17 -17
  297. package/generate.js +1 -1
  298. package/package.json +36 -37
  299. package/source/helpers/argument_list.ts +2 -0
  300. package/source/helpers/multiform_func.ts +5 -3
  301. package/source/index.ts +0 -2
  302. package/source/interfaces/alarms_and_conditions/condition_snapshot.ts +12 -30
  303. package/source/interfaces/alarms_and_conditions/deviation_stuff.ts +8 -6
  304. package/source/interfaces/alarms_and_conditions/install_setpoint_options.ts +9 -0
  305. package/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.ts +4 -0
  306. package/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.ts +2 -2
  307. package/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.ts +4 -0
  308. package/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.ts +4 -0
  309. package/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.ts +16 -1
  310. package/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.ts +5 -0
  311. package/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.ts +1 -0
  312. package/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.ts +1 -2
  313. package/source/loader/namespace_post_step.ts +26 -3
  314. package/source/loader/register_node_promoter.ts +5 -4
  315. package/source/namespace_alarm_and_condition.ts +48 -23
  316. package/src/address_space.ts +22 -16
  317. package/src/alarms_and_conditions/condition.ts +1 -1
  318. package/src/alarms_and_conditions/condition_snapshot_impl.ts +95 -102
  319. package/src/alarms_and_conditions/deviation_alarm_helper.ts +33 -18
  320. package/src/alarms_and_conditions/index.ts +0 -2
  321. package/src/alarms_and_conditions/ua_alarm_condition_impl.ts +4 -1
  322. package/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.ts +106 -49
  323. package/src/alarms_and_conditions/ua_condition_impl.ts +9 -6
  324. package/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.ts +5 -6
  325. package/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.ts +1 -1
  326. package/src/alarms_and_conditions/ua_limit_alarm_impl.ts +6 -8
  327. package/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.ts +5 -3
  328. package/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.ts +3 -3
  329. package/src/alarms_and_conditions/ua_off_normal_alarm_impl.ts +30 -26
  330. package/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.ts +1 -1
  331. package/src/event_data.ts +47 -77
  332. package/src/index_current.ts +0 -1
  333. package/src/namespace_impl.ts +47 -26
  334. package/src/state_machine/ua_two_state_variable.ts +2 -3
  335. package/src/ua_object_impl.ts +1 -2
  336. package/test_helpers/add_event_generator_object.ts +0 -1
  337. package/test_helpers/alarms_and_conditions_demo.ts +4 -1
  338. package/dist/source/helpers/check_event_clause.d.ts +0 -17
  339. package/dist/source/helpers/check_event_clause.js +0 -53
  340. package/dist/source/helpers/check_event_clause.js.map +0 -1
  341. package/dist/src/alarms_and_conditions/check_where_clause.d.ts +0 -4
  342. package/dist/src/alarms_and_conditions/check_where_clause.js +0 -110
  343. package/dist/src/alarms_and_conditions/check_where_clause.js.map +0 -1
  344. package/dist/src/alarms_and_conditions/condition_info.d.ts +0 -27
  345. package/dist/src/alarms_and_conditions/condition_info.js +0 -55
  346. package/dist/src/alarms_and_conditions/condition_info.js.map +0 -1
  347. package/dist/src/alarms_and_conditions/condition_snapshot.d.ts +0 -233
  348. package/dist/src/alarms_and_conditions/condition_snapshot.js +0 -667
  349. package/dist/src/alarms_and_conditions/condition_snapshot.js.map +0 -1
  350. package/dist/src/alarms_and_conditions/extract_event_fields.d.ts +0 -10
  351. package/dist/src/alarms_and_conditions/extract_event_fields.js +0 -90
  352. package/dist/src/alarms_and_conditions/extract_event_fields.js.map +0 -1
  353. package/dist/src/data_access/ua_multistate_value_discrete.d.ts +0 -51
  354. package/dist/src/data_access/ua_multistate_value_discrete.js +0 -250
  355. package/dist/src/data_access/ua_multistate_value_discrete.js.map +0 -1
  356. package/dist/src/data_access/ua_two_state_discrete.d.ts +0 -25
  357. package/dist/src/data_access/ua_two_state_discrete.js +0 -154
  358. package/dist/src/data_access/ua_two_state_discrete.js.map +0 -1
  359. package/source/helpers/check_event_clause.ts +0 -55
  360. package/src/alarms_and_conditions/check_where_clause.ts +0 -147
  361. package/src/alarms_and_conditions/extract_event_fields.ts +0 -103
@@ -1,277 +1,277 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.removeElement = exports.addElement = exports.bindExtObjArrayNode = exports.createExtObjArrayNode = void 0;
4
- /**
5
- * @module node-opcua-address-space.Private
6
- */
7
- const node_opcua_assert_1 = require("node-opcua-assert");
8
- const node_opcua_data_model_1 = require("node-opcua-data-model");
9
- const node_opcua_debug_1 = require("node-opcua-debug");
10
- const node_opcua_variant_1 = require("node-opcua-variant");
11
- const node_opcua_variant_2 = require("node-opcua-variant");
12
- const node_opcua_variant_3 = require("node-opcua-variant");
13
- const ua_variable_impl_1 = require("./ua_variable_impl");
14
- const doDebug = (0, node_opcua_debug_1.checkDebugFlag)(__filename);
15
- const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
16
- const errorLog = (0, node_opcua_debug_1.make_errorLog)(__filename);
17
- /*
18
- * define a complex Variable containing a array of extension objects
19
- * each element of the array is also accessible as a component variable.
20
- *
21
- */
22
- function getExtObjArrayNodeValue() {
23
- return new node_opcua_variant_1.Variant({
24
- arrayType: node_opcua_variant_3.VariantArrayType.Array,
25
- dataType: node_opcua_variant_2.DataType.ExtensionObject,
26
- value: this.$$extensionObjectArray
27
- });
28
- }
29
- function removeElementByIndex(uaArrayVariableNode, elementIndex) {
30
- const _array = uaArrayVariableNode.$$extensionObjectArray;
31
- (0, node_opcua_assert_1.assert)(typeof elementIndex === "number");
32
- const addressSpace = uaArrayVariableNode.addressSpace;
33
- const extObj = _array[elementIndex];
34
- const browseName = uaArrayVariableNode.$$getElementBrowseName(extObj);
35
- // remove element from global array (inefficient)
36
- uaArrayVariableNode.$$extensionObjectArray.splice(elementIndex, 1);
37
- // remove matching component
38
- const node = uaArrayVariableNode.getComponentByName(browseName);
39
- if (!node) {
40
- throw new Error(" cannot find component ");
41
- }
42
- const hasComponent = uaArrayVariableNode.addressSpace.findReferenceType("HasComponent");
43
- // remove the hasComponent reference toward node
44
- uaArrayVariableNode.removeReference({
45
- isForward: true,
46
- nodeId: node.nodeId,
47
- referenceType: hasComponent.nodeId
48
- });
49
- // now check if node has still some parent
50
- const parents = node.findReferencesEx("HasChild", node_opcua_data_model_1.BrowseDirection.Inverse);
51
- if (parents.length === 0) {
52
- addressSpace.deleteNode(node.nodeId);
53
- }
54
- }
55
- /**
56
- *
57
- * create a node Variable that contains a array of ExtensionObject of a given type
58
- * @method createExtObjArrayNode
59
- * @param parentFolder
60
- * @param options
61
- * @param options.browseName
62
- * @param options.complexVariableType
63
- * @param options.variableType the type of Extension objects stored in the array.
64
- * @param options.indexPropertyName
65
- * @return {Object|UAVariable}
66
- */
67
- function createExtObjArrayNode(parentFolder, options) {
68
- (0, node_opcua_assert_1.assert)(typeof options.variableType === "string");
69
- (0, node_opcua_assert_1.assert)(typeof options.indexPropertyName === "string");
70
- const addressSpace = parentFolder.addressSpace;
71
- const namespace = parentFolder.namespace;
72
- const complexVariableType = addressSpace.findVariableType(options.complexVariableType);
73
- // istanbul ignore next
74
- if (!complexVariableType) {
75
- throw new Error("cannot find complex variable type");
76
- }
77
- (0, node_opcua_assert_1.assert)(!complexVariableType.nodeId.isEmpty());
78
- const variableType = addressSpace.findVariableType(options.variableType);
79
- if (!variableType) {
80
- throw new Error("cannot find variable Type");
81
- }
82
- (0, node_opcua_assert_1.assert)(!variableType.nodeId.isEmpty());
83
- const structure = addressSpace.findDataType("Structure");
84
- (0, node_opcua_assert_1.assert)(structure, "Structure Type not found: please check your nodeset file");
85
- const dataType = addressSpace.findDataType(variableType.dataType);
86
- // istanbul ignore next
87
- if (!dataType) {
88
- errorLog(variableType.toString());
89
- throw new Error("cannot find Data Type");
90
- }
91
- (0, node_opcua_assert_1.assert)(dataType.isSupertypeOf(structure), "expecting a structure (= ExtensionObject) here ");
92
- const inner_options = {
93
- componentOf: parentFolder,
94
- browseName: options.browseName,
95
- dataType: dataType.nodeId,
96
- typeDefinition: complexVariableType.nodeId,
97
- value: { dataType: node_opcua_variant_2.DataType.ExtensionObject, value: [], arrayType: node_opcua_variant_3.VariantArrayType.Array },
98
- valueRank: 1
99
- };
100
- const uaArrayVariableNode = namespace.addVariable(inner_options);
101
- bindExtObjArrayNode(uaArrayVariableNode, options.variableType, options.indexPropertyName);
102
- return uaArrayVariableNode;
103
- }
104
- exports.createExtObjArrayNode = createExtObjArrayNode;
105
- function _getElementBrowseName(extObj) {
106
- const indexPropertyName1 = this.$$indexPropertyName;
107
- if (!Object.prototype.hasOwnProperty.call(extObj, indexPropertyName1)) {
108
- console.log(" extension object do not have ", indexPropertyName1, extObj);
109
- }
110
- // assert(extObj.constructor === addressSpace.constructExtensionObject(dataType));
111
- (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(extObj, indexPropertyName1));
112
- const browseName = extObj[indexPropertyName1].toString();
113
- return browseName;
114
- }
115
- ;
116
- /**
117
- * @method bindExtObjArrayNode
118
- * @param uaArrayVariableNode
119
- * @param variableTypeNodeId
120
- * @param indexPropertyName
121
- * @return
122
- */
123
- function bindExtObjArrayNode(uaArrayVariableNode, variableTypeNodeId, indexPropertyName) {
124
- (0, node_opcua_assert_1.assert)(uaArrayVariableNode.valueRank === 1, "expecting a one dimension array");
125
- const addressSpace = uaArrayVariableNode.addressSpace;
126
- const variableType = addressSpace.findVariableType(variableTypeNodeId);
127
- // istanbul ignore next
128
- if (!variableType || variableType.nodeId.isEmpty()) {
129
- throw new Error("Cannot find VariableType " + variableTypeNodeId.toString());
130
- }
131
- const structure = addressSpace.findDataType("Structure");
132
- // istanbul ignore next
133
- if (!structure) {
134
- throw new Error("Structure Type not found: please check your nodeset file");
135
- }
136
- let dataType = addressSpace.findDataType(variableType.dataType);
137
- // istanbul ignore next
138
- if (!dataType) {
139
- throw new Error("Cannot find DataType " + variableType.dataType.toString());
140
- }
141
- (0, node_opcua_assert_1.assert)(dataType.isSupertypeOf(structure), "expecting a structure (= ExtensionObject) here ");
142
- (0, node_opcua_assert_1.assert)(!uaArrayVariableNode.$$variableType, "uaArrayVariableNode has already been bound !");
143
- uaArrayVariableNode.$$variableType = variableType;
144
- // verify that an object with same doesn't already exist
145
- dataType = addressSpace.findDataType(variableType.dataType);
146
- (0, node_opcua_assert_1.assert)(dataType.isSupertypeOf(structure), "expecting a structure (= ExtensionObject) here ");
147
- uaArrayVariableNode.$$dataType = dataType;
148
- uaArrayVariableNode.$$extensionObjectArray = [];
149
- uaArrayVariableNode.$$indexPropertyName = indexPropertyName;
150
- uaArrayVariableNode.$$getElementBrowseName = _getElementBrowseName;
151
- const bindOptions = {
152
- get: getExtObjArrayNodeValue,
153
- set: undefined // readonly
154
- };
155
- // bind the readonly
156
- uaArrayVariableNode.bindVariable(bindOptions, true);
157
- return uaArrayVariableNode;
158
- }
159
- exports.bindExtObjArrayNode = bindExtObjArrayNode;
160
- /**
161
- * @method addElement
162
- * add a new element in a ExtensionObject Array variable
163
- * @param options {Object} data used to construct the underlying ExtensionObject
164
- * @param uaArrayVariableNode {UAVariable}
165
- * @return {UAVariable}
166
- *
167
- * @method addElement
168
- * add a new element in a ExtensionObject Array variable
169
- * @param nodeVariable a variable already exposing an extension objects
170
- * @param uaArrayVariableNode {UAVariable}
171
- * @return {UAVariable}
172
- *
173
- * @method addElement
174
- * add a new element in a ExtensionObject Array variable
175
- * @param constructor constructor of the extension object to create
176
- * @param uaArrayVariableNode {UAVariable}
177
- * @return {UAVariable}
178
- */
179
- function addElement(options /* ExtensionObjectConstructor | ExtensionObject | UAVariable*/, uaArrayVariableNode) {
180
- (0, node_opcua_assert_1.assert)(uaArrayVariableNode, " must provide an UAVariable containing the array");
181
- // verify that arr has been created correctly
182
- (0, node_opcua_assert_1.assert)(!!uaArrayVariableNode.$$variableType && !!uaArrayVariableNode.$$dataType, "did you create the array Node with createExtObjArrayNode ?");
183
- (0, node_opcua_assert_1.assert)(uaArrayVariableNode.$$dataType.nodeClass === node_opcua_data_model_1.NodeClass.DataType);
184
- const addressSpace = uaArrayVariableNode.addressSpace;
185
- const Constructor = addressSpace.getExtensionObjectConstructor(uaArrayVariableNode.$$dataType);
186
- (0, node_opcua_assert_1.assert)(Constructor instanceof Function);
187
- let extensionObject;
188
- let elVar = null;
189
- let browseName;
190
- if (options instanceof ua_variable_impl_1.UAVariableImpl) {
191
- elVar = options;
192
- extensionObject = elVar.$extensionObject; // get shared extension object
193
- (0, node_opcua_assert_1.assert)(extensionObject instanceof Constructor, "the provided variable must expose a Extension Object of the expected type ");
194
- // add a reference
195
- uaArrayVariableNode.addReference({
196
- isForward: true,
197
- nodeId: elVar.nodeId,
198
- referenceType: "HasComponent"
199
- });
200
- // xx elVar.bindExtensionObject();
201
- }
202
- else {
203
- if (options instanceof Constructor) {
204
- // extension object has already been created
205
- extensionObject = options;
206
- }
207
- else {
208
- extensionObject = addressSpace.constructExtensionObject(uaArrayVariableNode.$$dataType, options);
209
- }
210
- browseName = uaArrayVariableNode.$$getElementBrowseName(extensionObject);
211
- elVar = uaArrayVariableNode.$$variableType.instantiate({
212
- browseName,
213
- componentOf: uaArrayVariableNode.nodeId,
214
- value: { dataType: node_opcua_variant_2.DataType.ExtensionObject, value: extensionObject }
215
- });
216
- elVar.bindExtensionObject(extensionObject, { force: true });
217
- elVar.$extensionObject = extensionObject;
218
- }
219
- // also add the value inside
220
- uaArrayVariableNode.$$extensionObjectArray.push(elVar.$extensionObject);
221
- return elVar;
222
- }
223
- exports.addElement = addElement;
224
- /**
225
- *
226
- * @method removeElement
227
- * @param uaArrayVariableNode {UAVariable}
228
- * @param element {number} index of element to remove in array
229
- *
230
- *
231
- * @method removeElement
232
- * @param uaArrayVariableNode {UAVariable}
233
- * @param element {UAVariable} node of element to remove in array
234
- *
235
- * @method removeElement
236
- * @param uaArrayVariableNode {UAVariable}
237
- * @param element {ExtensionObject} extension object of the node of element to remove in array
238
- *
239
- */
240
- function removeElement(uaArrayVariableNode, element /* number | UAVariable | (a any) => boolean | ExtensionObject */) {
241
- (0, node_opcua_assert_1.assert)(element, "removeElement: element must exist");
242
- const _array = uaArrayVariableNode.$$extensionObjectArray;
243
- // istanbul ignore next
244
- if (_array.length === 0) {
245
- throw new Error(" cannot remove an element from an empty array ");
246
- }
247
- let elementIndex = -1;
248
- if (typeof element === "number") {
249
- // find element by index
250
- elementIndex = element;
251
- (0, node_opcua_assert_1.assert)(elementIndex >= 0 && elementIndex < _array.length);
252
- }
253
- else if (element && element.nodeClass) {
254
- // find element by name
255
- const browseNameToFind = element.browseName.name.toString();
256
- elementIndex = _array.findIndex((obj, i) => {
257
- const browseName = uaArrayVariableNode.$$getElementBrowseName(obj).toString();
258
- return browseName === browseNameToFind;
259
- });
260
- }
261
- else if (typeof element === "function") {
262
- // find element by functor
263
- elementIndex = _array.findIndex(element);
264
- }
265
- else {
266
- // find element by inner extension object
267
- (0, node_opcua_assert_1.assert)(_array[0].constructor.name === element.constructor.name, "element must match");
268
- elementIndex = _array.findIndex((x) => x === element);
269
- }
270
- // istanbul ignore next
271
- if (elementIndex < 0) {
272
- throw new Error("removeElement: cannot find element matching " + element.toString());
273
- }
274
- return removeElementByIndex(uaArrayVariableNode, elementIndex);
275
- }
276
- exports.removeElement = removeElement;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.removeElement = exports.addElement = exports.bindExtObjArrayNode = exports.createExtObjArrayNode = void 0;
4
+ /**
5
+ * @module node-opcua-address-space.Private
6
+ */
7
+ const node_opcua_assert_1 = require("node-opcua-assert");
8
+ const node_opcua_data_model_1 = require("node-opcua-data-model");
9
+ const node_opcua_debug_1 = require("node-opcua-debug");
10
+ const node_opcua_variant_1 = require("node-opcua-variant");
11
+ const node_opcua_variant_2 = require("node-opcua-variant");
12
+ const node_opcua_variant_3 = require("node-opcua-variant");
13
+ const ua_variable_impl_1 = require("./ua_variable_impl");
14
+ const doDebug = (0, node_opcua_debug_1.checkDebugFlag)(__filename);
15
+ const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
16
+ const errorLog = (0, node_opcua_debug_1.make_errorLog)(__filename);
17
+ /*
18
+ * define a complex Variable containing a array of extension objects
19
+ * each element of the array is also accessible as a component variable.
20
+ *
21
+ */
22
+ function getExtObjArrayNodeValue() {
23
+ return new node_opcua_variant_1.Variant({
24
+ arrayType: node_opcua_variant_3.VariantArrayType.Array,
25
+ dataType: node_opcua_variant_2.DataType.ExtensionObject,
26
+ value: this.$$extensionObjectArray
27
+ });
28
+ }
29
+ function removeElementByIndex(uaArrayVariableNode, elementIndex) {
30
+ const _array = uaArrayVariableNode.$$extensionObjectArray;
31
+ (0, node_opcua_assert_1.assert)(typeof elementIndex === "number");
32
+ const addressSpace = uaArrayVariableNode.addressSpace;
33
+ const extObj = _array[elementIndex];
34
+ const browseName = uaArrayVariableNode.$$getElementBrowseName(extObj);
35
+ // remove element from global array (inefficient)
36
+ uaArrayVariableNode.$$extensionObjectArray.splice(elementIndex, 1);
37
+ // remove matching component
38
+ const node = uaArrayVariableNode.getComponentByName(browseName);
39
+ if (!node) {
40
+ throw new Error(" cannot find component ");
41
+ }
42
+ const hasComponent = uaArrayVariableNode.addressSpace.findReferenceType("HasComponent");
43
+ // remove the hasComponent reference toward node
44
+ uaArrayVariableNode.removeReference({
45
+ isForward: true,
46
+ nodeId: node.nodeId,
47
+ referenceType: hasComponent.nodeId
48
+ });
49
+ // now check if node has still some parent
50
+ const parents = node.findReferencesEx("HasChild", node_opcua_data_model_1.BrowseDirection.Inverse);
51
+ if (parents.length === 0) {
52
+ addressSpace.deleteNode(node.nodeId);
53
+ }
54
+ }
55
+ /**
56
+ *
57
+ * create a node Variable that contains a array of ExtensionObject of a given type
58
+ * @method createExtObjArrayNode
59
+ * @param parentFolder
60
+ * @param options
61
+ * @param options.browseName
62
+ * @param options.complexVariableType
63
+ * @param options.variableType the type of Extension objects stored in the array.
64
+ * @param options.indexPropertyName
65
+ * @return {Object|UAVariable}
66
+ */
67
+ function createExtObjArrayNode(parentFolder, options) {
68
+ (0, node_opcua_assert_1.assert)(typeof options.variableType === "string");
69
+ (0, node_opcua_assert_1.assert)(typeof options.indexPropertyName === "string");
70
+ const addressSpace = parentFolder.addressSpace;
71
+ const namespace = parentFolder.namespace;
72
+ const complexVariableType = addressSpace.findVariableType(options.complexVariableType);
73
+ // istanbul ignore next
74
+ if (!complexVariableType) {
75
+ throw new Error("cannot find complex variable type");
76
+ }
77
+ (0, node_opcua_assert_1.assert)(!complexVariableType.nodeId.isEmpty());
78
+ const variableType = addressSpace.findVariableType(options.variableType);
79
+ if (!variableType) {
80
+ throw new Error("cannot find variable Type");
81
+ }
82
+ (0, node_opcua_assert_1.assert)(!variableType.nodeId.isEmpty());
83
+ const structure = addressSpace.findDataType("Structure");
84
+ (0, node_opcua_assert_1.assert)(structure, "Structure Type not found: please check your nodeset file");
85
+ const dataType = addressSpace.findDataType(variableType.dataType);
86
+ // istanbul ignore next
87
+ if (!dataType) {
88
+ errorLog(variableType.toString());
89
+ throw new Error("cannot find Data Type");
90
+ }
91
+ (0, node_opcua_assert_1.assert)(dataType.isSupertypeOf(structure), "expecting a structure (= ExtensionObject) here ");
92
+ const inner_options = {
93
+ componentOf: parentFolder,
94
+ browseName: options.browseName,
95
+ dataType: dataType.nodeId,
96
+ typeDefinition: complexVariableType.nodeId,
97
+ value: { dataType: node_opcua_variant_2.DataType.ExtensionObject, value: [], arrayType: node_opcua_variant_3.VariantArrayType.Array },
98
+ valueRank: 1
99
+ };
100
+ const uaArrayVariableNode = namespace.addVariable(inner_options);
101
+ bindExtObjArrayNode(uaArrayVariableNode, options.variableType, options.indexPropertyName);
102
+ return uaArrayVariableNode;
103
+ }
104
+ exports.createExtObjArrayNode = createExtObjArrayNode;
105
+ function _getElementBrowseName(extObj) {
106
+ const indexPropertyName1 = this.$$indexPropertyName;
107
+ if (!Object.prototype.hasOwnProperty.call(extObj, indexPropertyName1)) {
108
+ console.log(" extension object do not have ", indexPropertyName1, extObj);
109
+ }
110
+ // assert(extObj.constructor === addressSpace.constructExtensionObject(dataType));
111
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(extObj, indexPropertyName1));
112
+ const browseName = extObj[indexPropertyName1].toString();
113
+ return browseName;
114
+ }
115
+ ;
116
+ /**
117
+ * @method bindExtObjArrayNode
118
+ * @param uaArrayVariableNode
119
+ * @param variableTypeNodeId
120
+ * @param indexPropertyName
121
+ * @return
122
+ */
123
+ function bindExtObjArrayNode(uaArrayVariableNode, variableTypeNodeId, indexPropertyName) {
124
+ (0, node_opcua_assert_1.assert)(uaArrayVariableNode.valueRank === 1, "expecting a one dimension array");
125
+ const addressSpace = uaArrayVariableNode.addressSpace;
126
+ const variableType = addressSpace.findVariableType(variableTypeNodeId);
127
+ // istanbul ignore next
128
+ if (!variableType || variableType.nodeId.isEmpty()) {
129
+ throw new Error("Cannot find VariableType " + variableTypeNodeId.toString());
130
+ }
131
+ const structure = addressSpace.findDataType("Structure");
132
+ // istanbul ignore next
133
+ if (!structure) {
134
+ throw new Error("Structure Type not found: please check your nodeset file");
135
+ }
136
+ let dataType = addressSpace.findDataType(variableType.dataType);
137
+ // istanbul ignore next
138
+ if (!dataType) {
139
+ throw new Error("Cannot find DataType " + variableType.dataType.toString());
140
+ }
141
+ (0, node_opcua_assert_1.assert)(dataType.isSupertypeOf(structure), "expecting a structure (= ExtensionObject) here ");
142
+ (0, node_opcua_assert_1.assert)(!uaArrayVariableNode.$$variableType, "uaArrayVariableNode has already been bound !");
143
+ uaArrayVariableNode.$$variableType = variableType;
144
+ // verify that an object with same doesn't already exist
145
+ dataType = addressSpace.findDataType(variableType.dataType);
146
+ (0, node_opcua_assert_1.assert)(dataType.isSupertypeOf(structure), "expecting a structure (= ExtensionObject) here ");
147
+ uaArrayVariableNode.$$dataType = dataType;
148
+ uaArrayVariableNode.$$extensionObjectArray = [];
149
+ uaArrayVariableNode.$$indexPropertyName = indexPropertyName;
150
+ uaArrayVariableNode.$$getElementBrowseName = _getElementBrowseName;
151
+ const bindOptions = {
152
+ get: getExtObjArrayNodeValue,
153
+ set: undefined // readonly
154
+ };
155
+ // bind the readonly
156
+ uaArrayVariableNode.bindVariable(bindOptions, true);
157
+ return uaArrayVariableNode;
158
+ }
159
+ exports.bindExtObjArrayNode = bindExtObjArrayNode;
160
+ /**
161
+ * @method addElement
162
+ * add a new element in a ExtensionObject Array variable
163
+ * @param options {Object} data used to construct the underlying ExtensionObject
164
+ * @param uaArrayVariableNode {UAVariable}
165
+ * @return {UAVariable}
166
+ *
167
+ * @method addElement
168
+ * add a new element in a ExtensionObject Array variable
169
+ * @param nodeVariable a variable already exposing an extension objects
170
+ * @param uaArrayVariableNode {UAVariable}
171
+ * @return {UAVariable}
172
+ *
173
+ * @method addElement
174
+ * add a new element in a ExtensionObject Array variable
175
+ * @param constructor constructor of the extension object to create
176
+ * @param uaArrayVariableNode {UAVariable}
177
+ * @return {UAVariable}
178
+ */
179
+ function addElement(options /* ExtensionObjectConstructor | ExtensionObject | UAVariable*/, uaArrayVariableNode) {
180
+ (0, node_opcua_assert_1.assert)(uaArrayVariableNode, " must provide an UAVariable containing the array");
181
+ // verify that arr has been created correctly
182
+ (0, node_opcua_assert_1.assert)(!!uaArrayVariableNode.$$variableType && !!uaArrayVariableNode.$$dataType, "did you create the array Node with createExtObjArrayNode ?");
183
+ (0, node_opcua_assert_1.assert)(uaArrayVariableNode.$$dataType.nodeClass === node_opcua_data_model_1.NodeClass.DataType);
184
+ const addressSpace = uaArrayVariableNode.addressSpace;
185
+ const Constructor = addressSpace.getExtensionObjectConstructor(uaArrayVariableNode.$$dataType);
186
+ (0, node_opcua_assert_1.assert)(Constructor instanceof Function);
187
+ let extensionObject;
188
+ let elVar = null;
189
+ let browseName;
190
+ if (options instanceof ua_variable_impl_1.UAVariableImpl) {
191
+ elVar = options;
192
+ extensionObject = elVar.$extensionObject; // get shared extension object
193
+ (0, node_opcua_assert_1.assert)(extensionObject instanceof Constructor, "the provided variable must expose a Extension Object of the expected type ");
194
+ // add a reference
195
+ uaArrayVariableNode.addReference({
196
+ isForward: true,
197
+ nodeId: elVar.nodeId,
198
+ referenceType: "HasComponent"
199
+ });
200
+ // xx elVar.bindExtensionObject();
201
+ }
202
+ else {
203
+ if (options instanceof Constructor) {
204
+ // extension object has already been created
205
+ extensionObject = options;
206
+ }
207
+ else {
208
+ extensionObject = addressSpace.constructExtensionObject(uaArrayVariableNode.$$dataType, options);
209
+ }
210
+ browseName = uaArrayVariableNode.$$getElementBrowseName(extensionObject);
211
+ elVar = uaArrayVariableNode.$$variableType.instantiate({
212
+ browseName,
213
+ componentOf: uaArrayVariableNode.nodeId,
214
+ value: { dataType: node_opcua_variant_2.DataType.ExtensionObject, value: extensionObject }
215
+ });
216
+ elVar.bindExtensionObject(extensionObject, { force: true });
217
+ elVar.$extensionObject = extensionObject;
218
+ }
219
+ // also add the value inside
220
+ uaArrayVariableNode.$$extensionObjectArray.push(elVar.$extensionObject);
221
+ return elVar;
222
+ }
223
+ exports.addElement = addElement;
224
+ /**
225
+ *
226
+ * @method removeElement
227
+ * @param uaArrayVariableNode {UAVariable}
228
+ * @param element {number} index of element to remove in array
229
+ *
230
+ *
231
+ * @method removeElement
232
+ * @param uaArrayVariableNode {UAVariable}
233
+ * @param element {UAVariable} node of element to remove in array
234
+ *
235
+ * @method removeElement
236
+ * @param uaArrayVariableNode {UAVariable}
237
+ * @param element {ExtensionObject} extension object of the node of element to remove in array
238
+ *
239
+ */
240
+ function removeElement(uaArrayVariableNode, element /* number | UAVariable | (a any) => boolean | ExtensionObject */) {
241
+ (0, node_opcua_assert_1.assert)(element, "removeElement: element must exist");
242
+ const _array = uaArrayVariableNode.$$extensionObjectArray;
243
+ // istanbul ignore next
244
+ if (_array.length === 0) {
245
+ throw new Error(" cannot remove an element from an empty array ");
246
+ }
247
+ let elementIndex = -1;
248
+ if (typeof element === "number") {
249
+ // find element by index
250
+ elementIndex = element;
251
+ (0, node_opcua_assert_1.assert)(elementIndex >= 0 && elementIndex < _array.length);
252
+ }
253
+ else if (element && element.nodeClass) {
254
+ // find element by name
255
+ const browseNameToFind = element.browseName.name.toString();
256
+ elementIndex = _array.findIndex((obj, i) => {
257
+ const browseName = uaArrayVariableNode.$$getElementBrowseName(obj).toString();
258
+ return browseName === browseNameToFind;
259
+ });
260
+ }
261
+ else if (typeof element === "function") {
262
+ // find element by functor
263
+ elementIndex = _array.findIndex(element);
264
+ }
265
+ else {
266
+ // find element by inner extension object
267
+ (0, node_opcua_assert_1.assert)(_array[0].constructor.name === element.constructor.name, "element must match");
268
+ elementIndex = _array.findIndex((x) => x === element);
269
+ }
270
+ // istanbul ignore next
271
+ if (elementIndex < 0) {
272
+ throw new Error("removeElement: cannot find element matching " + element.toString());
273
+ }
274
+ return removeElementByIndex(uaArrayVariableNode, elementIndex);
275
+ }
276
+ exports.removeElement = removeElement;
277
277
  //# sourceMappingURL=extension_object_array_node.js.map
@@ -1,26 +1,26 @@
1
- /**
2
- * @module node-opcua-address-space
3
- * @class IAddressSpace
4
- */
5
- import { DataValue } from "node-opcua-data-value";
6
- import { ReadRawModifiedDetails } from "node-opcua-service-history";
7
- import { CallbackT } from "node-opcua-status-code";
8
- import { IAddressSpace, IVariableHistorian, IVariableHistorianOptions, UAVariable } from "node-opcua-address-space-base";
9
- import { UAVariableImpl } from "../ua_variable_impl";
10
- export declare class VariableHistorian implements IVariableHistorian {
11
- readonly node: UAVariable;
12
- private readonly _timeline;
13
- private readonly _maxOnlineValues;
14
- private lastDate;
15
- private lastDatePicoSeconds;
16
- constructor(node: UAVariable, options: IVariableHistorianOptions);
17
- push(newDataValue: DataValue): any;
18
- extractDataValues(historyReadRawModifiedDetails: ReadRawModifiedDetails, maxNumberToExtract: number, isReversed: boolean, reverseDataValue: boolean, callback: CallbackT<DataValue[]>): void;
19
- }
20
- /**
21
- * @method installHistoricalDataNode
22
- * @param node UAVariable
23
- * @param [options] {Object}
24
- * @param [options.maxOnlineValues = 1000]
25
- */
26
- export declare function AddressSpace_installHistoricalDataNode(this: IAddressSpace, node: UAVariableImpl, options?: IVariableHistorianOptions): void;
1
+ /**
2
+ * @module node-opcua-address-space
3
+ * @class IAddressSpace
4
+ */
5
+ import { DataValue } from "node-opcua-data-value";
6
+ import { ReadRawModifiedDetails } from "node-opcua-service-history";
7
+ import { CallbackT } from "node-opcua-status-code";
8
+ import { IAddressSpace, IVariableHistorian, IVariableHistorianOptions, UAVariable } from "node-opcua-address-space-base";
9
+ import { UAVariableImpl } from "../ua_variable_impl";
10
+ export declare class VariableHistorian implements IVariableHistorian {
11
+ readonly node: UAVariable;
12
+ private readonly _timeline;
13
+ private readonly _maxOnlineValues;
14
+ private lastDate;
15
+ private lastDatePicoSeconds;
16
+ constructor(node: UAVariable, options: IVariableHistorianOptions);
17
+ push(newDataValue: DataValue): any;
18
+ extractDataValues(historyReadRawModifiedDetails: ReadRawModifiedDetails, maxNumberToExtract: number, isReversed: boolean, reverseDataValue: boolean, callback: CallbackT<DataValue[]>): void;
19
+ }
20
+ /**
21
+ * @method installHistoricalDataNode
22
+ * @param node UAVariable
23
+ * @param [options] {Object}
24
+ * @param [options.maxOnlineValues = 1000]
25
+ */
26
+ export declare function AddressSpace_installHistoricalDataNode(this: IAddressSpace, node: UAVariableImpl, options?: IVariableHistorianOptions): void;