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,254 +1,254 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateDataType = exports._addMultiStateValueDiscrete = exports.promoteToMultiStateValueDiscrete = exports.UAMultiStateValueDiscreteImpl = void 0;
4
- /**
5
- * @module node-opcua-address-space.DataAccess
6
- */
7
- const node_opcua_assert_1 = require("node-opcua-assert");
8
- const node_opcua_variant_1 = require("node-opcua-variant");
9
- const node_opcua_basic_types_1 = require("node-opcua-basic-types");
10
- const node_opcua_data_model_1 = require("node-opcua-data-model");
11
- const node_opcua_status_code_1 = require("node-opcua-status-code");
12
- const node_opcua_constants_1 = require("node-opcua-constants");
13
- const register_node_promoter_1 = require("../../source/loader/register_node_promoter");
14
- const coerce_enum_value_1 = require("../../source/helpers/coerce_enum_value");
15
- const ua_variable_impl_1 = require("../ua_variable_impl");
16
- const add_dataItem_stuff_1 = require("./add_dataItem_stuff");
17
- function install_synchronization(variable) {
18
- const _variable = variable;
19
- _variable.on("value_changed", (value) => {
20
- const valueAsTextNode = variable.valueAsText || _variable.getComponentByName("ValueAsText");
21
- if (!valueAsTextNode) {
22
- return;
23
- }
24
- const valueAsText1 = _variable.findValueAsText(value.value.value);
25
- valueAsTextNode.setValueFromSource(valueAsText1);
26
- });
27
- _variable.emit("value_changed", _variable.readValue());
28
- }
29
- class UAMultiStateValueDiscreteImpl extends ua_variable_impl_1.UAVariableImpl {
30
- setValue(value) {
31
- if (typeof value === "string") {
32
- const enumValues = this.enumValues.readValue().value.value;
33
- const selected = enumValues.filter((a) => a.displayName.text === value)[0];
34
- if (selected) {
35
- this._setValue(selected.value);
36
- }
37
- else {
38
- throw new Error("cannot find enum string " + value + " in " + enumValues.toString());
39
- }
40
- }
41
- else {
42
- this._setValue((0, node_opcua_basic_types_1.coerceUInt64)(value));
43
- }
44
- }
45
- getValueAsString() {
46
- return this.valueAsText.readValue().value.value.text || "";
47
- }
48
- getValueAsNumber() {
49
- return this.readValue().value.value;
50
- }
51
- checkVariantCompatibility(value) {
52
- if (this.enumValues) {
53
- if (!this._isValueInRange((0, node_opcua_basic_types_1.coerceInt32)(value.value))) {
54
- return node_opcua_status_code_1.StatusCodes.BadOutOfRange;
55
- }
56
- }
57
- return node_opcua_status_code_1.StatusCodes.Good;
58
- }
59
- clone(options1, optionalFilter, extraInfo) {
60
- const variable1 = ua_variable_impl_1.UAVariableImpl.prototype.clone.call(this, options1, optionalFilter, extraInfo);
61
- return promoteToMultiStateValueDiscrete(variable1);
62
- }
63
- /**
64
- * @private
65
- */
66
- _isValueInRange(value) {
67
- // MultiStateValueDiscreteType
68
- const enumValues = this.enumValues.readValue().value.value;
69
- const e = enumValues.findIndex((x) => (0, node_opcua_basic_types_1.coerceInt32)(x.value) === value);
70
- return !(e === -1);
71
- }
72
- /**
73
- *
74
- * @private
75
- */
76
- _enumValueIndex() {
77
- // construct an index to quickly find a EnumValue from a value
78
- const enumValues = this.enumValues.readValue().value.value;
79
- const enumValueIndex = {};
80
- if (!enumValues || !enumValues.forEach) {
81
- return enumValueIndex;
82
- }
83
- enumValues.forEach((e) => {
84
- enumValueIndex[e.value[1]] = e;
85
- });
86
- return enumValueIndex;
87
- }
88
- /**
89
- *
90
- * @private
91
- */
92
- _setValue(value) {
93
- // check that value is in bound
94
- if (!this._isValueInRange((0, node_opcua_basic_types_1.coerceInt32)(value))) {
95
- throw new Error("UAMultiStateValueDiscrete#_setValue out of range " + value);
96
- }
97
- const dataType = this._getDataType();
98
- if (dataType === node_opcua_variant_1.DataType.Int64 || dataType === node_opcua_variant_1.DataType.UInt64) {
99
- this.setValueFromSource({ dataType, value });
100
- }
101
- else {
102
- const valueN = value[1];
103
- this.setValueFromSource({ dataType, value: valueN });
104
- }
105
- }
106
- /**
107
- *
108
- * @private
109
- */
110
- findValueAsText(value) {
111
- const enumValueIndex = this._enumValueIndex();
112
- if (value === undefined) {
113
- throw new Error("Unexpected undefined value");
114
- }
115
- if (value instanceof Array) {
116
- value = value[1];
117
- }
118
- (0, node_opcua_assert_1.assert)(!(value instanceof node_opcua_variant_1.Variant));
119
- let valueAsText1 = "Invalid";
120
- if (enumValueIndex[value]) {
121
- valueAsText1 = enumValueIndex[value].displayName;
122
- }
123
- const result = new node_opcua_variant_1.Variant({
124
- dataType: node_opcua_variant_1.DataType.LocalizedText,
125
- value: (0, node_opcua_data_model_1.coerceLocalizedText)(valueAsText1)
126
- });
127
- return result;
128
- }
129
- _getDataType() {
130
- if (this.dataType.value === 26 /* Number */) {
131
- return node_opcua_variant_1.DataType.UInt32;
132
- }
133
- const dataTypeStr = node_opcua_variant_1.DataType[this.dataType.value];
134
- return node_opcua_variant_1.DataType[dataTypeStr];
135
- }
136
- /**
137
- *
138
- * @private
139
- */
140
- _post_initialize() {
141
- // MultiStateValueDiscrete Variables can have any numeric Data Type;
142
- // this includes signed and unsigned integers from 8 to 64 Bit length.
143
- // istanbul ignore next
144
- validateDataType(this.dataType.value);
145
- // find the enum value type
146
- install_synchronization(this);
147
- }
148
- }
149
- exports.UAMultiStateValueDiscreteImpl = UAMultiStateValueDiscreteImpl;
150
- function promoteToMultiStateValueDiscrete(node) {
151
- if (node instanceof UAMultiStateValueDiscreteImpl) {
152
- return node; // already promoted
153
- }
154
- Object.setPrototypeOf(node, UAMultiStateValueDiscreteImpl.prototype);
155
- (0, node_opcua_assert_1.assert)(node instanceof UAMultiStateValueDiscreteImpl, "should now be a State Machine");
156
- node._post_initialize();
157
- return node;
158
- }
159
- exports.promoteToMultiStateValueDiscrete = promoteToMultiStateValueDiscrete;
160
- (0, register_node_promoter_1.registerNodePromoter)(node_opcua_constants_1.VariableTypeIds.MultiStateValueDiscreteType, promoteToMultiStateValueDiscrete);
161
- function _addMultiStateValueDiscrete(namespace, options) {
162
- (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(options, "enumValues"));
163
- (0, node_opcua_assert_1.assert)(!Object.prototype.hasOwnProperty.call(options, "ValuePrecision"));
164
- const addressSpace = namespace.addressSpace;
165
- const multiStateValueDiscreteType = addressSpace.findVariableType("MultiStateValueDiscreteType");
166
- if (!multiStateValueDiscreteType) {
167
- throw new Error("expecting MultiStateValueDiscreteType to be defined , check nodeset xml file");
168
- }
169
- // todo : if options.typeDefinition is specified, check that type is SubTypeOf MultiStateDiscreteType
170
- // EnumValueType
171
- // value: Int64, displayName: LocalizedText, Description: LocalizedText
172
- const enumValues = (0, coerce_enum_value_1.coerceEnumValues)(options.enumValues);
173
- if (options.value === undefined && enumValues[0]) {
174
- options.value = enumValues[0].value; // Int64
175
- }
176
- let value;
177
- if (typeof options.value === "number" || (0, node_opcua_basic_types_1.isValidUInt64)(options.value)) {
178
- if ((0, node_opcua_basic_types_1.isValidUInt64)(options.value)) {
179
- value = new node_opcua_variant_1.Variant({
180
- dataType: node_opcua_variant_1.DataType.UInt32,
181
- value: options.value[1] // Low word
182
- });
183
- }
184
- else {
185
- value = new node_opcua_variant_1.Variant({
186
- dataType: node_opcua_variant_1.DataType.UInt32,
187
- value: options.value
188
- });
189
- }
190
- }
191
- else {
192
- value = options.value;
193
- }
194
- const cloned_options = Object.assign(Object.assign({}, options), { dataType: node_opcua_variant_1.DataType.UInt32, typeDefinition: multiStateValueDiscreteType.nodeId,
195
- // valueRank:
196
- // note : OPCUA Spec 1.03 specifies -1:Scalar (part 8 page 8) but nodeset file specifies -2:Any
197
- value, valueRank: -1 // -1 : Scalar
198
- });
199
- const variable = namespace.addVariable(cloned_options);
200
- (0, add_dataItem_stuff_1.add_dataItem_stuff)(variable, options);
201
- namespace.addVariable({
202
- accessLevel: "CurrentRead",
203
- browseName: { name: "EnumValues", namespaceIndex: 0 },
204
- dataType: "EnumValueType",
205
- valueRank: 1,
206
- minimumSamplingInterval: 0,
207
- modellingRule: options.modellingRule ? "Mandatory" : undefined,
208
- propertyOf: variable,
209
- typeDefinition: "PropertyType",
210
- userAccessLevel: "CurrentRead",
211
- value: new node_opcua_variant_1.Variant({
212
- arrayType: node_opcua_variant_1.VariantArrayType.Array,
213
- dataType: node_opcua_variant_1.DataType.ExtensionObject,
214
- value: enumValues
215
- })
216
- });
217
- namespace.addVariable({
218
- accessLevel: "CurrentRead",
219
- browseName: { name: "ValueAsText", namespaceIndex: 0 },
220
- dataType: node_opcua_variant_1.DataType.LocalizedText,
221
- minimumSamplingInterval: 0,
222
- modellingRule: options.modellingRule ? "Mandatory" : undefined,
223
- propertyOf: variable,
224
- typeDefinition: "PropertyType",
225
- userAccessLevel: "CurrentRead"
226
- // value: valueAsText
227
- });
228
- // install additional helpers methods
229
- variable.install_extra_properties();
230
- promoteToMultiStateValueDiscrete(variable);
231
- (0, node_opcua_assert_1.assert)(variable.enumValues.browseName.toString() === "EnumValues");
232
- (0, node_opcua_assert_1.assert)(variable.valueAsText.browseName.toString() === "ValueAsText");
233
- return variable;
234
- }
235
- exports._addMultiStateValueDiscrete = _addMultiStateValueDiscrete;
236
- function validateDataType(dataTypeValue) {
237
- const validTypes = [
238
- node_opcua_variant_1.DataType.UInt64,
239
- node_opcua_variant_1.DataType.Int64,
240
- node_opcua_variant_1.DataType.UInt32,
241
- node_opcua_variant_1.DataType.Int32,
242
- node_opcua_variant_1.DataType.UInt16,
243
- node_opcua_variant_1.DataType.Int16,
244
- node_opcua_variant_1.DataType.Byte,
245
- node_opcua_variant_1.DataType.Byte,
246
- node_opcua_variant_1.DataType.SByte,
247
- 26 /*Number*/
248
- ];
249
- if (typeof dataTypeValue !== "number" || validTypes.indexOf(dataTypeValue) < 0) {
250
- throw new Error(`Invalid DataType in UAMultiStateValueDiscrete => ${dataTypeValue.toString()}`);
251
- }
252
- }
253
- exports.validateDataType = validateDataType;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateDataType = exports._addMultiStateValueDiscrete = exports.promoteToMultiStateValueDiscrete = exports.UAMultiStateValueDiscreteImpl = void 0;
4
+ /**
5
+ * @module node-opcua-address-space.DataAccess
6
+ */
7
+ const node_opcua_assert_1 = require("node-opcua-assert");
8
+ const node_opcua_variant_1 = require("node-opcua-variant");
9
+ const node_opcua_basic_types_1 = require("node-opcua-basic-types");
10
+ const node_opcua_data_model_1 = require("node-opcua-data-model");
11
+ const node_opcua_status_code_1 = require("node-opcua-status-code");
12
+ const node_opcua_constants_1 = require("node-opcua-constants");
13
+ const register_node_promoter_1 = require("../../source/loader/register_node_promoter");
14
+ const coerce_enum_value_1 = require("../../source/helpers/coerce_enum_value");
15
+ const ua_variable_impl_1 = require("../ua_variable_impl");
16
+ const add_dataItem_stuff_1 = require("./add_dataItem_stuff");
17
+ function install_synchronization(variable) {
18
+ const _variable = variable;
19
+ _variable.on("value_changed", (value) => {
20
+ const valueAsTextNode = variable.valueAsText || _variable.getComponentByName("ValueAsText");
21
+ if (!valueAsTextNode) {
22
+ return;
23
+ }
24
+ const valueAsText1 = _variable.findValueAsText(value.value.value);
25
+ valueAsTextNode.setValueFromSource(valueAsText1);
26
+ });
27
+ _variable.emit("value_changed", _variable.readValue());
28
+ }
29
+ class UAMultiStateValueDiscreteImpl extends ua_variable_impl_1.UAVariableImpl {
30
+ setValue(value) {
31
+ if (typeof value === "string") {
32
+ const enumValues = this.enumValues.readValue().value.value;
33
+ const selected = enumValues.filter((a) => a.displayName.text === value)[0];
34
+ if (selected) {
35
+ this._setValue(selected.value);
36
+ }
37
+ else {
38
+ throw new Error("cannot find enum string " + value + " in " + enumValues.toString());
39
+ }
40
+ }
41
+ else {
42
+ this._setValue((0, node_opcua_basic_types_1.coerceUInt64)(value));
43
+ }
44
+ }
45
+ getValueAsString() {
46
+ return this.valueAsText.readValue().value.value.text || "";
47
+ }
48
+ getValueAsNumber() {
49
+ return this.readValue().value.value;
50
+ }
51
+ checkVariantCompatibility(value) {
52
+ if (this.enumValues) {
53
+ if (!this._isValueInRange((0, node_opcua_basic_types_1.coerceInt32)(value.value))) {
54
+ return node_opcua_status_code_1.StatusCodes.BadOutOfRange;
55
+ }
56
+ }
57
+ return node_opcua_status_code_1.StatusCodes.Good;
58
+ }
59
+ clone(options1, optionalFilter, extraInfo) {
60
+ const variable1 = ua_variable_impl_1.UAVariableImpl.prototype.clone.call(this, options1, optionalFilter, extraInfo);
61
+ return promoteToMultiStateValueDiscrete(variable1);
62
+ }
63
+ /**
64
+ * @private
65
+ */
66
+ _isValueInRange(value) {
67
+ // MultiStateValueDiscreteType
68
+ const enumValues = this.enumValues.readValue().value.value;
69
+ const e = enumValues.findIndex((x) => (0, node_opcua_basic_types_1.coerceInt32)(x.value) === value);
70
+ return !(e === -1);
71
+ }
72
+ /**
73
+ *
74
+ * @private
75
+ */
76
+ _enumValueIndex() {
77
+ // construct an index to quickly find a EnumValue from a value
78
+ const enumValues = this.enumValues.readValue().value.value;
79
+ const enumValueIndex = {};
80
+ if (!enumValues || !enumValues.forEach) {
81
+ return enumValueIndex;
82
+ }
83
+ enumValues.forEach((e) => {
84
+ enumValueIndex[e.value[1]] = e;
85
+ });
86
+ return enumValueIndex;
87
+ }
88
+ /**
89
+ *
90
+ * @private
91
+ */
92
+ _setValue(value) {
93
+ // check that value is in bound
94
+ if (!this._isValueInRange((0, node_opcua_basic_types_1.coerceInt32)(value))) {
95
+ throw new Error("UAMultiStateValueDiscrete#_setValue out of range " + value);
96
+ }
97
+ const dataType = this._getDataType();
98
+ if (dataType === node_opcua_variant_1.DataType.Int64 || dataType === node_opcua_variant_1.DataType.UInt64) {
99
+ this.setValueFromSource({ dataType, value });
100
+ }
101
+ else {
102
+ const valueN = value[1];
103
+ this.setValueFromSource({ dataType, value: valueN });
104
+ }
105
+ }
106
+ /**
107
+ *
108
+ * @private
109
+ */
110
+ findValueAsText(value) {
111
+ const enumValueIndex = this._enumValueIndex();
112
+ if (value === undefined) {
113
+ throw new Error("Unexpected undefined value");
114
+ }
115
+ if (value instanceof Array) {
116
+ value = value[1];
117
+ }
118
+ (0, node_opcua_assert_1.assert)(!(value instanceof node_opcua_variant_1.Variant));
119
+ let valueAsText1 = "Invalid";
120
+ if (enumValueIndex[value]) {
121
+ valueAsText1 = enumValueIndex[value].displayName;
122
+ }
123
+ const result = new node_opcua_variant_1.Variant({
124
+ dataType: node_opcua_variant_1.DataType.LocalizedText,
125
+ value: (0, node_opcua_data_model_1.coerceLocalizedText)(valueAsText1)
126
+ });
127
+ return result;
128
+ }
129
+ _getDataType() {
130
+ if (this.dataType.value === 26 /* Number */) {
131
+ return node_opcua_variant_1.DataType.UInt32;
132
+ }
133
+ const dataTypeStr = node_opcua_variant_1.DataType[this.dataType.value];
134
+ return node_opcua_variant_1.DataType[dataTypeStr];
135
+ }
136
+ /**
137
+ *
138
+ * @private
139
+ */
140
+ _post_initialize() {
141
+ // MultiStateValueDiscrete Variables can have any numeric Data Type;
142
+ // this includes signed and unsigned integers from 8 to 64 Bit length.
143
+ // istanbul ignore next
144
+ validateDataType(this.dataType.value);
145
+ // find the enum value type
146
+ install_synchronization(this);
147
+ }
148
+ }
149
+ exports.UAMultiStateValueDiscreteImpl = UAMultiStateValueDiscreteImpl;
150
+ function promoteToMultiStateValueDiscrete(node) {
151
+ if (node instanceof UAMultiStateValueDiscreteImpl) {
152
+ return node; // already promoted
153
+ }
154
+ Object.setPrototypeOf(node, UAMultiStateValueDiscreteImpl.prototype);
155
+ (0, node_opcua_assert_1.assert)(node instanceof UAMultiStateValueDiscreteImpl, "should now be a State Machine");
156
+ node._post_initialize();
157
+ return node;
158
+ }
159
+ exports.promoteToMultiStateValueDiscrete = promoteToMultiStateValueDiscrete;
160
+ (0, register_node_promoter_1.registerNodePromoter)(node_opcua_constants_1.VariableTypeIds.MultiStateValueDiscreteType, promoteToMultiStateValueDiscrete);
161
+ function _addMultiStateValueDiscrete(namespace, options) {
162
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(options, "enumValues"));
163
+ (0, node_opcua_assert_1.assert)(!Object.prototype.hasOwnProperty.call(options, "ValuePrecision"));
164
+ const addressSpace = namespace.addressSpace;
165
+ const multiStateValueDiscreteType = addressSpace.findVariableType("MultiStateValueDiscreteType");
166
+ if (!multiStateValueDiscreteType) {
167
+ throw new Error("expecting MultiStateValueDiscreteType to be defined , check nodeset xml file");
168
+ }
169
+ // todo : if options.typeDefinition is specified, check that type is SubTypeOf MultiStateDiscreteType
170
+ // EnumValueType
171
+ // value: Int64, displayName: LocalizedText, Description: LocalizedText
172
+ const enumValues = (0, coerce_enum_value_1.coerceEnumValues)(options.enumValues);
173
+ if (options.value === undefined && enumValues[0]) {
174
+ options.value = enumValues[0].value; // Int64
175
+ }
176
+ let value;
177
+ if (typeof options.value === "number" || (0, node_opcua_basic_types_1.isValidUInt64)(options.value)) {
178
+ if ((0, node_opcua_basic_types_1.isValidUInt64)(options.value)) {
179
+ value = new node_opcua_variant_1.Variant({
180
+ dataType: node_opcua_variant_1.DataType.UInt32,
181
+ value: options.value[1] // Low word
182
+ });
183
+ }
184
+ else {
185
+ value = new node_opcua_variant_1.Variant({
186
+ dataType: node_opcua_variant_1.DataType.UInt32,
187
+ value: options.value
188
+ });
189
+ }
190
+ }
191
+ else {
192
+ value = options.value;
193
+ }
194
+ const cloned_options = Object.assign(Object.assign({}, options), { dataType: node_opcua_variant_1.DataType.UInt32, typeDefinition: multiStateValueDiscreteType.nodeId,
195
+ // valueRank:
196
+ // note : OPCUA Spec 1.03 specifies -1:Scalar (part 8 page 8) but nodeset file specifies -2:Any
197
+ value, valueRank: -1 // -1 : Scalar
198
+ });
199
+ const variable = namespace.addVariable(cloned_options);
200
+ (0, add_dataItem_stuff_1.add_dataItem_stuff)(variable, options);
201
+ namespace.addVariable({
202
+ accessLevel: "CurrentRead",
203
+ browseName: { name: "EnumValues", namespaceIndex: 0 },
204
+ dataType: "EnumValueType",
205
+ valueRank: 1,
206
+ minimumSamplingInterval: 0,
207
+ modellingRule: options.modellingRule ? "Mandatory" : undefined,
208
+ propertyOf: variable,
209
+ typeDefinition: "PropertyType",
210
+ userAccessLevel: "CurrentRead",
211
+ value: new node_opcua_variant_1.Variant({
212
+ arrayType: node_opcua_variant_1.VariantArrayType.Array,
213
+ dataType: node_opcua_variant_1.DataType.ExtensionObject,
214
+ value: enumValues
215
+ })
216
+ });
217
+ namespace.addVariable({
218
+ accessLevel: "CurrentRead",
219
+ browseName: { name: "ValueAsText", namespaceIndex: 0 },
220
+ dataType: node_opcua_variant_1.DataType.LocalizedText,
221
+ minimumSamplingInterval: 0,
222
+ modellingRule: options.modellingRule ? "Mandatory" : undefined,
223
+ propertyOf: variable,
224
+ typeDefinition: "PropertyType",
225
+ userAccessLevel: "CurrentRead"
226
+ // value: valueAsText
227
+ });
228
+ // install additional helpers methods
229
+ variable.install_extra_properties();
230
+ promoteToMultiStateValueDiscrete(variable);
231
+ (0, node_opcua_assert_1.assert)(variable.enumValues.browseName.toString() === "EnumValues");
232
+ (0, node_opcua_assert_1.assert)(variable.valueAsText.browseName.toString() === "ValueAsText");
233
+ return variable;
234
+ }
235
+ exports._addMultiStateValueDiscrete = _addMultiStateValueDiscrete;
236
+ function validateDataType(dataTypeValue) {
237
+ const validTypes = [
238
+ node_opcua_variant_1.DataType.UInt64,
239
+ node_opcua_variant_1.DataType.Int64,
240
+ node_opcua_variant_1.DataType.UInt32,
241
+ node_opcua_variant_1.DataType.Int32,
242
+ node_opcua_variant_1.DataType.UInt16,
243
+ node_opcua_variant_1.DataType.Int16,
244
+ node_opcua_variant_1.DataType.Byte,
245
+ node_opcua_variant_1.DataType.Byte,
246
+ node_opcua_variant_1.DataType.SByte,
247
+ 26 /*Number*/
248
+ ];
249
+ if (typeof dataTypeValue !== "number" || validTypes.indexOf(dataTypeValue) < 0) {
250
+ throw new Error(`Invalid DataType in UAMultiStateValueDiscrete => ${dataTypeValue.toString()}`);
251
+ }
252
+ }
253
+ exports.validateDataType = validateDataType;
254
254
  //# sourceMappingURL=ua_multistate_value_discrete_impl.js.map
