node-opcua-address-space 2.97.0 → 2.98.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. package/dist/source/address_space_ts.d.ts +118 -118
  2. package/dist/source/address_space_ts.js +17 -17
  3. package/dist/source/continuation_points/continuation_point_manager.d.ts +91 -91
  4. package/dist/source/continuation_points/continuation_point_manager.js +200 -200
  5. package/dist/source/helpers/adjust_browse_direction.d.ts +5 -5
  6. package/dist/source/helpers/adjust_browse_direction.js +11 -11
  7. package/dist/source/helpers/argument_list.d.ts +33 -33
  8. package/dist/source/helpers/argument_list.js +254 -254
  9. package/dist/source/helpers/call_helpers.d.ts +6 -6
  10. package/dist/source/helpers/call_helpers.js +71 -71
  11. package/dist/source/helpers/coerce_enum_value.d.ts +6 -6
  12. package/dist/source/helpers/coerce_enum_value.js +33 -33
  13. package/dist/source/helpers/dump_tools.d.ts +14 -14
  14. package/dist/source/helpers/dump_tools.js +78 -78
  15. package/dist/source/helpers/ensure_secure_access.d.ts +9 -9
  16. package/dist/source/helpers/ensure_secure_access.js +76 -76
  17. package/dist/source/helpers/make_optionals_map.d.ts +21 -21
  18. package/dist/source/helpers/make_optionals_map.js +29 -29
  19. package/dist/source/helpers/multiform_func.d.ts +11 -11
  20. package/dist/source/helpers/multiform_func.js +75 -75
  21. package/dist/source/helpers/resolve_opaque_on_address_space.d.ts +3 -3
  22. package/dist/source/helpers/resolve_opaque_on_address_space.js +36 -36
  23. package/dist/source/index.d.ts +61 -61
  24. package/dist/source/index.js +89 -89
  25. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +19 -19
  26. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +2 -2
  27. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.d.ts +193 -193
  28. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.js +2 -2
  29. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.d.ts +12 -12
  30. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.js +2 -2
  31. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.d.ts +10 -10
  32. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.js +2 -2
  33. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +7 -7
  34. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js +2 -2
  35. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts +7 -7
  36. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.js +2 -2
  37. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +4 -4
  38. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js +2 -2
  39. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +4 -4
  40. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js +2 -2
  41. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +9 -9
  42. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js +2 -2
  43. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +4 -4
  44. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js +2 -2
  45. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +4 -4
  46. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js +2 -2
  47. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +20 -20
  48. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js +2 -2
  49. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +23 -23
  50. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js +2 -2
  51. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +32 -32
  52. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js +2 -2
  53. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +19 -19
  54. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js +2 -2
  55. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +45 -42
  56. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.js +2 -2
  57. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +7 -7
  58. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js +25 -25
  59. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +5 -5
  60. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js +2 -2
  61. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +20 -20
  62. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js +2 -2
  63. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +26 -26
  64. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js +2 -2
  65. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +8 -8
  66. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js +2 -2
  67. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +10 -10
  68. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js +2 -2
  69. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +21 -21
  70. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js +2 -2
  71. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +24 -24
  72. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js +2 -2
  73. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +12 -12
  74. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js +2 -2
  75. package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +8 -8
  76. package/dist/source/interfaces/data_access/ua_y_array_item_ex.js +2 -2
  77. package/dist/source/interfaces/extension_object_constructor.d.ts +10 -10
  78. package/dist/source/interfaces/extension_object_constructor.js +2 -2
  79. package/dist/source/interfaces/nodeset_loader_options.d.ts +4 -4
  80. package/dist/source/interfaces/nodeset_loader_options.js +2 -2
  81. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -12
  82. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +2 -2
  83. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -49
  84. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js +2 -2
  85. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -11
  86. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js +2 -2
  87. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +30 -30
  88. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.js +2 -2
  89. package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +234 -234
  90. package/dist/source/interfaces/state_machine/ua_state_machine_type.js +2 -2
  91. package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +6 -6
  92. package/dist/source/interfaces/state_machine/ua_transition_ex.js +2 -2
  93. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +8 -8
  94. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +2 -2
  95. package/dist/source/loader/decode_xml_extension_object.d.ts +6 -6
  96. package/dist/source/loader/decode_xml_extension_object.js +71 -71
  97. package/dist/source/loader/ensure_datatype_extracted.d.ts +5 -5
  98. package/dist/source/loader/ensure_datatype_extracted.js +70 -70
  99. package/dist/source/loader/generateAddressSpaceRaw.d.ts +11 -11
  100. package/dist/source/loader/generateAddressSpaceRaw.js +45 -45
  101. package/dist/source/loader/load_nodeset2.d.ts +17 -17
  102. package/dist/source/loader/load_nodeset2.js +1483 -1483
  103. package/dist/source/loader/make_semver_compatible.d.ts +6 -6
  104. package/dist/source/loader/make_semver_compatible.js +25 -25
  105. package/dist/source/loader/make_xml_extension_object_parser.d.ts +28 -28
  106. package/dist/source/loader/make_xml_extension_object_parser.js +326 -326
  107. package/dist/source/loader/namespace_post_step.d.ts +10 -10
  108. package/dist/source/loader/namespace_post_step.js +61 -61
  109. package/dist/source/loader/register_node_promoter.d.ts +2 -2
  110. package/dist/source/loader/register_node_promoter.js +9 -9
  111. package/dist/source/namespace.d.ts +6 -6
  112. package/dist/source/namespace.js +2 -2
  113. package/dist/source/namespace_alarm_and_condition.d.ts +32 -32
  114. package/dist/source/namespace_alarm_and_condition.js +2 -2
  115. package/dist/source/namespace_data_access.d.ts +42 -42
  116. package/dist/source/namespace_data_access.js +2 -2
  117. package/dist/source/namespace_machine_state.d.ts +8 -8
  118. package/dist/source/namespace_machine_state.js +2 -2
  119. package/dist/source/pseudo_session.d.ts +72 -72
  120. package/dist/source/pseudo_session.js +254 -254
  121. package/dist/source/session_context.d.ts +111 -111
  122. package/dist/source/session_context.js +264 -264
  123. package/dist/source/session_context.js.map +1 -1
  124. package/dist/source/set_namespace_meta_data.d.ts +2 -2
  125. package/dist/source/set_namespace_meta_data.js +59 -59
  126. package/dist/source/ua_root_folder.d.ts +9 -9
  127. package/dist/source/ua_root_folder.js +2 -2
  128. package/dist/source/ua_two_state_variable_ex.d.ts +23 -23
  129. package/dist/source/ua_two_state_variable_ex.js +2 -2
  130. package/dist/source/xml_writer.d.ts +18 -18
  131. package/dist/source/xml_writer.js +2 -2
  132. package/dist/src/address_space.d.ts +387 -387
  133. package/dist/src/address_space.js +1385 -1385
  134. package/dist/src/address_space.js.map +1 -1
  135. package/dist/src/address_space_change_event_tools.d.ts +6 -6
  136. package/dist/src/address_space_change_event_tools.js +152 -152
  137. package/dist/src/address_space_private.d.ts +43 -43
  138. package/dist/src/address_space_private.js +2 -2
  139. package/dist/src/alarms_and_conditions/condition.d.ts +5 -5
  140. package/dist/src/alarms_and_conditions/condition.js +78 -78
  141. package/dist/src/alarms_and_conditions/condition_info_impl.d.ts +26 -26
  142. package/dist/src/alarms_and_conditions/condition_info_impl.js +54 -54
  143. package/dist/src/alarms_and_conditions/condition_snapshot_impl.d.ts +222 -222
  144. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js +657 -657
  145. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js.map +1 -1
  146. package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +9 -9
  147. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +60 -60
  148. package/dist/src/alarms_and_conditions/index.d.ts +16 -16
  149. package/dist/src/alarms_and_conditions/index.js +32 -32
  150. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +44 -44
  151. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -244
  152. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +93 -93
  153. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +418 -418
  154. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js.map +1 -1
  155. package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +26 -26
  156. package/dist/src/alarms_and_conditions/ua_base_event_impl.js +38 -38
  157. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +44 -44
  158. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +183 -183
  159. package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +155 -153
  160. package/dist/src/alarms_and_conditions/ua_condition_impl.js +1028 -1028
  161. package/dist/src/alarms_and_conditions/ua_condition_impl.js.map +1 -1
  162. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +14 -14
  163. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +34 -34
  164. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +24 -24
  165. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +56 -56
  166. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +11 -11
  167. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +11 -11
  168. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +23 -23
  169. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +86 -86
  170. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +11 -11
  171. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +7 -7
  172. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +79 -79
  173. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +250 -250
  174. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +24 -24
  175. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +50 -50
  176. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +19 -19
  177. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +162 -162
  178. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +46 -46
  179. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +165 -165
  180. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +18 -18
  181. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +17 -17
  182. package/dist/src/apply_condition_refresh.d.ts +6 -6
  183. package/dist/src/apply_condition_refresh.js +27 -27
  184. package/dist/src/base_node_impl.d.ts +284 -284
  185. package/dist/src/base_node_impl.js +1454 -1454
  186. package/dist/src/base_node_private.d.ts +81 -81
  187. package/dist/src/base_node_private.js +832 -803
  188. package/dist/src/base_node_private.js.map +1 -1
  189. package/dist/src/check_value_rank_compatibility.d.ts +15 -15
  190. package/dist/src/check_value_rank_compatibility.js +81 -81
  191. package/dist/src/data_access/add_dataItem_stuff.d.ts +11 -11
  192. package/dist/src/data_access/add_dataItem_stuff.js +61 -61
  193. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.d.ts +1 -1
  194. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js +34 -34
  195. package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +32 -32
  196. package/dist/src/data_access/ua_multistate_discrete_impl.js +130 -130
  197. package/dist/src/data_access/ua_multistate_value_discrete_impl.d.ts +52 -52
  198. package/dist/src/data_access/ua_multistate_value_discrete_impl.js +253 -253
  199. package/dist/src/data_access/ua_two_state_discrete_impl.d.ts +25 -25
  200. package/dist/src/data_access/ua_two_state_discrete_impl.js +155 -155
  201. package/dist/src/event_data.d.ts +34 -34
  202. package/dist/src/event_data.js +64 -64
  203. package/dist/src/extension_object_array_node.d.ts +23 -23
  204. package/dist/src/extension_object_array_node.js +248 -248
  205. package/dist/src/historical_access/address_space_historical_data_node.d.ts +26 -26
  206. package/dist/src/historical_access/address_space_historical_data_node.js +652 -652
  207. package/dist/src/idx_iterator.d.ts +8 -8
  208. package/dist/src/idx_iterator.js +50 -50
  209. package/dist/src/index_current.d.ts +46 -46
  210. package/dist/src/index_current.js +77 -77
  211. package/dist/src/namespace_impl.d.ts +456 -456
  212. package/dist/src/namespace_impl.js +1762 -1762
  213. package/dist/src/namespace_impl.js.map +1 -1
  214. package/dist/src/namespace_private.d.ts +23 -23
  215. package/dist/src/namespace_private.js +32 -32
  216. package/dist/src/nodeid_manager.d.ts +37 -37
  217. package/dist/src/nodeid_manager.js +183 -183
  218. package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +2 -2
  219. package/dist/src/nodeset_tools/adjust_namespace_array.js +13 -13
  220. package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +18 -18
  221. package/dist/src/nodeset_tools/construct_namespace_dependency.js +140 -140
  222. package/dist/src/nodeset_tools/dump_to_bsd.d.ts +2 -2
  223. package/dist/src/nodeset_tools/dump_to_bsd.js +164 -164
  224. package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +10 -10
  225. package/dist/src/nodeset_tools/nodeset_to_xml.js +1287 -1287
  226. package/dist/src/private_namespace.d.ts +5 -5
  227. package/dist/src/private_namespace.js +19 -19
  228. package/dist/src/reference_impl.d.ts +43 -43
  229. package/dist/src/reference_impl.js +139 -139
  230. package/dist/src/role_permissions.d.ts +2 -2
  231. package/dist/src/role_permissions.js +10 -10
  232. package/dist/src/state_machine/finite_state_machine.d.ts +81 -81
  233. package/dist/src/state_machine/finite_state_machine.js +388 -388
  234. package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +38 -38
  235. package/dist/src/state_machine/ua_shelving_state_machine_ex.js +250 -250
  236. package/dist/src/state_machine/ua_two_state_variable.d.ts +61 -61
  237. package/dist/src/state_machine/ua_two_state_variable.js +331 -331
  238. package/dist/src/tool_isSubtypeOf.d.ts +18 -18
  239. package/dist/src/tool_isSubtypeOf.js +124 -124
  240. package/dist/src/ua_condition_type.d.ts +8 -8
  241. package/dist/src/ua_condition_type.js +2 -2
  242. package/dist/src/ua_data_type_impl.d.ts +89 -89
  243. package/dist/src/ua_data_type_impl.js +368 -368
  244. package/dist/src/ua_method_impl.d.ts +42 -42
  245. package/dist/src/ua_method_impl.js +217 -217
  246. package/dist/src/ua_object_impl.d.ts +35 -35
  247. package/dist/src/ua_object_impl.js +168 -168
  248. package/dist/src/ua_object_type_impl.d.ts +50 -50
  249. package/dist/src/ua_object_type_impl.js +126 -126
  250. package/dist/src/ua_reference_type_impl.d.ts +45 -45
  251. package/dist/src/ua_reference_type_impl.js +141 -141
  252. package/dist/src/ua_variable_impl.d.ts +380 -380
  253. package/dist/src/ua_variable_impl.js +1738 -1738
  254. package/dist/src/ua_variable_impl_ext_obj.d.ts +23 -23
  255. package/dist/src/ua_variable_impl_ext_obj.js +670 -670
  256. package/dist/src/ua_variable_type_impl.d.ts +74 -74
  257. package/dist/src/ua_variable_type_impl.js +597 -581
  258. package/dist/src/ua_variable_type_impl.js.map +1 -1
  259. package/dist/src/ua_view_impl.d.ts +19 -19
  260. package/dist/src/ua_view_impl.js +43 -43
  261. package/dist/tsconfig_common.tsbuildinfo +1 -0
  262. package/distHelpers/add_event_generator_object.d.ts +3 -3
  263. package/distHelpers/add_event_generator_object.js +64 -64
  264. package/distHelpers/alarms_and_conditions_demo.d.ts +9 -9
  265. package/distHelpers/alarms_and_conditions_demo.js +115 -115
  266. package/distHelpers/assertHasMatchingReference.d.ts +19 -19
  267. package/distHelpers/assertHasMatchingReference.js +40 -40
  268. package/distHelpers/boiler_system.d.ts +113 -113
  269. package/distHelpers/boiler_system.js +395 -395
  270. package/distHelpers/create_minimalist_address_space_nodeset.d.ts +5 -5
  271. package/distHelpers/create_minimalist_address_space_nodeset.js +171 -171
  272. package/distHelpers/date_utils.d.ts +3 -3
  273. package/distHelpers/date_utils.js +9 -9
  274. package/distHelpers/dump_statemachine.js +127 -127
  275. package/distHelpers/get_address_space_fixture.d.ts +1 -1
  276. package/distHelpers/get_address_space_fixture.js +30 -30
  277. package/distHelpers/get_mini_address_space.d.ts +7 -7
  278. package/distHelpers/get_mini_address_space.js +36 -36
  279. package/distHelpers/index.d.ts +12 -12
  280. package/distHelpers/index.js +28 -28
  281. package/distHelpers/mock_session.d.ts +10 -10
  282. package/distHelpers/mock_session.js +25 -25
  283. package/distNodeJS/generate_address_space.d.ts +6 -6
  284. package/distNodeJS/generate_address_space.js +52 -52
  285. package/distNodeJS/index.d.ts +1 -1
  286. package/distNodeJS/index.js +17 -17
  287. package/package.json +51 -40
  288. package/source/interfaces/alarms_and_conditions/ua_condition_ex.ts +4 -3
  289. package/src/alarms_and_conditions/ua_condition_impl.ts +14 -9
  290. package/src/base_node_private.ts +73 -28
  291. package/src/ua_variable_type_impl.ts +35 -17
  292. package/.mocharc.yml +0 -12
  293. package/dist/src/tool_isSupertypeOf.d.ts +0 -18
  294. package/dist/src/tool_isSupertypeOf.js +0 -125
  295. package/dist/src/tool_isSupertypeOf.js.map +0 -1
  296. package/generate.js +0 -1
  297. package/source_nodejs/generate_address_space.ts +0 -60
  298. package/source_nodejs/index.ts +0 -1
  299. package/test_helpers/add_event_generator_object.ts +0 -71
  300. package/test_helpers/alarms_and_conditions_demo.ts +0 -151
  301. package/test_helpers/assertHasMatchingReference.ts +0 -43
  302. package/test_helpers/boiler_system.ts +0 -610
  303. package/test_helpers/create_minimalist_address_space_nodeset.ts +0 -208
  304. package/test_helpers/date_utils.ts +0 -5
  305. package/test_helpers/dump_statemachine.ts +0 -155
  306. package/test_helpers/get_address_space_fixture.ts +0 -30
  307. package/test_helpers/get_mini_address_space.ts +0 -42
  308. package/test_helpers/index.ts +0 -12
  309. package/test_helpers/mock_session.ts +0 -34
  310. package/test_helpers/test_fixtures/dataType_in_separateNamespace.xml +0 -150
  311. package/test_helpers/test_fixtures/dataType_in_separateNamespace_basic.xml +0 -57
  312. package/test_helpers/test_fixtures/dataType_in_separateNamespace_mix.xml +0 -136
  313. package/test_helpers/test_fixtures/dataType_issue.xml +0 -80
  314. package/test_helpers/test_fixtures/dataType_withEnumeration.xml +0 -82
  315. package/test_helpers/test_fixtures/dataType_with_isOptionSet.xml +0 -194
  316. package/test_helpers/test_fixtures/dataType_with_qualifiedname.xml +0 -71
  317. package/test_helpers/test_fixtures/dataType_with_recursive_structure.xml +0 -155
  318. package/test_helpers/test_fixtures/dataType_with_structures.xml +0 -605
  319. package/test_helpers/test_fixtures/dataType_with_union.xml +0 -90
  320. package/test_helpers/test_fixtures/datatype_as_per_1.04.xml +0 -118
  321. package/test_helpers/test_fixtures/datatype_with_allow_subtype.xml +0 -104
  322. package/test_helpers/test_fixtures/eurange_issue.xml +0 -74
  323. package/test_helpers/test_fixtures/example_issue1096.xml +0 -267
  324. package/test_helpers/test_fixtures/fixture_empty_nodeset2.xml +0 -106
  325. package/test_helpers/test_fixtures/fixture_simple_statemachine_nodeset2.xml +0 -1305
  326. package/test_helpers/test_fixtures/fixuture_nodeset_objects_with_some_methods.xml +0 -370
  327. package/test_helpers/test_fixtures/issue_1132_variable_with_nodeid_value.xml +0 -68
  328. package/test_helpers/test_fixtures/issue_846.xml +0 -3172
  329. package/test_helpers/test_fixtures/issue_899_variable_with_nodeid_value.xml +0 -33
  330. package/test_helpers/test_fixtures/mini.Node.Set2.xml +0 -4736
  331. package/test_helpers/test_fixtures/mini.nodeset.withVariousVariables.xml +0 -196
  332. package/test_helpers/test_fixtures/minimalist_nodeset_with_models.xml +0 -8
  333. package/test_helpers/test_fixtures/minimalist_nodeset_with_models_more_complex.xml +0 -20
  334. package/test_helpers/test_fixtures/nodeset_no_aliases.xml +0 -30
  335. package/test_helpers/test_fixtures/nodeset_no_aliases_with_aliases.xml +0 -31
  336. package/test_helpers/test_fixtures/nodeset_with_analog_items.xml +0 -45
  337. package/test_helpers/test_fixtures/nodeset_with_guid.xml +0 -1442
  338. package/test_helpers/test_fixtures/nodeset_with_int64_values.xml +0 -31
  339. package/test_helpers/test_fixtures/nodeset_with_special_char.xml +0 -34
  340. package/test_helpers/test_fixtures/nodeset_with_utf8_special_characters.xml +0 -20
  341. package/test_helpers/test_fixtures/variable_with_value.xml +0 -143
  342. package/test_helpers/test_fixtures/variabletype_with_value.xml +0 -324
