@ytsaurus/ui 1.13.0 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (373) hide show
  1. package/build/cjs/shared/yt-types.d.ts +6 -0
  2. package/build/cjs/ui/common/yt-api-init.js +3 -1
  3. package/build/cjs/ui/common/yt-api-init.js.map +1 -1
  4. package/build/cjs/ui/constants/scheduling/index.d.ts +6 -7
  5. package/build/cjs/ui/constants/scheduling/index.js +7 -8
  6. package/build/cjs/ui/constants/scheduling/index.js.map +1 -1
  7. package/build/cjs/ui/pages/components/tabs/node/NodePage.js +1 -4
  8. package/build/cjs/ui/pages/components/tabs/node/NodePage.js.map +1 -1
  9. package/build/cjs/ui/pages/components/tabs/nodes/NodeCard/NodeCard.js +12 -16
  10. package/build/cjs/ui/pages/components/tabs/nodes/NodeCard/NodeCard.js.map +1 -1
  11. package/build/cjs/ui/pages/operations/OperationDetail/tabs/details/Runtime/Runtime.js +2 -5
  12. package/build/cjs/ui/pages/operations/OperationDetail/tabs/details/Runtime/Runtime.js.map +1 -1
  13. package/build/cjs/ui/pages/operations/OperationsList/OperationsListToolbar/OperationsListToolbar.js +1 -5
  14. package/build/cjs/ui/pages/operations/OperationsList/OperationsListToolbar/OperationsListToolbar.js.map +1 -1
  15. package/build/cjs/ui/pages/operations/selectors.d.ts +8 -7
  16. package/build/cjs/ui/pages/query-tracker/module/queries_list/selectors.d.ts +32 -28
  17. package/build/cjs/ui/pages/query-tracker/module/query/selectors.d.ts +8 -7
  18. package/build/cjs/ui/pages/query-tracker/module/settings/selector.d.ts +8 -7
  19. package/build/cjs/ui/pages/scheduling/Alerts.js +1 -1
  20. package/build/cjs/ui/pages/scheduling/Alerts.js.map +1 -1
  21. package/build/cjs/ui/pages/scheduling/Content/Content.js +2 -2
  22. package/build/cjs/ui/pages/scheduling/Content/Content.js.map +1 -1
  23. package/build/cjs/ui/pages/scheduling/Content/{SchedulingOperationsUpdater.d.ts → SchedulingExpandedPoolsUpdater.d.ts} +2 -2
  24. package/build/cjs/ui/pages/scheduling/Content/{SchedulingOperationsUpdater.js → SchedulingExpandedPoolsUpdater.js} +7 -8
  25. package/build/cjs/ui/pages/scheduling/Content/SchedulingExpandedPoolsUpdater.js.map +1 -0
  26. package/build/cjs/ui/pages/scheduling/Content/SchedulingResources.js +4 -3
  27. package/build/cjs/ui/pages/scheduling/Content/SchedulingResources.js.map +1 -1
  28. package/build/cjs/ui/pages/scheduling/Content/controls/ShareUsageBar.js +1 -1
  29. package/build/cjs/ui/pages/scheduling/Content/controls/ShareUsageBar.js.map +1 -1
  30. package/build/cjs/ui/pages/scheduling/Content/tabs/Details/Details.js +13 -8
  31. package/build/cjs/ui/pages/scheduling/Content/tabs/Details/Details.js.map +1 -1
  32. package/build/cjs/ui/pages/scheduling/Content/tabs/Overview/Overview.d.ts +12 -10
  33. package/build/cjs/ui/pages/scheduling/Content/tabs/Overview/Overview.js +30 -21
  34. package/build/cjs/ui/pages/scheduling/Content/tabs/Overview/Overview.js.map +1 -1
  35. package/build/cjs/ui/pages/scheduling/Content/tabs/SchedulingOperationsError/SchedulingOperationsError.js +2 -2
  36. package/build/cjs/ui/pages/scheduling/Content/tabs/SchedulingOperationsError/SchedulingOperationsError.js.map +1 -1
  37. package/build/cjs/ui/pages/scheduling/Content/tabs/ScherdulingOperataionsLoader/SchedulingOperationsLoader.js +2 -2
  38. package/build/cjs/ui/pages/scheduling/Content/tabs/ScherdulingOperataionsLoader/SchedulingOperationsLoader.js.map +1 -1
  39. package/build/cjs/ui/pages/scheduling/PoolQoutaEditor/PoolQuotaEditor.d.ts +0 -1
  40. package/build/cjs/ui/pages/scheduling/PoolQoutaEditor/PoolQuotaEditor.js +1 -3
  41. package/build/cjs/ui/pages/scheduling/PoolQoutaEditor/PoolQuotaEditor.js.map +1 -1
  42. package/build/cjs/ui/pages/scheduling/Scheduling/PoolEditorDialog/PoolEditorDialog.d.ts +24 -0
  43. package/build/cjs/ui/pages/scheduling/Scheduling/PoolEditorDialog/PoolEditorDialog.js +8 -19
  44. package/build/cjs/ui/pages/scheduling/Scheduling/PoolEditorDialog/PoolEditorDialog.js.map +1 -1
  45. package/build/cjs/ui/pages/scheduling/Scheduling/Scheduling.js +29 -48
  46. package/build/cjs/ui/pages/scheduling/Scheduling/Scheduling.js.map +1 -1
  47. package/build/cjs/ui/pages/scheduling/Scheduling/SchedulingTopRowContent.js +8 -4
  48. package/build/cjs/ui/pages/scheduling/Scheduling/SchedulingTopRowContent.js.map +1 -1
  49. package/build/cjs/ui/rum/constants.d.ts +5 -1
  50. package/build/cjs/ui/rum/constants.js +5 -2
  51. package/build/cjs/ui/rum/constants.js.map +1 -1
  52. package/build/cjs/ui/rum/rum-counter.js +1 -1
  53. package/build/cjs/ui/rum/rum-counter.js.map +1 -1
  54. package/build/cjs/ui/rum/rum-wrap-api.d.ts +95 -53
  55. package/build/cjs/ui/rum/rum-wrap-api.js +59 -56
  56. package/build/cjs/ui/rum/rum-wrap-api.js.map +1 -1
  57. package/build/cjs/ui/store/actions/components/node/node.js +6 -29
  58. package/build/cjs/ui/store/actions/components/node/node.js.map +1 -1
  59. package/build/cjs/ui/store/actions/operations/detail.js +1 -1
  60. package/build/cjs/ui/store/actions/operations/detail.js.map +1 -1
  61. package/build/cjs/ui/store/actions/scheduling/create-pool-dialog.js +3 -3
  62. package/build/cjs/ui/store/actions/scheduling/create-pool-dialog.js.map +1 -1
  63. package/build/cjs/ui/store/actions/scheduling/expanded-pools.d.ts +15 -0
  64. package/build/cjs/ui/store/actions/scheduling/expanded-pools.js +377 -0
  65. package/build/cjs/ui/store/actions/scheduling/expanded-pools.js.map +1 -0
  66. package/build/cjs/ui/store/actions/scheduling/scheduling-ts.d.ts +15 -1
  67. package/build/cjs/ui/store/actions/scheduling/scheduling-ts.js +226 -10
  68. package/build/cjs/ui/store/actions/scheduling/scheduling-ts.js.map +1 -1
  69. package/build/cjs/ui/store/actions/scheduling/scheduling.d.ts +1 -32
  70. package/build/cjs/ui/store/actions/scheduling/scheduling.js +12 -250
  71. package/build/cjs/ui/store/actions/scheduling/scheduling.js.map +1 -1
  72. package/build/cjs/ui/store/actions/system/masters.d.ts +7 -5
  73. package/build/cjs/ui/store/actions/system/masters.js +305 -235
  74. package/build/cjs/ui/store/actions/system/masters.js.map +1 -1
  75. package/build/cjs/ui/store/reducers/components/node/node.d.ts +0 -2
  76. package/build/cjs/ui/store/reducers/components/node/node.js +2 -5
  77. package/build/cjs/ui/store/reducers/components/node/node.js.map +1 -1
  78. package/build/cjs/ui/store/reducers/index.d.ts +9 -7
  79. package/build/cjs/ui/store/reducers/index.js +3 -4
  80. package/build/cjs/ui/store/reducers/index.js.map +1 -1
  81. package/build/cjs/ui/store/reducers/scheduling/expanded-pools.d.ts +28 -0
  82. package/build/cjs/ui/store/reducers/scheduling/{scheduling-operations.js → expanded-pools.js} +10 -8
  83. package/build/cjs/ui/store/reducers/scheduling/expanded-pools.js.map +1 -0
  84. package/build/cjs/ui/store/reducers/scheduling/index.d.ts +5 -93
  85. package/build/cjs/ui/store/reducers/scheduling/index.js +10 -136
  86. package/build/cjs/ui/store/reducers/scheduling/index.js.map +1 -1
  87. package/build/cjs/ui/store/reducers/scheduling/scheduling.d.ts +100 -0
  88. package/build/cjs/ui/store/reducers/scheduling/scheduling.js +139 -0
  89. package/build/cjs/ui/store/reducers/scheduling/scheduling.js.map +1 -0
  90. package/build/cjs/ui/store/reducers/scheduling/url-mapping.d.ts +13 -2
  91. package/build/cjs/ui/store/reducers/scheduling/url-mapping.js +31 -26
  92. package/build/cjs/ui/store/reducers/scheduling/url-mapping.js.map +1 -1
  93. package/build/cjs/ui/store/reducers/system/masters.d.ts +2 -2
  94. package/build/cjs/ui/store/reducers/system/masters.js.map +1 -1
  95. package/build/cjs/ui/store/selectors/accounts/account-usage.d.ts +64 -56
  96. package/build/cjs/ui/store/selectors/accounts/accounts-ts.d.ts +64 -56
  97. package/build/cjs/ui/store/selectors/chaos_cell_bundles/index.d.ts +88 -77
  98. package/build/cjs/ui/store/selectors/chyt/index.d.ts +56 -49
  99. package/build/cjs/ui/store/selectors/components/node/memory.d.ts +56 -49
  100. package/build/cjs/ui/store/selectors/components/node-maintenance-modal.d.ts +1712 -13
  101. package/build/cjs/ui/store/selectors/components/nodes/node-card.d.ts +8 -7
  102. package/build/cjs/ui/store/selectors/components/nodes/nodes/data.d.ts +16 -14
  103. package/build/cjs/ui/store/selectors/components/nodes/nodes/predicates.d.ts +48 -42
  104. package/build/cjs/ui/store/selectors/components/versions/versions_v2-ts.d.ts +859 -9
  105. package/build/cjs/ui/store/selectors/components/versions/versions_v2.d.ts +40 -35
  106. package/build/cjs/ui/store/selectors/global/index.d.ts +116 -102
  107. package/build/cjs/ui/store/selectors/global/index.js +2 -3
  108. package/build/cjs/ui/store/selectors/global/index.js.map +1 -1
  109. package/build/cjs/ui/store/selectors/global/supported-features.d.ts +48 -42
  110. package/build/cjs/ui/store/selectors/modals/errors.d.ts +8 -7
  111. package/build/cjs/ui/store/selectors/navigation/content/document.d.ts +8 -7
  112. package/build/cjs/ui/store/selectors/navigation/content/replicated-table.d.ts +24 -21
  113. package/build/cjs/ui/store/selectors/navigation/content/table-mount-config.d.ts +8 -7
  114. package/build/cjs/ui/store/selectors/navigation/content/table-ts.d.ts +32 -28
  115. package/build/cjs/ui/store/selectors/navigation/content/table.d.ts +56 -49
  116. package/build/cjs/ui/store/selectors/navigation/modals/attributes-editor.d.ts +24 -21
  117. package/build/cjs/ui/store/selectors/navigation/modals/remote-copy-modal.d.ts +8 -7
  118. package/build/cjs/ui/store/selectors/navigation/navigation.d.ts +16 -14
  119. package/build/cjs/ui/store/selectors/navigation/tabs/access-log.d.ts +8 -7
  120. package/build/cjs/ui/store/selectors/navigation/tabs/annotation.d.ts +8 -7
  121. package/build/cjs/ui/store/selectors/navigation/tabs/consumer.d.ts +8 -7
  122. package/build/cjs/ui/store/selectors/navigation/tabs/locks.d.ts +16 -14
  123. package/build/cjs/ui/store/selectors/navigation/tabs/queue.d.ts +16 -14
  124. package/build/cjs/ui/store/selectors/navigation/tabs/tablet-errors.d.ts +8 -7
  125. package/build/cjs/ui/store/selectors/operations/index.d.ts +96 -84
  126. package/build/cjs/ui/store/selectors/operations/jobs-monitor.d.ts +32 -28
  127. package/build/cjs/ui/store/selectors/operations/operation.d.ts +939 -79
  128. package/build/cjs/ui/store/selectors/operations/operation.js +2 -17
  129. package/build/cjs/ui/store/selectors/operations/operation.js.map +1 -1
  130. package/build/cjs/ui/store/selectors/operations/operations-list.d.ts +24 -21
  131. package/build/cjs/ui/store/selectors/operations/statistics-v2.d.ts +64 -56
  132. package/build/cjs/ui/store/selectors/scheduling/attributes-to-filter.d.ts +876 -0
  133. package/build/cjs/ui/store/selectors/scheduling/attributes-to-filter.js +75 -0
  134. package/build/cjs/ui/store/selectors/scheduling/attributes-to-filter.js.map +1 -0
  135. package/build/cjs/ui/store/selectors/scheduling/create-pool-dialog.d.ts +8 -7
  136. package/build/cjs/ui/store/selectors/scheduling/create-pool-dialog.js +3 -3
  137. package/build/cjs/ui/store/selectors/scheduling/create-pool-dialog.js.map +1 -1
  138. package/build/cjs/ui/store/selectors/scheduling/{scheduling-operations.d.ts → expanded-pools.d.ts} +14 -14
  139. package/build/cjs/ui/store/selectors/scheduling/expanded-pools.js +35 -0
  140. package/build/cjs/ui/store/selectors/scheduling/expanded-pools.js.map +1 -0
  141. package/build/cjs/ui/store/selectors/scheduling/index.d.ts +8 -7
  142. package/build/cjs/ui/store/selectors/scheduling/index.js +3 -3
  143. package/build/cjs/ui/store/selectors/scheduling/index.js.map +1 -1
  144. package/build/cjs/ui/store/selectors/scheduling/monitor.js +1 -1
  145. package/build/cjs/ui/store/selectors/scheduling/monitor.js.map +1 -1
  146. package/build/cjs/ui/store/selectors/scheduling/scheduling-pools.d.ts +2552 -3
  147. package/build/cjs/ui/store/selectors/scheduling/scheduling-pools.js +10 -18
  148. package/build/cjs/ui/store/selectors/scheduling/scheduling-pools.js.map +1 -1
  149. package/build/cjs/ui/store/selectors/scheduling/scheduling-ts.d.ts +4291 -45
  150. package/build/cjs/ui/store/selectors/scheduling/scheduling.d.ts +13739 -149
  151. package/build/cjs/ui/store/selectors/scheduling/scheduling.js +35 -30
  152. package/build/cjs/ui/store/selectors/scheduling/scheduling.js.map +1 -1
  153. package/build/cjs/ui/store/selectors/system/masters.d.ts +1 -1
  154. package/build/cjs/ui/store/selectors/system/masters.js.map +1 -1
  155. package/build/cjs/ui/store/selectors/tablet_cell_bundles/index.d.ts +120 -105
  156. package/build/cjs/ui/store/selectors/thor/support.d.ts +4294 -86
  157. package/build/cjs/ui/store/selectors/thor/support.js +76 -138
  158. package/build/cjs/ui/store/selectors/thor/support.js.map +1 -1
  159. package/build/cjs/ui/store/selectors/thor/support.spec.js +163 -68
  160. package/build/cjs/ui/store/selectors/thor/support.spec.js.map +1 -1
  161. package/build/cjs/ui/store/window-store.js +2 -2
  162. package/build/cjs/ui/store/window-store.js.map +1 -1
  163. package/build/cjs/ui/utils/batch.d.ts +54 -0
  164. package/build/cjs/ui/utils/batch.js +27 -0
  165. package/build/cjs/ui/utils/batch.js.map +1 -0
  166. package/build/cjs/ui/utils/scheduling/pool-child.d.ts +1 -1
  167. package/build/cjs/ui/utils/scheduling/pool-child.js +20 -9
  168. package/build/cjs/ui/utils/scheduling/pool-child.js.map +1 -1
  169. package/build/cjs/ui/utils/scheduling/scheduling.d.ts +2 -6
  170. package/build/cjs/ui/utils/scheduling/scheduling.js +3 -3
  171. package/build/cjs/ui/utils/scheduling/scheduling.js.map +1 -1
  172. package/build/cjs/ui/utils/utils.d.ts +3 -2
  173. package/build/cjs/ui/utils/utils.js +17 -9
  174. package/build/cjs/ui/utils/utils.js.map +1 -1
  175. package/build/esm/shared/yt-types.d.ts +6 -0
  176. package/build/esm/ui/common/yt-api-init.js +4 -2
  177. package/build/esm/ui/common/yt-api-init.js.map +1 -1
  178. package/build/esm/ui/constants/scheduling/index.d.ts +6 -7
  179. package/build/esm/ui/constants/scheduling/index.js +6 -7
  180. package/build/esm/ui/constants/scheduling/index.js.map +1 -1
  181. package/build/esm/ui/pages/components/tabs/node/NodePage.js +1 -4
  182. package/build/esm/ui/pages/components/tabs/node/NodePage.js.map +1 -1
  183. package/build/esm/ui/pages/components/tabs/nodes/NodeCard/NodeCard.js +12 -16
  184. package/build/esm/ui/pages/components/tabs/nodes/NodeCard/NodeCard.js.map +1 -1
  185. package/build/esm/ui/pages/operations/OperationDetail/tabs/details/Runtime/Runtime.js +3 -6
  186. package/build/esm/ui/pages/operations/OperationDetail/tabs/details/Runtime/Runtime.js.map +1 -1
  187. package/build/esm/ui/pages/operations/OperationsList/OperationsListToolbar/OperationsListToolbar.js +1 -5
  188. package/build/esm/ui/pages/operations/OperationsList/OperationsListToolbar/OperationsListToolbar.js.map +1 -1
  189. package/build/esm/ui/pages/operations/selectors.d.ts +8 -7
  190. package/build/esm/ui/pages/query-tracker/module/queries_list/selectors.d.ts +32 -28
  191. package/build/esm/ui/pages/query-tracker/module/query/selectors.d.ts +8 -7
  192. package/build/esm/ui/pages/query-tracker/module/settings/selector.d.ts +8 -7
  193. package/build/esm/ui/pages/scheduling/Alerts.js +1 -1
  194. package/build/esm/ui/pages/scheduling/Alerts.js.map +1 -1
  195. package/build/esm/ui/pages/scheduling/Content/Content.js +2 -2
  196. package/build/esm/ui/pages/scheduling/Content/Content.js.map +1 -1
  197. package/build/esm/ui/pages/scheduling/Content/{SchedulingOperationsUpdater.d.ts → SchedulingExpandedPoolsUpdater.d.ts} +2 -2
  198. package/build/esm/ui/pages/scheduling/Content/SchedulingExpandedPoolsUpdater.js +15 -0
  199. package/build/esm/ui/pages/scheduling/Content/SchedulingExpandedPoolsUpdater.js.map +1 -0
  200. package/build/esm/ui/pages/scheduling/Content/SchedulingResources.js +4 -3
  201. package/build/esm/ui/pages/scheduling/Content/SchedulingResources.js.map +1 -1
  202. package/build/esm/ui/pages/scheduling/Content/controls/ShareUsageBar.js +1 -1
  203. package/build/esm/ui/pages/scheduling/Content/controls/ShareUsageBar.js.map +1 -1
  204. package/build/esm/ui/pages/scheduling/Content/tabs/Details/Details.js +14 -9
  205. package/build/esm/ui/pages/scheduling/Content/tabs/Details/Details.js.map +1 -1
  206. package/build/esm/ui/pages/scheduling/Content/tabs/Overview/Overview.d.ts +12 -10
  207. package/build/esm/ui/pages/scheduling/Content/tabs/Overview/Overview.js +27 -18
  208. package/build/esm/ui/pages/scheduling/Content/tabs/Overview/Overview.js.map +1 -1
  209. package/build/esm/ui/pages/scheduling/Content/tabs/SchedulingOperationsError/SchedulingOperationsError.js +1 -1
  210. package/build/esm/ui/pages/scheduling/Content/tabs/SchedulingOperationsError/SchedulingOperationsError.js.map +1 -1
  211. package/build/esm/ui/pages/scheduling/Content/tabs/ScherdulingOperataionsLoader/SchedulingOperationsLoader.js +1 -1
  212. package/build/esm/ui/pages/scheduling/Content/tabs/ScherdulingOperataionsLoader/SchedulingOperationsLoader.js.map +1 -1
  213. package/build/esm/ui/pages/scheduling/PoolQoutaEditor/PoolQuotaEditor.d.ts +0 -1
  214. package/build/esm/ui/pages/scheduling/PoolQoutaEditor/PoolQuotaEditor.js +1 -3
  215. package/build/esm/ui/pages/scheduling/PoolQoutaEditor/PoolQuotaEditor.js.map +1 -1
  216. package/build/esm/ui/pages/scheduling/Scheduling/PoolEditorDialog/PoolEditorDialog.d.ts +24 -0
  217. package/build/esm/ui/pages/scheduling/Scheduling/PoolEditorDialog/PoolEditorDialog.js +8 -19
  218. package/build/esm/ui/pages/scheduling/Scheduling/PoolEditorDialog/PoolEditorDialog.js.map +1 -1
  219. package/build/esm/ui/pages/scheduling/Scheduling/Scheduling.js +26 -45
  220. package/build/esm/ui/pages/scheduling/Scheduling/Scheduling.js.map +1 -1
  221. package/build/esm/ui/pages/scheduling/Scheduling/SchedulingTopRowContent.js +6 -2
  222. package/build/esm/ui/pages/scheduling/Scheduling/SchedulingTopRowContent.js.map +1 -1
  223. package/build/esm/ui/rum/constants.d.ts +5 -1
  224. package/build/esm/ui/rum/constants.js +5 -2
  225. package/build/esm/ui/rum/constants.js.map +1 -1
  226. package/build/esm/ui/rum/rum-counter.js +1 -1
  227. package/build/esm/ui/rum/rum-counter.js.map +1 -1
  228. package/build/esm/ui/rum/rum-wrap-api.d.ts +95 -53
  229. package/build/esm/ui/rum/rum-wrap-api.js +58 -55
  230. package/build/esm/ui/rum/rum-wrap-api.js.map +1 -1
  231. package/build/esm/ui/store/actions/components/node/node.js +6 -28
  232. package/build/esm/ui/store/actions/components/node/node.js.map +1 -1
  233. package/build/esm/ui/store/actions/operations/detail.js +1 -1
  234. package/build/esm/ui/store/actions/operations/detail.js.map +1 -1
  235. package/build/esm/ui/store/actions/scheduling/create-pool-dialog.js +2 -2
  236. package/build/esm/ui/store/actions/scheduling/create-pool-dialog.js.map +1 -1
  237. package/build/esm/ui/store/actions/scheduling/expanded-pools.d.ts +15 -0
  238. package/build/esm/ui/store/actions/scheduling/expanded-pools.js +363 -0
  239. package/build/esm/ui/store/actions/scheduling/expanded-pools.js.map +1 -0
  240. package/build/esm/ui/store/actions/scheduling/scheduling-ts.d.ts +15 -1
  241. package/build/esm/ui/store/actions/scheduling/scheduling-ts.js +221 -13
  242. package/build/esm/ui/store/actions/scheduling/scheduling-ts.js.map +1 -1
  243. package/build/esm/ui/store/actions/scheduling/scheduling.d.ts +1 -32
  244. package/build/esm/ui/store/actions/scheduling/scheduling.js +16 -247
  245. package/build/esm/ui/store/actions/scheduling/scheduling.js.map +1 -1
  246. package/build/esm/ui/store/actions/system/masters.d.ts +7 -5
  247. package/build/esm/ui/store/actions/system/masters.js +303 -233
  248. package/build/esm/ui/store/actions/system/masters.js.map +1 -1
  249. package/build/esm/ui/store/reducers/components/node/node.d.ts +0 -2
  250. package/build/esm/ui/store/reducers/components/node/node.js +2 -5
  251. package/build/esm/ui/store/reducers/components/node/node.js.map +1 -1
  252. package/build/esm/ui/store/reducers/index.d.ts +9 -7
  253. package/build/esm/ui/store/reducers/index.js +3 -4
  254. package/build/esm/ui/store/reducers/index.js.map +1 -1
  255. package/build/esm/ui/store/reducers/scheduling/expanded-pools.d.ts +28 -0
  256. package/build/esm/ui/store/reducers/scheduling/{scheduling-operations.js → expanded-pools.js} +11 -9
  257. package/build/esm/ui/store/reducers/scheduling/expanded-pools.js.map +1 -0
  258. package/build/esm/ui/store/reducers/scheduling/index.d.ts +5 -93
  259. package/build/esm/ui/store/reducers/scheduling/index.js +9 -135
  260. package/build/esm/ui/store/reducers/scheduling/index.js.map +1 -1
  261. package/build/esm/ui/store/reducers/scheduling/scheduling.d.ts +100 -0
  262. package/build/esm/ui/store/reducers/scheduling/scheduling.js +132 -0
  263. package/build/esm/ui/store/reducers/scheduling/scheduling.js.map +1 -0
  264. package/build/esm/ui/store/reducers/scheduling/url-mapping.d.ts +13 -2
  265. package/build/esm/ui/store/reducers/scheduling/url-mapping.js +19 -14
  266. package/build/esm/ui/store/reducers/scheduling/url-mapping.js.map +1 -1
  267. package/build/esm/ui/store/reducers/system/masters.d.ts +2 -2
  268. package/build/esm/ui/store/reducers/system/masters.js.map +1 -1
  269. package/build/esm/ui/store/selectors/accounts/account-usage.d.ts +64 -56
  270. package/build/esm/ui/store/selectors/accounts/accounts-ts.d.ts +64 -56
  271. package/build/esm/ui/store/selectors/chaos_cell_bundles/index.d.ts +88 -77
  272. package/build/esm/ui/store/selectors/chyt/index.d.ts +56 -49
  273. package/build/esm/ui/store/selectors/components/node/memory.d.ts +56 -49
  274. package/build/esm/ui/store/selectors/components/node-maintenance-modal.d.ts +1712 -13
  275. package/build/esm/ui/store/selectors/components/nodes/node-card.d.ts +8 -7
  276. package/build/esm/ui/store/selectors/components/nodes/nodes/data.d.ts +16 -14
  277. package/build/esm/ui/store/selectors/components/nodes/nodes/predicates.d.ts +48 -42
  278. package/build/esm/ui/store/selectors/components/versions/versions_v2-ts.d.ts +859 -9
  279. package/build/esm/ui/store/selectors/components/versions/versions_v2.d.ts +40 -35
  280. package/build/esm/ui/store/selectors/global/index.d.ts +116 -102
  281. package/build/esm/ui/store/selectors/global/index.js +2 -3
  282. package/build/esm/ui/store/selectors/global/index.js.map +1 -1
  283. package/build/esm/ui/store/selectors/global/supported-features.d.ts +48 -42
  284. package/build/esm/ui/store/selectors/modals/errors.d.ts +8 -7
  285. package/build/esm/ui/store/selectors/navigation/content/document.d.ts +8 -7
  286. package/build/esm/ui/store/selectors/navigation/content/replicated-table.d.ts +24 -21
  287. package/build/esm/ui/store/selectors/navigation/content/table-mount-config.d.ts +8 -7
  288. package/build/esm/ui/store/selectors/navigation/content/table-ts.d.ts +32 -28
  289. package/build/esm/ui/store/selectors/navigation/content/table.d.ts +56 -49
  290. package/build/esm/ui/store/selectors/navigation/modals/attributes-editor.d.ts +24 -21
  291. package/build/esm/ui/store/selectors/navigation/modals/remote-copy-modal.d.ts +8 -7
  292. package/build/esm/ui/store/selectors/navigation/navigation.d.ts +16 -14
  293. package/build/esm/ui/store/selectors/navigation/tabs/access-log.d.ts +8 -7
  294. package/build/esm/ui/store/selectors/navigation/tabs/annotation.d.ts +8 -7
  295. package/build/esm/ui/store/selectors/navigation/tabs/consumer.d.ts +8 -7
  296. package/build/esm/ui/store/selectors/navigation/tabs/locks.d.ts +16 -14
  297. package/build/esm/ui/store/selectors/navigation/tabs/queue.d.ts +16 -14
  298. package/build/esm/ui/store/selectors/navigation/tabs/tablet-errors.d.ts +8 -7
  299. package/build/esm/ui/store/selectors/operations/index.d.ts +96 -84
  300. package/build/esm/ui/store/selectors/operations/jobs-monitor.d.ts +32 -28
  301. package/build/esm/ui/store/selectors/operations/operation.d.ts +939 -79
  302. package/build/esm/ui/store/selectors/operations/operation.js +2 -17
  303. package/build/esm/ui/store/selectors/operations/operation.js.map +1 -1
  304. package/build/esm/ui/store/selectors/operations/operations-list.d.ts +24 -21
  305. package/build/esm/ui/store/selectors/operations/statistics-v2.d.ts +64 -56
  306. package/build/esm/ui/store/selectors/scheduling/attributes-to-filter.d.ts +876 -0
  307. package/build/esm/ui/store/selectors/scheduling/attributes-to-filter.js +68 -0
  308. package/build/esm/ui/store/selectors/scheduling/attributes-to-filter.js.map +1 -0
  309. package/build/esm/ui/store/selectors/scheduling/create-pool-dialog.d.ts +8 -7
  310. package/build/esm/ui/store/selectors/scheduling/create-pool-dialog.js +3 -3
  311. package/build/esm/ui/store/selectors/scheduling/create-pool-dialog.js.map +1 -1
  312. package/build/esm/ui/store/selectors/scheduling/{scheduling-operations.d.ts → expanded-pools.d.ts} +14 -14
  313. package/build/esm/ui/store/selectors/scheduling/{scheduling-operations.js → expanded-pools.js} +13 -10
  314. package/build/esm/ui/store/selectors/scheduling/expanded-pools.js.map +1 -0
  315. package/build/esm/ui/store/selectors/scheduling/index.d.ts +8 -7
  316. package/build/esm/ui/store/selectors/scheduling/index.js +3 -3
  317. package/build/esm/ui/store/selectors/scheduling/index.js.map +1 -1
  318. package/build/esm/ui/store/selectors/scheduling/monitor.js +1 -1
  319. package/build/esm/ui/store/selectors/scheduling/monitor.js.map +1 -1
  320. package/build/esm/ui/store/selectors/scheduling/scheduling-pools.d.ts +2552 -3
  321. package/build/esm/ui/store/selectors/scheduling/scheduling-pools.js +11 -19
  322. package/build/esm/ui/store/selectors/scheduling/scheduling-pools.js.map +1 -1
  323. package/build/esm/ui/store/selectors/scheduling/scheduling-ts.d.ts +4291 -45
  324. package/build/esm/ui/store/selectors/scheduling/scheduling.d.ts +13739 -149
  325. package/build/esm/ui/store/selectors/scheduling/scheduling.js +34 -29
  326. package/build/esm/ui/store/selectors/scheduling/scheduling.js.map +1 -1
  327. package/build/esm/ui/store/selectors/system/masters.d.ts +1 -1
  328. package/build/esm/ui/store/selectors/system/masters.js.map +1 -1
  329. package/build/esm/ui/store/selectors/tablet_cell_bundles/index.d.ts +120 -105
  330. package/build/esm/ui/store/selectors/thor/support.d.ts +4294 -86
  331. package/build/esm/ui/store/selectors/thor/support.js +73 -134
  332. package/build/esm/ui/store/selectors/thor/support.js.map +1 -1
  333. package/build/esm/ui/store/selectors/thor/support.spec.js +164 -69
  334. package/build/esm/ui/store/selectors/thor/support.spec.js.map +1 -1
  335. package/build/esm/ui/store/window-store.js +1 -1
  336. package/build/esm/ui/store/window-store.js.map +1 -1
  337. package/build/esm/ui/utils/batch.d.ts +54 -0
  338. package/build/esm/ui/utils/batch.js +19 -0
  339. package/build/esm/ui/utils/batch.js.map +1 -0
  340. package/build/esm/ui/utils/scheduling/pool-child.d.ts +1 -1
  341. package/build/esm/ui/utils/scheduling/pool-child.js +20 -9
  342. package/build/esm/ui/utils/scheduling/pool-child.js.map +1 -1
  343. package/build/esm/ui/utils/scheduling/scheduling.d.ts +2 -6
  344. package/build/esm/ui/utils/scheduling/scheduling.js +3 -3
  345. package/build/esm/ui/utils/scheduling/scheduling.js.map +1 -1
  346. package/build/esm/ui/utils/utils.d.ts +3 -2
  347. package/build/esm/ui/utils/utils.js +17 -9
  348. package/build/esm/ui/utils/utils.js.map +1 -1
  349. package/dist/public/build/assets-manifest.json +7 -7
  350. package/dist/public/build/js/main.64fccb27.js +3 -0
  351. package/dist/public/build/js/{main.9d592639.js.map → main.64fccb27.js.map} +1 -1
  352. package/dist/public/build/js/{runtime.9491563b.js → runtime.fd8cf219.js} +2 -2
  353. package/dist/public/build/js/{runtime.9491563b.js.map → runtime.fd8cf219.js.map} +1 -1
  354. package/dist/public/build/manifest.json +4 -4
  355. package/package.json +2 -2
  356. package/build/cjs/ui/pages/scheduling/Content/SchedulingOperationsUpdater.js.map +0 -1
  357. package/build/cjs/ui/store/actions/scheduling/scheduling-operations.d.ts +0 -15
  358. package/build/cjs/ui/store/actions/scheduling/scheduling-operations.js +0 -280
  359. package/build/cjs/ui/store/actions/scheduling/scheduling-operations.js.map +0 -1
  360. package/build/cjs/ui/store/reducers/scheduling/scheduling-operations.d.ts +0 -19
  361. package/build/cjs/ui/store/reducers/scheduling/scheduling-operations.js.map +0 -1
  362. package/build/cjs/ui/store/selectors/scheduling/scheduling-operations.js +0 -32
  363. package/build/cjs/ui/store/selectors/scheduling/scheduling-operations.js.map +0 -1
  364. package/build/esm/ui/pages/scheduling/Content/SchedulingOperationsUpdater.js +0 -16
  365. package/build/esm/ui/pages/scheduling/Content/SchedulingOperationsUpdater.js.map +0 -1
  366. package/build/esm/ui/store/actions/scheduling/scheduling-operations.d.ts +0 -15
  367. package/build/esm/ui/store/actions/scheduling/scheduling-operations.js +0 -267
  368. package/build/esm/ui/store/actions/scheduling/scheduling-operations.js.map +0 -1
  369. package/build/esm/ui/store/reducers/scheduling/scheduling-operations.d.ts +0 -19
  370. package/build/esm/ui/store/reducers/scheduling/scheduling-operations.js.map +0 -1
  371. package/build/esm/ui/store/selectors/scheduling/scheduling-operations.js.map +0 -1
  372. package/dist/public/build/js/main.9d592639.js +0 -3
  373. /package/dist/public/build/js/{main.9d592639.js.LICENSE.txt → main.64fccb27.js.LICENSE.txt} +0 -0
