node-opcua-address-space 2.98.0 → 2.98.2

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 (460) hide show
  1. package/dist/source/address_space_ts.d.ts +118 -0
  2. package/dist/source/address_space_ts.js +18 -0
  3. package/dist/source/address_space_ts.js.map +1 -0
  4. package/dist/source/continuation_points/continuation_point_manager.d.ts +91 -0
  5. package/dist/source/continuation_points/continuation_point_manager.js +201 -0
  6. package/dist/source/continuation_points/continuation_point_manager.js.map +1 -0
  7. package/dist/source/helpers/adjust_browse_direction.d.ts +5 -0
  8. package/dist/source/helpers/adjust_browse_direction.js +12 -0
  9. package/dist/source/helpers/adjust_browse_direction.js.map +1 -0
  10. package/dist/source/helpers/argument_list.d.ts +33 -0
  11. package/dist/source/helpers/argument_list.js +255 -0
  12. package/dist/source/helpers/argument_list.js.map +1 -0
  13. package/dist/source/helpers/call_helpers.d.ts +6 -0
  14. package/dist/source/helpers/call_helpers.js +72 -0
  15. package/dist/source/helpers/call_helpers.js.map +1 -0
  16. package/dist/source/helpers/coerce_enum_value.d.ts +6 -0
  17. package/dist/source/helpers/coerce_enum_value.js +34 -0
  18. package/dist/source/helpers/coerce_enum_value.js.map +1 -0
  19. package/dist/source/helpers/dump_tools.d.ts +14 -0
  20. package/dist/source/helpers/dump_tools.js +79 -0
  21. package/dist/source/helpers/dump_tools.js.map +1 -0
  22. package/dist/source/helpers/ensure_secure_access.d.ts +9 -0
  23. package/dist/source/helpers/ensure_secure_access.js +77 -0
  24. package/dist/source/helpers/ensure_secure_access.js.map +1 -0
  25. package/dist/source/helpers/make_optionals_map.d.ts +21 -0
  26. package/dist/source/helpers/make_optionals_map.js +30 -0
  27. package/dist/source/helpers/make_optionals_map.js.map +1 -0
  28. package/dist/source/helpers/multiform_func.d.ts +11 -0
  29. package/dist/source/helpers/multiform_func.js +76 -0
  30. package/dist/source/helpers/multiform_func.js.map +1 -0
  31. package/dist/source/helpers/resolve_opaque_on_address_space.d.ts +3 -0
  32. package/dist/source/helpers/resolve_opaque_on_address_space.js +37 -0
  33. package/dist/source/helpers/resolve_opaque_on_address_space.js.map +1 -0
  34. package/dist/source/index.d.ts +61 -0
  35. package/dist/source/index.js +90 -0
  36. package/dist/source/index.js.map +1 -0
  37. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.d.ts +19 -0
  38. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js +3 -0
  39. package/dist/source/interfaces/alarms_and_conditions/condition_info_i.js.map +1 -0
  40. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.d.ts +193 -0
  41. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.js +3 -0
  42. package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.js.map +1 -0
  43. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.d.ts +12 -0
  44. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.js +3 -0
  45. package/dist/source/interfaces/alarms_and_conditions/deviation_stuff.js.map +1 -0
  46. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.d.ts +10 -0
  47. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.js +3 -0
  48. package/dist/source/interfaces/alarms_and_conditions/install_setpoint_options.js.map +1 -0
  49. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.d.ts +7 -0
  50. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js +3 -0
  51. package/dist/source/interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js.map +1 -0
  52. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.d.ts +7 -0
  53. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.js +3 -0
  54. package/dist/source/interfaces/alarms_and_conditions/instantiate_condition_options.js.map +1 -0
  55. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.d.ts +4 -0
  56. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js +3 -0
  57. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.js.map +1 -0
  58. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.d.ts +4 -0
  59. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js +3 -0
  60. package/dist/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.js.map +1 -0
  61. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.d.ts +9 -0
  62. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js +3 -0
  63. package/dist/source/interfaces/alarms_and_conditions/instantiate_limit_alarm_options.js.map +1 -0
  64. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.d.ts +4 -0
  65. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js +3 -0
  66. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.js.map +1 -0
  67. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.d.ts +4 -0
  68. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js +3 -0
  69. package/dist/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.js.map +1 -0
  70. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.d.ts +20 -0
  71. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js +3 -0
  72. package/dist/source/interfaces/alarms_and_conditions/instantiate_off_normal_alarm_options.js.map +1 -0
  73. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +23 -0
  74. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js +3 -0
  75. package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.js.map +1 -0
  76. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.d.ts +32 -0
  77. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js +3 -0
  78. package/dist/source/interfaces/alarms_and_conditions/ua_alarm_condition_ex.js.map +1 -0
  79. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.d.ts +19 -0
  80. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js +3 -0
  81. package/dist/source/interfaces/alarms_and_conditions/ua_certificate_expiration_alarm_ex.js.map +1 -0
  82. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +45 -0
  83. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.js +3 -0
  84. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.js.map +1 -0
  85. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.d.ts +7 -0
  86. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js +26 -0
  87. package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js.map +1 -0
  88. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.d.ts +5 -0
  89. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js +3 -0
  90. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.js.map +1 -0
  91. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.d.ts +20 -0
  92. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js +3 -0
  93. package/dist/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.js.map +1 -0
  94. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.d.ts +26 -0
  95. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js +3 -0
  96. package/dist/source/interfaces/alarms_and_conditions/ua_limit_alarm_ex.js.map +1 -0
  97. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.d.ts +8 -0
  98. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js +3 -0
  99. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_deviation_alarm_ex.js.map +1 -0
  100. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.d.ts +10 -0
  101. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js +3 -0
  102. package/dist/source/interfaces/alarms_and_conditions/ua_non_exclusive_limit_alarm_ex.js.map +1 -0
  103. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.d.ts +21 -0
  104. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js +3 -0
  105. package/dist/source/interfaces/data_access/ua_multistate_discrete_ex.js.map +1 -0
  106. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.d.ts +24 -0
  107. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js +3 -0
  108. package/dist/source/interfaces/data_access/ua_multistate_value_discrete_ex.js.map +1 -0
  109. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.d.ts +12 -0
  110. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js +3 -0
  111. package/dist/source/interfaces/data_access/ua_two_state_discrete_ex.js.map +1 -0
  112. package/dist/source/interfaces/data_access/ua_y_array_item_ex.d.ts +8 -0
  113. package/dist/source/interfaces/data_access/ua_y_array_item_ex.js +3 -0
  114. package/dist/source/interfaces/data_access/ua_y_array_item_ex.js.map +1 -0
  115. package/dist/source/interfaces/extension_object_constructor.d.ts +10 -0
  116. package/dist/source/interfaces/extension_object_constructor.js +3 -0
  117. package/dist/source/interfaces/extension_object_constructor.js.map +1 -0
  118. package/dist/source/interfaces/nodeset_loader_options.d.ts +4 -0
  119. package/dist/source/interfaces/nodeset_loader_options.js +3 -0
  120. package/dist/source/interfaces/nodeset_loader_options.js.map +1 -0
  121. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +12 -0
  122. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js +3 -0
  123. package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.js.map +1 -0
  124. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.d.ts +49 -0
  125. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js +3 -0
  126. package/dist/source/interfaces/state_machine/ua_finite_state_machine_type.js.map +1 -0
  127. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.d.ts +11 -0
  128. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js +3 -0
  129. package/dist/source/interfaces/state_machine/ua_program_state_machine_type.js.map +1 -0
  130. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +30 -0
  131. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.js +3 -0
  132. package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.js.map +1 -0
  133. package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +234 -0
  134. package/dist/source/interfaces/state_machine/ua_state_machine_type.js +3 -0
  135. package/dist/source/interfaces/state_machine/ua_state_machine_type.js.map +1 -0
  136. package/dist/source/interfaces/state_machine/ua_transition_ex.d.ts +6 -0
  137. package/dist/source/interfaces/state_machine/ua_transition_ex.js +3 -0
  138. package/dist/source/interfaces/state_machine/ua_transition_ex.js.map +1 -0
  139. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.d.ts +8 -0
  140. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js +3 -0
  141. package/dist/source/interfaces/ua_subscription_diagnostics_variable_ex.js.map +1 -0
  142. package/dist/source/loader/decode_xml_extension_object.d.ts +6 -0
  143. package/dist/source/loader/decode_xml_extension_object.js +72 -0
  144. package/dist/source/loader/decode_xml_extension_object.js.map +1 -0
  145. package/dist/source/loader/ensure_datatype_extracted.d.ts +5 -0
  146. package/dist/source/loader/ensure_datatype_extracted.js +71 -0
  147. package/dist/source/loader/ensure_datatype_extracted.js.map +1 -0
  148. package/dist/source/loader/generateAddressSpaceRaw.d.ts +11 -0
  149. package/dist/source/loader/generateAddressSpaceRaw.js +46 -0
  150. package/dist/source/loader/generateAddressSpaceRaw.js.map +1 -0
  151. package/dist/source/loader/load_nodeset2.d.ts +17 -0
  152. package/dist/source/loader/load_nodeset2.js +1484 -0
  153. package/dist/source/loader/load_nodeset2.js.map +1 -0
  154. package/dist/source/loader/make_semver_compatible.d.ts +6 -0
  155. package/dist/source/loader/make_semver_compatible.js +26 -0
  156. package/dist/source/loader/make_semver_compatible.js.map +1 -0
  157. package/dist/source/loader/make_xml_extension_object_parser.d.ts +28 -0
  158. package/dist/source/loader/make_xml_extension_object_parser.js +327 -0
  159. package/dist/source/loader/make_xml_extension_object_parser.js.map +1 -0
  160. package/dist/source/loader/namespace_post_step.d.ts +10 -0
  161. package/dist/source/loader/namespace_post_step.js +62 -0
  162. package/dist/source/loader/namespace_post_step.js.map +1 -0
  163. package/dist/source/loader/register_node_promoter.d.ts +2 -0
  164. package/dist/source/loader/register_node_promoter.js +10 -0
  165. package/dist/source/loader/register_node_promoter.js.map +1 -0
  166. package/dist/source/namespace.d.ts +6 -0
  167. package/dist/source/namespace.js +3 -0
  168. package/dist/source/namespace.js.map +1 -0
  169. package/dist/source/namespace_alarm_and_condition.d.ts +32 -0
  170. package/dist/source/namespace_alarm_and_condition.js +3 -0
  171. package/dist/source/namespace_alarm_and_condition.js.map +1 -0
  172. package/dist/source/namespace_data_access.d.ts +42 -0
  173. package/dist/source/namespace_data_access.js +3 -0
  174. package/dist/source/namespace_data_access.js.map +1 -0
  175. package/dist/source/namespace_machine_state.d.ts +8 -0
  176. package/dist/source/namespace_machine_state.js +3 -0
  177. package/dist/source/namespace_machine_state.js.map +1 -0
  178. package/dist/source/pseudo_session.d.ts +72 -0
  179. package/dist/source/pseudo_session.js +255 -0
  180. package/dist/source/pseudo_session.js.map +1 -0
  181. package/dist/source/session_context.d.ts +111 -0
  182. package/dist/source/session_context.js +265 -0
  183. package/dist/source/session_context.js.map +1 -0
  184. package/dist/source/set_namespace_meta_data.d.ts +2 -0
  185. package/dist/source/set_namespace_meta_data.js +60 -0
  186. package/dist/source/set_namespace_meta_data.js.map +1 -0
  187. package/dist/source/ua_root_folder.d.ts +9 -0
  188. package/dist/source/ua_root_folder.js +3 -0
  189. package/dist/source/ua_root_folder.js.map +1 -0
  190. package/dist/source/ua_two_state_variable_ex.d.ts +23 -0
  191. package/dist/source/ua_two_state_variable_ex.js +3 -0
  192. package/dist/source/ua_two_state_variable_ex.js.map +1 -0
  193. package/dist/source/xml_writer.d.ts +18 -0
  194. package/dist/source/xml_writer.js +3 -0
  195. package/dist/source/xml_writer.js.map +1 -0
  196. package/dist/src/address_space.d.ts +387 -0
  197. package/dist/src/address_space.js +1386 -0
  198. package/dist/src/address_space.js.map +1 -0
  199. package/dist/src/address_space_change_event_tools.d.ts +6 -0
  200. package/dist/src/address_space_change_event_tools.js +153 -0
  201. package/dist/src/address_space_change_event_tools.js.map +1 -0
  202. package/dist/src/address_space_private.d.ts +43 -0
  203. package/dist/src/address_space_private.js +3 -0
  204. package/dist/src/address_space_private.js.map +1 -0
  205. package/dist/src/alarms_and_conditions/condition.d.ts +5 -0
  206. package/dist/src/alarms_and_conditions/condition.js +79 -0
  207. package/dist/src/alarms_and_conditions/condition.js.map +1 -0
  208. package/dist/src/alarms_and_conditions/condition_info_impl.d.ts +26 -0
  209. package/dist/src/alarms_and_conditions/condition_info_impl.js +55 -0
  210. package/dist/src/alarms_and_conditions/condition_info_impl.js.map +1 -0
  211. package/dist/src/alarms_and_conditions/condition_snapshot_impl.d.ts +222 -0
  212. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js +658 -0
  213. package/dist/src/alarms_and_conditions/condition_snapshot_impl.js.map +1 -0
  214. package/dist/src/alarms_and_conditions/deviation_alarm_helper.d.ts +9 -0
  215. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +61 -0
  216. package/dist/src/alarms_and_conditions/deviation_alarm_helper.js.map +1 -0
  217. package/dist/src/alarms_and_conditions/index.d.ts +16 -0
  218. package/dist/src/alarms_and_conditions/index.js +33 -0
  219. package/dist/src/alarms_and_conditions/index.js.map +1 -0
  220. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +44 -0
  221. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +245 -0
  222. package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js.map +1 -0
  223. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.d.ts +93 -0
  224. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js +419 -0
  225. package/dist/src/alarms_and_conditions/ua_alarm_condition_impl.js.map +1 -0
  226. package/dist/src/alarms_and_conditions/ua_base_event_impl.d.ts +26 -0
  227. package/dist/src/alarms_and_conditions/ua_base_event_impl.js +39 -0
  228. package/dist/src/alarms_and_conditions/ua_base_event_impl.js.map +1 -0
  229. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +44 -0
  230. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +184 -0
  231. package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js.map +1 -0
  232. package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +155 -0
  233. package/dist/src/alarms_and_conditions/ua_condition_impl.js +1029 -0
  234. package/dist/src/alarms_and_conditions/ua_condition_impl.js.map +1 -0
  235. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.d.ts +14 -0
  236. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js +35 -0
  237. package/dist/src/alarms_and_conditions/ua_discrete_alarm_impl.js.map +1 -0
  238. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.d.ts +24 -0
  239. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js +57 -0
  240. package/dist/src/alarms_and_conditions/ua_exclusive_deviation_alarm_impl.js.map +1 -0
  241. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.d.ts +11 -0
  242. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js +12 -0
  243. package/dist/src/alarms_and_conditions/ua_exclusive_level_alarm_impl.js.map +1 -0
  244. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.d.ts +23 -0
  245. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js +87 -0
  246. package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js.map +1 -0
  247. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.d.ts +11 -0
  248. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js +8 -0
  249. package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js.map +1 -0
  250. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.d.ts +79 -0
  251. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js +251 -0
  252. package/dist/src/alarms_and_conditions/ua_limit_alarm_impl.js.map +1 -0
  253. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.d.ts +24 -0
  254. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js +51 -0
  255. package/dist/src/alarms_and_conditions/ua_non_exclusive_deviation_alarm_impl.js.map +1 -0
  256. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.d.ts +19 -0
  257. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js +163 -0
  258. package/dist/src/alarms_and_conditions/ua_non_exclusive_limit_alarm_impl.js.map +1 -0
  259. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.d.ts +46 -0
  260. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js +166 -0
  261. package/dist/src/alarms_and_conditions/ua_off_normal_alarm_impl.js.map +1 -0
  262. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.d.ts +18 -0
  263. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js +18 -0
  264. package/dist/src/alarms_and_conditions/ua_system_off_normal_alarm_impl.js.map +1 -0
  265. package/dist/src/apply_condition_refresh.d.ts +6 -0
  266. package/dist/src/apply_condition_refresh.js +28 -0
  267. package/dist/src/apply_condition_refresh.js.map +1 -0
  268. package/dist/src/base_node_impl.d.ts +284 -0
  269. package/dist/src/base_node_impl.js +1455 -0
  270. package/dist/src/base_node_impl.js.map +1 -0
  271. package/dist/src/base_node_private.d.ts +81 -0
  272. package/dist/src/base_node_private.js +833 -0
  273. package/dist/src/base_node_private.js.map +1 -0
  274. package/dist/src/check_value_rank_compatibility.d.ts +15 -0
  275. package/dist/src/check_value_rank_compatibility.js +82 -0
  276. package/dist/src/check_value_rank_compatibility.js.map +1 -0
  277. package/dist/src/data_access/add_dataItem_stuff.d.ts +11 -0
  278. package/dist/src/data_access/add_dataItem_stuff.js +62 -0
  279. package/dist/src/data_access/add_dataItem_stuff.js.map +1 -0
  280. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.d.ts +1 -0
  281. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js +35 -0
  282. package/dist/src/data_access/check_variant_compatibility_ua_analog_item.js.map +1 -0
  283. package/dist/src/data_access/ua_multistate_discrete_impl.d.ts +32 -0
  284. package/dist/src/data_access/ua_multistate_discrete_impl.js +131 -0
  285. package/dist/src/data_access/ua_multistate_discrete_impl.js.map +1 -0
  286. package/dist/src/data_access/ua_multistate_value_discrete_impl.d.ts +52 -0
  287. package/dist/src/data_access/ua_multistate_value_discrete_impl.js +254 -0
  288. package/dist/src/data_access/ua_multistate_value_discrete_impl.js.map +1 -0
  289. package/dist/src/data_access/ua_two_state_discrete_impl.d.ts +25 -0
  290. package/dist/src/data_access/ua_two_state_discrete_impl.js +156 -0
  291. package/dist/src/data_access/ua_two_state_discrete_impl.js.map +1 -0
  292. package/dist/src/event_data.d.ts +34 -0
  293. package/dist/src/event_data.js +65 -0
  294. package/dist/src/event_data.js.map +1 -0
  295. package/dist/src/extension_object_array_node.d.ts +23 -0
  296. package/dist/src/extension_object_array_node.js +249 -0
  297. package/dist/src/extension_object_array_node.js.map +1 -0
  298. package/dist/src/historical_access/address_space_historical_data_node.d.ts +26 -0
  299. package/dist/src/historical_access/address_space_historical_data_node.js +653 -0
  300. package/dist/src/historical_access/address_space_historical_data_node.js.map +1 -0
  301. package/dist/src/idx_iterator.d.ts +8 -0
  302. package/dist/src/idx_iterator.js +51 -0
  303. package/dist/src/idx_iterator.js.map +1 -0
  304. package/dist/src/index_current.d.ts +46 -0
  305. package/dist/src/index_current.js +78 -0
  306. package/dist/src/index_current.js.map +1 -0
  307. package/dist/src/namespace_impl.d.ts +456 -0
  308. package/dist/src/namespace_impl.js +1763 -0
  309. package/dist/src/namespace_impl.js.map +1 -0
  310. package/dist/src/namespace_private.d.ts +23 -0
  311. package/dist/src/namespace_private.js +33 -0
  312. package/dist/src/namespace_private.js.map +1 -0
  313. package/dist/src/nodeid_manager.d.ts +37 -0
  314. package/dist/src/nodeid_manager.js +184 -0
  315. package/dist/src/nodeid_manager.js.map +1 -0
  316. package/dist/src/nodeset_tools/adjust_namespace_array.d.ts +2 -0
  317. package/dist/src/nodeset_tools/adjust_namespace_array.js +14 -0
  318. package/dist/src/nodeset_tools/adjust_namespace_array.js.map +1 -0
  319. package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +18 -0
  320. package/dist/src/nodeset_tools/construct_namespace_dependency.js +141 -0
  321. package/dist/src/nodeset_tools/construct_namespace_dependency.js.map +1 -0
  322. package/dist/src/nodeset_tools/dump_to_bsd.d.ts +2 -0
  323. package/dist/src/nodeset_tools/dump_to_bsd.js +165 -0
  324. package/dist/src/nodeset_tools/dump_to_bsd.js.map +1 -0
  325. package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +10 -0
  326. package/dist/src/nodeset_tools/nodeset_to_xml.js +1288 -0
  327. package/dist/src/nodeset_tools/nodeset_to_xml.js.map +1 -0
  328. package/dist/src/private_namespace.d.ts +5 -0
  329. package/dist/src/private_namespace.js +20 -0
  330. package/dist/src/private_namespace.js.map +1 -0
  331. package/dist/src/reference_impl.d.ts +43 -0
  332. package/dist/src/reference_impl.js +140 -0
  333. package/dist/src/reference_impl.js.map +1 -0
  334. package/dist/src/role_permissions.d.ts +2 -0
  335. package/dist/src/role_permissions.js +11 -0
  336. package/dist/src/role_permissions.js.map +1 -0
  337. package/dist/src/state_machine/finite_state_machine.d.ts +81 -0
  338. package/dist/src/state_machine/finite_state_machine.js +389 -0
  339. package/dist/src/state_machine/finite_state_machine.js.map +1 -0
  340. package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +38 -0
  341. package/dist/src/state_machine/ua_shelving_state_machine_ex.js +251 -0
  342. package/dist/src/state_machine/ua_shelving_state_machine_ex.js.map +1 -0
  343. package/dist/src/state_machine/ua_two_state_variable.d.ts +61 -0
  344. package/dist/src/state_machine/ua_two_state_variable.js +332 -0
  345. package/dist/src/state_machine/ua_two_state_variable.js.map +1 -0
  346. package/dist/src/tool_isSubtypeOf.d.ts +18 -0
  347. package/dist/src/tool_isSubtypeOf.js +125 -0
  348. package/dist/src/tool_isSubtypeOf.js.map +1 -0
  349. package/dist/src/ua_condition_type.d.ts +8 -0
  350. package/dist/src/ua_condition_type.js +3 -0
  351. package/dist/src/ua_condition_type.js.map +1 -0
  352. package/dist/src/ua_data_type_impl.d.ts +89 -0
  353. package/dist/src/ua_data_type_impl.js +369 -0
  354. package/dist/src/ua_data_type_impl.js.map +1 -0
  355. package/dist/src/ua_method_impl.d.ts +42 -0
  356. package/dist/src/ua_method_impl.js +218 -0
  357. package/dist/src/ua_method_impl.js.map +1 -0
  358. package/dist/src/ua_object_impl.d.ts +35 -0
  359. package/dist/src/ua_object_impl.js +169 -0
  360. package/dist/src/ua_object_impl.js.map +1 -0
  361. package/dist/src/ua_object_type_impl.d.ts +50 -0
  362. package/dist/src/ua_object_type_impl.js +127 -0
  363. package/dist/src/ua_object_type_impl.js.map +1 -0
  364. package/dist/src/ua_reference_type_impl.d.ts +45 -0
  365. package/dist/src/ua_reference_type_impl.js +142 -0
  366. package/dist/src/ua_reference_type_impl.js.map +1 -0
  367. package/dist/src/ua_variable_impl.d.ts +380 -0
  368. package/dist/src/ua_variable_impl.js +1739 -0
  369. package/dist/src/ua_variable_impl.js.map +1 -0
  370. package/dist/src/ua_variable_impl_ext_obj.d.ts +23 -0
  371. package/dist/src/ua_variable_impl_ext_obj.js +671 -0
  372. package/dist/src/ua_variable_impl_ext_obj.js.map +1 -0
  373. package/dist/src/ua_variable_type_impl.d.ts +74 -0
  374. package/dist/src/ua_variable_type_impl.js +598 -0
  375. package/dist/src/ua_variable_type_impl.js.map +1 -0
  376. package/dist/src/ua_view_impl.d.ts +19 -0
  377. package/dist/src/ua_view_impl.js +44 -0
  378. package/dist/src/ua_view_impl.js.map +1 -0
  379. package/dist/tsconfig_common.tsbuildinfo +1 -0
  380. package/distHelpers/add_event_generator_object.d.ts +3 -0
  381. package/{test_helpers/add_event_generator_object.ts → distHelpers/add_event_generator_object.js} +16 -22
  382. package/distHelpers/add_event_generator_object.js.map +1 -0
  383. package/distHelpers/alarms_and_conditions_demo.d.ts +9 -0
  384. package/{test_helpers/alarms_and_conditions_demo.ts → distHelpers/alarms_and_conditions_demo.js} +21 -56
  385. package/distHelpers/alarms_and_conditions_demo.js.map +1 -0
  386. package/distHelpers/assertHasMatchingReference.d.ts +19 -0
  387. package/{test_helpers/assertHasMatchingReference.ts → distHelpers/assertHasMatchingReference.js} +12 -14
  388. package/distHelpers/assertHasMatchingReference.js.map +1 -0
  389. package/distHelpers/boiler_system.d.ts +113 -0
  390. package/{test_helpers/boiler_system.ts → distHelpers/boiler_system.js} +81 -295
  391. package/distHelpers/boiler_system.js.map +1 -0
  392. package/distHelpers/create_minimalist_address_space_nodeset.d.ts +5 -0
  393. package/{test_helpers/create_minimalist_address_space_nodeset.ts → distHelpers/create_minimalist_address_space_nodeset.js} +51 -87
  394. package/distHelpers/create_minimalist_address_space_nodeset.js.map +1 -0
  395. package/distHelpers/date_utils.d.ts +3 -0
  396. package/distHelpers/date_utils.js +10 -0
  397. package/distHelpers/date_utils.js.map +1 -0
  398. package/distHelpers/dump_statemachine.d.ts +0 -0
  399. package/distHelpers/dump_statemachine.js +128 -0
  400. package/distHelpers/dump_statemachine.js.map +1 -0
  401. package/distHelpers/get_address_space_fixture.d.ts +1 -0
  402. package/{test_helpers/get_address_space_fixture.ts → distHelpers/get_address_space_fixture.js} +8 -7
  403. package/distHelpers/get_address_space_fixture.js.map +1 -0
  404. package/distHelpers/get_mini_address_space.d.ts +7 -0
  405. package/distHelpers/get_mini_address_space.js +37 -0
  406. package/distHelpers/get_mini_address_space.js.map +1 -0
  407. package/distHelpers/index.js +29 -0
  408. package/distHelpers/index.js.map +1 -0
  409. package/distHelpers/mock_session.d.ts +10 -0
  410. package/distHelpers/mock_session.js +26 -0
  411. package/distHelpers/mock_session.js.map +1 -0
  412. package/distNodeJS/generate_address_space.d.ts +6 -0
  413. package/distNodeJS/generate_address_space.js +53 -0
  414. package/distNodeJS/generate_address_space.js.map +1 -0
  415. package/distNodeJS/index.js +18 -0
  416. package/distNodeJS/index.js.map +1 -0
  417. package/package.json +49 -38
  418. package/source/helpers/dump_tools.ts +92 -0
  419. package/src/nodeset_tools/dump_to_bsd.ts +198 -0
  420. package/.mocharc.yml +0 -12
  421. package/generate.js +0 -1
  422. package/source_nodejs/generate_address_space.ts +0 -60
  423. package/test_helpers/date_utils.ts +0 -5
  424. package/test_helpers/get_mini_address_space.ts +0 -42
  425. package/test_helpers/mock_session.ts +0 -34
  426. package/test_helpers/test_fixtures/dataType_in_separateNamespace.xml +0 -150
  427. package/test_helpers/test_fixtures/dataType_in_separateNamespace_basic.xml +0 -57
  428. package/test_helpers/test_fixtures/dataType_in_separateNamespace_mix.xml +0 -136
  429. package/test_helpers/test_fixtures/dataType_issue.xml +0 -80
  430. package/test_helpers/test_fixtures/dataType_withEnumeration.xml +0 -82
  431. package/test_helpers/test_fixtures/dataType_with_isOptionSet.xml +0 -194
  432. package/test_helpers/test_fixtures/dataType_with_qualifiedname.xml +0 -71
  433. package/test_helpers/test_fixtures/dataType_with_recursive_structure.xml +0 -155
  434. package/test_helpers/test_fixtures/dataType_with_structures.xml +0 -605
  435. package/test_helpers/test_fixtures/dataType_with_union.xml +0 -90
  436. package/test_helpers/test_fixtures/datatype_as_per_1.04.xml +0 -118
  437. package/test_helpers/test_fixtures/datatype_with_allow_subtype.xml +0 -104
  438. package/test_helpers/test_fixtures/eurange_issue.xml +0 -74
  439. package/test_helpers/test_fixtures/example_issue1096.xml +0 -267
  440. package/test_helpers/test_fixtures/fixture_empty_nodeset2.xml +0 -106
  441. package/test_helpers/test_fixtures/fixture_simple_statemachine_nodeset2.xml +0 -1305
  442. package/test_helpers/test_fixtures/fixuture_nodeset_objects_with_some_methods.xml +0 -370
  443. package/test_helpers/test_fixtures/issue_1132_variable_with_nodeid_value.xml +0 -68
  444. package/test_helpers/test_fixtures/issue_846.xml +0 -3172
  445. package/test_helpers/test_fixtures/issue_899_variable_with_nodeid_value.xml +0 -33
  446. package/test_helpers/test_fixtures/mini.Node.Set2.xml +0 -4736
  447. package/test_helpers/test_fixtures/mini.nodeset.withVariousVariables.xml +0 -196
  448. package/test_helpers/test_fixtures/minimalist_nodeset_with_models.xml +0 -8
  449. package/test_helpers/test_fixtures/minimalist_nodeset_with_models_more_complex.xml +0 -20
  450. package/test_helpers/test_fixtures/nodeset_no_aliases.xml +0 -30
  451. package/test_helpers/test_fixtures/nodeset_no_aliases_with_aliases.xml +0 -31
  452. package/test_helpers/test_fixtures/nodeset_with_analog_items.xml +0 -45
  453. package/test_helpers/test_fixtures/nodeset_with_guid.xml +0 -1442
  454. package/test_helpers/test_fixtures/nodeset_with_int64_values.xml +0 -31
  455. package/test_helpers/test_fixtures/nodeset_with_special_char.xml +0 -34
  456. package/test_helpers/test_fixtures/nodeset_with_utf8_special_characters.xml +0 -20
  457. package/test_helpers/test_fixtures/variable_with_value.xml +0 -143
  458. package/test_helpers/test_fixtures/variabletype_with_value.xml +0 -324
  459. /package/{test_helpers/index.ts → distHelpers/index.d.ts} +0 -0
  460. /package/{source_nodejs/index.ts → distNodeJS/index.d.ts} +0 -0
