node-opcua-address-space 2.76.0 → 2.77.0

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 (291) hide show
  1. package/dist/source/address_space_ts.d.ts +118 -118
  2. package/dist/source/address_space_ts.js +17 -17
  3. package/dist/source/continuation_points/continuation_point_manager.d.ts +32 -32
  4. package/dist/source/continuation_points/continuation_point_manager.js +195 -195
  5. package/dist/source/helpers/adjust_browse_direction.d.ts +5 -5
  6. package/dist/source/helpers/adjust_browse_direction.js +11 -11
  7. package/dist/source/helpers/argument_list.d.ts +33 -33
  8. package/dist/source/helpers/argument_list.js +258 -258
  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 -0
  12. package/dist/source/helpers/check_event_clause.js +53 -0
  13. package/dist/source/helpers/check_event_clause.js.map +1 -0
  14. package/dist/source/helpers/coerce_enum_value.d.ts +6 -6
  15. package/dist/source/helpers/coerce_enum_value.js +33 -33
  16. package/dist/source/helpers/dump_tools.d.ts +14 -14
  17. package/dist/source/helpers/dump_tools.js +78 -78
  18. package/dist/source/helpers/ensure_secure_access.d.ts +9 -9
  19. package/dist/source/helpers/ensure_secure_access.js +76 -76
  20. package/dist/source/helpers/make_optionals_map.d.ts +21 -21
  21. package/dist/source/helpers/make_optionals_map.js +29 -29
  22. package/dist/source/helpers/multiform_func.d.ts +11 -11
  23. package/dist/source/helpers/multiform_func.js +75 -75
  24. package/dist/source/helpers/resolve_opaque_on_address_space.d.ts +3 -3
  25. package/dist/source/helpers/resolve_opaque_on_address_space.js +36 -36
  26. package/dist/source/index.d.ts +56 -56
  27. package/dist/source/index.js +83 -83
  28. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +19 -19
  29. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +2 -2
  30. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.d.ts +193 -193
  31. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.js +2 -2
  32. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.d.ts +12 -12
  33. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.js +2 -2
  34. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.d.ts +10 -10
  35. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.js +2 -2
  36. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +7 -7
  37. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js +2 -2
  38. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts +7 -7
  39. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.js +2 -2
  40. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +4 -4
  41. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js +2 -2
  42. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +4 -4
  43. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js +2 -2
  44. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +9 -9
  45. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js +2 -2
  46. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +4 -4
  47. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js +2 -2
  48. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +4 -4
  49. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js +2 -2
  50. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +20 -20
  51. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js +2 -2
  52. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +23 -23
  53. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js +2 -2
  54. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +32 -32
  55. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js +2 -2
  56. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +19 -19
  57. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js +2 -2
  58. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +42 -42
  59. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.js +2 -2
  60. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +7 -7
  61. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js +25 -25
  62. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +5 -5
  63. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js +2 -2
  64. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +20 -20
  65. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js +2 -2
  66. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +26 -26
  67. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js +2 -2
  68. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +8 -8
  69. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js +2 -2
  70. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +10 -10
  71. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js +2 -2
  72. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +21 -21
  73. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js +2 -2
  74. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +24 -24
  75. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js +2 -2
  76. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +12 -12
  77. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js +2 -2
  78. package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +8 -8
  79. package/dist/source/interfaces/data_access/ua_y_array_item_ex.js +2 -2
  80. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -12
  81. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +2 -2
  82. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -49
  83. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js +2 -2
  84. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -11
  85. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js +2 -2
  86. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +30 -30
  87. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.js +2 -2
  88. package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +222 -222
  89. package/dist/source/interfaces/state_machine/ua_state_machine_type.js +2 -2
  90. package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +6 -6
  91. package/dist/source/interfaces/state_machine/ua_transition_ex.js +2 -2
  92. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +8 -8
  93. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +2 -2
  94. package/dist/source/loader/decode_xml_extension_object.d.ts +6 -6
  95. package/dist/source/loader/decode_xml_extension_object.js +71 -71
  96. package/dist/source/loader/ensure_datatype_extracted.d.ts +5 -5
  97. package/dist/source/loader/ensure_datatype_extracted.js +45 -45
  98. package/dist/source/loader/generateAddressSpaceRaw.d.ts +10 -10
  99. package/dist/source/loader/generateAddressSpaceRaw.js +45 -45
  100. package/dist/source/loader/load_nodeset2.d.ts +16 -16
  101. package/dist/source/loader/load_nodeset2.js +1461 -1461
  102. package/dist/source/loader/make_semver_compatible.d.ts +6 -6
  103. package/dist/source/loader/make_semver_compatible.js +25 -25
  104. package/dist/source/loader/make_xml_extension_object_parser.d.ts +28 -28
  105. package/dist/source/loader/make_xml_extension_object_parser.js +325 -325
  106. package/dist/source/loader/namespace_post_step.d.ts +10 -10
  107. package/dist/source/loader/namespace_post_step.js +61 -61
  108. package/dist/source/loader/register_node_promoter.d.ts +2 -2
  109. package/dist/source/loader/register_node_promoter.js +9 -9
  110. package/dist/source/namespace.d.ts +6 -6
  111. package/dist/source/namespace.js +2 -2
  112. package/dist/source/namespace_alarm_and_condition.d.ts +32 -32
  113. package/dist/source/namespace_alarm_and_condition.js +2 -2
  114. package/dist/source/namespace_data_access.d.ts +42 -42
  115. package/dist/source/namespace_data_access.js +2 -2
  116. package/dist/source/namespace_machine_state.d.ts +7 -7
  117. package/dist/source/namespace_machine_state.js +2 -2
  118. package/dist/source/pseudo_session.d.ts +55 -55
  119. package/dist/source/pseudo_session.js +203 -203
  120. package/dist/source/session_context.d.ts +111 -111
  121. package/dist/source/session_context.js +265 -265
  122. package/dist/source/set_namespace_meta_data.d.ts +2 -2
  123. package/dist/source/set_namespace_meta_data.js +59 -59
  124. package/dist/source/ua_root_folder.d.ts +9 -9
  125. package/dist/source/ua_root_folder.js +2 -2
  126. package/dist/source/ua_two_state_variable_ex.d.ts +23 -23
  127. package/dist/source/ua_two_state_variable_ex.js +2 -2
  128. package/dist/source/xml_writer.d.ts +9 -9
  129. package/dist/source/xml_writer.js +2 -2
  130. package/dist/src/address_space.d.ts +392 -392
  131. package/dist/src/address_space.js +1392 -1392
  132. package/dist/src/address_space_change_event_tools.d.ts +6 -6
  133. package/dist/src/address_space_change_event_tools.js +149 -149
  134. package/dist/src/address_space_private.d.ts +43 -43
  135. package/dist/src/address_space_private.js +2 -2
  136. package/dist/src/alarms_and_conditions/check_where_clause.d.ts +4 -0
  137. package/dist/src/alarms_and_conditions/check_where_clause.js +110 -0
  138. package/dist/src/alarms_and_conditions/check_where_clause.js.map +1 -0
  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.d.ts +27 -0
  142. package/dist/src/alarms_and_conditions/condition_info.js +55 -0
  143. package/dist/src/alarms_and_conditions/condition_info.js.map +1 -0
  144. package/dist/src/alarms_and_conditions/condition_info_impl.d.ts +26 -26
  145. package/dist/src/alarms_and_conditions/condition_info_impl.js +54 -54
  146. package/dist/src/alarms_and_conditions/condition_snapshot.d.ts +233 -0
  147. package/dist/src/alarms_and_conditions/condition_snapshot.js +667 -0
  148. package/dist/src/alarms_and_conditions/condition_snapshot.js.map +1 -0
  149. package/dist/src/alarms_and_conditions/condition_snapshot_impl.d.ts +222 -222
  150. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js +657 -657
  151. package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +9 -9
  152. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +61 -61
  153. package/dist/src/alarms_and_conditions/extract_event_fields.d.ts +10 -0
  154. package/dist/src/alarms_and_conditions/extract_event_fields.js +90 -0
  155. package/dist/src/alarms_and_conditions/extract_event_fields.js.map +1 -0
  156. package/dist/src/alarms_and_conditions/index.d.ts +16 -16
  157. package/dist/src/alarms_and_conditions/index.js +32 -32
  158. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +44 -44
  159. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -244
  160. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +93 -93
  161. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +419 -419
  162. package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +26 -26
  163. package/dist/src/alarms_and_conditions/ua_base_event_impl.js +38 -38
  164. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +44 -44
  165. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +183 -183
  166. package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +153 -153
  167. package/dist/src/alarms_and_conditions/ua_condition_impl.js +1028 -1028
  168. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +14 -14
  169. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +34 -34
  170. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +24 -24
  171. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +56 -56
  172. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +11 -11
  173. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +11 -11
  174. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +23 -23
  175. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +86 -86
  176. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +11 -11
  177. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +7 -7
  178. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +79 -79
  179. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +250 -250
  180. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +24 -24
  181. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +50 -50
  182. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +19 -19
  183. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +162 -162
  184. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +46 -46
  185. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +166 -166
  186. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +18 -18
  187. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +17 -17
  188. package/dist/src/apply_condition_refresh.d.ts +6 -6
  189. package/dist/src/apply_condition_refresh.js +27 -27
  190. package/dist/src/base_node_impl.d.ts +281 -281
  191. package/dist/src/base_node_impl.js +1395 -1395
  192. package/dist/src/base_node_private.d.ts +61 -61
  193. package/dist/src/base_node_private.js +705 -705
  194. package/dist/src/data_access/add_dataItem_stuff.d.ts +11 -11
  195. package/dist/src/data_access/add_dataItem_stuff.js +61 -61
  196. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.d.ts +1 -1
  197. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js +34 -34
  198. package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +32 -32
  199. package/dist/src/data_access/ua_multistate_discrete_impl.js +130 -130
  200. package/dist/src/data_access/ua_multistate_value_discrete.d.ts +51 -0
  201. package/dist/src/data_access/ua_multistate_value_discrete.js +250 -0
  202. package/dist/src/data_access/ua_multistate_value_discrete.js.map +1 -0
  203. package/dist/src/data_access/ua_multistate_value_discrete_impl.d.ts +51 -51
  204. package/dist/src/data_access/ua_multistate_value_discrete_impl.js +249 -249
  205. package/dist/src/data_access/ua_two_state_discrete.d.ts +25 -0
  206. package/dist/src/data_access/ua_two_state_discrete.js +154 -0
  207. package/dist/src/data_access/ua_two_state_discrete.js.map +1 -0
  208. package/dist/src/data_access/ua_two_state_discrete_impl.d.ts +25 -25
  209. package/dist/src/data_access/ua_two_state_discrete_impl.js +153 -153
  210. package/dist/src/event_data.d.ts +34 -34
  211. package/dist/src/event_data.js +64 -64
  212. package/dist/src/extension_object_array_node.d.ts +61 -61
  213. package/dist/src/extension_object_array_node.js +276 -276
  214. package/dist/src/historical_access/address_space_historical_data_node.d.ts +26 -26
  215. package/dist/src/historical_access/address_space_historical_data_node.js +630 -630
  216. package/dist/src/index_current.d.ts +43 -43
  217. package/dist/src/index_current.js +74 -74
  218. package/dist/src/namespace_impl.d.ts +461 -461
  219. package/dist/src/namespace_impl.js +1732 -1732
  220. package/dist/src/namespace_private.d.ts +21 -21
  221. package/dist/src/namespace_private.js +32 -32
  222. package/dist/src/nodeid_manager.d.ts +36 -36
  223. package/dist/src/nodeid_manager.js +197 -197
  224. package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +2 -2
  225. package/dist/src/nodeset_tools/adjust_namespace_array.js +13 -13
  226. package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +2 -2
  227. package/dist/src/nodeset_tools/construct_namespace_dependency.js +83 -83
  228. package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +2 -2
  229. package/dist/src/nodeset_tools/nodeset_to_xml.js +1155 -1155
  230. package/dist/src/nodeset_tools/typedictionary_to_xml.d.ts +2 -2
  231. package/dist/src/nodeset_tools/typedictionary_to_xml.js +154 -154
  232. package/dist/src/reference_impl.d.ts +43 -43
  233. package/dist/src/reference_impl.js +139 -139
  234. package/dist/src/role_permissions.d.ts +2 -2
  235. package/dist/src/role_permissions.js +10 -10
  236. package/dist/src/state_machine/finite_state_machine.d.ts +67 -67
  237. package/dist/src/state_machine/finite_state_machine.js +353 -353
  238. package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +38 -38
  239. package/dist/src/state_machine/ua_shelving_state_machine_ex.js +250 -250
  240. package/dist/src/state_machine/ua_two_state_variable.d.ts +61 -61
  241. package/dist/src/state_machine/ua_two_state_variable.js +331 -331
  242. package/dist/src/tool_isSupertypeOf.d.ts +17 -17
  243. package/dist/src/tool_isSupertypeOf.js +108 -108
  244. package/dist/src/ua_condition_type.d.ts +8 -8
  245. package/dist/src/ua_condition_type.js +2 -2
  246. package/dist/src/ua_data_type_impl.d.ts +93 -93
  247. package/dist/src/ua_data_type_impl.js +371 -371
  248. package/dist/src/ua_method_impl.d.ts +41 -41
  249. package/dist/src/ua_method_impl.js +208 -208
  250. package/dist/src/ua_object_impl.d.ts +35 -35
  251. package/dist/src/ua_object_impl.js +161 -161
  252. package/dist/src/ua_object_type_impl.d.ts +48 -48
  253. package/dist/src/ua_object_type_impl.js +124 -124
  254. package/dist/src/ua_reference_type_impl.d.ts +43 -43
  255. package/dist/src/ua_reference_type_impl.js +139 -139
  256. package/dist/src/ua_variable_impl.d.ts +351 -351
  257. package/dist/src/ua_variable_impl.js +1604 -1604
  258. package/dist/src/ua_variable_impl.js.map +1 -1
  259. package/dist/src/ua_variable_impl_ext_obj.d.ts +17 -17
  260. package/dist/src/ua_variable_impl_ext_obj.js +437 -437
  261. package/dist/src/ua_variable_type_impl.d.ts +62 -62
  262. package/dist/src/ua_variable_type_impl.js +570 -570
  263. package/dist/src/ua_view_impl.d.ts +19 -19
  264. package/dist/src/ua_view_impl.js +43 -43
  265. package/distHelpers/add_event_generator_object.d.ts +3 -3
  266. package/distHelpers/add_event_generator_object.js +64 -64
  267. package/distHelpers/alarms_and_conditions_demo.d.ts +9 -9
  268. package/distHelpers/alarms_and_conditions_demo.js +115 -115
  269. package/distHelpers/assertHasMatchingReference.d.ts +19 -19
  270. package/distHelpers/assertHasMatchingReference.js +40 -40
  271. package/distHelpers/boiler_system.d.ts +113 -113
  272. package/distHelpers/boiler_system.js +395 -395
  273. package/distHelpers/create_minimalist_address_space_nodeset.d.ts +5 -5
  274. package/distHelpers/create_minimalist_address_space_nodeset.js +171 -171
  275. package/distHelpers/date_utils.d.ts +3 -3
  276. package/distHelpers/date_utils.js +9 -9
  277. package/distHelpers/dump_statemachine.js +127 -127
  278. package/distHelpers/get_address_space_fixture.d.ts +1 -1
  279. package/distHelpers/get_address_space_fixture.js +30 -30
  280. package/distHelpers/get_mini_address_space.d.ts +7 -7
  281. package/distHelpers/get_mini_address_space.js +36 -36
  282. package/distHelpers/index.d.ts +12 -12
  283. package/distHelpers/index.js +28 -28
  284. package/distHelpers/mock_session.d.ts +14 -14
  285. package/distHelpers/mock_session.js +25 -25
  286. package/distNodeJS/generate_address_space.d.ts +4 -4
  287. package/distNodeJS/generate_address_space.js +41 -41
  288. package/distNodeJS/index.d.ts +1 -1
  289. package/distNodeJS/index.js +17 -17
  290. package/package.json +42 -40
  291. package/src/ua_variable_impl.ts +3 -2