@@ -31,7 +31,8 @@ import {
31
31
  UAEventType,
32
32
  BaseNode,
33
33
  UAObject,
34
- InstantiateObjectOptions
34
+ InstantiateObjectOptions,
35
+ UAProperty
35
36
  } from "node-opcua-address-space-base";
36
37
  import { UAConditionVariable } from "node-opcua-nodeset-ua";
37
38
 
@@ -48,7 +49,6 @@ import { UAConditionType } from "../ua_condition_type";
48
49
  import { UABaseEventImpl } from "./ua_base_event_impl";
49
50
  import { ConditionSnapshotImpl } from "./condition_snapshot_impl";
50
51
 
51
-
52
52
  const debugLog = make_debugLog(__filename);
53
53
  const errorLog = make_errorLog(__filename);
54
54
  const doDebug = checkDebugFlag(__filename);
@@ -56,6 +56,8 @@ const warningLog = make_warningLog(__filename);
56
56
 
57
57
  export declare interface UAConditionImpl extends UAConditionEx, UABaseEventImpl {
58
58
  on(eventName: string, eventHandler: any): this;
59
+ conditionClassId: UAProperty<NodeId, /*c*/ DataType.NodeId>;
60
+ conditionClassName: UAProperty<LocalizedText, /*c*/ DataType.LocalizedText>;
59
61
  }