@@ -1,25 +1,25 @@
1
- import { LocalizedText, LocalizedTextLike, QualifiedNameLike } from "node-opcua-data-model";
2
- import { DataType } from "node-opcua-variant";
3
- import { INamespace, UAVariable, UAProperty, ISessionContext } from "node-opcua-address-space-base";
4
- import { DataValueT } from "node-opcua-data-value";
5
- import { NumericRange } from "node-opcua-numeric-range";
6
- import { UAVariableImpl } from "../ua_variable_impl";
7
- import { AddTwoStateDiscreteOptions } from "../../source/address_space_ts";
8
- import { UATwoStateDiscreteEx } from "../../source/interfaces/data_access/ua_two_state_discrete_ex";
9
- export interface UATwoStateDiscreteImpl {
10
- falseState: UAProperty<LocalizedText, /*c*/ DataType.LocalizedText>;
11
- trueState: UAProperty<LocalizedText, /*c*/ DataType.LocalizedText>;
12
- readValue(context?: ISessionContext | null, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValueT<boolean, DataType.Boolean>;
13
- readValueAsync(context: ISessionContext | null, callback?: any): any;
14
- }
15
- export declare class UATwoStateDiscreteImpl extends UAVariableImpl implements UATwoStateDiscreteEx {
16
- _post_initialize(): void;
17
- setValue(value: boolean | LocalizedTextLike): void;
18
- getValue(): boolean;
19
- getValueAsString(): string;
20
- getTrueStateAsString(): string;
21
- getFalseStateAsString(): string;
22
- clone(options1: any, optionalFilter: any, extraInfo: any): UAVariable;
23
- }
24
- export declare function promoteToTwoStateDiscrete(node: UAVariable): UATwoStateDiscreteEx;
25
- export declare function _addTwoStateDiscrete(namespace: INamespace, options: AddTwoStateDiscreteOptions): UATwoStateDiscreteEx;
1
+ import { LocalizedText, LocalizedTextLike, QualifiedNameLike } from "node-opcua-data-model";
2
+ import { DataType } from "node-opcua-variant";
3
+ import { INamespace, UAVariable, UAProperty, ISessionContext } from "node-opcua-address-space-base";
4
+ import { DataValueT } from "node-opcua-data-value";
5
+ import { NumericRange } from "node-opcua-numeric-range";
6
+ import { UAVariableImpl } from "../ua_variable_impl";
7
+ import { AddTwoStateDiscreteOptions } from "../../source/address_space_ts";
8
+ import { UATwoStateDiscreteEx } from "../../source/interfaces/data_access/ua_two_state_discrete_ex";
9
+ export interface UATwoStateDiscreteImpl {
10
+ falseState: UAProperty<LocalizedText, /*c*/ DataType.LocalizedText>;
11
+ trueState: UAProperty<LocalizedText, /*c*/ DataType.LocalizedText>;
12
+ readValue(context?: ISessionContext | null, indexRange?: NumericRange, dataEncoding?: QualifiedNameLike | null): DataValueT<boolean, DataType.Boolean>;
13
+ readValueAsync(context: ISessionContext | null, callback?: any): any;
14
+ }
15
+ export declare class UATwoStateDiscreteImpl extends UAVariableImpl implements UATwoStateDiscreteEx {
16
+ _post_initialize(): void;
17
+ setValue(value: boolean | LocalizedTextLike): void;
18
+ getValue(): boolean;
19
+ getValueAsString(): string;
20
+ getTrueStateAsString(): string;
21
+ getFalseStateAsString(): string;
22
+ clone(options1: any, optionalFilter: any, extraInfo: any): UAVariable;
23
+ }
24
+ export declare function promoteToTwoStateDiscrete(node: UAVariable): UATwoStateDiscreteEx;
25
+ export declare function _addTwoStateDiscrete(namespace: INamespace, options: AddTwoStateDiscreteOptions): UATwoStateDiscreteEx;