@@ -1,125 +1,125 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UAObjectTypeImpl = void 0;
4
- /**
5
- * @module node-opcua-address-space
6
- */
7
- const node_opcua_assert_1 = require("node-opcua-assert");
8
- const node_opcua_data_model_1 = require("node-opcua-data-model");
9
- const node_opcua_data_model_2 = require("node-opcua-data-model");
10
- const node_opcua_data_value_1 = require("node-opcua-data-value");
11
- const node_opcua_status_code_1 = require("node-opcua-status-code");
12
- const utils = require("node-opcua-utils");
13
- const node_opcua_variant_1 = require("node-opcua-variant");
14
- const session_context_1 = require("../source/session_context");
15
- const base_node_impl_1 = require("./base_node_impl");
16
- const base_node_private_1 = require("./base_node_private");
17
- const tool_isSupertypeOf_1 = require("./tool_isSupertypeOf");
18
- const tools = require("./tool_isSupertypeOf");
19
- const ua_variable_type_impl_1 = require("./ua_variable_type_impl");
20
- class UAObjectTypeImpl extends base_node_impl_1.BaseNodeImpl {
21
- constructor(options) {
22
- super(options);
23
- this.nodeClass = node_opcua_data_model_1.NodeClass.ObjectType;
24
- this.isSupertypeOf = tools.construct_isSupertypeOf(UAObjectTypeImpl);
25
- this.isAbstract = utils.isNullOrUndefined(options.isAbstract) ? false : options.isAbstract;
26
- }
27
- /**
28
- * returns true if the object has some opcua methods
29
- */
30
- get hasMethods() {
31
- return this.getMethods().length > 0;
32
- }
33
- get subtypeOf() {
34
- return tool_isSupertypeOf_1.get_subtypeOf.call(this);
35
- }
36
- get subtypeOfObj() {
37
- return tool_isSupertypeOf_1.get_subtypeOfObj.call(this);
38
- }
39
- readAttribute(context, attributeId) {
40
- (0, node_opcua_assert_1.assert)(context instanceof session_context_1.SessionContext);
41
- const options = {};
42
- switch (attributeId) {
43
- case node_opcua_data_model_2.AttributeIds.IsAbstract:
44
- options.value = {
45
- dataType: node_opcua_variant_1.DataType.Boolean,
46
- value: !!this.isAbstract
47
- };
48
- options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
49
- break;
50
- default:
51
- return base_node_impl_1.BaseNodeImpl.prototype.readAttribute.call(this, context, attributeId);
52
- }
53
- return new node_opcua_data_value_1.DataValue(options);
54
- }
55
- /**
56
- * instantiate an object of this UAObjectType
57
- * The instantiation takes care of object type inheritance when constructing inner properties and components.
58
- * @method instantiate
59
- * @param options
60
- * @param options.browseName
61
- * @param [options.description]
62
- * @param [options.organizedBy] the parent Folder holding this object
63
- * @param [options.componentOf] the parent Object holding this object
64
- * @param [options.notifierOf]
65
- * @param [options.eventSourceOf]
66
- * @param [options.optionals = [] name of the optional child to create
67
- * @param [options.modellingRule]
68
- * @param [options.encodingOf]
69
- *
70
- *
71
- * Note : HasComponent usage scope
72
- *
73
- * Source | Destination
74
- * -------------------+---------------------------
75
- * Object | Object, Variable,Method
76
- * ObjectType |
77
- * -------------------+---------------------------
78
- * DataVariable | Variable
79
- * DataVariableType |
80
- */
81
- instantiate(options) {
82
- const addressSpace = this.addressSpace;
83
- (0, node_opcua_assert_1.assert)(!this.isAbstract, "cannot instantiate abstract UAObjectType");
84
- (0, node_opcua_assert_1.assert)(options, "missing option object");
85
- (0, node_opcua_assert_1.assert)(typeof options.browseName === "string" || (options.browseName !== null && typeof options.browseName === "object"), "expecting a browse name");
86
- (0, node_opcua_assert_1.assert)(!Object.prototype.hasOwnProperty.call(options, "propertyOf"), "an Object shall not be a PropertyOf an other object");
87
- (0, node_opcua_assert_1.assert)(!Object.prototype.hasOwnProperty.call(options, "optional"), "do you mean optionals ?");
88
- (0, ua_variable_type_impl_1.assertUnusedChildBrowseName)(addressSpace, options);
89
- const baseObjectType = addressSpace.findObjectType("BaseObjectType");
90
- (0, node_opcua_assert_1.assert)(baseObjectType, "BaseObjectType must be defined in the address space");
91
- const references = [];
92
- const copyAlsoModellingRules = (0, ua_variable_type_impl_1.topMostParentIsObjectTypeOrVariableType)(addressSpace, options);
93
- const opts = {
94
- browseName: options.browseName,
95
- componentOf: options.componentOf,
96
- displayName: options.displayName || "",
97
- description: options.description || this.description,
98
- encodingOf: options.encodingOf,
99
- eventSourceOf: options.eventSourceOf,
100
- notifierOf: options.notifierOf,
101
- organizedBy: options.organizedBy,
102
- references,
103
- typeDefinition: this.nodeId,
104
- nodeId: options.nodeId,
105
- eventNotifier: options.eventNotifier === undefined ? 0 : options.eventNotifier,
106
- modellingRule: options.modellingRule
107
- };
108
- const namespace = options.namespace || this.addressSpace.getOwnNamespace();
109
- const instance = namespace.addObject(opts);
110
- (0, ua_variable_type_impl_1.initialize_properties_and_components)(instance, baseObjectType, this, copyAlsoModellingRules, options.optionals);
111
- (0, node_opcua_assert_1.assert)(instance.typeDefinition.toString() === this.nodeId.toString());
112
- instance.install_extra_properties();
113
- if (this._postInstantiateFunc) {
114
- this._postInstantiateFunc(instance, this, options);
115
- }
116
- return instance;
117
- }
118
- toString() {
119
- const options = new base_node_private_1.ToStringBuilder();
120
- base_node_private_1.UAObjectType_toString.call(this, options);
121
- return options.toString();
122
- }
123
- }
124
- exports.UAObjectTypeImpl = UAObjectTypeImpl;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UAObjectTypeImpl = void 0;
4
+ /**
5
+ * @module node-opcua-address-space
6
+ */
7
+ const node_opcua_assert_1 = require("node-opcua-assert");
8
+ const node_opcua_data_model_1 = require("node-opcua-data-model");
9
+ const node_opcua_data_model_2 = require("node-opcua-data-model");
10
+ const node_opcua_data_value_1 = require("node-opcua-data-value");
11
+ const node_opcua_status_code_1 = require("node-opcua-status-code");
12
+ const utils = require("node-opcua-utils");
13
+ const node_opcua_variant_1 = require("node-opcua-variant");
14
+ const session_context_1 = require("../source/session_context");
15
+ const base_node_impl_1 = require("./base_node_impl");
16
+ const base_node_private_1 = require("./base_node_private");
17
+ const tool_isSupertypeOf_1 = require("./tool_isSupertypeOf");
18
+ const tools = require("./tool_isSupertypeOf");
19
+ const ua_variable_type_impl_1 = require("./ua_variable_type_impl");
20
+ class UAObjectTypeImpl extends base_node_impl_1.BaseNodeImpl {
21
+ constructor(options) {
22
+ super(options);
23
+ this.nodeClass = node_opcua_data_model_1.NodeClass.ObjectType;
24
+ this.isSupertypeOf = tools.construct_isSupertypeOf(UAObjectTypeImpl);
25
+ this.isAbstract = utils.isNullOrUndefined(options.isAbstract) ? false : options.isAbstract;
26
+ }
27
+ /**
28
+ * returns true if the object has some opcua methods
29
+ */
30
+ get hasMethods() {
31
+ return this.getMethods().length > 0;
32
+ }
33
+ get subtypeOf() {
34
+ return tool_isSupertypeOf_1.get_subtypeOf.call(this);
35
+ }
36
+ get subtypeOfObj() {
37
+ return tool_isSupertypeOf_1.get_subtypeOfObj.call(this);
38
+ }
39
+ readAttribute(context, attributeId) {
40
+ (0, node_opcua_assert_1.assert)(context instanceof session_context_1.SessionContext);
41
+ const options = {};
42
+ switch (attributeId) {
43
+ case node_opcua_data_model_2.AttributeIds.IsAbstract:
44
+ options.value = {
45
+ dataType: node_opcua_variant_1.DataType.Boolean,
46
+ value: !!this.isAbstract
47
+ };
48
+ options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
49
+ break;
50
+ default:
51
+ return base_node_impl_1.BaseNodeImpl.prototype.readAttribute.call(this, context, attributeId);
52
+ }
53
+ return new node_opcua_data_value_1.DataValue(options);
54
+ }
55
+ /**
56
+ * instantiate an object of this UAObjectType
57
+ * The instantiation takes care of object type inheritance when constructing inner properties and components.
58
+ * @method instantiate
59
+ * @param options
60
+ * @param options.browseName
61
+ * @param [options.description]
62
+ * @param [options.organizedBy] the parent Folder holding this object
63
+ * @param [options.componentOf] the parent Object holding this object
64
+ * @param [options.notifierOf]
65
+ * @param [options.eventSourceOf]
66
+ * @param [options.optionals = [] name of the optional child to create
67
+ * @param [options.modellingRule]
68
+ * @param [options.encodingOf]
69
+ *
70
+ *
71
+ * Note : HasComponent usage scope
72
+ *
73
+ * Source | Destination
74
+ * -------------------+---------------------------
75
+ * Object | Object, Variable,Method
76
+ * ObjectType |
77
+ * -------------------+---------------------------
78
+ * DataVariable | Variable
79
+ * DataVariableType |
80
+ */
81
+ instantiate(options) {
82
+ const addressSpace = this.addressSpace;
83
+ (0, node_opcua_assert_1.assert)(!this.isAbstract, "cannot instantiate abstract UAObjectType");
84
+ (0, node_opcua_assert_1.assert)(options, "missing option object");
85
+ (0, node_opcua_assert_1.assert)(typeof options.browseName === "string" || (options.browseName !== null && typeof options.browseName === "object"), "expecting a browse name");
86
+ (0, node_opcua_assert_1.assert)(!Object.prototype.hasOwnProperty.call(options, "propertyOf"), "an Object shall not be a PropertyOf an other object");
87
+ (0, node_opcua_assert_1.assert)(!Object.prototype.hasOwnProperty.call(options, "optional"), "do you mean optionals ?");
88
+ (0, ua_variable_type_impl_1.assertUnusedChildBrowseName)(addressSpace, options);
89
+ const baseObjectType = addressSpace.findObjectType("BaseObjectType");
90
+ (0, node_opcua_assert_1.assert)(baseObjectType, "BaseObjectType must be defined in the address space");
91
+ const references = [];
92
+ const copyAlsoModellingRules = (0, ua_variable_type_impl_1.topMostParentIsObjectTypeOrVariableType)(addressSpace, options);
93
+ const opts = {
94
+ browseName: options.browseName,
95
+ componentOf: options.componentOf,
96
+ displayName: options.displayName || "",
97
+ description: options.description || this.description,
98
+ encodingOf: options.encodingOf,
99
+ eventSourceOf: options.eventSourceOf,
100
+ notifierOf: options.notifierOf,
101
+ organizedBy: options.organizedBy,
102
+ references,
103
+ typeDefinition: this.nodeId,
104
+ nodeId: options.nodeId,
105
+ eventNotifier: options.eventNotifier === undefined ? 0 : options.eventNotifier,
106
+ modellingRule: options.modellingRule
107
+ };
108
+ const namespace = options.namespace || this.addressSpace.getOwnNamespace();
109
+ const instance = namespace.addObject(opts);
110
+ (0, ua_variable_type_impl_1.initialize_properties_and_components)(instance, baseObjectType, this, copyAlsoModellingRules, options.optionals);
111
+ (0, node_opcua_assert_1.assert)(instance.typeDefinition.toString() === this.nodeId.toString());
112
+ instance.install_extra_properties();
113
+ if (this._postInstantiateFunc) {
114
+ this._postInstantiateFunc(instance, this, options);
115
+ }
116
+ return instance;
117
+ }
118
+ toString() {
119
+ const options = new base_node_private_1.ToStringBuilder();
120
+ base_node_private_1.UAObjectType_toString.call(this, options);
121
+ return options.toString();
122
+ }
123
+ }
124
+ exports.UAObjectTypeImpl = UAObjectTypeImpl;
125
125
  //# sourceMappingURL=ua_object_type_impl.js.map