60
62
  /**
61
63
  *
@@ -452,7 +454,11 @@ export class UAConditionImpl extends UABaseEventImpl implements UAConditionEx {
452
454
  }
453
455
  }
454
456
  } else {
455
- warningLog("Condition ", this.nodeId.toString(), "is not linked to a Object with a IsConditionOf(reversed(HasCondition))");
457
+ warningLog(
458
+ "Condition ",
459
+ this.nodeId.toString(),
460
+ "is not linked to a Object with a IsConditionOf(reversed(HasCondition))"
461
+ );
456
462
  }
457
463
  // xx console.log("MMMMMMMM%%%%%%%%%%%%%%%%%%%%% branch " +
458
464
  // branch.getBranchId().toString() + " eventId = " + branch.getEventId().toString("hex"));
@@ -647,7 +653,6 @@ export class UAConditionImpl extends UABaseEventImpl implements UAConditionEx {
647
653
  }
648
654
  }
649
655
 
650
-
651
656
  /**
652
657
  * instantiate a Condition.
653
658
  * this will create the unique EventId and will set eventType
@@ -1126,11 +1131,11 @@ function _add_comment_method(
1126
1131
  callback: CallbackT<CallMethodResultOptions>
1127
1132
  ) {
1128
1133
  //
1129
- // The AddComment Method is used to apply a comment to a specific state of a Condition
1130
- // instance. Normally, the NodeId of the Object instance is passed as the ObjectId to the Call
1131
- // Service. However, some Servers do not expose Condition instances in the AddressSpace.
1132
- // Therefore, all Servers shall also allow Clients to call the AddComment Method by specifying
1133
- // ConditionId as the ObjectId. The Method cannot be called with an ObjectId of the
1134
+ // The AddComment Method is used to apply a comment to a specific state of a Condition
1135
+ // instance. Normally, the NodeId of the Object instance is passed as the ObjectId to the Call
1136
+ // Service. However, some Servers do not expose Condition instances in the AddressSpace.
1137
+ // Therefore, all Servers shall also allow Clients to call the AddComment Method by specifying
1138
+ // ConditionId as the ObjectId. The Method cannot be called with an ObjectId of the
1134
1139
  // ConditionType Node.
1135
1140
  // Signature
1136
1141
  // - EventId EventId identifying a particular Event Notification where a state was reported for a
@@ -527,8 +527,8 @@ function _clone_children_on_template(
527
527
  return;
528
528
  }
529
529
  // we have found a matching child on the new parent.
530
- // the mission is to enrich this child node with compoents and property that
531
- // exists also in the template
530
+ // the mission is to enrich this child node with components and properties that
531
+ // exist also in the template
532
532
 
533
533
  let typeDefinitionNode: UAVariableType | UAObjectType | null = nodeToCloneTypeDefinition;
534
534
  while (typeDefinitionNode) {
@@ -580,7 +580,18 @@ function _clone_children_on_template(
580
580
  ],
581
581
  copyAlsoModellingRules
582
582
  };
583
- const a = grandChild.clone(options, optionalFilter, extraInfo);
583
+
584
+ const alreadyCloned = extraInfo.getCloned(grandChild);
585
+ if (alreadyCloned) {
586
+ alreadyCloned.addReference({
587
+ referenceType: ref.referenceType,
588
+ isForward: false,
589
+ nodeId: newParentChild.nodeId
590
+ });
591
+ } else {
592
+ const a = grandChild.clone(options, optionalFilter, extraInfo);
593
+ extraInfo.registerClonedObject(a,grandChild);
594
+ }
584
595
  }
585
596
  }
586
597
  }
@@ -664,20 +675,36 @@ function _clone_collection_new(
664
675
  );
665
676
 
666
677
  extraInfo.level += 4;
667
- const clone = node.clone(options, optionalFilter, extraInfo);
668
- extraInfo.level -= 4;
669
- doTrace && traceLog(extraInfo.pad(), "cloning => ", node.browseName.toString(), "nodeId", clone.nodeId.toString());
670
678
 
671
- extraInfo.level++;
672
- _clone_children_on_template(nodeToClone, newParent, node, copyAlsoModellingRules, optionalFilter, extraInfo, browseNameMap);
673
- extraInfo.level--;
679
+ const alreadyCloned = extraInfo.getCloned(node);
680
+ if (alreadyCloned) {
681
+ alreadyCloned.addReference({
682
+ referenceType: reference.referenceType,
683
+ isForward: false,
684
+ nodeId: newParent.nodeId
685
+ });
686
+ } else {
687
+ const clone = node.clone(options, optionalFilter, extraInfo);
674
688
 
675
- // also clone or instantiate interface members that may be required in the optionals
676
- extraInfo.level++;
677
- _cloneInterface(nodeToClone, newParent, node, optionalFilter, extraInfo, browseNameMap);
678
- extraInfo.level--;
689
+ extraInfo.level -= 4;
690
+ doTrace && traceLog(extraInfo.pad(), "cloning => ", node.browseName.toString(), "nodeId", clone.nodeId.toString());
679
691
 
680
- if (extraInfo) {
692
+ extraInfo.level++;
693
+ _clone_children_on_template(
694
+ nodeToClone,
695
+ newParent,
696
+ node,
697
+ copyAlsoModellingRules,
698
+ optionalFilter,
699
+ extraInfo,
700
+ browseNameMap
701
+ );
702
+ extraInfo.level--;
703
+
704
+ // also clone or instantiate interface members that may be required in the optionals
705
+ extraInfo.level++;
706
+ _cloneInterface(nodeToClone, newParent, node, optionalFilter, extraInfo, browseNameMap);
707
+ extraInfo.level--;
681
708
  extraInfo.registerClonedObject(node, clone);
682
709
  }
683
710
  }
@@ -787,7 +814,7 @@ function _crap_extractInterfaces(typeDefinitionNode: UAObjectType | UAVariableTy
787
814
  const addressSpace = typeDefinitionNode.addressSpace;
788
815
  // example:
789
816
  // FolderType
790
- // FunctionalGroupType
817
+ // (di):FunctionalGroupType
791
818
  // MachineryItemIdentificationType : IMachineryItemVendorNameplateType
792
819
  // MachineIdentificationType : IMachineTagNameplateType, IMachineVendorNamePlateType
793
820
  // MachineToolIdentificationType
@@ -852,7 +879,21 @@ function _cloneInterface(
852
879
  _clone_collection_new(nodeToClone, node, aggregates, false, localFilter, extraInfo, browseNameMap);
853
880
  }
854
881
  }
855
- export function _clone_children_references(
882
+
883
+ function __clone_organizes_references(
884
+ node: UAObject | UAVariable | UAMethod | UAObjectType | UAVariableType,
885
+ newParent: UAObject | UAVariable | UAMethod,
886
+ copyAlsoModellingRules: boolean,
887
+ optionalFilter: CloneFilter,
888
+ extraInfo: CloneExtraInfo,
889
+ browseNameMap: Set<string>
890
+ ): void {
891
+ // find all references that derives from the Organizes
892
+ const organizedRef = node.findReferencesEx("Organizes", BrowseDirection.Forward);
893
+ _clone_collection_new(node, newParent, organizedRef, copyAlsoModellingRules, optionalFilter, extraInfo, browseNameMap);
894
+ }
895
+
896
+ function __clone_children_references(
856
897
  node: UAObject | UAVariable | UAMethod | UAObjectType | UAVariableType,
857
898
  newParent: UAObject | UAVariable | UAMethod,
858
899
  copyAlsoModellingRules: boolean,
@@ -860,11 +901,22 @@ export function _clone_children_references(
860
901
  extraInfo: CloneExtraInfo,
861
902
  browseNameMap: Set<string>
862
903
  ): void {
863
- // find all reference that derives from the Aggregates
904
+ // find all references that derives from the Aggregates
864
905
  const aggregatesRef = node.findReferencesEx("Aggregates", BrowseDirection.Forward);
865
906
  _clone_collection_new(node, newParent, aggregatesRef, copyAlsoModellingRules, optionalFilter, extraInfo, browseNameMap);
866
907
  }
867
908
 
909
+ export function _clone_hierarchical_references(
910
+ node: UAObject | UAVariable | UAMethod | UAObjectType | UAVariableType,
911
+ newParent: UAObject | UAVariable | UAMethod,
912
+ copyAlsoModellingRules: boolean,
913
+ optionalFilter: CloneFilter,
914
+ extraInfo: CloneExtraInfo,
915
+ browseNameMap: Set<string>
916
+ ) {
917
+ __clone_children_references(node, newParent, copyAlsoModellingRules, optionalFilter, extraInfo, browseNameMap);
918
+ __clone_organizes_references(node, newParent, copyAlsoModellingRules, optionalFilter, extraInfo, browseNameMap);
919
+ }
868
920
  export function _clone_non_hierarchical_references(
869
921
  nodeToClone: UAObject | UAVariable | UAMethod | UAObjectType | UAVariableType,
870
922
  newParent: BaseNode,
@@ -900,7 +952,7 @@ export function _clone<T extends UAObject | UAVariable | UAMethod>(
900
952
  !extraInfo || (extraInfo !== null && typeof extraInfo === "object" && typeof extraInfo.registerClonedObject === "function")
901
953
  );
902
954
  assert(!(this as any).subtypeOf, "We do not do cloning of Type yet");
903
-
955
+ assert(!extraInfo.getCloned(this), "object has already been cloned");
904
956
  const namespace = options.namespace;
905
957
  const constructorOptions: any = {
906
958
  ...options,
@@ -955,7 +1007,7 @@ export function _clone<T extends UAObject | UAVariable | UAMethod>(
955
1007
  const newFilter = optionalFilter.filterFor(cloneObj);
956
1008
 
957
1009
  const browseNameMap = new Set<string>();
958
- _clone_children_references(this, cloneObj, options.copyAlsoModellingRules, newFilter!, extraInfo, browseNameMap);
1010
+ _clone_hierarchical_references(this, cloneObj, options.copyAlsoModellingRules, newFilter!, extraInfo, browseNameMap);
959
1011
 
960
1012
  if (this.nodeClass === NodeClass.Object || this.nodeClass === NodeClass.Variable) {
961
1013
  let typeDefinitionNode: UAVariableType | UAObjectType | null = this.typeDefinitionObj;
@@ -965,7 +1017,7 @@ export function _clone<T extends UAObject | UAVariable | UAMethod>(
965
1017
  extraInfo?.pad(),
966
1018
  chalk.blueBright("---------------------- Exploring ", typeDefinitionNode.browseName.toString())
967
1019
  );
968
- _clone_children_references(
1020
+ _clone_hierarchical_references(
969
1021
  typeDefinitionNode,
970
1022
  cloneObj,
971
1023
  options.copyAlsoModellingRules,
@@ -976,14 +1028,7 @@ export function _clone<T extends UAObject | UAVariable | UAMethod>(
976
1028
  typeDefinitionNode = typeDefinitionNode.subtypeOfObj;
977
1029
  }
978
1030
  }
979
- _clone_non_hierarchical_references(
980
- this,
981
- cloneObj,
982
- options.copyAlsoModellingRules,
983
- newFilter,
984
- extraInfo,
985
- browseNameMap
986
- );
1031
+ _clone_non_hierarchical_references(this, cloneObj, options.copyAlsoModellingRules, newFilter, extraInfo, browseNameMap);
987
1032
  }
988
1033
  cloneObj.propagate_back_references();
989
1034
  cloneObj.install_extra_properties();
@@ -36,7 +36,7 @@ import { makeOptionalsMap, OptionalMap } from "../source/helpers/make_optionals_
36
36
 
37
37
  import { AddressSpacePrivate } from "./address_space_private";
38
38
  import { BaseNodeImpl, InternalBaseNodeOptions } from "./base_node_impl";
39
- import { _clone_children_references, ToStringBuilder, UAVariableType_toString } from "./base_node_private";
39
+ import { _clone_hierarchical_references, ToStringBuilder, UAVariableType_toString } from "./base_node_private";
40
40
  import * as tools from "./tool_isSubtypeOf";
41
41
  import { get_subtypeOfObj } from "./tool_isSubtypeOf";
42
42
  import { get_subtypeOf } from "./tool_isSubtypeOf";
@@ -51,7 +51,6 @@ const errorLog = make_errorLog(__filename);
51
51
  let doTrace = checkDebugFlag("INSTANTIATE");
52
52
  const traceLog = errorLog;
53
53
 
54
-
55
54
  interface InstantiateS {
56
55
  propertyOf?: any;
57
56
  componentOf?: any;
@@ -104,7 +103,7 @@ export interface UAVariableTypeOptions extends InternalBaseNodeOptions {
104
103
  dataType: NodeIdLike;
105
104
  }
106
105
 
107
- function deprecate<T>(func: T):T {
106
+ function deprecate<T>(func: T): T {
108
107
  return func;
109
108
  }
110
109
  export class UAVariableTypeImpl extends BaseNodeImpl implements UAVariableType {
@@ -120,8 +119,8 @@ export class UAVariableTypeImpl extends BaseNodeImpl implements UAVariableType {
120
119
 
121
120
  public isSubtypeOf = tools.construct_isSubtypeOf<UAVariableType>(UAVariableTypeImpl);
122
121
 
123
- /** @deprecated - use isSubtypeOf instead */
124
- public isSupertypeOf = deprecate(tools.construct_isSubtypeOf<UAVariableType>(UAVariableTypeImpl));
122
+ /** @deprecated - use isSubtypeOf instead */
123
+ public isSupertypeOf = deprecate(tools.construct_isSubtypeOf<UAVariableType>(UAVariableTypeImpl));
125
124
 
