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,249 +1,249 @@
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 node_opcua_extension_object_1 = require("node-opcua-extension-object");
14
- const ua_variable_impl_1 = require("./ua_variable_impl");
15
- const doDebug = (0, node_opcua_debug_1.checkDebugFlag)(__filename);
16
- const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
17
- const errorLog = (0, node_opcua_debug_1.make_errorLog)(__filename);
18
- /*
19
- * define a complex Variable containing a array of extension objects
20
- * each element of the array is also accessible as a component variable.
21
- *
22
- */
23
- function getExtObjArrayNodeValue() {
24
- return new node_opcua_variant_1.Variant({
25
- arrayType: node_opcua_variant_3.VariantArrayType.Array,
26
- dataType: node_opcua_variant_2.DataType.ExtensionObject,
27
- value: this.$$extensionObjectArray
28
- });
29
- }
30
- function removeElementByIndex(uaArrayVariableNode, elementIndex) {
31
- const _array = uaArrayVariableNode.$$extensionObjectArray;
32
- (0, node_opcua_assert_1.assert)(typeof elementIndex === "number");
33
- const addressSpace = uaArrayVariableNode.addressSpace;
34
- const extObj = _array[elementIndex];
35
- const browseName = uaArrayVariableNode.$$getElementBrowseName(extObj, elementIndex);
36
- // remove element from global array (inefficient)
37
- uaArrayVariableNode.$$extensionObjectArray.splice(elementIndex, 1);
38
- if (uaArrayVariableNode.$$extensionObjectArray !== uaArrayVariableNode.$dataValue.value.value) {
39
- // throw new Error("internal error");
40
- }
41
- uaArrayVariableNode.touchValue();
42
- // remove matching component
43
- const node = uaArrayVariableNode.getComponentByName(browseName);
44
- if (!node) {
45
- throw new Error(" cannot find component ");
46
- }
47
- const hasComponent = uaArrayVariableNode.addressSpace.findReferenceType("HasComponent");
48
- // remove the hasComponent reference toward node
49
- uaArrayVariableNode.removeReference({
50
- isForward: true,
51
- nodeId: node.nodeId,
52
- referenceType: hasComponent.nodeId
53
- });
54
- // now check if node has still some parent
55
- const parents = node.findReferencesEx("HasChild", node_opcua_data_model_1.BrowseDirection.Inverse);
56
- if (parents.length === 0) {
57
- addressSpace.deleteNode(node.nodeId);
58
- }
59
- }
60
- /**
61
- *
62
- * create a node Variable that contains a array of ExtensionObject of a given type
63
- */
64
- function createExtObjArrayNode(parentFolder, options) {
65
- (0, node_opcua_assert_1.assert)(typeof options.variableType === "string");
66
- (0, node_opcua_assert_1.assert)(typeof options.indexPropertyName === "string");
67
- const addressSpace = parentFolder.addressSpace;
68
- const namespace = parentFolder.namespace;
69
- const complexVariableType = addressSpace.findVariableType(options.complexVariableType);
70
- // istanbul ignore next
71
- if (!complexVariableType) {
72
- throw new Error("cannot find complex variable type");
73
- }
74
- (0, node_opcua_assert_1.assert)(!complexVariableType.nodeId.isEmpty());
75
- const variableType = addressSpace.findVariableType(options.variableType);
76
- if (!variableType) {
77
- throw new Error("cannot find variable Type");
78
- }
79
- (0, node_opcua_assert_1.assert)(!variableType.nodeId.isEmpty());
80
- const structure = addressSpace.findDataType("Structure");
81
- (0, node_opcua_assert_1.assert)(structure, "Structure Type not found: please check your nodeset file");
82
- const dataType = addressSpace.findDataType(variableType.dataType);
83
- // istanbul ignore next
84
- if (!dataType) {
85
- errorLog(variableType.toString());
86
- throw new Error("cannot find Data Type");
87
- }
88
- (0, node_opcua_assert_1.assert)(dataType.isSubtypeOf(structure), "expecting a structure (= ExtensionObject) here ");
89
- const inner_options = {
90
- componentOf: parentFolder,
91
- browseName: options.browseName,
92
- dataType: dataType.nodeId,
93
- typeDefinition: complexVariableType.nodeId,
94
- value: { dataType: node_opcua_variant_2.DataType.ExtensionObject, value: [], arrayType: node_opcua_variant_3.VariantArrayType.Array },
95
- valueRank: 1
96
- };
97
- const uaArrayVariableNode = namespace.addVariable(inner_options);
98
- bindExtObjArrayNode(uaArrayVariableNode, options.variableType, options.indexPropertyName);
99
- return uaArrayVariableNode;
100
- }
101
- exports.createExtObjArrayNode = createExtObjArrayNode;
102
- function _getElementBrowseName(extObj, index) {
103
- const indexPropertyName1 = this.$$indexPropertyName;
104
- if (!Object.prototype.hasOwnProperty.call(extObj, indexPropertyName1)) {
105
- console.log(" extension object do not have ", indexPropertyName1, extObj);
106
- }
107
- // assert(extObj.constructor === addressSpace.constructExtensionObject(dataType));
108
- (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(extObj, indexPropertyName1));
109
- const browseName = extObj[indexPropertyName1].toString();
110
- return browseName;
111
- }
112
- ;
113
- function bindExtObjArrayNode(uaArrayVariableNode, variableTypeNodeId, indexPropertyName) {
114
- (0, node_opcua_assert_1.assert)(uaArrayVariableNode.valueRank === 1, "expecting a one dimension array");
115
- const addressSpace = uaArrayVariableNode.addressSpace;
116
- const variableType = addressSpace.findVariableType(variableTypeNodeId);
117
- // istanbul ignore next
118
- if (!variableType || variableType.nodeId.isEmpty()) {
119
- throw new Error("Cannot find VariableType " + variableTypeNodeId.toString());
120
- }
121
- const structure = addressSpace.findDataType("Structure");
122
- // istanbul ignore next
123
- if (!structure) {
124
- throw new Error("Structure Type not found: please check your nodeset file");
125
- }
126
- let dataType = addressSpace.findDataType(variableType.dataType);
127
- // istanbul ignore next
128
- if (!dataType) {
129
- throw new Error("Cannot find DataType " + variableType.dataType.toString());
130
- }
131
- (0, node_opcua_assert_1.assert)(dataType.isSubtypeOf(structure), "expecting a structure (= ExtensionObject) here ");
132
- (0, node_opcua_assert_1.assert)(!uaArrayVariableNode.$$variableType, "uaArrayVariableNode has already been bound !");
133
- uaArrayVariableNode.$$variableType = variableType;
134
- // verify that an object with same doesn't already exist
135
- dataType = addressSpace.findDataType(variableType.dataType);
136
- (0, node_opcua_assert_1.assert)(dataType.isSubtypeOf(structure), "expecting a structure (= ExtensionObject) here ");
137
- (0, node_opcua_assert_1.assert)(!uaArrayVariableNode.$$extensionObjectArray, "UAVariable ExtensionObject array already bounded");
138
- uaArrayVariableNode.$$dataType = dataType;
139
- uaArrayVariableNode.$$extensionObjectArray = [];
140
- uaArrayVariableNode.$$indexPropertyName = indexPropertyName;
141
- uaArrayVariableNode.$$getElementBrowseName = _getElementBrowseName;
142
- uaArrayVariableNode.$dataValue.value.value = uaArrayVariableNode.$$extensionObjectArray;
143
- uaArrayVariableNode.$dataValue.value.arrayType = node_opcua_variant_3.VariantArrayType.Array;
144
- const bindOptions = {
145
- get: getExtObjArrayNodeValue,
146
- set: undefined // readonly
147
- };
148
- // bind the readonly
149
- uaArrayVariableNode.bindVariable(bindOptions, true);
150
- return uaArrayVariableNode;
151
- }
152
- exports.bindExtObjArrayNode = bindExtObjArrayNode;
153
- /**
154
- * @method addElement
155
- * add a new element in a ExtensionObject Array variable
156
- * @param options {Object} data used to construct the underlying ExtensionObject
157
- * @param uaArrayVariableNode {UAVariable}
158
- * @return {UAVariable}
159
- *
160
- */
161
- function addElement(options, uaArrayVariableNode) {
162
- var _a;
163
- (0, node_opcua_assert_1.assert)(uaArrayVariableNode, " must provide an UAVariable containing the array");
164
- // verify that arr has been created correctly
165
- (0, node_opcua_assert_1.assert)(!!uaArrayVariableNode.$$variableType && !!uaArrayVariableNode.$$dataType, "did you create the array Node with createExtObjArrayNode ?");
166
- (0, node_opcua_assert_1.assert)(uaArrayVariableNode.$$dataType.nodeClass === node_opcua_data_model_1.NodeClass.DataType);
167
- const addressSpace = uaArrayVariableNode.addressSpace;
168
- const Constructor = addressSpace.getExtensionObjectConstructor(uaArrayVariableNode.$$dataType);
169
- (0, node_opcua_assert_1.assert)(Constructor instanceof Function);
170
- let extensionObject;
171
- let elVar = null;
172
- let browseName;
173
- if (options instanceof ua_variable_impl_1.UAVariableImpl) {
174
- elVar = options;
175
- extensionObject = elVar.$extensionObject; // get shared extension object
176
- (0, node_opcua_assert_1.assert)(extensionObject instanceof Constructor, "the provided variable must expose a Extension Object of the expected type ");
177
- // add a reference
178
- uaArrayVariableNode.addReference({
179
- isForward: true,
180
- nodeId: elVar.nodeId,
181
- referenceType: "HasComponent"
182
- });
183
- // xx elVar.bindExtensionObject();
184
- }
185
- else {
186
- if (options instanceof node_opcua_extension_object_1.ExtensionObject) {
187
- // extension object has already been created
188
- extensionObject = options;
189
- }
190
- else {
191
- extensionObject = addressSpace.constructExtensionObject(uaArrayVariableNode.$$dataType, options);
192
- }
193
- const index = ((_a = uaArrayVariableNode.$$extensionObjectArray) === null || _a === void 0 ? void 0 : _a.length) || 0;
194
- browseName = uaArrayVariableNode.$$getElementBrowseName(extensionObject, index);
195
- elVar = uaArrayVariableNode.$$variableType.instantiate({
196
- browseName,
197
- componentOf: uaArrayVariableNode.nodeId,
198
- value: { dataType: node_opcua_variant_2.DataType.ExtensionObject, value: extensionObject }
199
- });
200
- elVar.bindExtensionObject(extensionObject, { force: true });
201
- }
202
- if (uaArrayVariableNode.$$extensionObjectArray !== uaArrayVariableNode.$dataValue.value.value) {
203
- // throw new Error("internal error");
204
- }
205
- // also add the value inside
206
- uaArrayVariableNode.$$extensionObjectArray.push(elVar.$extensionObject);
207
- uaArrayVariableNode.touchValue();
208
- return elVar;
209
- }
210
- exports.addElement = addElement;
211
- /**
212
- *
213
- */
214
- function removeElement(uaArrayVariableNode, element) {
215
- (0, node_opcua_assert_1.assert)(element, "removeElement: element must exist");
216
- const _array = uaArrayVariableNode.$$extensionObjectArray;
217
- // istanbul ignore next
218
- if (_array.length === 0) {
219
- throw new Error(" cannot remove an element from an empty array ");
220
- }
221
- let elementIndex = -1;
222
- if (typeof element === "number") {
223
- // find element by index
224
- elementIndex = element;
225
- (0, node_opcua_assert_1.assert)(elementIndex >= 0 && elementIndex < _array.length);
226
- }
227
- else if (typeof element === "function") {
228
- // find element by functor
229
- elementIndex = _array.findIndex(element);
230
- }
231
- else if (element && element.nodeClass) {
232
- // find element by name
233
- const browseNameToFind = element.browseName.name.toString();
234
- elementIndex = _array.findIndex((obj, i) => {
235
- const browseName = uaArrayVariableNode.$$getElementBrowseName(obj, elementIndex).toString();
236
- return browseName === browseNameToFind;
237
- });
238
- }
239
- else {
240
- throw new Error("Unsupported anymore!!! please use a functor instead");
241
- }
242
- // istanbul ignore next
243
- if (elementIndex < 0) {
244
- throw new Error("removeElement: cannot find element matching " + element.toString());
245
- }
246
- return removeElementByIndex(uaArrayVariableNode, elementIndex);
247
- }
248
- 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 node_opcua_extension_object_1 = require("node-opcua-extension-object");
14
+ const ua_variable_impl_1 = require("./ua_variable_impl");
15
+ const doDebug = (0, node_opcua_debug_1.checkDebugFlag)(__filename);
16
+ const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
17
+ const errorLog = (0, node_opcua_debug_1.make_errorLog)(__filename);
18
+ /*
19
+ * define a complex Variable containing a array of extension objects
20
+ * each element of the array is also accessible as a component variable.
21
+ *
22
+ */
23
+ function getExtObjArrayNodeValue() {
24
+ return new node_opcua_variant_1.Variant({
25
+ arrayType: node_opcua_variant_3.VariantArrayType.Array,
26
+ dataType: node_opcua_variant_2.DataType.ExtensionObject,
27
+ value: this.$$extensionObjectArray
28
+ });
29
+ }
30
+ function removeElementByIndex(uaArrayVariableNode, elementIndex) {
31
+ const _array = uaArrayVariableNode.$$extensionObjectArray;
32
+ (0, node_opcua_assert_1.assert)(typeof elementIndex === "number");
33
+ const addressSpace = uaArrayVariableNode.addressSpace;
34
+ const extObj = _array[elementIndex];
35
+ const browseName = uaArrayVariableNode.$$getElementBrowseName(extObj, elementIndex);
36
+ // remove element from global array (inefficient)
37
+ uaArrayVariableNode.$$extensionObjectArray.splice(elementIndex, 1);
38
+ if (uaArrayVariableNode.$$extensionObjectArray !== uaArrayVariableNode.$dataValue.value.value) {
39
+ // throw new Error("internal error");
40
+ }
41
+ uaArrayVariableNode.touchValue();
42
+ // remove matching component
43
+ const node = uaArrayVariableNode.getComponentByName(browseName);
44
+ if (!node) {
45
+ throw new Error(" cannot find component ");
46
+ }
47
+ const hasComponent = uaArrayVariableNode.addressSpace.findReferenceType("HasComponent");
48
+ // remove the hasComponent reference toward node
49
+ uaArrayVariableNode.removeReference({
50
+ isForward: true,
51
+ nodeId: node.nodeId,
52
+ referenceType: hasComponent.nodeId
53
+ });
54
+ // now check if node has still some parent
55
+ const parents = node.findReferencesEx("HasChild", node_opcua_data_model_1.BrowseDirection.Inverse);
56
+ if (parents.length === 0) {
57
+ addressSpace.deleteNode(node.nodeId);
58
+ }
59
+ }
60
+ /**
61
+ *
62
+ * create a node Variable that contains a array of ExtensionObject of a given type
63
+ */
64
+ function createExtObjArrayNode(parentFolder, options) {
65
+ (0, node_opcua_assert_1.assert)(typeof options.variableType === "string");
66
+ (0, node_opcua_assert_1.assert)(typeof options.indexPropertyName === "string");
67
+ const addressSpace = parentFolder.addressSpace;
68
+ const namespace = parentFolder.namespace;
69
+ const complexVariableType = addressSpace.findVariableType(options.complexVariableType);
70
+ // istanbul ignore next
71
+ if (!complexVariableType) {
72
+ throw new Error("cannot find complex variable type");
73
+ }
74
+ (0, node_opcua_assert_1.assert)(!complexVariableType.nodeId.isEmpty());
75
+ const variableType = addressSpace.findVariableType(options.variableType);
76
+ if (!variableType) {
77
+ throw new Error("cannot find variable Type");
78
+ }
79
+ (0, node_opcua_assert_1.assert)(!variableType.nodeId.isEmpty());
80
+ const structure = addressSpace.findDataType("Structure");
81
+ (0, node_opcua_assert_1.assert)(structure, "Structure Type not found: please check your nodeset file");
82
+ const dataType = addressSpace.findDataType(variableType.dataType);
83
+ // istanbul ignore next
84
+ if (!dataType) {
85
+ errorLog(variableType.toString());
86
+ throw new Error("cannot find Data Type");
87
+ }
88
+ (0, node_opcua_assert_1.assert)(dataType.isSubtypeOf(structure), "expecting a structure (= ExtensionObject) here ");
89
+ const inner_options = {
90
+ componentOf: parentFolder,
91
+ browseName: options.browseName,
92
+ dataType: dataType.nodeId,
93
+ typeDefinition: complexVariableType.nodeId,
94
+ value: { dataType: node_opcua_variant_2.DataType.ExtensionObject, value: [], arrayType: node_opcua_variant_3.VariantArrayType.Array },
95
+ valueRank: 1
96
+ };
97
+ const uaArrayVariableNode = namespace.addVariable(inner_options);
98
+ bindExtObjArrayNode(uaArrayVariableNode, options.variableType, options.indexPropertyName);
99
+ return uaArrayVariableNode;
100
+ }
101
+ exports.createExtObjArrayNode = createExtObjArrayNode;
102
+ function _getElementBrowseName(extObj, index) {
103
+ const indexPropertyName1 = this.$$indexPropertyName;
104
+ if (!Object.prototype.hasOwnProperty.call(extObj, indexPropertyName1)) {
105
+ console.log(" extension object do not have ", indexPropertyName1, extObj);
106
+ }
107
+ // assert(extObj.constructor === addressSpace.constructExtensionObject(dataType));
108
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(extObj, indexPropertyName1));
109
+ const browseName = extObj[indexPropertyName1].toString();
110
+ return browseName;
111
+ }
112
+ ;
113
+ function bindExtObjArrayNode(uaArrayVariableNode, variableTypeNodeId, indexPropertyName) {
114
+ (0, node_opcua_assert_1.assert)(uaArrayVariableNode.valueRank === 1, "expecting a one dimension array");
115
+ const addressSpace = uaArrayVariableNode.addressSpace;
116
+ const variableType = addressSpace.findVariableType(variableTypeNodeId);
117
+ // istanbul ignore next
118
+ if (!variableType || variableType.nodeId.isEmpty()) {
119
+ throw new Error("Cannot find VariableType " + variableTypeNodeId.toString());
120
+ }
121
+ const structure = addressSpace.findDataType("Structure");
122
+ // istanbul ignore next
123
+ if (!structure) {
124
+ throw new Error("Structure Type not found: please check your nodeset file");
125
+ }
126
+ let dataType = addressSpace.findDataType(variableType.dataType);
127
+ // istanbul ignore next
128
+ if (!dataType) {
129
+ throw new Error("Cannot find DataType " + variableType.dataType.toString());
130
+ }
131
+ (0, node_opcua_assert_1.assert)(dataType.isSubtypeOf(structure), "expecting a structure (= ExtensionObject) here ");
132
+ (0, node_opcua_assert_1.assert)(!uaArrayVariableNode.$$variableType, "uaArrayVariableNode has already been bound !");
133
+ uaArrayVariableNode.$$variableType = variableType;
134
+ // verify that an object with same doesn't already exist
135
+ dataType = addressSpace.findDataType(variableType.dataType);
136
+ (0, node_opcua_assert_1.assert)(dataType.isSubtypeOf(structure), "expecting a structure (= ExtensionObject) here ");
137
+ (0, node_opcua_assert_1.assert)(!uaArrayVariableNode.$$extensionObjectArray, "UAVariable ExtensionObject array already bounded");
138
+ uaArrayVariableNode.$$dataType = dataType;
139
+ uaArrayVariableNode.$$extensionObjectArray = [];
140
+ uaArrayVariableNode.$$indexPropertyName = indexPropertyName;
141
+ uaArrayVariableNode.$$getElementBrowseName = _getElementBrowseName;
142
+ uaArrayVariableNode.$dataValue.value.value = uaArrayVariableNode.$$extensionObjectArray;
143
+ uaArrayVariableNode.$dataValue.value.arrayType = node_opcua_variant_3.VariantArrayType.Array;
144
+ const bindOptions = {
145
+ get: getExtObjArrayNodeValue,
146
+ set: undefined // readonly
147
+ };
148
+ // bind the readonly
149
+ uaArrayVariableNode.bindVariable(bindOptions, true);
150
+ return uaArrayVariableNode;
151
+ }
152
+ exports.bindExtObjArrayNode = bindExtObjArrayNode;
153
+ /**
154
+ * @method addElement
155
+ * add a new element in a ExtensionObject Array variable
156
+ * @param options {Object} data used to construct the underlying ExtensionObject
157
+ * @param uaArrayVariableNode {UAVariable}
158
+ * @return {UAVariable}
159
+ *
160
+ */
161
+ function addElement(options, uaArrayVariableNode) {
162
+ var _a;
163
+ (0, node_opcua_assert_1.assert)(uaArrayVariableNode, " must provide an UAVariable containing the array");
164
+ // verify that arr has been created correctly
165
+ (0, node_opcua_assert_1.assert)(!!uaArrayVariableNode.$$variableType && !!uaArrayVariableNode.$$dataType, "did you create the array Node with createExtObjArrayNode ?");
166
+ (0, node_opcua_assert_1.assert)(uaArrayVariableNode.$$dataType.nodeClass === node_opcua_data_model_1.NodeClass.DataType);
167
+ const addressSpace = uaArrayVariableNode.addressSpace;
168
+ const Constructor = addressSpace.getExtensionObjectConstructor(uaArrayVariableNode.$$dataType);
169
+ (0, node_opcua_assert_1.assert)(Constructor instanceof Function);
170
+ let extensionObject;
171
+ let elVar = null;
172
+ let browseName;
173
+ if (options instanceof ua_variable_impl_1.UAVariableImpl) {
174
+ elVar = options;
175
+ extensionObject = elVar.$extensionObject; // get shared extension object
176
+ (0, node_opcua_assert_1.assert)(extensionObject instanceof Constructor, "the provided variable must expose a Extension Object of the expected type ");
177
+ // add a reference
178
+ uaArrayVariableNode.addReference({
179
+ isForward: true,
180
+ nodeId: elVar.nodeId,
181
+ referenceType: "HasComponent"
182
+ });
183
+ // xx elVar.bindExtensionObject();
184
+ }
185
+ else {
186
+ if (options instanceof node_opcua_extension_object_1.ExtensionObject) {
187
+ // extension object has already been created
188
+ extensionObject = options;
189
+ }
190
+ else {
191
+ extensionObject = addressSpace.constructExtensionObject(uaArrayVariableNode.$$dataType, options);
192
+ }
193
+ const index = ((_a = uaArrayVariableNode.$$extensionObjectArray) === null || _a === void 0 ? void 0 : _a.length) || 0;
194
+ browseName = uaArrayVariableNode.$$getElementBrowseName(extensionObject, index);
195
+ elVar = uaArrayVariableNode.$$variableType.instantiate({
196
+ browseName,
197
+ componentOf: uaArrayVariableNode.nodeId,
198
+ value: { dataType: node_opcua_variant_2.DataType.ExtensionObject, value: extensionObject }
199
+ });
200
+ elVar.bindExtensionObject(extensionObject, { force: true });
201
+ }
202
+ if (uaArrayVariableNode.$$extensionObjectArray !== uaArrayVariableNode.$dataValue.value.value) {
203
+ // throw new Error("internal error");
204
+ }
205
+ // also add the value inside
206
+ uaArrayVariableNode.$$extensionObjectArray.push(elVar.$extensionObject);
207
+ uaArrayVariableNode.touchValue();
208
+ return elVar;
209
+ }
210
+ exports.addElement = addElement;
211
+ /**
212
+ *
213
+ */
214
+ function removeElement(uaArrayVariableNode, element) {
215
+ (0, node_opcua_assert_1.assert)(element, "removeElement: element must exist");
216
+ const _array = uaArrayVariableNode.$$extensionObjectArray;
217
+ // istanbul ignore next
218
+ if (_array.length === 0) {
219
+ throw new Error(" cannot remove an element from an empty array ");
220
+ }
221
+ let elementIndex = -1;
222
+ if (typeof element === "number") {
223
+ // find element by index
224
+ elementIndex = element;
225
+ (0, node_opcua_assert_1.assert)(elementIndex >= 0 && elementIndex < _array.length);
226
+ }
227
+ else if (typeof element === "function") {
228
+ // find element by functor
229
+ elementIndex = _array.findIndex(element);
230
+ }
231
+ else if (element && element.nodeClass) {
232
+ // find element by name
233
+ const browseNameToFind = element.browseName.name.toString();
234
+ elementIndex = _array.findIndex((obj, i) => {
235
+ const browseName = uaArrayVariableNode.$$getElementBrowseName(obj, elementIndex).toString();
236
+ return browseName === browseNameToFind;
237
+ });
238
+ }
239
+ else {
240
+ throw new Error("Unsupported anymore!!! please use a functor instead");
241
+ }
242
+ // istanbul ignore next
243
+ if (elementIndex < 0) {
244
+ throw new Error("removeElement: cannot find element matching " + element.toString());
245
+ }
246
+ return removeElementByIndex(uaArrayVariableNode, elementIndex);
247
+ }
248
+ exports.removeElement = removeElement;
249
249
  //# 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): Promise<void>;
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): Promise<void>;
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;