node-opcua-address-space 2.71.0 → 2.72.2

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 (408) hide show
  1. package/dist/source/address_space_ts.d.ts +118 -118
  2. package/dist/source/address_space_ts.js +17 -17
  3. package/dist/source/continuation_points/continuation_point_manager.d.ts +32 -32
  4. package/dist/source/continuation_points/continuation_point_manager.js +195 -195
  5. package/dist/source/helpers/adjust_browse_direction.d.ts +5 -5
  6. package/dist/source/helpers/adjust_browse_direction.js +11 -11
  7. package/dist/source/helpers/argument_list.d.ts +34 -34
  8. package/dist/source/helpers/argument_list.js +285 -285
  9. package/dist/source/helpers/call_helpers.d.ts +6 -6
  10. package/dist/source/helpers/call_helpers.js +70 -70
  11. package/dist/source/helpers/check_event_clause.d.ts +17 -17
  12. package/dist/source/helpers/check_event_clause.js +52 -52
  13. package/dist/source/helpers/coerce_enum_value.d.ts +6 -6
  14. package/dist/source/helpers/coerce_enum_value.js +33 -33
  15. package/dist/source/helpers/dump_tools.d.ts +14 -14
  16. package/dist/source/helpers/dump_tools.js +78 -78
  17. package/dist/source/helpers/ensure_secure_access.d.ts +9 -9
  18. package/dist/source/helpers/ensure_secure_access.js +76 -76
  19. package/dist/source/helpers/make_optionals_map.d.ts +21 -21
  20. package/dist/source/helpers/make_optionals_map.js +29 -29
  21. package/dist/source/helpers/multiform_func.d.ts +11 -11
  22. package/dist/source/helpers/multiform_func.js +73 -73
  23. package/dist/source/helpers/resolve_opaque_on_address_space.d.ts +3 -3
  24. package/dist/source/helpers/resolve_opaque_on_address_space.js +36 -36
  25. package/dist/source/index.d.ts +40 -40
  26. package/dist/source/index.js +66 -66
  27. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +12 -12
  28. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +2 -2
  29. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +21 -21
  30. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js +2 -2
  31. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +24 -24
  32. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js +2 -2
  33. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +12 -12
  34. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js +2 -2
  35. package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +8 -8
  36. package/dist/source/interfaces/data_access/ua_y_array_item_ex.js +2 -2
  37. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -12
  38. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +2 -2
  39. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -49
  40. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js +2 -2
  41. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -11
  42. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js +2 -2
  43. package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +222 -222
  44. package/dist/source/interfaces/state_machine/ua_state_machine_type.js +2 -2
  45. package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +6 -6
  46. package/dist/source/interfaces/state_machine/ua_transition_ex.js +2 -2
  47. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +8 -8
  48. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +2 -2
  49. package/dist/source/loader/decode_xml_extension_object.d.ts +6 -6
  50. package/dist/source/loader/decode_xml_extension_object.js +71 -71
  51. package/dist/source/loader/ensure_datatype_extracted.d.ts +5 -5
  52. package/dist/source/loader/ensure_datatype_extracted.js +45 -45
  53. package/dist/source/loader/generateAddressSpaceRaw.d.ts +10 -10
  54. package/dist/source/loader/generateAddressSpaceRaw.js +45 -45
  55. package/dist/source/loader/load_nodeset2.d.ts +16 -16
  56. package/dist/source/loader/load_nodeset2.js +1468 -1464
  57. package/dist/source/loader/load_nodeset2.js.map +1 -1
  58. package/dist/source/loader/make_semver_compatible.d.ts +6 -0
  59. package/dist/source/loader/make_semver_compatible.js +26 -0
  60. package/dist/source/loader/make_semver_compatible.js.map +1 -0
  61. package/dist/source/loader/make_xml_extension_object_parser.d.ts +28 -28
  62. package/dist/source/loader/make_xml_extension_object_parser.js +325 -315
  63. package/dist/source/loader/make_xml_extension_object_parser.js.map +1 -1
  64. package/dist/source/loader/namespace_post_step.d.ts +6 -6
  65. package/dist/source/loader/namespace_post_step.js +47 -47
  66. package/dist/source/loader/register_node_promoter.d.ts +3 -3
  67. package/dist/source/loader/register_node_promoter.js +9 -9
  68. package/dist/source/namespace.d.ts +6 -6
  69. package/dist/source/namespace.js +2 -2
  70. package/dist/source/namespace_alarm_and_condition.d.ts +24 -24
  71. package/dist/source/namespace_alarm_and_condition.js +2 -2
  72. package/dist/source/namespace_data_access.d.ts +42 -42
  73. package/dist/source/namespace_data_access.js +2 -2
  74. package/dist/source/namespace_machine_state.d.ts +7 -7
  75. package/dist/source/namespace_machine_state.js +2 -2
  76. package/dist/source/pseudo_session.d.ts +55 -55
  77. package/dist/source/pseudo_session.js +203 -203
  78. package/dist/source/session_context.d.ts +111 -111
  79. package/dist/source/session_context.js +265 -265
  80. package/dist/source/set_namespace_meta_data.d.ts +2 -2
  81. package/dist/source/set_namespace_meta_data.js +59 -59
  82. package/dist/source/ua_root_folder.d.ts +9 -9
  83. package/dist/source/ua_root_folder.js +2 -2
  84. package/dist/source/ua_two_state_variable_ex.d.ts +23 -23
  85. package/dist/source/ua_two_state_variable_ex.js +2 -2
  86. package/dist/source/xml_writer.d.ts +9 -9
  87. package/dist/source/xml_writer.js +2 -2
  88. package/dist/src/address_space.d.ts +392 -392
  89. package/dist/src/address_space.js +1387 -1387
  90. package/dist/src/address_space_change_event_tools.d.ts +6 -6
  91. package/dist/src/address_space_change_event_tools.js +149 -149
  92. package/dist/src/address_space_private.d.ts +43 -43
  93. package/dist/src/address_space_private.js +2 -2
  94. package/dist/src/alarms_and_conditions/check_where_clause.d.ts +4 -4
  95. package/dist/src/alarms_and_conditions/check_where_clause.js +109 -109
  96. package/dist/src/alarms_and_conditions/condition.d.ts +5 -5
  97. package/dist/src/alarms_and_conditions/condition.js +80 -80
  98. package/dist/src/alarms_and_conditions/condition_info.d.ts +27 -27
  99. package/dist/src/alarms_and_conditions/condition_info.js +54 -54
  100. package/dist/src/alarms_and_conditions/condition_snapshot.d.ts +233 -233
  101. package/dist/src/alarms_and_conditions/condition_snapshot.js +666 -666
  102. package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +21 -21
  103. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +46 -46
  104. package/dist/src/alarms_and_conditions/extract_event_fields.d.ts +10 -10
  105. package/dist/src/alarms_and_conditions/extract_event_fields.js +89 -89
  106. package/dist/src/alarms_and_conditions/index.d.ts +18 -18
  107. package/dist/src/alarms_and_conditions/index.js +34 -34
  108. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +64 -62
  109. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -244
  110. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js.map +1 -1
  111. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +124 -118
  112. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +416 -416
  113. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js.map +1 -1
  114. package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +29 -29
  115. package/dist/src/alarms_and_conditions/ua_base_event_impl.js +38 -38
  116. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +36 -21
  117. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +115 -25
  118. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js.map +1 -1
  119. package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +187 -182
  120. package/dist/src/alarms_and_conditions/ua_condition_impl.js +1024 -1022
  121. package/dist/src/alarms_and_conditions/ua_condition_impl.js.map +1 -1
  122. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +18 -17
  123. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +57 -57
  124. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js.map +1 -1
  125. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +30 -27
  126. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +56 -56
  127. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js.map +1 -1
  128. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +11 -9
  129. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +11 -11
  130. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js.map +1 -1
  131. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +40 -38
  132. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +86 -86
  133. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js.map +1 -1
  134. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +10 -10
  135. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +7 -7
  136. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +105 -97
  137. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +250 -250
  138. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js.map +1 -1
  139. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +29 -28
  140. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +50 -50
  141. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js.map +1 -1
  142. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +26 -25
  143. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +162 -162
  144. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js.map +1 -1
  145. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +48 -39
  146. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +161 -135
  147. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js.map +1 -1
  148. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +17 -16
  149. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +17 -17
  150. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js.map +1 -1
  151. package/dist/src/apply_condition_refresh.d.ts +6 -6
  152. package/dist/src/apply_condition_refresh.js +27 -27
  153. package/dist/src/base_node_impl.d.ts +281 -281
  154. package/dist/src/base_node_impl.js +1395 -1395
  155. package/dist/src/base_node_private.d.ts +61 -61
  156. package/dist/src/base_node_private.js +705 -705
  157. package/dist/src/data_access/add_dataItem_stuff.d.ts +11 -11
  158. package/dist/src/data_access/add_dataItem_stuff.js +61 -61
  159. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.d.ts +1 -1
  160. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js +34 -34
  161. package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +32 -32
  162. package/dist/src/data_access/ua_multistate_discrete_impl.js +130 -130
  163. package/dist/src/data_access/ua_multistate_value_discrete.d.ts +51 -51
  164. package/dist/src/data_access/ua_multistate_value_discrete.js +249 -249
  165. package/dist/src/data_access/ua_two_state_discrete.d.ts +25 -25
  166. package/dist/src/data_access/ua_two_state_discrete.js +153 -153
  167. package/dist/src/event_data.d.ts +29 -29
  168. package/dist/src/event_data.js +95 -95
  169. package/dist/src/extension_object_array_node.d.ts +61 -61
  170. package/dist/src/extension_object_array_node.js +276 -276
  171. package/dist/src/historical_access/address_space_historical_data_node.d.ts +26 -26
  172. package/dist/src/historical_access/address_space_historical_data_node.js +630 -630
  173. package/dist/src/index_current.d.ts +45 -45
  174. package/dist/src/index_current.js +77 -77
  175. package/dist/src/namespace_impl.d.ts +457 -457
  176. package/dist/src/namespace_impl.js +1733 -1733
  177. package/dist/src/namespace_private.d.ts +21 -21
  178. package/dist/src/namespace_private.js +32 -32
  179. package/dist/src/nodeid_manager.d.ts +36 -36
  180. package/dist/src/nodeid_manager.js +197 -197
  181. package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +2 -2
  182. package/dist/src/nodeset_tools/adjust_namespace_array.js +13 -13
  183. package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +2 -2
  184. package/dist/src/nodeset_tools/construct_namespace_dependency.js +83 -83
  185. package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +2 -2
  186. package/dist/src/nodeset_tools/nodeset_to_xml.js +1143 -1143
  187. package/dist/src/nodeset_tools/typedictionary_to_xml.d.ts +2 -2
  188. package/dist/src/nodeset_tools/typedictionary_to_xml.js +154 -154
  189. package/dist/src/reference_impl.d.ts +43 -43
  190. package/dist/src/reference_impl.js +139 -139
  191. package/dist/src/role_permissions.d.ts +2 -2
  192. package/dist/src/role_permissions.js +10 -10
  193. package/dist/src/state_machine/finite_state_machine.d.ts +67 -67
  194. package/dist/src/state_machine/finite_state_machine.js +353 -353
  195. package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +34 -34
  196. package/dist/src/state_machine/ua_shelving_state_machine_ex.js +250 -250
  197. package/dist/src/state_machine/ua_two_state_variable.d.ts +61 -61
  198. package/dist/src/state_machine/ua_two_state_variable.js +331 -331
  199. package/dist/src/tool_isSupertypeOf.d.ts +17 -17
  200. package/dist/src/tool_isSupertypeOf.js +108 -108
  201. package/dist/src/ua_condition_type.d.ts +8 -8
  202. package/dist/src/ua_condition_type.js +2 -2
  203. package/dist/src/ua_data_type_impl.d.ts +93 -93
  204. package/dist/src/ua_data_type_impl.js +368 -368
  205. package/dist/src/ua_method_impl.d.ts +41 -41
  206. package/dist/src/ua_method_impl.js +208 -208
  207. package/dist/src/ua_object_impl.d.ts +35 -33
  208. package/dist/src/ua_object_impl.js +162 -156
  209. package/dist/src/ua_object_impl.js.map +1 -1
  210. package/dist/src/ua_object_type_impl.d.ts +48 -48
  211. package/dist/src/ua_object_type_impl.js +124 -124
  212. package/dist/src/ua_reference_type_impl.d.ts +43 -43
  213. package/dist/src/ua_reference_type_impl.js +139 -139
  214. package/dist/src/ua_variable_impl.d.ts +351 -351
  215. package/dist/src/ua_variable_impl.js +1604 -1604
  216. package/dist/src/ua_variable_impl_ext_obj.d.ts +17 -17
  217. package/dist/src/ua_variable_impl_ext_obj.js +437 -437
  218. package/dist/src/ua_variable_type_impl.d.ts +62 -62
  219. package/dist/src/ua_variable_type_impl.js +570 -570
  220. package/dist/src/ua_view_impl.d.ts +19 -15
  221. package/dist/src/ua_view_impl.js +43 -36
  222. package/dist/src/ua_view_impl.js.map +1 -1
  223. package/distHelpers/add_event_generator_object.d.ts +3 -3
  224. package/distHelpers/add_event_generator_object.js +65 -65
  225. package/distHelpers/alarms_and_conditions_demo.d.ts +10 -10
  226. package/distHelpers/alarms_and_conditions_demo.js +114 -114
  227. package/distHelpers/assertHasMatchingReference.d.ts +19 -19
  228. package/distHelpers/assertHasMatchingReference.js +40 -40
  229. package/distHelpers/boiler_system.d.ts +113 -113
  230. package/distHelpers/boiler_system.js +395 -395
  231. package/distHelpers/create_minimalist_address_space_nodeset.d.ts +5 -5
  232. package/distHelpers/create_minimalist_address_space_nodeset.js +171 -171
  233. package/distHelpers/date_utils.d.ts +3 -3
  234. package/distHelpers/date_utils.js +9 -9
  235. package/distHelpers/dump_statemachine.js +127 -127
  236. package/distHelpers/get_address_space_fixture.d.ts +1 -1
  237. package/distHelpers/get_address_space_fixture.js +30 -30
  238. package/distHelpers/get_mini_address_space.d.ts +7 -7
  239. package/distHelpers/get_mini_address_space.js +36 -36
  240. package/distHelpers/index.d.ts +12 -12
  241. package/distHelpers/index.js +28 -28
  242. package/distHelpers/mock_session.d.ts +14 -14
  243. package/distHelpers/mock_session.js +25 -25
  244. package/distNodeJS/generate_address_space.d.ts +4 -4
  245. package/distNodeJS/generate_address_space.js +41 -41
  246. package/distNodeJS/index.d.ts +1 -1
  247. package/distNodeJS/index.js +17 -17
  248. package/package.json +23 -23
  249. package/source/loader/load_nodeset2.ts +21 -17
  250. package/source/loader/make_semver_compatible.ts +23 -0
  251. package/source/loader/make_xml_extension_object_parser.ts +16 -6
  252. package/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.ts +13 -6
  253. package/src/alarms_and_conditions/ua_alarm_condition_impl.ts +15 -10
  254. package/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.ts +126 -10
  255. package/src/alarms_and_conditions/ua_condition_impl.ts +26 -13
  256. package/src/alarms_and_conditions/ua_discrete_alarm_impl.ts +10 -4
  257. package/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.ts +7 -6
  258. package/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.ts +5 -3
  259. package/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.ts +7 -6
  260. package/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.ts +1 -1
  261. package/src/alarms_and_conditions/ua_limit_alarm_impl.ts +23 -13
  262. package/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.ts +6 -7
  263. package/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.ts +6 -7
  264. package/src/alarms_and_conditions/ua_off_normal_alarm_impl.ts +62 -30
  265. package/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.ts +5 -5
  266. package/src/ua_object_impl.ts +11 -3
  267. package/src/ua_view_impl.ts +6 -4
  268. package/test_helpers/test_fixtures/dataType_issue.xml +9 -9
  269. package/test_helpers/test_fixtures/nodeset_with_guid.xml +1442 -0
  270. package/test_helpers/test_fixtures/nodeset_with_int64_values.xml +31 -0
  271. package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.d.ts +0 -23
  272. package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.js +0 -3
  273. package/dist/source/interfaces/alarms_and_conditions/ua_condition_base_i.js.map +0 -1
  274. package/dist/source/interfaces/data_access/ua_discrete_item.d.ts +0 -6
  275. package/dist/source/interfaces/data_access/ua_discrete_item.js +0 -3
  276. package/dist/source/interfaces/data_access/ua_discrete_item.js.map +0 -1
  277. package/dist/source/interfaces/data_access/ua_multistate_discrete.d.ts +0 -25
  278. package/dist/source/interfaces/data_access/ua_multistate_discrete.js +0 -3
  279. package/dist/source/interfaces/data_access/ua_multistate_discrete.js.map +0 -1
  280. package/dist/source/interfaces/data_access/ua_multistate_value_discrete.d.ts +0 -27
  281. package/dist/source/interfaces/data_access/ua_multistate_value_discrete.js +0 -3
  282. package/dist/source/interfaces/data_access/ua_multistate_value_discrete.js.map +0 -1
  283. package/dist/source/interfaces/data_access/ua_two_state_discrete.d.ts +0 -17
  284. package/dist/source/interfaces/data_access/ua_two_state_discrete.js +0 -3
  285. package/dist/source/interfaces/data_access/ua_two_state_discrete.js.map +0 -1
  286. package/dist/source/interfaces/data_access/ua_y_array_item.d.ts +0 -19
  287. package/dist/source/interfaces/data_access/ua_y_array_item.js +0 -3
  288. package/dist/source/interfaces/data_access/ua_y_array_item.js.map +0 -1
  289. package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.d.ts +0 -11
  290. package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.js +0 -3
  291. package/dist/source/interfaces/state_machine/exclusive_limit_state_machine.js.map +0 -1
  292. package/dist/source/interfaces/state_machine/finite_state_machine.d.ts +0 -70
  293. package/dist/source/interfaces/state_machine/finite_state_machine.js +0 -3
  294. package/dist/source/interfaces/state_machine/finite_state_machine.js.map +0 -1
  295. package/dist/source/interfaces/state_machine/program_finite_state_machine.d.ts +0 -74
  296. package/dist/source/interfaces/state_machine/program_finite_state_machine.js +0 -3
  297. package/dist/source/interfaces/state_machine/program_finite_state_machine.js.map +0 -1
  298. package/dist/source/interfaces/state_machine/state_machine.d.ts +0 -342
  299. package/dist/source/interfaces/state_machine/state_machine.js +0 -3
  300. package/dist/source/interfaces/state_machine/state_machine.js.map +0 -1
  301. package/dist/source/interfaces/state_machine/ua_finite_state_variable.d.ts +0 -18
  302. package/dist/source/interfaces/state_machine/ua_finite_state_variable.js +0 -3
  303. package/dist/source/interfaces/state_machine/ua_finite_state_variable.js.map +0 -1
  304. package/dist/source/interfaces/state_machine/ua_state_variable.d.ts +0 -29
  305. package/dist/source/interfaces/state_machine/ua_state_variable.js +0 -3
  306. package/dist/source/interfaces/state_machine/ua_state_variable.js.map +0 -1
  307. package/dist/source/interfaces/state_machine/ua_two_state_variable.d.ts +0 -26
  308. package/dist/source/interfaces/state_machine/ua_two_state_variable.js +0 -3
  309. package/dist/source/interfaces/state_machine/ua_two_state_variable.js.map +0 -1
  310. package/dist/source/interfaces/subscription_diagnostics_variable.d.ts +0 -41
  311. package/dist/source/interfaces/subscription_diagnostics_variable.js +0 -3
  312. package/dist/source/interfaces/subscription_diagnostics_variable.js.map +0 -1
  313. package/dist/src/alarms_and_conditions/base_event_type.d.ts +0 -26
  314. package/dist/src/alarms_and_conditions/base_event_type.js +0 -41
  315. package/dist/src/alarms_and_conditions/base_event_type.js.map +0 -1
  316. package/dist/src/alarms_and_conditions/shelving_state_machine.d.ts +0 -22
  317. package/dist/src/alarms_and_conditions/shelving_state_machine.js +0 -241
  318. package/dist/src/alarms_and_conditions/shelving_state_machine.js.map +0 -1
  319. package/dist/src/alarms_and_conditions/trip_alarm.d.ts +0 -16
  320. package/dist/src/alarms_and_conditions/trip_alarm.js +0 -21
  321. package/dist/src/alarms_and_conditions/trip_alarm.js.map +0 -1
  322. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.d.ts +0 -54
  323. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.js +0 -255
  324. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_base.js.map +0 -1
  325. package/dist/src/alarms_and_conditions/ua_alarm_condition_base.d.ts +0 -138
  326. package/dist/src/alarms_and_conditions/ua_alarm_condition_base.js +0 -460
  327. package/dist/src/alarms_and_conditions/ua_alarm_condition_base.js.map +0 -1
  328. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.d.ts +0 -35
  329. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.js +0 -32
  330. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm.js.map +0 -1
  331. package/dist/src/alarms_and_conditions/ua_condition_base.d.ts +0 -191
  332. package/dist/src/alarms_and_conditions/ua_condition_base.js +0 -1029
  333. package/dist/src/alarms_and_conditions/ua_condition_base.js.map +0 -1
  334. package/dist/src/alarms_and_conditions/ua_discrete_alarm.d.ts +0 -11
  335. package/dist/src/alarms_and_conditions/ua_discrete_alarm.js +0 -58
  336. package/dist/src/alarms_and_conditions/ua_discrete_alarm.js.map +0 -1
  337. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.d.ts +0 -24
  338. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.js +0 -59
  339. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm.js.map +0 -1
  340. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.d.ts +0 -14
  341. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.js +0 -17
  342. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm.js.map +0 -1
  343. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.d.ts +0 -22
  344. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.js +0 -87
  345. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm.js.map +0 -1
  346. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.d.ts +0 -6
  347. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.js +0 -11
  348. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm.js.map +0 -1
  349. package/dist/src/alarms_and_conditions/ua_limit_alarm.d.ts +0 -76
  350. package/dist/src/alarms_and_conditions/ua_limit_alarm.js +0 -237
  351. package/dist/src/alarms_and_conditions/ua_limit_alarm.js.map +0 -1
  352. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.d.ts +0 -27
  353. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.js +0 -62
  354. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm.js.map +0 -1
  355. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.d.ts +0 -49
  356. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.js +0 -176
  357. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm.js.map +0 -1
  358. package/dist/src/alarms_and_conditions/ua_off_normal_alarm.d.ts +0 -47
  359. package/dist/src/alarms_and_conditions/ua_off_normal_alarm.js +0 -151
  360. package/dist/src/alarms_and_conditions/ua_off_normal_alarm.js.map +0 -1
  361. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.d.ts +0 -16
  362. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.js +0 -18
  363. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm.js.map +0 -1
  364. package/dist/src/base_node.d.ts +0 -270
  365. package/dist/src/base_node.js +0 -1299
  366. package/dist/src/base_node.js.map +0 -1
  367. package/dist/src/data_access/ua_analog_item.d.ts +0 -13
  368. package/dist/src/data_access/ua_analog_item.js +0 -37
  369. package/dist/src/data_access/ua_analog_item.js.map +0 -1
  370. package/dist/src/data_access/ua_data_item.d.ts +0 -16
  371. package/dist/src/data_access/ua_data_item.js +0 -66
  372. package/dist/src/data_access/ua_data_item.js.map +0 -1
  373. package/dist/src/data_access/ua_multistate_discrete.d.ts +0 -24
  374. package/dist/src/data_access/ua_multistate_discrete.js +0 -132
  375. package/dist/src/data_access/ua_multistate_discrete.js.map +0 -1
  376. package/dist/src/namespace.d.ts +0 -472
  377. package/dist/src/namespace.js +0 -1759
  378. package/dist/src/namespace.js.map +0 -1
  379. package/dist/src/reference.d.ts +0 -43
  380. package/dist/src/reference.js +0 -138
  381. package/dist/src/reference.js.map +0 -1
  382. package/dist/src/session_context.d.ts +0 -4
  383. package/dist/src/session_context.js +0 -9
  384. package/dist/src/session_context.js.map +0 -1
  385. package/dist/src/ua_data_type.d.ts +0 -81
  386. package/dist/src/ua_data_type.js +0 -259
  387. package/dist/src/ua_data_type.js.map +0 -1
  388. package/dist/src/ua_method.d.ts +0 -33
  389. package/dist/src/ua_method.js +0 -194
  390. package/dist/src/ua_method.js.map +0 -1
  391. package/dist/src/ua_object.d.ts +0 -27
  392. package/dist/src/ua_object.js +0 -153
  393. package/dist/src/ua_object.js.map +0 -1
  394. package/dist/src/ua_object_type.d.ts +0 -49
  395. package/dist/src/ua_object_type.js +0 -123
  396. package/dist/src/ua_object_type.js.map +0 -1
  397. package/dist/src/ua_reference_type.d.ts +0 -31
  398. package/dist/src/ua_reference_type.js +0 -108
  399. package/dist/src/ua_reference_type.js.map +0 -1
  400. package/dist/src/ua_variable.d.ts +0 -346
  401. package/dist/src/ua_variable.js +0 -1651
  402. package/dist/src/ua_variable.js.map +0 -1
  403. package/dist/src/ua_variable_type.d.ts +0 -57
  404. package/dist/src/ua_variable_type.js +0 -530
  405. package/dist/src/ua_variable_type.js.map +0 -1
  406. package/dist/src/ua_view.d.ts +0 -16
  407. package/dist/src/ua_view.js +0 -41
  408. package/dist/src/ua_view.js.map +0 -1
