@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.
- package/build/cjs/shared/yt-types.d.ts +6 -0
- package/build/cjs/ui/common/yt-api-init.js +3 -1
- package/build/cjs/ui/common/yt-api-init.js.map +1 -1
- package/build/cjs/ui/constants/scheduling/index.d.ts +6 -7
- package/build/cjs/ui/constants/scheduling/index.js +7 -8
- package/build/cjs/ui/constants/scheduling/index.js.map +1 -1
- package/build/cjs/ui/pages/components/tabs/node/NodePage.js +1 -4
- package/build/cjs/ui/pages/components/tabs/node/NodePage.js.map +1 -1
- package/build/cjs/ui/pages/components/tabs/nodes/NodeCard/NodeCard.js +12 -16
- package/build/cjs/ui/pages/components/tabs/nodes/NodeCard/NodeCard.js.map +1 -1
- package/build/cjs/ui/pages/operations/OperationDetail/tabs/details/Runtime/Runtime.js +2 -5
- package/build/cjs/ui/pages/operations/OperationDetail/tabs/details/Runtime/Runtime.js.map +1 -1
- package/build/cjs/ui/pages/operations/OperationsList/OperationsListToolbar/OperationsListToolbar.js +1 -5
- package/build/cjs/ui/pages/operations/OperationsList/OperationsListToolbar/OperationsListToolbar.js.map +1 -1
- package/build/cjs/ui/pages/operations/selectors.d.ts +8 -7
- package/build/cjs/ui/pages/query-tracker/module/queries_list/selectors.d.ts +32 -28
- package/build/cjs/ui/pages/query-tracker/module/query/selectors.d.ts +8 -7
- package/build/cjs/ui/pages/query-tracker/module/settings/selector.d.ts +8 -7
- package/build/cjs/ui/pages/scheduling/Alerts.js +1 -1
- package/build/cjs/ui/pages/scheduling/Alerts.js.map +1 -1
- package/build/cjs/ui/pages/scheduling/Content/Content.js +2 -2
- package/build/cjs/ui/pages/scheduling/Content/Content.js.map +1 -1
- package/build/cjs/ui/pages/scheduling/Content/{SchedulingOperationsUpdater.d.ts → SchedulingExpandedPoolsUpdater.d.ts} +2 -2
- package/build/cjs/ui/pages/scheduling/Content/{SchedulingOperationsUpdater.js → SchedulingExpandedPoolsUpdater.js} +7 -8
- package/build/cjs/ui/pages/scheduling/Content/SchedulingExpandedPoolsUpdater.js.map +1 -0
- package/build/cjs/ui/pages/scheduling/Content/SchedulingResources.js +4 -3
- package/build/cjs/ui/pages/scheduling/Content/SchedulingResources.js.map +1 -1
- package/build/cjs/ui/pages/scheduling/Content/controls/ShareUsageBar.js +1 -1
- package/build/cjs/ui/pages/scheduling/Content/controls/ShareUsageBar.js.map +1 -1
- package/build/cjs/ui/pages/scheduling/Content/tabs/Details/Details.js +13 -8
- package/build/cjs/ui/pages/scheduling/Content/tabs/Details/Details.js.map +1 -1
- package/build/cjs/ui/pages/scheduling/Content/tabs/Overview/Overview.d.ts +12 -10
- package/build/cjs/ui/pages/scheduling/Content/tabs/Overview/Overview.js +30 -21
- package/build/cjs/ui/pages/scheduling/Content/tabs/Overview/Overview.js.map +1 -1
- package/build/cjs/ui/pages/scheduling/Content/tabs/SchedulingOperationsError/SchedulingOperationsError.js +2 -2
- package/build/cjs/ui/pages/scheduling/Content/tabs/SchedulingOperationsError/SchedulingOperationsError.js.map +1 -1
- package/build/cjs/ui/pages/scheduling/Content/tabs/ScherdulingOperataionsLoader/SchedulingOperationsLoader.js +2 -2
- package/build/cjs/ui/pages/scheduling/Content/tabs/ScherdulingOperataionsLoader/SchedulingOperationsLoader.js.map +1 -1
- package/build/cjs/ui/pages/scheduling/PoolQoutaEditor/PoolQuotaEditor.d.ts +0 -1
- package/build/cjs/ui/pages/scheduling/PoolQoutaEditor/PoolQuotaEditor.js +1 -3
- package/build/cjs/ui/pages/scheduling/PoolQoutaEditor/PoolQuotaEditor.js.map +1 -1
- package/build/cjs/ui/pages/scheduling/Scheduling/PoolEditorDialog/PoolEditorDialog.d.ts +24 -0
- package/build/cjs/ui/pages/scheduling/Scheduling/PoolEditorDialog/PoolEditorDialog.js +8 -19
- package/build/cjs/ui/pages/scheduling/Scheduling/PoolEditorDialog/PoolEditorDialog.js.map +1 -1
- package/build/cjs/ui/pages/scheduling/Scheduling/Scheduling.js +29 -48
- package/build/cjs/ui/pages/scheduling/Scheduling/Scheduling.js.map +1 -1
- package/build/cjs/ui/pages/scheduling/Scheduling/SchedulingTopRowContent.js +8 -4
- package/build/cjs/ui/pages/scheduling/Scheduling/SchedulingTopRowContent.js.map +1 -1
- package/build/cjs/ui/rum/constants.d.ts +5 -1
- package/build/cjs/ui/rum/constants.js +5 -2
- package/build/cjs/ui/rum/constants.js.map +1 -1
- package/build/cjs/ui/rum/rum-counter.js +1 -1
- package/build/cjs/ui/rum/rum-counter.js.map +1 -1
- package/build/cjs/ui/rum/rum-wrap-api.d.ts +95 -53
- package/build/cjs/ui/rum/rum-wrap-api.js +59 -56
- package/build/cjs/ui/rum/rum-wrap-api.js.map +1 -1
- package/build/cjs/ui/store/actions/components/node/node.js +6 -29
- package/build/cjs/ui/store/actions/components/node/node.js.map +1 -1
- package/build/cjs/ui/store/actions/operations/detail.js +1 -1
- package/build/cjs/ui/store/actions/operations/detail.js.map +1 -1
- package/build/cjs/ui/store/actions/scheduling/create-pool-dialog.js +3 -3
- package/build/cjs/ui/store/actions/scheduling/create-pool-dialog.js.map +1 -1
- package/build/cjs/ui/store/actions/scheduling/expanded-pools.d.ts +15 -0
- package/build/cjs/ui/store/actions/scheduling/expanded-pools.js +377 -0
- package/build/cjs/ui/store/actions/scheduling/expanded-pools.js.map +1 -0
- package/build/cjs/ui/store/actions/scheduling/scheduling-ts.d.ts +15 -1
- package/build/cjs/ui/store/actions/scheduling/scheduling-ts.js +226 -10
- package/build/cjs/ui/store/actions/scheduling/scheduling-ts.js.map +1 -1
- package/build/cjs/ui/store/actions/scheduling/scheduling.d.ts +1 -32
- package/build/cjs/ui/store/actions/scheduling/scheduling.js +12 -250
- package/build/cjs/ui/store/actions/scheduling/scheduling.js.map +1 -1
- package/build/cjs/ui/store/actions/system/masters.d.ts +7 -5
- package/build/cjs/ui/store/actions/system/masters.js +305 -235
- package/build/cjs/ui/store/actions/system/masters.js.map +1 -1
- package/build/cjs/ui/store/reducers/components/node/node.d.ts +0 -2
- package/build/cjs/ui/store/reducers/components/node/node.js +2 -5
- package/build/cjs/ui/store/reducers/components/node/node.js.map +1 -1
- package/build/cjs/ui/store/reducers/index.d.ts +9 -7
- package/build/cjs/ui/store/reducers/index.js +3 -4
- package/build/cjs/ui/store/reducers/index.js.map +1 -1
- package/build/cjs/ui/store/reducers/scheduling/expanded-pools.d.ts +28 -0
- package/build/cjs/ui/store/reducers/scheduling/{scheduling-operations.js → expanded-pools.js} +10 -8
- package/build/cjs/ui/store/reducers/scheduling/expanded-pools.js.map +1 -0
- package/build/cjs/ui/store/reducers/scheduling/index.d.ts +5 -93
- package/build/cjs/ui/store/reducers/scheduling/index.js +10 -136
- package/build/cjs/ui/store/reducers/scheduling/index.js.map +1 -1
- package/build/cjs/ui/store/reducers/scheduling/scheduling.d.ts +100 -0
- package/build/cjs/ui/store/reducers/scheduling/scheduling.js +139 -0
- package/build/cjs/ui/store/reducers/scheduling/scheduling.js.map +1 -0
- package/build/cjs/ui/store/reducers/scheduling/url-mapping.d.ts +13 -2
- package/build/cjs/ui/store/reducers/scheduling/url-mapping.js +31 -26
- package/build/cjs/ui/store/reducers/scheduling/url-mapping.js.map +1 -1
- package/build/cjs/ui/store/reducers/system/masters.d.ts +2 -2
- package/build/cjs/ui/store/reducers/system/masters.js.map +1 -1
- package/build/cjs/ui/store/selectors/accounts/account-usage.d.ts +64 -56
- package/build/cjs/ui/store/selectors/accounts/accounts-ts.d.ts +64 -56
- package/build/cjs/ui/store/selectors/chaos_cell_bundles/index.d.ts +88 -77
- package/build/cjs/ui/store/selectors/chyt/index.d.ts +56 -49
- package/build/cjs/ui/store/selectors/components/node/memory.d.ts +56 -49
- package/build/cjs/ui/store/selectors/components/node-maintenance-modal.d.ts +1712 -13
- package/build/cjs/ui/store/selectors/components/nodes/node-card.d.ts +8 -7
- package/build/cjs/ui/store/selectors/components/nodes/nodes/data.d.ts +16 -14
- package/build/cjs/ui/store/selectors/components/nodes/nodes/predicates.d.ts +48 -42
- package/build/cjs/ui/store/selectors/components/versions/versions_v2-ts.d.ts +859 -9
- package/build/cjs/ui/store/selectors/components/versions/versions_v2.d.ts +40 -35
- package/build/cjs/ui/store/selectors/global/index.d.ts +116 -102
- package/build/cjs/ui/store/selectors/global/index.js +2 -3
- package/build/cjs/ui/store/selectors/global/index.js.map +1 -1
- package/build/cjs/ui/store/selectors/global/supported-features.d.ts +48 -42
- package/build/cjs/ui/store/selectors/modals/errors.d.ts +8 -7
- package/build/cjs/ui/store/selectors/navigation/content/document.d.ts +8 -7
- package/build/cjs/ui/store/selectors/navigation/content/replicated-table.d.ts +24 -21
- package/build/cjs/ui/store/selectors/navigation/content/table-mount-config.d.ts +8 -7
- package/build/cjs/ui/store/selectors/navigation/content/table-ts.d.ts +32 -28
- package/build/cjs/ui/store/selectors/navigation/content/table.d.ts +56 -49
- package/build/cjs/ui/store/selectors/navigation/modals/attributes-editor.d.ts +24 -21
- package/build/cjs/ui/store/selectors/navigation/modals/remote-copy-modal.d.ts +8 -7
- package/build/cjs/ui/store/selectors/navigation/navigation.d.ts +16 -14
- package/build/cjs/ui/store/selectors/navigation/tabs/access-log.d.ts +8 -7
- package/build/cjs/ui/store/selectors/navigation/tabs/annotation.d.ts +8 -7
- package/build/cjs/ui/store/selectors/navigation/tabs/consumer.d.ts +8 -7
- package/build/cjs/ui/store/selectors/navigation/tabs/locks.d.ts +16 -14
- package/build/cjs/ui/store/selectors/navigation/tabs/queue.d.ts +16 -14
- package/build/cjs/ui/store/selectors/navigation/tabs/tablet-errors.d.ts +8 -7
- package/build/cjs/ui/store/selectors/operations/index.d.ts +96 -84
- package/build/cjs/ui/store/selectors/operations/jobs-monitor.d.ts +32 -28
- package/build/cjs/ui/store/selectors/operations/operation.d.ts +939 -79
- package/build/cjs/ui/store/selectors/operations/operation.js +2 -17
- package/build/cjs/ui/store/selectors/operations/operation.js.map +1 -1
- package/build/cjs/ui/store/selectors/operations/operations-list.d.ts +24 -21
- package/build/cjs/ui/store/selectors/operations/statistics-v2.d.ts +64 -56
- package/build/cjs/ui/store/selectors/scheduling/attributes-to-filter.d.ts +876 -0
- package/build/cjs/ui/store/selectors/scheduling/attributes-to-filter.js +75 -0
- package/build/cjs/ui/store/selectors/scheduling/attributes-to-filter.js.map +1 -0
- package/build/cjs/ui/store/selectors/scheduling/create-pool-dialog.d.ts +8 -7
- package/build/cjs/ui/store/selectors/scheduling/create-pool-dialog.js +3 -3
- package/build/cjs/ui/store/selectors/scheduling/create-pool-dialog.js.map +1 -1
- package/build/cjs/ui/store/selectors/scheduling/{scheduling-operations.d.ts → expanded-pools.d.ts} +14 -14
- package/build/cjs/ui/store/selectors/scheduling/expanded-pools.js +35 -0
- package/build/cjs/ui/store/selectors/scheduling/expanded-pools.js.map +1 -0
- package/build/cjs/ui/store/selectors/scheduling/index.d.ts +8 -7
- package/build/cjs/ui/store/selectors/scheduling/index.js +3 -3
- package/build/cjs/ui/store/selectors/scheduling/index.js.map +1 -1
- package/build/cjs/ui/store/selectors/scheduling/monitor.js +1 -1
- package/build/cjs/ui/store/selectors/scheduling/monitor.js.map +1 -1
- package/build/cjs/ui/store/selectors/scheduling/scheduling-pools.d.ts +2552 -3
- package/build/cjs/ui/store/selectors/scheduling/scheduling-pools.js +10 -18
- package/build/cjs/ui/store/selectors/scheduling/scheduling-pools.js.map +1 -1
- package/build/cjs/ui/store/selectors/scheduling/scheduling-ts.d.ts +4291 -45
- package/build/cjs/ui/store/selectors/scheduling/scheduling.d.ts +13739 -149
- package/build/cjs/ui/store/selectors/scheduling/scheduling.js +35 -30
- package/build/cjs/ui/store/selectors/scheduling/scheduling.js.map +1 -1
- package/build/cjs/ui/store/selectors/system/masters.d.ts +1 -1
- package/build/cjs/ui/store/selectors/system/masters.js.map +1 -1
- package/build/cjs/ui/store/selectors/tablet_cell_bundles/index.d.ts +120 -105
- package/build/cjs/ui/store/selectors/thor/support.d.ts +4294 -86
- package/build/cjs/ui/store/selectors/thor/support.js +76 -138
- package/build/cjs/ui/store/selectors/thor/support.js.map +1 -1
- package/build/cjs/ui/store/selectors/thor/support.spec.js +163 -68
- package/build/cjs/ui/store/selectors/thor/support.spec.js.map +1 -1
- package/build/cjs/ui/store/window-store.js +2 -2
- package/build/cjs/ui/store/window-store.js.map +1 -1
- package/build/cjs/ui/utils/batch.d.ts +54 -0
- package/build/cjs/ui/utils/batch.js +27 -0
- package/build/cjs/ui/utils/batch.js.map +1 -0
- package/build/cjs/ui/utils/scheduling/pool-child.d.ts +1 -1
- package/build/cjs/ui/utils/scheduling/pool-child.js +20 -9
- package/build/cjs/ui/utils/scheduling/pool-child.js.map +1 -1
- package/build/cjs/ui/utils/scheduling/scheduling.d.ts +2 -6
- package/build/cjs/ui/utils/scheduling/scheduling.js +3 -3
- package/build/cjs/ui/utils/scheduling/scheduling.js.map +1 -1
- package/build/cjs/ui/utils/utils.d.ts +3 -2
- package/build/cjs/ui/utils/utils.js +17 -9
- package/build/cjs/ui/utils/utils.js.map +1 -1
- package/build/esm/shared/yt-types.d.ts +6 -0
- package/build/esm/ui/common/yt-api-init.js +4 -2
- package/build/esm/ui/common/yt-api-init.js.map +1 -1
- package/build/esm/ui/constants/scheduling/index.d.ts +6 -7
- package/build/esm/ui/constants/scheduling/index.js +6 -7
- package/build/esm/ui/constants/scheduling/index.js.map +1 -1
- package/build/esm/ui/pages/components/tabs/node/NodePage.js +1 -4
- package/build/esm/ui/pages/components/tabs/node/NodePage.js.map +1 -1
- package/build/esm/ui/pages/components/tabs/nodes/NodeCard/NodeCard.js +12 -16
- package/build/esm/ui/pages/components/tabs/nodes/NodeCard/NodeCard.js.map +1 -1
- package/build/esm/ui/pages/operations/OperationDetail/tabs/details/Runtime/Runtime.js +3 -6
- package/build/esm/ui/pages/operations/OperationDetail/tabs/details/Runtime/Runtime.js.map +1 -1
- package/build/esm/ui/pages/operations/OperationsList/OperationsListToolbar/OperationsListToolbar.js +1 -5
- package/build/esm/ui/pages/operations/OperationsList/OperationsListToolbar/OperationsListToolbar.js.map +1 -1
- package/build/esm/ui/pages/operations/selectors.d.ts +8 -7
- package/build/esm/ui/pages/query-tracker/module/queries_list/selectors.d.ts +32 -28
- package/build/esm/ui/pages/query-tracker/module/query/selectors.d.ts +8 -7
- package/build/esm/ui/pages/query-tracker/module/settings/selector.d.ts +8 -7
- package/build/esm/ui/pages/scheduling/Alerts.js +1 -1
- package/build/esm/ui/pages/scheduling/Alerts.js.map +1 -1
- package/build/esm/ui/pages/scheduling/Content/Content.js +2 -2
- package/build/esm/ui/pages/scheduling/Content/Content.js.map +1 -1
- package/build/esm/ui/pages/scheduling/Content/{SchedulingOperationsUpdater.d.ts → SchedulingExpandedPoolsUpdater.d.ts} +2 -2
- package/build/esm/ui/pages/scheduling/Content/SchedulingExpandedPoolsUpdater.js +15 -0
- package/build/esm/ui/pages/scheduling/Content/SchedulingExpandedPoolsUpdater.js.map +1 -0
- package/build/esm/ui/pages/scheduling/Content/SchedulingResources.js +4 -3
- package/build/esm/ui/pages/scheduling/Content/SchedulingResources.js.map +1 -1
- package/build/esm/ui/pages/scheduling/Content/controls/ShareUsageBar.js +1 -1
- package/build/esm/ui/pages/scheduling/Content/controls/ShareUsageBar.js.map +1 -1
- package/build/esm/ui/pages/scheduling/Content/tabs/Details/Details.js +14 -9
- package/build/esm/ui/pages/scheduling/Content/tabs/Details/Details.js.map +1 -1
- package/build/esm/ui/pages/scheduling/Content/tabs/Overview/Overview.d.ts +12 -10
- package/build/esm/ui/pages/scheduling/Content/tabs/Overview/Overview.js +27 -18
- package/build/esm/ui/pages/scheduling/Content/tabs/Overview/Overview.js.map +1 -1
- package/build/esm/ui/pages/scheduling/Content/tabs/SchedulingOperationsError/SchedulingOperationsError.js +1 -1
- package/build/esm/ui/pages/scheduling/Content/tabs/SchedulingOperationsError/SchedulingOperationsError.js.map +1 -1
- package/build/esm/ui/pages/scheduling/Content/tabs/ScherdulingOperataionsLoader/SchedulingOperationsLoader.js +1 -1
- package/build/esm/ui/pages/scheduling/Content/tabs/ScherdulingOperataionsLoader/SchedulingOperationsLoader.js.map +1 -1
- package/build/esm/ui/pages/scheduling/PoolQoutaEditor/PoolQuotaEditor.d.ts +0 -1
- package/build/esm/ui/pages/scheduling/PoolQoutaEditor/PoolQuotaEditor.js +1 -3
- package/build/esm/ui/pages/scheduling/PoolQoutaEditor/PoolQuotaEditor.js.map +1 -1
- package/build/esm/ui/pages/scheduling/Scheduling/PoolEditorDialog/PoolEditorDialog.d.ts +24 -0
- package/build/esm/ui/pages/scheduling/Scheduling/PoolEditorDialog/PoolEditorDialog.js +8 -19
- package/build/esm/ui/pages/scheduling/Scheduling/PoolEditorDialog/PoolEditorDialog.js.map +1 -1
- package/build/esm/ui/pages/scheduling/Scheduling/Scheduling.js +26 -45
- package/build/esm/ui/pages/scheduling/Scheduling/Scheduling.js.map +1 -1
- package/build/esm/ui/pages/scheduling/Scheduling/SchedulingTopRowContent.js +6 -2
- package/build/esm/ui/pages/scheduling/Scheduling/SchedulingTopRowContent.js.map +1 -1
- package/build/esm/ui/rum/constants.d.ts +5 -1
- package/build/esm/ui/rum/constants.js +5 -2
- package/build/esm/ui/rum/constants.js.map +1 -1
- package/build/esm/ui/rum/rum-counter.js +1 -1
- package/build/esm/ui/rum/rum-counter.js.map +1 -1
- package/build/esm/ui/rum/rum-wrap-api.d.ts +95 -53
- package/build/esm/ui/rum/rum-wrap-api.js +58 -55
- package/build/esm/ui/rum/rum-wrap-api.js.map +1 -1
- package/build/esm/ui/store/actions/components/node/node.js +6 -28
- package/build/esm/ui/store/actions/components/node/node.js.map +1 -1
- package/build/esm/ui/store/actions/operations/detail.js +1 -1
- package/build/esm/ui/store/actions/operations/detail.js.map +1 -1
- package/build/esm/ui/store/actions/scheduling/create-pool-dialog.js +2 -2
- package/build/esm/ui/store/actions/scheduling/create-pool-dialog.js.map +1 -1
- package/build/esm/ui/store/actions/scheduling/expanded-pools.d.ts +15 -0
- package/build/esm/ui/store/actions/scheduling/expanded-pools.js +363 -0
- package/build/esm/ui/store/actions/scheduling/expanded-pools.js.map +1 -0
- package/build/esm/ui/store/actions/scheduling/scheduling-ts.d.ts +15 -1
- package/build/esm/ui/store/actions/scheduling/scheduling-ts.js +221 -13
- package/build/esm/ui/store/actions/scheduling/scheduling-ts.js.map +1 -1
- package/build/esm/ui/store/actions/scheduling/scheduling.d.ts +1 -32
- package/build/esm/ui/store/actions/scheduling/scheduling.js +16 -247
- package/build/esm/ui/store/actions/scheduling/scheduling.js.map +1 -1
- package/build/esm/ui/store/actions/system/masters.d.ts +7 -5
- package/build/esm/ui/store/actions/system/masters.js +303 -233
- package/build/esm/ui/store/actions/system/masters.js.map +1 -1
- package/build/esm/ui/store/reducers/components/node/node.d.ts +0 -2
- package/build/esm/ui/store/reducers/components/node/node.js +2 -5
- package/build/esm/ui/store/reducers/components/node/node.js.map +1 -1
- package/build/esm/ui/store/reducers/index.d.ts +9 -7
- package/build/esm/ui/store/reducers/index.js +3 -4
- package/build/esm/ui/store/reducers/index.js.map +1 -1
- package/build/esm/ui/store/reducers/scheduling/expanded-pools.d.ts +28 -0
- package/build/esm/ui/store/reducers/scheduling/{scheduling-operations.js → expanded-pools.js} +11 -9
- package/build/esm/ui/store/reducers/scheduling/expanded-pools.js.map +1 -0
- package/build/esm/ui/store/reducers/scheduling/index.d.ts +5 -93
- package/build/esm/ui/store/reducers/scheduling/index.js +9 -135
- package/build/esm/ui/store/reducers/scheduling/index.js.map +1 -1
- package/build/esm/ui/store/reducers/scheduling/scheduling.d.ts +100 -0
- package/build/esm/ui/store/reducers/scheduling/scheduling.js +132 -0
- package/build/esm/ui/store/reducers/scheduling/scheduling.js.map +1 -0
- package/build/esm/ui/store/reducers/scheduling/url-mapping.d.ts +13 -2
- package/build/esm/ui/store/reducers/scheduling/url-mapping.js +19 -14
- package/build/esm/ui/store/reducers/scheduling/url-mapping.js.map +1 -1
- package/build/esm/ui/store/reducers/system/masters.d.ts +2 -2
- package/build/esm/ui/store/reducers/system/masters.js.map +1 -1
- package/build/esm/ui/store/selectors/accounts/account-usage.d.ts +64 -56
- package/build/esm/ui/store/selectors/accounts/accounts-ts.d.ts +64 -56
- package/build/esm/ui/store/selectors/chaos_cell_bundles/index.d.ts +88 -77
- package/build/esm/ui/store/selectors/chyt/index.d.ts +56 -49
- package/build/esm/ui/store/selectors/components/node/memory.d.ts +56 -49
- package/build/esm/ui/store/selectors/components/node-maintenance-modal.d.ts +1712 -13
- package/build/esm/ui/store/selectors/components/nodes/node-card.d.ts +8 -7
- package/build/esm/ui/store/selectors/components/nodes/nodes/data.d.ts +16 -14
- package/build/esm/ui/store/selectors/components/nodes/nodes/predicates.d.ts +48 -42
- package/build/esm/ui/store/selectors/components/versions/versions_v2-ts.d.ts +859 -9
- package/build/esm/ui/store/selectors/components/versions/versions_v2.d.ts +40 -35
- package/build/esm/ui/store/selectors/global/index.d.ts +116 -102
- package/build/esm/ui/store/selectors/global/index.js +2 -3
- package/build/esm/ui/store/selectors/global/index.js.map +1 -1
- package/build/esm/ui/store/selectors/global/supported-features.d.ts +48 -42
- package/build/esm/ui/store/selectors/modals/errors.d.ts +8 -7
- package/build/esm/ui/store/selectors/navigation/content/document.d.ts +8 -7
- package/build/esm/ui/store/selectors/navigation/content/replicated-table.d.ts +24 -21
- package/build/esm/ui/store/selectors/navigation/content/table-mount-config.d.ts +8 -7
- package/build/esm/ui/store/selectors/navigation/content/table-ts.d.ts +32 -28
- package/build/esm/ui/store/selectors/navigation/content/table.d.ts +56 -49
- package/build/esm/ui/store/selectors/navigation/modals/attributes-editor.d.ts +24 -21
- package/build/esm/ui/store/selectors/navigation/modals/remote-copy-modal.d.ts +8 -7
- package/build/esm/ui/store/selectors/navigation/navigation.d.ts +16 -14
- package/build/esm/ui/store/selectors/navigation/tabs/access-log.d.ts +8 -7
- package/build/esm/ui/store/selectors/navigation/tabs/annotation.d.ts +8 -7
- package/build/esm/ui/store/selectors/navigation/tabs/consumer.d.ts +8 -7
- package/build/esm/ui/store/selectors/navigation/tabs/locks.d.ts +16 -14
- package/build/esm/ui/store/selectors/navigation/tabs/queue.d.ts +16 -14
- package/build/esm/ui/store/selectors/navigation/tabs/tablet-errors.d.ts +8 -7
- package/build/esm/ui/store/selectors/operations/index.d.ts +96 -84
- package/build/esm/ui/store/selectors/operations/jobs-monitor.d.ts +32 -28
- package/build/esm/ui/store/selectors/operations/operation.d.ts +939 -79
- package/build/esm/ui/store/selectors/operations/operation.js +2 -17
- package/build/esm/ui/store/selectors/operations/operation.js.map +1 -1
- package/build/esm/ui/store/selectors/operations/operations-list.d.ts +24 -21
- package/build/esm/ui/store/selectors/operations/statistics-v2.d.ts +64 -56
- package/build/esm/ui/store/selectors/scheduling/attributes-to-filter.d.ts +876 -0
- package/build/esm/ui/store/selectors/scheduling/attributes-to-filter.js +68 -0
- package/build/esm/ui/store/selectors/scheduling/attributes-to-filter.js.map +1 -0
- package/build/esm/ui/store/selectors/scheduling/create-pool-dialog.d.ts +8 -7
- package/build/esm/ui/store/selectors/scheduling/create-pool-dialog.js +3 -3
- package/build/esm/ui/store/selectors/scheduling/create-pool-dialog.js.map +1 -1
- package/build/esm/ui/store/selectors/scheduling/{scheduling-operations.d.ts → expanded-pools.d.ts} +14 -14
- package/build/esm/ui/store/selectors/scheduling/{scheduling-operations.js → expanded-pools.js} +13 -10
- package/build/esm/ui/store/selectors/scheduling/expanded-pools.js.map +1 -0
- package/build/esm/ui/store/selectors/scheduling/index.d.ts +8 -7
- package/build/esm/ui/store/selectors/scheduling/index.js +3 -3
- package/build/esm/ui/store/selectors/scheduling/index.js.map +1 -1
- package/build/esm/ui/store/selectors/scheduling/monitor.js +1 -1
- package/build/esm/ui/store/selectors/scheduling/monitor.js.map +1 -1
- package/build/esm/ui/store/selectors/scheduling/scheduling-pools.d.ts +2552 -3
- package/build/esm/ui/store/selectors/scheduling/scheduling-pools.js +11 -19
- package/build/esm/ui/store/selectors/scheduling/scheduling-pools.js.map +1 -1
- package/build/esm/ui/store/selectors/scheduling/scheduling-ts.d.ts +4291 -45
- package/build/esm/ui/store/selectors/scheduling/scheduling.d.ts +13739 -149
- package/build/esm/ui/store/selectors/scheduling/scheduling.js +34 -29
- package/build/esm/ui/store/selectors/scheduling/scheduling.js.map +1 -1
- package/build/esm/ui/store/selectors/system/masters.d.ts +1 -1
- package/build/esm/ui/store/selectors/system/masters.js.map +1 -1
- package/build/esm/ui/store/selectors/tablet_cell_bundles/index.d.ts +120 -105
- package/build/esm/ui/store/selectors/thor/support.d.ts +4294 -86
- package/build/esm/ui/store/selectors/thor/support.js +73 -134
- package/build/esm/ui/store/selectors/thor/support.js.map +1 -1
- package/build/esm/ui/store/selectors/thor/support.spec.js +164 -69
- package/build/esm/ui/store/selectors/thor/support.spec.js.map +1 -1
- package/build/esm/ui/store/window-store.js +1 -1
- package/build/esm/ui/store/window-store.js.map +1 -1
- package/build/esm/ui/utils/batch.d.ts +54 -0
- package/build/esm/ui/utils/batch.js +19 -0
- package/build/esm/ui/utils/batch.js.map +1 -0
- package/build/esm/ui/utils/scheduling/pool-child.d.ts +1 -1
- package/build/esm/ui/utils/scheduling/pool-child.js +20 -9
- package/build/esm/ui/utils/scheduling/pool-child.js.map +1 -1
- package/build/esm/ui/utils/scheduling/scheduling.d.ts +2 -6
- package/build/esm/ui/utils/scheduling/scheduling.js +3 -3
- package/build/esm/ui/utils/scheduling/scheduling.js.map +1 -1
- package/build/esm/ui/utils/utils.d.ts +3 -2
- package/build/esm/ui/utils/utils.js +17 -9
- package/build/esm/ui/utils/utils.js.map +1 -1
- package/dist/public/build/assets-manifest.json +7 -7
- package/dist/public/build/js/main.64fccb27.js +3 -0
- package/dist/public/build/js/{main.9d592639.js.map → main.64fccb27.js.map} +1 -1
- package/dist/public/build/js/{runtime.9491563b.js → runtime.fd8cf219.js} +2 -2
- package/dist/public/build/js/{runtime.9491563b.js.map → runtime.fd8cf219.js.map} +1 -1
- package/dist/public/build/manifest.json +4 -4
- package/package.json +2 -2
- package/build/cjs/ui/pages/scheduling/Content/SchedulingOperationsUpdater.js.map +0 -1
- package/build/cjs/ui/store/actions/scheduling/scheduling-operations.d.ts +0 -15
- package/build/cjs/ui/store/actions/scheduling/scheduling-operations.js +0 -280
- package/build/cjs/ui/store/actions/scheduling/scheduling-operations.js.map +0 -1
- package/build/cjs/ui/store/reducers/scheduling/scheduling-operations.d.ts +0 -19
- package/build/cjs/ui/store/reducers/scheduling/scheduling-operations.js.map +0 -1
- package/build/cjs/ui/store/selectors/scheduling/scheduling-operations.js +0 -32
- package/build/cjs/ui/store/selectors/scheduling/scheduling-operations.js.map +0 -1
- package/build/esm/ui/pages/scheduling/Content/SchedulingOperationsUpdater.js +0 -16
- package/build/esm/ui/pages/scheduling/Content/SchedulingOperationsUpdater.js.map +0 -1
- package/build/esm/ui/store/actions/scheduling/scheduling-operations.d.ts +0 -15
- package/build/esm/ui/store/actions/scheduling/scheduling-operations.js +0 -267
- package/build/esm/ui/store/actions/scheduling/scheduling-operations.js.map +0 -1
- package/build/esm/ui/store/reducers/scheduling/scheduling-operations.d.ts +0 -19
- package/build/esm/ui/store/reducers/scheduling/scheduling-operations.js.map +0 -1
- package/build/esm/ui/store/selectors/scheduling/scheduling-operations.js.map +0 -1
- package/dist/public/build/js/main.9d592639.js +0 -3
- /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 =
|
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 ===
|
36
|
+
return comparator === 'greater';
|
38
37
|
}
|
39
|
-
return comparator ===
|
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 ===
|
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
|
-
|
55
|
+
var key = comparator;
|
56
|
+
return _compareVersions(comparator, version, versionInterval[key]);
|
57
57
|
});
|
58
58
|
} else {
|
59
|
-
supported = _compareVersions(
|
59
|
+
supported = _compareVersions('greater', version, versionInterval);
|
60
60
|
}
|
61
61
|
return supported;
|
62
62
|
}
|
63
63
|
function getVersionAndBuild(version) {
|
64
|
-
var parsedVersion = version
|
64
|
+
var parsedVersion = version === null || version === void 0 ? void 0 : version.match(/(\d+)\.(\d+)\.(\d+)/);
|
65
65
|
var parsedBuild;
|
66
66
|
if (parsedVersion) {
|
67
|
-
|
68
|
-
parsedBuild = version.substring(parsedVersion.length);
|
69
|
-
return [
|
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
|
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
|
76
|
+
var getRawSchedulerVersion = function getRawSchedulerVersion(state) {
|
80
77
|
return state.global.schedulerVersion;
|
81
78
|
};
|
82
|
-
var
|
79
|
+
var getRawMasterVersion = function getRawMasterVersion(state) {
|
83
80
|
return state.global.masterVersion;
|
84
81
|
};
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
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
|
-
|
147
|
-
|
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
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
if (
|
155
|
-
return
|
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
|
158
|
-
|
159
|
-
|
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(
|
163
|
-
return
|
164
|
-
return _versionInInterval(
|
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(
|
132
|
+
return _versionInInterval(buildVersion[0], value);
|
168
133
|
}
|
169
|
-
}
|
134
|
+
});
|
170
135
|
};
|
171
|
-
}
|
172
|
-
export var isSupportedSelector = createSelector([
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
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
|
-
|
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 {
|
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
|
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
|
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(
|
31
|
+
var isSupported = _isFeatureSupported({
|
32
|
+
proxy: _LOCAL_ARCADIA_VERSION
|
33
|
+
}, {
|
31
34
|
knownFeature: {
|
32
|
-
|
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(
|
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(
|
43
|
+
var isSupported = _isFeatureSupported({
|
44
|
+
proxy: '19.4.29880-stable-something'
|
45
|
+
}, {
|
52
46
|
knownFeature: {
|
53
|
-
|
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(
|
54
|
+
var isSupported = _isFeatureSupported({}, {
|
62
55
|
knownFeature: {
|
63
|
-
|
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(
|
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
|
-
|
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('
|
81
|
-
|
82
|
-
|
98
|
+
describe('Multiple versions of proxy', function () {
|
99
|
+
function makeMultiFeatures() {
|
100
|
+
return {
|
83
101
|
knownFeature: {
|
84
|
-
|
85
|
-
|
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('
|
92
|
-
var isSupported = _isFeatureSupported(
|
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
|
-
|
95
|
-
|
96
|
-
|
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
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
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
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
knownFeature
|
115
|
-
|
116
|
-
|
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
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
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 () {
|