node-opcua-address-space 2.97.0 → 2.98.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. package/dist/source/address_space_ts.d.ts +118 -118
  2. package/dist/source/address_space_ts.js +17 -17
  3. package/dist/source/continuation_points/continuation_point_manager.d.ts +91 -91
  4. package/dist/source/continuation_points/continuation_point_manager.js +200 -200
  5. package/dist/source/helpers/adjust_browse_direction.d.ts +5 -5
  6. package/dist/source/helpers/adjust_browse_direction.js +11 -11
  7. package/dist/source/helpers/argument_list.d.ts +33 -33
  8. package/dist/source/helpers/argument_list.js +254 -254
  9. package/dist/source/helpers/call_helpers.d.ts +6 -6
  10. package/dist/source/helpers/call_helpers.js +71 -71
  11. package/dist/source/helpers/coerce_enum_value.d.ts +6 -6
  12. package/dist/source/helpers/coerce_enum_value.js +33 -33
  13. package/dist/source/helpers/dump_tools.d.ts +14 -14
  14. package/dist/source/helpers/dump_tools.js +78 -78
  15. package/dist/source/helpers/ensure_secure_access.d.ts +9 -9
  16. package/dist/source/helpers/ensure_secure_access.js +76 -76
  17. package/dist/source/helpers/make_optionals_map.d.ts +21 -21
  18. package/dist/source/helpers/make_optionals_map.js +29 -29
  19. package/dist/source/helpers/multiform_func.d.ts +11 -11
  20. package/dist/source/helpers/multiform_func.js +75 -75
  21. package/dist/source/helpers/resolve_opaque_on_address_space.d.ts +3 -3
  22. package/dist/source/helpers/resolve_opaque_on_address_space.js +36 -36
  23. package/dist/source/index.d.ts +61 -61
  24. package/dist/source/index.js +89 -89
  25. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +19 -19
  26. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +2 -2
  27. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.d.ts +193 -193
  28. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.js +2 -2
  29. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.d.ts +12 -12
  30. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.js +2 -2
  31. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.d.ts +10 -10
  32. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.js +2 -2
  33. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +7 -7
  34. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js +2 -2
  35. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts +7 -7
  36. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.js +2 -2
  37. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +4 -4
  38. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js +2 -2
  39. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +4 -4
  40. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js +2 -2
  41. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +9 -9
  42. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js +2 -2
  43. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +4 -4
  44. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js +2 -2
  45. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +4 -4
  46. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js +2 -2
  47. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +20 -20
  48. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js +2 -2
  49. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +23 -23
  50. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js +2 -2
  51. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +32 -32
  52. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js +2 -2
  53. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +19 -19
  54. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js +2 -2
  55. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +45 -42
  56. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.js +2 -2
  57. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +7 -7
  58. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js +25 -25
  59. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +5 -5
  60. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js +2 -2
  61. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +20 -20
  62. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js +2 -2
  63. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +26 -26
  64. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js +2 -2
  65. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +8 -8
  66. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js +2 -2
  67. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +10 -10
  68. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js +2 -2
  69. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +21 -21
  70. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js +2 -2
  71. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +24 -24
  72. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js +2 -2
  73. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +12 -12
  74. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js +2 -2
  75. package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +8 -8
  76. package/dist/source/interfaces/data_access/ua_y_array_item_ex.js +2 -2
  77. package/dist/source/interfaces/extension_object_constructor.d.ts +10 -10
  78. package/dist/source/interfaces/extension_object_constructor.js +2 -2
  79. package/dist/source/interfaces/nodeset_loader_options.d.ts +4 -4
  80. package/dist/source/interfaces/nodeset_loader_options.js +2 -2
  81. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -12
  82. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +2 -2
  83. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -49
  84. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js +2 -2
  85. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -11
  86. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js +2 -2
  87. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +30 -30
  88. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.js +2 -2
  89. package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +234 -234
  90. package/dist/source/interfaces/state_machine/ua_state_machine_type.js +2 -2
  91. package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +6 -6
  92. package/dist/source/interfaces/state_machine/ua_transition_ex.js +2 -2
  93. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +8 -8
  94. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +2 -2
  95. package/dist/source/loader/decode_xml_extension_object.d.ts +6 -6
  96. package/dist/source/loader/decode_xml_extension_object.js +71 -71
  97. package/dist/source/loader/ensure_datatype_extracted.d.ts +5 -5
  98. package/dist/source/loader/ensure_datatype_extracted.js +70 -70
  99. package/dist/source/loader/generateAddressSpaceRaw.d.ts +11 -11
  100. package/dist/source/loader/generateAddressSpaceRaw.js +45 -45
  101. package/dist/source/loader/load_nodeset2.d.ts +17 -17
  102. package/dist/source/loader/load_nodeset2.js +1483 -1483
  103. package/dist/source/loader/make_semver_compatible.d.ts +6 -6
  104. package/dist/source/loader/make_semver_compatible.js +25 -25
  105. package/dist/source/loader/make_xml_extension_object_parser.d.ts +28 -28
  106. package/dist/source/loader/make_xml_extension_object_parser.js +326 -326
  107. package/dist/source/loader/namespace_post_step.d.ts +10 -10
  108. package/dist/source/loader/namespace_post_step.js +61 -61
  109. package/dist/source/loader/register_node_promoter.d.ts +2 -2
  110. package/dist/source/loader/register_node_promoter.js +9 -9
  111. package/dist/source/namespace.d.ts +6 -6
  112. package/dist/source/namespace.js +2 -2
  113. package/dist/source/namespace_alarm_and_condition.d.ts +32 -32
  114. package/dist/source/namespace_alarm_and_condition.js +2 -2
  115. package/dist/source/namespace_data_access.d.ts +42 -42
  116. package/dist/source/namespace_data_access.js +2 -2
  117. package/dist/source/namespace_machine_state.d.ts +8 -8
  118. package/dist/source/namespace_machine_state.js +2 -2
  119. package/dist/source/pseudo_session.d.ts +72 -72
  120. package/dist/source/pseudo_session.js +254 -254
  121. package/dist/source/session_context.d.ts +111 -111
  122. package/dist/source/session_context.js +264 -264
  123. package/dist/source/session_context.js.map +1 -1
  124. package/dist/source/set_namespace_meta_data.d.ts +2 -2
  125. package/dist/source/set_namespace_meta_data.js +59 -59
  126. package/dist/source/ua_root_folder.d.ts +9 -9
  127. package/dist/source/ua_root_folder.js +2 -2
  128. package/dist/source/ua_two_state_variable_ex.d.ts +23 -23
  129. package/dist/source/ua_two_state_variable_ex.js +2 -2
  130. package/dist/source/xml_writer.d.ts +18 -18
  131. package/dist/source/xml_writer.js +2 -2
  132. package/dist/src/address_space.d.ts +387 -387
  133. package/dist/src/address_space.js +1385 -1385
  134. package/dist/src/address_space.js.map +1 -1
  135. package/dist/src/address_space_change_event_tools.d.ts +6 -6
  136. package/dist/src/address_space_change_event_tools.js +152 -152
  137. package/dist/src/address_space_private.d.ts +43 -43
  138. package/dist/src/address_space_private.js +2 -2
  139. package/dist/src/alarms_and_conditions/condition.d.ts +5 -5
  140. package/dist/src/alarms_and_conditions/condition.js +78 -78
  141. package/dist/src/alarms_and_conditions/condition_info_impl.d.ts +26 -26
  142. package/dist/src/alarms_and_conditions/condition_info_impl.js +54 -54
  143. package/dist/src/alarms_and_conditions/condition_snapshot_impl.d.ts +222 -222
  144. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js +657 -657
  145. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js.map +1 -1
  146. package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +9 -9
  147. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +60 -60
  148. package/dist/src/alarms_and_conditions/index.d.ts +16 -16
  149. package/dist/src/alarms_and_conditions/index.js +32 -32
  150. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +44 -44
  151. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +244 -244
  152. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +93 -93
  153. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +418 -418
  154. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js.map +1 -1
  155. package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +26 -26
  156. package/dist/src/alarms_and_conditions/ua_base_event_impl.js +38 -38
  157. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +44 -44
  158. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +183 -183
  159. package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +155 -153
  160. package/dist/src/alarms_and_conditions/ua_condition_impl.js +1028 -1028
  161. package/dist/src/alarms_and_conditions/ua_condition_impl.js.map +1 -1
  162. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +14 -14
  163. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +34 -34
  164. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +24 -24
  165. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +56 -56
  166. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +11 -11
  167. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +11 -11
  168. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +23 -23
  169. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +86 -86
  170. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +11 -11
  171. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +7 -7
  172. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +79 -79
  173. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +250 -250
  174. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +24 -24
  175. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +50 -50
  176. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +19 -19
  177. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +162 -162
  178. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +46 -46
  179. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +165 -165
  180. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +18 -18
  181. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +17 -17
  182. package/dist/src/apply_condition_refresh.d.ts +6 -6
  183. package/dist/src/apply_condition_refresh.js +27 -27
  184. package/dist/src/base_node_impl.d.ts +284 -284
  185. package/dist/src/base_node_impl.js +1454 -1454
  186. package/dist/src/base_node_private.d.ts +81 -81
  187. package/dist/src/base_node_private.js +832 -803
  188. package/dist/src/base_node_private.js.map +1 -1
  189. package/dist/src/check_value_rank_compatibility.d.ts +15 -15
  190. package/dist/src/check_value_rank_compatibility.js +81 -81
  191. package/dist/src/data_access/add_dataItem_stuff.d.ts +11 -11
  192. package/dist/src/data_access/add_dataItem_stuff.js +61 -61
  193. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.d.ts +1 -1
  194. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js +34 -34
  195. package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +32 -32
  196. package/dist/src/data_access/ua_multistate_discrete_impl.js +130 -130
  197. package/dist/src/data_access/ua_multistate_value_discrete_impl.d.ts +52 -52
  198. package/dist/src/data_access/ua_multistate_value_discrete_impl.js +253 -253
  199. package/dist/src/data_access/ua_two_state_discrete_impl.d.ts +25 -25
  200. package/dist/src/data_access/ua_two_state_discrete_impl.js +155 -155
  201. package/dist/src/event_data.d.ts +34 -34
  202. package/dist/src/event_data.js +64 -64
  203. package/dist/src/extension_object_array_node.d.ts +23 -23
  204. package/dist/src/extension_object_array_node.js +248 -248
  205. package/dist/src/historical_access/address_space_historical_data_node.d.ts +26 -26
  206. package/dist/src/historical_access/address_space_historical_data_node.js +652 -652
  207. package/dist/src/idx_iterator.d.ts +8 -8
  208. package/dist/src/idx_iterator.js +50 -50
  209. package/dist/src/index_current.d.ts +46 -46
  210. package/dist/src/index_current.js +77 -77
  211. package/dist/src/namespace_impl.d.ts +456 -456
  212. package/dist/src/namespace_impl.js +1762 -1762
  213. package/dist/src/namespace_impl.js.map +1 -1
  214. package/dist/src/namespace_private.d.ts +23 -23
  215. package/dist/src/namespace_private.js +32 -32
  216. package/dist/src/nodeid_manager.d.ts +37 -37
  217. package/dist/src/nodeid_manager.js +183 -183
  218. package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +2 -2
  219. package/dist/src/nodeset_tools/adjust_namespace_array.js +13 -13
  220. package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +18 -18
  221. package/dist/src/nodeset_tools/construct_namespace_dependency.js +140 -140
  222. package/dist/src/nodeset_tools/dump_to_bsd.d.ts +2 -2
  223. package/dist/src/nodeset_tools/dump_to_bsd.js +164 -164
  224. package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +10 -10
  225. package/dist/src/nodeset_tools/nodeset_to_xml.js +1287 -1287
  226. package/dist/src/private_namespace.d.ts +5 -5
  227. package/dist/src/private_namespace.js +19 -19
  228. package/dist/src/reference_impl.d.ts +43 -43
  229. package/dist/src/reference_impl.js +139 -139
  230. package/dist/src/role_permissions.d.ts +2 -2
  231. package/dist/src/role_permissions.js +10 -10
  232. package/dist/src/state_machine/finite_state_machine.d.ts +81 -81
  233. package/dist/src/state_machine/finite_state_machine.js +388 -388
  234. package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +38 -38
  235. package/dist/src/state_machine/ua_shelving_state_machine_ex.js +250 -250
  236. package/dist/src/state_machine/ua_two_state_variable.d.ts +61 -61
  237. package/dist/src/state_machine/ua_two_state_variable.js +331 -331
  238. package/dist/src/tool_isSubtypeOf.d.ts +18 -18
  239. package/dist/src/tool_isSubtypeOf.js +124 -124
  240. package/dist/src/ua_condition_type.d.ts +8 -8
  241. package/dist/src/ua_condition_type.js +2 -2
  242. package/dist/src/ua_data_type_impl.d.ts +89 -89
  243. package/dist/src/ua_data_type_impl.js +368 -368
  244. package/dist/src/ua_method_impl.d.ts +42 -42
  245. package/dist/src/ua_method_impl.js +217 -217
  246. package/dist/src/ua_object_impl.d.ts +35 -35
  247. package/dist/src/ua_object_impl.js +168 -168
  248. package/dist/src/ua_object_type_impl.d.ts +50 -50
  249. package/dist/src/ua_object_type_impl.js +126 -126
  250. package/dist/src/ua_reference_type_impl.d.ts +45 -45
  251. package/dist/src/ua_reference_type_impl.js +141 -141
  252. package/dist/src/ua_variable_impl.d.ts +380 -380
  253. package/dist/src/ua_variable_impl.js +1738 -1738
  254. package/dist/src/ua_variable_impl_ext_obj.d.ts +23 -23
  255. package/dist/src/ua_variable_impl_ext_obj.js +670 -670
  256. package/dist/src/ua_variable_type_impl.d.ts +74 -74
  257. package/dist/src/ua_variable_type_impl.js +597 -581
  258. package/dist/src/ua_variable_type_impl.js.map +1 -1
  259. package/dist/src/ua_view_impl.d.ts +19 -19
  260. package/dist/src/ua_view_impl.js +43 -43
  261. package/dist/tsconfig_common.tsbuildinfo +1 -0
  262. package/distHelpers/add_event_generator_object.d.ts +3 -3
  263. package/distHelpers/add_event_generator_object.js +64 -64
  264. package/distHelpers/alarms_and_conditions_demo.d.ts +9 -9
  265. package/distHelpers/alarms_and_conditions_demo.js +115 -115
  266. package/distHelpers/assertHasMatchingReference.d.ts +19 -19
  267. package/distHelpers/assertHasMatchingReference.js +40 -40
  268. package/distHelpers/boiler_system.d.ts +113 -113
  269. package/distHelpers/boiler_system.js +395 -395
  270. package/distHelpers/create_minimalist_address_space_nodeset.d.ts +5 -5
  271. package/distHelpers/create_minimalist_address_space_nodeset.js +171 -171
  272. package/distHelpers/date_utils.d.ts +3 -3
  273. package/distHelpers/date_utils.js +9 -9
  274. package/distHelpers/dump_statemachine.js +127 -127
  275. package/distHelpers/get_address_space_fixture.d.ts +1 -1
  276. package/distHelpers/get_address_space_fixture.js +30 -30
  277. package/distHelpers/get_mini_address_space.d.ts +7 -7
  278. package/distHelpers/get_mini_address_space.js +36 -36
  279. package/distHelpers/index.d.ts +12 -12
  280. package/distHelpers/index.js +28 -28
  281. package/distHelpers/mock_session.d.ts +10 -10
  282. package/distHelpers/mock_session.js +25 -25
  283. package/distNodeJS/generate_address_space.d.ts +6 -6
  284. package/distNodeJS/generate_address_space.js +52 -52
  285. package/distNodeJS/index.d.ts +1 -1
  286. package/distNodeJS/index.js +17 -17
  287. package/package.json +51 -40
  288. package/source/interfaces/alarms_and_conditions/ua_condition_ex.ts +4 -3
  289. package/src/alarms_and_conditions/ua_condition_impl.ts +14 -9
  290. package/src/base_node_private.ts +73 -28
  291. package/src/ua_variable_type_impl.ts +35 -17
  292. package/.mocharc.yml +0 -12
  293. package/dist/src/tool_isSupertypeOf.d.ts +0 -18
  294. package/dist/src/tool_isSupertypeOf.js +0 -125
  295. package/dist/src/tool_isSupertypeOf.js.map +0 -1
  296. package/generate.js +0 -1
  297. package/source_nodejs/generate_address_space.ts +0 -60
  298. package/source_nodejs/index.ts +0 -1
  299. package/test_helpers/add_event_generator_object.ts +0 -71
  300. package/test_helpers/alarms_and_conditions_demo.ts +0 -151
  301. package/test_helpers/assertHasMatchingReference.ts +0 -43
  302. package/test_helpers/boiler_system.ts +0 -610
  303. package/test_helpers/create_minimalist_address_space_nodeset.ts +0 -208
  304. package/test_helpers/date_utils.ts +0 -5
  305. package/test_helpers/dump_statemachine.ts +0 -155
  306. package/test_helpers/get_address_space_fixture.ts +0 -30
  307. package/test_helpers/get_mini_address_space.ts +0 -42
  308. package/test_helpers/index.ts +0 -12
  309. package/test_helpers/mock_session.ts +0 -34
  310. package/test_helpers/test_fixtures/dataType_in_separateNamespace.xml +0 -150
  311. package/test_helpers/test_fixtures/dataType_in_separateNamespace_basic.xml +0 -57
  312. package/test_helpers/test_fixtures/dataType_in_separateNamespace_mix.xml +0 -136
  313. package/test_helpers/test_fixtures/dataType_issue.xml +0 -80
  314. package/test_helpers/test_fixtures/dataType_withEnumeration.xml +0 -82
  315. package/test_helpers/test_fixtures/dataType_with_isOptionSet.xml +0 -194
  316. package/test_helpers/test_fixtures/dataType_with_qualifiedname.xml +0 -71
  317. package/test_helpers/test_fixtures/dataType_with_recursive_structure.xml +0 -155
  318. package/test_helpers/test_fixtures/dataType_with_structures.xml +0 -605
  319. package/test_helpers/test_fixtures/dataType_with_union.xml +0 -90
  320. package/test_helpers/test_fixtures/datatype_as_per_1.04.xml +0 -118
  321. package/test_helpers/test_fixtures/datatype_with_allow_subtype.xml +0 -104
  322. package/test_helpers/test_fixtures/eurange_issue.xml +0 -74
  323. package/test_helpers/test_fixtures/example_issue1096.xml +0 -267
  324. package/test_helpers/test_fixtures/fixture_empty_nodeset2.xml +0 -106
  325. package/test_helpers/test_fixtures/fixture_simple_statemachine_nodeset2.xml +0 -1305
  326. package/test_helpers/test_fixtures/fixuture_nodeset_objects_with_some_methods.xml +0 -370
  327. package/test_helpers/test_fixtures/issue_1132_variable_with_nodeid_value.xml +0 -68
  328. package/test_helpers/test_fixtures/issue_846.xml +0 -3172
  329. package/test_helpers/test_fixtures/issue_899_variable_with_nodeid_value.xml +0 -33
  330. package/test_helpers/test_fixtures/mini.Node.Set2.xml +0 -4736
  331. package/test_helpers/test_fixtures/mini.nodeset.withVariousVariables.xml +0 -196
  332. package/test_helpers/test_fixtures/minimalist_nodeset_with_models.xml +0 -8
  333. package/test_helpers/test_fixtures/minimalist_nodeset_with_models_more_complex.xml +0 -20
  334. package/test_helpers/test_fixtures/nodeset_no_aliases.xml +0 -30
  335. package/test_helpers/test_fixtures/nodeset_no_aliases_with_aliases.xml +0 -31
  336. package/test_helpers/test_fixtures/nodeset_with_analog_items.xml +0 -45
  337. package/test_helpers/test_fixtures/nodeset_with_guid.xml +0 -1442
  338. package/test_helpers/test_fixtures/nodeset_with_int64_values.xml +0 -31
  339. package/test_helpers/test_fixtures/nodeset_with_special_char.xml +0 -34
  340. package/test_helpers/test_fixtures/nodeset_with_utf8_special_characters.xml +0 -20
  341. package/test_helpers/test_fixtures/variable_with_value.xml +0 -143
  342. package/test_helpers/test_fixtures/variabletype_with_value.xml +0 -324