@@ -1,18 +1,17 @@
1
1
  import _typeof from "@babel/runtime/helpers/typeof";
2
- import _map from "lodash/map";
3
- import hammer from '@ytsaurus/interface-helpers/lib/hammer';
4
2
  import { createSelector } from 'reselect';
3
+ import map_ from 'lodash/map';
4
+ import isEmpty_ from 'lodash/isEmpty';
5
+ import every_ from 'lodash/every';
6
+
7
+ // @ts-ignore
8
+ import hammer from '@ytsaurus/interface-helpers/lib/hammer';
5
9
  export var _LOCAL_ARCADIA_VERSION = '(development)';
6
- export var _DEV_PATCH_NUMBER = '0';
7
- var STABLE = 'stable';
8
- var PRESTABLE = 'prestable';
9
- var GREATER = 'greater';
10
- var SMALLER = 'smaller';
11
10
  function versionToArray(version, build) {
12
11
  var VERSION_DELIMITER = '.';
13
12
  var VERSION_CHUNK_COUNT = 3;
14
13
  var VERSION_CHUNK_PLACEHOLDER = 0;
15
- var versionArray = _map(version.split(VERSION_DELIMITER), function (subversion) {
14
+ var versionArray = map_(version.split(VERSION_DELIMITER), function (subversion) {
16
15
  return parseInt(subversion, 10);
17
16
  });
18
17
  while (versionArray.length < VERSION_CHUNK_COUNT) {
@@ -34,9 +33,9 @@ function versionToArray(version, build) {
34
33
  */
35
34
  export function _compareVersions(comparator, versionA, versionB) {
36
35
  if (versionA === versionB) {
37
- return comparator === GREATER;
36
+ return comparator === 'greater';
38
37
  }
39
- return comparator === GREATER ? hammer.utils.compareVectors(versionToArray(versionA), versionToArray(versionB)) >= 0 : hammer.utils.compareVectors(versionToArray(versionA), versionToArray(versionB)) < 0;
38
+ return comparator === 'greater' ? hammer.utils.compareVectors(versionToArray(versionA), versionToArray(versionB)) >= 0 : hammer.utils.compareVectors(versionToArray(versionA), versionToArray(versionB)) < 0;
40
39
  }
41
40
 
42
41
  /**
@@ -50,143 +49,97 @@ export function _versionInInterval(version, versionInterval) {
50
49
  var supported;
51
50
  if (_typeof(versionInterval) === 'object') {
52
51
  supported = Object.keys(versionInterval).every(function (comparator) {
53
- if (!(comparator === GREATER || comparator === SMALLER)) {
52
+ if (!(comparator === 'greater' || comparator === 'smaller')) {
54
53
  throw new Error('thor.support: feature description has unknown comparator "' + comparator + '",' + ' cannot check support.');
55
54
  }
56
- return _compareVersions(comparator, version, versionInterval[comparator]);
55
+ var key = comparator;
56
+ return _compareVersions(comparator, version, versionInterval[key]);
57
57
  });
58
58
  } else {
59
- supported = _compareVersions(GREATER, version, versionInterval);
59
+ supported = _compareVersions('greater', version, versionInterval);
60
60
  }
61
61
  return supported;
62
62
  }
63
63
  function getVersionAndBuild(version) {
64
- var parsedVersion = version && version.match(/(\d+)\.(\d+)\.(\d+)/);
64
+ var parsedVersion = version === null || version === void 0 ? void 0 : version.match(/(\d+)\.(\d+)\.(\d+)/);
65
65
  var parsedBuild;
66
66
  if (parsedVersion) {
67
- parsedVersion = parsedVersion[0];
68
- parsedBuild = version.substring(parsedVersion.length);
69
- return [parsedVersion, parsedBuild];
67
+ var majorMinorPatch = parsedVersion[0];
68
+ parsedBuild = version === null || version === void 0 ? void 0 : version.substring(parsedVersion.length);
69
+ return [majorMinorPatch, parsedBuild];
70
70
  }
71
+ return undefined;
71
72
  }
72
- function extractPatchNumber(version) {
73
- var parsedVersion = version && version.match(/(\d+)\.(\d+)\.(\d+)/);
74
- return parsedVersion && parsedVersion[3];
75
- }
76
- var rawProxyVersion = function rawProxyVersion(state) {
73
+ var getRawProxyVersion = function getRawProxyVersion(state) {
77
74
  return state.global.version;
78
75
  };
79
- var rawSchedulerVersion = function rawSchedulerVersion(state) {
76
+ var getRawSchedulerVersion = function getRawSchedulerVersion(state) {
80
77
  return state.global.schedulerVersion;
81
78
  };
82
- var rawMasterVersion = function rawMasterVersion(state) {
79
+ var getRawMasterVersion = function getRawMasterVersion(state) {
83
80
  return state.global.masterVersion;
84
81
  };
85
- export var getProxyVersion = createSelector(rawProxyVersion, getVersionAndBuild);
86
- var proxyPatchNumber = createSelector(rawProxyVersion, extractPatchNumber);
87
- export var getSchedulerVersion = createSelector(rawSchedulerVersion, getVersionAndBuild);
88
- export var getMasterVersion = createSelector(rawMasterVersion, getVersionAndBuild);
89
- var features = createSelector([getProxyVersion, getSchedulerVersion, getMasterVersion], function (proxy, scheduler, master) {
90
- return {
91
- newSchedulingAttributes: {
92
- prestable: '20.2',
93
- component: scheduler
94
- },
95
- newOperationStarvationStatus: {
96
- prestable: '21.2.8084183',
97
- component: scheduler
98
- },
99
- transferPoolQuota: {
100
- prestable: '21.3',
101
- component: proxy
102
- },
103
- schedulingOperationsPerPool: {
104
- prestable: '21.3.8724602',
105
- component: scheduler
106
- },
107
- operationAlertEvents: {
108
- prestable: '22.1.9091274',
109
- component: scheduler
110
- },
111
- ytTvmApi: {
112
- prestable: '21.3',
113
- component: proxy
114
- },
115
- operationsPoolTreeFilter: {
116
- prestable: '22.1.9091043',
117
- component: proxy
118
- },
119
- fieldsFilter: {
120
- prestable: '22.1.9091155',
121
- component: scheduler
122
- },
123
- effectiveExpiration: {
124
- prestable: '23.1.11146445',
125
- component: master
126
- },
127
- clusterNodeVersion: {
128
- prestable: '23.2'
129
- },
130
- nodeMaintenanceApi: {
131
- prestable: '23.1.11106567',
132
- component: proxy
133
- }
134
- };
135
- });
136
- export var _isFeatureSupported = function _isFeatureSupported(rawProxyVersion, proxyPatch, features) {
82
+ var FEATURES = {
83
+ fieldsFilter: {
84
+ scheduler: '22.1.9091155'
85
+ },
86
+ effectiveExpiration: {
87
+ master: '23.1.11146445'
88
+ },
89
+ clusterNodeVersion: {
90
+ proxy: '23.2.0'
91
+ },
92
+ nodeMaintenanceApi: {
93
+ proxy: '23.1.11106567'
94
+ },
95
+ schedulingChildrenByPool: {
96
+ scheduler: '23.1.11146742'
97
+ }
98
+ };
99
+ export function _isFeatureSupported(rawVersions, features) {
137
100
  return function (featureName) {
138
- // yt-local in arcadia is meant to be of the freshest version
139
- if (rawProxyVersion === _LOCAL_ARCADIA_VERSION || proxyPatch === _DEV_PATCH_NUMBER) {
140
- return true;
141
- }
142
101
  function failFeature(message) {
143
102
  console.warn("thor.support \"".concat(featureName, "\" ").concat(message));
144
103
  return false;
145
104
  }
146
- if (!Object.hasOwnProperty.call(features, featureName)) {
147
- return failFeature('feature is unknown, cannot check support.');
105
+ var featureVersions = features[featureName];
106
+ if (!featureVersions) {
107
+ return failFeature("".concat(featureName, " is unknown, cannot check support."));
108
+ }
109
+ if (isEmpty_(featureVersions)) {
110
+ return failFeature('feature component version is unknown, cannot check support.');
148
111
  }
149
- var feature = features[featureName];
150
- if (typeof feature === 'function') {
151
- return feature();
152
- } else {
153
- var componentVersion = feature.component;
154
- if (!componentVersion) {
155
- return failFeature('feature component version is unknown, cannot check support.');
112
+ return every_(featureVersions, function (value, k) {
113
+ var key = k;
114
+ var rawVersion = rawVersions[key];
115
+
116
+ // yt-local in arcadia is meant to be of the freshest version
117
+ if (rawVersion === _LOCAL_ARCADIA_VERSION) {
118
+ return true;
119
+ }
120
+ if (!value) {
121
+ return failFeature("feature version of '".concat(key, "' is unknown, connot check support"));
156
122
  }
157
- var currentBranch = componentVersion[1].indexOf('-' + STABLE) === 0 ? STABLE : PRESTABLE;
158
- var featureVersionInterval = feature[currentBranch] || feature[PRESTABLE];
159
- if (!featureVersionInterval) {
160
- return failFeature("feature version for branch \"".concat(currentBranch, "\" or branch \"").concat(PRESTABLE, "\" is unknown, cannot check support."));
123
+ var buildVersion = getVersionAndBuild(rawVersion);
124
+ if (!buildVersion) {
125
+ return failFeature("version of '".concat(key, "' component is unknown, cannot check support."));
161
126
  }
162
- if (Array.isArray(featureVersionInterval)) {
163
- return featureVersionInterval.some(function (interval) {
164
- return _versionInInterval(componentVersion[0], interval);
127
+ if (Array.isArray(value)) {
128
+ return value.some(function (item) {
129
+ return _versionInInterval(buildVersion[0], item);
165
130
  });
166
131
  } else {
167
- return _versionInInterval(componentVersion[0], featureVersionInterval);
132
+ return _versionInInterval(buildVersion[0], value);
168
133
  }
169
- }
134
+ });
170
135
  };
171
- };
172
- export var isSupportedSelector = createSelector([rawProxyVersion, proxyPatchNumber, features], _isFeatureSupported);
173
- export var isSupportedOperationStarvationStatus = createSelector([rawSchedulerVersion, isSupportedSelector], function (rawVersion, isSupported) {
174
- return rawVersion && isSupported('newOperationStarvationStatus');
175
- });
176
- export var isSupportedTransferPoolQuota = createSelector([isSupportedSelector], function (isSupported) {
177
- return isSupported('transferPoolQuota');
178
- });
179
- export var isSupportedSchedulingOperationsPerPool = createSelector([isSupportedSelector], function (isSupported) {
180
- return isSupported('schedulingOperationsPerPool');
181
- });
182
- export var isSupportedOperationAlertEvents = createSelector([isSupportedSelector], function (isSupported) {
183
- return isSupported('operationAlertEvents');
184
- });
185
- export var isSupportedOperationsFilterByPoolTree = createSelector([isSupportedSelector], function (isSupported) {
186
- return isSupported('operationsPoolTreeFilter');
187
- });
188
- export var isSupportedFieldsFilter = createSelector([isSupportedSelector], function (isSupported) {
189
- return isSupported('fieldsFilter');
136
+ }
137
+ export var isSupportedSelector = createSelector([getRawProxyVersion, getRawSchedulerVersion, getRawMasterVersion], function (proxy, scheduler, master) {
138
+ return _isFeatureSupported({
139
+ proxy: proxy,
140
+ scheduler: scheduler,
141
+ master: master
142
+ }, FEATURES);
190
143
  });
191
144
  export var isSupportedEffectiveExpiration = createSelector([isSupportedSelector], function (isSupported) {
192
145
  return isSupported('effectiveExpiration');
@@ -197,21 +150,7 @@ export var isSupportedClusterNodeForVersions = createSelector([isSupportedSelect
197
150
  export var isSupportedNodeMaintenanceApi = createSelector([isSupportedSelector], function (isSupported) {
198
151
  return isSupported('nodeMaintenanceApi');
199
152
  });
200
-
201
- /**
202
- This function function is recommended for usage inside utils and old knockout components, where it is difficult
203
- to pass state, since it needs to be passed through many function calls or is separated from the Redux data flow.
204
- When you are inside actions/connect-ed React component, you are strongly encouraged to use isSupportedSelector
205
- directly, since it is guaranteed to use correct state.
206
- Within reducer it's better to use isSupported function passed from within action, because isSupportedSelector works
207
- on the global state, while in reducer we have an access to its local part.
208
-
209
- @Deprecated
210
- */
211
- var isSupportedGlobal = function isSupportedGlobal(featureName) {
212
- return isSupportedSelector(window.store.getState())(featureName);
213
- };
214
- export function isSupportedYtTvmAPIGlobal() {
215
- return isSupportedGlobal('ytTvmApi');
216
- }
153
+ export var isSupportedSchedulingChildrenByPool = createSelector([isSupportedSelector], function (isSupported) {
154
+ return isSupported('schedulingChildrenByPool');
155
+ });
217
156
  // #sourceMappingURL=support.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["hammer","createSelector","_LOCAL_ARCADIA_VERSION","_DEV_PATCH_NUMBER","STABLE","PRESTABLE","GREATER","SMALLER","versionToArray","version","build","VERSION_DELIMITER","VERSION_CHUNK_COUNT","VERSION_CHUNK_PLACEHOLDER","versionArray","_map","split","subversion","parseInt","length","push","_compareVersions","comparator","versionA","versionB","utils","compareVectors","_versionInInterval","versionInterval","supported","_typeof","Object","keys","every","Error","getVersionAndBuild","parsedVersion","match","parsedBuild","substring","extractPatchNumber","rawProxyVersion","state","global","rawSchedulerVersion","schedulerVersion","rawMasterVersion","masterVersion","getProxyVersion","proxyPatchNumber","getSchedulerVersion","getMasterVersion","features","proxy","scheduler","master","newSchedulingAttributes","prestable","component","newOperationStarvationStatus","transferPoolQuota","schedulingOperationsPerPool","operationAlertEvents","ytTvmApi","operationsPoolTreeFilter","fieldsFilter","effectiveExpiration","clusterNodeVersion","nodeMaintenanceApi","_isFeatureSupported","proxyPatch","featureName","failFeature","message","console","warn","concat","hasOwnProperty","call","feature","componentVersion","currentBranch","indexOf","featureVersionInterval","Array","isArray","some","interval","isSupportedSelector","isSupportedOperationStarvationStatus","rawVersion","isSupported","isSupportedTransferPoolQuota","isSupportedSchedulingOperationsPerPool","isSupportedOperationAlertEvents","isSupportedOperationsFilterByPoolTree","isSupportedFieldsFilter","isSupportedEffectiveExpiration","isSupportedClusterNodeForVersions","isSupportedNodeMaintenanceApi","isSupportedGlobal","window","store","getState","isSupportedYtTvmAPIGlobal"],"sources":["support.js"],"sourcesContent":["import hammer from '@ytsaurus/interface-helpers/lib/hammer';\nimport _ from 'lodash';\nimport {createSelector} from 'reselect';\n\nexport const _LOCAL_ARCADIA_VERSION = '(development)';\nexport const _DEV_PATCH_NUMBER = '0';\nconst STABLE = 'stable';\nconst PRESTABLE = 'prestable';\nconst GREATER = 'greater';\nconst SMALLER = 'smaller';\n\nfunction versionToArray(version, build) {\n const VERSION_DELIMITER = '.';\n const VERSION_CHUNK_COUNT = 3;\n const VERSION_CHUNK_PLACEHOLDER = 0;\n\n const versionArray = _.map(version.split(VERSION_DELIMITER), (subversion) => {\n return parseInt(subversion, 10);\n });\n\n while (versionArray.length < VERSION_CHUNK_COUNT) {\n versionArray.push(VERSION_CHUNK_PLACEHOLDER);\n }\n\n if (build) {\n versionArray.push(build);\n }\n\n return versionArray;\n}\n\n/**\n * Returns true if versionA >= versionB and comparator === 'greater'\n * Returns true if versionA < versionB and comparator === 'smaller'\n * @param {String} comparator - 'greater', 'smaller'\n * @param {String} versionA\n * @param {String} versionB\n * @returns {boolean}\n */\nexport function _compareVersions(comparator, versionA, versionB) {\n if (versionA === versionB) {\n return comparator === GREATER;\n }\n\n return comparator === GREATER\n ? hammer.utils.compareVectors(versionToArray(versionA), versionToArray(versionB)) >= 0\n : hammer.utils.compareVectors(versionToArray(versionA), versionToArray(versionB)) < 0;\n}\n\n/**\n * Determines wheter a given version belongs to a versionInterval [a, b)\n * Left end included, right end excluded (intuitive limitations - features are supported starting from a specific build)\n * @param {String} version\n * @param {String|Object} versionInterval\n * @returns {boolean}\n */\nexport function _versionInInterval(version, versionInterval) {\n let supported;\n\n if (typeof versionInterval === 'object') {\n supported = Object.keys(versionInterval).every((comparator) => {\n if (!(comparator === GREATER || comparator === SMALLER)) {\n throw new Error(\n 'thor.support: feature description has unknown comparator \"' +\n comparator +\n '\",' +\n ' cannot check support.',\n );\n }\n return _compareVersions(comparator, version, versionInterval[comparator]);\n });\n } else {\n supported = _compareVersions(GREATER, version, versionInterval);\n }\n\n return supported;\n}\n\nfunction getVersionAndBuild(version) {\n let parsedVersion = version && version.match(/(\\d+)\\.(\\d+)\\.(\\d+)/);\n let parsedBuild;\n\n if (parsedVersion) {\n parsedVersion = parsedVersion[0];\n parsedBuild = version.substring(parsedVersion.length);\n\n return [parsedVersion, parsedBuild];\n }\n}\n\nfunction extractPatchNumber(version) {\n const parsedVersion = version && version.match(/(\\d+)\\.(\\d+)\\.(\\d+)/);\n return parsedVersion && parsedVersion[3];\n}\n\nconst rawProxyVersion = (state) => state.global.version;\nconst rawSchedulerVersion = (state) => state.global.schedulerVersion;\nconst rawMasterVersion = (state) => state.global.masterVersion;\nexport const getProxyVersion = createSelector(rawProxyVersion, getVersionAndBuild);\nconst proxyPatchNumber = createSelector(rawProxyVersion, extractPatchNumber);\nexport const getSchedulerVersion = createSelector(rawSchedulerVersion, getVersionAndBuild);\nexport const getMasterVersion = createSelector(rawMasterVersion, getVersionAndBuild);\n\nconst features = createSelector(\n [getProxyVersion, getSchedulerVersion, getMasterVersion],\n (proxy, scheduler, master) => {\n return {\n newSchedulingAttributes: {\n prestable: '20.2',\n component: scheduler,\n },\n newOperationStarvationStatus: {\n prestable: '21.2.8084183',\n component: scheduler,\n },\n transferPoolQuota: {\n prestable: '21.3',\n component: proxy,\n },\n schedulingOperationsPerPool: {\n prestable: '21.3.8724602',\n component: scheduler,\n },\n operationAlertEvents: {\n prestable: '22.1.9091274',\n component: scheduler,\n },\n ytTvmApi: {\n prestable: '21.3',\n component: proxy,\n },\n operationsPoolTreeFilter: {\n prestable: '22.1.9091043',\n component: proxy,\n },\n fieldsFilter: {\n prestable: '22.1.9091155',\n component: scheduler,\n },\n effectiveExpiration: {\n prestable: '23.1.11146445',\n component: master,\n },\n clusterNodeVersion: {\n prestable: '23.2',\n },\n nodeMaintenanceApi: {\n prestable: '23.1.11106567',\n component: proxy,\n },\n };\n },\n);\n\nexport const _isFeatureSupported = (rawProxyVersion, proxyPatch, features) => (featureName) => {\n // yt-local in arcadia is meant to be of the freshest version\n if (rawProxyVersion === _LOCAL_ARCADIA_VERSION || proxyPatch === _DEV_PATCH_NUMBER) {\n return true;\n }\n\n function failFeature(message) {\n console.warn(`thor.support \"${featureName}\" ${message}`);\n return false;\n }\n\n if (!Object.hasOwnProperty.call(features, featureName)) {\n return failFeature('feature is unknown, cannot check support.');\n }\n\n const feature = features[featureName];\n\n if (typeof feature === 'function') {\n return feature();\n } else {\n const componentVersion = feature.component;\n\n if (!componentVersion) {\n return failFeature('feature component version is unknown, cannot check support.');\n }\n\n const currentBranch = componentVersion[1].indexOf('-' + STABLE) === 0 ? STABLE : PRESTABLE;\n\n const featureVersionInterval = feature[currentBranch] || feature[PRESTABLE];\n\n if (!featureVersionInterval) {\n return failFeature(\n `feature version for branch \"${currentBranch}\" or branch \"${PRESTABLE}\" is unknown, cannot check support.`,\n );\n }\n\n if (Array.isArray(featureVersionInterval)) {\n return featureVersionInterval.some((interval) =>\n _versionInInterval(componentVersion[0], interval),\n );\n } else {\n return _versionInInterval(componentVersion[0], featureVersionInterval);\n }\n }\n};\n\nexport const isSupportedSelector = createSelector(\n [rawProxyVersion, proxyPatchNumber, features],\n _isFeatureSupported,\n);\n\nexport const isSupportedOperationStarvationStatus = createSelector(\n [rawSchedulerVersion, isSupportedSelector],\n (rawVersion, isSupported) => {\n return rawVersion && isSupported('newOperationStarvationStatus');\n },\n);\n\nexport const isSupportedTransferPoolQuota = createSelector([isSupportedSelector], (isSupported) => {\n return isSupported('transferPoolQuota');\n});\n\nexport const isSupportedSchedulingOperationsPerPool = createSelector(\n [isSupportedSelector],\n (isSupported) => isSupported('schedulingOperationsPerPool'),\n);\n\nexport const isSupportedOperationAlertEvents = createSelector(\n [isSupportedSelector],\n (isSupported) => {\n return isSupported('operationAlertEvents');\n },\n);\n\nexport const isSupportedOperationsFilterByPoolTree = createSelector(\n [isSupportedSelector],\n (isSupported) => {\n return isSupported('operationsPoolTreeFilter');\n },\n);\n\nexport const isSupportedFieldsFilter = createSelector([isSupportedSelector], (isSupported) => {\n return isSupported('fieldsFilter');\n});\n\nexport const isSupportedEffectiveExpiration = createSelector(\n [isSupportedSelector],\n (isSupported) => {\n return isSupported('effectiveExpiration');\n },\n);\n\nexport const isSupportedClusterNodeForVersions = createSelector(\n [isSupportedSelector],\n (isSupported) => {\n return isSupported('clusterNodeVersion');\n },\n);\n\nexport const isSupportedNodeMaintenanceApi = createSelector(\n [isSupportedSelector],\n (isSupported) => {\n return isSupported('nodeMaintenanceApi');\n },\n);\n\n/**\n This function function is recommended for usage inside utils and old knockout components, where it is difficult\n to pass state, since it needs to be passed through many function calls or is separated from the Redux data flow.\n When you are inside actions/connect-ed React component, you are strongly encouraged to use isSupportedSelector\n directly, since it is guaranteed to use correct state.\n Within reducer it's better to use isSupported function passed from within action, because isSupportedSelector works\n on the global state, while in reducer we have an access to its local part.\n\n @Deprecated\n*/\nconst isSupportedGlobal = (featureName) =>\n isSupportedSelector(window.store.getState())(featureName);\n\nexport function isSupportedYtTvmAPIGlobal() {\n return isSupportedGlobal('ytTvmApi');\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["createSelector","map_","isEmpty_","every_","hammer","_LOCAL_ARCADIA_VERSION","versionToArray","version","build","VERSION_DELIMITER","VERSION_CHUNK_COUNT","VERSION_CHUNK_PLACEHOLDER","versionArray","split","subversion","parseInt","length","push","_compareVersions","comparator","versionA","versionB","utils","compareVectors","_versionInInterval","versionInterval","supported","_typeof","Object","keys","every","Error","key","getVersionAndBuild","parsedVersion","match","parsedBuild","majorMinorPatch","substring","undefined","getRawProxyVersion","state","global","getRawSchedulerVersion","schedulerVersion","getRawMasterVersion","masterVersion","FEATURES","fieldsFilter","scheduler","effectiveExpiration","master","clusterNodeVersion","proxy","nodeMaintenanceApi","schedulingChildrenByPool","_isFeatureSupported","rawVersions","features","featureName","failFeature","message","console","warn","concat","featureVersions","value","k","rawVersion","buildVersion","Array","isArray","some","item","isSupportedSelector","isSupportedEffectiveExpiration","isSupported","isSupportedClusterNodeForVersions","isSupportedNodeMaintenanceApi","isSupportedSchedulingChildrenByPool"],"sources":["support.ts"],"sourcesContent":["import {createSelector} from 'reselect';\nimport map_ from 'lodash/map';\nimport isEmpty_ from 'lodash/isEmpty';\nimport every_ from 'lodash/every';\n\n// @ts-ignore\nimport hammer from '@ytsaurus/interface-helpers/lib/hammer';\n\nimport {RootState} from '../../../store/reducers';\n\nexport const _LOCAL_ARCADIA_VERSION = '(development)';\n\nfunction versionToArray(version: string, build?: string) {\n const VERSION_DELIMITER = '.';\n const VERSION_CHUNK_COUNT = 3;\n const VERSION_CHUNK_PLACEHOLDER = 0;\n\n const versionArray: Array<string | number> = map_(\n version.split(VERSION_DELIMITER),\n (subversion) => {\n return parseInt(subversion, 10);\n },\n );\n\n while (versionArray.length < VERSION_CHUNK_COUNT) {\n versionArray.push(VERSION_CHUNK_PLACEHOLDER);\n }\n\n if (build) {\n versionArray.push(build);\n }\n\n return versionArray;\n}\n\n/**\n * Returns true if versionA >= versionB and comparator === 'greater'\n * Returns true if versionA < versionB and comparator === 'smaller'\n * @param {String} comparator - 'greater', 'smaller'\n * @param {String} versionA\n * @param {String} versionB\n * @returns {boolean}\n */\nexport function _compareVersions(\n comparator: 'greater' | 'smaller',\n versionA: string,\n versionB: string,\n) {\n if (versionA === versionB) {\n return comparator === 'greater';\n }\n\n return comparator === 'greater'\n ? hammer.utils.compareVectors(versionToArray(versionA), versionToArray(versionB)) >= 0\n : hammer.utils.compareVectors(versionToArray(versionA), versionToArray(versionB)) < 0;\n}\n\n/**\n * Determines wheter a given version belongs to a versionInterval [a, b)\n * Left end included, right end excluded (intuitive limitations - features are supported starting from a specific build)\n * @param {String} version\n * @param {String|Object} versionInterval\n * @returns {boolean}\n */\nexport function _versionInInterval(\n version: string,\n versionInterval: MajorMinorPatch | MajorMinorPatchRange | typeof _LOCAL_ARCADIA_VERSION,\n) {\n let supported;\n\n if (typeof versionInterval === 'object') {\n supported = Object.keys(versionInterval).every((comparator) => {\n if (!(comparator === 'greater' || comparator === 'smaller')) {\n throw new Error(\n 'thor.support: feature description has unknown comparator \"' +\n comparator +\n '\",' +\n ' cannot check support.',\n );\n }\n const key = comparator as keyof typeof versionInterval;\n return _compareVersions(comparator, version, versionInterval[key]!);\n });\n } else {\n supported = _compareVersions('greater', version, versionInterval);\n }\n\n return supported;\n}\n\nfunction getVersionAndBuild(version?: string): [string, string | undefined] | undefined {\n const parsedVersion = version?.match(/(\\d+)\\.(\\d+)\\.(\\d+)/);\n let parsedBuild;\n\n if (parsedVersion) {\n const majorMinorPatch = parsedVersion[0];\n parsedBuild = version?.substring(parsedVersion.length);\n\n return [majorMinorPatch, parsedBuild];\n }\n return undefined;\n}\n\nconst getRawProxyVersion = (state: RootState) => state.global.version;\nconst getRawSchedulerVersion = (state: RootState) => state.global.schedulerVersion;\nconst getRawMasterVersion = (state: RootState) => state.global.masterVersion;\n\ntype MajorMinorPatch = `${number}.${number}.${number}`;\ntype MajorMinorPatchRange = {greater?: MajorMinorPatch; smaller?: MajorMinorPatch};\n\nexport type RawVersion = `${MajorMinorPatch}-${string}`;\n\nexport type Versions<T> = {proxy?: T | typeof _LOCAL_ARCADIA_VERSION; scheduler?: T; master?: T};\n\ntype FeatureVersions = Versions<MajorMinorPatch | Array<MajorMinorPatchRange>>;\ntype RawFeatureVersions = Versions<RawVersion>;\n\nconst FEATURES = {\n fieldsFilter: {\n scheduler: '22.1.9091155',\n } as FeatureVersions,\n effectiveExpiration: {\n master: '23.1.11146445',\n } as FeatureVersions,\n clusterNodeVersion: {\n proxy: '23.2.0',\n } as FeatureVersions,\n nodeMaintenanceApi: {\n proxy: '23.1.11106567',\n } as FeatureVersions,\n schedulingChildrenByPool: {\n scheduler: '23.1.11146742',\n } as FeatureVersions,\n};\n\nexport function _isFeatureSupported<T extends Record<string, FeatureVersions>>(\n rawVersions: RawFeatureVersions,\n features: T,\n) {\n return (featureName: keyof T) => {\n function failFeature(message: string) {\n console.warn(`thor.support \"${featureName as string}\" ${message}`);\n return false;\n }\n\n const featureVersions: FeatureVersions = features[featureName];\n\n if (!featureVersions) {\n return failFeature(`${featureName as string} is unknown, cannot check support.`);\n }\n\n if (isEmpty_(featureVersions)) {\n return failFeature('feature component version is unknown, cannot check support.');\n }\n\n return every_(featureVersions, (value, k) => {\n const key = k as keyof typeof rawVersions;\n const rawVersion = rawVersions[key];\n\n // yt-local in arcadia is meant to be of the freshest version\n if (rawVersion === _LOCAL_ARCADIA_VERSION) {\n return true;\n }\n\n if (!value) {\n return failFeature(`feature version of '${key}' is unknown, connot check support`);\n }\n\n const buildVersion = getVersionAndBuild(rawVersion);\n if (!buildVersion) {\n return failFeature(\n `version of '${key}' component is unknown, cannot check support.`,\n );\n }\n\n if (Array.isArray(value)) {\n return value.some((item) => _versionInInterval(buildVersion[0], item));\n } else {\n return _versionInInterval(buildVersion[0], value);\n }\n });\n };\n}\n\nexport const isSupportedSelector = createSelector(\n [getRawProxyVersion, getRawSchedulerVersion, getRawMasterVersion],\n (proxy, scheduler, master) => _isFeatureSupported({proxy, scheduler, master}, FEATURES),\n);\n\nexport const isSupportedEffectiveExpiration = createSelector(\n [isSupportedSelector],\n (isSupported) => {\n return isSupported('effectiveExpiration');\n },\n);\n\nexport const isSupportedClusterNodeForVersions = createSelector(\n [isSupportedSelector],\n (isSupported) => {\n return isSupported('clusterNodeVersion');\n },\n);\n\nexport const isSupportedNodeMaintenanceApi = createSelector(\n [isSupportedSelector],\n (isSupported) => {\n return isSupported('nodeMaintenanceApi');\n },\n);\n\nexport const isSupportedSchedulingChildrenByPool = createSelector(\n [isSupportedSelector],\n (isSupported) => {\n return isSupported('schedulingChildrenByPool');\n },\n);\n"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import { _DEV_PATCH_NUMBER, _LOCAL_ARCADIA_VERSION, _compareVersions, _isFeatureSupported, _versionInInterval, isSupportedSelector } from './support';
2
- var PATCH_NUMBER = '12345';
1
+ import { _LOCAL_ARCADIA_VERSION, _compareVersions, _isFeatureSupported, _versionInInterval, isSupportedSelector } from './support';
3
2
  describe('support', function () {
4
3
  describe('isSupportedSelector', function () {
5
4
  var warnMock, _origWarn;
@@ -15,53 +14,46 @@ describe('support', function () {
15
14
  var isSupported = isSupportedSelector({
16
15
  global: {
17
16
  version: '19.2.25251-prestable~3023dc3',
18
- schedulerVersion: '20.2.12.14'
17
+ schedulerVersion: '20.2.12-local~123123',
18
+ masterVersion: '21.123.321-stable~123'
19
19
  }
20
20
  });
21
21
  var isSupportedNext = isSupportedSelector({
22
22
  global: {
23
23
  version: '19.2.25251-prestable~3023dc3',
24
- schedulerVersion: '20.2.12.14'
24
+ schedulerVersion: '20.2.12-local~123123',
25
+ masterVersion: '21.123.321-stable~123'
25
26
  }
26
27
  });
27
28
  expect(isSupported).toBe(isSupportedNext);
28
29
  });
29
30
  it('local cluster version from arcadia supports all the features', function () {
30
- var isSupported = _isFeatureSupported(_LOCAL_ARCADIA_VERSION, PATCH_NUMBER, {
31
+ var isSupported = _isFeatureSupported({
32
+ proxy: _LOCAL_ARCADIA_VERSION
33
+ }, {
31
34
  knownFeature: {
32
- prestable: '19.4.29880',
33
- component: ['19.3.29880', '-stable-something']
35
+ proxy: '19.4.29880'
34
36
  }
35
37
  });
36
38
  expect(isSupported('knownFeature')).toBe(true);
37
- expect(isSupported('unknownFeature')).toBe(true);
38
- });
39
- it('development version of proxy supports all the features', function () {
40
- var isSupported = _isFeatureSupported('19.4.' + _DEV_PATCH_NUMBER, _DEV_PATCH_NUMBER, {
41
- knownFeature: {
42
- prestable: '19.5.29880',
43
- component: ['19.4.0', '-local-something']
44
- }
45
- });
46
- expect(isSupported('knownFeature')).toBe(true);
47
- expect(isSupported('unknownFeature')).toBe(true);
39
+ expect(isSupported('unknownFeature')).toBe(false);
48
40
  });
49
41
  describe('non-existent facilities', function () {
50
42
  it('unknown feature should not be supported and trace should be emitted', function () {
51
- var isSupported = _isFeatureSupported('some.version', PATCH_NUMBER, {
43
+ var isSupported = _isFeatureSupported({
44
+ proxy: '19.4.29880-stable-something'
45
+ }, {
52
46
  knownFeature: {
53
- prestable: '19.4.29880',
54
- component: ['19.4.29880', '-stable-something']
47
+ proxy: '19.4.29880'
55
48
  }
56
49
  });
57
50
  expect(isSupported('unknownFeature')).toBe(false);
58
51
  expect(warnMock.mock.calls.length).toBe(1);
59
52
  });
60
53
  it('unknown component version should not be supported and trace should be emitted', function () {
61
- var isSupported = _isFeatureSupported('some.version', PATCH_NUMBER, {
54
+ var isSupported = _isFeatureSupported({}, {
62
55
  knownFeature: {
63
- prestable: '19.4.29880',
64
- component: undefined
56
+ proxy: '19.4.29880'
65
57
  }
66
58
  });
67
59
  expect(isSupported('knownFeature')).toBe(false);
@@ -69,68 +61,171 @@ describe('support', function () {
69
61
  });
70
62
  });
71
63
  it('Prestable version supported explicitly', function () {
72
- var isSupported = _isFeatureSupported('some.version', PATCH_NUMBER, {
64
+ var isSupported = _isFeatureSupported({
65
+ proxy: '19.2.26251-prestable~3023dc3'
66
+ }, {
67
+ knownFeature: {
68
+ proxy: '19.2.25000'
69
+ }
70
+ });
71
+ expect(isSupported('knownFeature')).toBe(true);
72
+ });
73
+ it('Stable version supported explicitly', function () {
74
+ var isSupported = _isFeatureSupported({
75
+ proxy: '19.2.26251-stable~3023dc3',
76
+ scheduler: '19.2.26251-stable~3023dc3'
77
+ }, {
78
+ proxyFeature: {
79
+ proxy: '19.2.26000'
80
+ },
81
+ schedulerFeature: {
82
+ scheduler: '20.1.23456'
83
+ }
84
+ });
85
+ expect(isSupported('proxyFeature')).toBe(true);
86
+ expect(isSupported('schedulerFeature')).toBe(false);
87
+ });
88
+ it('Stable version supported implicitly, by requirement for prestable', function () {
89
+ var isSupported = _isFeatureSupported({
90
+ proxy: '19.2.26251-stable~3023dc3'
91
+ }, {
73
92
  knownFeature: {
74
- prestable: '19.2.25000',
75
- component: ['19.2.26251', '-prestable~3023dc3']
93
+ proxy: '19.2.25000'
76
94
  }
77
95
  });
78
96
  expect(isSupported('knownFeature')).toBe(true);
79
97
  });
80
- describe('Prestable version not supported implicitly, stable requirement does not work', function () {
81
- it('does not find prestable fallback and yells to console', function () {
82
- var isSupported = _isFeatureSupported('some.version', PATCH_NUMBER, {
98
+ describe('Multiple versions of proxy', function () {
99
+ function makeMultiFeatures() {
100
+ return {
83
101
  knownFeature: {
84
- stable: '19.2.25000',
85
- component: ['19.2.26251', '-prestable~3023dc3']
102
+ proxy: [{
103
+ greater: '19.2.26123',
104
+ smaller: '19.3.00000'
105
+ }, {
106
+ greater: '19.3.25000'
107
+ }]
86
108
  }
87
- });
109
+ };
110
+ }
111
+ it('should be false for versions less than 19.2.26123', function () {
112
+ var isSupported = _isFeatureSupported({
113
+ proxy: '10.2.35251-prestable~3023dc3'
114
+ }, makeMultiFeatures());
115
+ expect(isSupported('knownFeature')).toBe(false);
116
+ });
117
+ it('should be true for versions in [19.2.26123; 19.3.0)', function () {
118
+ var isSupported = _isFeatureSupported({
119
+ proxy: '19.2.35251-prestable~3023dc3'
120
+ }, makeMultiFeatures());
121
+ expect(isSupported('knownFeature')).toBe(true);
122
+ });
123
+ it('should be false for versions in [19.3.0; 19.3.25000)', function () {
124
+ var isSupported = _isFeatureSupported({
125
+ proxy: '19.3.15251-prestable~3023dc3'
126
+ }, makeMultiFeatures());
88
127
  expect(isSupported('knownFeature')).toBe(false);
89
- expect(warnMock.mock.calls.length).toBe(1);
90
128
  });
91
- it('finds prestable fallback and does not yell to console', function () {
92
- var isSupported = _isFeatureSupported('some.version', PATCH_NUMBER, {
129
+ it('should be false for versions in [19.2.26123; 19.3.0)', function () {
130
+ var isSupported = _isFeatureSupported({
131
+ proxy: '19.3.15251-prestable~3023dc3'
132
+ }, makeMultiFeatures());
133
+ expect(isSupported('knownFeature')).toBe(false);
134
+ });
135
+ it('should be true for versions greater than 19.3.25000', function () {
136
+ var isSupported = _isFeatureSupported({
137
+ proxy: '19.3.25251-prestable~3023dc3'
138
+ }, makeMultiFeatures());
139
+ expect(isSupported('knownFeature')).toBe(true);
140
+ });
141
+ });
142
+ describe('Multiple versions of scheduler', function () {
143
+ function makeMultiFeatures() {
144
+ return {
93
145
  knownFeature: {
94
- stable: '19.2.25000',
95
- prestable: '19.3.25000',
96
- component: ['19.2.26251', '-prestable~3023dc3']
146
+ scheduler: [{
147
+ greater: '19.2.26123',
148
+ smaller: '19.3.00000'
149
+ }, {
150
+ greater: '19.3.25000'
151
+ }]
97
152
  }
98
- });
153
+ };
154
+ }
155
+ it('should be false for versions less than 19.2.26123', function () {
156
+ var isSupported = _isFeatureSupported({
157
+ scheduler: '10.2.35251-prestable~3023dc3'
158
+ }, makeMultiFeatures());
99
159
  expect(isSupported('knownFeature')).toBe(false);
100
- expect(warnMock.mock.calls.length).toBe(0);
101
160
  });
102
- });
103
- it('Stable version supported explicitly', function () {
104
- var isSupported = _isFeatureSupported('some.version', PATCH_NUMBER, {
105
- knownFeature: {
106
- stable: '19.2.26000',
107
- component: ['19.2.26251', '-stable~3023dc3']
108
- }
161
+ it('should be true for versions in [19.2.26123; 19.3.0)', function () {
162
+ var isSupported = _isFeatureSupported({
163
+ scheduler: '19.2.35251-prestable~3023dc3'
164
+ }, makeMultiFeatures());
165
+ expect(isSupported('knownFeature')).toBe(true);
109
166
  });
110
- expect(isSupported('knownFeature')).toBe(true);
111
- });
112
- it('Stable version supported implicitly, by requirement for prestable', function () {
113
- var isSupported = _isFeatureSupported('some.version', PATCH_NUMBER, {
114
- knownFeature: {
115
- prestable: '19.2.25000',
116
- component: ['19.2.26251', '-stable~3023dc3']
117
- }
167
+ it('should be false for versions in [19.3.0; 19.3.25000)', function () {
168
+ var isSupported = _isFeatureSupported({
169
+ scheduler: '19.3.15251-prestable~3023dc3'
170
+ }, makeMultiFeatures());
171
+ expect(isSupported('knownFeature')).toBe(false);
172
+ });
173
+ it('should be false for versions in [19.2.26123; 19.3.0)', function () {
174
+ var isSupported = _isFeatureSupported({
175
+ scheduler: '19.3.15251-prestable~3023dc3'
176
+ }, makeMultiFeatures());
177
+ expect(isSupported('knownFeature')).toBe(false);
178
+ });
179
+ it('should be true for versions greater than 19.3.25000', function () {
180
+ var isSupported = _isFeatureSupported({
181
+ scheduler: '19.3.25251-prestable~3023dc3'
182
+ }, makeMultiFeatures());
183
+ expect(isSupported('knownFeature')).toBe(true);
118
184
  });
119
- expect(isSupported('knownFeature')).toBe(true);
120
185
  });
121
- it('Multiple version intervals', function () {
122
- var isSupported = _isFeatureSupported('some.version', PATCH_NUMBER, {
123
- knownFeature: {
124
- prestable: [{
125
- greater: '19.2.26123',
126
- smaller: '19.3.00000'
127
- }, {
128
- greater: '19.3.25000'
129
- }],
130
- component: ['19.3.25251', '-prestable~3023dc3']
131
- }
186
+ describe('Multiple versions of master', function () {
187
+ function makeMultiFeatures() {
188
+ return {
189
+ knownFeature: {
190
+ master: [{
191
+ greater: '19.2.26123',
192
+ smaller: '19.3.00000'
193
+ }, {
194
+ greater: '19.3.25000'
195
+ }]
196
+ }
197
+ };
198
+ }
199
+ it('should be false for versions less than 19.2.26123', function () {
200
+ var isSupported = _isFeatureSupported({
201
+ master: '10.2.35251-prestable~3023dc3'
202
+ }, makeMultiFeatures());
203
+ expect(isSupported('knownFeature')).toBe(false);
204
+ });
205
+ it('should be true for versions in [19.2.26123; 19.3.0)', function () {
206
+ var isSupported = _isFeatureSupported({
207
+ master: '19.2.35251-prestable~3023dc3'
208
+ }, makeMultiFeatures());
209
+ expect(isSupported('knownFeature')).toBe(true);
210
+ });
211
+ it('should be false for versions in [19.3.0; 19.3.25000)', function () {
212
+ var isSupported = _isFeatureSupported({
213
+ master: '19.3.15251-prestable~3023dc3'
214
+ }, makeMultiFeatures());
215
+ expect(isSupported('knownFeature')).toBe(false);
216
+ });
217
+ it('should be false for versions in [19.2.26123; 19.3.0)', function () {
218
+ var isSupported = _isFeatureSupported({
219
+ master: '19.3.15251-prestable~3023dc3'
220
+ }, makeMultiFeatures());
221
+ expect(isSupported('knownFeature')).toBe(false);
222
+ });
223
+ it('should be true for versions greater than 19.3.25000', function () {
224
+ var isSupported = _isFeatureSupported({
225
+ master: '19.3.25251-prestable~3023dc3'
226
+ }, makeMultiFeatures());
227
+ expect(isSupported('knownFeature')).toBe(true);
132
228
  });
133
- expect(isSupported('knownFeature')).toBe(true);
134
229
  });
135
230
  });
136
231
  describe('_versionInInterval', function () {