@@ -1,369 +1,369 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DataType_toString = exports.UADataTypeImpl = void 0;
4
- /**
5
- * @module node-opcua-address-space
6
- */
7
- const chalk = require("chalk");
8
- const node_opcua_assert_1 = require("node-opcua-assert");
9
- const node_opcua_data_model_1 = require("node-opcua-data-model");
10
- const node_opcua_data_model_2 = require("node-opcua-data-model");
11
- const node_opcua_data_value_1 = require("node-opcua-data-value");
12
- const node_opcua_nodeid_1 = require("node-opcua-nodeid");
13
- const node_opcua_numeric_range_1 = require("node-opcua-numeric-range");
14
- const node_opcua_status_code_1 = require("node-opcua-status-code");
15
- const node_opcua_types_1 = require("node-opcua-types");
16
- const node_opcua_variant_1 = require("node-opcua-variant");
17
- const node_opcua_constants_1 = require("node-opcua-constants");
18
- const session_context_1 = require("../source/session_context");
19
- const base_node_impl_1 = require("./base_node_impl");
20
- const base_node_private_1 = require("./base_node_private");
21
- const tools = require("./tool_isSupertypeOf");
22
- const tool_isSupertypeOf_1 = require("./tool_isSupertypeOf");
23
- const tool_isSupertypeOf_2 = require("./tool_isSupertypeOf");
24
- const base_node_private_2 = require("./base_node_private");
25
- class UADataTypeImpl extends base_node_impl_1.BaseNodeImpl {
26
- constructor(options) {
27
- super(options);
28
- this.nodeClass = node_opcua_data_model_1.NodeClass.DataType;
29
- this.definitionName = "";
30
- this.isSupertypeOf = tools.construct_isSupertypeOf(UADataTypeImpl);
31
- if (options.partialDefinition) {
32
- this.$partialDefinition = options.partialDefinition;
33
- }
34
- this.isAbstract = options.isAbstract === undefined || options.isAbstract === null ? false : options.isAbstract;
35
- this.symbolicName = options.symbolicName || this.browseName.name;
36
- }
37
- /**
38
- * returns true if this is a super type of baseType
39
- *
40
- * @example
41
- *
42
- * var dataTypeDouble = addressSpace.findDataType("Double");
43
- * var dataTypeNumber = addressSpace.findDataType("Number");
44
- * assert(dataTypeDouble.isSupertypeOf(dataTypeNumber));
45
- * assert(!dataTypeNumber.isSupertypeOf(dataTypeDouble));
46
- *
47
- */
48
- get subtypeOf() {
49
- return tool_isSupertypeOf_1.get_subtypeOf.call(this);
50
- }
51
- get subtypeOfObj() {
52
- return tool_isSupertypeOf_2.get_subtypeOfObj.call(this);
53
- }
54
- get basicDataType() {
55
- return this.getBasicDataType();
56
- }
57
- getBasicDataType() {
58
- return this.addressSpace.findCorrespondingBasicDataType(this);
59
- }
60
- readAttribute(context, attributeId, indexRange, dataEncoding) {
61
- var _a;
62
- (0, node_opcua_assert_1.assert)(!context || context instanceof session_context_1.SessionContext);
63
- const options = {};
64
- switch (attributeId) {
65
- case node_opcua_data_model_2.AttributeIds.IsAbstract:
66
- options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
67
- options.value = { dataType: node_opcua_variant_1.DataType.Boolean, value: !!this.isAbstract };
68
- break;
69
- case node_opcua_data_model_2.AttributeIds.DataTypeDefinition:
70
- {
71
- const _definition = (_a = this._getDefinition()) === null || _a === void 0 ? void 0 : _a.clone();
72
- if (_definition !== null) {
73
- options.value = { dataType: node_opcua_variant_1.DataType.ExtensionObject, value: _definition };
74
- }
75
- else {
76
- options.statusCode = node_opcua_status_code_1.StatusCodes.BadAttributeIdInvalid;
77
- }
78
- }
79
- break;
80
- default:
81
- return super.readAttribute(context, attributeId, indexRange, dataEncoding);
82
- }
83
- return new node_opcua_data_value_1.DataValue(options);
84
- }
85
- getEncodingDefinition(encoding_name) {
86
- const encodingNode = this.getEncodingNode(encoding_name);
87
- if (!encodingNode) {
88
- throw new Error("Cannot find Encoding for " + encoding_name);
89
- }
90
- const indexRange = new node_opcua_numeric_range_1.NumericRange();
91
- const descriptionNodeRef = encodingNode.findReferences("HasDescription")[0];
92
- const descriptionNode = this.addressSpace.findNode(descriptionNodeRef.nodeId);
93
- if (!descriptionNode) {
94
- return null;
95
- }
96
- const dataValue = descriptionNode.readValue(session_context_1.SessionContext.defaultContext, indexRange);
97
- return dataValue.value.value.toString() || null;
98
- }
99
- getEncodingNode(encoding_name) {
100
- const _cache = (0, base_node_private_2.BaseNode_getCache)(this);
101
- const key = encoding_name + "Node";
102
- if (_cache[key] === undefined) {
103
- (0, node_opcua_assert_1.assert)(encoding_name === "Default Binary" || encoding_name === "Default XML" || encoding_name === "Default JSON");
104
- // could be binary or xml
105
- const refs = this.findReferences("HasEncoding", true);
106
- const addressSpace = this.addressSpace;
107
- const encoding = refs
108
- .map((ref) => addressSpace.findNode(ref.nodeId))
109
- .filter((obj) => obj !== null)
110
- .filter((obj) => obj.browseName.toString() === encoding_name);
111
- const node = encoding.length === 0 ? null : encoding[0];
112
- _cache[key] = node;
113
- }
114
- return _cache[key];
115
- }
116
- getEncodingNodeId(encoding_name) {
117
- const _cache = (0, base_node_private_2.BaseNode_getCache)(this);
118
- const key = encoding_name + "NodeId";
119
- if (_cache[key] === undefined) {
120
- const encoding = this.getEncodingNode(encoding_name);
121
- if (encoding) {
122
- const namespaceUri = this.addressSpace.getNamespaceUri(encoding.nodeId.namespace);
123
- _cache[key] = node_opcua_nodeid_1.ExpandedNodeId.fromNodeId(encoding.nodeId, namespaceUri);
124
- }
125
- else {
126
- _cache[key] = null;
127
- }
128
- }
129
- return _cache[key];
130
- }
131
- /**
132
- * returns the encoding of this node's
133
- * TODO objects have 2 encodings : XML and Binaries
134
- */
135
- get binaryEncoding() {
136
- return this.getEncodingNode("Default Binary");
137
- }
138
- get binaryEncodingDefinition() {
139
- return this.getEncodingDefinition("Default Binary");
140
- }
141
- get binaryEncodingNodeId() {
142
- return this.getEncodingNodeId("Default Binary");
143
- }
144
- get xmlEncoding() {
145
- return this.getEncodingNode("Default XML");
146
- }
147
- get xmlEncodingNodeId() {
148
- return this.getEncodingNodeId("Default XML");
149
- }
150
- get xmlEncodingDefinition() {
151
- return this.getEncodingDefinition("Default XML");
152
- }
153
- get jsonEncoding() {
154
- return this.getEncodingNode("Default JSON");
155
- }
156
- get jsonEncodingNodeId() {
157
- return this.getEncodingNodeId("Default JSON");
158
- }
159
- // public get jsonEncodingDefinition(): string | null {
160
- // return this.getEncodingDefinition("Default JSON");
161
- // }
162
- _getEnumerationInfo() {
163
- let definition = [];
164
- if (this.enumStrings) {
165
- const enumStrings = this.enumStrings.readValue().value.value;
166
- (0, node_opcua_assert_1.assert)(Array.isArray(enumStrings));
167
- definition = enumStrings.map((e, index) => {
168
- return {
169
- name: e.text,
170
- value: index
171
- };
172
- });
173
- }
174
- else if (this.enumValues) {
175
- (0, node_opcua_assert_1.assert)(this.enumValues, "must have a enumValues property");
176
- const enumValues = this.enumValues.readValue().value.value;
177
- (0, node_opcua_assert_1.assert)(Array.isArray(enumValues));
178
- definition = enumValues.map((e) => {
179
- return {
180
- name: e.displayName.text,
181
- value: e.value[1]
182
- };
183
- });
184
- }
185
- // construct nameIndex and valueIndex
186
- const indexes = {
187
- nameIndex: {},
188
- valueIndex: {}
189
- };
190
- for (const e of definition) {
191
- indexes.nameIndex[e.name] = e;
192
- indexes.valueIndex[e.value] = e;
193
- }
194
- return indexes;
195
- }
196
- isStructure() {
197
- const definition = this._getDefinition();
198
- return !!definition && definition instanceof node_opcua_types_1.StructureDefinition;
199
- }
200
- getStructureDefinition() {
201
- const definition = this._getDefinition();
202
- (0, node_opcua_assert_1.assert)(definition instanceof node_opcua_types_1.StructureDefinition);
203
- return definition;
204
- }
205
- isEnumeration() {
206
- const definition = this._getDefinition();
207
- return !!definition && definition instanceof node_opcua_types_1.EnumDefinition;
208
- }
209
- getEnumDefinition() {
210
- const definition = this._getDefinition();
211
- (0, node_opcua_assert_1.assert)(definition instanceof node_opcua_types_1.EnumDefinition);
212
- return definition;
213
- }
214
- // eslint-disable-next-line complexity
215
- _getDefinition() {
216
- var _a;
217
- if (this.$fullDefinition !== undefined) {
218
- return this.$fullDefinition;
219
- }
220
- const addressSpace = this.addressSpace;
221
- const enumeration = addressSpace.findDataType("Enumeration");
222
- const structure = addressSpace.findDataType("Structure");
223
- const union = addressSpace.findDataType("Union");
224
- // we have a data type from a companion specification
225
- // let's see if this data type need to be registered
226
- const isEnumeration = enumeration && this.isSupertypeOf(enumeration);
227
- const isStructure = structure && this.isSupertypeOf(structure);
228
- const isUnion = !!(structure && union && this.isSupertypeOf(union));
229
- const isRootDataType = (n) => n.nodeId.namespace === 0 && n.nodeId.value === node_opcua_constants_1.DataTypeIds.BaseDataType;
230
- // https://reference.opcfoundation.org/v104/Core/docs/Part3/8.49/#Table34
231
- if (isStructure) {
232
- // eslint-disable-next-line @typescript-eslint/no-this-alias
233
- let dataTypeNode = this;
234
- const allPartialDefinitions = [];
235
- while (dataTypeNode && !isRootDataType(dataTypeNode)) {
236
- if (dataTypeNode.$partialDefinition) {
237
- allPartialDefinitions.push(dataTypeNode.$partialDefinition);
238
- }
239
- dataTypeNode = dataTypeNode.subtypeOfObj;
240
- }
241
- // merge them:
242
- const definitionFields = [];
243
- for (const dd of allPartialDefinitions.reverse()) {
244
- definitionFields.push(...dd);
245
- }
246
- const basicDataType = ((_a = this.subtypeOfObj) === null || _a === void 0 ? void 0 : _a.nodeId) || new node_opcua_nodeid_1.NodeId();
247
- const defaultEncodingId = this.binaryEncodingNodeId || this.xmlEncodingNodeId || new node_opcua_nodeid_1.NodeId();
248
- const definitionName = this.browseName.name;
249
- this.$fullDefinition = makeStructureDefinition(definitionName, basicDataType, defaultEncodingId, definitionFields, isUnion);
250
- }
251
- else if (isEnumeration) {
252
- const allPartialDefinitions = [];
253
- // eslint-disable-next-line @typescript-eslint/no-this-alias
254
- let dataTypeNode = this;
255
- while (dataTypeNode && !isRootDataType(dataTypeNode)) {
256
- if (dataTypeNode.$partialDefinition) {
257
- allPartialDefinitions.push(dataTypeNode.$partialDefinition);
258
- }
259
- dataTypeNode = dataTypeNode.subtypeOfObj;
260
- }
261
- // merge them:
262
- const definitionFields = [];
263
- for (const dd of allPartialDefinitions.reverse()) {
264
- definitionFields.push(...dd);
265
- }
266
- this.$fullDefinition = makeEnumDefinition(definitionFields);
267
- }
268
- return this.$fullDefinition;
269
- }
270
- getDefinition() {
271
- const d = this._getDefinition();
272
- if (!d) {
273
- throw new Error("DataType has no definition property");
274
- }
275
- return d;
276
- }
277
- install_extra_properties() {
278
- //
279
- }
280
- toString() {
281
- const options = new base_node_private_1.ToStringBuilder();
282
- DataType_toString.call(this, options);
283
- return options.toString();
284
- }
285
- }
286
- exports.UADataTypeImpl = UADataTypeImpl;
287
- function dataTypeDefinition_toString(options) {
288
- const definition = this._getDefinition();
289
- if (!definition) {
290
- return;
291
- }
292
- const output = definition.toString();
293
- options.add(options.padding + chalk.yellow(" Definition : "));
294
- for (const str of output.split("\n")) {
295
- options.add(options.padding + chalk.yellow(" : " + str));
296
- }
297
- }
298
- function DataType_toString(options) {
299
- base_node_private_1.BaseNode_toString.call(this, options);
300
- options.add(options.padding + chalk.yellow(" isAbstract : " + this.isAbstract));
301
- options.add(options.padding + chalk.yellow(" definitionName : " + this.definitionName));
302
- options.add(options.padding +
303
- chalk.yellow(" binaryEncodingNodeId: ") +
304
- (this.binaryEncodingNodeId ? this.binaryEncodingNodeId.toString() : "<none>"));
305
- options.add(options.padding +
306
- chalk.yellow(" xmlEncodingNodeId : ") +
307
- (this.xmlEncodingNodeId ? this.xmlEncodingNodeId.toString() : "<none>"));
308
- if (this.subtypeOfObj) {
309
- options.add(options.padding +
310
- chalk.yellow(" subtypeOfObj : ") +
311
- (this.subtypeOfObj ? this.subtypeOfObj.browseName.toString() : ""));
312
- }
313
- // references
314
- base_node_private_1.BaseNode_References_toString.call(this, options);
315
- dataTypeDefinition_toString.call(this, options);
316
- }
317
- exports.DataType_toString = DataType_toString;
318
- function makeEnumDefinition(definitionFields) {
319
- return new node_opcua_types_1.EnumDefinition({
320
- fields: definitionFields.map((x) => ({
321
- description: x.description,
322
- name: x.name,
323
- value: x.value
324
- }))
325
- });
326
- }
327
- function makeStructureDefinition(name, baseDataType, defaultEncodingId, fields, isUnion) {
328
- // Structure = 0,
329
- // StructureWithOptionalFields = 1,
330
- // Union = 2,
331
- const hasOptionalFields = fields.filter((field) => field.isOptional).length > 0;
332
- const structureType = isUnion
333
- ? node_opcua_types_1.StructureType.Union
334
- : hasOptionalFields
335
- ? node_opcua_types_1.StructureType.StructureWithOptionalFields
336
- : node_opcua_types_1.StructureType.Structure;
337
- const sd = new node_opcua_types_1.StructureDefinition({
338
- baseDataType,
339
- defaultEncodingId,
340
- fields,
341
- structureType
342
- });
343
- return sd;
344
- }
345
- /*
346
- function lockReadOnlyWithWriteDetection<T>(obj: T): T {
347
- if (obj instanceof Array) {
348
- return obj.map(lockReadOnlyWithWriteDetection) as unknown as T;
349
- }
350
- if (obj instanceof Object) {
351
- const _org = obj;
352
- for (const [key, value] of Object.entries(obj)) {
353
- lockReadOnlyWithWriteDetection(value);
354
- }
355
- obj = new Proxy(obj, {
356
- get: (target: any, prop: string) => {
357
- return target[prop];
358
- },
359
- set: (target: any, prop: string | symbol, value: any, receiver: any) => {
360
- console.log("QQQQQ Cannot modify stuff ");
361
- debugger;
362
- throw new Error("Invalid");
363
- }
364
- });
365
- }
366
- return obj;
367
- }
368
- */
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DataType_toString = exports.UADataTypeImpl = void 0;
4
+ /**
5
+ * @module node-opcua-address-space
6
+ */
7
+ const chalk = require("chalk");
8
+ const node_opcua_assert_1 = require("node-opcua-assert");
9
+ const node_opcua_data_model_1 = require("node-opcua-data-model");
10
+ const node_opcua_data_model_2 = require("node-opcua-data-model");
11
+ const node_opcua_data_value_1 = require("node-opcua-data-value");
12
+ const node_opcua_nodeid_1 = require("node-opcua-nodeid");
13
+ const node_opcua_numeric_range_1 = require("node-opcua-numeric-range");
14
+ const node_opcua_status_code_1 = require("node-opcua-status-code");
15
+ const node_opcua_types_1 = require("node-opcua-types");
16
+ const node_opcua_variant_1 = require("node-opcua-variant");
17
+ const node_opcua_constants_1 = require("node-opcua-constants");
18
+ const session_context_1 = require("../source/session_context");
19
+ const base_node_impl_1 = require("./base_node_impl");
20
+ const base_node_private_1 = require("./base_node_private");
21
+ const tools = require("./tool_isSupertypeOf");
22
+ const tool_isSupertypeOf_1 = require("./tool_isSupertypeOf");
23
+ const tool_isSupertypeOf_2 = require("./tool_isSupertypeOf");
24
+ const base_node_private_2 = require("./base_node_private");
25
+ class UADataTypeImpl extends base_node_impl_1.BaseNodeImpl {
26
+ constructor(options) {
27
+ super(options);
28
+ this.nodeClass = node_opcua_data_model_1.NodeClass.DataType;
29
+ this.definitionName = "";
30
+ this.isSupertypeOf = tools.construct_isSupertypeOf(UADataTypeImpl);
31
+ if (options.partialDefinition) {
32
+ this.$partialDefinition = options.partialDefinition;
33
+ }
34
+ this.isAbstract = options.isAbstract === undefined || options.isAbstract === null ? false : options.isAbstract;
35
+ this.symbolicName = options.symbolicName || this.browseName.name;
36
+ }
37
+ /**
38
+ * returns true if this is a super type of baseType
39
+ *
40
+ * @example
41
+ *
42
+ * var dataTypeDouble = addressSpace.findDataType("Double");
43
+ * var dataTypeNumber = addressSpace.findDataType("Number");
44
+ * assert(dataTypeDouble.isSupertypeOf(dataTypeNumber));
45
+ * assert(!dataTypeNumber.isSupertypeOf(dataTypeDouble));
46
+ *
47
+ */
48
+ get subtypeOf() {
49
+ return tool_isSupertypeOf_1.get_subtypeOf.call(this);
50
+ }
51
+ get subtypeOfObj() {
52
+ return tool_isSupertypeOf_2.get_subtypeOfObj.call(this);
53
+ }
54
+ get basicDataType() {
55
+ return this.getBasicDataType();
56
+ }
57
+ getBasicDataType() {
58
+ return this.addressSpace.findCorrespondingBasicDataType(this);
59
+ }
60
+ readAttribute(context, attributeId, indexRange, dataEncoding) {
61
+ var _a;
62
+ (0, node_opcua_assert_1.assert)(!context || context instanceof session_context_1.SessionContext);
63
+ const options = {};
64
+ switch (attributeId) {
65
+ case node_opcua_data_model_2.AttributeIds.IsAbstract:
66
+ options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
67
+ options.value = { dataType: node_opcua_variant_1.DataType.Boolean, value: !!this.isAbstract };
68
+ break;
69
+ case node_opcua_data_model_2.AttributeIds.DataTypeDefinition:
70
+ {
71
+ const _definition = (_a = this._getDefinition()) === null || _a === void 0 ? void 0 : _a.clone();
72
+ if (_definition !== null) {
73
+ options.value = { dataType: node_opcua_variant_1.DataType.ExtensionObject, value: _definition };
74
+ }
75
+ else {
76
+ options.statusCode = node_opcua_status_code_1.StatusCodes.BadAttributeIdInvalid;
77
+ }
78
+ }
79
+ break;
80
+ default:
81
+ return super.readAttribute(context, attributeId, indexRange, dataEncoding);
82
+ }
83
+ return new node_opcua_data_value_1.DataValue(options);
84
+ }
85
+ getEncodingDefinition(encoding_name) {
86
+ const encodingNode = this.getEncodingNode(encoding_name);
87
+ if (!encodingNode) {
88
+ throw new Error("Cannot find Encoding for " + encoding_name);
89
+ }
90
+ const indexRange = new node_opcua_numeric_range_1.NumericRange();
91
+ const descriptionNodeRef = encodingNode.findReferences("HasDescription")[0];
92
+ const descriptionNode = this.addressSpace.findNode(descriptionNodeRef.nodeId);
93
+ if (!descriptionNode) {
94
+ return null;
95
+ }
96
+ const dataValue = descriptionNode.readValue(session_context_1.SessionContext.defaultContext, indexRange);
97
+ return dataValue.value.value.toString() || null;
98
+ }
99
+ getEncodingNode(encoding_name) {
100
+ const _cache = (0, base_node_private_2.BaseNode_getCache)(this);
101
+ const key = encoding_name + "Node";
102
+ if (_cache[key] === undefined) {
103
+ (0, node_opcua_assert_1.assert)(encoding_name === "Default Binary" || encoding_name === "Default XML" || encoding_name === "Default JSON");
104
+ // could be binary or xml
105
+ const refs = this.findReferences("HasEncoding", true);
106
+ const addressSpace = this.addressSpace;
107
+ const encoding = refs
108
+ .map((ref) => addressSpace.findNode(ref.nodeId))
109
+ .filter((obj) => obj !== null)
110
+ .filter((obj) => obj.browseName.toString() === encoding_name);
111
+ const node = encoding.length === 0 ? null : encoding[0];
112
+ _cache[key] = node;
113
+ }
114
+ return _cache[key];
115
+ }
116
+ getEncodingNodeId(encoding_name) {
117
+ const _cache = (0, base_node_private_2.BaseNode_getCache)(this);
118
+ const key = encoding_name + "NodeId";
119
+ if (_cache[key] === undefined) {
120
+ const encoding = this.getEncodingNode(encoding_name);
121
+ if (encoding) {
122
+ const namespaceUri = this.addressSpace.getNamespaceUri(encoding.nodeId.namespace);
123
+ _cache[key] = node_opcua_nodeid_1.ExpandedNodeId.fromNodeId(encoding.nodeId, namespaceUri);
124
+ }
125
+ else {
126
+ _cache[key] = null;
127
+ }
128
+ }
129
+ return _cache[key];
130
+ }
131
+ /**
132
+ * returns the encoding of this node's
133
+ * TODO objects have 2 encodings : XML and Binaries
134
+ */
135
+ get binaryEncoding() {
136
+ return this.getEncodingNode("Default Binary");
137
+ }
138
+ get binaryEncodingDefinition() {
139
+ return this.getEncodingDefinition("Default Binary");
140
+ }
141
+ get binaryEncodingNodeId() {
142
+ return this.getEncodingNodeId("Default Binary");
143
+ }
144
+ get xmlEncoding() {
145
+ return this.getEncodingNode("Default XML");
146
+ }
147
+ get xmlEncodingNodeId() {
148
+ return this.getEncodingNodeId("Default XML");
149
+ }
150
+ get xmlEncodingDefinition() {
151
+ return this.getEncodingDefinition("Default XML");
152
+ }
153
+ get jsonEncoding() {
154
+ return this.getEncodingNode("Default JSON");
155
+ }
156
+ get jsonEncodingNodeId() {
157
+ return this.getEncodingNodeId("Default JSON");
158
+ }
159
+ // public get jsonEncodingDefinition(): string | null {
160
+ // return this.getEncodingDefinition("Default JSON");
161
+ // }
162
+ _getEnumerationInfo() {
163
+ let definition = [];
164
+ if (this.enumStrings) {
165
+ const enumStrings = this.enumStrings.readValue().value.value;
166
+ (0, node_opcua_assert_1.assert)(Array.isArray(enumStrings));
167
+ definition = enumStrings.map((e, index) => {
168
+ return {
169
+ name: e.text,
170
+ value: index
171
+ };
172
+ });
173
+ }
174
+ else if (this.enumValues) {
175
+ (0, node_opcua_assert_1.assert)(this.enumValues, "must have a enumValues property");
176
+ const enumValues = this.enumValues.readValue().value.value;
177
+ (0, node_opcua_assert_1.assert)(Array.isArray(enumValues));
178
+ definition = enumValues.map((e) => {
179
+ return {
180
+ name: e.displayName.text,
181
+ value: e.value[1]
182
+ };
183
+ });
184
+ }
185
+ // construct nameIndex and valueIndex
186
+ const indexes = {
187
+ nameIndex: {},
188
+ valueIndex: {}
189
+ };
190
+ for (const e of definition) {
191
+ indexes.nameIndex[e.name] = e;
192
+ indexes.valueIndex[e.value] = e;
193
+ }
194
+ return indexes;
195
+ }
196
+ isStructure() {
197
+ const definition = this._getDefinition();
198
+ return !!definition && definition instanceof node_opcua_types_1.StructureDefinition;
199
+ }
200
+ getStructureDefinition() {
201
+ const definition = this._getDefinition();
202
+ (0, node_opcua_assert_1.assert)(definition instanceof node_opcua_types_1.StructureDefinition);
203
+ return definition;
204
+ }
205
+ isEnumeration() {
206
+ const definition = this._getDefinition();
207
+ return !!definition && definition instanceof node_opcua_types_1.EnumDefinition;
208
+ }
209
+ getEnumDefinition() {
210
+ const definition = this._getDefinition();
211
+ (0, node_opcua_assert_1.assert)(definition instanceof node_opcua_types_1.EnumDefinition);
212
+ return definition;
213
+ }
214
+ // eslint-disable-next-line complexity
215
+ _getDefinition() {
216
+ var _a;
217
+ if (this.$fullDefinition !== undefined) {
218
+ return this.$fullDefinition;
219
+ }
220
+ const addressSpace = this.addressSpace;
221
+ const enumeration = addressSpace.findDataType("Enumeration");
222
+ const structure = addressSpace.findDataType("Structure");
223
+ const union = addressSpace.findDataType("Union");
224
+ // we have a data type from a companion specification
225
+ // let's see if this data type need to be registered
226
+ const isEnumeration = enumeration && this.isSupertypeOf(enumeration);
227
+ const isStructure = structure && this.isSupertypeOf(structure);
228
+ const isUnion = !!(structure && union && this.isSupertypeOf(union));
229
+ const isRootDataType = (n) => n.nodeId.namespace === 0 && n.nodeId.value === node_opcua_constants_1.DataTypeIds.BaseDataType;
230
+ // https://reference.opcfoundation.org/v104/Core/docs/Part3/8.49/#Table34
231
+ if (isStructure) {
232
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
233
+ let dataTypeNode = this;
234
+ const allPartialDefinitions = [];
235
+ while (dataTypeNode && !isRootDataType(dataTypeNode)) {
236
+ if (dataTypeNode.$partialDefinition) {
237
+ allPartialDefinitions.push(dataTypeNode.$partialDefinition);
238
+ }
239
+ dataTypeNode = dataTypeNode.subtypeOfObj;
240
+ }
241
+ // merge them:
242
+ const definitionFields = [];
243
+ for (const dd of allPartialDefinitions.reverse()) {
244
+ definitionFields.push(...dd);
245
+ }
246
+ const basicDataType = ((_a = this.subtypeOfObj) === null || _a === void 0 ? void 0 : _a.nodeId) || new node_opcua_nodeid_1.NodeId();
247
+ const defaultEncodingId = this.binaryEncodingNodeId || this.xmlEncodingNodeId || new node_opcua_nodeid_1.NodeId();
248
+ const definitionName = this.browseName.name;
249
+ this.$fullDefinition = makeStructureDefinition(definitionName, basicDataType, defaultEncodingId, definitionFields, isUnion);
250
+ }
251
+ else if (isEnumeration) {
252
+ const allPartialDefinitions = [];
253
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
254
+ let dataTypeNode = this;
255
+ while (dataTypeNode && !isRootDataType(dataTypeNode)) {
256
+ if (dataTypeNode.$partialDefinition) {
257
+ allPartialDefinitions.push(dataTypeNode.$partialDefinition);
258
+ }
259
+ dataTypeNode = dataTypeNode.subtypeOfObj;
260
+ }
261
+ // merge them:
262
+ const definitionFields = [];
263
+ for (const dd of allPartialDefinitions.reverse()) {
264
+ definitionFields.push(...dd);
265
+ }
266
+ this.$fullDefinition = makeEnumDefinition(definitionFields);
267
+ }
268
+ return this.$fullDefinition;
269
+ }
270
+ getDefinition() {
271
+ const d = this._getDefinition();
272
+ if (!d) {
273
+ throw new Error("DataType has no definition property");
274
+ }
275
+ return d;
276
+ }
277
+ install_extra_properties() {
278
+ //
279
+ }
280
+ toString() {
281
+ const options = new base_node_private_1.ToStringBuilder();
282
+ DataType_toString.call(this, options);
283
+ return options.toString();
284
+ }
285
+ }
286
+ exports.UADataTypeImpl = UADataTypeImpl;
287
+ function dataTypeDefinition_toString(options) {
288
+ const definition = this._getDefinition();
289
+ if (!definition) {
290
+ return;
291
+ }
292
+ const output = definition.toString();
293
+ options.add(options.padding + chalk.yellow(" Definition : "));
294
+ for (const str of output.split("\n")) {
295
+ options.add(options.padding + chalk.yellow(" : " + str));
296
+ }
297
+ }
298
+ function DataType_toString(options) {
299
+ base_node_private_1.BaseNode_toString.call(this, options);
300
+ options.add(options.padding + chalk.yellow(" isAbstract : " + this.isAbstract));
301
+ options.add(options.padding + chalk.yellow(" definitionName : " + this.definitionName));
302
+ options.add(options.padding +
303
+ chalk.yellow(" binaryEncodingNodeId: ") +
304
+ (this.binaryEncodingNodeId ? this.binaryEncodingNodeId.toString() : "<none>"));
305
+ options.add(options.padding +
306
+ chalk.yellow(" xmlEncodingNodeId : ") +
307
+ (this.xmlEncodingNodeId ? this.xmlEncodingNodeId.toString() : "<none>"));
308
+ if (this.subtypeOfObj) {
309
+ options.add(options.padding +
310
+ chalk.yellow(" subtypeOfObj : ") +
311
+ (this.subtypeOfObj ? this.subtypeOfObj.browseName.toString() : ""));
312
+ }
313
+ // references
314
+ base_node_private_1.BaseNode_References_toString.call(this, options);
315
+ dataTypeDefinition_toString.call(this, options);
316
+ }
317
+ exports.DataType_toString = DataType_toString;
318
+ function makeEnumDefinition(definitionFields) {
319
+ return new node_opcua_types_1.EnumDefinition({
320
+ fields: definitionFields.map((x) => ({
321
+ description: x.description,
322
+ name: x.name,
323
+ value: x.value
324
+ }))
325
+ });
326
+ }
327
+ function makeStructureDefinition(name, baseDataType, defaultEncodingId, fields, isUnion) {
328
+ // Structure = 0,
329
+ // StructureWithOptionalFields = 1,
330
+ // Union = 2,
331
+ const hasOptionalFields = fields.filter((field) => field.isOptional).length > 0;
332
+ const structureType = isUnion
333
+ ? node_opcua_types_1.StructureType.Union
334
+ : hasOptionalFields
335
+ ? node_opcua_types_1.StructureType.StructureWithOptionalFields
336
+ : node_opcua_types_1.StructureType.Structure;
337
+ const sd = new node_opcua_types_1.StructureDefinition({
338
+ baseDataType,
339
+ defaultEncodingId,
340
+ fields,
341
+ structureType
342
+ });
343
+ return sd;
344
+ }
345
+ /*
346
+ function lockReadOnlyWithWriteDetection<T>(obj: T): T {
347
+ if (obj instanceof Array) {
348
+ return obj.map(lockReadOnlyWithWriteDetection) as unknown as T;
349
+ }
350
+ if (obj instanceof Object) {
351
+ const _org = obj;
352
+ for (const [key, value] of Object.entries(obj)) {
353
+ lockReadOnlyWithWriteDetection(value);
354
+ }
355
+ obj = new Proxy(obj, {
356
+ get: (target: any, prop: string) => {
357
+ return target[prop];
358
+ },
359
+ set: (target: any, prop: string | symbol, value: any, receiver: any) => {
360
+ console.log("QQQQQ Cannot modify stuff ");
361
+ debugger;
362
+ throw new Error("Invalid");
363
+ }
364
+ });
365
+ }
366
+ return obj;
367
+ }
368
+ */
369
369
  //# sourceMappingURL=ua_data_type_impl.js.map