node-opcua-address-space 2.180.0 → 2.181.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 (1084) hide show
  1. package/api/address_space_public.ts +63 -0
  2. package/api/address_space_ts.ts +129 -0
  3. package/api/continuation_points/continuation_point_manager.ts +271 -0
  4. package/api/helpers/argument_list.ts +310 -0
  5. package/api/helpers/call_helpers.ts +100 -0
  6. package/api/helpers/coerce_enum_value.ts +33 -0
  7. package/api/helpers/dump_tools.ts +90 -0
  8. package/api/helpers/ensure_secure_access.ts +78 -0
  9. package/api/helpers/multiform_func.ts +78 -0
  10. package/api/helpers/resolve_opaque_on_address_space.ts +26 -0
  11. package/api/index.ts +210 -0
  12. package/api/interfaces/alarms_and_conditions/condition_info_i.ts +60 -0
  13. package/api/interfaces/alarms_and_conditions/condition_snapshot.ts +236 -0
  14. package/api/interfaces/alarms_and_conditions/deviation_stuff.ts +16 -0
  15. package/api/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.ts +8 -0
  16. package/api/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.ts +6 -0
  17. package/api/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.ts +6 -0
  18. package/api/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.ts +13 -0
  19. package/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.ts +6 -0
  20. package/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.ts +6 -0
  21. package/api/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.ts +21 -0
  22. package/api/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.ts +28 -0
  23. package/api/interfaces/alarms_and_conditions/ua_alarm_condition_ex.ts +72 -0
  24. package/api/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.ts +36 -0
  25. package/api/interfaces/alarms_and_conditions/ua_condition_ex.ts +55 -0
  26. package/api/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.ts +17 -0
  27. package/api/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.ts +21 -0
  28. package/api/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.ts +21 -0
  29. package/api/interfaces/alarms_and_conditions/ua_limit_alarm_ex.ts +26 -0
  30. package/api/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.ts +29 -0
  31. package/api/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.ts +25 -0
  32. package/api/interfaces/data_access/ua_multistate_discrete_ex.ts +57 -0
  33. package/api/interfaces/data_access/ua_multistate_value_discrete_ex.ts +31 -0
  34. package/api/interfaces/data_access/ua_two_state_discrete_ex.ts +15 -0
  35. package/api/interfaces/nodeset_loader_options.ts +58 -0
  36. package/api/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.ts +20 -0
  37. package/api/interfaces/state_machine/ua_finite_state_machine_type.ts +50 -0
  38. package/api/interfaces/state_machine/ua_program_state_machine_type.ts +14 -0
  39. package/api/interfaces/state_machine/ua_shelved_state_machine_ex.ts +35 -0
  40. package/api/interfaces/state_machine/ua_state_machine_type.ts +288 -0
  41. package/api/loader/decode_xml_extension_object.ts +80 -0
  42. package/api/loader/ensure_datatype_extracted.ts +122 -0
  43. package/api/loader/generateAddressSpaceRaw.ts +470 -0
  44. package/api/loader/load_nodeset2.ts +278 -0
  45. package/api/loader/make_xml_extension_object_parser.ts +518 -0
  46. package/api/loader/namespace_post_step.ts +68 -0
  47. package/api/loader/nodeset_image.ts +451 -0
  48. package/api/loader/nodeset_image_codec.ts +576 -0
  49. package/api/loader/nodeset_image_store.ts +78 -0
  50. package/api/loader/nodeset_record.ts +141 -0
  51. package/api/loader/nodeset_record_applier.ts +889 -0
  52. package/api/loader/nodeset_source.ts +367 -0
  53. package/api/loader/nodeset_source_helpers.ts +50 -0
  54. package/api/loader/nodeset_to_image.ts +29 -0
  55. package/api/loader/nodeset_xml_producer.ts +383 -0
  56. package/api/loader/parsers/extension_object_parser.ts +374 -0
  57. package/api/loader/parsers/variant_parser.ts +363 -0
  58. package/api/loader/register_node_promoter.ts +6 -0
  59. package/api/namespace.ts +25 -0
  60. package/api/namespace_alarm_and_condition.ts +78 -0
  61. package/api/namespace_data_access.ts +92 -0
  62. package/api/namespace_machine_state.ts +20 -0
  63. package/api/pseudo_session.ts +415 -0
  64. package/api/session_context.ts +729 -0
  65. package/api/ua_interface.ts +38 -0
  66. package/api/ua_two_state_variable_ex.ts +36 -0
  67. package/bin/opcua-nodeset-image.js +192 -0
  68. package/dist/api/address_space_public.d.ts +57 -0
  69. package/dist/api/address_space_public.js +19 -0
  70. package/dist/api/address_space_public.js.map +1 -0
  71. package/dist/api/address_space_ts.d.ts +79 -0
  72. package/dist/api/address_space_ts.js +13 -0
  73. package/dist/api/address_space_ts.js.map +1 -0
  74. package/dist/api/continuation_points/continuation_point_manager.js +230 -0
  75. package/dist/api/continuation_points/continuation_point_manager.js.map +1 -0
  76. package/dist/api/helpers/adjust_browse_direction.js.map +1 -0
  77. package/dist/api/helpers/argument_list.js +263 -0
  78. package/dist/api/helpers/argument_list.js.map +1 -0
  79. package/dist/api/helpers/call_helpers.js +80 -0
  80. package/dist/api/helpers/call_helpers.js.map +1 -0
  81. package/dist/api/helpers/coerce_enum_value.d.ts +6 -0
  82. package/dist/api/helpers/coerce_enum_value.js.map +1 -0
  83. package/dist/api/helpers/dump_tools.js +81 -0
  84. package/dist/api/helpers/dump_tools.js.map +1 -0
  85. package/dist/api/helpers/ensure_secure_access.d.ts +19 -0
  86. package/dist/api/helpers/ensure_secure_access.js +67 -0
  87. package/dist/api/helpers/ensure_secure_access.js.map +1 -0
  88. package/dist/api/helpers/make_optionals_map.js.map +1 -0
  89. package/dist/api/helpers/multiform_func.js +75 -0
  90. package/dist/api/helpers/multiform_func.js.map +1 -0
  91. package/dist/api/helpers/resolve_opaque_on_address_space.js +25 -0
  92. package/dist/api/helpers/resolve_opaque_on_address_space.js.map +1 -0
  93. package/dist/api/index.d.ts +113 -0
  94. package/dist/api/index.js +234 -0
  95. package/dist/api/index.js.map +1 -0
  96. package/dist/api/interfaces/alarms_and_conditions/condition_info_i.d.ts +54 -0
  97. package/dist/api/interfaces/alarms_and_conditions/condition_info_i.js +28 -0
  98. package/dist/api/interfaces/alarms_and_conditions/condition_info_i.js.map +1 -0
  99. package/dist/api/interfaces/alarms_and_conditions/condition_snapshot.d.ts +151 -0
  100. package/dist/api/interfaces/alarms_and_conditions/condition_snapshot.js.map +1 -0
  101. package/dist/api/interfaces/alarms_and_conditions/deviation_stuff.d.ts +12 -0
  102. package/dist/api/interfaces/alarms_and_conditions/deviation_stuff.js.map +1 -0
  103. package/dist/api/interfaces/alarms_and_conditions/install_setpoint_options.js.map +1 -0
  104. package/dist/api/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +7 -0
  105. package/dist/api/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js.map +1 -0
  106. package/dist/api/interfaces/alarms_and_conditions/instantiate_condition_options.js.map +1 -0
  107. package/dist/api/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +4 -0
  108. package/dist/api/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js.map +1 -0
  109. package/dist/api/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +4 -0
  110. package/dist/api/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js.map +1 -0
  111. package/dist/api/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +10 -0
  112. package/dist/api/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js.map +1 -0
  113. package/dist/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +4 -0
  114. package/dist/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js.map +1 -0
  115. package/dist/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +4 -0
  116. package/dist/api/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js.map +1 -0
  117. package/dist/api/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +20 -0
  118. package/dist/api/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js.map +1 -0
  119. package/dist/api/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +21 -0
  120. package/dist/api/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js.map +1 -0
  121. package/dist/api/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +56 -0
  122. package/dist/api/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js.map +1 -0
  123. package/dist/api/interfaces/alarms_and_conditions/ua_base_event_ex.js.map +1 -0
  124. package/dist/api/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +19 -0
  125. package/dist/api/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js.map +1 -0
  126. package/dist/api/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +44 -0
  127. package/dist/api/interfaces/alarms_and_conditions/ua_condition_ex.js.map +1 -0
  128. package/dist/api/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +4 -0
  129. package/dist/api/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js.map +1 -0
  130. package/dist/api/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +5 -0
  131. package/dist/api/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js.map +1 -0
  132. package/dist/api/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +19 -0
  133. package/dist/api/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js.map +1 -0
  134. package/dist/api/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +25 -0
  135. package/dist/api/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js.map +1 -0
  136. package/dist/api/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +8 -0
  137. package/dist/api/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js.map +1 -0
  138. package/dist/api/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +10 -0
  139. package/dist/api/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js.map +1 -0
  140. package/dist/api/interfaces/data_access/ua_multistate_discrete_ex.d.ts +44 -0
  141. package/dist/api/interfaces/data_access/ua_multistate_discrete_ex.js.map +1 -0
  142. package/dist/api/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +22 -0
  143. package/dist/api/interfaces/data_access/ua_multistate_value_discrete_ex.js.map +1 -0
  144. package/dist/api/interfaces/data_access/ua_two_state_discrete_ex.d.ts +13 -0
  145. package/dist/api/interfaces/data_access/ua_two_state_discrete_ex.js.map +1 -0
  146. package/dist/api/interfaces/data_access/ua_y_array_item_ex.js.map +1 -0
  147. package/dist/api/interfaces/extension_object_constructor.js.map +1 -0
  148. package/dist/api/interfaces/i_condition_variable_type_setter_options.js.map +1 -0
  149. package/dist/api/interfaces/i_set_state_options.js.map +1 -0
  150. package/dist/api/interfaces/nodeset_loader_options.d.ts +56 -0
  151. package/dist/api/interfaces/nodeset_loader_options.js.map +1 -0
  152. package/dist/api/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -0
  153. package/dist/api/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js.map +1 -0
  154. package/dist/api/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -0
  155. package/dist/api/interfaces/state_machine/ua_finite_state_machine_type.js.map +1 -0
  156. package/dist/api/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -0
  157. package/dist/api/interfaces/state_machine/ua_program_state_machine_type.js.map +1 -0
  158. package/dist/api/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +29 -0
  159. package/dist/api/interfaces/state_machine/ua_shelved_state_machine_ex.js.map +1 -0
  160. package/dist/api/interfaces/state_machine/ua_state_machine_type.d.ts +236 -0
  161. package/dist/api/interfaces/state_machine/ua_state_machine_type.js.map +1 -0
  162. package/dist/api/interfaces/state_machine/ua_transition_ex.js.map +1 -0
  163. package/dist/api/interfaces/ua_subscription_diagnostics_variable_ex.js.map +1 -0
  164. package/dist/api/loader/decode_xml_extension_object.d.ts +6 -0
  165. package/dist/api/loader/decode_xml_extension_object.js +69 -0
  166. package/dist/api/loader/decode_xml_extension_object.js.map +1 -0
  167. package/dist/api/loader/ensure_datatype_extracted.js +88 -0
  168. package/dist/api/loader/ensure_datatype_extracted.js.map +1 -0
  169. package/dist/api/loader/generateAddressSpaceRaw.d.ts +64 -0
  170. package/dist/api/loader/generateAddressSpaceRaw.js +379 -0
  171. package/dist/api/loader/generateAddressSpaceRaw.js.map +1 -0
  172. package/dist/api/loader/load_nodeset2.d.ts +38 -0
  173. package/dist/api/loader/load_nodeset2.js +245 -0
  174. package/dist/api/loader/load_nodeset2.js.map +1 -0
  175. package/dist/api/loader/make_semver_compatible.js.map +1 -0
  176. package/dist/api/loader/make_xml_extension_object_parser.js +417 -0
  177. package/dist/api/loader/make_xml_extension_object_parser.js.map +1 -0
  178. package/dist/api/loader/namespace_post_step.js +57 -0
  179. package/dist/api/loader/namespace_post_step.js.map +1 -0
  180. package/dist/api/loader/nodeset_image.d.ts +94 -0
  181. package/dist/api/loader/nodeset_image.js +406 -0
  182. package/dist/api/loader/nodeset_image.js.map +1 -0
  183. package/dist/api/loader/nodeset_image_codec.d.ts +104 -0
  184. package/dist/api/loader/nodeset_image_codec.js +489 -0
  185. package/dist/api/loader/nodeset_image_codec.js.map +1 -0
  186. package/dist/api/loader/nodeset_image_store.d.ts +27 -0
  187. package/dist/api/loader/nodeset_image_store.js +72 -0
  188. package/dist/api/loader/nodeset_image_store.js.map +1 -0
  189. package/dist/api/loader/nodeset_record.d.ts +125 -0
  190. package/dist/api/loader/nodeset_record.js +26 -0
  191. package/dist/api/loader/nodeset_record.js.map +1 -0
  192. package/dist/api/loader/nodeset_record_applier.d.ts +106 -0
  193. package/dist/api/loader/nodeset_record_applier.js +731 -0
  194. package/dist/api/loader/nodeset_record_applier.js.map +1 -0
  195. package/dist/api/loader/nodeset_source.d.ts +124 -0
  196. package/dist/api/loader/nodeset_source.js +307 -0
  197. package/dist/api/loader/nodeset_source.js.map +1 -0
  198. package/dist/api/loader/nodeset_source_helpers.d.ts +27 -0
  199. package/dist/api/loader/nodeset_source_helpers.js +30 -0
  200. package/dist/api/loader/nodeset_source_helpers.js.map +1 -0
  201. package/dist/api/loader/nodeset_to_image.d.ts +13 -0
  202. package/dist/api/loader/nodeset_to_image.js +30 -0
  203. package/dist/api/loader/nodeset_to_image.js.map +1 -0
  204. package/dist/api/loader/nodeset_xml_producer.d.ts +16 -0
  205. package/dist/api/loader/nodeset_xml_producer.js +349 -0
  206. package/dist/api/loader/nodeset_xml_producer.js.map +1 -0
  207. package/dist/api/loader/parsers/extension_object_parser.js +274 -0
  208. package/dist/api/loader/parsers/extension_object_parser.js.map +1 -0
  209. package/dist/api/loader/parsers/localized_text_parser.js.map +1 -0
  210. package/dist/api/loader/parsers/nodeid_parser.js.map +1 -0
  211. package/dist/api/loader/parsers/qualified_name_parser.js.map +1 -0
  212. package/dist/api/loader/parsers/variant_parser.d.ts +42 -0
  213. package/dist/api/loader/parsers/variant_parser.js +294 -0
  214. package/dist/api/loader/parsers/variant_parser.js.map +1 -0
  215. package/dist/api/loader/register_node_promoter.d.ts +2 -0
  216. package/dist/api/loader/register_node_promoter.js +9 -0
  217. package/dist/api/loader/register_node_promoter.js.map +1 -0
  218. package/dist/api/namespace.d.ts +18 -0
  219. package/dist/api/namespace.js.map +1 -0
  220. package/dist/api/namespace_alarm_and_condition.d.ts +33 -0
  221. package/dist/api/namespace_alarm_and_condition.js.map +1 -0
  222. package/dist/api/namespace_data_access.d.ts +67 -0
  223. package/dist/api/namespace_data_access.js.map +1 -0
  224. package/dist/api/namespace_machine_state.d.ts +8 -0
  225. package/dist/api/namespace_machine_state.js.map +1 -0
  226. package/dist/api/pseudo_session.d.ts +74 -0
  227. package/dist/api/pseudo_session.js +308 -0
  228. package/dist/api/pseudo_session.js.map +1 -0
  229. package/dist/api/session_context.d.ts +242 -0
  230. package/dist/api/session_context.js.map +1 -0
  231. package/dist/api/set_namespace_meta_data.js.map +1 -0
  232. package/dist/api/ua_addin.js.map +1 -0
  233. package/dist/api/ua_interface.js +25 -0
  234. package/dist/api/ua_interface.js.map +1 -0
  235. package/dist/api/ua_root_folder.js.map +1 -0
  236. package/dist/api/ua_two_state_variable_ex.d.ts +24 -0
  237. package/dist/api/ua_two_state_variable_ex.js.map +1 -0
  238. package/dist/api/xml_writer.js.map +1 -0
  239. package/dist/impl/_instantiate_helpers.js +99 -0
  240. package/dist/impl/_instantiate_helpers.js.map +1 -0
  241. package/dist/impl/_mandatory_child_or_requested_optional_filter.js +82 -0
  242. package/dist/impl/_mandatory_child_or_requested_optional_filter.js.map +1 -0
  243. package/dist/impl/address_space.d.ts +379 -0
  244. package/dist/impl/address_space.js +1383 -0
  245. package/dist/impl/address_space.js.map +1 -0
  246. package/dist/impl/address_space_change_event_tools.d.ts +6 -0
  247. package/dist/impl/address_space_change_event_tools.js.map +1 -0
  248. package/dist/impl/address_space_private.d.ts +48 -0
  249. package/dist/impl/address_space_private.js.map +1 -0
  250. package/dist/impl/alarms_and_conditions/condition.js.map +1 -0
  251. package/dist/impl/alarms_and_conditions/condition_info_impl.d.ts +19 -0
  252. package/dist/impl/alarms_and_conditions/condition_info_impl.js +39 -0
  253. package/dist/impl/alarms_and_conditions/condition_info_impl.js.map +1 -0
  254. package/dist/impl/alarms_and_conditions/condition_snapshot_impl.d.ts +271 -0
  255. package/dist/impl/alarms_and_conditions/condition_snapshot_impl.js +700 -0
  256. package/dist/impl/alarms_and_conditions/condition_snapshot_impl.js.map +1 -0
  257. package/dist/impl/alarms_and_conditions/deviation_alarm_helper.d.ts +12 -0
  258. package/dist/impl/alarms_and_conditions/deviation_alarm_helper.js +66 -0
  259. package/dist/impl/alarms_and_conditions/deviation_alarm_helper.js.map +1 -0
  260. package/dist/impl/alarms_and_conditions/index.d.ts +16 -0
  261. package/dist/impl/alarms_and_conditions/index.js +33 -0
  262. package/dist/impl/alarms_and_conditions/index.js.map +1 -0
  263. package/dist/impl/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +54 -0
  264. package/dist/impl/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -0
  265. package/dist/impl/alarms_and_conditions/ua_acknowledgeable_condition_impl.js.map +1 -0
  266. package/dist/impl/alarms_and_conditions/ua_alarm_condition_impl.d.ts +105 -0
  267. package/dist/impl/alarms_and_conditions/ua_alarm_condition_impl.js +428 -0
  268. package/dist/impl/alarms_and_conditions/ua_alarm_condition_impl.js.map +1 -0
  269. package/dist/impl/alarms_and_conditions/ua_base_event_impl.d.ts +36 -0
  270. package/dist/impl/alarms_and_conditions/ua_base_event_impl.js +32 -0
  271. package/dist/impl/alarms_and_conditions/ua_base_event_impl.js.map +1 -0
  272. package/dist/impl/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +47 -0
  273. package/dist/impl/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +204 -0
  274. package/dist/impl/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js.map +1 -0
  275. package/dist/impl/alarms_and_conditions/ua_condition_impl.d.ts +152 -0
  276. package/dist/impl/alarms_and_conditions/ua_condition_impl.js +1016 -0
  277. package/dist/impl/alarms_and_conditions/ua_condition_impl.js.map +1 -0
  278. package/dist/impl/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +22 -0
  279. package/dist/impl/alarms_and_conditions/ua_discrete_alarm_impl.js +41 -0
  280. package/dist/impl/alarms_and_conditions/ua_discrete_alarm_impl.js.map +1 -0
  281. package/dist/impl/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +30 -0
  282. package/dist/impl/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +54 -0
  283. package/dist/impl/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js.map +1 -0
  284. package/dist/impl/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +12 -0
  285. package/dist/impl/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +13 -0
  286. package/dist/impl/alarms_and_conditions/ua_exclusive_level_alarm_impl.js.map +1 -0
  287. package/dist/impl/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +28 -0
  288. package/dist/impl/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +86 -0
  289. package/dist/impl/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js.map +1 -0
  290. package/dist/impl/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +10 -0
  291. package/dist/impl/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +8 -0
  292. package/dist/impl/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js.map +1 -0
  293. package/dist/impl/alarms_and_conditions/ua_limit_alarm_impl.d.ts +49 -0
  294. package/dist/impl/alarms_and_conditions/ua_limit_alarm_impl.js +207 -0
  295. package/dist/impl/alarms_and_conditions/ua_limit_alarm_impl.js.map +1 -0
  296. package/dist/impl/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +28 -0
  297. package/dist/impl/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +54 -0
  298. package/dist/impl/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js.map +1 -0
  299. package/dist/impl/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +38 -0
  300. package/dist/impl/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +172 -0
  301. package/dist/impl/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js.map +1 -0
  302. package/dist/impl/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +44 -0
  303. package/dist/impl/alarms_and_conditions/ua_off_normal_alarm_impl.js +164 -0
  304. package/dist/impl/alarms_and_conditions/ua_off_normal_alarm_impl.js.map +1 -0
  305. package/dist/impl/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +18 -0
  306. package/dist/impl/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +18 -0
  307. package/dist/impl/alarms_and_conditions/ua_system_off_normal_alarm_impl.js.map +1 -0
  308. package/dist/impl/apply_condition_refresh.d.ts +4 -0
  309. package/dist/impl/apply_condition_refresh.js +29 -0
  310. package/dist/impl/apply_condition_refresh.js.map +1 -0
  311. package/dist/impl/base_node_impl.d.ts +347 -0
  312. package/dist/impl/base_node_impl.js +1768 -0
  313. package/dist/impl/base_node_impl.js.map +1 -0
  314. package/dist/impl/base_node_private.d.ts +138 -0
  315. package/dist/impl/base_node_private.js +1028 -0
  316. package/dist/impl/base_node_private.js.map +1 -0
  317. package/dist/impl/check_value_rank_compatibility.js.map +1 -0
  318. package/dist/impl/child_accessors.d.ts +43 -0
  319. package/dist/impl/child_accessors.js +222 -0
  320. package/dist/impl/child_accessors.js.map +1 -0
  321. package/dist/impl/data_access/add_dataItem_stuff.js.map +1 -0
  322. package/dist/impl/data_access/adjust_datavalue_status_code.d.ts +7 -0
  323. package/dist/impl/data_access/adjust_datavalue_status_code.js.map +1 -0
  324. package/dist/impl/data_access/ua_multistate_discrete_impl.d.ts +38 -0
  325. package/dist/impl/data_access/ua_multistate_discrete_impl.js +143 -0
  326. package/dist/impl/data_access/ua_multistate_discrete_impl.js.map +1 -0
  327. package/dist/impl/data_access/ua_multistate_value_discrete_impl.d.ts +61 -0
  328. package/dist/impl/data_access/ua_multistate_value_discrete_impl.js +303 -0
  329. package/dist/impl/data_access/ua_multistate_value_discrete_impl.js.map +1 -0
  330. package/dist/impl/data_access/ua_two_state_discrete_impl.d.ts +30 -0
  331. package/dist/impl/data_access/ua_two_state_discrete_impl.js +164 -0
  332. package/dist/impl/data_access/ua_two_state_discrete_impl.js.map +1 -0
  333. package/dist/impl/event_data.d.ts +27 -0
  334. package/dist/impl/event_data.js +73 -0
  335. package/dist/impl/event_data.js.map +1 -0
  336. package/dist/impl/event_layout.d.ts +40 -0
  337. package/dist/impl/event_layout.js +103 -0
  338. package/dist/impl/event_layout.js.map +1 -0
  339. package/dist/impl/extension_object_array_node.d.ts +41 -0
  340. package/dist/impl/extension_object_array_node.js +274 -0
  341. package/dist/impl/extension_object_array_node.js.map +1 -0
  342. package/dist/impl/get_basic_datatype.js.map +1 -0
  343. package/dist/impl/handle_hierarchy_parent.d.ts +33 -0
  344. package/dist/impl/handle_hierarchy_parent.js +103 -0
  345. package/dist/impl/handle_hierarchy_parent.js.map +1 -0
  346. package/dist/impl/historical_access/address_space_historical_data_node.d.ts +21 -0
  347. package/dist/impl/historical_access/address_space_historical_data_node.js +658 -0
  348. package/dist/impl/historical_access/address_space_historical_data_node.js.map +1 -0
  349. package/dist/impl/historizer_factory.d.ts +18 -0
  350. package/dist/impl/historizer_factory.js +16 -0
  351. package/dist/impl/historizer_factory.js.map +1 -0
  352. package/dist/impl/idx_iterator.js.map +1 -0
  353. package/dist/impl/namespace_impl.d.ts +469 -0
  354. package/dist/impl/namespace_impl.js +1845 -0
  355. package/dist/impl/namespace_impl.js.map +1 -0
  356. package/dist/impl/namespace_private.d.ts +25 -0
  357. package/dist/impl/namespace_private.js.map +1 -0
  358. package/dist/impl/nodeid_manager.js +249 -0
  359. package/dist/impl/nodeid_manager.js.map +1 -0
  360. package/dist/impl/nodeset_tools/adjust_namespace_array.js.map +1 -0
  361. package/dist/impl/nodeset_tools/construct_namespace_dependency.d.ts +37 -0
  362. package/dist/impl/nodeset_tools/construct_namespace_dependency.js +352 -0
  363. package/dist/impl/nodeset_tools/construct_namespace_dependency.js.map +1 -0
  364. package/dist/impl/nodeset_tools/dump_to_bsd.d.ts +10 -0
  365. package/dist/impl/nodeset_tools/dump_to_bsd.js +176 -0
  366. package/dist/impl/nodeset_tools/dump_to_bsd.js.map +1 -0
  367. package/dist/impl/nodeset_tools/nodeset_to_records.d.ts +67 -0
  368. package/dist/impl/nodeset_tools/nodeset_to_records.js +773 -0
  369. package/dist/impl/nodeset_tools/nodeset_to_records.js.map +1 -0
  370. package/dist/impl/nodeset_tools/nodeset_to_xml.d.ts +28 -0
  371. package/dist/impl/nodeset_tools/nodeset_to_xml.js +1132 -0
  372. package/dist/impl/nodeset_tools/nodeset_to_xml.js.map +1 -0
  373. package/dist/impl/private_namespace.d.ts +5 -0
  374. package/dist/impl/private_namespace.js.map +1 -0
  375. package/dist/impl/reference_impl.d.ts +82 -0
  376. package/dist/impl/reference_impl.js +207 -0
  377. package/dist/impl/reference_impl.js.map +1 -0
  378. package/dist/impl/reference_type_version.d.ts +22 -0
  379. package/dist/impl/reference_type_version.js +22 -0
  380. package/dist/impl/reference_type_version.js.map +1 -0
  381. package/dist/impl/role_permissions.js.map +1 -0
  382. package/dist/impl/state_machine/finite_state_machine.d.ts +81 -0
  383. package/dist/impl/state_machine/finite_state_machine.js +573 -0
  384. package/dist/impl/state_machine/finite_state_machine.js.map +1 -0
  385. package/dist/impl/state_machine/ua_shelving_state_machine_ex.d.ts +64 -0
  386. package/dist/impl/state_machine/ua_shelving_state_machine_ex.js +249 -0
  387. package/dist/impl/state_machine/ua_shelving_state_machine_ex.js.map +1 -0
  388. package/dist/impl/state_machine/ua_two_state_variable.d.ts +55 -0
  389. package/dist/impl/state_machine/ua_two_state_variable.js +323 -0
  390. package/dist/impl/state_machine/ua_two_state_variable.js.map +1 -0
  391. package/dist/impl/tool_isSubtypeOf.d.ts +18 -0
  392. package/dist/impl/tool_isSubtypeOf.js +138 -0
  393. package/dist/impl/tool_isSubtypeOf.js.map +1 -0
  394. package/dist/impl/ua_condition_type.js.map +1 -0
  395. package/dist/impl/ua_data_type_impl.d.ts +87 -0
  396. package/dist/impl/ua_data_type_impl.js +391 -0
  397. package/dist/impl/ua_data_type_impl.js.map +1 -0
  398. package/dist/impl/ua_method_impl.d.ts +48 -0
  399. package/dist/impl/ua_method_impl.js +281 -0
  400. package/dist/impl/ua_method_impl.js.map +1 -0
  401. package/dist/impl/ua_object_impl.d.ts +38 -0
  402. package/dist/impl/ua_object_impl.js +214 -0
  403. package/dist/impl/ua_object_impl.js.map +1 -0
  404. package/dist/impl/ua_object_type_impl.d.ts +55 -0
  405. package/dist/impl/ua_object_type_impl.js +131 -0
  406. package/dist/impl/ua_object_type_impl.js.map +1 -0
  407. package/dist/impl/ua_reference_type_impl.d.ts +42 -0
  408. package/dist/impl/ua_reference_type_impl.js +157 -0
  409. package/dist/impl/ua_reference_type_impl.js.map +1 -0
  410. package/dist/impl/ua_variable_impl.d.ts +391 -0
  411. package/dist/impl/ua_variable_impl.js +2001 -0
  412. package/dist/impl/ua_variable_impl.js.map +1 -0
  413. package/dist/impl/ua_variable_impl_ext_obj.d.ts +23 -0
  414. package/dist/impl/ua_variable_impl_ext_obj.js +753 -0
  415. package/dist/impl/ua_variable_impl_ext_obj.js.map +1 -0
  416. package/dist/impl/ua_variable_type_impl.d.ts +79 -0
  417. package/dist/impl/ua_variable_type_impl.js +279 -0
  418. package/dist/impl/ua_variable_type_impl.js.map +1 -0
  419. package/dist/impl/ua_view_impl.d.ts +18 -0
  420. package/dist/impl/ua_view_impl.js +45 -0
  421. package/dist/impl/ua_view_impl.js.map +1 -0
  422. package/dist/impl/validate_data_type_correctness.d.ts +6 -0
  423. package/dist/impl/validate_data_type_correctness.js +123 -0
  424. package/dist/impl/validate_data_type_correctness.js.map +1 -0
  425. package/dist/tsconfig_base.tsbuildinfo +1 -1
  426. package/distHelpers/address_space_digest.d.ts +4 -0
  427. package/distHelpers/address_space_digest.js +9 -0
  428. package/distHelpers/address_space_digest.js.map +1 -0
  429. package/distHelpers/alarms_and_conditions_demo.d.ts +1 -1
  430. package/distHelpers/assertHasMatchingReference.d.ts +1 -1
  431. package/distHelpers/boiler_system.d.ts +1 -1
  432. package/distHelpers/boiler_system.js +3 -3
  433. package/distHelpers/boiler_system.js.map +1 -1
  434. package/distHelpers/create_minimalist_address_space_nodeset.d.ts +1 -1
  435. package/distHelpers/get_address_space_fixture.js +38 -22
  436. package/distHelpers/get_address_space_fixture.js.map +1 -1
  437. package/distHelpers/get_mini_address_space.d.ts +1 -1
  438. package/distHelpers/get_mini_address_space.js +7 -7
  439. package/distHelpers/get_mini_address_space.js.map +1 -1
  440. package/distHelpers/index.d.ts +9 -9
  441. package/distHelpers/index.js +9 -9
  442. package/distHelpers/index.js.map +1 -1
  443. package/distHelpers/mock_session.d.ts +1 -1
  444. package/distHelpers/mock_session.js +2 -2
  445. package/distHelpers/mock_session.js.map +1 -1
  446. package/distNodeJS/address_space_digest.d.ts +13 -0
  447. package/distNodeJS/address_space_digest.js +31 -0
  448. package/distNodeJS/address_space_digest.js.map +1 -0
  449. package/distNodeJS/generate_address_space.d.ts +35 -2
  450. package/distNodeJS/generate_address_space.js +201 -7
  451. package/distNodeJS/generate_address_space.js.map +1 -1
  452. package/distNodeJS/index.d.ts +3 -1
  453. package/distNodeJS/index.js +3 -1
  454. package/distNodeJS/index.js.map +1 -1
  455. package/distNodeJS/nodeset_image_file_store.d.ts +29 -0
  456. package/distNodeJS/nodeset_image_file_store.js +120 -0
  457. package/distNodeJS/nodeset_image_file_store.js.map +1 -0
  458. package/impl/_instantiate_helpers.ts +197 -0
  459. package/impl/_mandatory_child_or_requested_optional_filter.ts +100 -0
  460. package/impl/address_space.ts +1572 -0
  461. package/impl/address_space_change_event_tools.ts +177 -0
  462. package/impl/address_space_private.ts +100 -0
  463. package/impl/alarms_and_conditions/condition_info_impl.ts +45 -0
  464. package/impl/alarms_and_conditions/condition_snapshot_impl.ts +793 -0
  465. package/impl/alarms_and_conditions/deviation_alarm_helper.ts +73 -0
  466. package/impl/alarms_and_conditions/index.ts +16 -0
  467. package/impl/alarms_and_conditions/ua_acknowledgeable_condition_impl.ts +351 -0
  468. package/impl/alarms_and_conditions/ua_alarm_condition_impl.ts +515 -0
  469. package/impl/alarms_and_conditions/ua_base_event_impl.ts +61 -0
  470. package/impl/alarms_and_conditions/ua_certificate_expiration_alarm_impl.ts +246 -0
  471. package/impl/alarms_and_conditions/ua_condition_impl.ts +1286 -0
  472. package/impl/alarms_and_conditions/ua_discrete_alarm_impl.ts +60 -0
  473. package/impl/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.ts +95 -0
  474. package/impl/alarms_and_conditions/ua_exclusive_level_alarm_impl.ts +21 -0
  475. package/impl/alarms_and_conditions/ua_exclusive_limit_alarm_impl.ts +112 -0
  476. package/impl/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.ts +25 -0
  477. package/impl/alarms_and_conditions/ua_limit_alarm_impl.ts +265 -0
  478. package/impl/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.ts +94 -0
  479. package/impl/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.ts +232 -0
  480. package/impl/alarms_and_conditions/ua_off_normal_alarm_impl.ts +216 -0
  481. package/impl/alarms_and_conditions/ua_system_off_normal_alarm_impl.ts +26 -0
  482. package/impl/apply_condition_refresh.ts +56 -0
  483. package/impl/base_node_impl.ts +2165 -0
  484. package/impl/base_node_private.ts +1420 -0
  485. package/impl/child_accessors.ts +239 -0
  486. package/impl/data_access/adjust_datavalue_status_code.ts +36 -0
  487. package/impl/data_access/ua_multistate_discrete_impl.ts +198 -0
  488. package/impl/data_access/ua_multistate_value_discrete_impl.ts +384 -0
  489. package/impl/data_access/ua_two_state_discrete_impl.ts +195 -0
  490. package/impl/event_data.ts +80 -0
  491. package/impl/event_layout.ts +141 -0
  492. package/impl/extension_object_array_node.ts +343 -0
  493. package/impl/handle_hierarchy_parent.ts +133 -0
  494. package/impl/historical_access/address_space_historical_data_node.ts +849 -0
  495. package/impl/historizer_factory.ts +17 -0
  496. package/impl/namespace_impl.ts +2323 -0
  497. package/impl/namespace_private.ts +68 -0
  498. package/impl/nodeid_manager.ts +293 -0
  499. package/impl/nodeset_tools/construct_namespace_dependency.ts +381 -0
  500. package/impl/nodeset_tools/dump_to_bsd.ts +210 -0
  501. package/impl/nodeset_tools/nodeset_to_records.ts +846 -0
  502. package/impl/nodeset_tools/nodeset_to_xml.ts +1326 -0
  503. package/impl/private_namespace.ts +21 -0
  504. package/impl/reference_impl.ts +244 -0
  505. package/impl/reference_type_version.ts +19 -0
  506. package/impl/state_machine/finite_state_machine.ts +676 -0
  507. package/impl/state_machine/ua_shelving_state_machine_ex.ts +356 -0
  508. package/impl/state_machine/ua_two_state_variable.ts +421 -0
  509. package/impl/tool_isSubtypeOf.ts +168 -0
  510. package/impl/ua_data_type_impl.ts +486 -0
  511. package/impl/ua_method_impl.ts +364 -0
  512. package/impl/ua_object_impl.ts +278 -0
  513. package/impl/ua_object_type_impl.ts +179 -0
  514. package/impl/ua_reference_type_impl.ts +179 -0
  515. package/impl/ua_variable_impl.ts +2559 -0
  516. package/impl/ua_variable_impl_ext_obj.ts +904 -0
  517. package/impl/ua_variable_type_impl.ts +390 -0
  518. package/impl/ua_view_impl.ts +53 -0
  519. package/impl/validate_data_type_correctness.ts +142 -0
  520. package/package.json +49 -44
  521. package/source_nodejs/address_space_digest.ts +35 -0
  522. package/source_nodejs/generate_address_space.ts +181 -8
  523. package/source_nodejs/index.ts +3 -1
  524. package/source_nodejs/nodeset_image_file_store.ts +127 -0
  525. package/dist/source/address_space_ts.d.ts +0 -128
  526. package/dist/source/address_space_ts.js +0 -23
  527. package/dist/source/address_space_ts.js.map +0 -1
  528. package/dist/source/continuation_points/continuation_point_manager.js +0 -230
  529. package/dist/source/continuation_points/continuation_point_manager.js.map +0 -1
  530. package/dist/source/helpers/adjust_browse_direction.js.map +0 -1
  531. package/dist/source/helpers/argument_list.js +0 -263
  532. package/dist/source/helpers/argument_list.js.map +0 -1
  533. package/dist/source/helpers/call_helpers.js +0 -80
  534. package/dist/source/helpers/call_helpers.js.map +0 -1
  535. package/dist/source/helpers/coerce_enum_value.d.ts +0 -6
  536. package/dist/source/helpers/coerce_enum_value.js.map +0 -1
  537. package/dist/source/helpers/dump_tools.js +0 -81
  538. package/dist/source/helpers/dump_tools.js.map +0 -1
  539. package/dist/source/helpers/ensure_secure_access.d.ts +0 -9
  540. package/dist/source/helpers/ensure_secure_access.js +0 -58
  541. package/dist/source/helpers/ensure_secure_access.js.map +0 -1
  542. package/dist/source/helpers/make_optionals_map.js.map +0 -1
  543. package/dist/source/helpers/multiform_func.js +0 -75
  544. package/dist/source/helpers/multiform_func.js.map +0 -1
  545. package/dist/source/helpers/resolve_opaque_on_address_space.js +0 -25
  546. package/dist/source/helpers/resolve_opaque_on_address_space.js.map +0 -1
  547. package/dist/source/index.d.ts +0 -66
  548. package/dist/source/index.js +0 -97
  549. package/dist/source/index.js.map +0 -1
  550. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +0 -21
  551. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +0 -3
  552. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js.map +0 -1
  553. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.d.ts +0 -150
  554. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.js.map +0 -1
  555. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.d.ts +0 -12
  556. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.js.map +0 -1
  557. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.js.map +0 -1
  558. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +0 -7
  559. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js.map +0 -1
  560. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.js.map +0 -1
  561. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +0 -4
  562. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js.map +0 -1
  563. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +0 -4
  564. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js.map +0 -1
  565. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +0 -10
  566. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js.map +0 -1
  567. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +0 -4
  568. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js.map +0 -1
  569. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +0 -4
  570. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js.map +0 -1
  571. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +0 -20
  572. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js.map +0 -1
  573. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +0 -21
  574. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js.map +0 -1
  575. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +0 -33
  576. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js.map +0 -1
  577. package/dist/source/interfaces/alarms_and_conditions/ua_base_event_ex.js.map +0 -1
  578. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +0 -19
  579. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js.map +0 -1
  580. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +0 -44
  581. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.js.map +0 -1
  582. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +0 -4
  583. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js.map +0 -1
  584. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +0 -5
  585. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js.map +0 -1
  586. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +0 -19
  587. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js.map +0 -1
  588. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +0 -25
  589. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js.map +0 -1
  590. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +0 -8
  591. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js.map +0 -1
  592. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +0 -10
  593. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js.map +0 -1
  594. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +0 -44
  595. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js.map +0 -1
  596. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +0 -22
  597. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js.map +0 -1
  598. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +0 -13
  599. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js.map +0 -1
  600. package/dist/source/interfaces/data_access/ua_y_array_item_ex.js.map +0 -1
  601. package/dist/source/interfaces/extension_object_constructor.js.map +0 -1
  602. package/dist/source/interfaces/i_condition_variable_type_setter_options.js.map +0 -1
  603. package/dist/source/interfaces/i_set_state_options.js.map +0 -1
  604. package/dist/source/interfaces/nodeset_loader_options.d.ts +0 -37
  605. package/dist/source/interfaces/nodeset_loader_options.js.map +0 -1
  606. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +0 -12
  607. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js.map +0 -1
  608. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +0 -49
  609. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js.map +0 -1
  610. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +0 -11
  611. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js.map +0 -1
  612. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +0 -29
  613. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.js.map +0 -1
  614. package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +0 -236
  615. package/dist/source/interfaces/state_machine/ua_state_machine_type.js.map +0 -1
  616. package/dist/source/interfaces/state_machine/ua_transition_ex.js.map +0 -1
  617. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js.map +0 -1
  618. package/dist/source/loader/decode_xml_extension_object.d.ts +0 -6
  619. package/dist/source/loader/decode_xml_extension_object.js +0 -69
  620. package/dist/source/loader/decode_xml_extension_object.js.map +0 -1
  621. package/dist/source/loader/ensure_datatype_extracted.js +0 -88
  622. package/dist/source/loader/ensure_datatype_extracted.js.map +0 -1
  623. package/dist/source/loader/generateAddressSpaceRaw.d.ts +0 -29
  624. package/dist/source/loader/generateAddressSpaceRaw.js +0 -188
  625. package/dist/source/loader/generateAddressSpaceRaw.js.map +0 -1
  626. package/dist/source/loader/load_nodeset2.d.ts +0 -15
  627. package/dist/source/loader/load_nodeset2.js +0 -1047
  628. package/dist/source/loader/load_nodeset2.js.map +0 -1
  629. package/dist/source/loader/make_semver_compatible.js.map +0 -1
  630. package/dist/source/loader/make_xml_extension_object_parser.js +0 -422
  631. package/dist/source/loader/make_xml_extension_object_parser.js.map +0 -1
  632. package/dist/source/loader/namespace_post_step.js +0 -57
  633. package/dist/source/loader/namespace_post_step.js.map +0 -1
  634. package/dist/source/loader/parsers/extension_object_parser.js +0 -274
  635. package/dist/source/loader/parsers/extension_object_parser.js.map +0 -1
  636. package/dist/source/loader/parsers/localized_text_parser.js.map +0 -1
  637. package/dist/source/loader/parsers/nodeid_parser.js.map +0 -1
  638. package/dist/source/loader/parsers/qualified_name_parser.js.map +0 -1
  639. package/dist/source/loader/parsers/variant_parser.d.ts +0 -35
  640. package/dist/source/loader/parsers/variant_parser.js +0 -331
  641. package/dist/source/loader/parsers/variant_parser.js.map +0 -1
  642. package/dist/source/loader/register_node_promoter.d.ts +0 -2
  643. package/dist/source/loader/register_node_promoter.js +0 -9
  644. package/dist/source/loader/register_node_promoter.js.map +0 -1
  645. package/dist/source/namespace.d.ts +0 -6
  646. package/dist/source/namespace.js.map +0 -1
  647. package/dist/source/namespace_alarm_and_condition.d.ts +0 -33
  648. package/dist/source/namespace_alarm_and_condition.js.map +0 -1
  649. package/dist/source/namespace_data_access.d.ts +0 -67
  650. package/dist/source/namespace_data_access.js.map +0 -1
  651. package/dist/source/namespace_machine_state.d.ts +0 -8
  652. package/dist/source/namespace_machine_state.js.map +0 -1
  653. package/dist/source/pseudo_session.d.ts +0 -74
  654. package/dist/source/pseudo_session.js +0 -308
  655. package/dist/source/pseudo_session.js.map +0 -1
  656. package/dist/source/session_context.d.ts +0 -241
  657. package/dist/source/session_context.js.map +0 -1
  658. package/dist/source/set_namespace_meta_data.js.map +0 -1
  659. package/dist/source/ua_addin.js.map +0 -1
  660. package/dist/source/ua_interface.js +0 -25
  661. package/dist/source/ua_interface.js.map +0 -1
  662. package/dist/source/ua_root_folder.js.map +0 -1
  663. package/dist/source/ua_two_state_variable_ex.d.ts +0 -24
  664. package/dist/source/ua_two_state_variable_ex.js.map +0 -1
  665. package/dist/source/xml_writer.js.map +0 -1
  666. package/dist/src/_instantiate_helpers.js +0 -99
  667. package/dist/src/_instantiate_helpers.js.map +0 -1
  668. package/dist/src/_mandatory_child_or_requested_optional_filter.js +0 -82
  669. package/dist/src/_mandatory_child_or_requested_optional_filter.js.map +0 -1
  670. package/dist/src/address_space.d.ts +0 -369
  671. package/dist/src/address_space.js +0 -1416
  672. package/dist/src/address_space.js.map +0 -1
  673. package/dist/src/address_space_change_event_tools.d.ts +0 -6
  674. package/dist/src/address_space_change_event_tools.js.map +0 -1
  675. package/dist/src/address_space_private.d.ts +0 -45
  676. package/dist/src/address_space_private.js.map +0 -1
  677. package/dist/src/alarms_and_conditions/condition.js.map +0 -1
  678. package/dist/src/alarms_and_conditions/condition_info_impl.d.ts +0 -18
  679. package/dist/src/alarms_and_conditions/condition_info_impl.js +0 -38
  680. package/dist/src/alarms_and_conditions/condition_info_impl.js.map +0 -1
  681. package/dist/src/alarms_and_conditions/condition_snapshot_impl.d.ts +0 -269
  682. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js +0 -699
  683. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js.map +0 -1
  684. package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +0 -12
  685. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +0 -66
  686. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js.map +0 -1
  687. package/dist/src/alarms_and_conditions/index.d.ts +0 -16
  688. package/dist/src/alarms_and_conditions/index.js +0 -33
  689. package/dist/src/alarms_and_conditions/index.js.map +0 -1
  690. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +0 -42
  691. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +0 -243
  692. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js.map +0 -1
  693. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +0 -80
  694. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +0 -415
  695. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js.map +0 -1
  696. package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +0 -18
  697. package/dist/src/alarms_and_conditions/ua_base_event_impl.js +0 -33
  698. package/dist/src/alarms_and_conditions/ua_base_event_impl.js.map +0 -1
  699. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +0 -44
  700. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +0 -203
  701. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js.map +0 -1
  702. package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +0 -104
  703. package/dist/src/alarms_and_conditions/ua_condition_impl.js +0 -1017
  704. package/dist/src/alarms_and_conditions/ua_condition_impl.js.map +0 -1
  705. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +0 -19
  706. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +0 -39
  707. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js.map +0 -1
  708. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +0 -25
  709. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +0 -55
  710. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js.map +0 -1
  711. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +0 -11
  712. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +0 -12
  713. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js.map +0 -1
  714. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +0 -23
  715. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +0 -87
  716. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js.map +0 -1
  717. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +0 -10
  718. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +0 -8
  719. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js.map +0 -1
  720. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +0 -26
  721. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +0 -208
  722. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js.map +0 -1
  723. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +0 -23
  724. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +0 -55
  725. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js.map +0 -1
  726. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +0 -27
  727. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +0 -173
  728. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js.map +0 -1
  729. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +0 -43
  730. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +0 -168
  731. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js.map +0 -1
  732. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +0 -18
  733. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +0 -18
  734. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js.map +0 -1
  735. package/dist/src/apply_condition_refresh.d.ts +0 -4
  736. package/dist/src/apply_condition_refresh.js +0 -27
  737. package/dist/src/apply_condition_refresh.js.map +0 -1
  738. package/dist/src/base_node_impl.d.ts +0 -287
  739. package/dist/src/base_node_impl.js +0 -1538
  740. package/dist/src/base_node_impl.js.map +0 -1
  741. package/dist/src/base_node_private.d.ts +0 -87
  742. package/dist/src/base_node_private.js +0 -925
  743. package/dist/src/base_node_private.js.map +0 -1
  744. package/dist/src/check_value_rank_compatibility.js.map +0 -1
  745. package/dist/src/data_access/add_dataItem_stuff.js.map +0 -1
  746. package/dist/src/data_access/adjust_datavalue_status_code.d.ts +0 -7
  747. package/dist/src/data_access/adjust_datavalue_status_code.js.map +0 -1
  748. package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +0 -35
  749. package/dist/src/data_access/ua_multistate_discrete_impl.js +0 -142
  750. package/dist/src/data_access/ua_multistate_discrete_impl.js.map +0 -1
  751. package/dist/src/data_access/ua_multistate_value_discrete_impl.d.ts +0 -51
  752. package/dist/src/data_access/ua_multistate_value_discrete_impl.js +0 -302
  753. package/dist/src/data_access/ua_multistate_value_discrete_impl.js.map +0 -1
  754. package/dist/src/data_access/ua_two_state_discrete_impl.d.ts +0 -20
  755. package/dist/src/data_access/ua_two_state_discrete_impl.js +0 -163
  756. package/dist/src/data_access/ua_two_state_discrete_impl.js.map +0 -1
  757. package/dist/src/event_data.d.ts +0 -18
  758. package/dist/src/event_data.js +0 -70
  759. package/dist/src/event_data.js.map +0 -1
  760. package/dist/src/extension_object_array_node.d.ts +0 -34
  761. package/dist/src/extension_object_array_node.js +0 -262
  762. package/dist/src/extension_object_array_node.js.map +0 -1
  763. package/dist/src/get_basic_datatype.js.map +0 -1
  764. package/dist/src/historical_access/address_space_historical_data_node.d.ts +0 -21
  765. package/dist/src/historical_access/address_space_historical_data_node.js +0 -654
  766. package/dist/src/historical_access/address_space_historical_data_node.js.map +0 -1
  767. package/dist/src/idx_iterator.js.map +0 -1
  768. package/dist/src/index_current.d.ts +0 -50
  769. package/dist/src/index_current.js +0 -82
  770. package/dist/src/index_current.js.map +0 -1
  771. package/dist/src/namespace_impl.d.ts +0 -450
  772. package/dist/src/namespace_impl.js +0 -1876
  773. package/dist/src/namespace_impl.js.map +0 -1
  774. package/dist/src/namespace_private.d.ts +0 -31
  775. package/dist/src/namespace_private.js.map +0 -1
  776. package/dist/src/nodeid_manager.js +0 -249
  777. package/dist/src/nodeid_manager.js.map +0 -1
  778. package/dist/src/nodeset_tools/adjust_namespace_array.js.map +0 -1
  779. package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +0 -33
  780. package/dist/src/nodeset_tools/construct_namespace_dependency.js +0 -347
  781. package/dist/src/nodeset_tools/construct_namespace_dependency.js.map +0 -1
  782. package/dist/src/nodeset_tools/dump_to_bsd.d.ts +0 -2
  783. package/dist/src/nodeset_tools/dump_to_bsd.js +0 -164
  784. package/dist/src/nodeset_tools/dump_to_bsd.js.map +0 -1
  785. package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +0 -12
  786. package/dist/src/nodeset_tools/nodeset_to_xml.js +0 -1381
  787. package/dist/src/nodeset_tools/nodeset_to_xml.js.map +0 -1
  788. package/dist/src/private_namespace.d.ts +0 -5
  789. package/dist/src/private_namespace.js.map +0 -1
  790. package/dist/src/reference_impl.d.ts +0 -43
  791. package/dist/src/reference_impl.js +0 -152
  792. package/dist/src/reference_impl.js.map +0 -1
  793. package/dist/src/role_permissions.js.map +0 -1
  794. package/dist/src/state_machine/finite_state_machine.d.ts +0 -70
  795. package/dist/src/state_machine/finite_state_machine.js +0 -574
  796. package/dist/src/state_machine/finite_state_machine.js.map +0 -1
  797. package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +0 -39
  798. package/dist/src/state_machine/ua_shelving_state_machine_ex.js +0 -249
  799. package/dist/src/state_machine/ua_shelving_state_machine_ex.js.map +0 -1
  800. package/dist/src/state_machine/ua_two_state_variable.d.ts +0 -55
  801. package/dist/src/state_machine/ua_two_state_variable.js +0 -323
  802. package/dist/src/state_machine/ua_two_state_variable.js.map +0 -1
  803. package/dist/src/tool_isSubtypeOf.d.ts +0 -18
  804. package/dist/src/tool_isSubtypeOf.js +0 -130
  805. package/dist/src/tool_isSubtypeOf.js.map +0 -1
  806. package/dist/src/ua_condition_type.js.map +0 -1
  807. package/dist/src/ua_data_type_impl.d.ts +0 -87
  808. package/dist/src/ua_data_type_impl.js +0 -393
  809. package/dist/src/ua_data_type_impl.js.map +0 -1
  810. package/dist/src/ua_method_impl.d.ts +0 -48
  811. package/dist/src/ua_method_impl.js +0 -280
  812. package/dist/src/ua_method_impl.js.map +0 -1
  813. package/dist/src/ua_object_impl.d.ts +0 -38
  814. package/dist/src/ua_object_impl.js +0 -214
  815. package/dist/src/ua_object_impl.js.map +0 -1
  816. package/dist/src/ua_object_type_impl.d.ts +0 -55
  817. package/dist/src/ua_object_type_impl.js +0 -131
  818. package/dist/src/ua_object_type_impl.js.map +0 -1
  819. package/dist/src/ua_reference_type_impl.d.ts +0 -42
  820. package/dist/src/ua_reference_type_impl.js +0 -146
  821. package/dist/src/ua_reference_type_impl.js.map +0 -1
  822. package/dist/src/ua_variable_impl.d.ts +0 -379
  823. package/dist/src/ua_variable_impl.js +0 -1940
  824. package/dist/src/ua_variable_impl.js.map +0 -1
  825. package/dist/src/ua_variable_impl_ext_obj.d.ts +0 -23
  826. package/dist/src/ua_variable_impl_ext_obj.js +0 -752
  827. package/dist/src/ua_variable_impl_ext_obj.js.map +0 -1
  828. package/dist/src/ua_variable_type_impl.d.ts +0 -79
  829. package/dist/src/ua_variable_type_impl.js +0 -276
  830. package/dist/src/ua_variable_type_impl.js.map +0 -1
  831. package/dist/src/ua_view_impl.d.ts +0 -18
  832. package/dist/src/ua_view_impl.js +0 -45
  833. package/dist/src/ua_view_impl.js.map +0 -1
  834. package/dist/src/validate_data_type_correctness.d.ts +0 -6
  835. package/dist/src/validate_data_type_correctness.js +0 -106
  836. package/dist/src/validate_data_type_correctness.js.map +0 -1
  837. package/source/address_space_ts.ts +0 -220
  838. package/source/continuation_points/continuation_point_manager.ts +0 -271
  839. package/source/helpers/argument_list.ts +0 -310
  840. package/source/helpers/call_helpers.ts +0 -100
  841. package/source/helpers/coerce_enum_value.ts +0 -33
  842. package/source/helpers/dump_tools.ts +0 -90
  843. package/source/helpers/ensure_secure_access.ts +0 -57
  844. package/source/helpers/multiform_func.ts +0 -78
  845. package/source/helpers/resolve_opaque_on_address_space.ts +0 -26
  846. package/source/index.ts +0 -72
  847. package/source/interfaces/alarms_and_conditions/condition_info_i.ts +0 -24
  848. package/source/interfaces/alarms_and_conditions/condition_snapshot.ts +0 -235
  849. package/source/interfaces/alarms_and_conditions/deviation_stuff.ts +0 -16
  850. package/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.ts +0 -8
  851. package/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.ts +0 -6
  852. package/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.ts +0 -6
  853. package/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.ts +0 -13
  854. package/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.ts +0 -6
  855. package/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.ts +0 -6
  856. package/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.ts +0 -21
  857. package/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.ts +0 -28
  858. package/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.ts +0 -43
  859. package/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.ts +0 -36
  860. package/source/interfaces/alarms_and_conditions/ua_condition_ex.ts +0 -55
  861. package/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.ts +0 -17
  862. package/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.ts +0 -21
  863. package/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.ts +0 -21
  864. package/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.ts +0 -26
  865. package/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.ts +0 -29
  866. package/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.ts +0 -25
  867. package/source/interfaces/data_access/ua_multistate_discrete_ex.ts +0 -57
  868. package/source/interfaces/data_access/ua_multistate_value_discrete_ex.ts +0 -31
  869. package/source/interfaces/data_access/ua_two_state_discrete_ex.ts +0 -15
  870. package/source/interfaces/nodeset_loader_options.ts +0 -38
  871. package/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.ts +0 -20
  872. package/source/interfaces/state_machine/ua_finite_state_machine_type.ts +0 -50
  873. package/source/interfaces/state_machine/ua_program_state_machine_type.ts +0 -14
  874. package/source/interfaces/state_machine/ua_shelved_state_machine_ex.ts +0 -35
  875. package/source/interfaces/state_machine/ua_state_machine_type.ts +0 -288
  876. package/source/loader/decode_xml_extension_object.ts +0 -80
  877. package/source/loader/ensure_datatype_extracted.ts +0 -122
  878. package/source/loader/generateAddressSpaceRaw.ts +0 -219
  879. package/source/loader/load_nodeset2.ts +0 -1275
  880. package/source/loader/make_xml_extension_object_parser.ts +0 -524
  881. package/source/loader/namespace_post_step.ts +0 -68
  882. package/source/loader/parsers/extension_object_parser.ts +0 -374
  883. package/source/loader/parsers/variant_parser.ts +0 -433
  884. package/source/loader/register_node_promoter.ts +0 -6
  885. package/source/namespace.ts +0 -7
  886. package/source/namespace_alarm_and_condition.ts +0 -78
  887. package/source/namespace_data_access.ts +0 -92
  888. package/source/namespace_machine_state.ts +0 -20
  889. package/source/pseudo_session.ts +0 -415
  890. package/source/session_context.ts +0 -725
  891. package/source/ua_interface.ts +0 -38
  892. package/source/ua_two_state_variable_ex.ts +0 -36
  893. package/src/_instantiate_helpers.ts +0 -197
  894. package/src/_mandatory_child_or_requested_optional_filter.ts +0 -100
  895. package/src/address_space.ts +0 -1631
  896. package/src/address_space_change_event_tools.ts +0 -177
  897. package/src/address_space_private.ts +0 -96
  898. package/src/alarms_and_conditions/condition_info_impl.ts +0 -44
  899. package/src/alarms_and_conditions/condition_snapshot_impl.ts +0 -792
  900. package/src/alarms_and_conditions/deviation_alarm_helper.ts +0 -73
  901. package/src/alarms_and_conditions/index.ts +0 -16
  902. package/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.ts +0 -331
  903. package/src/alarms_and_conditions/ua_alarm_condition_impl.ts +0 -479
  904. package/src/alarms_and_conditions/ua_base_event_impl.ts +0 -42
  905. package/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.ts +0 -244
  906. package/src/alarms_and_conditions/ua_condition_impl.ts +0 -1261
  907. package/src/alarms_and_conditions/ua_discrete_alarm_impl.ts +0 -57
  908. package/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.ts +0 -94
  909. package/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.ts +0 -20
  910. package/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.ts +0 -109
  911. package/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.ts +0 -25
  912. package/src/alarms_and_conditions/ua_limit_alarm_impl.ts +0 -244
  913. package/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.ts +0 -88
  914. package/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.ts +0 -223
  915. package/src/alarms_and_conditions/ua_off_normal_alarm_impl.ts +0 -218
  916. package/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.ts +0 -26
  917. package/src/apply_condition_refresh.ts +0 -29
  918. package/src/base_node_impl.ts +0 -1907
  919. package/src/base_node_private.ts +0 -1287
  920. package/src/data_access/adjust_datavalue_status_code.ts +0 -36
  921. package/src/data_access/ua_multistate_discrete_impl.ts +0 -189
  922. package/src/data_access/ua_multistate_value_discrete_impl.ts +0 -369
  923. package/src/data_access/ua_two_state_discrete_impl.ts +0 -184
  924. package/src/event_data.ts +0 -83
  925. package/src/extension_object_array_node.ts +0 -331
  926. package/src/historical_access/address_space_historical_data_node.ts +0 -842
  927. package/src/index_current.ts +0 -51
  928. package/src/namespace_impl.ts +0 -2380
  929. package/src/namespace_private.ts +0 -77
  930. package/src/nodeid_manager.ts +0 -293
  931. package/src/nodeset_tools/construct_namespace_dependency.ts +0 -375
  932. package/src/nodeset_tools/dump_to_bsd.ts +0 -201
  933. package/src/nodeset_tools/nodeset_to_xml.ts +0 -1652
  934. package/src/private_namespace.ts +0 -21
  935. package/src/reference_impl.ts +0 -171
  936. package/src/state_machine/finite_state_machine.ts +0 -668
  937. package/src/state_machine/ua_shelving_state_machine_ex.ts +0 -330
  938. package/src/state_machine/ua_two_state_variable.ts +0 -421
  939. package/src/tool_isSubtypeOf.ts +0 -160
  940. package/src/ua_data_type_impl.ts +0 -483
  941. package/src/ua_method_impl.ts +0 -362
  942. package/src/ua_object_impl.ts +0 -278
  943. package/src/ua_object_type_impl.ts +0 -179
  944. package/src/ua_reference_type_impl.ts +0 -170
  945. package/src/ua_variable_impl.ts +0 -2489
  946. package/src/ua_variable_impl_ext_obj.ts +0 -903
  947. package/src/ua_variable_type_impl.ts +0 -385
  948. package/src/ua_view_impl.ts +0 -53
  949. package/src/validate_data_type_correctness.ts +0 -124
  950. /package/{source → api}/helpers/adjust_browse_direction.ts +0 -0
  951. /package/{source → api}/helpers/make_optionals_map.ts +0 -0
  952. /package/{source → api}/interfaces/alarms_and_conditions/install_setpoint_options.ts +0 -0
  953. /package/{source → api}/interfaces/alarms_and_conditions/instantiate_condition_options.ts +0 -0
  954. /package/{source → api}/interfaces/alarms_and_conditions/ua_base_event_ex.ts +0 -0
  955. /package/{source → api}/interfaces/data_access/ua_y_array_item_ex.ts +0 -0
  956. /package/{source → api}/interfaces/extension_object_constructor.ts +0 -0
  957. /package/{source → api}/interfaces/i_condition_variable_type_setter_options.ts +0 -0
  958. /package/{source → api}/interfaces/i_set_state_options.ts +0 -0
  959. /package/{source → api}/interfaces/state_machine/ua_transition_ex.ts +0 -0
  960. /package/{source → api}/interfaces/ua_subscription_diagnostics_variable_ex.ts +0 -0
  961. /package/{source → api}/loader/make_semver_compatible.ts +0 -0
  962. /package/{source → api}/loader/parsers/localized_text_parser.ts +0 -0
  963. /package/{source → api}/loader/parsers/nodeid_parser.ts +0 -0
  964. /package/{source → api}/loader/parsers/qualified_name_parser.ts +0 -0
  965. /package/{source → api}/set_namespace_meta_data.ts +0 -0
  966. /package/{source → api}/ua_addin.ts +0 -0
  967. /package/{source → api}/ua_root_folder.ts +0 -0
  968. /package/{source → api}/xml_writer.ts +0 -0
  969. /package/dist/{source → api}/continuation_points/continuation_point_manager.d.ts +0 -0
  970. /package/dist/{source → api}/helpers/adjust_browse_direction.d.ts +0 -0
  971. /package/dist/{source → api}/helpers/adjust_browse_direction.js +0 -0
  972. /package/dist/{source → api}/helpers/argument_list.d.ts +0 -0
  973. /package/dist/{source → api}/helpers/call_helpers.d.ts +0 -0
  974. /package/dist/{source → api}/helpers/coerce_enum_value.js +0 -0
  975. /package/dist/{source → api}/helpers/dump_tools.d.ts +0 -0
  976. /package/dist/{source → api}/helpers/make_optionals_map.d.ts +0 -0
  977. /package/dist/{source → api}/helpers/make_optionals_map.js +0 -0
  978. /package/dist/{source → api}/helpers/multiform_func.d.ts +0 -0
  979. /package/dist/{source → api}/helpers/resolve_opaque_on_address_space.d.ts +0 -0
  980. /package/dist/{source → api}/interfaces/alarms_and_conditions/condition_snapshot.js +0 -0
  981. /package/dist/{source → api}/interfaces/alarms_and_conditions/deviation_stuff.js +0 -0
  982. /package/dist/{source → api}/interfaces/alarms_and_conditions/install_setpoint_options.d.ts +0 -0
  983. /package/dist/{source → api}/interfaces/alarms_and_conditions/install_setpoint_options.js +0 -0
  984. /package/dist/{source → api}/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js +0 -0
  985. /package/dist/{source → api}/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts +0 -0
  986. /package/dist/{source → api}/interfaces/alarms_and_conditions/instantiate_condition_options.js +0 -0
  987. /package/dist/{source → api}/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js +0 -0
  988. /package/dist/{source → api}/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js +0 -0
  989. /package/dist/{source → api}/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js +0 -0
  990. /package/dist/{source → api}/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js +0 -0
  991. /package/dist/{source → api}/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js +0 -0
  992. /package/dist/{source → api}/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js +0 -0
  993. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js +0 -0
  994. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js +0 -0
  995. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_base_event_ex.d.ts +0 -0
  996. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_base_event_ex.js +0 -0
  997. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js +0 -0
  998. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_condition_ex.js +0 -0
  999. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js +0 -0
  1000. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js +0 -0
  1001. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js +0 -0
  1002. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js +0 -0
  1003. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js +0 -0
  1004. /package/dist/{source → api}/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js +0 -0
  1005. /package/dist/{source → api}/interfaces/data_access/ua_multistate_discrete_ex.js +0 -0
  1006. /package/dist/{source → api}/interfaces/data_access/ua_multistate_value_discrete_ex.js +0 -0
  1007. /package/dist/{source → api}/interfaces/data_access/ua_two_state_discrete_ex.js +0 -0
  1008. /package/dist/{source → api}/interfaces/data_access/ua_y_array_item_ex.d.ts +0 -0
  1009. /package/dist/{source → api}/interfaces/data_access/ua_y_array_item_ex.js +0 -0
  1010. /package/dist/{source → api}/interfaces/extension_object_constructor.d.ts +0 -0
  1011. /package/dist/{source → api}/interfaces/extension_object_constructor.js +0 -0
  1012. /package/dist/{source → api}/interfaces/i_condition_variable_type_setter_options.d.ts +0 -0
  1013. /package/dist/{source → api}/interfaces/i_condition_variable_type_setter_options.js +0 -0
  1014. /package/dist/{source → api}/interfaces/i_set_state_options.d.ts +0 -0
  1015. /package/dist/{source → api}/interfaces/i_set_state_options.js +0 -0
  1016. /package/dist/{source → api}/interfaces/nodeset_loader_options.js +0 -0
  1017. /package/dist/{source → api}/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +0 -0
  1018. /package/dist/{source → api}/interfaces/state_machine/ua_finite_state_machine_type.js +0 -0
  1019. /package/dist/{source → api}/interfaces/state_machine/ua_program_state_machine_type.js +0 -0
  1020. /package/dist/{source → api}/interfaces/state_machine/ua_shelved_state_machine_ex.js +0 -0
  1021. /package/dist/{source → api}/interfaces/state_machine/ua_state_machine_type.js +0 -0
  1022. /package/dist/{source → api}/interfaces/state_machine/ua_transition_ex.d.ts +0 -0
  1023. /package/dist/{source → api}/interfaces/state_machine/ua_transition_ex.js +0 -0
  1024. /package/dist/{source → api}/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +0 -0
  1025. /package/dist/{source → api}/interfaces/ua_subscription_diagnostics_variable_ex.js +0 -0
  1026. /package/dist/{source → api}/loader/ensure_datatype_extracted.d.ts +0 -0
  1027. /package/dist/{source → api}/loader/make_semver_compatible.d.ts +0 -0
  1028. /package/dist/{source → api}/loader/make_semver_compatible.js +0 -0
  1029. /package/dist/{source → api}/loader/make_xml_extension_object_parser.d.ts +0 -0
  1030. /package/dist/{source → api}/loader/namespace_post_step.d.ts +0 -0
  1031. /package/dist/{source → api}/loader/parsers/extension_object_parser.d.ts +0 -0
  1032. /package/dist/{source → api}/loader/parsers/localized_text_parser.d.ts +0 -0
  1033. /package/dist/{source → api}/loader/parsers/localized_text_parser.js +0 -0
  1034. /package/dist/{source → api}/loader/parsers/nodeid_parser.d.ts +0 -0
  1035. /package/dist/{source → api}/loader/parsers/nodeid_parser.js +0 -0
  1036. /package/dist/{source → api}/loader/parsers/qualified_name_parser.d.ts +0 -0
  1037. /package/dist/{source → api}/loader/parsers/qualified_name_parser.js +0 -0
  1038. /package/dist/{source → api}/namespace.js +0 -0
  1039. /package/dist/{source → api}/namespace_alarm_and_condition.js +0 -0
  1040. /package/dist/{source → api}/namespace_data_access.js +0 -0
  1041. /package/dist/{source → api}/namespace_machine_state.js +0 -0
  1042. /package/dist/{source → api}/session_context.js +0 -0
  1043. /package/dist/{source → api}/set_namespace_meta_data.d.ts +0 -0
  1044. /package/dist/{source → api}/set_namespace_meta_data.js +0 -0
  1045. /package/dist/{source → api}/ua_addin.d.ts +0 -0
  1046. /package/dist/{source → api}/ua_addin.js +0 -0
  1047. /package/dist/{source → api}/ua_interface.d.ts +0 -0
  1048. /package/dist/{source → api}/ua_root_folder.d.ts +0 -0
  1049. /package/dist/{source → api}/ua_root_folder.js +0 -0
  1050. /package/dist/{source → api}/ua_two_state_variable_ex.js +0 -0
  1051. /package/dist/{source → api}/xml_writer.d.ts +0 -0
  1052. /package/dist/{source → api}/xml_writer.js +0 -0
  1053. /package/dist/{src → impl}/_instantiate_helpers.d.ts +0 -0
  1054. /package/dist/{src → impl}/_mandatory_child_or_requested_optional_filter.d.ts +0 -0
  1055. /package/dist/{src → impl}/address_space_change_event_tools.js +0 -0
  1056. /package/dist/{src → impl}/address_space_private.js +0 -0
  1057. /package/dist/{src → impl}/alarms_and_conditions/condition.d.ts +0 -0
  1058. /package/dist/{src → impl}/alarms_and_conditions/condition.js +0 -0
  1059. /package/dist/{src → impl}/check_value_rank_compatibility.d.ts +0 -0
  1060. /package/dist/{src → impl}/check_value_rank_compatibility.js +0 -0
  1061. /package/dist/{src → impl}/data_access/add_dataItem_stuff.d.ts +0 -0
  1062. /package/dist/{src → impl}/data_access/add_dataItem_stuff.js +0 -0
  1063. /package/dist/{src → impl}/data_access/adjust_datavalue_status_code.js +0 -0
  1064. /package/dist/{src → impl}/get_basic_datatype.d.ts +0 -0
  1065. /package/dist/{src → impl}/get_basic_datatype.js +0 -0
  1066. /package/dist/{src → impl}/idx_iterator.d.ts +0 -0
  1067. /package/dist/{src → impl}/idx_iterator.js +0 -0
  1068. /package/dist/{src → impl}/namespace_private.js +0 -0
  1069. /package/dist/{src → impl}/nodeid_manager.d.ts +0 -0
  1070. /package/dist/{src → impl}/nodeset_tools/adjust_namespace_array.d.ts +0 -0
  1071. /package/dist/{src → impl}/nodeset_tools/adjust_namespace_array.js +0 -0
  1072. /package/dist/{src → impl}/private_namespace.js +0 -0
  1073. /package/dist/{src → impl}/role_permissions.d.ts +0 -0
  1074. /package/dist/{src → impl}/role_permissions.js +0 -0
  1075. /package/dist/{src → impl}/ua_condition_type.d.ts +0 -0
  1076. /package/dist/{src → impl}/ua_condition_type.js +0 -0
  1077. /package/{src → impl}/alarms_and_conditions/condition.ts +0 -0
  1078. /package/{src → impl}/check_value_rank_compatibility.ts +0 -0
  1079. /package/{src → impl}/data_access/add_dataItem_stuff.ts +0 -0
  1080. /package/{src → impl}/get_basic_datatype.ts +0 -0
  1081. /package/{src → impl}/idx_iterator.ts +0 -0
  1082. /package/{src → impl}/nodeset_tools/adjust_namespace_array.ts +0 -0
  1083. /package/{src → impl}/role_permissions.ts +0 -0
  1084. /package/{src → impl}/ua_condition_type.ts +0 -0