126
125
  public readonly isAbstract: boolean;
127
126
  public dataType: NodeId;
@@ -492,6 +491,13 @@ class CloneHelper {
492
491
  }
493
492
  // find subTypeOf
494
493
  }
494
+ public getCloned(original: UAVariableType | UAObjectType): UAObject | UAVariable | UAMethod | null {
495
+ const info = this.mapOrgToClone.get(original.nodeId.toString());
496
+ if (info) {
497
+ return info.cloned;
498
+ }
499
+ return null;
500
+ }
495
501
  }
496
502
  // install properties and components on a instantiated Object
497
503
  //
@@ -508,12 +514,13 @@ function _initialize_properties_and_components<B extends UAObject | UAVariable |
508
514
  typeDefinitionNode: T,
509
515
  copyAlsoModellingRules: boolean,
510
516
  optionalsMap: OptionalMap,
511
- extraInfo: CloneHelper
517
+ extraInfo: CloneHelper,
518
+ browseNameMap: Set<string>
512
519
  ) {
513
520
  if (doDebug) {
514
521
  debugLog("instance browseName =", instance.browseName.toString());
515
- debugLog("typeNode =", typeDefinitionNode.browseName.toString());
516
- debugLog("optionalsMap =", Object.keys(optionalsMap).join(" "));
522
+ debugLog("typeNode =", typeDefinitionNode.browseName.toString());
523
+ debugLog("optionalsMap =", Object.keys(optionalsMap).join(" "));
517
524
 
518
525
  const c = typeDefinitionNode.findReferencesEx("Aggregates");
519
526
  debugLog("typeDefinition aggregates =", c.map((x) => x.node!.browseName.toString()).join(" "));
@@ -532,9 +539,8 @@ function _initialize_properties_and_components<B extends UAObject | UAVariable |
532
539
  typeDefinitionNode.browseName.toString()
533
540
  );
534
541
 
535
- const browseNameMap = new Set<string>();
536
-
537
- _clone_children_references(typeDefinitionNode, instance, copyAlsoModellingRules, filter, extraInfo, browseNameMap);
542
+
543
+ _clone_hierarchical_references(typeDefinitionNode, instance, copyAlsoModellingRules, filter, extraInfo, browseNameMap);
538
544
 
539
545
  // now apply recursion on baseTypeDefinition to get properties and components from base class
540
546
 
@@ -561,7 +567,8 @@ function _initialize_properties_and_components<B extends UAObject | UAVariable |
561
567
  baseTypeDefinition,
562
568
  copyAlsoModellingRules,
563
569
  optionalsMap,
564
- extraInfo
570
+ extraInfo,
571
+ browseNameMap
565
572
  );