@@ -0,0 +1,255 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.verifyArguments_ArgumentList = exports.isArgumentValid = exports.getMethodDeclaration_ArgumentList = exports.binaryStoreSize_ArgumentList = exports.decode_ArgumentList = exports.encode_ArgumentList = void 0;
4
+ /* eslint-disable complexity */
5
+ /**
6
+ * @module node-opcua-address-space
7
+ */
8
+ const node_opcua_assert_1 = require("node-opcua-assert");
9
+ const ec = require("node-opcua-basic-types");
10
+ const node_opcua_binary_stream_1 = require("node-opcua-binary-stream");
11
+ const node_opcua_debug_1 = require("node-opcua-debug");
12
+ const factories = require("node-opcua-factory");
13
+ const node_opcua_nodeid_1 = require("node-opcua-nodeid");
14
+ const node_opcua_status_code_1 = require("node-opcua-status-code");
15
+ const node_opcua_variant_1 = require("node-opcua-variant");
16
+ const node_opcua_variant_2 = require("node-opcua-variant");
17
+ const node_opcua_constants_1 = require("node-opcua-constants");
18
+ const node_opcua_data_model_1 = require("node-opcua-data-model");
19
+ const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
20
+ const warningLog = (0, node_opcua_debug_1.make_warningLog)(__filename);
21
+ const doDebug = (0, node_opcua_debug_1.checkDebugFlag)(__filename);
22
+ function myfindBuiltInType(dataType) {
23
+ return factories.findBuiltInType(node_opcua_variant_1.DataType[dataType]);
24
+ }
25
+ function encode_ArgumentList(definition, args, stream) {
26
+ (0, node_opcua_assert_1.assert)(definition.length === args.length);
27
+ (0, node_opcua_assert_1.assert)(Array.isArray(definition));
28
+ (0, node_opcua_assert_1.assert)(Array.isArray(args));
29
+ (0, node_opcua_assert_1.assert)(definition.length === args.length);
30
+ (0, node_opcua_assert_1.assert)(definition.length >= 0);
31
+ // we only encode arguments by following the definition
32
+ for (let i = 0; i < definition.length; i++) {
33
+ const def = definition[i];
34
+ const value = args[i];
35
+ const encodeFunc = myfindBuiltInType(def.dataType).encode;
36
+ // assert((def.valueRank === -1) || (def.valueRank === 0));
37
+ // todo : handle -3 -2
38
+ const isArray = def.valueRank && (def.valueRank === 1 || def.valueRank !== -1);
39
+ if (isArray) {
40
+ ec.encodeArray(value, stream, encodeFunc);
41
+ }
42
+ else {
43
+ encodeFunc(value, stream);
44
+ }
45
+ }
46
+ }
47
+ exports.encode_ArgumentList = encode_ArgumentList;
48
+ function decode_ArgumentList(definition, stream) {
49
+ // istanbul ignore next
50
+ if (!Array.isArray(definition)) {
51
+ throw new Error("This BaseDataType cannot be decoded because it has no definition.\n" +
52
+ "Please construct a BaseDataType({definition : [{dataType: DataType.UInt32 }]});");
53
+ }
54
+ const args = [];
55
+ let value;
56
+ for (const def of definition) {
57
+ const decodeFunc = myfindBuiltInType(def.dataType).decode;
58
+ // xx assert(def.valueRank === -1 || def.valueRank==0);
59
+ const isArray = def.valueRank === 1 || def.valueRank === -1;
60
+ if (isArray) {
61
+ value = ec.decodeArray(stream, decodeFunc);
62
+ }
63
+ else {
64
+ value = decodeFunc(stream);
65
+ }
66
+ args.push(value);
67
+ }
68
+ return args;
69
+ }
70
+ exports.decode_ArgumentList = decode_ArgumentList;
71
+ function binaryStoreSize_ArgumentList(description, args) {
72
+ (0, node_opcua_assert_1.assert)(Array.isArray(description));
73
+ (0, node_opcua_assert_1.assert)(Array.isArray(args));
74
+ (0, node_opcua_assert_1.assert)(args.length === description.length);
75
+ const stream = new node_opcua_binary_stream_1.BinaryStreamSizeCalculator();
76
+ encode_ArgumentList(description, args, stream);
77
+ return stream.length;
78
+ }
79
+ exports.binaryStoreSize_ArgumentList = binaryStoreSize_ArgumentList;
80
+ function getMethodDeclaration_ArgumentList(addressSpace, objectId, methodId) {
81
+ // find object in address space
82
+ const obj = addressSpace.findNode(objectId);
83
+ if (!obj) {
84
+ // istanbul ignore next
85
+ doDebug && debugLog("cannot find node ", objectId.toString());
86
+ return { statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdUnknown };
87
+ }
88
+ let objectMethod = obj.getMethodById(methodId);
89
+ if (!objectMethod) {
90
+ // the method doesn't belong to the object, nevertheless
91
+ // the method can be called
92
+ objectMethod = addressSpace.findNode(methodId);
93
+ if (!objectMethod || objectMethod.nodeClass !== node_opcua_data_model_1.NodeClass.Method) {
94
+ warningLog("cannot find method with id", methodId.toString(), "object Id = ", objectId.toString());
95
+ return { statusCode: node_opcua_status_code_1.StatusCodes.BadMethodInvalid };
96
+ }
97
+ }
98
+ const methodDeclarationId = objectMethod.methodDeclarationId;
99
+ const methodDeclaration = addressSpace.findNode(methodDeclarationId);
100
+ if (!methodDeclaration) {
101
+ // return {statusCode: StatusCodes.BadMethodInvalid};
102
+ return { statusCode: node_opcua_status_code_1.StatusCodes.Good, methodDeclaration: objectMethod };
103
+ }
104
+ // istanbul ignore next
105
+ if (methodDeclaration.nodeClass !== node_opcua_data_model_1.NodeClass.Method) {
106
+ throw new Error("Expecting a Method here");
107
+ }
108
+ return { statusCode: node_opcua_status_code_1.StatusCodes.Good, methodDeclaration };
109
+ }
110
+ exports.getMethodDeclaration_ArgumentList = getMethodDeclaration_ArgumentList;
111
+ function checkValueRank(argDefinition, arg) {
112
+ const isArray = arg.arrayType === node_opcua_variant_2.VariantArrayType.Array;
113
+ const isMatrix = arg.arrayType === node_opcua_variant_2.VariantArrayType.Matrix;
114
+ if (argDefinition.valueRank > 0) {
115
+ if (argDefinition.valueRank === 1) {
116
+ if (!isArray) {
117
+ return false;
118
+ }
119
+ }
120
+ else {
121
+ if (!isMatrix) {
122
+ return false;
123
+ }
124
+ }
125
+ }
126
+ else if (argDefinition.valueRank === -1) {
127
+ // SCALAR
128
+ if (isArray || isMatrix) {
129
+ return false;
130
+ }
131
+ }
132
+ else if (argDefinition.valueRank === -2) {
133
+ // ANY
134
+ }
135
+ else if (argDefinition.valueRank === -3) {
136
+ // Scalar or OneDim
137
+ if (isMatrix) {
138
+ return false;
139
+ }
140
+ }
141
+ else if (argDefinition.valueRank === 0) {
142
+ // array or matrix
143
+ if (!isArray && !isMatrix) {
144
+ return false;
145
+ }
146
+ }
147
+ return true;
148
+ }
149
+ /**
150
+ * @private
151
+ */
152
+ function isArgumentValid(addressSpace, argDefinition, arg) {
153
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(argDefinition, "dataType"));
154
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(argDefinition, "valueRank"));
155
+ const argDefDataType = addressSpace.findDataType(argDefinition.dataType);
156
+ const argDataType = addressSpace.findDataType((0, node_opcua_nodeid_1.resolveNodeId)(arg.dataType));
157
+ // istanbul ignore next
158
+ if (!argDefDataType) {
159
+ debugLog("dataType ", argDefinition.dataType.toString(), "doesn't exist");
160
+ return false;
161
+ }
162
+ if (argDefinition.valueRank >= 0 && arg.dataType === node_opcua_variant_1.DataType.Null) {
163
+ // this is valid to receive an empty array ith DataType.Null;
164
+ return true;
165
+ }
166
+ if (!checkValueRank(argDefinition, arg)) {
167
+ return false;
168
+ }
169
+ // istanbul ignore next
170
+ if (!argDataType) {
171
+ doDebug && debugLog(" cannot find dataType ", arg.dataType, (0, node_opcua_nodeid_1.resolveNodeId)(arg.dataType));
172
+ doDebug && debugLog(" arg = ", arg.toString());
173
+ doDebug && debugLog(" def =", argDefinition.toString());
174
+ return false;
175
+ }
176
+ // istanbul ignore next
177
+ if (doDebug) {
178
+ doDebug && debugLog(" checking argDefDataType ", argDefDataType.toString());
179
+ doDebug && debugLog(" checking argDataType ", argDataType.toString());
180
+ }
181
+ if (argDataType.nodeId.value === argDefDataType.nodeId.value) {
182
+ return true;
183
+ }
184
+ // check that dataType is of the same type (derived )
185
+ if (argDefDataType.isSubtypeOf(argDataType)) {
186
+ // like argDefDataType IntegerId and argDataType Uint32
187
+ return true;
188
+ }
189
+ if (argDataType.isSubtypeOf(argDefDataType)) {
190
+ // like argDefDataType BaseDataType and argDataType any Type
191
+ return true;
192
+ }
193
+ // special case for Enumeration
194
+ if (arg.dataType === node_opcua_variant_1.DataType.Int32) {
195
+ const enumDataType = addressSpace.findDataType((0, node_opcua_nodeid_1.coerceNodeId)(node_opcua_constants_1.DataTypeIds.Enumeration));
196
+ if (argDefDataType.isSubtypeOf(enumDataType)) {
197
+ return true;
198
+ }
199
+ }
200
+ return false;
201
+ }
202
+ exports.isArgumentValid = isArgumentValid;
203
+ /**
204
+ * @method verifyArguments_ArgumentList
205
+ * @param addressSpace
206
+ * @param methodInputArguments
207
+ * @param inputArguments
208
+ * @return statusCode,inputArgumentResults
209
+ */
210
+ function verifyArguments_ArgumentList(addressSpace, methodInputArguments, inputArguments) {
211
+ const inputArgumentResults = methodInputArguments.map((methodInputArgument, index) => {
212
+ const argument = inputArguments[index];
213
+ if (!argument) {
214
+ return node_opcua_status_code_1.StatusCodes.BadNoData;
215
+ }
216
+ else if (!isArgumentValid(addressSpace, methodInputArgument, argument)) {
217
+ return node_opcua_status_code_1.StatusCodes.BadTypeMismatch;
218
+ }
219
+ else {
220
+ return node_opcua_status_code_1.StatusCodes.Good;
221
+ }
222
+ });
223
+ if (methodInputArguments.length > inputArguments.length) {
224
+ // istanbul ignore next
225
+ doDebug &&
226
+ debugLog("verifyArguments_ArgumentList " +
227
+ "\n The client did specify too many input arguments for the method. " +
228
+ "\n expected : " +
229
+ methodInputArguments.length +
230
+ "" +
231
+ "\n actual : " +
232
+ inputArguments.length);
233
+ return { inputArgumentResults, statusCode: node_opcua_status_code_1.StatusCodes.BadArgumentsMissing };
234
+ }
235
+ if (methodInputArguments.length < inputArguments.length) {
236
+ // istanbul ignore next
237
+ doDebug &&
238
+ debugLog(" verifyArguments_ArgumentList " +
239
+ "\n The client did not specify all of the input arguments for the method. " +
240
+ "\n expected : " +
241
+ methodInputArguments.length +
242
+ "" +
243
+ "\n actual : " +
244
+ inputArguments.length);
245
+ return { inputArgumentResults, statusCode: node_opcua_status_code_1.StatusCodes.BadTooManyArguments };
246
+ }
247
+ return {
248
+ inputArgumentResults,
249
+ statusCode: inputArgumentResults.includes(node_opcua_status_code_1.StatusCodes.BadTypeMismatch) || inputArgumentResults.includes(node_opcua_status_code_1.StatusCodes.BadOutOfRange)
250
+ ? node_opcua_status_code_1.StatusCodes.BadInvalidArgument
251
+ : node_opcua_status_code_1.StatusCodes.Good
252
+ };
253
+ }
254
+ exports.verifyArguments_ArgumentList = verifyArguments_ArgumentList;
255
+ //# sourceMappingURL=argument_list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"argument_list.js","sourceRoot":"","sources":["../../../source/helpers/argument_list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { CallMethodRequest } from "node-opcua-service-call";
2
+ import { CallMethodResultOptions } from "node-opcua-types";
3
+ import { ISessionContext, IAddressSpace } from "node-opcua-address-space-base";
4
+ type ResponseCallback<T> = (err: Error | null, result?: T) => void;
5
+ export declare function callMethodHelper(context: ISessionContext, addressSpace: IAddressSpace, callMethodRequest: CallMethodRequest, callback: ResponseCallback<CallMethodResultOptions>): void;
6
+ export {};
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.callMethodHelper = void 0;
4
+ /**
5
+ * @module node-opcua-address-space
6
+ */
7
+ const node_opcua_assert_1 = require("node-opcua-assert");
8
+ const node_opcua_data_model_1 = require("node-opcua-data-model");
9
+ const node_opcua_nodeid_1 = require("node-opcua-nodeid");
10
+ const node_opcua_status_code_1 = require("node-opcua-status-code");
11
+ const argument_list_1 = require("./argument_list");
12
+ const resolve_opaque_on_address_space_1 = require("./resolve_opaque_on_address_space");
13
+ function callMethodHelper(context, addressSpace, callMethodRequest, callback) {
14
+ const objectId = callMethodRequest.objectId;
15
+ const methodId = callMethodRequest.methodId;
16
+ const inputArguments = callMethodRequest.inputArguments || [];
17
+ (0, node_opcua_assert_1.assert)(objectId instanceof node_opcua_nodeid_1.NodeId);
18
+ (0, node_opcua_assert_1.assert)(methodId instanceof node_opcua_nodeid_1.NodeId);
19
+ const object = addressSpace.findNode(objectId);
20
+ if (!object) {
21
+ return callback(null, { statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdUnknown });
22
+ }
23
+ if (object.nodeClass !== node_opcua_data_model_1.NodeClass.Object && object.nodeClass !== node_opcua_data_model_1.NodeClass.ObjectType) {
24
+ return callback(null, { statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdInvalid });
25
+ }
26
+ const methodObj = addressSpace.findNode(methodId);
27
+ if (!methodObj) {
28
+ return callback(null, { statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdUnknown });
29
+ }
30
+ if (methodObj.nodeClass !== node_opcua_data_model_1.NodeClass.Method) {
31
+ return callback(null, { statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdInvalid });
32
+ }
33
+ const response1 = (0, argument_list_1.getMethodDeclaration_ArgumentList)(addressSpace, objectId, methodId);
34
+ if (response1.statusCode.isNotGood()) {
35
+ return callback(null, { statusCode: response1.statusCode });
36
+ }
37
+ const methodDeclaration = response1.methodDeclaration;
38
+ // verify input Parameters
39
+ const methodInputArguments = methodDeclaration.getInputArguments();
40
+ const response = (0, argument_list_1.verifyArguments_ArgumentList)(addressSpace, methodInputArguments, inputArguments);
41
+ if (response.statusCode.isNotGood()) {
42
+ return callback(null, response);
43
+ }
44
+ (0, resolve_opaque_on_address_space_1.resolveOpaqueOnAddressSpace)(addressSpace, inputArguments)
45
+ .then(() => {
46
+ methodObj.execute(object, inputArguments, context, (err, callMethodResponse) => {
47
+ var _a;
48
+ /* istanbul ignore next */
49
+ if (err) {
50
+ return callback(err);
51
+ }
52
+ if (!callMethodResponse) {
53
+ return callback(new Error("internal Error"));
54
+ }
55
+ callMethodResponse.inputArgumentResults =
56
+ callMethodResponse.inputArgumentResults || response.inputArgumentResults || [];
57
+ (0, node_opcua_assert_1.assert)(callMethodResponse.statusCode);
58
+ if ((_a = callMethodResponse.statusCode) === null || _a === void 0 ? void 0 : _a.isGood()) {
59
+ (0, node_opcua_assert_1.assert)(Array.isArray(callMethodResponse.outputArguments));
60
+ }
61
+ (0, node_opcua_assert_1.assert)(Array.isArray(callMethodResponse.inputArgumentResults));
62
+ (0, node_opcua_assert_1.assert)(callMethodResponse.inputArgumentResults.length === methodInputArguments.length);
63
+ const outputArguments = callMethodResponse.outputArguments || [];
64
+ (0, resolve_opaque_on_address_space_1.resolveOpaqueOnAddressSpace)(addressSpace, outputArguments)
65
+ .then(() => callback(null, callMethodResponse))
66
+ .catch(callback);
67
+ });
68
+ })
69
+ .catch((err) => callback(err));
70
+ }
71
+ exports.callMethodHelper = callMethodHelper;
72
+ //# sourceMappingURL=call_helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call_helpers.js","sourceRoot":"","sources":["../../../source/helpers/call_helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Int64 } from "node-opcua-basic-types";
2
+ import { EnumValueType } from "node-opcua-types";
3
+ import { EnumValueTypeOptionsLike } from "../address_space_ts";
4
+ export declare function coerceEnumValues(enumValues: EnumValueTypeOptionsLike[] | {
5
+ [key: string]: number | Int64;
6
+ }): EnumValueType[];
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.coerceEnumValues = void 0;
4
+ /**
5
+ * @module node-opcua-address-space
6
+ */
7
+ const node_opcua_assert_1 = require("node-opcua-assert");
8
+ const node_opcua_data_model_1 = require("node-opcua-data-model");
9
+ const node_opcua_types_1 = require("node-opcua-types");
10
+ function coerceEnumValues(enumValues) {
11
+ if (Array.isArray(enumValues)) {
12
+ //
13
+ return enumValues.map((en) => {
14
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(en, "value"));
15
+ (0, node_opcua_assert_1.assert)(Object.prototype.hasOwnProperty.call(en, "displayName"));
16
+ return new node_opcua_types_1.EnumValueType({
17
+ displayName: (0, node_opcua_data_model_1.coerceLocalizedText)(en.displayName),
18
+ value: en.value
19
+ });
20
+ });
21
+ }
22
+ else {
23
+ return coerceEnumValues(Object.entries(enumValues).map((entrie) => {
24
+ const [key, value] = entrie;
25
+ return new node_opcua_types_1.EnumValueType({
26
+ description: (0, node_opcua_data_model_1.coerceLocalizedText)(key),
27
+ displayName: (0, node_opcua_data_model_1.coerceLocalizedText)(key),
28
+ value
29
+ });
30
+ }));
31
+ }
32
+ }
33
+ exports.coerceEnumValues = coerceEnumValues;
34
+ //# sourceMappingURL=coerce_enum_value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coerce_enum_value.js","sourceRoot":"","sources":["../../../source/helpers/coerce_enum_value.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,yDAA2C;AAE3C,iEAA4D;AAC5D,uDAAiD;AAGjD,SAAgB,gBAAgB,CAAC,UAA0E;IACvG,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QAC3B,EAAE;QACF,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE;YAC9B,IAAA,0BAAM,EAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1D,IAAA,0BAAM,EAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;YAChE,OAAO,IAAI,gCAAa,CAAC;gBACrB,WAAW,EAAE,IAAA,2CAAmB,EAAC,EAAE,CAAC,WAAW,CAAC;gBAChD,KAAK,EAAE,EAAE,CAAC,KAAK;aAClB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;KACN;SAAM;QACH,OAAO,gBAAgB,CACnB,MAAM,CAAC,OAAO,CAAC,UAAsC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAuB,EAAE,EAAE;YACnF,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC;YAC5B,OAAO,IAAI,gCAAa,CAAC;gBACrB,WAAW,EAAE,IAAA,2CAAmB,EAAC,GAAG,CAAC;gBACrC,WAAW,EAAE,IAAA,2CAAmB,EAAC,GAAG,CAAC;gBACrC,KAAK;aACR,CAAC,CAAC;QACP,CAAC,CAAC,CACL,CAAC;KACL;AACL,CAAC;AAvBD,4CAuBC"}
@@ -0,0 +1,14 @@
1
+ import { NodeIdLike } from "node-opcua-nodeid";
2
+ import { BrowseDescriptionOptions, ReferenceDescription } from "node-opcua-types";
3
+ import { IAddressSpace, BaseNode, UAReference } from "node-opcua-address-space-base";
4
+ export declare function referenceTypeToString(addressSpace: IAddressSpace, referenceTypeId: NodeIdLike | null): string;
5
+ export declare function dumpReferenceDescription(addressSpace: IAddressSpace, referenceDescription: ReferenceDescription): void;
6
+ export declare function dumpReferenceDescriptions(addressSpace: IAddressSpace, referenceDescriptions: ReferenceDescription[]): void;
7
+ export declare function dumpBrowseDescription(node: BaseNode, _browseDescription: BrowseDescriptionOptions): void;
8
+ /**
9
+ * @method dumpReferences
10
+ * @param addressSpace {IAddressSpace}
11
+ * @param references {Array<Reference>|null}
12
+ * @static
13
+ */
14
+ export declare function dumpReferences(addressSpace: IAddressSpace, references: UAReference[]): void;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dumpReferences = exports.dumpBrowseDescription = exports.dumpReferenceDescriptions = exports.dumpReferenceDescription = exports.referenceTypeToString = void 0;
4
+ /**
5
+ * @module node-opcua-address-space
6
+ */
7
+ // tslint:disable:no-console
8
+ const chalk = require("chalk");
9
+ const node_opcua_assert_1 = require("node-opcua-assert");
10
+ const node_opcua_data_model_1 = require("node-opcua-data-model");
11
+ const node_opcua_types_1 = require("node-opcua-types");
12
+ const reference_impl_1 = require("../../src/reference_impl");
13
+ function referenceTypeToString(addressSpace, referenceTypeId) {
14
+ // istanbul ignore next
15
+ if (!referenceTypeId) {
16
+ return "<null> ";
17
+ }
18
+ else {
19
+ const referenceType = addressSpace.findNode(referenceTypeId);
20
+ return referenceTypeId.toString() + " " + referenceType.browseName.toString() + "/" + referenceType.inverseName.text;
21
+ }
22
+ }
23
+ exports.referenceTypeToString = referenceTypeToString;
24
+ function nodeIdInfo(addressSpace, nodeId) {
25
+ const obj = addressSpace.findNode(nodeId);
26
+ const name = obj ? obj.browseName.toString() : " <????>";
27
+ return nodeId.toString() + " [ " + name + " ]";
28
+ }
29
+ function dumpReferenceDescription(addressSpace, referenceDescription) {
30
+ (0, node_opcua_assert_1.assert)(referenceDescription.referenceTypeId); // must be known;
31
+ console.log(chalk.red("referenceDescription"));
32
+ console.log(" referenceTypeId : ", referenceTypeToString(addressSpace, referenceDescription.referenceTypeId));
33
+ console.log(" isForward : ", referenceDescription.isForward ? "true" : "false");
34
+ console.log(" nodeId : ", nodeIdInfo(addressSpace, referenceDescription.nodeId));
35
+ console.log(" browseName : ", referenceDescription.browseName.toString());
36
+ console.log(" nodeClass : ", referenceDescription.nodeClass.toString());
37
+ console.log(" typeDefinition : ", nodeIdInfo(addressSpace, referenceDescription.typeDefinition));
38
+ }
39
+ exports.dumpReferenceDescription = dumpReferenceDescription;
40
+ function dumpReferenceDescriptions(addressSpace, referenceDescriptions) {
41
+ referenceDescriptions.forEach((r) => dumpReferenceDescription(addressSpace, r));
42
+ }
43
+ exports.dumpReferenceDescriptions = dumpReferenceDescriptions;
44
+ function dumpBrowseDescription(node, _browseDescription) {
45
+ const browseDescription = new node_opcua_types_1.BrowseDescription(_browseDescription);
46
+ const addressSpace = node.addressSpace;
47
+ console.log(" Browse Node :");
48
+ if (browseDescription.nodeId) {
49
+ console.log(" nodeId : ", chalk.cyan(browseDescription.nodeId.toString()));
50
+ }
51
+ console.log(" nodeId : ", chalk.cyan(node.browseName.toString()), "(", node.nodeId.toString(), ")");
52
+ console.log(" referenceTypeId :", referenceTypeToString(addressSpace, browseDescription.referenceTypeId));
53
+ console.log(" browseDirection :", chalk.cyan(node_opcua_data_model_1.BrowseDirection[browseDescription.browseDirection]));
54
+ console.log(" includeSubType :", browseDescription.includeSubtypes ? "true" : "false");
55
+ console.log(" nodeClassMask :", browseDescription.nodeClassMask);
56
+ console.log(" resultMask :", browseDescription.resultMask);
57
+ }
58
+ exports.dumpBrowseDescription = dumpBrowseDescription;
59
+ /**
60
+ * @method dumpReferences
61
+ * @param addressSpace {IAddressSpace}
62
+ * @param references {Array<Reference>|null}
63
+ * @static
64
+ */
65
+ function dumpReferences(addressSpace, references) {
66
+ (0, node_opcua_assert_1.assert)(addressSpace);
67
+ for (const reference of references) {
68
+ const referenceType = (0, reference_impl_1.resolveReferenceType)(addressSpace, reference);
69
+ if (!referenceType) {
70
+ // unknown type ... this may happen when the address space is not fully build
71
+ return;
72
+ }
73
+ const dir = reference.isForward ? "(=>)" : "(<-)";
74
+ const objectName = nodeIdInfo(addressSpace, reference.nodeId);
75
+ console.log(" referenceType : ", dir, referenceType ? referenceType.browseName.toString() : reference.referenceType.toString(), " ", objectName);
76
+ }
77
+ }
78
+ exports.dumpReferences = dumpReferences;
79
+ //# sourceMappingURL=dump_tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dump_tools.js","sourceRoot":"","sources":["../../../source/helpers/dump_tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { BaseNode } from "node-opcua-address-space-base";
2
+ /**
3
+ * this method install the access right restriction on the given node and its children
4
+ * values will only be available to user with role Administrator or supervisor and
5
+ * with a signed and encrypted channel.
6
+ *
7
+ * @param node the node which permissions are to be adjusted
8
+ */
9
+ export declare function ensureObjectIsSecure(node: BaseNode): void;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ensureObjectIsSecure = void 0;
4
+ const node_opcua_data_model_1 = require("node-opcua-data-model");
5
+ const node_opcua_types_1 = require("node-opcua-types");
6
+ const session_context_1 = require("../session_context");
7
+ function isChannelSecure(channel) {
8
+ if (channel.securityMode === node_opcua_types_1.MessageSecurityMode.SignAndEncrypt) {
9
+ return true;
10
+ }
11
+ return false;
12
+ }
13
+ function newIsUserReadable(context) {
14
+ if (context) {
15
+ if (!context.session) {
16
+ // console.log(" context has no session", context);
17
+ return false;
18
+ }
19
+ if (!context.session.channel) {
20
+ // console.log(" context has no channel", context);
21
+ return false;
22
+ }
23
+ if (!isChannelSecure(context.session.channel)) {
24
+ return false;
25
+ }
26
+ return true;
27
+ }
28
+ return false;
29
+ }
30
+ /**
31
+ * make sure that the given ia node can only be read
32
+ * by Administrator user on a encrypted channel
33
+ * @param node
34
+
35
+ */
36
+ const restrictedPermissions = [
37
+ { roleId: session_context_1.WellKnownRoles.SecurityAdmin, permissions: node_opcua_data_model_1.allPermissions },
38
+ { roleId: session_context_1.WellKnownRoles.ConfigureAdmin, permissions: node_opcua_data_model_1.allPermissions },
39
+ { roleId: session_context_1.WellKnownRoles.Supervisor, permissions: node_opcua_data_model_1.allPermissions },
40
+ { roleId: session_context_1.WellKnownRoles.Operator, permissions: (0, node_opcua_data_model_1.makePermissionFlag)("Browse") },
41
+ { roleId: session_context_1.WellKnownRoles.Engineer, permissions: (0, node_opcua_data_model_1.makePermissionFlag)("Browse") },
42
+ { roleId: session_context_1.WellKnownRoles.Observer, permissions: (0, node_opcua_data_model_1.makePermissionFlag)("Browse") }
43
+ /*
44
+ { roleId: WellKnownRoles.Anonymous, permissions: makePermissionFlag("Browse") },
45
+ { roleId: WellKnownRoles.AuthenticatedUser, permissions: makePermissionFlag("Browse") },
46
+ */
47
+ ];
48
+ const restrictedAccessFlag = (0, node_opcua_data_model_1.makeAccessRestrictionsFlag)("SigningRequired | EncryptionRequired");
49
+ /**
50
+ * this method install the access right restriction on the given node and its children
51
+ * values will only be available to user with role Administrator or supervisor and
52
+ * with a signed and encrypted channel.
53
+ *
54
+ * @param node the node which permissions are to be adjusted
55
+ */
56
+ function ensureObjectIsSecure(node) {
57
+ node.setAccessRestrictions(restrictedAccessFlag);
58
+ if (node.nodeClass === node_opcua_data_model_1.NodeClass.Variable) {
59
+ // replaceMethod(node, "isUserReadable", newIsUserReadable);
60
+ const variable = node;
61
+ variable.setRolePermissions(restrictedPermissions);
62
+ }
63
+ if (node.nodeClass === node_opcua_data_model_1.NodeClass.Method) {
64
+ const method = node;
65
+ method.setRolePermissions(restrictedPermissions);
66
+ }
67
+ if (node.nodeClass === node_opcua_data_model_1.NodeClass.Object) {
68
+ const object = node;
69
+ object.setRolePermissions(restrictedPermissions);
70
+ }
71
+ const children = node.findReferencesExAsObject("Aggregates", node_opcua_data_model_1.BrowseDirection.Forward);
72
+ for (const child of children) {
73
+ ensureObjectIsSecure(child);
74
+ }
75
+ }
76
+ exports.ensureObjectIsSecure = ensureObjectIsSecure;
77
+ //# sourceMappingURL=ensure_secure_access.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure_secure_access.js","sourceRoot":"","sources":["../../../source/helpers/ensure_secure_access.ts"],"names":[],"mappings":";;;AAAA,iEAAmI;AACnI,uDAAuD;AAEvD,wDAAoD;AAEpD,SAAS,eAAe,CAAC,OAAqB;IAC1C,IAAI,OAAO,CAAC,YAAY,KAAK,sCAAmB,CAAC,cAAc,EAAE;QAC7D,OAAO,IAAI,CAAC;KACf;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CAAiB,OAAwB;IAC/D,IAAI,OAAO,EAAE;QACT,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YAClB,mDAAmD;YACnD,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE;YAC1B,mDAAmD;YACnD,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC3C,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;KACf;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;EAKE;AACF,MAAM,qBAAqB,GAAG;IAC1B,EAAE,MAAM,EAAE,gCAAc,CAAC,aAAa,EAAE,WAAW,EAAE,sCAAc,EAAE;IACrE,EAAE,MAAM,EAAE,gCAAc,CAAC,cAAc,EAAE,WAAW,EAAE,sCAAc,EAAE;IACtE,EAAE,MAAM,EAAE,gCAAc,CAAC,UAAU,EAAE,WAAW,EAAE,sCAAc,EAAE;IAClE,EAAE,MAAM,EAAE,gCAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAA,0CAAkB,EAAC,QAAQ,CAAC,EAAE;IAC9E,EAAE,MAAM,EAAE,gCAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAA,0CAAkB,EAAC,QAAQ,CAAC,EAAE;IAC9E,EAAE,MAAM,EAAE,gCAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAA,0CAAkB,EAAC,QAAQ,CAAC,EAAE;IAC9E;;;EAGF;CACD,CAAC;AACF,MAAM,oBAAoB,GAAG,IAAA,kDAA0B,EAAC,sCAAsC,CAAC,CAAC;AAChG;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAC,IAAc;IAC/C,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC,SAAS,KAAK,iCAAS,CAAC,QAAQ,EAAE;QACvC,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,IAAkB,CAAC;QACpC,QAAQ,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;KACtD;IACD,IAAI,IAAI,CAAC,SAAS,KAAK,iCAAS,CAAC,MAAM,EAAE;QACrC,MAAM,MAAM,GAAG,IAAgB,CAAC;QAChC,MAAM,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;KACpD;IACD,IAAI,IAAI,CAAC,SAAS,KAAK,iCAAS,CAAC,MAAM,EAAE;QACrC,MAAM,MAAM,GAAG,IAAgB,CAAC;QAChC,MAAM,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;KACpD;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,uCAAe,CAAC,OAAO,CAAC,CAAC;IACtF,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;QAC1B,oBAAoB,CAAC,KAAK,CAAC,CAAC;KAC/B;AACL,CAAC;AAnBD,oDAmBC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * transform optional into a map
3
+ *
4
+ * @example
5
+ * ```javascript
6
+ * const optionals = [ "A", "B", "C.D" ];
7
+ *
8
+ * const map = makeOptionalsMap(optionals);
9
+ * const map = {
10
+ * A: {}
11
+ * B: {}
12
+ * C: { D: {} }
13
+ * };
14
+ * ```
15
+ *
16
+ * @internal
17
+ */
18
+ export interface OptionalMap {
19
+ [key: string]: OptionalMap;
20
+ }
21
+ export declare function makeOptionalsMap(optionals?: string[] | null): OptionalMap;