@@ -1,2380 +0,0 @@
1
- /**
2
- * @module node-opcua-address-space
3
- */
4
- import chalk from "chalk";
5
- import type {
6
- AddBaseNodeOptions,
7
- AddEnumerationTypeOptions,
8
- AddMethodOptions,
9
- AddObjectOptions,
10
- AddObjectTypeOptions,
11
- AddReferenceOpts,
12
- AddReferenceTypeOptions,
13
- AddVariableOptions,
14
- AddVariableTypeOptions,
15
- AddViewOptions,
16
- AddYArrayItemOptions,
17
- BaseNode,
18
- BaseNodeEvents,
19
- CreateDataTypeOptions,
20
- CreateNodeOptions,
21
- EnumerationItem,
22
- RequiredModel,
23
- UADataType,
24
- UAEventType,
25
- UAMethod,
26
- UAObject,
27
- UAObjectType,
28
- UAReference,
29
- UAReferenceType,
30
- UAVariable,
31
- UAVariableType,
32
- UAView
33
- } from "node-opcua-address-space-base";
34
- import { assert } from "node-opcua-assert";
35
- import { coerceInt64 } from "node-opcua-basic-types";
36
- import { AxisScaleEnumeration } from "node-opcua-data-access";
37
- import {
38
- AccessRestrictionsFlag,
39
- BrowseDirection,
40
- coerceLocalizedText,
41
- coerceQualifiedName,
42
- NodeClass,
43
- QualifiedName,
44
- type QualifiedNameLike
45
- } from "node-opcua-data-model";
46
- import { dumpIf, make_errorLog, make_warningLog } from "node-opcua-debug";
47
- import { coerceNodeId, NodeId, type NodeIdLike, NodeIdType, resolveNodeId, sameNodeId } from "node-opcua-nodeid";
48
- import type { UAAnalogItem, UADataItem, UAInitialState, UAState } from "node-opcua-nodeset-ua";
49
- import { StatusCodes } from "node-opcua-status-code";
50
- import {
51
- Argument,
52
- type ArgumentOptions,
53
- AxisInformation,
54
- EnumDefinition,
55
- EnumField,
56
- EnumValueType,
57
- EUInformation,
58
- Range,
59
- type RolePermissionType,
60
- type RolePermissionTypeOptions
61
- } from "node-opcua-types";
62
- import { isNullOrUndefined } from "node-opcua-utils";
63
- import { DataType, Variant, VariantArrayType, type VariantOptions, verifyRankAndDimensions } from "node-opcua-variant";
64
- import type {
65
- InstantiateAlarmConditionOptions,
66
- InstantiateLimitAlarmOptions,
67
- InstantiateOffNormalAlarmOptions,
68
- UATwoStateDiscreteEx,
69
- UAYArrayItemEx
70
- } from "../source";
71
- import type {
72
- AddMultiStateDiscreteOptions,
73
- AddMultiStateValueDiscreteOptions,
74
- AddTwoStateDiscreteOptions,
75
- AddTwoStateVariableOptions
76
- } from "../source/address_space_ts";
77
- import type { InstantiateConditionOptions } from "../source/interfaces/alarms_and_conditions/instantiate_condition_options";
78
- import type { InstantiateExclusiveDeviationAlarmOptions } from "../source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options";
79
- import type { InstantiateNonExclusiveDeviationAlarmOptions } from "../source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options";
80
- import type { InstantiateNonExclusiveLimitAlarmOptions } from "../source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options";
81
- import type { UAAlarmConditionEx } from "../source/interfaces/alarms_and_conditions/ua_alarm_condition_ex";
82
- import type { UAConditionEx } from "../source/interfaces/alarms_and_conditions/ua_condition_ex";
83
- import type { UADiscreteAlarmEx } from "../source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex";
84
- import type { UAExclusiveDeviationAlarmEx } from "../source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex";
85
- import type { UAExclusiveLimitAlarmEx } from "../source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex";
86
- import type { UALimitAlarmEx } from "../source/interfaces/alarms_and_conditions/ua_limit_alarm_ex";
87
- import type { UANonExclusiveDeviationAlarmEx } from "../source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex";
88
- import type { UANonExclusiveLimitAlarmEx } from "../source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex";
89
- import type { UAMultiStateValueDiscreteEx } from "../source/interfaces/data_access/ua_multistate_value_discrete_ex";
90
- import type { UAStateMachineEx } from "../source/interfaces/state_machine/ua_state_machine_type";
91
- import type { UATransitionEx } from "../source/interfaces/state_machine/ua_transition_ex";
92
- import type { AddAnalogDataItemOptions, AddDataItemOptions } from "../source/namespace_data_access";
93
- import type { UATwoStateVariableEx } from "../source/ua_two_state_variable_ex";
94
-
95
- import { _handle_delete_node_model_change_event, _handle_model_change_event } from "./address_space_change_event_tools";
96
- import type { AddressSpacePrivate } from "./address_space_private";
97
- import {
98
- type UAAcknowledgeableConditionImpl,
99
- UAAcknowledgeableConditionImplBase,
100
- UAAlarmConditionImplBase,
101
- UAConditionImplBase,
102
- UADiscreteAlarmImplBase
103
- } from "./alarms_and_conditions";
104
- import { UAExclusiveDeviationAlarmImplBase } from "./alarms_and_conditions/ua_exclusive_deviation_alarm_impl";
105
- import { UAExclusiveLimitAlarmImplBase } from "./alarms_and_conditions/ua_exclusive_limit_alarm_impl";
106
- import { UALimitAlarmImplBase } from "./alarms_and_conditions/ua_limit_alarm_impl";
107
- import { UANonExclusiveDeviationAlarmImplBase } from "./alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl";
108
- import { UANonExclusiveLimitAlarmImplBase } from "./alarms_and_conditions/ua_non_exclusive_limit_alarm_impl";
109
- import { type UAOffNormalAlarmEx, UAOffNormalAlarmImplBase } from "./alarms_and_conditions/ua_off_normal_alarm_impl";
110
- import { BaseNodeImpl } from "./base_node_impl";
111
- import { add_dataItem_stuff } from "./data_access/add_dataItem_stuff";
112
- import { _addMultiStateDiscrete, type UAMultiStateDiscreteImpl } from "./data_access/ua_multistate_discrete_impl";
113
- import { _addMultiStateValueDiscrete } from "./data_access/ua_multistate_value_discrete_impl";
114
- import { _addTwoStateDiscrete } from "./data_access/ua_two_state_discrete_impl";
115
- //
116
- import { type NamespacePrivate, UANamespace_process_modelling_rule } from "./namespace_private";
117
-
118
- import { type ConstructNodeIdOptions, NodeIdManager } from "./nodeid_manager";
119
- import { coerceRolePermissions } from "./role_permissions";
120
- import type { UAStateMachineImpl, UATransitionImpl } from "./state_machine/finite_state_machine";
121
- // state machine
122
- import { _addTwoStateVariable } from "./state_machine/ua_two_state_variable";
123
- import { UADataTypeImpl } from "./ua_data_type_impl";
124
- import { UAMethodImpl } from "./ua_method_impl";
125
- import { UAObjectImpl } from "./ua_object_impl";
126
- import { UAObjectTypeImpl } from "./ua_object_type_impl";
127
- import { UAReferenceTypeImpl } from "./ua_reference_type_impl";
128
- import { UAVariableImpl } from "./ua_variable_impl";
129
- import { UAVariableTypeImpl } from "./ua_variable_type_impl";
130
- import { UAViewImpl } from "./ua_view_impl";
131
-
132
- function _makeHashKey(nodeId: NodeId): string | number {
133
- switch (nodeId.identifierType) {
134
- case NodeIdType.STRING:
135
- case NodeIdType.GUID:
136
- return nodeId.value as string;
137
- case NodeIdType.NUMERIC:
138
- return nodeId.value as number;
139
- default:
140
- // c8 ignore next
141
- if (nodeId.identifierType !== NodeIdType.BYTESTRING) {
142
- throw new Error("invalid nodeIdType");
143
- }
144
- return nodeId.value ? nodeId.value.toString() : "OPAQUE:0";
145
- }
146
- }
147
- const doDebug = false;
148
- const errorLog = make_errorLog("AddressSpace");
149
- const warningLog = make_warningLog("AddressSpace");
150
-
151
- const regExp1 = /^(s|i|b|g)=/;
152
- const regExpNamespaceDotBrowseName = /^[0-9]+:(.*)/;
153
-
154
- export interface AddFolderOptions {
155
- browseName: QualifiedNameLike;
156
- }
157
-
158
- interface AddVariableOptions2 extends AddVariableOptions {
159
- nodeClass?: NodeClass.Variable;
160
- }
161
-
162
- function detachNode(node: BaseNode) {
163
- const addressSpace = node.addressSpace;
164
- const nonHierarchicalReferences = node.findReferencesEx("NonHierarchicalReferences", BrowseDirection.Inverse);
165
- for (const ref of nonHierarchicalReferences) {
166
- assert(!ref.isForward);
167
- ref.node?.removeReference({
168
- isForward: !ref.isForward,
169
- nodeId: node.nodeId,
170
- referenceType: ref.referenceType
171
- });
172
- }
173
- const nonHierarchicalReferencesF = node.findReferencesEx("NonHierarchicalReferences", BrowseDirection.Forward);
174
- for (const ref of nonHierarchicalReferencesF) {
175
- if (!ref.node) {
176
- // could be a special case of a frequently use target node such as ModellingRule_Mandatory that do not back trace
177
- // their reference
178
- continue;
179
- }
180
- assert(ref.isForward);
181
- ref.node?.removeReference({
182
- isForward: !ref.isForward,
183
- nodeId: node.nodeId,
184
- referenceType: ref.referenceType
185
- });
186
- }
187
-
188
- // remove reversed Hierarchical references
189
- const hierarchicalReferences = node.findReferencesEx("HierarchicalReferences", BrowseDirection.Inverse);
190
- for (const ref of hierarchicalReferences) {
191
- assert(!ref.isForward);
192
- const parent = addressSpace.findNode(ref.nodeId) as BaseNode;
193
- parent.removeReference({
194
- isForward: !ref.isForward,
195
- nodeId: node.nodeId,
196
- referenceType: ref.referenceType
197
- });
198
- }
199
- (<BaseNodeImpl>node).unpropagate_back_references();
200
- }
201
-
202
- interface NamespaceConstructorOptions {
203
- addressSpace: AddressSpacePrivate;
204
- index: number;
205
- namespaceUri: string;
206
- publicationDate: Date;
207
- version: string;
208
- }
209
-
210
- function toNodeId(nodeId: NodeId | { nodeId: NodeId } | string | number | undefined): NodeId | undefined {
211
- if (!nodeId) {
212
- return undefined;
213
- }
214
- if (nodeId instanceof NodeId) {
215
- return nodeId;
216
- }
217
- if (typeof nodeId === "string") {
218
- return coerceNodeId(nodeId);
219
- }
220
- if (typeof nodeId === "number") {
221
- return coerceNodeId(nodeId);
222
- }
223
- return nodeId.nodeId;
224
- }
225
-
226
- /**
227
- *
228
- * @constructor
229
- * @params options {Object}
230
- * @params options.namespaceUri {string}
231
- * @params options.addressSpace {IAddressSpace}
232
- * @params options.index {number}
233
- * @params options.version="" {string}
234
- * @params options.publicationDate="" {Date}
235
- *
236
- */
237
- export class NamespaceImpl implements NamespacePrivate {
238
- public static _handle_hierarchy_parent = _handle_hierarchy_parent;
239
- public static isNonEmptyQualifiedName = isNonEmptyQualifiedName;
240
-
241
- public readonly namespaceUri: string;
242
- public addressSpace: AddressSpacePrivate;
243
- public readonly index: number;
244
- public emulateVersion103 = false;
245
-
246
- public version = "0.0.0";
247
- public publicationDate: Date = new Date(Date.UTC(1900, 0, 1));
248
-
249
- public registerSymbolicNames = false;
250
-
251
- private _requiredModels?: RequiredModel[];
252
- private _objectTypeMap: Map<string, UAObjectType>;
253
- private _variableTypeMap: Map<string, UAVariableType>;
254
- private _referenceTypeMap: Map<string, UAReferenceType>;
255
- private _dataTypeMap: Map<string, UADataType>;
256
- private _referenceTypeMapInv: Map<string, UAReferenceType>;
257
- private _nodeIdManager: NodeIdManager;
258
- private _nodeid_index: Map<string | number | Buffer, BaseNode>;
259
- private _aliases: Map<string, NodeId>;
260
- private defaultAccessRestrictions?: AccessRestrictionsFlag;
261
- private defaultRolePermissions?: RolePermissionType[];
262
-
263
- constructor(options: NamespaceConstructorOptions) {
264
- // c8 ignore next
265
- if (!(typeof options.namespaceUri === "string")) {
266
- throw new Error(`NamespaceImpl constructor: namespaceUri must exists and be a string : got ${options.namespaceUri}`);
267
- }
268
- // c8 ignore next
269
- if (typeof options.index !== "number") {
270
- throw new Error("NamespaceImpl constructor: index must be a number");
271
- }
272
- // c8 ignore next
273
- if (!options.addressSpace) {
274
- throw new Error("NamespaceImpl constructor: Must specify a valid address space");
275
- }
276
-
277
- this.namespaceUri = options.namespaceUri;
278
- this.addressSpace = options.addressSpace;
279
-
280
- this.index = options.index;
281
- this._nodeid_index = new Map();
282
- this._aliases = new Map();
283
- this._objectTypeMap = new Map();
284
- this._variableTypeMap = new Map();
285
- this._referenceTypeMap = new Map();
286
- this._referenceTypeMapInv = new Map();
287
- this._dataTypeMap = new Map();
288
- this._nodeIdManager = new NodeIdManager(this.index, this.addressSpace);
289
- }
290
-
291
- public getDefaultNamespace(): NamespacePrivate {
292
- return this.index === 0 ? this : this.addressSpace.getDefaultNamespace();
293
- }
294
-
295
- public toJSON(): Record<string, string | number | undefined> {
296
- return {
297
- index: this.index,
298
- namespaceUri: this.namespaceUri,
299
- version: this.version
300
- };
301
- }
302
-
303
- public toString(): string {
304
- return `Namespace({ index: ${this.index}, namespaceUri: "${this.namespaceUri}" })`;
305
- }
306
-
307
- public [Symbol.for("nodejs.util.inspect.custom")](): string {
308
- return this.toString();
309
- }
310
-
311
- public dispose(): void {
312
- for (const node of this.nodeIterator()) {
313
- (<BaseNodeImpl>node).dispose();
314
- }
315
-
316
- this._nodeid_index = new Map();
317
- this._aliases = new Map();
318
-
319
- this.addressSpace = {} as AddressSpacePrivate;
320
-
321
- this._objectTypeMap = new Map();
322
- this._variableTypeMap = new Map();
323
- this._referenceTypeMap = new Map();
324
- this._referenceTypeMapInv = new Map();
325
- this._dataTypeMap = new Map();
326
- }
327
-
328
- public nodeIterator(): IterableIterator<BaseNode> {
329
- return this._nodeid_index.values();
330
- }
331
-
332
- public _objectTypeIterator(): IterableIterator<UAObjectType> {
333
- return this._objectTypeMap.values();
334
- }
335
-
336
- public _objectTypeCount(): number {
337
- return this._objectTypeMap.size;
338
- }
339
-
340
- public _variableTypeIterator(): IterableIterator<UAVariableType> {
341
- return this._variableTypeMap.values();
342
- }
343
-
344
- public _variableTypeCount(): number {
345
- return this._variableTypeMap.size;
346
- }
347
-
348
- public _dataTypeIterator(): IterableIterator<UADataType> {
349
- return this._dataTypeMap.values();
350
- }
351
-
352
- public _dataTypeCount(): number {
353
- return this._dataTypeMap.size;
354
- }
355
-
356
- public _referenceTypeIterator(): IterableIterator<UAReferenceType> {
357
- return this._referenceTypeMap.values();
358
- }
359
-
360
- public _referenceTypeCount(): number {
361
- return this._referenceTypeMap.size;
362
- }
363
-
364
- public _aliasCount(): number {
365
- return this._aliases.size;
366
- }
367
-
368
- public findNode2(nodeId: NodeId): BaseNode | null {
369
- // this one is faster assuming you have a nodeId
370
- assert(nodeId.namespace === this.index);
371
- return this._nodeid_index.get(_makeHashKey(nodeId)) || null;
372
- }
373
- public findNode(nodeId: string | NodeId): BaseNode | null {
374
- if (typeof nodeId === "string") {
375
- if (nodeId.match(regExp1)) {
376
- nodeId = `ns=${this.index};${nodeId}`;
377
- }
378
- }
379
- nodeId = resolveNodeId(nodeId);
380
- return this.findNode2(nodeId);
381
- }
382
-
383
- /**
384
- *
385
- * @param objectTypeName {String}
386
- * @return {UAObjectType|null}
387
- */
388
- public findObjectType(objectTypeName: string): UAObjectType | null {
389
- return this._objectTypeMap.get(objectTypeName) || null;
390
- }
391
-
392
- /**
393
- *
394
- * @param variableTypeName {String}
395
- * @returns {UAVariableType|null}
396
- */
397
- public findVariableType(variableTypeName: string): UAVariableType | null {
398
- return this._variableTypeMap.get(variableTypeName) || null;
399
- }
400
- /**
401
- *
402
- * @param dataTypeName {String}
403
- * @returns {UADataType|null}
404
- */
405
- public findDataType(dataTypeName: string): UADataType | null {
406
- return this._dataTypeMap.get(dataTypeName) || null;
407
- }
408
-
409
- /**
410
- *
411
- * @param referenceTypeName {String}
412
- * @returns {ReferenceType|null}
413
- */
414
- public findReferenceType(referenceTypeName: string): UAReferenceType | null {
415
- return this._referenceTypeMap.get(referenceTypeName) || null;
416
- }
417
-
418
- /**
419
- * find a ReferenceType by its inverse name.
420
-
421
- * @param inverseName {String} the inverse name of the ReferenceType to find
422
- * @return {ReferenceType}
423
- */
424
- public findReferenceTypeFromInverseName(inverseName: string): UAReferenceType | null {
425
- assert(typeof inverseName === "string");
426
- const node = this._referenceTypeMapInv.get(inverseName);
427
- assert(!node || (node.nodeClass === NodeClass.ReferenceType && node.inverseName.text === inverseName));
428
- return node ? node : null;
429
- }
430
-
431
- /**
432
- *
433
-
434
- * @param alias_name {String} the alias name
435
- * @param nodeId {NodeId} NodeId must belong to this namespace
436
- */
437
- public addAlias(alias_name: string, nodeId: NodeId): void {
438
- assert(typeof alias_name === "string");
439
- assert(nodeId instanceof NodeId);
440
- assert(nodeId.namespace === this.index);
441
- this._aliases.set(alias_name, nodeId);
442
- }
443
-
444
- public resolveAlias(name: string): NodeId | null {
445
- return this._aliases.get(name) || null;
446
- }
447
-
448
- /**
449
- * add a new Object type to the address space
450
-
451
- * @param options
452
- * @param options.browseName {String} the object type name
453
- * @param [options.displayName] {String|LocalizedText} the display name
454
- * @param [options.subtypeOf="BaseObjectType"] {String|NodeId|BaseNode} the base class
455
- * @param [options.nodeId] {String|NodeId} an optional nodeId for this objectType,
456
- * if not provided a new nodeId will be created
457
- * @param [options.isAbstract = false] {Boolean}
458
- * @param [options.eventNotifier = 0] {Integer}
459
- * @param [options.postInstantiateFunc = null] {Function}
460
- *
461
- */
462
- public addObjectType(options: AddObjectTypeOptions): UAObjectType {
463
- assert(!Object.hasOwn(options, "dataType"), "an objectType should not have a dataType");
464
- assert(!Object.hasOwn(options, "valueRank"), "an objectType should not have a valueRank");
465
- assert(!Object.hasOwn(options, "arrayDimensions"), "an objectType should not have a arrayDimensions");
466
- return this._addObjectOrVariableType(options, "BaseObjectType", NodeClass.ObjectType) as UAObjectType;
467
- }
468
-
469
- /**
470
- * add a new Variable type to the address space
471
-
472
- * @param options
473
- * @param options.browseName {String} the object type name
474
- * @param [options.displayName] {String|LocalizedText} the display name
475
- * @param [options.subtypeOf="BaseVariableType"] {String|NodeId|BaseNode} the base class
476
- * @param [options.nodeId] {String|NodeId} an optional nodeId for this objectType,
477
- * if not provided a new nodeId will be created
478
- * @param [options.isAbstract = false] {Boolean}
479
- * @param options.dataType {String|NodeId} the variable DataType
480
- * @param [options.valueRank = -1]
481
- * @param [options.arrayDimensions = null] { Array<Int>>
482
- *
483
- */
484
- public addVariableType(options: AddVariableTypeOptions): UAVariableType {
485
- assert(!Object.hasOwn(options, "arrayDimension"), "Do you mean ArrayDimensions ?");
486
-
487
- // dataType
488
- options.dataType = options.dataType || "Int32";
489
- options.dataType = this.addressSpace._coerce_DataType(options.dataType);
490
-
491
- // valueRank/ arrayDimensions
492
- verifyRankAndDimensions(options);
493
-
494
- // arrayDimensions
495
- const variableType = this._addObjectOrVariableType(options, "BaseVariableType", NodeClass.VariableType) as UAVariableType;
496
-
497
- variableType.dataType = options.dataType;
498
- variableType.valueRank = options.valueRank || 0;
499
- variableType.arrayDimensions = options.arrayDimensions || [];
500
-
501
- return variableType as UAVariableType;
502
- }
503
-
504
- /**
505
- * add a variable as a component of the parent node
506
- */
507
- public addVariable(options: AddVariableOptions): UAVariable {
508
- if (Object.hasOwn(options, "propertyOf") && options.propertyOf) {
509
- assert(!options.typeDefinition || options.typeDefinition === "PropertyType");
510
- options.typeDefinition = options.typeDefinition || "PropertyType";
511
- } else {
512
- assert(!options.typeDefinition || options.typeDefinition !== "PropertyType");
513
- }
514
- return this._addVariable(options as AddVariableOptions2);
515
- }
516
-
517
- public addView(options: AddViewOptions): UAView {
518
- assert(Object.hasOwn(options, "browseName"));
519
- assert(Object.hasOwn(options, "organizedBy"));
520
- const browseName = options.browseName;
521
- assert(typeof browseName === "string");
522
-
523
- const addressSpace = this.addressSpace;
524
- const baseDataVariableTypeId = addressSpace.findVariableType("BaseDataVariableType")?.nodeId;
525
-
526
- // ------------------------------------------ TypeDefinition
527
- const _typeDefinition = options.typeDefinition || baseDataVariableTypeId;
528
- options.references = options.references || [];
529
-
530
- options.references.push({
531
- isForward: true,
532
- nodeId: toNodeId(_typeDefinition) || NodeId.nullNodeId,
533
- referenceType: "HasTypeDefinition"
534
- });
535
-
536
- const createOptions = options as CreateNodeOptions;
537
- assert(!createOptions.nodeClass);
538
- createOptions.nodeClass = NodeClass.View;
539
-
540
- const view = this.createNode(createOptions) as UAView;
541
- assert(view.nodeId instanceof NodeId);
542
- assert(view.nodeClass === NodeClass.View);
543
- return view;
544
- }
545
-
546
- public addObject(options1: AddObjectOptions): UAObject {
547
- const options: CreateNodeOptions = options1 as CreateNodeOptions;
548
-
549
- assert(!options.nodeClass || options.nodeClass === NodeClass.Object);
550
- options.nodeClass = NodeClass.Object;
551
-
552
- const typeDefinition = options.typeDefinition || "BaseObjectType";
553
- options.references = options.references || [];
554
- options.references.push({ referenceType: "HasTypeDefinition", isForward: true, nodeId: typeDefinition });
555
- options.eventNotifier = +(options.eventNotifier || 0);
556
- const obj = this.createNode(options) as UAObject;
557
- assert(obj instanceof UAObjectImpl);
558
- assert(obj.nodeClass === NodeClass.Object);
559
- return obj;
560
- }
561
-
562
- /**
563
- *
564
-
565
- * @param parentFolder
566
- * @param options {String|Object}
567
- * @param options.browseName {String} the name of the folder
568
- * @param [options.nodeId] {NodeId}. An optional nodeId for this object
569
- *
570
- * @return {BaseNode}
571
- */
572
- public addFolder(parentFolder: UAObject, options: AddFolderOptions | string): UAObject {
573
- if (typeof options === "string") {
574
- options = { browseName: options };
575
- }
576
-
577
- const addressSpace = this.addressSpace;
578
-
579
- assert(!(options as CreateNodeOptions).typeDefinition, "addFolder does not expect typeDefinition to be defined ");
580
- const typeDefinition = addressSpace._coerceTypeDefinition("FolderType");
581
- parentFolder = addressSpace._coerceFolder(parentFolder) as UAObject;
582
- (options as CreateNodeOptions).nodeClass = NodeClass.Object;
583
- (options as CreateNodeOptions).references = [
584
- { referenceType: "HasTypeDefinition", isForward: true, nodeId: typeDefinition },
585
- { referenceType: "Organizes", isForward: false, nodeId: parentFolder.nodeId }
586
- ];
587
- const node = this.createNode(options as CreateNodeOptions) as UAObject;
588
- return node;
589
- }
590
-
591
- /**
592
-
593
- * @param options
594
- * @param options.isAbstract
595
- * @param options.browseName
596
- * @param options.inverseName
597
- */
598
- public addReferenceType(options: AddReferenceTypeOptions): UAReferenceType {
599
- const addressSpace = this.addressSpace;
600
-
601
- const options1 = options as CreateNodeOptions;
602
- options1.nodeClass = NodeClass.ReferenceType;
603
- options1.references = options.references || [];
604
- options1.nodeId = options.nodeId;
605
-
606
- if (options.subtypeOf) {
607
- const subtypeOfNodeId = addressSpace._coerceType(options.subtypeOf, "References", NodeClass.ReferenceType);
608
-
609
- assert(subtypeOfNodeId);
610
-
611
- options1.references.push({
612
- isForward: false,
613
- nodeId: subtypeOfNodeId,
614
- referenceType: "HasSubtype"
615
- });
616
- }
617
- const node = this.internalCreateNode(options1) as UAReferenceType;
618
-
619
- node.propagate_back_references();
620
-
621
- return node;
622
- }
623
-
624
- /**
625
- */
626
- public addMultiStateDiscrete<T, DT extends DataType>(options: AddMultiStateDiscreteOptions): UAMultiStateDiscreteImpl<T, DT> {
627
- return _addMultiStateDiscrete<T, DT>(this, options);
628
- }
629
-
630
- /**
631
-
632
- */
633
- public createDataType(options: CreateDataTypeOptions): UADataType {
634
- assert(Object.hasOwn(options, "isAbstract"), "must provide isAbstract");
635
- assert(!Object.hasOwn(options, "nodeClass"));
636
- assert(Object.hasOwn(options, "browseName"), "must provide a browseName");
637
-
638
- const options1 = options as unknown as { nodeClass: NodeClass; references: AddReferenceOpts[]; subtypeOf: UADataType };
639
- options1.nodeClass = NodeClass.DataType;
640
- options1.references = options.references || [];
641
-
642
- if (options1.references.length === 0) {
643
- if (!options1.subtypeOf) {
644
- throw new Error("must provide a subtypeOf");
645
- }
646
- }
647
- if (options1.subtypeOf) {
648
- if (!(options1.subtypeOf instanceof UADataTypeImpl)) {
649
- options1.subtypeOf = this.addressSpace.findDataType(options1.subtypeOf) as UADataType;
650
- }
651
- if (!options1.subtypeOf) {
652
- throw new Error("cannot find subtypeOf ");
653
- }
654
- options1.references.push({
655
- isForward: false,
656
- nodeId: options1.subtypeOf.nodeId,
657
- referenceType: "HasSubtype"
658
- });
659
- }
660
- const node = this.internalCreateNode(options) as UADataType;
661
-
662
- node.propagate_back_references();
663
-
664
- return node;
665
- }
666
-
667
- /**
668
-
669
- * @param options
670
- * @param options.nodeClass
671
- * @param [options.nodeVersion {String} = "0" ] install nodeVersion
672
- * @param [options.modellingRule {String} = null]
673
- * @internal
674
- */
675
- public createNode(options: CreateNodeOptions): BaseNode {
676
- let node: BaseNode = null as unknown as BaseNode;
677
-
678
- const addressSpace = this.addressSpace;
679
- addressSpace.modelChangeTransaction(() => {
680
- assert(isNonEmptyQualifiedName(options.browseName));
681
- // xx assert(Object.prototype.hasOwnProperty.call(options,"browseName") && options.browseName.length > 0);
682
-
683
- assert(Object.hasOwn(options, "nodeClass"));
684
- options.references = addressSpace.normalizeReferenceTypes(options.references);
685
-
686
- const references = _copy_references(options.references);
687
-
688
- _handle_hierarchy_parent(addressSpace, references, options);
689
-
690
- _handle_event_hierarchy_parent(addressSpace, references, options);
691
-
692
- UANamespace_process_modelling_rule(references, options.modellingRule);
693
-
694
- options.references = references;
695
-
696
- node = this.internalCreateNode(options);
697
- assert(node.nodeId instanceof NodeId);
698
-
699
- node.propagate_back_references();
700
-
701
- node.install_extra_properties();
702
-
703
- _create_node_version_if_needed(node, options);
704
-
705
- _handle_model_change_event(node as BaseNodeImpl);
706
- });
707
- return node;
708
- }
709
-
710
- /**
711
- * remove the specified Node from the address space
712
- *
713
-
714
- * @param nodeOrNodeId
715
- *
716
- *
717
- */
718
- public deleteNode(nodeOrNodeId: NodeId | BaseNode): void {
719
- let node: BaseNodeImpl | null = null;
720
- let nodeId: NodeId = new NodeId();
721
- if (nodeOrNodeId instanceof NodeId) {
722
- nodeId = nodeOrNodeId;
723
- node = this.findNode(nodeId) as BaseNodeImpl;
724
- // c8 ignore next
725
- if (!node) {
726
- throw new Error(` deleteNode : cannot find node with nodeId${nodeId.toString()}`);
727
- }
728
- } else if (nodeOrNodeId instanceof BaseNodeImpl) {
729
- node = nodeOrNodeId;
730
- nodeId = node.nodeId;
731
- }
732
- // c8 ignore next
733
- if (nodeId.namespace !== this.index) {
734
- throw new Error("this node doesn't belong to this namespace");
735
- }
736
-
737
- const addressSpace = this.addressSpace;
738
-
739
- addressSpace.modelChangeTransaction(() => {
740
- /* c8 ignore next */
741
- if (!node) {
742
- throw new Error("this node doesn't belong to this namespace");
743
- }
744
- // notify parent that node is being removed
745
- const hierarchicalReferences = node.findReferencesEx("HierarchicalReferences", BrowseDirection.Inverse);
746
- for (const ref of hierarchicalReferences) {
747
- assert(!ref.isForward);
748
- const parent = addressSpace.findNode(ref.nodeId) as BaseNodeImpl;
749
- assert(parent);
750
- parent._on_child_removed(node);
751
- }
752
-
753
- function deleteNodePointedByReference(ref: { nodeId: NodeId }) {
754
- const o = addressSpace.findNode(ref.nodeId) as BaseNode;
755
- addressSpace.deleteNode(o.nodeId);
756
- }
757
-
758
- // recursively delete all nodes below in the hierarchy of nodes
759
- // TODO : a better idea would be to extract any references of type "HasChild"
760
- const components = node.findReferencesEx("HasComponent", BrowseDirection.Forward);
761
- const properties = node.findReferencesEx("HasProperty", BrowseDirection.Forward);
762
- // TODO: shall we delete nodes pointed by "Organizes" links here ?
763
- const subFolders = node.findReferencesEx("Organizes", BrowseDirection.Forward);
764
-
765
- for (const r of components) {
766
- deleteNodePointedByReference(r);
767
- }
768
- for (const r of properties) {
769
- deleteNodePointedByReference(r);
770
- }
771
- for (const r of subFolders) {
772
- deleteNodePointedByReference(r);
773
- }
774
-
775
- _handle_delete_node_model_change_event(node);
776
-
777
- detachNode(node);
778
-
779
- // delete nodes from global index
780
- const namespace = addressSpace.getNamespace(node.nodeId.namespace);
781
- namespace._deleteNode(node);
782
- });
783
- }
784
-
785
- /**
786
- * @internal
787
- */
788
- public getStandardsNodeIds(): { referenceTypeIds: { [key: string]: string }; objectTypeIds: { [key: string]: string } } {
789
- const standardNodeIds = {
790
- objectTypeIds: {} as { [key: string]: string },
791
- referenceTypeIds: {} as { [key: string]: string }
792
- };
793
-
794
- for (const referenceType of this._referenceTypeMap.values()) {
795
- standardNodeIds.referenceTypeIds[referenceType?.browseName?.name as string] = referenceType.nodeId.toString();
796
- }
797
- for (const objectType of this._objectTypeMap.values()) {
798
- standardNodeIds.objectTypeIds[objectType?.browseName?.name as string] = objectType.nodeId.toString();
799
- }
800
- return standardNodeIds;
801
- }
802
-
803
- // - Events --------------------------------------------------------------------------------------
804
- /**
805
- * add a new event type to the address space
806
-
807
- * @param options
808
- * @param options.browseName {String} the eventType name
809
- * @param [options.subtypeOf ="BaseEventType"]
810
- * @param [options.isAbstract = true]
811
- * @return {UAObjectType} : the object type
812
- *
813
- * @example
814
- *
815
- * var evtType = namespace.addEventType({
816
- * browseName: "MyAuditEventType",
817
- * subtypeOf: "AuditEventType"
818
- * });
819
- * var myConditionType = namespace.addEventType({
820
- * browseName: "MyConditionType",
821
- * subtypeOf: "ConditionType",
822
- * isAbstract: false
823
- * });
824
- *
825
- */
826
- public addEventType(options: AddObjectTypeOptions): UAObjectType {
827
- options.subtypeOf = options.subtypeOf || "BaseEventType";
828
- // are eventType always abstract ?? No => Condition can be instantiated!
829
- // but, by default is abstract is true
830
- options.isAbstract = Object.hasOwn(options, "isAbstract") ? !!options.isAbstract : true;
831
- return this.addObjectType(options);
832
- }
833
-
834
- // ---------------------------------------------------------------------------------------------------
835
- /**
836
- *
837
- */
838
- public addDataItem<T, DT extends DataType>(options: AddDataItemOptions): UADataItem<T, DT> {
839
- const addressSpace = this.addressSpace;
840
- const dataType = options.dataType || "Number";
841
-
842
- const dataItemType = addressSpace.findVariableType("DataItemType");
843
- if (!dataItemType) {
844
- throw new Error("Cannot find DataItemType");
845
- }
846
- const variable = this.addVariable({
847
- ...options,
848
- dataType,
849
- typeDefinition: dataItemType.nodeId
850
- });
851
-
852
- add_dataItem_stuff(variable, options);
853
-
854
- variable.install_extra_properties();
855
- return variable as UADataItem<T, DT>;
856
- }
857
-
858
- /**
859
- *
860
-
861
- *
862
- * AnalogDataItem DataItems that represent continuously-variable physical quantities ( e.g., length, temperature),
863
- * in contrast to the digital representation of data in discrete items
864
- * NOTE Typical examples are the values provided by temperature sensors or pressure sensors. OPC UA defines a
865
- * specific UAVariableType to identify an AnalogItem. Properties describe the possible ranges of AnalogItems.
866
- *
867
- *
868
- * @example:
869
- *
870
- *
871
- * namespace.add_analog_dataItem({
872
- * componentOf: parentObject,
873
- * browseName: "TemperatureSensor",
874
- *
875
- * definition: "(tempA -25) + tempB",
876
- * valuePrecision: 0.5,
877
- * //-
878
- * instrumentRange: { low: 100 , high: 200}, // optional
879
- * engineeringUnitsRange: { low: 100 , high: 200}, // mandatory
880
- * engineeringUnits: standardUnits.degree_celsius,, // optional
881
- *
882
- * // access level
883
- * accessLevel: 1
884
- * minimumSamplingInterval: 10,
885
- *
886
- * });
887
- *
888
-
889
- * @return {UAVariable}
890
- */
891
- public addAnalogDataItem<T, DT extends DataType>(options: AddAnalogDataItemOptions): UAAnalogItem<T, DT> {
892
- const addressSpace = this.addressSpace;
893
-
894
- assert(Object.hasOwn(options, "engineeringUnitsRange"), "expecting engineeringUnitsRange");
895
-
896
- const dataType = options.dataType || "Number";
897
-
898
- const analogItemType = addressSpace.findVariableType("AnalogItemType");
899
-
900
- if (!analogItemType) {
901
- throw new Error("expecting AnalogItemType to be defined , check nodeset xml file");
902
- }
903
-
904
- // options.typeDefinition may designate a subtype of AnalogItemType (e.g. a companion
905
- // specification's own AnalogItemType-derived VariableType). In that case we must honor it
906
- // so that the subtype's identity - and its own mandatory members - are preserved, instead of
907
- // silently downgrading the variable to a plain AnalogItemType.
908
- let requestedTypeDefinition = analogItemType;
909
- if (options.typeDefinition) {
910
- const t =
911
- options.typeDefinition instanceof BaseNodeImpl
912
- ? (options.typeDefinition as unknown as UAVariableType)
913
- : addressSpace.findVariableType(options.typeDefinition as NodeIdLike);
914
- if (!t) {
915
- throw new Error(`cannot find requested typeDefinition ${options.typeDefinition.toString()}`);
916
- }
917
- if (!t.isSubtypeOf(analogItemType)) {
918
- throw new Error(`typeDefinition ${t.browseName.toString()} shall be a subtype of AnalogItemType`);
919
- }
920
- requestedTypeDefinition = t;
921
- }
922
- const isStrictSubtype = !sameNodeId(requestedTypeDefinition.nodeId, analogItemType.nodeId);
923
-
924
- let variable: UAVariableImpl;
925
- if (isStrictSubtype) {
926
- // instantiate the requested subtype so that its own mandatory members
927
- // (in addition to the AnalogItemType ones) get materialized.
928
- const optionals: string[] = [];
929
- if (Object.hasOwn(options, "instrumentRange")) {
930
- optionals.push("InstrumentRange");
931
- }
932
- if (Object.hasOwn(options, "engineeringUnits")) {
933
- optionals.push("EngineeringUnits");
934
- }
935
- variable = requestedTypeDefinition.instantiate({
936
- browseName: options.browseName,
937
- componentOf: options.componentOf,
938
- dataType: addressSpace._coerce_DataType(dataType as NodeIdLike),
939
- modellingRule: options.modellingRule,
940
- nodeId: options.nodeId,
941
- notifierOf: options.notifierOf,
942
- eventSourceOf: options.eventSourceOf,
943
- organizedBy: options.organizedBy,
944
- optionals
945
- }) as unknown as UAVariableImpl;
946
- } else {
947
- const clone_options = { ...options, dataType, typeDefinition: analogItemType.nodeId } as AddVariableOptions;
948
- variable = this.addVariable(clone_options) as unknown as UAVariableImpl;
949
- }
950
-
951
- add_dataItem_stuff(variable, options);
952
-
953
- // mandatory (EURange in the specs)
954
- // OPC Unified Architecture, Part 8 6 Release 1.02
955
- // EURange defines the value range likely to be obtained in normal operation. It is intended for such
956
- // use as automatically scaling a bar graph display
957
- // Sensor or instrument failure or deactivation can result in a return ed item value which is actually
958
- // outside of this range. Client software must be prepared to deal with this possibility. Similarly a client
959
- // may attempt to write a value that is outside of this range back to the server. The exact behavior
960
- // (accept, reject, clamp, etc.) in this case is server - dependent. However , in general servers shall be
961
- // prepared to handle this.
962
- // Example: EURange ::= {-200.0,1400.0}
963
-
964
- // when `variable` was instantiated from a strict AnalogItemType subtype (isStrictSubtype),
965
- // EURange/InstrumentRange/EngineeringUnits may already exist as cloned mandatory/optional
966
- // members of that subtype - reuse them instead of creating duplicate property nodes.
967
- const euRangeExisting = variable.getPropertyByName("EURange") as UAVariableImpl | null;
968
- const euRange =
969
- euRangeExisting ||
970
- (this.addVariable({
971
- browseName: { name: "EURange", namespaceIndex: 0 },
972
- dataType: "Range",
973
- minimumSamplingInterval: 0,
974
- modellingRule: options.modellingRule,
975
- propertyOf: variable,
976
- typeDefinition: "PropertyType",
977
- value: new Variant({
978
- dataType: DataType.ExtensionObject,
979
- value: new Range(options.engineeringUnitsRange)
980
- })
981
- }) as unknown as UAVariableImpl);
982
- if (euRangeExisting) {
983
- euRange.setValueFromSource(
984
- new Variant({ dataType: DataType.ExtensionObject, value: new Range(options.engineeringUnitsRange) }),
985
- StatusCodes.Good
986
- );
987
- }
988
-
989
- assert(euRange.readValue().value.value instanceof Range);
990
-
991
- const handler = variable.handle_semantic_changed.bind(variable);
992
- euRange.on("value_changed", handler);
993
-
994
- if (Object.hasOwn(options, "instrumentRange")) {
995
- const instrumentRangeExisting = variable.getPropertyByName("InstrumentRange") as UAVariableImpl | null;
996
- const instrumentRange =
997
- instrumentRangeExisting ||
998
- this.addVariable({
999
- accessLevel: "CurrentRead | CurrentWrite",
1000
- browseName: { name: "InstrumentRange", namespaceIndex: 0 },
1001
- dataType: "Range",
1002
- minimumSamplingInterval: 0,
1003
- modellingRule: options.modellingRule ? "Mandatory" : undefined,
1004
- propertyOf: variable,
1005
- typeDefinition: "PropertyType",
1006
- value: new Variant({
1007
- dataType: DataType.ExtensionObject,
1008
- value: new Range(options.instrumentRange)
1009
- })
1010
- });
1011
- if (instrumentRangeExisting) {
1012
- instrumentRange.setValueFromSource(
1013
- new Variant({ dataType: DataType.ExtensionObject, value: new Range(options.instrumentRange) }),
1014
- StatusCodes.Good
1015
- );
1016
- }
1017
-
1018
- instrumentRange.on("value_changed", handler);
1019
- }
1020
- (variable as unknown as { acceptValueOutOfRange?: boolean }).acceptValueOutOfRange = options.acceptValueOutOfRange;
1021
-
1022
- if (Object.hasOwn(options, "engineeringUnits")) {
1023
- const engineeringUnits = new EUInformation(options.engineeringUnits);
1024
- assert(engineeringUnits instanceof EUInformation, "expecting engineering units");
1025
-
1026
- // EngineeringUnits specifies the units for the DataItem‟s value (e.g., degree, hertz, seconds). The
1027
- // EUInformation type is specified in 5.6.3.
1028
-
1029
- const euExisting = variable.getPropertyByName("EngineeringUnits") as UAVariableImpl | null;
1030
- const eu =
1031
- euExisting ||
1032
- this.addVariable({
1033
- accessLevel: "CurrentRead",
1034
- browseName: { name: "EngineeringUnits", namespaceIndex: 0 },
1035
- dataType: "EUInformation",
1036
- minimumSamplingInterval: 0,
1037
- modellingRule: options.modellingRule ? "Mandatory" : undefined,
1038
- propertyOf: variable,
1039
- typeDefinition: "PropertyType",
1040
- value: new Variant({
1041
- dataType: DataType.ExtensionObject,
1042
- value: engineeringUnits
1043
- })
1044
- });
1045
- if (euExisting) {
1046
- eu.setValueFromSource(
1047
- new Variant({ dataType: DataType.ExtensionObject, value: engineeringUnits }),
1048
- StatusCodes.Good
1049
- );
1050
- }
1051
-
1052
- eu.on("value_changed", handler);
1053
- }
1054
-
1055
- variable.install_extra_properties();
1056
-
1057
- return variable as unknown as UAAnalogItem<T, DT>;
1058
- }
1059
-
1060
- /**
1061
- *
1062
-
1063
- * @param options {Object}
1064
- * @param options.browseName {String}
1065
- * @param [options.nodeId {NodeId}]
1066
- * @param [options.value {UInt32} = 0 }
1067
- * @param options.enumValues { EnumValueType[]| {Key,Value} }
1068
- * @return {Object|UAVariable}
1069
- *
1070
- * @example
1071
- *
1072
- *
1073
- * namespace.addMultiStateValueDiscrete({
1074
- * componentOf:parentObj,
1075
- * browseName: "myVar",
1076
- * enumValues: {
1077
- * "Red": 0xFF0000,
1078
- * "Green": 0x00FF00,
1079
- * "Blue": 0x0000FF
1080
- * }
1081
- * });
1082
- * addMultiStateValueDiscrete(parentObj,{
1083
- * browseName: "myVar",
1084
- * enumValues: [
1085
- * {
1086
- * value: 0xFF0000,
1087
- * displayName: "Red",
1088
- * description: " The color Red"
1089
- * },
1090
- * {
1091
- * value: 0x00FF000,
1092
- * displayName: "Green",
1093
- * description: " The color Green"
1094
- * },
1095
- * {
1096
- * value: 0x0000FF,
1097
- * displayName: "Blue",
1098
- * description: " The color Blue"
1099
- * }
1100
- *
1101
- * ]
1102
- * });
1103
- */
1104
- public addMultiStateValueDiscrete<T, DT extends DataType>(
1105
- options: AddMultiStateValueDiscreteOptions
1106
- ): UAMultiStateValueDiscreteEx<T, DT> {
1107
- return _addMultiStateValueDiscrete<T, DT>(this, options);
1108
- }
1109
-
1110
- // -
1111
- /**
1112
- *
1113
-
1114
- * @param options
1115
- * @param options.componentOf {NodeId}
1116
- * @param options.browseName {String}
1117
- * @param options.title {String}
1118
- * @param [options.instrumentRange]
1119
- * @param [options.instrumentRange.low] {Double}
1120
- * @param [options.instrumentRange.high] {Double}
1121
- * @param options.engineeringUnitsRange.low {Double}
1122
- * @param options.engineeringUnitsRange.high {Double}
1123
- * @param options.engineeringUnits {String}
1124
- * @param [options.nodeId = {NodeId}]
1125
- * @param options.accessLevel
1126
- * @param options.userAccessLevel
1127
- * @param options.title {String}
1128
- * @param options.axisScaleType {AxisScaleEnumeration}
1129
- *
1130
- * @param options.xAxisDefinition {AxisInformation}
1131
- * @param options.xAxisDefinition.engineeringUnits EURange
1132
- * @param options.xAxisDefinition.range
1133
- * @param options.xAxisDefinition.range.low
1134
- * @param options.xAxisDefinition.range.high
1135
- * @param options.xAxisDefinition.title {LocalizedText}
1136
- * @param options.xAxisDefinition.axisScaleType {AxisScaleEnumeration}
1137
- * @param options.xAxisDefinition.axisSteps = <null> {Array<Double>}
1138
- * @param options.value
1139
- */
1140
- public addYArrayItem<DT extends DataType.Double | DataType.Float>(options: AddYArrayItemOptions): UAYArrayItemEx<DT> {
1141
- assert(Object.hasOwn(options, "engineeringUnitsRange"), "expecting engineeringUnitsRange");
1142
- assert(Object.hasOwn(options, "axisScaleType"), "expecting axisScaleType");
1143
- assert(options.xAxisDefinition !== null && typeof options.xAxisDefinition === "object", "expecting a xAxisDefinition");
1144
-
1145
- const addressSpace = this.addressSpace;
1146
-
1147
- const YArrayItemType = addressSpace.findVariableType("YArrayItemType");
1148
- if (!YArrayItemType) {
1149
- throw new Error("expecting YArrayItemType to be defined , check nodeset xml file");
1150
- }
1151
-
1152
- const dataType = toNodeId(options.dataType as unknown as NodeId) || toNodeId((options.value as Variant)?.dataType);
1153
- const optionals = [];
1154
- if (Object.hasOwn(options, "instrumentRange")) {
1155
- optionals.push("InstrumentRange");
1156
- }
1157
- const variable = YArrayItemType.instantiate({
1158
- browseName: options.browseName,
1159
- componentOf: options.componentOf,
1160
- dataType,
1161
- optionals
1162
- }) as UAYArrayItemEx<DataType.Float | DataType.Double>;
1163
-
1164
- function coerceAxisScale(value: unknown) {
1165
- const ret = AxisScaleEnumeration[value as keyof typeof AxisScaleEnumeration];
1166
- assert(!isNullOrUndefined(ret));
1167
- return ret;
1168
- }
1169
-
1170
- variable.setValueFromSource(options.value as Variant, StatusCodes.Good);
1171
-
1172
- variable.euRange.setValueFromSource(
1173
- new Variant({
1174
- dataType: DataType.ExtensionObject,
1175
- value: new Range(options.engineeringUnitsRange)
1176
- })
1177
- );
1178
-
1179
- if (Object.hasOwn(options, "instrumentRange") && variable.instrumentRange) {
1180
- variable.instrumentRange.setValueFromSource(
1181
- new Variant({
1182
- dataType: DataType.ExtensionObject,
1183
- value: new Range(options.instrumentRange)
1184
- })
1185
- );
1186
- }
1187
-
1188
- variable.title.setValueFromSource(
1189
- new Variant({
1190
- dataType: DataType.LocalizedText,
1191
- value: coerceLocalizedText(options.title || "")
1192
- })
1193
- );
1194
-
1195
- // Linear/Log/Ln
1196
- variable.axisScaleType.setValueFromSource(
1197
- new Variant({
1198
- dataType: DataType.Int32,
1199
- value: coerceAxisScale(options.axisScaleType)
1200
- })
1201
- );
1202
-
1203
- variable.xAxisDefinition.setValueFromSource(
1204
- new Variant({
1205
- dataType: DataType.ExtensionObject,
1206
- value: new AxisInformation(options.xAxisDefinition)
1207
- })
1208
- );
1209
-
1210
- return variable as unknown as UAYArrayItemEx<DT>;
1211
- }
1212
-
1213
- // - Methods ----------------------------------------------------------------------------------------------------
1214
- /**
1215
-
1216
- * @param parentObject {Object}
1217
- * @param options {Object}
1218
- * @param [options.nodeId=null] {NodeId} the object nodeid.
1219
- * @param [options.browseName=""] {String} the object browse name.
1220
- * @param [options.description=""] {String} the object description.
1221
- * @param options.inputArguments {Array<Argument>}
1222
- * @param options.outputArguments {Array<Argument>}
1223
- * @return {Object}
1224
- */
1225
- public addMethod(parentObject: UAObject, options: AddMethodOptions): UAMethod {
1226
- const addressSpace = this.addressSpace;
1227
-
1228
- assert(
1229
- parentObject !== null && typeof parentObject === "object" && parentObject instanceof BaseNodeImpl,
1230
- "expecting a valid parent object"
1231
- );
1232
- assert(Object.hasOwn(options, "browseName"));
1233
- options.componentOf = parentObject;
1234
-
1235
- const method = this._addMethod(options);
1236
-
1237
- const propertyTypeId = addressSpace._coerce_VariableTypeIds("PropertyType");
1238
-
1239
- const nodeId_ArgumentDataType = "Argument"; // makeNodeId(DataTypeIds.Argument);
1240
-
1241
- if (options.inputArguments) {
1242
- const _inputArgs = new Variant({
1243
- arrayType: VariantArrayType.Array,
1244
- dataType: DataType.ExtensionObject,
1245
- value: options.inputArguments.map((opt: ArgumentOptions) => new Argument(opt))
1246
- });
1247
-
1248
- const inputArguments = this.addVariable({
1249
- accessLevel: "CurrentRead",
1250
- arrayDimensions: [_inputArgs.value.length],
1251
- browseName: { name: "InputArguments", namespaceIndex: 0 },
1252
- dataType: nodeId_ArgumentDataType,
1253
- description:
1254
- "the definition of the input argument of method " +
1255
- parentObject.browseName.toString() +
1256
- "." +
1257
- method.browseName.toString(),
1258
- minimumSamplingInterval: -1,
1259
- modellingRule: "Mandatory",
1260
- propertyOf: method,
1261
- typeDefinition: "PropertyType",
1262
- value: _inputArgs,
1263
- valueRank: 1
1264
- });
1265
- inputArguments.setValueFromSource(_inputArgs);
1266
- assert(inputArguments.typeDefinition.toString() === propertyTypeId.toString());
1267
- assert(Array.isArray(inputArguments.arrayDimensions));
1268
- }
1269
-
1270
- if (options.outputArguments) {
1271
- const _outputArgs = new Variant({
1272
- arrayType: VariantArrayType.Array,
1273
- dataType: DataType.ExtensionObject,
1274
- value: options.outputArguments.map((opts) => new Argument(opts))
1275
- });
1276
-
1277
- const outputArguments = this.addVariable({
1278
- accessLevel: "CurrentRead",
1279
- arrayDimensions: [_outputArgs.value.length],
1280
- browseName: { name: "OutputArguments", namespaceIndex: 0 },
1281
- dataType: nodeId_ArgumentDataType,
1282
- description:
1283
- "the definition of the output arguments of method " +
1284
- parentObject.browseName.toString() +
1285
- "." +
1286
- method.browseName.toString(),
1287
- minimumSamplingInterval: -1,
1288
- modellingRule: "Mandatory",
1289
- propertyOf: method,
1290
- typeDefinition: "PropertyType",
1291
- value: _outputArgs,
1292
- valueRank: 1
1293
- });
1294
- outputArguments.setValueFromSource(_outputArgs);
1295
-
1296
- assert(outputArguments.typeDefinition.toString() === propertyTypeId.toString());
1297
- assert(Array.isArray(outputArguments.arrayDimensions));
1298
- }
1299
-
1300
- // verifying post-conditions
1301
- parentObject.install_extra_properties();
1302
-
1303
- return method;
1304
- }
1305
-
1306
- // - Enumeration ------------------------------------------------------------------------------------------------
1307
-
1308
- /**
1309
- *
1310
-
1311
- * @param options
1312
- * @param options.browseName {String}
1313
- * @param options.enumeration {Array}
1314
- * @param options.enumeration[].displayName {String|LocalizedText}
1315
- * @param options.enumeration[].value {Number}
1316
- * @param options.enumeration[].description {String|LocalizedText|null}
1317
- */
1318
- public addEnumerationType(options: AddEnumerationTypeOptions): UADataType {
1319
- // Release 1.03 OPC Unified Architecture, Part 3 - page 34
1320
- // Enumeration DataTypes are DataTypes that represent discrete sets of named values.
1321
- // Enumerations are always encoded as Int32 on the wire as defined in Part 6. Enumeration
1322
- // DataTypes inherit directly or indirectly from the DataType Enumeration defined in 8.14.
1323
- // Enumerations have no encodings exposed in the IAddressSpace. To expose the human readable
1324
- // representation of an enumerated value the DataType Node may have the EnumString
1325
- // Property that contains an array of LocalizedText. The Integer representation of the enumeration
1326
- // value points to a position within that array. EnumValues Property can be used instead of the
1327
- // EnumStrings to support integer representation of enumerations that are not zero-based or have
1328
- // gaps. It contains an array of a Structured DataType containing the integer representation as
1329
- // well as the human-readable representation. An example of an enumeration DataType containing
1330
- // a sparse list of Integers is NodeClass which is defined in 8.30.
1331
-
1332
- // OPC Unified Architecture, Part 3 Release 1.03 page 35
1333
- // Table 11 – DataType NodeClass
1334
- // EnumStrings O LocalizedText[] The EnumStrings Property only applies for Enumeration DataTypes.
1335
- // It shall not be applied for other DataTypes. If the EnumValues
1336
- // Property is provided, the EnumStrings Property shall not be provided.
1337
- // Each entry of the array of LocalizedText in this Property represents
1338
- // the human-readable representation of an enumerated value. The
1339
- // Integer representation of the enumeration value points to a position
1340
- // of the array.
1341
- // EnumValues O EnumValueType[] The EnumValues Property only applies for Enumeration DataTypes.
1342
- // It shall not be applied for other DataTypes. If the EnumStrings
1343
- // Property is provided, the EnumValues Property shall not be provided.
1344
- // Using the EnumValues Property it is possible to represent.
1345
- // Enumerations with integers that are not zero-based or have gaps
1346
- // (e.g. 1, 2, 4, 8, 16).
1347
- // Each entry of the array of EnumValueType in this Property
1348
- // represents one enumeration value with its integer notation, human readable
1349
- // representation and help information.
1350
- // The Property EnumStrings contains human-readable representations of enumeration values and is
1351
- // only applied to Enumeration DataTypes. Instead of the EnumStrings Property an Enumeration
1352
- // DataType can also use the EnumValues Property to represent Enumerations with integer values that are not
1353
- // zero-based or containing gaps. There are no additional Properties defined for DataTypes in this standard.
1354
- // Additional parts of this series of standards may define additional Properties for DataTypes.
1355
-
1356
- // 8.40 EnumValueType
1357
- // This Structured DataType is used to represent a human-readable representation of an
1358
- // Enumeration. Its elements are described inTable 27. When this type is used in an array representing
1359
- // human-readable representations of an enumeration, each Value shall be unique in that array.
1360
- // Table 27 – EnumValueType Definition
1361
- // Name Type Description
1362
- // EnumValueType structure
1363
- // Value Int64 The Integer representation of an Enumeration.
1364
- // DisplayName LocalizedText A human-readable representation of the Value of the Enumeration.
1365
- // Description LocalizedText A localized description of the enumeration value. This field can
1366
- // contain an empty string if no description is available.
1367
- // Note that the EnumValueType has been defined with a Int64 Value to meet a variety of usages.
1368
- // When it is used to define the string representation of an Enumeration DataType, the value range
1369
- // is limited to Int32, because the Enumeration DataType is a subtype of Int32. Part 8 specifies
1370
- // other usages where the actual value might be between 8 and 64 Bit.
1371
-
1372
- assert(typeof options.browseName === "string");
1373
- assert(Array.isArray(options.enumeration));
1374
-
1375
- const addressSpace = this.addressSpace;
1376
- const enumerationType = addressSpace.findDataType("Enumeration") as UADataType;
1377
- assert(enumerationType.nodeId instanceof NodeId);
1378
- assert(enumerationType instanceof UADataTypeImpl);
1379
- const references = [{ referenceType: "HasSubtype", isForward: false, nodeId: enumerationType.nodeId }];
1380
- const opts = {
1381
- browseName: options.browseName,
1382
- definition: undefined,
1383
- description: coerceLocalizedText(options.description) || null,
1384
- displayName: options.displayName || null,
1385
- isAbstract: false,
1386
- nodeClass: NodeClass.DataType,
1387
- references
1388
- };
1389
-
1390
- const enumType = this.internalCreateNode(opts) as UADataType; // as UAEnumeration;
1391
-
1392
- enumType.propagate_back_references();
1393
-
1394
- if (typeof options.enumeration[0] === "string") {
1395
- const enumeration = options.enumeration as string[];
1396
- // enumeration is a array of string
1397
- const definition = enumeration.map((str: string, _index: number) => coerceLocalizedText(str));
1398
-
1399
- const value = new Variant({
1400
- arrayType: VariantArrayType.Array,
1401
- dataType: DataType.LocalizedText,
1402
- value: definition
1403
- });
1404
-
1405
- const enumStrings = this.addVariable({
1406
- browseName: { name: "EnumStrings", namespaceIndex: 0 },
1407
- dataType: "LocalizedText",
1408
- description: "",
1409
- modellingRule: "Mandatory",
1410
- propertyOf: enumType,
1411
- value,
1412
- valueRank: 1
1413
- });
1414
- assert(enumStrings.browseName.toString() === "EnumStrings");
1415
-
1416
- // set $definition
1417
- // EnumDefinition
1418
- // This Structured DataType is used to provide the metadata for a custom Enumeration or
1419
- // OptionSet DataType. It is derived from the DataType DataTypeDefinition.
1420
- // Enum Field:
1421
- // This Structured DataType is used to provide the metadata for a field of a custom Enumeration
1422
- // or OptionSet DataType. It is derived from the DataType EnumValueType. If used for an
1423
- // OptionSet, the corresponding Value in the base type contains the number of the bit associated
1424
- // with the field. The EnumField is formally defined in Table 37.
1425
- (enumType as unknown as { $fullDefinition?: EnumDefinition }).$fullDefinition = new EnumDefinition({
1426
- fields: enumeration.map(
1427
- (x: string, index: number) =>
1428
- new EnumField({
1429
- name: x,
1430
-
1431
- description: coerceLocalizedText(x),
1432
- value: coerceInt64(index)
1433
- })
1434
- )
1435
- });
1436
- } else {
1437
- const enumeration = options.enumeration as EnumerationItem[];
1438
- // construct the definition object
1439
- const definition = enumeration.map((enumItem: EnumerationItem) => {
1440
- return new EnumValueType({
1441
- description: coerceLocalizedText(enumItem.description),
1442
- displayName: coerceLocalizedText(enumItem.displayName),
1443
- value: coerceInt64(enumItem.value)
1444
- });
1445
- });
1446
-
1447
- const value = new Variant({
1448
- arrayType: VariantArrayType.Array,
1449
- dataType: DataType.ExtensionObject,
1450
- value: definition
1451
- });
1452
-
1453
- const enumValues = this.addVariable({
1454
- browseName: { name: "EnumValues", namespaceIndex: 0 },
1455
- dataType: "EnumValueType",
1456
- description: undefined,
1457
- modellingRule: "Mandatory",
1458
- propertyOf: enumType,
1459
- value,
1460
- valueRank: 1
1461
- });
1462
- assert(enumValues.browseName.toString() === "EnumValues");
1463
-
1464
- (enumType as unknown as { $fullDefinition?: EnumDefinition }).$fullDefinition = new EnumDefinition({
1465
- fields: enumeration.map(
1466
- (x: EnumerationItem, _index: number) =>
1467
- new EnumField({
1468
- name: x.displayName.toString(),
1469
-
1470
- description: x.description || "",
1471
- value: coerceInt64(x.value)
1472
- })
1473
- )
1474
- });
1475
- }
1476
- // now create the string value property
1477
- // <UAVariable NodeId="i=7612" BrowseName="EnumStrings"
1478
- // ParentNodeId="i=852" DataType="LocalizedText" ValueRank="1">
1479
- // <DisplayName>EnumStrings</DisplayName>
1480
- // <References>
1481
- // <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
1482
- // <Reference ReferenceType="HasModellingRule">i=78</Reference>
1483
- // <Reference ReferenceType="HasProperty" IsForward="false">i=852</Reference>
1484
- // </References>
1485
- // <Value>
1486
- // <ListOfLocalizedText xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">
1487
- // <LocalizedText><Locale></Locale><Text>Running</Text></LocalizedText>
1488
- // <LocalizedText><Locale></Locale><Text>Failed</Text>
1489
- // </ListOfLocalizedText>
1490
- // </Value>
1491
- // </UAVariable>
1492
-
1493
- return enumType;
1494
- }
1495
-
1496
- // -------------------------------------------------------------------------
1497
- // State and Transition
1498
- // -------------------------------------------------------------------------
1499
- public toNodeset2XML(): string {
1500
- return "<toNodeset2XML>has not be installed</toNodeset2XML>!";
1501
- }
1502
- public setRequiredModels(requiredModels: RequiredModel[]): void {
1503
- this._requiredModels = requiredModels;
1504
- }
1505
- public getRequiredModels(): RequiredModel[] | undefined {
1506
- return this._requiredModels;
1507
- }
1508
-
1509
- // -------------------------------------------------------------------------
1510
- // State and Transition
1511
- // -------------------------------------------------------------------------
1512
- /**
1513
- */
1514
- public addState(
1515
- component: UAStateMachineEx,
1516
- stateName: QualifiedNameLike,
1517
- stateNumber: number,
1518
- isInitialState: boolean
1519
- ): UAState | UAInitialState {
1520
- const addressSpace = this.addressSpace;
1521
-
1522
- isInitialState = !!isInitialState;
1523
-
1524
- const _component = component as UAStateMachineImpl;
1525
-
1526
- assert(_component.nodeClass === NodeClass.Object || _component.nodeClass === NodeClass.ObjectType);
1527
-
1528
- const initialStateType = addressSpace.findObjectType("InitialStateType");
1529
- const stateType = addressSpace.findObjectType("StateType");
1530
-
1531
- if (!initialStateType) {
1532
- throw new Error("Cannot find InitialStateType");
1533
- }
1534
- if (!stateType) {
1535
- throw new Error("Cannot find StateType");
1536
- }
1537
-
1538
- let state: UAState | UAInitialState;
1539
- if (isInitialState) {
1540
- state = initialStateType.instantiate({
1541
- browseName: stateName,
1542
- componentOf: _component
1543
- }) as UAInitialState;
1544
- } else {
1545
- state = stateType.instantiate({
1546
- browseName: stateName,
1547
- componentOf: _component
1548
- }) as UAState;
1549
- }
1550
- // ensure state number is unique
1551
- state.stateNumber.setValueFromSource({
1552
- dataType: DataType.UInt32,
1553
- value: stateNumber
1554
- });
1555
- return state;
1556
- }
1557
-
1558
- /**
1559
- */
1560
- public addTransition(
1561
- component: UAStateMachineEx,
1562
- fromState: string,
1563
- toState: string,
1564
- transitionNumber: number,
1565
- browseName?: QualifiedNameLike
1566
- ): UATransitionEx {
1567
- const addressSpace = this.addressSpace;
1568
-
1569
- const _component = component as UAStateMachineImpl;
1570
-
1571
- assert(_component.nodeClass === NodeClass.Object || _component.nodeClass === NodeClass.ObjectType);
1572
- assert(typeof fromState === "string");
1573
- assert(typeof toState === "string");
1574
- assert(Number.isFinite(transitionNumber));
1575
-
1576
- const fromStateNode = _component.getComponentByName(fromState);
1577
-
1578
- // c8 ignore next
1579
- if (!fromStateNode) {
1580
- throw new Error(`Cannot find state with name ${fromState}`);
1581
- }
1582
- assert(fromStateNode.browseName.name?.toString() === fromState);
1583
-
1584
- const toStateNode = _component.getComponentByName(toState);
1585
-
1586
- // c8 ignore next
1587
- if (!toStateNode) {
1588
- throw new Error(`Cannot find state with name ${toState}`);
1589
- }
1590
- assert(toStateNode.browseName.name?.toString() === toState);
1591
-
1592
- const transitionType = addressSpace.findObjectType("TransitionType");
1593
- if (!transitionType) {
1594
- throw new Error("Cannot find TransitionType");
1595
- }
1596
-
1597
- browseName = browseName || `${fromState}To${toState}`; // "Transition";
1598
-
1599
- const transition = transitionType.instantiate({
1600
- browseName,
1601
- componentOf: _component
1602
- }) as UATransitionImpl;
1603
-
1604
- transition.addReference({
1605
- isForward: true,
1606
- nodeId: toStateNode.nodeId,
1607
- referenceType: "ToState"
1608
- });
1609
- transition.addReference({
1610
- isForward: true,
1611
- nodeId: fromStateNode.nodeId,
1612
- referenceType: "FromState"
1613
- });
1614
-
1615
- transition.transitionNumber.setValueFromSource({
1616
- dataType: DataType.UInt32,
1617
- value: transitionNumber
1618
- });
1619
-
1620
- return transition;
1621
- }
1622
-
1623
- /**
1624
-
1625
- *
1626
- * @return {UATwoStateVariable}
1627
- */
1628
- public addTwoStateVariable(options: AddTwoStateVariableOptions): UATwoStateVariableEx {
1629
- return _addTwoStateVariable(this, options);
1630
- }
1631
-
1632
- /**
1633
-
1634
- *
1635
- * Add a TwoStateDiscrete Variable
1636
- * @return {UATwoStateDiscrete}
1637
- */
1638
- public addTwoStateDiscrete(options: AddTwoStateDiscreteOptions): UATwoStateDiscreteEx {
1639
- return _addTwoStateDiscrete(this, options);
1640
- }
1641
-
1642
- // --- Alarms & Conditions -------------------------------------------------
1643
- public instantiateCondition(
1644
- conditionTypeId: UAEventType | NodeId | string,
1645
- options: InstantiateConditionOptions,
1646
- data: Record<string, VariantOptions>
1647
- ): UAConditionEx {
1648
- return UAConditionImplBase.instantiate(this, conditionTypeId, options, data);
1649
- }
1650
-
1651
- public instantiateAcknowledgeableCondition(
1652
- conditionTypeId: UAEventType | NodeId | string,
1653
- options: InstantiateAlarmConditionOptions,
1654
- data?: Record<string, VariantOptions>
1655
- ): UAAcknowledgeableConditionImpl {
1656
- return UAAcknowledgeableConditionImplBase.instantiate(this, conditionTypeId, options, data);
1657
- }
1658
-
1659
- public instantiateAlarmCondition(
1660
- alarmConditionTypeId: UAEventType | NodeId | string,
1661
- options: InstantiateAlarmConditionOptions,
1662
- data?: Record<string, VariantOptions>
1663
- ): UAAlarmConditionEx {
1664
- return UAAlarmConditionImplBase.instantiate(this, alarmConditionTypeId, options, data);
1665
- }
1666
-
1667
- public instantiateLimitAlarm(
1668
- limitAlarmTypeId: UAEventType | NodeId | string,
1669
- options: InstantiateLimitAlarmOptions,
1670
- data?: Record<string, VariantOptions>
1671
- ): UALimitAlarmEx {
1672
- return UALimitAlarmImplBase.instantiate(this, limitAlarmTypeId, options, data);
1673
- }
1674
-
1675
- public instantiateExclusiveLimitAlarm(
1676
- exclusiveLimitAlarmTypeId: UAEventType | NodeId | string,
1677
- options: InstantiateLimitAlarmOptions,
1678
- data?: Record<string, VariantOptions>
1679
- ): UAExclusiveLimitAlarmEx {
1680
- return UAExclusiveLimitAlarmImplBase.instantiate(this, exclusiveLimitAlarmTypeId, options, data);
1681
- }
1682
-
1683
- public instantiateExclusiveDeviationAlarm(
1684
- options: InstantiateExclusiveDeviationAlarmOptions,
1685
- data?: Record<string, VariantOptions>
1686
- ): UAExclusiveDeviationAlarmEx {
1687
- return UAExclusiveDeviationAlarmImplBase.instantiate(this, "ExclusiveDeviationAlarmType", options, data);
1688
- }
1689
-
1690
- public instantiateNonExclusiveLimitAlarm(
1691
- nonExclusiveLimitAlarmTypeId: UAEventType | NodeId | string,
1692
- options: InstantiateNonExclusiveLimitAlarmOptions,
1693
- data?: Record<string, VariantOptions>
1694
- ): UANonExclusiveLimitAlarmEx {
1695
- return UANonExclusiveLimitAlarmImplBase.instantiate(this, nonExclusiveLimitAlarmTypeId, options, data);
1696
- }
1697
-
1698
- public instantiateNonExclusiveDeviationAlarm(
1699
- options: InstantiateNonExclusiveDeviationAlarmOptions,
1700
- data?: Record<string, VariantOptions>
1701
- ): UANonExclusiveDeviationAlarmEx {
1702
- return UANonExclusiveDeviationAlarmImplBase.instantiate(this, "NonExclusiveDeviationAlarmType", options, data);
1703
- }
1704
-
1705
- public instantiateDiscreteAlarm(
1706
- discreteAlarmType: UAEventType | NodeId | string,
1707
- options: InstantiateAlarmConditionOptions,
1708
- data?: Record<string, VariantOptions>
1709
- ): UADiscreteAlarmEx {
1710
- return UADiscreteAlarmImplBase.instantiate(this, discreteAlarmType, options, data);
1711
- }
1712
- public instantiateOffNormalAlarm(
1713
- options: InstantiateOffNormalAlarmOptions,
1714
- data?: Record<string, VariantOptions>
1715
- ): UAOffNormalAlarmEx {
1716
- return UAOffNormalAlarmImplBase.instantiate(this, "OffNormalAlarmType", options, data);
1717
- }
1718
-
1719
- // default roles and permissions
1720
- public setDefaultRolePermissions(rolePermissions: RolePermissionTypeOptions[] | null): void {
1721
- this.defaultRolePermissions = rolePermissions ? coerceRolePermissions(rolePermissions) : undefined;
1722
- }
1723
- public getDefaultRolePermissions(): RolePermissionType[] | null {
1724
- return this.defaultRolePermissions || null;
1725
- }
1726
- public setDefaultAccessRestrictions(accessRestrictions: AccessRestrictionsFlag): void {
1727
- this.defaultAccessRestrictions = accessRestrictions;
1728
- }
1729
- public getDefaultAccessRestrictions(): AccessRestrictionsFlag {
1730
- return this.defaultAccessRestrictions || AccessRestrictionsFlag.None;
1731
- }
1732
-
1733
- // --- internal stuff
1734
- public constructNodeId(options: ConstructNodeIdOptions): NodeId {
1735
- return this._nodeIdManager.constructNodeId({
1736
- registerSymbolicNames: this.registerSymbolicNames,
1737
- ...options
1738
- });
1739
- }
1740
-
1741
- public _register(node: BaseNode): void {
1742
- assert(node instanceof BaseNodeImpl, "Expecting a instance of BaseNode in _register");
1743
- assert(node.nodeId instanceof NodeId, "Expecting a NodeId");
1744
- // c8 ignore next
1745
- if (node.nodeId.namespace !== this.index) {
1746
- throw new Error(
1747
- "node must belong to this namespace : " +
1748
- node.nodeId.toString() +
1749
- " " +
1750
- " node.browseName = " +
1751
- node.browseName.toString() +
1752
- " this.index = " +
1753
- this.index
1754
- );
1755
- }
1756
- assert(node.nodeId.namespace === this.index, "node must belongs to this namespace");
1757
- assert(Object.hasOwn(node, "browseName"), "Node must have a browseName");
1758
-
1759
- const hashKey = _makeHashKey(node.nodeId);
1760
-
1761
- // c8 ignore next
1762
- if (this._nodeid_index.has(hashKey)) {
1763
- const existingNode = this.findNode(node.nodeId);
1764
- throw new Error(
1765
- "node " +
1766
- node.browseName.toString() +
1767
- " nodeId = " +
1768
- node.nodeId.displayText() +
1769
- " already registered " +
1770
- node.nodeId.toString() +
1771
- "\n" +
1772
- " in namespace " +
1773
- this.namespaceUri +
1774
- " index = " +
1775
- this.index +
1776
- "\n" +
1777
- "existing node = " +
1778
- existingNode?.toString() +
1779
- "this parent : " +
1780
- node.parentNodeId?.toString()
1781
- );
1782
- }
1783
-
1784
- this._nodeid_index.set(hashKey, node);
1785
-
1786
- switch (node.nodeClass) {
1787
- case NodeClass.ObjectType:
1788
- this._registerObjectType(node as UAObjectType);
1789
- break;
1790
- case NodeClass.VariableType:
1791
- this._registerVariableType(node as UAVariableType);
1792
- break;
1793
- case NodeClass.ReferenceType:
1794
- this._registerReferenceType(node as UAReferenceType);
1795
- break;
1796
- case NodeClass.DataType:
1797
- this._registerDataType(node as UADataType);
1798
- break;
1799
- case NodeClass.Object:
1800
- case NodeClass.Variable:
1801
- case NodeClass.Method:
1802
- case NodeClass.View:
1803
- break;
1804
- default:
1805
- errorLog("Invalid class Name", node.nodeClass);
1806
- throw new Error("Invalid class name specified");
1807
- }
1808
- }
1809
-
1810
- /**
1811
-
1812
- * @internal
1813
- */
1814
- public internalCreateNode(options: CreateNodeOptions): BaseNode {
1815
- assert(options.nodeClass !== undefined, " options.nodeClass must be specified");
1816
- assert(options.browseName, "options.browseName must be specified");
1817
- // xx assert(options.browseName instanceof QualifiedName
1818
- // ? (options.browseName.namespaceIndex === this.index): true,
1819
- // "Expecting browseName to have the same namespaceIndex as the namespace");
1820
-
1821
- options.description = coerceLocalizedText(options.description) || "";
1822
-
1823
- // browseName adjustment
1824
- if (typeof options.browseName === "string") {
1825
- const match = options.browseName.match(regExpNamespaceDotBrowseName);
1826
- if (match) {
1827
- const correctedName = match[1];
1828
- // the application is using an old scheme
1829
- warningLog(
1830
- chalk.green(
1831
- "Warning : since node-opcua 0.4.2 " + "namespace index should not be prepended to the browse name anymore"
1832
- )
1833
- );
1834
- warningLog(" ", options.browseName, " will be replaced with ", correctedName);
1835
- warningLog(" Please update your code");
1836
-
1837
- const indexVerify = parseInt(match[0], 10);
1838
- if (indexVerify !== this.index) {
1839
- errorLog(
1840
- chalk.red.bold(
1841
- "Error: namespace index used at the front of the browseName " +
1842
- indexVerify +
1843
- " do not match the index of the current namespace (" +
1844
- this.index +
1845
- ")"
1846
- )
1847
- );
1848
- errorLog(
1849
- " Please fix your code so that the created node is inserted in the correct namespace," +
1850
- " please refer to the NodeOPCUA documentation"
1851
- );
1852
- }
1853
- }
1854
-
1855
- options.browseName = new QualifiedName({ name: options.browseName, namespaceIndex: this.index });
1856
- } else if (!(options.browseName instanceof QualifiedName)) {
1857
- options.browseName = new QualifiedName(options.browseName);
1858
- }
1859
- assert(options.browseName instanceof QualifiedName, "Expecting options.browseName to be instanceof QualifiedName ");
1860
-
1861
- // ------------- set display name
1862
- if (!options.displayName) {
1863
- assert(typeof options.browseName.name === "string");
1864
- options.displayName = coerceLocalizedText(options.browseName.name || "");
1865
- }
1866
- if (!options.nodeClass || options.nodeClass === undefined) {
1867
- throw new Error("nodeclass must be specified");
1868
- }
1869
- // --- nodeId adjustment
1870
- options.nodeId = this.constructNodeId(options as ConstructNodeIdOptions);
1871
- dumpIf(!options.nodeId, options); // missing node Id
1872
- assert(options.nodeId instanceof NodeId);
1873
-
1874
- // assert(options.browseName.namespaceIndex === this.index,"Expecting browseName to have
1875
- // the same namespaceIndex as the namespace");
1876
-
1877
- const Constructor = _constructors_map[NodeClass[options.nodeClass] as keyof typeof _constructors_map];
1878
-
1879
- if (!Constructor) {
1880
- throw new Error(` missing constructor for NodeClass ${NodeClass[options.nodeClass]}`);
1881
- }
1882
-
1883
- options.addressSpace = this.addressSpace as AddressSpacePrivate;
1884
-
1885
- const node = new Constructor(options);
1886
- this._register(node);
1887
-
1888
- // object shall now be registered
1889
- // c8 ignore next
1890
- if (doDebug) {
1891
- assert(this.findNode(node.nodeId) !== null && typeof this.findNode(node.nodeId) === "object");
1892
- }
1893
- return node;
1894
- }
1895
-
1896
- public _deleteNode(node: BaseNode): void {
1897
- assert(node instanceof BaseNodeImpl);
1898
-
1899
- const hashKey = _makeHashKey(node.nodeId);
1900
- // c8 ignore next
1901
- if (!this._nodeid_index.has(hashKey)) {
1902
- throw new Error(`deleteNode : nodeId ${node.nodeId.displayText()} is not registered ${node.nodeId.toString()}`);
1903
- }
1904
- switch (node.nodeClass) {
1905
- case NodeClass.ObjectType:
1906
- this._unregisterObjectType(node as UAObjectType);
1907
- break;
1908
- case NodeClass.VariableType:
1909
- this._unregisterVariableType(node as UAVariableType);
1910
- break;
1911
- case NodeClass.Object:
1912
- case NodeClass.Variable:
1913
- case NodeClass.Method:
1914
- case NodeClass.View:
1915
- break;
1916
- default:
1917
- warningLog("Invalid class Name", node.nodeClass);
1918
- throw new Error("Invalid class name specified");
1919
- }
1920
- const deleted = this._nodeid_index.delete(hashKey);
1921
- assert(deleted);
1922
- (<BaseNodeImpl>node).dispose();
1923
- }
1924
-
1925
- // --- Private stuff
1926
-
1927
- private _addObjectOrVariableType<_T>(
1928
- options1: AddBaseNodeOptions,
1929
- topMostBaseType: string,
1930
- nodeClass: NodeClass.ObjectType | NodeClass.VariableType
1931
- ) {
1932
- const addressSpace = this.addressSpace;
1933
-
1934
- assert(typeof topMostBaseType === "string");
1935
- assert(nodeClass === NodeClass.ObjectType || nodeClass === NodeClass.VariableType);
1936
-
1937
- const options = options1 as CreateNodeOptions;
1938
- assert(!options.nodeClass);
1939
- assert(options.browseName);
1940
- assert(typeof options.browseName === "string");
1941
- if (Object.hasOwn(options, "references")) {
1942
- throw new Error("options.references should not be provided, use options.subtypeOf instead");
1943
- }
1944
- const references: UAReference[] = [];
1945
-
1946
- function process_subtypeOf_options(this: NamespaceImpl, options2: CreateNodeOptions, references1: AddReferenceOpts[]) {
1947
- // check common misspelling mistake
1948
- assert(
1949
- !(options2 as unknown as Record<string, unknown>).subTypeOf,
1950
- "misspell error : it should be 'subtypeOf' instead"
1951
- );
1952
- if (Object.hasOwn(options2, "hasTypeDefinition")) {
1953
- throw new Error("hasTypeDefinition option is invalid. Do you mean typeDefinition instead ?");
1954
- }
1955
- assert(!options2.typeDefinition, " do you mean subtypeOf ?");
1956
-
1957
- // subtypeOf is optional: _coerceType defaults to topMostBaseType when it's falsy.
1958
- const subtypeOfNodeId = addressSpace._coerceType(
1959
- options2.subtypeOf as unknown as string | NodeId | BaseNode,
1960
- topMostBaseType,
1961
- nodeClass
1962
- );
1963
-
1964
- assert(subtypeOfNodeId);
1965
- references1.push({
1966
- isForward: false,
1967
- nodeId: subtypeOfNodeId,
1968
- referenceType: "HasSubtype"
1969
- });
1970
- }
1971
-
1972
- process_subtypeOf_options.call(this, options, references);
1973
-
1974
- const objectType = this.internalCreateNode({
1975
- browseName: options.browseName,
1976
- displayName: options.displayName,
1977
- description: options.description,
1978
- eventNotifier: +(options.eventNotifier || 0),
1979
- isAbstract: !!options.isAbstract,
1980
- nodeClass,
1981
- nodeId: options.nodeId,
1982
- references
1983
- });
1984
-
1985
- objectType.propagate_back_references();
1986
-
1987
- objectType.install_extra_properties();
1988
-
1989
- if (options.postInstantiateFunc) {
1990
- (<BaseNodeImpl>objectType).installPostInstallFunc(options.postInstantiateFunc);
1991
- }
1992
- return objectType;
1993
- }
1994
-
1995
- // private _adjust_options(options: any) {
1996
- // const ns = this.addressSpace.getNamespaceIndex(this.namespaceUri);
1997
- // if (!options.nodeId) {
1998
- // const id = this._getNextAvailableId();
1999
- // options.nodeId = new NodeId(NodeId.NodeIdType.NUMERIC, id, ns);
2000
- // }
2001
- // options.nodeId = NodeId.coerce(options.nodeId);
2002
- // if (typeof options.browseName === "string") {
2003
- // options.browseName = new QualifiedName({
2004
- // name: options.browseName,
2005
- // namespaceIndex: ns
2006
- // });
2007
- // }
2008
- // return options;
2009
- // }
2010
-
2011
- private _registerObjectType(node: UAObjectType) {
2012
- assert(this.index === node.nodeId.namespace);
2013
- const key = node.browseName.name || "";
2014
- if (this._objectTypeMap.has(key)) {
2015
- throw new Error(` UAObjectType already declared ${node.browseName.toString()} ${node.nodeId.toString()}`);
2016
- }
2017
- this._objectTypeMap.set(key, node);
2018
- }
2019
-
2020
- private _registerVariableType(node: UAVariableType) {
2021
- assert(this.index === node.nodeId.namespace);
2022
- const key = node.browseName.name || "";
2023
- assert(!this._variableTypeMap.has(key), " UAVariableType already declared");
2024
- this._variableTypeMap.set(key, node);
2025
- }
2026
-
2027
- private _registerReferenceType(node: UAReferenceType) {
2028
- assert(this.index === node.nodeId.namespace);
2029
- assert(node.browseName instanceof QualifiedName);
2030
- const key: string = node.browseName.name || "";
2031
- this._referenceTypeMap.set(key, node);
2032
- this._referenceTypeMapInv.set(node.inverseName.text || "", node);
2033
- }
2034
-
2035
- private _registerDataType(node: UADataType) {
2036
- assert(this.index === node.nodeId.namespace);
2037
- const key = node.browseName.name || "";
2038
- assert(node.browseName instanceof QualifiedName);
2039
- assert(!this._dataTypeMap.has(key), " DataType already declared");
2040
- this._dataTypeMap.set(key, node);
2041
- }
2042
-
2043
- private _unregisterObjectType(node: UAObjectType): void {
2044
- const key = node.browseName.name || "";
2045
- this._objectTypeMap.delete(key);
2046
- }
2047
-
2048
- private _unregisterVariableType(node: UAVariableType): void {
2049
- const key = node.browseName.name || "";
2050
- this._variableTypeMap.delete(key);
2051
- }
2052
-
2053
- /**
2054
- * @private
2055
- */
2056
- private _addVariable(options: AddVariableOptions2): UAVariable {
2057
- const addressSpace = this.addressSpace;
2058
-
2059
- const baseDataVariableType = addressSpace.findVariableType("BaseDataVariableType");
2060
- if (!baseDataVariableType) {
2061
- throw new Error("cannot find BaseDataVariableType");
2062
- }
2063
- const baseDataVariableTypeId = baseDataVariableType.nodeId;
2064
-
2065
- assert(Object.hasOwn(options, "browseName"), "options.browseName must be provided");
2066
- assert(Object.hasOwn(options, "dataType"), "options.dataType must be provided");
2067
-
2068
- options.historizing = !!options.historizing;
2069
-
2070
- // c8 ignore next
2071
- if (Object.hasOwn(options, "hasTypeDefinition")) {
2072
- throw new Error("hasTypeDefinition option is invalid. Do you mean typeDefinition instead ?");
2073
- }
2074
- // ------------------------------------------ TypeDefinition
2075
- let typeDefinition = options.typeDefinition || baseDataVariableTypeId;
2076
- if (typeDefinition instanceof BaseNodeImpl) {
2077
- // c8 ignore next
2078
- if (typeDefinition.nodeClass !== NodeClass.VariableType) {
2079
- const message = `invalid typeDefinition expecting a VariableType got ${NodeClass[typeDefinition.nodeClass]}`;
2080
- errorLog(message);
2081
- throw new Error(message);
2082
- }
2083
- }
2084
- typeDefinition = addressSpace._coerce_VariableTypeIds(typeDefinition);
2085
- assert(typeDefinition instanceof NodeId);
2086
-
2087
- // ------------------------------------------ DataType
2088
- options.dataType = addressSpace._coerce_DataType(options.dataType || DataType.Null);
2089
-
2090
- options.valueRank = isNullOrUndefined(options.valueRank)
2091
- ? options.arrayDimensions
2092
- ? options.arrayDimensions.length
2093
- : -1
2094
- : options.valueRank;
2095
- assert(typeof options.valueRank === "number" && Number.isFinite(options.valueRank));
2096
-
2097
- options.arrayDimensions = options.arrayDimensions || null;
2098
- assert(options.arrayDimensions === null || Array.isArray(options.arrayDimensions));
2099
-
2100
- // -----------------------------------------------------
2101
- const hasGetter = (options: AddVariableOptions2) => {
2102
- return typeof options.value?.get === "function" || typeof options.value?.timestamped_get === "function";
2103
- };
2104
-
2105
- // c8 ignore next
2106
- if (options.minimumSamplingInterval === undefined && hasGetter(options)) {
2107
- // a getter has been specified and no options.minimumSamplingInterval has been specified
2108
- warningLog(
2109
- "[NODE-OPCUA-W30",
2110
- "namespace#addVariable a getter has been specified and minimumSamplingInterval is missing.\nMinimumSamplingInterval has been adjusted to 1000 ms\nvariable = " +
2111
- options?.browseName?.toString()
2112
- );
2113
- options.minimumSamplingInterval = 1000;
2114
- }
2115
-
2116
- options.minimumSamplingInterval = options.minimumSamplingInterval !== undefined ? +options.minimumSamplingInterval : 0;
2117
-
2118
- // c8 ignore next
2119
- if (options.minimumSamplingInterval === 0 && hasGetter(options)) {
2120
- warningLog(
2121
- "[NODE-OPCUA-W31",
2122
- "namespace#addVariable a getter has been specified and minimumSamplingInterval is 0.\nThis may conduct to an unpredictable behavior.\nPlease specify a non zero minimum sampling interval"
2123
- );
2124
- }
2125
-
2126
- let references = options.references || ([] as AddReferenceOpts[]);
2127
-
2128
- references = ([] as AddReferenceOpts[]).concat(references, [
2129
- {
2130
- isForward: true,
2131
- nodeId: typeDefinition,
2132
- referenceType: "HasTypeDefinition"
2133
- }
2134
- ]);
2135
-
2136
- assert(!options.nodeClass || options.nodeClass === NodeClass.Variable);
2137
- options.nodeClass = NodeClass.Variable;
2138
-
2139
- options.references = references;
2140
-
2141
- const variable = this.createNode(options as CreateNodeOptions) as UAVariable;
2142
- return variable;
2143
- }
2144
-
2145
- /**
2146
- * @private
2147
- */
2148
- private _addMethod(options: AddMethodOptions & { eventNotifier?: number }): UAMethod {
2149
- const addressSpace = this.addressSpace;
2150
-
2151
- assert(isNonEmptyQualifiedName(options.browseName));
2152
-
2153
- const references: UAReference[] = [];
2154
- assert(isNonEmptyQualifiedName(options.browseName));
2155
-
2156
- _handle_hierarchy_parent(addressSpace, references, options);
2157
-
2158
- UANamespace_process_modelling_rule(references, options.modellingRule);
2159
-
2160
- const method = this.internalCreateNode({
2161
- browseName: options.browseName,
2162
- description: options.description || "",
2163
- displayName: options.displayName,
2164
- eventNotifier: +(options.eventNotifier || 0),
2165
- isAbstract: false,
2166
- nodeClass: NodeClass.Method,
2167
- nodeId: options.nodeId,
2168
- references,
2169
- rolePermissions: options.rolePermissions
2170
- }) as UAMethod;
2171
- assert(method.nodeId !== null);
2172
- method.propagate_back_references();
2173
- assert(!method.typeDefinition);
2174
-
2175
- return method;
2176
- }
2177
- }
2178
-
2179
- // each concrete constructor below takes a different, incompatible options type (UADataTypeOptions,
2180
- // UAVariableOptions, ...) — the map is only ever indexed by nodeClass and invoked with the matching
2181
- // options shape by the caller, so a wider `new (options: any) => ...` signature is required here.
2182
- // biome-ignore lint/suspicious/noExplicitAny: see comment above
2183
- const _constructors_map: Record<keyof Omit<typeof NodeClass, "Unspecified">, new (options: any) => BaseNodeImpl<BaseNodeEvents>> = {
2184
- DataType: UADataTypeImpl,
2185
- Method: UAMethodImpl,
2186
- Object: UAObjectImpl,
2187
- ObjectType: UAObjectTypeImpl,
2188
- ReferenceType: UAReferenceTypeImpl,
2189
- Variable: UAVariableImpl,
2190
- VariableType: UAVariableTypeImpl,
2191
- View: UAViewImpl
2192
- };
2193
-
2194
- /**
2195
-
2196
- * convert a 'string' , NodeId or Object into a valid and existing object
2197
- * @param addressSpace {IAddressSpace}
2198
- * @param value
2199
- * @param coerceFunc
2200
- * @private
2201
- */
2202
- function _coerce_parent(
2203
- addressSpace: AddressSpacePrivate,
2204
- value: null | string | BaseNode | undefined | NodeIdLike,
2205
- coerceFunc: (data: string | NodeId | BaseNode) => BaseNode | null
2206
- ): BaseNode | null {
2207
- assert(typeof coerceFunc === "function");
2208
- if (value) {
2209
- if (typeof value === "string") {
2210
- value = coerceFunc.call(addressSpace, value);
2211
- }
2212
- if (value instanceof NodeId) {
2213
- value = addressSpace.findNode(value) as BaseNode;
2214
- }
2215
- }
2216
- assert(!value || value instanceof BaseNodeImpl);
2217
- return value as BaseNode;
2218
- }
2219
-
2220
- function _handle_event_hierarchy_parent(
2221
- addressSpace: AddressSpacePrivate,
2222
- references: AddReferenceOpts[],
2223
- options: CreateNodeOptions
2224
- ) {
2225
- options.eventSourceOf = _coerce_parent(addressSpace, options.eventSourceOf, addressSpace._coerceNode);
2226
- options.notifierOf = _coerce_parent(addressSpace, options.notifierOf, addressSpace._coerceNode);
2227
- if (options.eventSourceOf) {
2228
- assert(!options.notifierOf, "notifierOf shall not be provided with eventSourceOf ");
2229
- references.push({
2230
- isForward: false,
2231
- nodeId: options.eventSourceOf.nodeId,
2232
- referenceType: "HasEventSource"
2233
- });
2234
-
2235
- options.eventNotifier = options.eventNotifier || 1;
2236
- } else if (options.notifierOf) {
2237
- assert(!options.eventSourceOf, "eventSourceOf shall not be provided with notifierOf ");
2238
- references.push({
2239
- isForward: false,
2240
- nodeId: options.notifierOf.nodeId,
2241
- referenceType: "HasNotifier"
2242
- });
2243
- }
2244
- }
2245
- interface HandleHierarchyParentOptions {
2246
- addInOf?: NodeIdLike | BaseNode | null | undefined;
2247
- componentOf?: NodeIdLike | BaseNode | null | undefined;
2248
- propertyOf?: NodeIdLike | BaseNode | null | undefined;
2249
- organizedBy?: NodeIdLike | BaseNode | null | undefined;
2250
- encodingOf?: NodeIdLike | BaseNode | null | undefined;
2251
- }
2252
- export function _handle_hierarchy_parent(
2253
- addressSpace: AddressSpacePrivate,
2254
- references: AddReferenceOpts[],
2255
- options: HandleHierarchyParentOptions
2256
- ): void {
2257
- options.addInOf = _coerce_parent(addressSpace, options.addInOf, addressSpace._coerceNode);
2258
- options.componentOf = _coerce_parent(addressSpace, options.componentOf, addressSpace._coerceNode);
2259
- options.propertyOf = _coerce_parent(addressSpace, options.propertyOf, addressSpace._coerceNode);
2260
- options.organizedBy = _coerce_parent(addressSpace, options.organizedBy, addressSpace._coerceFolder);
2261
- options.encodingOf = _coerce_parent(addressSpace, options.encodingOf, addressSpace._coerceNode);
2262
-
2263
- if (options.addInOf) {
2264
- assert(!options.componentOf);
2265
- assert(!options.propertyOf);
2266
- assert(!options.organizedBy);
2267
- assert(
2268
- options.addInOf.nodeClass === NodeClass.Object || options.addInOf.nodeClass === NodeClass.ObjectType,
2269
- "addInOf must be of nodeClass Object or ObjectType"
2270
- );
2271
- references.push({
2272
- isForward: false,
2273
- nodeId: options.addInOf.nodeId,
2274
- referenceType: "HasAddIn"
2275
- });
2276
- }
2277
-
2278
- if (options.componentOf) {
2279
- assert(!options.addInOf);
2280
- assert(!options.propertyOf);
2281
- assert(!options.organizedBy);
2282
- assert(addressSpace.rootFolder.objects, "addressSpace must have a rootFolder.objects folder");
2283
- assert(
2284
- options.componentOf.nodeId !== addressSpace.rootFolder.objects.nodeId,
2285
- "Only Organizes References are used to relate Objects to the 'Objects' standard Object."
2286
- );
2287
- references.push({
2288
- isForward: false,
2289
- nodeId: options.componentOf.nodeId,
2290
- referenceType: "HasComponent"
2291
- });
2292
- }
2293
-
2294
- if (options.propertyOf) {
2295
- assert(!options.addInOf);
2296
- assert(!options.componentOf);
2297
- assert(!options.organizedBy);
2298
- assert(
2299
- options.propertyOf.nodeId !== addressSpace.rootFolder.objects.nodeId,
2300
- "Only Organizes References are used to relate Objects to the 'Objects' standard Object."
2301
- );
2302
- references.push({
2303
- isForward: false,
2304
- nodeId: options.propertyOf.nodeId,
2305
- referenceType: "HasProperty"
2306
- });
2307
- }
2308
-
2309
- if (options.organizedBy) {
2310
- assert(!options.addInOf);
2311
- assert(!options.propertyOf);
2312
- assert(!options.componentOf);
2313
- references.push({
2314
- isForward: false,
2315
- nodeId: options.organizedBy.nodeId,
2316
- referenceType: "Organizes"
2317
- });
2318
- }
2319
-
2320
- if (options.encodingOf) {
2321
- // parent must be a DataType
2322
- assert(options.encodingOf.nodeClass === NodeClass.DataType, "encodingOf must be toward a DataType");
2323
- references.push({
2324
- isForward: false,
2325
- nodeId: options.encodingOf.nodeId,
2326
- referenceType: "HasEncoding"
2327
- });
2328
- }
2329
- }
2330
-
2331
- function _copy_reference(reference: UAReference | AddReferenceOpts): AddReferenceOpts {
2332
- assert(Object.hasOwn(reference, "referenceType"));
2333
- assert(Object.hasOwn(reference, "isForward"));
2334
- assert(Object.hasOwn(reference, "nodeId"));
2335
- assert(reference.nodeId instanceof NodeId);
2336
- return {
2337
- isForward: reference.isForward,
2338
- nodeId: reference.nodeId,
2339
- referenceType: reference.referenceType
2340
- };
2341
- }
2342
-
2343
- function _copy_references(references?: UAReference[] | AddReferenceOpts[] | null): AddReferenceOpts[] {
2344
- references = references || [];
2345
- return references.map(_copy_reference);
2346
- }
2347
-
2348
- export function isNonEmptyQualifiedName(browseName: QualifiedNameLike): boolean {
2349
- if (!browseName) {
2350
- return false;
2351
- }
2352
- if (typeof browseName === "string") {
2353
- return browseName.length >= 0;
2354
- }
2355
- if (!(browseName instanceof QualifiedName)) {
2356
- browseName = new QualifiedName(browseName);
2357
- }
2358
- assert(browseName instanceof QualifiedName);
2359
- return (browseName.name?.length || 0) > 0;
2360
- }
2361
-
2362
- function _create_node_version_if_needed(node: BaseNode, options: { nodeVersion?: string }) {
2363
- assert(options);
2364
- if (typeof options.nodeVersion === "string") {
2365
- assert(node.nodeClass === NodeClass.Variable || node.nodeClass === NodeClass.Object);
2366
- // c8 ignore next
2367
- if (node.getNodeVersion()) {
2368
- return; // already exists
2369
- }
2370
-
2371
- const namespace = node.namespace;
2372
- const nodeVersion = namespace.addVariable({
2373
- browseName: coerceQualifiedName({ name: "NodeVersion", namespaceIndex: 0 }),
2374
- dataType: DataType.String,
2375
- propertyOf: node
2376
- });
2377
- const initialValue = typeof options.nodeVersion === "string" ? options.nodeVersion : "0";
2378
- nodeVersion.setValueFromSource({ dataType: "String", value: initialValue });
2379
- }
2380
- }