566
573
  extraInfo.level--;
567
574
  }
@@ -616,9 +623,9 @@ export function assertUnusedChildBrowseName(addressSpace: AddressSpacePrivate, o
616
623
  if (parent && hasChildWithBrowseName(parent, coerceQualifiedName(options.browseName))) {
617
624
  throw new Error(
618
625
  "object " +
619
- parent.browseName.name!.toString() +
620
- " have already a child with browseName " +
621
- options.browseName.toString()
626
+ parent.browseName.name!.toString() +
627
+ " have already a child with browseName " +
628
+ options.browseName.toString()
622
629
  );
623
630
  }
624
631
  }
@@ -773,14 +780,23 @@ function reconstructFunctionalGroupType(extraInfo: any) {
773
780
  if (!info) continue;
774
781
 
775
782
  const folder = info.original;
783
+ if (folder.nodeClass !== NodeClass.Object) continue;
784
+
785
+ if (!folder.typeDefinitionObj) continue;
776
786
 
777
787
  assert(folder.typeDefinitionObj.browseName.name.toString() === "FunctionalGroupType");
778
788
 
779
789
  // now create the same reference with the instantiated function group
780
- const destFolder = info.cloned;
790
+ const destFolder = info.cloned as BaseNode;
781
791
 
782
792
  assert(ref.referenceType);
783
793
 
794
+ // may be we should check that the referenceType is a subtype of Organizes
795
+ const alreadyExist = destFolder.findReferences(ref.referenceType, !ref.isForward).find((r) => r.nodeId === cloned.nodeId);
796
+ if (alreadyExist) {
797
+ continue;
798
+ }
799
+
784
800
  destFolder.addReference({
785
801
  isForward: !ref.isForward,
786
802
  nodeId: cloned.nodeId,
@@ -800,7 +816,9 @@ export function initialize_properties_and_components<
800
816
 
801
817
  const optionalsMap = makeOptionalsMap(optionals);
802
818
 
803
- _initialize_properties_and_components(instance, topMostType, nodeType, copyAlsoModellingRules, optionalsMap, extraInfo);
819
+ const browseNameMap = new Set<string>();
820
+
821
+ _initialize_properties_and_components(instance, topMostType, nodeType, copyAlsoModellingRules, optionalsMap, extraInfo, browseNameMap);
804
822
 
805
823
  reconstructFunctionalGroupType(extraInfo);
806
824
 
package/.mocharc.yml DELETED
@@ -1,12 +0,0 @@
1
- recursive: true
2
- require:
3
- - ../../node_modules/should
4
- - ../../node_modules/ts-node/register
5
- timeout: 20000
6
- enable-source-maps: true
7
- extension:
8
- - .ts
9
- - .js
10
- bail: true
11
- parallel: false
12
- jobs: 32
@@ -1,18 +0,0 @@
1
- /**
2
- * @module node-opcua-address-space
3
- */
4
- import { NodeId, NodeIdLike } from "node-opcua-nodeid";
5
- import { BaseNode, UADataType, UAObjectType, UAReferenceType, UAVariableType } from "node-opcua-address-space-base";
6
- import { BaseNodeImpl } from "./base_node_impl";
7
- export type BaseNodeConstructor<T extends BaseNode> = new () => T;
8
- export type MemberFuncValue<T, P, R> = (this: T, param: P) => R;
9
- export declare function wipeMemorizedStuff(node: any): void;
10
- export type IsSupertypeOfFunc<T extends UAType> = (this: T, baseType: T) => boolean;
11
- export type UAType = UAReferenceType | UADataType | UAObjectType | UAVariableType;
12
- export declare function construct_isSupertypeOf<T extends UAType>(Class: typeof BaseNodeImpl): IsSupertypeOfFunc<T>;
13
- export declare function construct_slow_isSupertypeOf<T extends UAType>(Class: typeof BaseNodeImpl): (this: T, baseType: T | NodeIdLike) => boolean;
14
- /**
15
- * returns the nodeId of the Type which is the super type of this
16
- */
17
- export declare function get_subtypeOf<T extends BaseNode>(this: T): NodeId | null;
18
- export declare function get_subtypeOfObj(this: BaseNode): BaseNode | null;
@@ -1,125 +0,0 @@
1
- "use strict";
2
- /**
3
- * @module node-opcua-address-space
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.get_subtypeOfObj = exports.get_subtypeOf = exports.construct_slow_isSupertypeOf = exports.construct_isSupertypeOf = exports.wipeMemorizedStuff = void 0;
7
- const node_opcua_assert_1 = require("node-opcua-assert");
8
- const node_opcua_nodeid_1 = require("node-opcua-nodeid");
9
- const node_opcua_nodeid_2 = require("node-opcua-nodeid");
10
- const base_node_private_1 = require("./base_node_private");
11
- const reference_impl_1 = require("./reference_impl");
12
- const node_opcua_data_model_1 = require("node-opcua-data-model");
13
- const HasSubTypeNodeId = (0, node_opcua_nodeid_1.resolveNodeId)("HasSubtype");
14
- function _filterSubType(reference) {
15
- return (0, node_opcua_nodeid_2.sameNodeId)(reference.referenceType, HasSubTypeNodeId) && !reference.isForward;
16
- }
17
- function _slow_isSupertypeOf(Class, baseType) {
18
- if (!(baseType instanceof Class)) {
19
- const node = this.addressSpace.findNode(baseType);
20
- if (!node || !(node instanceof Class)) {
21
- throw new Error("Invalid argument");
22
- }
23
- return _slow_isSupertypeOf.call(this, Class, node);
24
- }
25
- (0, node_opcua_assert_1.assert)(this instanceof Class);
26
- (0, node_opcua_assert_1.assert)(baseType instanceof Class, " Object must have same type");
27
- (0, node_opcua_assert_1.assert)(this.addressSpace);
28
- if ((0, node_opcua_nodeid_2.sameNodeId)(this.nodeId, baseType.nodeId)) {
29
- return true;
30
- }
31
- const references = this.allReferences();
32
- const subTypes = references.filter(_filterSubType);
33
- (0, node_opcua_assert_1.assert)(subTypes.length <= 1, "should have zero or one subtype no more");
34
- for (const subType1 of subTypes) {
35
- const subTypeId = subType1.nodeId;
36
- const subTypeNode = this.addressSpace.findNode(subTypeId);
37
- // istanbul ignore next
38
- if (!subTypeNode) {
39
- throw new Error("Cannot find object with nodeId " + subTypeId.toString());
40
- }
41
- if ((0, node_opcua_nodeid_2.sameNodeId)(subTypeNode.nodeId, baseType.nodeId)) {
42
- return true;
43
- }
44
- else {
45
- if (_slow_isSupertypeOf.call(subTypeNode, Class, baseType)) {
46
- return true;
47
- }
48
- }
49
- }
50
- return false;
51
- }
52
- function wipeMemorizedStuff(node) {
53
- if (!node.__cache) {
54
- node.__cache = undefined;
55
- }
56
- }
57
- exports.wipeMemorizedStuff = wipeMemorizedStuff;
58
- // http://jsperf.com/underscore-js-memoize-refactor-test
59
- // http://addyosmani.com/blog/faster-javascript-memoization/
60
- function wrap_memoize(func, hashFunc) {
61
- if (undefined === hashFunc) {
62
- hashFunc = (_p) => _p.toString();
63
- }
64
- return function memoize(param) {
65
- if (!this.__cache) {
66
- this.__cache = {};
67
- }
68
- const hash = hashFunc.call(this, param);
69
- let cache_value = this.__cache[hash];
70
- if (cache_value === undefined) {
71
- cache_value = func.call(this, param);
72
- this.__cache[hash] = cache_value;
73
- }
74
- return cache_value;
75
- };
76
- }
77
- function hashBaseNode(e) {
78
- return e.nodeId.value.toString();
79
- }
80
- function construct_isSupertypeOf(Class) {
81
- return wrap_memoize(function (baseType) {
82
- if (!(baseType instanceof Class)) {
83
- throw new Error("expecting baseType to be " +
84
- Class.name +
85
- " but got " +
86
- baseType.constructor.name +
87
- " " +
88
- node_opcua_data_model_1.NodeClass[baseType.nodeClass]);
89
- }
90
- if (!(this instanceof Class)) {
91
- throw new Error("expecting this to be " + Class.name + " but got " + baseType.constructor.name);
92
- }
93
- return _slow_isSupertypeOf.call(this, Class, baseType);
94
- }, hashBaseNode);
95
- }
96
- exports.construct_isSupertypeOf = construct_isSupertypeOf;
97
- function construct_slow_isSupertypeOf(Class) {
98
- return function (baseType) {
99
- return _slow_isSupertypeOf.call(this, Class, baseType);
100
- };
101
- }
102
- exports.construct_slow_isSupertypeOf = construct_slow_isSupertypeOf;
103
- /**
104
- * returns the nodeId of the Type which is the super type of this
105
- */
106
- function get_subtypeOf() {
107
- const s = get_subtypeOfObj.call(this);
108
- return s ? s.nodeId : null;
109
- }
110
- exports.get_subtypeOf = get_subtypeOf;
111
- function get_subtypeOfObj() {
112
- const _cache = (0, base_node_private_1.BaseNode_getCache)(this);
113
- if (!_cache._subtypeOfObj) {
114
- const is_subtype_of_ref = this.findReference("HasSubtype", false);
115
- if (is_subtype_of_ref) {
116
- _cache._subtypeOfObj = reference_impl_1.ReferenceImpl.resolveReferenceNode(this.addressSpace, is_subtype_of_ref);
117
- }
118
- else {
119
- _cache._subtypeOfObj = null;
120
- }
121
- }
122
- return _cache._subtypeOfObj;
123
- }
124
- exports.get_subtypeOfObj = get_subtypeOfObj;
125
- //# sourceMappingURL=tool_isSupertypeOf.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool_isSupertypeOf.js","sourceRoot":"","sources":["../../src/tool_isSupertypeOf.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,yDAA2C;AAC3C,yDAAsE;AACtE,yDAA+C;AAG/C,2DAAwD;AACxD,qDAAiD;AAEjD,iEAAkD;AAElD,MAAM,gBAAgB,GAAG,IAAA,iCAAa,EAAC,YAAY,CAAC,CAAC;AAErD,SAAS,cAAc,CAAC,SAAsB;IAC1C,OAAO,IAAA,8BAAU,EAAC,SAAS,CAAC,aAAa,EAAE,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;AACzF,CAAC;AAID,SAAS,mBAAmB,CAA4B,KAA0B,EAAE,QAAwB;IACxG,IAAI,CAAC,CAAC,QAAQ,YAAY,KAAK,CAAC,EAAE;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAsB,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,YAAY,KAAK,CAAC,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;SACvC;QACD,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAoB,CAAC,CAAC;KACtE;IACD,IAAA,0BAAM,EAAC,IAAI,YAAY,KAAK,CAAC,CAAC;IAC9B,IAAA,0BAAM,EAAC,QAAQ,YAAY,KAAK,EAAE,6BAA6B,CAAC,CAAC;IACjE,IAAA,0BAAM,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAE1B,IAAI,IAAA,8BAAU,EAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;QAC1C,OAAO,IAAI,CAAC;KACf;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IAExC,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACnD,IAAA,0BAAM,EAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,yCAAyC,CAAC,CAAC;IAExE,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE;QAC7B,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAa,CAAC;QACtE,uBAAuB;QACvB,IAAI,CAAC,WAAW,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC7E;QACD,IAAI,IAAA,8BAAU,EAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;YACjD,OAAO,IAAI,CAAC;SACf;aAAM;YACH,IAAI,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE;gBACxD,OAAO,IAAI,CAAC;aACf;SACJ;KACJ;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAID,SAAgB,kBAAkB,CAAC,IAAS;IACxC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;QACf,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;KAC5B;AACL,CAAC;AAJD,gDAIC;AACD,yDAAyD;AACzD,6DAA6D;AAC7D,SAAS,YAAY,CACjB,IAA8B,EAC9B,QAA0C;IAE1C,IAAI,SAAS,KAAK,QAAQ,EAAE;QACxB,QAAQ,GAAG,CAAC,EAAK,EAAE,EAAE,CAAE,EAAU,CAAC,QAAQ,EAAE,CAAC;KAChD;IAED,OAAO,SAAS,OAAO,CAAY,KAAU;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;SACrB;QAED,MAAM,IAAI,GAAG,QAAS,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEzC,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAErC,IAAI,WAAW,KAAK,SAAS,EAAE;YAC3B,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;SACpC;QACD,OAAO,WAAW,CAAC;IACvB,CAAC,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CAAC,CAAW;IAC7B,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;AACrC,CAAC;AAMD,SAAgB,uBAAuB,CAAmB,KAA0B;IAChF,OAAO,YAAY,CAAC,UAAmB,QAAwB;QAC3D,IAAI,CAAC,CAAC,QAAQ,YAAY,KAAK,CAAC,EAAE;YAC9B,MAAM,IAAI,KAAK,CACX,2BAA2B;gBACvB,KAAK,CAAC,IAAI;gBACV,WAAW;gBACX,QAAQ,CAAC,WAAW,CAAC,IAAI;gBACzB,GAAG;gBACH,iCAAS,CAAE,QAAqB,CAAC,SAAS,CAAC,CAClD,CAAC;SACL;QACD,IAAI,CAAC,CAAC,IAAI,YAAY,KAAK,CAAC,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,KAAK,CAAC,IAAI,GAAG,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACnG;QACD,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,QAAa,CAAC,CAAC;IAChE,CAAC,EAAE,YAAY,CAAC,CAAC;AACrB,CAAC;AAjBD,0DAiBC;AAED,SAAgB,4BAA4B,CAAmB,KAA0B;IACrF,OAAO,UAAmB,QAAwB;QAC9C,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC,CAAC;AACN,CAAC;AAJD,oEAIC;AAED;;GAEG;AACH,SAAgB,aAAa;IACzB,MAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,CAAC;AAHD,sCAGC;AAED,SAAgB,gBAAgB;IAC5B,MAAM,MAAM,GAAG,IAAA,qCAAiB,EAAC,IAAI,CAAC,CAAC;IAEvC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;QACvB,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAClE,IAAI,iBAAiB,EAAE;YACnB,MAAM,CAAC,aAAa,GAAG,8BAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;SACnG;aAAM;YACH,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;SAC/B;KACJ;IACD,OAAO,MAAM,CAAC,aAAa,CAAC;AAChC,CAAC;AAZD,4CAYC"}
package/generate.js DELETED
@@ -1 +0,0 @@
1
- // nothing
@@ -1,60 +0,0 @@
1
- import * as fs from "fs";
2
- import { callbackify } from "util";
3
-
4
- import { checkDebugFlag, make_debugLog, make_errorLog } from "node-opcua-debug";
5
- import { IAddressSpace } from "node-opcua-address-space-base";
6
-
7
- import { generateAddressSpaceRaw } from "..";
8
- import { NodeSetLoaderOptions } from "../source/interfaces/nodeset_loader_options";
9
-
10
- const doDebug = checkDebugFlag(__filename);
11
- const debugLog = make_debugLog(__filename);
12
- const errorLog = make_errorLog(__filename);
13
-
14
- export async function readNodeSet2XmlFile(xmlFile: string): Promise<string> {
15
- // istanbul ignore next
16
- if (!fs.existsSync(xmlFile)) {
17
- const msg = "[NODE-OPCUA-E02] generateAddressSpace : cannot find nodeset2 xml file at " + xmlFile;
18
- errorLog(msg);
19
- throw new Error(msg);
20
- }
21
- debugLog(" parsing ", xmlFile);
22
- const xmlData = await fs.promises.readFile(xmlFile, "utf-8");
23
- return xmlData;
24
- }
25
- export function generateAddressSpace(
26
- addressSpace: IAddressSpace,
27
- xmlFiles: string | string[],
28
- callback: (err?: Error) => void
29
- ): void;
30
- export function generateAddressSpace(
31
- addressSpace: IAddressSpace,
32
- xmlFiles: string | string[],
33
- options: NodeSetLoaderOptions | undefined,
34
- callback: (err?: Error) => void
35
- ): void;
36
- export function generateAddressSpace(
37
- addressSpace: IAddressSpace,
38
- xmlFiles: string | string[],
39
- options?: NodeSetLoaderOptions
40
- ): Promise<void>;
41
- export function generateAddressSpace(
42
- ... args: any[]
43
- ): any {
44
- const addressSpace = args[0] as IAddressSpace;
45
- const xmlFiles = args[1] as string | string[];
46
- if (args.length === 4) {
47
- const options = args[2] as NodeSetLoaderOptions | undefined;
48
- const callback = args[3] as (err?: Error) => void;
49
- callbackify(generateAddressSpaceRaw)(addressSpace, xmlFiles, readNodeSet2XmlFile, options ||{}, callback!);
50
- } else {
51
- const options = {};
52
- const callback = args[2] as (err?: Error) => void;
53
- callbackify(generateAddressSpaceRaw)(addressSpace, xmlFiles, readNodeSet2XmlFile, options, callback!);
54
- }
55
- }
56
-
57
- // tslint:disable:no-var-requires
58
- // tslint:disable:max-line-length
59
- const thenify = require("thenify");
60
- (module.exports as any).generateAddressSpace = thenify.withCallback((module.exports as any).generateAddressSpace);
@@ -1 +0,0 @@
1
- export * from "./generate_address_space";