@@ -1,141 +1,141 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.constructNamespaceDependency = exports.constructNamespacePriorityTable = exports.hasHigherPriorityThan = void 0;
4
- const node_opcua_data_model_1 = require("node-opcua-data-model");
5
- const node_opcua_debug_1 = require("node-opcua-debug");
6
- const base_node_impl_1 = require("../base_node_impl");
7
- const warningLog = (0, node_opcua_debug_1.make_warningLog)(__filename);
8
- function _constructNamespaceDependency(namespace, dependency, depMap, _visitedDataType, priorityTable) {
9
- const addressSpace = namespace.addressSpace;
10
- const namespace_ = namespace;
11
- // navigate all namespace recursively to
12
- function consider(namespaceIndex) {
13
- if (hasHigherPriorityThan(namespaceIndex, namespace.index, priorityTable)) {
14
- return;
15
- }
16
- if (!depMap.has(namespaceIndex)) {
17
- depMap.add(namespaceIndex);
18
- const namespace = addressSpace.getNamespace(namespaceIndex);
19
- dependency.push(namespace);
20
- if (namespaceIndex > 0) {
21
- _constructNamespaceDependency(namespace, dependency, depMap, _visitedDataType, priorityTable);
22
- }
23
- }
24
- }
25
- function exploreDataTypeField(field) {
26
- const dataType = field.dataType;
27
- const namespaceIndex = dataType.namespace;
28
- consider(namespaceIndex);
29
- const dataTypeNode = addressSpace.findDataType(field.dataType);
30
- if (dataTypeNode) {
31
- exploreDataTypes(dataTypeNode);
32
- }
33
- }
34
- function exploreDataTypes(dataTypeNode) {
35
- const dataType = dataTypeNode.nodeId;
36
- if (_visitedDataType.has(dataType.toString())) {
37
- return;
38
- }
39
- // istanbul ignore next
40
- if (dataTypeNode.nodeClass !== node_opcua_data_model_1.NodeClass.DataType) {
41
- warningLog("exploreDataTypes! ignoring ", dataTypeNode.toString());
42
- return;
43
- }
44
- const namespaceIndex = dataType.namespace;
45
- consider(namespaceIndex);
46
- if (dataTypeNode.isStructure()) {
47
- const definition = dataTypeNode.getStructureDefinition();
48
- for (const field of definition.fields || []) {
49
- exploreDataTypeField(field);
50
- }
51
- }
52
- _visitedDataType.add(dataType.toString());
53
- }
54
- for (const node of namespace_.nodeIterator()) {
55
- if (node.nodeClass === node_opcua_data_model_1.NodeClass.Variable || node.nodeClass === node_opcua_data_model_1.NodeClass.VariableType) {
56
- const dataTypeNodeId = node.dataType;
57
- const dataTypeNode = addressSpace.findDataType(dataTypeNodeId);
58
- if (dataTypeNode) {
59
- exploreDataTypes(dataTypeNode);
60
- }
61
- else {
62
- // istanbul ignore next
63
- if (dataTypeNodeId.value != 0) {
64
- console.log("Internal error: Cannot find dataType", dataTypeNodeId.toString());
65
- }
66
- }
67
- }
68
- // visit all references
69
- const references = node.ownReferences();
70
- for (const reference of references) {
71
- // check referenceId
72
- const namespaceIndex = (0, base_node_impl_1.getReferenceType)(reference).nodeId.namespace;
73
- consider(namespaceIndex);
74
- const namespaceIndex2 = reference.nodeId.namespace;
75
- consider(namespaceIndex2);
76
- }
77
- }
78
- }
79
- function hasHigherPriorityThan(namespaceIndex1, namespaceIndex2, priorityTable) {
80
- const order1 = priorityTable[namespaceIndex1];
81
- const order2 = priorityTable[namespaceIndex2];
82
- return order1 > order2;
83
- }
84
- exports.hasHigherPriorityThan = hasHigherPriorityThan;
85
- /**
86
- *
87
- * @param namespace
88
- * @returns the order
89
- *
90
- * ---
91
- * ua, own , di => 0 , 2, 1
92
- *
93
- * ---
94
- * ua, own , di , kitchen , own2, adi => 0 , 2, 3, 1
95
- *
96
- * ---
97
- * ua, own , di , kitchen , own2, adi => 0 , 2, 3, 5, 1
98
- */
99
- function constructNamespacePriorityTable(namespace) {
100
- // Namespace 0 will always be 0
101
- // Namespaces with no requiredModel will be considered as instance namespaces and will added at the end
102
- // in the same order as they appear,
103
- // Namespace with requiredModels are considered to be companion specification, so already loaded in the correct order
104
- const addressSpace = namespace.addressSpace;
105
- const namespaces = addressSpace.getNamespaceArray();
106
- const namespaceWithReq = namespaces.filter((n) => (n.getRequiredModels() !== undefined) && n.index !== 0);
107
- const namespaceWithoutReq = namespaces.filter((n) => (n.getRequiredModels() === undefined) && n.index !== 0);
108
- const priorityList = [0];
109
- let counter = 1;
110
- for (let i = 0; i < namespaceWithReq.length; i++) {
111
- priorityList[namespaceWithReq[i].index] = counter++;
112
- }
113
- for (let i = 0; i < namespaceWithoutReq.length; i++) {
114
- priorityList[namespaceWithoutReq[i].index] = counter++;
115
- }
116
- return priorityList;
117
- }
118
- exports.constructNamespacePriorityTable = constructNamespacePriorityTable;
119
- const doDebug = false;
120
- function constructNamespaceDependency(namespace, priorityTable) {
121
- const addressSpace = namespace.addressSpace;
122
- priorityTable = priorityTable || constructNamespacePriorityTable(namespace);
123
- const dependency = [];
124
- const depMap = new Set();
125
- dependency.push(addressSpace.getDefaultNamespace());
126
- depMap.add(0);
127
- if (namespace !== addressSpace.getDefaultNamespace()) {
128
- dependency.push(namespace);
129
- depMap.add(namespace.index);
130
- }
131
- const _visitedDataType = new Set();
132
- _constructNamespaceDependency(namespace, dependency, depMap, _visitedDataType, priorityTable);
133
- doDebug && console.log("namespace : ", namespace.index, namespace.namespaceUri);
134
- doDebug && console.log(" ", dependency.map((d) => d.index + " " + d.namespaceUri).join("\n "));
135
- const sorted = dependency.sort((a, b) => priorityTable[a.index] < priorityTable[b.index] ? -1 : 1);
136
- doDebug && console.log("sorted:");
137
- doDebug && console.log(" ", sorted.map((d) => d.index + " " + d.namespaceUri).join("\n "));
138
- return sorted;
139
- }
140
- exports.constructNamespaceDependency = constructNamespaceDependency;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.constructNamespaceDependency = exports.constructNamespacePriorityTable = exports.hasHigherPriorityThan = void 0;
4
+ const node_opcua_data_model_1 = require("node-opcua-data-model");
5
+ const node_opcua_debug_1 = require("node-opcua-debug");
6
+ const base_node_impl_1 = require("../base_node_impl");
7
+ const warningLog = (0, node_opcua_debug_1.make_warningLog)(__filename);
8
+ function _constructNamespaceDependency(namespace, dependency, depMap, _visitedDataType, priorityTable) {
9
+ const addressSpace = namespace.addressSpace;
10
+ const namespace_ = namespace;
11
+ // navigate all namespace recursively to
12
+ function consider(namespaceIndex) {
13
+ if (hasHigherPriorityThan(namespaceIndex, namespace.index, priorityTable)) {
14
+ return;
15
+ }
16
+ if (!depMap.has(namespaceIndex)) {
17
+ depMap.add(namespaceIndex);
18
+ const namespace = addressSpace.getNamespace(namespaceIndex);
19
+ dependency.push(namespace);
20
+ if (namespaceIndex > 0) {
21
+ _constructNamespaceDependency(namespace, dependency, depMap, _visitedDataType, priorityTable);
22
+ }
23
+ }
24
+ }
25
+ function exploreDataTypeField(field) {
26
+ const dataType = field.dataType;
27
+ const namespaceIndex = dataType.namespace;
28
+ consider(namespaceIndex);
29
+ const dataTypeNode = addressSpace.findDataType(field.dataType);
30
+ if (dataTypeNode) {
31
+ exploreDataTypes(dataTypeNode);
32
+ }
33
+ }
34
+ function exploreDataTypes(dataTypeNode) {
35
+ const dataType = dataTypeNode.nodeId;
36
+ if (_visitedDataType.has(dataType.toString())) {
37
+ return;
38
+ }
39
+ // istanbul ignore next
40
+ if (dataTypeNode.nodeClass !== node_opcua_data_model_1.NodeClass.DataType) {
41
+ warningLog("exploreDataTypes! ignoring ", dataTypeNode.toString());
42
+ return;
43
+ }
44
+ const namespaceIndex = dataType.namespace;
45
+ consider(namespaceIndex);
46
+ if (dataTypeNode.isStructure()) {
47
+ const definition = dataTypeNode.getStructureDefinition();
48
+ for (const field of definition.fields || []) {
49
+ exploreDataTypeField(field);
50
+ }
51
+ }
52
+ _visitedDataType.add(dataType.toString());
53
+ }
54
+ for (const node of namespace_.nodeIterator()) {
55
+ if (node.nodeClass === node_opcua_data_model_1.NodeClass.Variable || node.nodeClass === node_opcua_data_model_1.NodeClass.VariableType) {
56
+ const dataTypeNodeId = node.dataType;
57
+ const dataTypeNode = addressSpace.findDataType(dataTypeNodeId);
58
+ if (dataTypeNode) {
59
+ exploreDataTypes(dataTypeNode);
60
+ }
61
+ else {
62
+ // istanbul ignore next
63
+ if (dataTypeNodeId.value != 0) {
64
+ console.log("Internal error: Cannot find dataType", dataTypeNodeId.toString());
65
+ }
66
+ }
67
+ }
68
+ // visit all references
69
+ const references = node.ownReferences();
70
+ for (const reference of references) {
71
+ // check referenceId
72
+ const namespaceIndex = (0, base_node_impl_1.getReferenceType)(reference).nodeId.namespace;
73
+ consider(namespaceIndex);
74
+ const namespaceIndex2 = reference.nodeId.namespace;
75
+ consider(namespaceIndex2);
76
+ }
77
+ }
78
+ }
79
+ function hasHigherPriorityThan(namespaceIndex1, namespaceIndex2, priorityTable) {
80
+ const order1 = priorityTable[namespaceIndex1];
81
+ const order2 = priorityTable[namespaceIndex2];
82
+ return order1 > order2;
83
+ }
84
+ exports.hasHigherPriorityThan = hasHigherPriorityThan;
85
+ /**
86
+ *
87
+ * @param namespace
88
+ * @returns the order
89
+ *
90
+ * ---
91
+ * ua, own , di => 0 , 2, 1
92
+ *
93
+ * ---
94
+ * ua, own , di , kitchen , own2, adi => 0 , 2, 3, 1
95
+ *
96
+ * ---
97
+ * ua, own , di , kitchen , own2, adi => 0 , 2, 3, 5, 1
98
+ */
99
+ function constructNamespacePriorityTable(namespace) {
100
+ // Namespace 0 will always be 0
101
+ // Namespaces with no requiredModel will be considered as instance namespaces and will added at the end
102
+ // in the same order as they appear,
103
+ // Namespace with requiredModels are considered to be companion specification, so already loaded in the correct order
104
+ const addressSpace = namespace.addressSpace;
105
+ const namespaces = addressSpace.getNamespaceArray();
106
+ const namespaceWithReq = namespaces.filter((n) => (n.getRequiredModels() !== undefined) && n.index !== 0);
107
+ const namespaceWithoutReq = namespaces.filter((n) => (n.getRequiredModels() === undefined) && n.index !== 0);
108
+ const priorityList = [0];
109
+ let counter = 1;
110
+ for (let i = 0; i < namespaceWithReq.length; i++) {
111
+ priorityList[namespaceWithReq[i].index] = counter++;
112
+ }
113
+ for (let i = 0; i < namespaceWithoutReq.length; i++) {
114
+ priorityList[namespaceWithoutReq[i].index] = counter++;
115
+ }
116
+ return priorityList;
117
+ }
118
+ exports.constructNamespacePriorityTable = constructNamespacePriorityTable;
119
+ const doDebug = false;
120
+ function constructNamespaceDependency(namespace, priorityTable) {
121
+ const addressSpace = namespace.addressSpace;
122
+ priorityTable = priorityTable || constructNamespacePriorityTable(namespace);
123
+ const dependency = [];
124
+ const depMap = new Set();
125
+ dependency.push(addressSpace.getDefaultNamespace());
126
+ depMap.add(0);
127
+ if (namespace !== addressSpace.getDefaultNamespace()) {
128
+ dependency.push(namespace);
129
+ depMap.add(namespace.index);
130
+ }
131
+ const _visitedDataType = new Set();
132
+ _constructNamespaceDependency(namespace, dependency, depMap, _visitedDataType, priorityTable);
133
+ doDebug && console.log("namespace : ", namespace.index, namespace.namespaceUri);
134
+ doDebug && console.log(" ", dependency.map((d) => d.index + " " + d.namespaceUri).join("\n "));
135
+ const sorted = dependency.sort((a, b) => priorityTable[a.index] < priorityTable[b.index] ? -1 : 1);
136
+ doDebug && console.log("sorted:");
137
+ doDebug && console.log(" ", sorted.map((d) => d.index + " " + d.namespaceUri).join("\n "));
138
+ return sorted;
139
+ }
140
+ exports.constructNamespaceDependency = constructNamespaceDependency;
141
141
  //# sourceMappingURL=construct_namespace_dependency.js.map