@@ -1,43 +1,43 @@
1
- /**
2
- * @module node-opcua-address-space
3
- */
4
- import { UAReference, UAReferenceType } from "node-opcua-address-space-base";
5
- import { LocalizedTextOptions } from "node-opcua-data-model";
6
- import { LocalizedText, NodeClass } from "node-opcua-data-model";
7
- import { AttributeIds } from "node-opcua-data-model";
8
- import { DataValue } from "node-opcua-data-value";
9
- import { NodeId } from "node-opcua-nodeid";
10
- import { SessionContext, UAReferenceType as UAReferenceTypePublic } from "../source";
11
- import { BaseNodeImpl, InternalBaseNodeOptions } from "./base_node_impl";
12
- import * as tools from "./tool_isSupertypeOf";
13
- export interface UAReferenceTypeOptions extends InternalBaseNodeOptions {
14
- isAbstract?: boolean;
15
- symmetric?: boolean;
16
- inverseName: null | string | LocalizedTextOptions;
17
- }
18
- export declare class UAReferenceTypeImpl extends BaseNodeImpl implements UAReferenceType {
19
- readonly nodeClass = NodeClass.ReferenceType;
20
- readonly isAbstract: boolean;
21
- readonly symmetric: boolean;
22
- readonly inverseName: LocalizedText;
23
- get subtypeOfObj(): UAReferenceTypePublic | null;
24
- get subtypeOf(): NodeId | null;
25
- /**
26
- * returns true if self is a super type of baseType
27
- */
28
- isSupertypeOf: tools.IsSupertypeOfFunc<UAReferenceType>;
29
- /**
30
- * @private
31
- */
32
- _slow_isSupertypeOf: (this: UAReferenceType, baseType: import("node-opcua-nodeid").NodeIdLike | UAReferenceType) => boolean;
33
- constructor(options: UAReferenceTypeOptions);
34
- readAttribute(context: SessionContext | null, attributeId: AttributeIds): DataValue;
35
- toString(): string;
36
- install_extra_properties(): void;
37
- /**
38
- * returns a array of all ReferenceTypes in the addressSpace that are self or a subType of self
39
- * recursively
40
- */
41
- getAllSubtypes(): UAReferenceType[];
42
- checkHasSubtype(ref: UAReference | NodeId): boolean;
43
- }
1
+ /**
2
+ * @module node-opcua-address-space
3
+ */
4
+ import { UAReference, UAReferenceType } from "node-opcua-address-space-base";
5
+ import { LocalizedTextOptions } from "node-opcua-data-model";
6
+ import { LocalizedText, NodeClass } from "node-opcua-data-model";
7
+ import { AttributeIds } from "node-opcua-data-model";
8
+ import { DataValue } from "node-opcua-data-value";
9
+ import { NodeId } from "node-opcua-nodeid";
10
+ import { SessionContext, UAReferenceType as UAReferenceTypePublic } from "../source";
11
+ import { BaseNodeImpl, InternalBaseNodeOptions } from "./base_node_impl";
12
+ import * as tools from "./tool_isSupertypeOf";
13
+ export interface UAReferenceTypeOptions extends InternalBaseNodeOptions {
14
+ isAbstract?: boolean;
15
+ symmetric?: boolean;
16
+ inverseName: null | string | LocalizedTextOptions;
17
+ }
18
+ export declare class UAReferenceTypeImpl extends BaseNodeImpl implements UAReferenceType {
19
+ readonly nodeClass = NodeClass.ReferenceType;
20
+ readonly isAbstract: boolean;
21
+ readonly symmetric: boolean;
22
+ readonly inverseName: LocalizedText;
23
+ get subtypeOfObj(): UAReferenceTypePublic | null;
24
+ get subtypeOf(): NodeId | null;
25
+ /**
26
+ * returns true if self is a super type of baseType
27
+ */
28
+ isSupertypeOf: tools.IsSupertypeOfFunc<UAReferenceType>;
29
+ /**
30
+ * @private
31
+ */
32
+ _slow_isSupertypeOf: (this: UAReferenceType, baseType: import("node-opcua-nodeid").NodeIdLike | UAReferenceType) => boolean;
33
+ constructor(options: UAReferenceTypeOptions);
34
+ readAttribute(context: SessionContext | null, attributeId: AttributeIds): DataValue;
35
+ toString(): string;
36
+ install_extra_properties(): void;
37
+ /**
38
+ * returns a array of all ReferenceTypes in the addressSpace that are self or a subType of self
39
+ * recursively
40
+ */
41
+ getAllSubtypes(): UAReferenceType[];
42
+ checkHasSubtype(ref: UAReference | NodeId): boolean;
43
+ }
@@ -1,140 +1,140 @@
1
- "use strict";
2
- /**
3
- * @module node-opcua-address-space
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.UAReferenceTypeImpl = void 0;
7
- const node_opcua_assert_1 = require("node-opcua-assert");
8
- const node_opcua_data_model_1 = require("node-opcua-data-model");
9
- const node_opcua_data_model_2 = require("node-opcua-data-model");
10
- const node_opcua_data_model_3 = require("node-opcua-data-model");
11
- const node_opcua_data_value_1 = require("node-opcua-data-value");
12
- const node_opcua_status_code_1 = require("node-opcua-status-code");
13
- const node_opcua_variant_1 = require("node-opcua-variant");
14
- const source_1 = require("../source");
15
- const base_node_impl_1 = require("./base_node_impl");
16
- const tools = require("./tool_isSupertypeOf");
17
- const tool_isSupertypeOf_1 = require("./tool_isSupertypeOf");
18
- const reference_impl_1 = require("./reference_impl");
19
- const base_node_private_1 = require("./base_node_private");
20
- const ReferenceTypeCounter = { count: 0 };
21
- function _internal_getAllSubtypes(referenceType) {
22
- const addressSpace = referenceType.addressSpace;
23
- const possibleReferenceTypes = [];
24
- const hasSubtypeReferenceType = addressSpace.findReferenceType("HasSubtype");
25
- function _findAllSubType(referenceTypeInner) {
26
- possibleReferenceTypes.push(referenceTypeInner);
27
- (0, node_opcua_assert_1.assert)(referenceTypeInner.nodeClass === node_opcua_data_model_2.NodeClass.ReferenceType);
28
- const references = referenceTypeInner.findReferences(hasSubtypeReferenceType, true);
29
- for (const _r of references) {
30
- const subType = addressSpace.findReferenceType(_r.nodeId);
31
- _findAllSubType(subType);
32
- }
33
- }
34
- _findAllSubType(referenceType);
35
- return possibleReferenceTypes;
36
- }
37
- function _getAllSubtypes(ref) {
38
- const _cache = (0, base_node_private_1.BaseNode_getCache)(ref);
39
- if (!_cache._allSubTypesVersion || _cache._allSubTypesVersion < ReferenceTypeCounter.count) {
40
- _cache._allSubTypes = null;
41
- }
42
- if (!_cache._allSubTypes) {
43
- _cache._allSubTypes = _internal_getAllSubtypes(ref);
44
- _cache._allSubTypesVersion = ReferenceTypeCounter.count;
45
- }
46
- return _cache._allSubTypes;
47
- }
48
- function _internal_getSubtypeIndex(referenceType) {
49
- const possibleReferenceTypes = _getAllSubtypes(referenceType);
50
- // create a index of reference type with browseName as key for faster search
51
- const keys = {};
52
- for (const refType of possibleReferenceTypes) {
53
- keys[refType.nodeId.toString()] = refType;
54
- }
55
- return keys;
56
- }
57
- function _getSubtypeIndex(referenceType) {
58
- const _cache = (0, base_node_private_1.BaseNode_getCache)(referenceType);
59
- if (!_cache._subtype_idx || _cache._subtype_idxVersion < ReferenceTypeCounter.count) {
60
- // the cache need to be invalidated
61
- _cache._subtype_idx = null;
62
- }
63
- if (!_cache._subtype_idx) {
64
- _cache._subtype_idx = _internal_getSubtypeIndex(referenceType);
65
- _cache._subtype_idxVersion = ReferenceTypeCounter.count;
66
- }
67
- return _cache._subtype_idx;
68
- }
69
- class UAReferenceTypeImpl extends base_node_impl_1.BaseNodeImpl {
70
- constructor(options) {
71
- super(options);
72
- this.nodeClass = node_opcua_data_model_2.NodeClass.ReferenceType;
73
- /**
74
- * returns true if self is a super type of baseType
75
- */
76
- this.isSupertypeOf = tools.construct_isSupertypeOf(UAReferenceTypeImpl);
77
- /**
78
- * @private
79
- */
80
- this._slow_isSupertypeOf = tools.construct_slow_isSupertypeOf(UAReferenceTypeImpl);
81
- this.isAbstract = options.isAbstract === undefined ? false : !!options.isAbstract;
82
- this.symmetric = options.symmetric === undefined ? false : !!options.symmetric;
83
- // Note: Inverse name is not required anymore in 1.0.4
84
- this.inverseName = (0, node_opcua_data_model_1.coerceLocalizedText)(options.inverseName || this.browseName.name);
85
- ReferenceTypeCounter.count += 1;
86
- }
87
- get subtypeOfObj() {
88
- return tool_isSupertypeOf_1.get_subtypeOfObj.call(this);
89
- }
90
- get subtypeOf() {
91
- return tool_isSupertypeOf_1.get_subtypeOf.call(this);
92
- }
93
- readAttribute(context, attributeId) {
94
- (0, node_opcua_assert_1.assert)(!context || context instanceof source_1.SessionContext);
95
- const options = {};
96
- switch (attributeId) {
97
- case node_opcua_data_model_3.AttributeIds.IsAbstract:
98
- options.value = { dataType: node_opcua_variant_1.DataType.Boolean, value: !!this.isAbstract };
99
- options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
100
- break;
101
- case node_opcua_data_model_3.AttributeIds.Symmetric:
102
- options.value = { dataType: node_opcua_variant_1.DataType.Boolean, value: !!this.symmetric };
103
- options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
104
- break;
105
- case node_opcua_data_model_3.AttributeIds.InverseName: // LocalizedText
106
- options.value = { dataType: node_opcua_variant_1.DataType.LocalizedText, value: this.inverseName };
107
- options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
108
- break;
109
- default:
110
- return super.readAttribute(context, attributeId);
111
- }
112
- return new node_opcua_data_value_1.DataValue(options);
113
- }
114
- toString() {
115
- let str = "";
116
- str += this.isAbstract ? "A" : " ";
117
- str += this.symmetric ? "S" : " ";
118
- str += " " + this.browseName.toString() + "/" + this.inverseName.text + " ";
119
- str += this.nodeId.toString();
120
- return str;
121
- }
122
- install_extra_properties() {
123
- /** */
124
- }
125
- /**
126
- * returns a array of all ReferenceTypes in the addressSpace that are self or a subType of self
127
- * recursively
128
- */
129
- getAllSubtypes() {
130
- return _getAllSubtypes(this);
131
- }
132
- checkHasSubtype(ref) {
133
- const _index = _getSubtypeIndex(this);
134
- const referenceTypeNodeId = ref instanceof reference_impl_1.ReferenceImpl ? ref.nodeId : ref;
135
- const _key = referenceTypeNodeId.toString();
136
- return !!_index[_key];
137
- }
138
- }
139
- exports.UAReferenceTypeImpl = UAReferenceTypeImpl;
1
+ "use strict";
2
+ /**
3
+ * @module node-opcua-address-space
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.UAReferenceTypeImpl = void 0;
7
+ const node_opcua_assert_1 = require("node-opcua-assert");
8
+ const node_opcua_data_model_1 = require("node-opcua-data-model");
9
+ const node_opcua_data_model_2 = require("node-opcua-data-model");
10
+ const node_opcua_data_model_3 = require("node-opcua-data-model");
11
+ const node_opcua_data_value_1 = require("node-opcua-data-value");
12
+ const node_opcua_status_code_1 = require("node-opcua-status-code");
13
+ const node_opcua_variant_1 = require("node-opcua-variant");
14
+ const source_1 = require("../source");
15
+ const base_node_impl_1 = require("./base_node_impl");
16
+ const tools = require("./tool_isSupertypeOf");
17
+ const tool_isSupertypeOf_1 = require("./tool_isSupertypeOf");
18
+ const reference_impl_1 = require("./reference_impl");
19
+ const base_node_private_1 = require("./base_node_private");
20
+ const ReferenceTypeCounter = { count: 0 };
21
+ function _internal_getAllSubtypes(referenceType) {
22
+ const addressSpace = referenceType.addressSpace;
23
+ const possibleReferenceTypes = [];
24
+ const hasSubtypeReferenceType = addressSpace.findReferenceType("HasSubtype");
25
+ function _findAllSubType(referenceTypeInner) {
26
+ possibleReferenceTypes.push(referenceTypeInner);
27
+ (0, node_opcua_assert_1.assert)(referenceTypeInner.nodeClass === node_opcua_data_model_2.NodeClass.ReferenceType);
28
+ const references = referenceTypeInner.findReferences(hasSubtypeReferenceType, true);
29
+ for (const _r of references) {
30
+ const subType = addressSpace.findReferenceType(_r.nodeId);
31
+ _findAllSubType(subType);
32
+ }
33
+ }
34
+ _findAllSubType(referenceType);
35
+ return possibleReferenceTypes;
36
+ }
37
+ function _getAllSubtypes(ref) {
38
+ const _cache = (0, base_node_private_1.BaseNode_getCache)(ref);
39
+ if (!_cache._allSubTypesVersion || _cache._allSubTypesVersion < ReferenceTypeCounter.count) {
40
+ _cache._allSubTypes = null;
41
+ }
42
+ if (!_cache._allSubTypes) {
43
+ _cache._allSubTypes = _internal_getAllSubtypes(ref);
44
+ _cache._allSubTypesVersion = ReferenceTypeCounter.count;
45
+ }
46
+ return _cache._allSubTypes;
47
+ }
48
+ function _internal_getSubtypeIndex(referenceType) {
49
+ const possibleReferenceTypes = _getAllSubtypes(referenceType);
50
+ // create a index of reference type with browseName as key for faster search
51
+ const keys = {};
52
+ for (const refType of possibleReferenceTypes) {
53
+ keys[refType.nodeId.toString()] = refType;
54
+ }
55
+ return keys;
56
+ }
57
+ function _getSubtypeIndex(referenceType) {
58
+ const _cache = (0, base_node_private_1.BaseNode_getCache)(referenceType);
59
+ if (!_cache._subtype_idx || _cache._subtype_idxVersion < ReferenceTypeCounter.count) {
60
+ // the cache need to be invalidated
61
+ _cache._subtype_idx = null;
62
+ }
63
+ if (!_cache._subtype_idx) {
64
+ _cache._subtype_idx = _internal_getSubtypeIndex(referenceType);
65
+ _cache._subtype_idxVersion = ReferenceTypeCounter.count;
66
+ }
67
+ return _cache._subtype_idx;
68
+ }
69
+ class UAReferenceTypeImpl extends base_node_impl_1.BaseNodeImpl {
70
+ constructor(options) {
71
+ super(options);
72
+ this.nodeClass = node_opcua_data_model_2.NodeClass.ReferenceType;
73
+ /**
74
+ * returns true if self is a super type of baseType
75
+ */
76
+ this.isSupertypeOf = tools.construct_isSupertypeOf(UAReferenceTypeImpl);
77
+ /**
78
+ * @private
79
+ */
80
+ this._slow_isSupertypeOf = tools.construct_slow_isSupertypeOf(UAReferenceTypeImpl);
81
+ this.isAbstract = options.isAbstract === undefined ? false : !!options.isAbstract;
82
+ this.symmetric = options.symmetric === undefined ? false : !!options.symmetric;
83
+ // Note: Inverse name is not required anymore in 1.0.4
84
+ this.inverseName = (0, node_opcua_data_model_1.coerceLocalizedText)(options.inverseName || this.browseName.name);
85
+ ReferenceTypeCounter.count += 1;
86
+ }
87
+ get subtypeOfObj() {
88
+ return tool_isSupertypeOf_1.get_subtypeOfObj.call(this);
89
+ }
90
+ get subtypeOf() {
91
+ return tool_isSupertypeOf_1.get_subtypeOf.call(this);
92
+ }
93
+ readAttribute(context, attributeId) {
94
+ (0, node_opcua_assert_1.assert)(!context || context instanceof source_1.SessionContext);
95
+ const options = {};
96
+ switch (attributeId) {
97
+ case node_opcua_data_model_3.AttributeIds.IsAbstract:
98
+ options.value = { dataType: node_opcua_variant_1.DataType.Boolean, value: !!this.isAbstract };
99
+ options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
100
+ break;
101
+ case node_opcua_data_model_3.AttributeIds.Symmetric:
102
+ options.value = { dataType: node_opcua_variant_1.DataType.Boolean, value: !!this.symmetric };
103
+ options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
104
+ break;
105
+ case node_opcua_data_model_3.AttributeIds.InverseName: // LocalizedText
106
+ options.value = { dataType: node_opcua_variant_1.DataType.LocalizedText, value: this.inverseName };
107
+ options.statusCode = node_opcua_status_code_1.StatusCodes.Good;
108
+ break;
109
+ default:
110
+ return super.readAttribute(context, attributeId);
111
+ }
112
+ return new node_opcua_data_value_1.DataValue(options);
113
+ }
114
+ toString() {
115
+ let str = "";
116
+ str += this.isAbstract ? "A" : " ";
117
+ str += this.symmetric ? "S" : " ";
118
+ str += " " + this.browseName.toString() + "/" + this.inverseName.text + " ";
119
+ str += this.nodeId.toString();
120
+ return str;
121
+ }
122
+ install_extra_properties() {
123
+ /** */
124
+ }
125
+ /**
126
+ * returns a array of all ReferenceTypes in the addressSpace that are self or a subType of self
127
+ * recursively
128
+ */
129
+ getAllSubtypes() {
130
+ return _getAllSubtypes(this);
131
+ }
132
+ checkHasSubtype(ref) {
133
+ const _index = _getSubtypeIndex(this);
134
+ const referenceTypeNodeId = ref instanceof reference_impl_1.ReferenceImpl ? ref.nodeId : ref;
135
+ const _key = referenceTypeNodeId.toString();
136
+ return !!_index[_key];
137
+ }
138
+ }
139
+ exports.UAReferenceTypeImpl = UAReferenceTypeImpl;
140
140
  //# sourceMappingURL=ua_reference_type_impl.js.map