node-opcua-address-space 2.179.0 → 2.181.0

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