@@ -1,2 +1,2 @@
1
- import { NamespacePrivate } from "../namespace_private";
2
- export declare function dumpToBSD(namespace: NamespacePrivate): string;
1
+ import { NamespacePrivate } from "../namespace_private";
2
+ export declare function dumpToBSD(namespace: NamespacePrivate): string;
@@ -1,165 +1,165 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dumpToBSD = void 0;
4
- const node_opcua_assert_1 = require("node-opcua-assert");
5
- const node_opcua_types_1 = require("node-opcua-types");
6
- const node_opcua_nodeid_1 = require("node-opcua-nodeid");
7
- const construct_namespace_dependency_1 = require("./construct_namespace_dependency");
8
- // tslint:disable-next-line: no-var-requires
9
- const XMLWriter = require("xml-writer");
10
- function dumpEnumeratedType(xw, e, name) {
11
- xw.startElement("opc:EnumeratedType");
12
- xw.writeAttribute("Name", name);
13
- xw.writeAttribute("LengthInBits", "32");
14
- for (const f of e.fields || []) {
15
- xw.startElement("opc:EnumeratedValue");
16
- xw.writeAttribute("Name", f.name);
17
- (0, node_opcua_assert_1.assert)(f.value[0] === 0, "unsupported 64 bit value !");
18
- xw.writeAttribute("Value", f.value[1].toString());
19
- xw.endElement();
20
- }
21
- xw.endElement();
22
- }
23
- function buildXmlName(addressSpace, map, nodeId) {
24
- if (node_opcua_nodeid_1.NodeId.sameNodeId(nodeId, node_opcua_nodeid_1.NodeId.nullNodeId)) {
25
- return "ua:ExtensionObject";
26
- }
27
- const node = addressSpace.findNode(nodeId);
28
- // istanbul ignore next
29
- if (!node) {
30
- throw new Error("Cannot find Node for" + (nodeId === null || nodeId === void 0 ? void 0 : nodeId.toString()));
31
- }
32
- const typeName = node.browseName.name;
33
- const n = node.nodeId;
34
- const prefix = (n.identifierType === node_opcua_nodeid_1.NodeIdType.NUMERIC && n.namespace === 0) ? (n.value <= 15 ? "opc" : "ua") : map[node.nodeId.namespace];
35
- return prefix + ":" + (typeName === "Structure" && prefix === "ua" ? "ExtensionObject" : typeName);
36
- }
37
- // eslint-disable-next-line max-statements
38
- function dumpDataTypeStructure(xw, addressSpace, map, structureDefinition, structureDefinitionBase, name, doc) {
39
- var _a, _b;
40
- xw.startElement("opc:StructuredType");
41
- xw.writeAttribute("Name", name);
42
- xw.writeAttribute("BaseType", buildXmlName(addressSpace, map, structureDefinition.baseDataType));
43
- if (doc) {
44
- xw.startElement("opc:Documentation");
45
- xw.text(doc);
46
- xw.endElement();
47
- }
48
- const fields = structureDefinition.fields || [];
49
- // get base class
50
- const nbFieldsInBase = structureDefinitionBase ? ((_a = structureDefinitionBase.fields) === null || _a === void 0 ? void 0 : _a.length) || 0 : 0;
51
- let optionalsCount = 0;
52
- for (let index = nbFieldsInBase; index < fields.length; index++) {
53
- const f = fields[index];
54
- if (f.isOptional) {
55
- xw.startElement("opc:Field");
56
- xw.writeAttribute("Name", f.name + "Specified");
57
- xw.writeAttribute("TypeName", "opc:Bit");
58
- xw.endElement();
59
- optionalsCount++;
60
- }
61
- }
62
- // istanbul ignore next
63
- if (optionalsCount >= 32) {
64
- throw new Error("Too many optionals fields");
65
- }
66
- if (optionalsCount) {
67
- /*
68
- const padding = optionalsCount <= 8
69
- ? (8 - optionalsCount)
70
- : (optionalsCount <= 16)
71
- ? (16 - optionalsCount)
72
- : (32 - optionalsCount)
73
- ;
74
- */
75
- const padding = 32 - optionalsCount;
76
- if (padding !== 0) {
77
- xw.startElement("opc:Field");
78
- xw.writeAttribute("Name", "Reserved1");
79
- xw.writeAttribute("TypeName", "opc:Bit");
80
- xw.writeAttribute("Length", padding.toString());
81
- xw.endElement();
82
- }
83
- }
84
- for (let index = nbFieldsInBase; index < fields.length; index++) {
85
- const f = fields[index];
86
- const isArray = f.valueRank > 0 && ((_b = f.arrayDimensions) === null || _b === void 0 ? void 0 : _b.length);
87
- if (isArray) {
88
- xw.startElement("opc:Field");
89
- xw.writeAttribute("Name", "NoOf" + f.name);
90
- xw.writeAttribute("TypeName", "opc:Int32");
91
- if (f.isOptional) {
92
- xw.writeAttribute("SwitchField", f.name + "Specified");
93
- }
94
- xw.endElement();
95
- }
96
- xw.startElement("opc:Field");
97
- xw.writeAttribute("Name", f.name);
98
- const typeName = buildXmlName(addressSpace, map, f.dataType);
99
- xw.writeAttribute("TypeName", typeName);
100
- if (isArray) {
101
- xw.writeAttribute("LengthField", "NoOf" + f.name);
102
- }
103
- if (f.isOptional) {
104
- xw.writeAttribute("SwitchField", f.name + "Specified");
105
- }
106
- xw.endElement();
107
- }
108
- xw.endElement();
109
- }
110
- function dumpDataTypeToBSD(xw, dataType, map) {
111
- var _a;
112
- const addressSpace = dataType.addressSpace;
113
- const name = dataType.browseName.name;
114
- const definition = dataType.getDefinition();
115
- if (definition instanceof node_opcua_types_1.StructureDefinition) {
116
- const structureDefinitionBase = (_a = dataType.subtypeOfObj) === null || _a === void 0 ? void 0 : _a.getStructureDefinition();
117
- dumpDataTypeStructure(xw, addressSpace, map, definition, structureDefinitionBase, name);
118
- }
119
- if (definition instanceof node_opcua_types_1.EnumDefinition) {
120
- dumpEnumeratedType(xw, definition, name);
121
- }
122
- }
123
- function shortcut(namespace) {
124
- return "n" + namespace.index;
125
- }
126
- function dumpToBSD(namespace) {
127
- const dependency = (0, construct_namespace_dependency_1.constructNamespaceDependency)(namespace);
128
- const addressSpace = namespace.addressSpace;
129
- const xw = new XMLWriter(true);
130
- //xx xw.startDocument():// { encoding: "utf-8", version: "1.0" });
131
- xw.startElement("opc:TypeDictionary");
132
- xw.writeAttribute("xmlns:opc", "http://opcfoundation.org/BinarySchema/");
133
- xw.writeAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
134
- xw.writeAttribute("xmlns:ua", "http://opcfoundation.org/UA/");
135
- xw.writeAttribute("xmlns:tns", namespace.namespaceUri);
136
- const map = {};
137
- map[namespace.index] = "tns";
138
- for (const dependantNamespace of dependency) {
139
- const namespaceIndex = dependantNamespace.index;
140
- if (namespaceIndex === 0 || namespaceIndex === namespace.index) {
141
- continue;
142
- }
143
- const ns = shortcut(dependantNamespace);
144
- map[namespaceIndex] = ns;
145
- xw.writeAttribute(`xmlns:${ns}`, dependantNamespace.namespaceUri);
146
- }
147
- xw.writeAttribute("DefaultByteOrder", "LittleEndian");
148
- xw.writeAttribute("TargetNamespace", namespace.namespaceUri);
149
- // <opc:Import Namespace="http://opcfoundation.org/UA/"/>
150
- for (const dependantNamespace of dependency) {
151
- if (dependantNamespace.index === namespace.index) {
152
- continue;
153
- }
154
- xw.startElement("opc:Import").writeAttribute("Namespace", dependantNamespace.namespaceUri).endElement();
155
- }
156
- //
157
- for (const dataType of namespace._dataTypeIterator()) {
158
- dumpDataTypeToBSD(xw, dataType, map);
159
- }
160
- xw.endElement();
161
- // xw.endDocument();
162
- return xw.toString();
163
- }
164
- exports.dumpToBSD = dumpToBSD;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dumpToBSD = void 0;
4
+ const node_opcua_assert_1 = require("node-opcua-assert");
5
+ const node_opcua_types_1 = require("node-opcua-types");
6
+ const node_opcua_nodeid_1 = require("node-opcua-nodeid");
7
+ const construct_namespace_dependency_1 = require("./construct_namespace_dependency");
8
+ // tslint:disable-next-line: no-var-requires
9
+ const XMLWriter = require("xml-writer");
10
+ function dumpEnumeratedType(xw, e, name) {
11
+ xw.startElement("opc:EnumeratedType");
12
+ xw.writeAttribute("Name", name);
13
+ xw.writeAttribute("LengthInBits", "32");
14
+ for (const f of e.fields || []) {
15
+ xw.startElement("opc:EnumeratedValue");
16
+ xw.writeAttribute("Name", f.name);
17
+ (0, node_opcua_assert_1.assert)(f.value[0] === 0, "unsupported 64 bit value !");
18
+ xw.writeAttribute("Value", f.value[1].toString());
19
+ xw.endElement();
20
+ }
21
+ xw.endElement();
22
+ }
23
+ function buildXmlName(addressSpace, map, nodeId) {
24
+ if (node_opcua_nodeid_1.NodeId.sameNodeId(nodeId, node_opcua_nodeid_1.NodeId.nullNodeId)) {
25
+ return "ua:ExtensionObject";
26
+ }
27
+ const node = addressSpace.findNode(nodeId);
28
+ // istanbul ignore next
29
+ if (!node) {
30
+ throw new Error("Cannot find Node for" + (nodeId === null || nodeId === void 0 ? void 0 : nodeId.toString()));
31
+ }
32
+ const typeName = node.browseName.name;
33
+ const n = node.nodeId;
34
+ const prefix = (n.identifierType === node_opcua_nodeid_1.NodeIdType.NUMERIC && n.namespace === 0) ? (n.value <= 15 ? "opc" : "ua") : map[node.nodeId.namespace];
35
+ return prefix + ":" + (typeName === "Structure" && prefix === "ua" ? "ExtensionObject" : typeName);
36
+ }
37
+ // eslint-disable-next-line max-statements
38
+ function dumpDataTypeStructure(xw, addressSpace, map, structureDefinition, structureDefinitionBase, name, doc) {
39
+ var _a, _b;
40
+ xw.startElement("opc:StructuredType");
41
+ xw.writeAttribute("Name", name);
42
+ xw.writeAttribute("BaseType", buildXmlName(addressSpace, map, structureDefinition.baseDataType));
43
+ if (doc) {
44
+ xw.startElement("opc:Documentation");
45
+ xw.text(doc);
46
+ xw.endElement();
47
+ }
48
+ const fields = structureDefinition.fields || [];
49
+ // get base class
50
+ const nbFieldsInBase = structureDefinitionBase ? ((_a = structureDefinitionBase.fields) === null || _a === void 0 ? void 0 : _a.length) || 0 : 0;
51
+ let optionalsCount = 0;
52
+ for (let index = nbFieldsInBase; index < fields.length; index++) {
53
+ const f = fields[index];
54
+ if (f.isOptional) {
55
+ xw.startElement("opc:Field");
56
+ xw.writeAttribute("Name", f.name + "Specified");
57
+ xw.writeAttribute("TypeName", "opc:Bit");
58
+ xw.endElement();
59
+ optionalsCount++;
60
+ }
61
+ }
62
+ // istanbul ignore next
63
+ if (optionalsCount >= 32) {
64
+ throw new Error("Too many optionals fields");
65
+ }
66
+ if (optionalsCount) {
67
+ /*
68
+ const padding = optionalsCount <= 8
69
+ ? (8 - optionalsCount)
70
+ : (optionalsCount <= 16)
71
+ ? (16 - optionalsCount)
72
+ : (32 - optionalsCount)
73
+ ;
74
+ */
75
+ const padding = 32 - optionalsCount;
76
+ if (padding !== 0) {
77
+ xw.startElement("opc:Field");
78
+ xw.writeAttribute("Name", "Reserved1");
79
+ xw.writeAttribute("TypeName", "opc:Bit");
80
+ xw.writeAttribute("Length", padding.toString());
81
+ xw.endElement();
82
+ }
83
+ }
84
+ for (let index = nbFieldsInBase; index < fields.length; index++) {
85
+ const f = fields[index];
86
+ const isArray = f.valueRank > 0 && ((_b = f.arrayDimensions) === null || _b === void 0 ? void 0 : _b.length);
87
+ if (isArray) {
88
+ xw.startElement("opc:Field");
89
+ xw.writeAttribute("Name", "NoOf" + f.name);
90
+ xw.writeAttribute("TypeName", "opc:Int32");
91
+ if (f.isOptional) {
92
+ xw.writeAttribute("SwitchField", f.name + "Specified");
93
+ }
94
+ xw.endElement();
95
+ }
96
+ xw.startElement("opc:Field");
97
+ xw.writeAttribute("Name", f.name);
98
+ const typeName = buildXmlName(addressSpace, map, f.dataType);
99
+ xw.writeAttribute("TypeName", typeName);
100
+ if (isArray) {
101
+ xw.writeAttribute("LengthField", "NoOf" + f.name);
102
+ }
103
+ if (f.isOptional) {
104
+ xw.writeAttribute("SwitchField", f.name + "Specified");
105
+ }
106
+ xw.endElement();
107
+ }
108
+ xw.endElement();
109
+ }
110
+ function dumpDataTypeToBSD(xw, dataType, map) {
111
+ var _a;
112
+ const addressSpace = dataType.addressSpace;
113
+ const name = dataType.browseName.name;
114
+ const definition = dataType.getDefinition();
115
+ if (definition instanceof node_opcua_types_1.StructureDefinition) {
116
+ const structureDefinitionBase = (_a = dataType.subtypeOfObj) === null || _a === void 0 ? void 0 : _a.getStructureDefinition();
117
+ dumpDataTypeStructure(xw, addressSpace, map, definition, structureDefinitionBase, name);
118
+ }
119
+ if (definition instanceof node_opcua_types_1.EnumDefinition) {
120
+ dumpEnumeratedType(xw, definition, name);
121
+ }
122
+ }
123
+ function shortcut(namespace) {
124
+ return "n" + namespace.index;
125
+ }
126
+ function dumpToBSD(namespace) {
127
+ const dependency = (0, construct_namespace_dependency_1.constructNamespaceDependency)(namespace);
128
+ const addressSpace = namespace.addressSpace;
129
+ const xw = new XMLWriter(true);
130
+ //xx xw.startDocument():// { encoding: "utf-8", version: "1.0" });
131
+ xw.startElement("opc:TypeDictionary");
132
+ xw.writeAttribute("xmlns:opc", "http://opcfoundation.org/BinarySchema/");
133
+ xw.writeAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
134
+ xw.writeAttribute("xmlns:ua", "http://opcfoundation.org/UA/");
135
+ xw.writeAttribute("xmlns:tns", namespace.namespaceUri);
136
+ const map = {};
137
+ map[namespace.index] = "tns";
138
+ for (const dependantNamespace of dependency) {
139
+ const namespaceIndex = dependantNamespace.index;
140
+ if (namespaceIndex === 0 || namespaceIndex === namespace.index) {
141
+ continue;
142
+ }
143
+ const ns = shortcut(dependantNamespace);
144
+ map[namespaceIndex] = ns;
145
+ xw.writeAttribute(`xmlns:${ns}`, dependantNamespace.namespaceUri);
146
+ }
147
+ xw.writeAttribute("DefaultByteOrder", "LittleEndian");
148
+ xw.writeAttribute("TargetNamespace", namespace.namespaceUri);
149
+ // <opc:Import Namespace="http://opcfoundation.org/UA/"/>
150
+ for (const dependantNamespace of dependency) {
151
+ if (dependantNamespace.index === namespace.index) {
152
+ continue;
153
+ }
154
+ xw.startElement("opc:Import").writeAttribute("Namespace", dependantNamespace.namespaceUri).endElement();
155
+ }
156
+ //
157
+ for (const dataType of namespace._dataTypeIterator()) {
158
+ dumpDataTypeToBSD(xw, dataType, map);
159
+ }
160
+ xw.endElement();
161
+ // xw.endDocument();
162
+ return xw.toString();
163
+ }
164
+ exports.dumpToBSD = dumpToBSD;
165
165
  //# sourceMappingURL=dump_to_bsd.js.map
@@ -1,10 +1,10 @@
1
- import { BaseNode } from "node-opcua-address-space-base";
2
- export declare function sortByBrowseName(x: BaseNode, y: BaseNode): number;
3
- type NodeIdString = string;
4
- export interface BuildAliasesData {
5
- aliases: Record<string, NodeIdString>;
6
- aliases_visited?: Record<string, unknown>;
7
- }
8
- export interface DumpXMLOptions {
9
- }
10
- export {};
1
+ import { BaseNode } from "node-opcua-address-space-base";
2
+ export declare function sortByBrowseName(x: BaseNode, y: BaseNode): number;
3
+ type NodeIdString = string;
4
+ export interface BuildAliasesData {
5
+ aliases: Record<string, NodeIdString>;
6
+ aliases_visited?: Record<string, unknown>;
7
+ }
8
+ export interface DumpXMLOptions {
9
+ }
10
+ export {};