@ytsaurus/ui 1.14.1 → 1.14.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/@types/types.d.ts +1 -0
- package/build/cjs/shared/utils/index.js +3 -3
- package/build/cjs/shared/utils/index.js.map +1 -1
- package/build/cjs/ui/components/AttributesModal/AttributesModal.d.ts +1 -1
- package/build/cjs/ui/containers/RetryBatchModal/RetryBatchModal.js +1 -2
- package/build/cjs/ui/containers/RetryBatchModal/RetryBatchModal.js.map +1 -1
- package/build/cjs/ui/pages/navigation/content/Table/TableMeta/TableMeta.d.ts +1 -1
- package/build/cjs/ui/pages/operations/selectors.d.ts +1 -1
- package/build/cjs/ui/pages/query-tracker/module/api.js +1 -1
- package/build/cjs/ui/pages/query-tracker/module/api.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/module/queries_list/selectors.d.ts +4 -4
- package/build/cjs/ui/pages/query-tracker/module/query/selectors.d.ts +1 -1
- package/build/cjs/ui/pages/query-tracker/module/settings/selector.d.ts +1 -1
- package/build/cjs/ui/rum/constants.d.ts +2 -0
- package/build/cjs/ui/rum/constants.js +4 -1
- package/build/cjs/ui/rum/constants.js.map +1 -1
- package/build/cjs/ui/rum/rum-counter.js +28 -1
- package/build/cjs/ui/rum/rum-counter.js.map +1 -1
- package/build/cjs/ui/store/actions/chaos_cell_bundles/tablet-cell-bundle-editor.js +2 -1
- package/build/cjs/ui/store/actions/chaos_cell_bundles/tablet-cell-bundle-editor.js.map +1 -1
- package/build/cjs/ui/store/actions/components/nodes/nodes.js +1 -1
- package/build/cjs/ui/store/actions/components/nodes/nodes.js.map +1 -1
- package/build/cjs/ui/store/actions/execute-batch.d.ts +2 -1
- package/build/cjs/ui/store/actions/execute-batch.js +3 -3
- package/build/cjs/ui/store/actions/execute-batch.js.map +1 -1
- package/build/cjs/ui/store/actions/navigation/content/map-node.js +1 -1
- package/build/cjs/ui/store/actions/navigation/content/map-node.js.map +1 -1
- package/build/cjs/ui/store/actions/navigation/index.js +1 -1
- package/build/cjs/ui/store/actions/navigation/index.js.map +1 -1
- package/build/cjs/ui/store/actions/navigation/modals/attributes-editor.js +9 -3
- package/build/cjs/ui/store/actions/navigation/modals/attributes-editor.js.map +1 -1
- package/build/cjs/ui/store/actions/navigation/modals/copy-object.js +3 -10
- package/build/cjs/ui/store/actions/navigation/modals/copy-object.js.map +1 -1
- package/build/cjs/ui/store/actions/navigation/modals/delete-object.js +13 -14
- package/build/cjs/ui/store/actions/navigation/modals/delete-object.js.map +1 -1
- package/build/cjs/ui/store/actions/navigation/modals/dyn-tables-state-modal.js +9 -5
- package/build/cjs/ui/store/actions/navigation/modals/dyn-tables-state-modal.js.map +1 -1
- package/build/cjs/ui/store/actions/navigation/modals/move-object.js +3 -10
- package/build/cjs/ui/store/actions/navigation/modals/move-object.js.map +1 -1
- package/build/cjs/ui/store/actions/navigation/modals/restore-object.js +3 -11
- package/build/cjs/ui/store/actions/navigation/modals/restore-object.js.map +1 -1
- package/build/cjs/ui/store/actions/navigation/tabs/locks.js +1 -1
- package/build/cjs/ui/store/actions/navigation/tabs/locks.js.map +1 -1
- package/build/cjs/ui/store/actions/scheduling/expanded-pools.js +2 -3
- package/build/cjs/ui/store/actions/scheduling/expanded-pools.js.map +1 -1
- package/build/cjs/ui/store/actions/scheduling/scheduling-ts.js +3 -3
- package/build/cjs/ui/store/actions/scheduling/scheduling-ts.js.map +1 -1
- package/build/cjs/ui/store/actions/scheduling/scheduling.js +1 -1
- package/build/cjs/ui/store/actions/scheduling/scheduling.js.map +1 -1
- package/build/cjs/ui/store/actions/system/nodes.js +1 -1
- package/build/cjs/ui/store/actions/system/nodes.js.map +1 -1
- package/build/cjs/ui/store/actions/system/schedulers.js +2 -2
- package/build/cjs/ui/store/actions/system/schedulers.js.map +1 -1
- package/build/cjs/ui/store/actions/tablet/stores.js +1 -1
- package/build/cjs/ui/store/actions/tablet/stores.js.map +1 -1
- package/build/cjs/ui/store/actions/tablet_cell_bundles/index.js +1 -1
- package/build/cjs/ui/store/actions/tablet_cell_bundles/index.js.map +1 -1
- package/build/cjs/ui/store/actions/tablet_cell_bundles/tablet-cell-bundle-editor.js +5 -5
- package/build/cjs/ui/store/actions/tablet_cell_bundles/tablet-cell-bundle-editor.js.map +1 -1
- package/build/cjs/ui/store/actions/users.js +1 -1
- package/build/cjs/ui/store/actions/users.js.map +1 -1
- package/build/cjs/ui/store/reducers/execute-batch.d.ts +1 -1
- package/build/cjs/ui/store/reducers/execute-batch.js.map +1 -1
- package/build/cjs/ui/store/reducers/index.d.ts +1 -1
- package/build/cjs/ui/store/reducers/navigation/index.d.ts +1 -1
- package/build/cjs/ui/store/selectors/accounts/account-usage.d.ts +8 -8
- package/build/cjs/ui/store/selectors/accounts/accounts-ts.d.ts +8 -8
- package/build/cjs/ui/store/selectors/chaos_cell_bundles/index.d.ts +11 -11
- package/build/cjs/ui/store/selectors/chyt/index.d.ts +7 -7
- package/build/cjs/ui/store/selectors/components/node/memory.d.ts +7 -7
- package/build/cjs/ui/store/selectors/components/node-maintenance-modal.d.ts +3 -3
- package/build/cjs/ui/store/selectors/components/nodes/node-card.d.ts +1 -1
- package/build/cjs/ui/store/selectors/components/nodes/nodes/data.d.ts +2 -2
- package/build/cjs/ui/store/selectors/components/nodes/nodes/predicates.d.ts +6 -6
- package/build/cjs/ui/store/selectors/components/versions/versions_v2-ts.d.ts +2 -2
- package/build/cjs/ui/store/selectors/components/versions/versions_v2.d.ts +5 -5
- package/build/cjs/ui/store/selectors/global/index.d.ts +14 -14
- package/build/cjs/ui/store/selectors/global/supported-features.d.ts +6 -6
- package/build/cjs/ui/store/selectors/modals/errors.d.ts +1 -1
- package/build/cjs/ui/store/selectors/navigation/content/document.d.ts +1 -1
- package/build/cjs/ui/store/selectors/navigation/content/replicated-table.d.ts +3 -3
- package/build/cjs/ui/store/selectors/navigation/content/table-mount-config.d.ts +1 -1
- package/build/cjs/ui/store/selectors/navigation/content/table-ts.d.ts +4 -4
- package/build/cjs/ui/store/selectors/navigation/content/table.d.ts +7 -7
- package/build/cjs/ui/store/selectors/navigation/modals/attributes-editor.d.ts +3 -3
- package/build/cjs/ui/store/selectors/navigation/modals/remote-copy-modal.d.ts +1 -1
- package/build/cjs/ui/store/selectors/navigation/navigation.d.ts +4 -4
- package/build/cjs/ui/store/selectors/navigation/tabs/access-log.d.ts +1 -1
- package/build/cjs/ui/store/selectors/navigation/tabs/annotation.d.ts +1 -1
- package/build/cjs/ui/store/selectors/navigation/tabs/consumer.d.ts +1 -1
- package/build/cjs/ui/store/selectors/navigation/tabs/locks.d.ts +2 -2
- package/build/cjs/ui/store/selectors/navigation/tabs/queue.d.ts +2 -2
- package/build/cjs/ui/store/selectors/navigation/tabs/tablet-errors.d.ts +1 -1
- package/build/cjs/ui/store/selectors/operations/index.d.ts +12 -12
- package/build/cjs/ui/store/selectors/operations/jobs-monitor.d.ts +4 -4
- package/build/cjs/ui/store/selectors/operations/operation.d.ts +12 -12
- package/build/cjs/ui/store/selectors/operations/operations-list.d.ts +3 -3
- package/build/cjs/ui/store/selectors/operations/statistics-v2.d.ts +8 -8
- package/build/cjs/ui/store/selectors/scheduling/attributes-to-filter.d.ts +1 -1
- package/build/cjs/ui/store/selectors/scheduling/create-pool-dialog.d.ts +1 -1
- package/build/cjs/ui/store/selectors/scheduling/expanded-pools.d.ts +1 -1
- package/build/cjs/ui/store/selectors/scheduling/index.d.ts +1 -1
- package/build/cjs/ui/store/selectors/scheduling/scheduling-pools.d.ts +3 -3
- package/build/cjs/ui/store/selectors/scheduling/scheduling-ts.d.ts +6 -6
- package/build/cjs/ui/store/selectors/scheduling/scheduling.d.ts +20 -20
- package/build/cjs/ui/store/selectors/tablet_cell_bundles/index.d.ts +15 -15
- package/build/cjs/ui/store/selectors/thor/support.d.ts +5 -5
- package/build/cjs/ui/utils/acl/acl-api.js +4 -4
- package/build/cjs/ui/utils/acl/acl-api.js.map +1 -1
- package/build/cjs/ui/utils/batch.d.ts +2 -2
- package/build/cjs/ui/utils/cypress-attributes.js +1 -1
- package/build/cjs/ui/utils/cypress-attributes.js.map +1 -1
- package/build/cjs/ui/utils/errors/ui-error.d.ts +14 -0
- package/build/cjs/ui/utils/errors/ui-error.js +24 -0
- package/build/cjs/ui/utils/errors/ui-error.js.map +1 -0
- package/build/cjs/ui/utils/utils.d.ts +14 -8
- package/build/cjs/ui/utils/utils.js +9 -14
- package/build/cjs/ui/utils/utils.js.map +1 -1
- package/build/esm/@types/types.d.ts +1 -0
- package/build/esm/shared/utils/index.js +4 -8
- package/build/esm/shared/utils/index.js.map +1 -1
- package/build/esm/ui/components/AttributesModal/AttributesModal.d.ts +1 -1
- package/build/esm/ui/containers/RetryBatchModal/RetryBatchModal.js +1 -2
- package/build/esm/ui/containers/RetryBatchModal/RetryBatchModal.js.map +1 -1
- package/build/esm/ui/pages/navigation/content/Table/TableMeta/TableMeta.d.ts +1 -1
- package/build/esm/ui/pages/operations/selectors.d.ts +1 -1
- package/build/esm/ui/pages/query-tracker/module/api.js +1 -1
- package/build/esm/ui/pages/query-tracker/module/api.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/module/queries_list/selectors.d.ts +4 -4
- package/build/esm/ui/pages/query-tracker/module/query/selectors.d.ts +1 -1
- package/build/esm/ui/pages/query-tracker/module/settings/selector.d.ts +1 -1
- package/build/esm/ui/rum/constants.d.ts +2 -0
- package/build/esm/ui/rum/constants.js +4 -1
- package/build/esm/ui/rum/constants.js.map +1 -1
- package/build/esm/ui/rum/rum-counter.js +28 -1
- package/build/esm/ui/rum/rum-counter.js.map +1 -1
- package/build/esm/ui/store/actions/chaos_cell_bundles/tablet-cell-bundle-editor.js +2 -1
- package/build/esm/ui/store/actions/chaos_cell_bundles/tablet-cell-bundle-editor.js.map +1 -1
- package/build/esm/ui/store/actions/components/nodes/nodes.js +1 -1
- package/build/esm/ui/store/actions/components/nodes/nodes.js.map +1 -1
- package/build/esm/ui/store/actions/execute-batch.d.ts +2 -1
- package/build/esm/ui/store/actions/execute-batch.js +3 -3
- package/build/esm/ui/store/actions/execute-batch.js.map +1 -1
- package/build/esm/ui/store/actions/navigation/content/map-node.js +1 -1
- package/build/esm/ui/store/actions/navigation/content/map-node.js.map +1 -1
- package/build/esm/ui/store/actions/navigation/index.js +1 -1
- package/build/esm/ui/store/actions/navigation/index.js.map +1 -1
- package/build/esm/ui/store/actions/navigation/modals/attributes-editor.js +9 -3
- package/build/esm/ui/store/actions/navigation/modals/attributes-editor.js.map +1 -1
- package/build/esm/ui/store/actions/navigation/modals/copy-object.js +4 -11
- package/build/esm/ui/store/actions/navigation/modals/copy-object.js.map +1 -1
- package/build/esm/ui/store/actions/navigation/modals/delete-object.js +14 -15
- package/build/esm/ui/store/actions/navigation/modals/delete-object.js.map +1 -1
- package/build/esm/ui/store/actions/navigation/modals/dyn-tables-state-modal.js +9 -5
- package/build/esm/ui/store/actions/navigation/modals/dyn-tables-state-modal.js.map +1 -1
- package/build/esm/ui/store/actions/navigation/modals/move-object.js +4 -11
- package/build/esm/ui/store/actions/navigation/modals/move-object.js.map +1 -1
- package/build/esm/ui/store/actions/navigation/modals/restore-object.js +4 -12
- package/build/esm/ui/store/actions/navigation/modals/restore-object.js.map +1 -1
- package/build/esm/ui/store/actions/navigation/tabs/locks.js +1 -1
- package/build/esm/ui/store/actions/navigation/tabs/locks.js.map +1 -1
- package/build/esm/ui/store/actions/scheduling/expanded-pools.js +2 -3
- package/build/esm/ui/store/actions/scheduling/expanded-pools.js.map +1 -1
- package/build/esm/ui/store/actions/scheduling/scheduling-ts.js +3 -3
- package/build/esm/ui/store/actions/scheduling/scheduling-ts.js.map +1 -1
- package/build/esm/ui/store/actions/scheduling/scheduling.js +1 -1
- package/build/esm/ui/store/actions/scheduling/scheduling.js.map +1 -1
- package/build/esm/ui/store/actions/system/nodes.js +1 -1
- package/build/esm/ui/store/actions/system/nodes.js.map +1 -1
- package/build/esm/ui/store/actions/system/schedulers.js +2 -2
- package/build/esm/ui/store/actions/system/schedulers.js.map +1 -1
- package/build/esm/ui/store/actions/tablet/stores.js +1 -1
- package/build/esm/ui/store/actions/tablet/stores.js.map +1 -1
- package/build/esm/ui/store/actions/tablet_cell_bundles/index.js +1 -1
- package/build/esm/ui/store/actions/tablet_cell_bundles/index.js.map +1 -1
- package/build/esm/ui/store/actions/tablet_cell_bundles/tablet-cell-bundle-editor.js +5 -5
- package/build/esm/ui/store/actions/tablet_cell_bundles/tablet-cell-bundle-editor.js.map +1 -1
- package/build/esm/ui/store/actions/users.js +1 -1
- package/build/esm/ui/store/actions/users.js.map +1 -1
- package/build/esm/ui/store/reducers/execute-batch.d.ts +1 -1
- package/build/esm/ui/store/reducers/execute-batch.js.map +1 -1
- package/build/esm/ui/store/reducers/index.d.ts +1 -1
- package/build/esm/ui/store/reducers/navigation/index.d.ts +1 -1
- package/build/esm/ui/store/selectors/accounts/account-usage.d.ts +8 -8
- package/build/esm/ui/store/selectors/accounts/accounts-ts.d.ts +8 -8
- package/build/esm/ui/store/selectors/chaos_cell_bundles/index.d.ts +11 -11
- package/build/esm/ui/store/selectors/chyt/index.d.ts +7 -7
- package/build/esm/ui/store/selectors/components/node/memory.d.ts +7 -7
- package/build/esm/ui/store/selectors/components/node-maintenance-modal.d.ts +3 -3
- package/build/esm/ui/store/selectors/components/nodes/node-card.d.ts +1 -1
- package/build/esm/ui/store/selectors/components/nodes/nodes/data.d.ts +2 -2
- package/build/esm/ui/store/selectors/components/nodes/nodes/predicates.d.ts +6 -6
- package/build/esm/ui/store/selectors/components/versions/versions_v2-ts.d.ts +2 -2
- package/build/esm/ui/store/selectors/components/versions/versions_v2.d.ts +5 -5
- package/build/esm/ui/store/selectors/global/index.d.ts +14 -14
- package/build/esm/ui/store/selectors/global/supported-features.d.ts +6 -6
- package/build/esm/ui/store/selectors/modals/errors.d.ts +1 -1
- package/build/esm/ui/store/selectors/navigation/content/document.d.ts +1 -1
- package/build/esm/ui/store/selectors/navigation/content/replicated-table.d.ts +3 -3
- package/build/esm/ui/store/selectors/navigation/content/table-mount-config.d.ts +1 -1
- package/build/esm/ui/store/selectors/navigation/content/table-ts.d.ts +4 -4
- package/build/esm/ui/store/selectors/navigation/content/table.d.ts +7 -7
- package/build/esm/ui/store/selectors/navigation/modals/attributes-editor.d.ts +3 -3
- package/build/esm/ui/store/selectors/navigation/modals/remote-copy-modal.d.ts +1 -1
- package/build/esm/ui/store/selectors/navigation/navigation.d.ts +4 -4
- package/build/esm/ui/store/selectors/navigation/tabs/access-log.d.ts +1 -1
- package/build/esm/ui/store/selectors/navigation/tabs/annotation.d.ts +1 -1
- package/build/esm/ui/store/selectors/navigation/tabs/consumer.d.ts +1 -1
- package/build/esm/ui/store/selectors/navigation/tabs/locks.d.ts +2 -2
- package/build/esm/ui/store/selectors/navigation/tabs/queue.d.ts +2 -2
- package/build/esm/ui/store/selectors/navigation/tabs/tablet-errors.d.ts +1 -1
- package/build/esm/ui/store/selectors/operations/index.d.ts +12 -12
- package/build/esm/ui/store/selectors/operations/jobs-monitor.d.ts +4 -4
- package/build/esm/ui/store/selectors/operations/operation.d.ts +12 -12
- package/build/esm/ui/store/selectors/operations/operations-list.d.ts +3 -3
- package/build/esm/ui/store/selectors/operations/statistics-v2.d.ts +8 -8
- package/build/esm/ui/store/selectors/scheduling/attributes-to-filter.d.ts +1 -1
- package/build/esm/ui/store/selectors/scheduling/create-pool-dialog.d.ts +1 -1
- package/build/esm/ui/store/selectors/scheduling/expanded-pools.d.ts +1 -1
- package/build/esm/ui/store/selectors/scheduling/index.d.ts +1 -1
- package/build/esm/ui/store/selectors/scheduling/scheduling-pools.d.ts +3 -3
- package/build/esm/ui/store/selectors/scheduling/scheduling-ts.d.ts +6 -6
- package/build/esm/ui/store/selectors/scheduling/scheduling.d.ts +20 -20
- package/build/esm/ui/store/selectors/tablet_cell_bundles/index.d.ts +15 -15
- package/build/esm/ui/store/selectors/thor/support.d.ts +5 -5
- package/build/esm/ui/utils/acl/acl-api.js +4 -4
- package/build/esm/ui/utils/acl/acl-api.js.map +1 -1
- package/build/esm/ui/utils/batch.d.ts +2 -2
- package/build/esm/ui/utils/cypress-attributes.js +1 -1
- package/build/esm/ui/utils/cypress-attributes.js.map +1 -1
- package/build/esm/ui/utils/errors/ui-error.d.ts +14 -0
- package/build/esm/ui/utils/errors/ui-error.js +17 -0
- package/build/esm/ui/utils/errors/ui-error.js.map +1 -0
- package/build/esm/ui/utils/utils.d.ts +14 -8
- package/build/esm/ui/utils/utils.js +9 -14
- package/build/esm/ui/utils/utils.js.map +1 -1
- package/dist/public/build/assets-manifest.json +4 -4
- package/dist/public/build/js/main.8e777909.js +3 -0
- package/dist/public/build/js/{main.652b0208.js.map → main.8e777909.js.map} +1 -1
- package/dist/public/build/manifest.json +2 -2
- package/dist/shared/utils/index.js +3 -3
- package/package.json +3 -3
- package/dist/public/build/js/main.652b0208.js +0 -3
- /package/dist/public/build/js/{main.652b0208.js.LICENSE.txt → main.8e777909.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_cloneDeep","_interopRequireDefault","require","_forEach","_isEqual","_isEmpty","_map","_partition","_yt","_createTable","_utils","_rumWrapApi","obj","__esModule","default","compressionExtras","exports","labels","items","_toConsumableArray","map","value","content","subItemsMap","zlib_","genComperessionLevelItems","zstd_","brotli_","lzma_","bzip2_","from","to","res","i","push","String","compressionCodecValueFromString","SELECT_EMPTY_VALUE","k","startsWith","substr","length","compressionCodecValueToString","isEqual_","join","StorageOptions","REPLICATION","ERASURE","ERASURE_CODECS","title","storageOptionFromErasureCodec","codec","normalizeErasureCodec","erasureCodec","erasureCodecFromStorageOption","type","InMemoryMode","NONE","COMPRESSED","UNCOMPRESSED","makeUiMarker","ui_marker","prepareSetCommandForBatch","path","additionalParameters","undefined","command","parameters","_objectSpread","force","input","CypressNodeTypes","REPLICATED_TABLE","REPLICATION_LOG_TABLE","CHAOS_REPLICATED_TABLE","MAP_NODE","TABLE","createParentsBeforeSet","_x","_x2","_createParentsBeforeSet","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","nodePath","attributesToSet","parentPaths","toCreate","_iterator","_step","_loop","wrap","_callee2$","_context3","prev","next","abrupt","Promise","resolve","forEach_","attr","parents","split","key","slice","Object","keys","sort","_createForOfIteratorHelper","_loop$","_context2","yt","v3","exists","then","isCreated","set","stop","s","n","done","delegateYield","t1","e","f","finish","updateNodeAttributes","changes","isEmpty_","requests","oneLevelDiffsParents","oneLevelDiffs","_ref","attrPath","_attrPath$splice","splice","_attrPath$splice2","_slicedToArray","last","parentPath","_path","diff","all","concat","wrapBatchPromise","ytApiV3Id","executeBatch","YTApiId","promises","map_","_ref2","_callee","p","_callee$","_context","updateAttributes","_x3","_x4","oneLevelDiff","modifyGuarantee","data","cloneDeep_","isExists","get","makeBatchSubRequest","setup","prepareAttributes","attributes","_partition_","partition_","indexOf","_partition_2","paths"],"sources":["cypress-attributes.ts"],"sourcesContent":["import cloneDeep_ from 'lodash/cloneDeep';\nimport forEach_ from 'lodash/forEach';\nimport isEqual_ from 'lodash/isEqual';\nimport isEmpty_ from 'lodash/isEmpty';\nimport map_ from 'lodash/map';\nimport partition_ from 'lodash/partition';\n\n// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport {SELECT_EMPTY_VALUE} from '../constants/navigation/modals/create-table';\nimport {SelectWithSubItemsProps} from '../components/Dialog/controls/SelectWithSubItems/SelectWithSubItems';\nimport {wrapBatchPromise} from './utils';\nimport {YTApiId, ytApiV3Id} from '../rum/rum-wrap-api';\nimport {BatchSubRequest, GetParams} from '../../shared/yt-types';\nimport {ValueOf} from '../../@types/types';\n\nexport interface WithAttrs<T> {\n $attributes: T;\n}\n\nexport const compressionExtras: Pick<SelectWithSubItemsProps, 'labels' | 'items' | 'subItemsMap'> =\n {\n labels: ['codec:', 'level:'],\n items: [\n ...[\n 'none',\n 'snappy',\n 'zlib_',\n 'lz4',\n 'lz4_high_compression',\n 'quick_lz',\n 'zstd_',\n 'brotli_',\n 'lzma_',\n 'bzip2_',\n ].map((value) => ({value, content: value})),\n ],\n subItemsMap: {\n zlib_: genComperessionLevelItems(1, 9),\n zstd_: genComperessionLevelItems(1, 21),\n brotli_: genComperessionLevelItems(1, 11),\n lzma_: genComperessionLevelItems(0, 9),\n bzip2_: genComperessionLevelItems(1, 9),\n },\n };\n\nfunction genComperessionLevelItems(from: number, to: number) {\n const res = [];\n for (let i = from; i <= to; ++i) {\n res.push({value: String(i), content: String(i)});\n }\n return res;\n}\n\nexport function compressionCodecValueFromString(value: string) {\n if (!value) {\n return [SELECT_EMPTY_VALUE];\n }\n\n for (const k in compressionExtras.subItemsMap) {\n if (value.startsWith(k)) {\n return [k, value.substr(k.length)];\n }\n }\n return [value];\n}\n\nexport function compressionCodecValueToString(value: Array<string>) {\n if (isEqual_(value, [SELECT_EMPTY_VALUE])) {\n return '';\n }\n return value?.join('');\n}\n\ntype StorageOptionsType = 'replication' | 'erasure';\n\nexport const StorageOptions = {\n REPLICATION: 'replication' as StorageOptionsType,\n ERASURE: 'erasure' as StorageOptionsType,\n};\n\nexport const ERASURE_CODECS = [\n {value: 'lrc_12_2_2', title: 'lrc_12_2_2 (recommended)'},\n {value: 'reed_solomon_6_3', title: 'reed_solomon_6_3'},\n];\n\nexport function storageOptionFromErasureCodec(codec: string) {\n return !codec || codec === 'none' ? StorageOptions.REPLICATION : StorageOptions.ERASURE;\n}\n\nexport function normalizeErasureCodec(erasureCodec: string) {\n return !erasureCodec || erasureCodec === 'none' ? ERASURE_CODECS[0].value : erasureCodec;\n}\n\nexport function erasureCodecFromStorageOption(type?: StorageOptionsType, erasureCodec?: string) {\n if (type === StorageOptions.REPLICATION) {\n return 'none';\n }\n return erasureCodec || ERASURE_CODECS[0].value;\n}\n\nexport type InMemoryModeType = ValueOf<typeof InMemoryMode>;\n\nexport const InMemoryMode = {\n NONE: 'none',\n COMPRESSED: 'compressed',\n UNCOMPRESSED: 'uncompressed',\n} as const;\n\nexport function makeUiMarker(ui_marker: string) {\n return {ui_marker};\n}\n\nexport function prepareSetCommandForBatch(path: string, value: any, additionalParameters?: object) {\n if (value === undefined || value === null) {\n return {\n command: 'remove' as const,\n parameters: {\n path,\n ...additionalParameters,\n },\n };\n }\n\n return {\n command: 'set' as const,\n parameters: {\n path,\n ...additionalParameters,\n force: true,\n },\n input: value,\n };\n}\n\nexport const CypressNodeTypes = {\n REPLICATED_TABLE: 'replicated_table',\n REPLICATION_LOG_TABLE: 'replication_log_table',\n CHAOS_REPLICATED_TABLE: 'chaos_replicated_table',\n MAP_NODE: 'map_node',\n TABLE: 'table',\n // TODO: add more types\n};\n\nexport async function createParentsBeforeSet(nodePath: string, attributesToSet: Array<string>) {\n if (!attributesToSet.length) {\n return Promise.resolve();\n }\n\n const parentPaths: Record<string, boolean> = {};\n forEach_(attributesToSet, (attr) => {\n const parents = attr.split('/');\n for (let i = 1; i < parents.length; ++i) {\n const key = parents.slice(0, i).join('/');\n if (key) {\n parentPaths[key] = true;\n }\n }\n });\n const toCreate = Object.keys(parentPaths).sort();\n\n for (const attr of toCreate) {\n const path = nodePath + '/@' + attr;\n await yt.v3.exists({path}).then((isCreated: boolean) => {\n if (!isCreated) {\n return yt.v3.set({path}, {});\n }\n });\n }\n}\n\nexport function updateNodeAttributes(\n nodePath: string,\n changes: Array<{attr: string; value: any}>,\n): Promise<unknown> {\n if (isEmpty_(changes)) {\n return Promise.resolve();\n }\n\n const requests: Array<BatchSubRequest> = [];\n\n const oneLevelDiffsParents: Array<string> = [];\n const oneLevelDiffs: Record<string, Record<string, unknown>> = {};\n forEach_(changes, ({attr, value}) => {\n const attrPath = attr.split('/');\n if (attrPath.length === 1) {\n const path = nodePath + '/@' + attrPath.join('/');\n requests.push(prepareSetCommandForBatch(path, value));\n } else {\n const [last] = attrPath.splice(attrPath.length - 1, 1);\n const parentPath = attrPath.join('/');\n oneLevelDiffsParents.push(parentPath);\n const path = nodePath + '/@' + parentPath;\n const diff = (oneLevelDiffs[path] = oneLevelDiffs[path] || {});\n diff[last] = value;\n }\n });\n\n return Promise.all([\n ...(requests.length\n ? [wrapBatchPromise(ytApiV3Id.executeBatch(YTApiId.updateNodeAttributes, {requests}))]\n : []),\n createParentsBeforeSet(nodePath, oneLevelDiffsParents).then(() => {\n if (isEmpty_(oneLevelDiffs)) {\n return Promise.resolve([]);\n }\n\n const promises: Array<Promise<unknown>> = map_(oneLevelDiffs, async (diff, path) => {\n const p = updateAttributes(path, diff);\n await p;\n return p;\n });\n\n return Promise.all(promises);\n }),\n ]);\n}\n\nfunction updateAttributes(path: string, oneLevelDiff: Record<'string', unknown>) {\n if (isEmpty_(oneLevelDiff)) {\n return Promise.resolve();\n }\n\n const modifyGuarantee = (data: any = {}) => {\n const res = cloneDeep_(data);\n forEach_(oneLevelDiff, (value, key) => {\n if (value === undefined) {\n delete res[key];\n } else {\n res[key] = value;\n }\n });\n if (isEqual_(data, res)) {\n return Promise.resolve();\n }\n return yt.v3.set({path}, res);\n };\n\n return yt.v3.exists({path}).then((isExists: boolean) => {\n if (isExists) {\n return ytApiV3Id.get(YTApiId.updateAttributes, {path}).then(modifyGuarantee);\n }\n return modifyGuarantee({});\n });\n}\n\nexport function makeBatchSubRequest<T extends BatchSubRequest>(\n command: T['command'],\n parameters: T['parameters'],\n setup?: T['setup'],\n) {\n return {\n command,\n parameters,\n setup,\n } as BatchSubRequest;\n}\n\nexport function prepareAttributes(attributes: readonly string[]): GetParams['attributes'] {\n const [keys, paths] = partition_(attributes, (k) => -1 === k.indexOf('/'));\n\n if (!paths.length) {\n return keys;\n }\n\n return {keys, paths};\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["_cloneDeep","_interopRequireDefault","require","_forEach","_isEqual","_isEmpty","_map","_partition","_yt","_createTable","_utils","_rumWrapApi","obj","__esModule","default","compressionExtras","exports","labels","items","_toConsumableArray","map","value","content","subItemsMap","zlib_","genComperessionLevelItems","zstd_","brotli_","lzma_","bzip2_","from","to","res","i","push","String","compressionCodecValueFromString","SELECT_EMPTY_VALUE","k","startsWith","substr","length","compressionCodecValueToString","isEqual_","join","StorageOptions","REPLICATION","ERASURE","ERASURE_CODECS","title","storageOptionFromErasureCodec","codec","normalizeErasureCodec","erasureCodec","erasureCodecFromStorageOption","type","InMemoryMode","NONE","COMPRESSED","UNCOMPRESSED","makeUiMarker","ui_marker","prepareSetCommandForBatch","path","additionalParameters","undefined","command","parameters","_objectSpread","force","input","CypressNodeTypes","REPLICATED_TABLE","REPLICATION_LOG_TABLE","CHAOS_REPLICATED_TABLE","MAP_NODE","TABLE","createParentsBeforeSet","_x","_x2","_createParentsBeforeSet","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","nodePath","attributesToSet","parentPaths","toCreate","_iterator","_step","_loop","wrap","_callee2$","_context3","prev","next","abrupt","Promise","resolve","forEach_","attr","parents","split","key","slice","Object","keys","sort","_createForOfIteratorHelper","_loop$","_context2","yt","v3","exists","then","isCreated","set","stop","s","n","done","delegateYield","t1","e","f","finish","updateNodeAttributes","changes","isEmpty_","requests","oneLevelDiffsParents","oneLevelDiffs","_ref","attrPath","_attrPath$splice","splice","_attrPath$splice2","_slicedToArray","last","parentPath","_path","diff","all","concat","wrapBatchPromise","ytApiV3Id","executeBatch","YTApiId","promises","map_","_ref2","_callee","p","_callee$","_context","updateAttributes","_x3","_x4","oneLevelDiff","modifyGuarantee","data","cloneDeep_","isExists","get","makeBatchSubRequest","setup","prepareAttributes","attributes","_partition_","partition_","indexOf","_partition_2","paths"],"sources":["cypress-attributes.ts"],"sourcesContent":["import cloneDeep_ from 'lodash/cloneDeep';\nimport forEach_ from 'lodash/forEach';\nimport isEqual_ from 'lodash/isEqual';\nimport isEmpty_ from 'lodash/isEmpty';\nimport map_ from 'lodash/map';\nimport partition_ from 'lodash/partition';\n\n// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport {SELECT_EMPTY_VALUE} from '../constants/navigation/modals/create-table';\nimport {SelectWithSubItemsProps} from '../components/Dialog/controls/SelectWithSubItems/SelectWithSubItems';\nimport {wrapBatchPromise} from './utils';\nimport {YTApiId, ytApiV3Id} from '../rum/rum-wrap-api';\nimport {BatchSubRequest, GetParams} from '../../shared/yt-types';\nimport {ValueOf} from '../../@types/types';\n\nexport interface WithAttrs<T> {\n $attributes: T;\n}\n\nexport const compressionExtras: Pick<SelectWithSubItemsProps, 'labels' | 'items' | 'subItemsMap'> =\n {\n labels: ['codec:', 'level:'],\n items: [\n ...[\n 'none',\n 'snappy',\n 'zlib_',\n 'lz4',\n 'lz4_high_compression',\n 'quick_lz',\n 'zstd_',\n 'brotli_',\n 'lzma_',\n 'bzip2_',\n ].map((value) => ({value, content: value})),\n ],\n subItemsMap: {\n zlib_: genComperessionLevelItems(1, 9),\n zstd_: genComperessionLevelItems(1, 21),\n brotli_: genComperessionLevelItems(1, 11),\n lzma_: genComperessionLevelItems(0, 9),\n bzip2_: genComperessionLevelItems(1, 9),\n },\n };\n\nfunction genComperessionLevelItems(from: number, to: number) {\n const res = [];\n for (let i = from; i <= to; ++i) {\n res.push({value: String(i), content: String(i)});\n }\n return res;\n}\n\nexport function compressionCodecValueFromString(value: string) {\n if (!value) {\n return [SELECT_EMPTY_VALUE];\n }\n\n for (const k in compressionExtras.subItemsMap) {\n if (value.startsWith(k)) {\n return [k, value.substr(k.length)];\n }\n }\n return [value];\n}\n\nexport function compressionCodecValueToString(value: Array<string>) {\n if (isEqual_(value, [SELECT_EMPTY_VALUE])) {\n return '';\n }\n return value?.join('');\n}\n\ntype StorageOptionsType = 'replication' | 'erasure';\n\nexport const StorageOptions = {\n REPLICATION: 'replication' as StorageOptionsType,\n ERASURE: 'erasure' as StorageOptionsType,\n};\n\nexport const ERASURE_CODECS = [\n {value: 'lrc_12_2_2', title: 'lrc_12_2_2 (recommended)'},\n {value: 'reed_solomon_6_3', title: 'reed_solomon_6_3'},\n];\n\nexport function storageOptionFromErasureCodec(codec: string) {\n return !codec || codec === 'none' ? StorageOptions.REPLICATION : StorageOptions.ERASURE;\n}\n\nexport function normalizeErasureCodec(erasureCodec: string) {\n return !erasureCodec || erasureCodec === 'none' ? ERASURE_CODECS[0].value : erasureCodec;\n}\n\nexport function erasureCodecFromStorageOption(type?: StorageOptionsType, erasureCodec?: string) {\n if (type === StorageOptions.REPLICATION) {\n return 'none';\n }\n return erasureCodec || ERASURE_CODECS[0].value;\n}\n\nexport type InMemoryModeType = ValueOf<typeof InMemoryMode>;\n\nexport const InMemoryMode = {\n NONE: 'none',\n COMPRESSED: 'compressed',\n UNCOMPRESSED: 'uncompressed',\n} as const;\n\nexport function makeUiMarker(ui_marker: string) {\n return {ui_marker};\n}\n\nexport function prepareSetCommandForBatch(path: string, value: any, additionalParameters?: object) {\n if (value === undefined || value === null) {\n return {\n command: 'remove' as const,\n parameters: {\n path,\n ...additionalParameters,\n },\n };\n }\n\n return {\n command: 'set' as const,\n parameters: {\n path,\n ...additionalParameters,\n force: true,\n },\n input: value,\n };\n}\n\nexport const CypressNodeTypes = {\n REPLICATED_TABLE: 'replicated_table',\n REPLICATION_LOG_TABLE: 'replication_log_table',\n CHAOS_REPLICATED_TABLE: 'chaos_replicated_table',\n MAP_NODE: 'map_node',\n TABLE: 'table',\n // TODO: add more types\n};\n\nexport async function createParentsBeforeSet(nodePath: string, attributesToSet: Array<string>) {\n if (!attributesToSet.length) {\n return Promise.resolve();\n }\n\n const parentPaths: Record<string, boolean> = {};\n forEach_(attributesToSet, (attr) => {\n const parents = attr.split('/');\n for (let i = 1; i < parents.length; ++i) {\n const key = parents.slice(0, i).join('/');\n if (key) {\n parentPaths[key] = true;\n }\n }\n });\n const toCreate = Object.keys(parentPaths).sort();\n\n for (const attr of toCreate) {\n const path = nodePath + '/@' + attr;\n await yt.v3.exists({path}).then((isCreated: boolean) => {\n if (!isCreated) {\n return yt.v3.set({path}, {});\n }\n });\n }\n}\n\nexport function updateNodeAttributes(\n nodePath: string,\n changes: Array<{attr: string; value: any}>,\n): Promise<unknown> {\n if (isEmpty_(changes)) {\n return Promise.resolve();\n }\n\n const requests: Array<BatchSubRequest> = [];\n\n const oneLevelDiffsParents: Array<string> = [];\n const oneLevelDiffs: Record<string, Record<string, unknown>> = {};\n forEach_(changes, ({attr, value}) => {\n const attrPath = attr.split('/');\n if (attrPath.length === 1) {\n const path = nodePath + '/@' + attrPath.join('/');\n requests.push(prepareSetCommandForBatch(path, value));\n } else {\n const [last] = attrPath.splice(attrPath.length - 1, 1);\n const parentPath = attrPath.join('/');\n oneLevelDiffsParents.push(parentPath);\n const path = nodePath + '/@' + parentPath;\n const diff = (oneLevelDiffs[path] = oneLevelDiffs[path] || {});\n diff[last] = value;\n }\n });\n\n return Promise.all([\n ...(requests.length\n ? [\n wrapBatchPromise(\n ytApiV3Id.executeBatch(YTApiId.updateNodeAttributes, {requests}),\n 'Failed to update node attributes',\n ),\n ]\n : []),\n createParentsBeforeSet(nodePath, oneLevelDiffsParents).then(() => {\n if (isEmpty_(oneLevelDiffs)) {\n return Promise.resolve([]);\n }\n\n const promises: Array<Promise<unknown>> = map_(oneLevelDiffs, async (diff, path) => {\n const p = updateAttributes(path, diff);\n await p;\n return p;\n });\n\n return Promise.all(promises);\n }),\n ]);\n}\n\nfunction updateAttributes(path: string, oneLevelDiff: Record<'string', unknown>) {\n if (isEmpty_(oneLevelDiff)) {\n return Promise.resolve();\n }\n\n const modifyGuarantee = (data: any = {}) => {\n const res = cloneDeep_(data);\n forEach_(oneLevelDiff, (value, key) => {\n if (value === undefined) {\n delete res[key];\n } else {\n res[key] = value;\n }\n });\n if (isEqual_(data, res)) {\n return Promise.resolve();\n }\n return yt.v3.set({path}, res);\n };\n\n return yt.v3.exists({path}).then((isExists: boolean) => {\n if (isExists) {\n return ytApiV3Id.get(YTApiId.updateAttributes, {path}).then(modifyGuarantee);\n }\n return modifyGuarantee({});\n });\n}\n\nexport function makeBatchSubRequest<T extends BatchSubRequest>(\n command: T['command'],\n parameters: T['parameters'],\n setup?: T['setup'],\n) {\n return {\n command,\n parameters,\n setup,\n } as BatchSubRequest;\n}\n\nexport function prepareAttributes(attributes: readonly string[]): GetParams['attributes'] {\n const [keys, paths] = partition_(attributes, (k) => -1 === k.indexOf('/'));\n\n if (!paths.length) {\n return keys;\n }\n\n return {keys, paths};\n}\n"],"mappings":"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"}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { YTError } from '../../types';
|
2
|
+
export declare class UIBatchError implements YTError {
|
3
|
+
message: string;
|
4
|
+
code?: number;
|
5
|
+
attributes?: any;
|
6
|
+
inner_errors?: YTError[];
|
7
|
+
/**
|
8
|
+
* !!! Do not remove the field!!!
|
9
|
+
* The field is required to indicate the difference between the UIBatchError and YTerror interfaces
|
10
|
+
* in order to force the use of UIBatchError instead of YTError due to a compiler error.
|
11
|
+
*/
|
12
|
+
__use_UIBatchError_instead_of_YTERROR?: boolean;
|
13
|
+
constructor(msg: string);
|
14
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.UIBatchError = void 0;
|
7
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
8
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
10
|
+
var UIBatchError = exports.UIBatchError = /*#__PURE__*/(0, _createClass2.default)(function UIBatchError(msg) {
|
11
|
+
(0, _classCallCheck2.default)(this, UIBatchError);
|
12
|
+
this.message = void 0;
|
13
|
+
this.code = void 0;
|
14
|
+
this.attributes = void 0;
|
15
|
+
this.inner_errors = void 0;
|
16
|
+
/**
|
17
|
+
* !!! Do not remove the field!!!
|
18
|
+
* The field is required to indicate the difference between the UIBatchError and YTerror interfaces
|
19
|
+
* in order to force the use of UIBatchError instead of YTError due to a compiler error.
|
20
|
+
*/
|
21
|
+
this.__use_UIBatchError_instead_of_YTERROR = void 0;
|
22
|
+
this.message = msg;
|
23
|
+
});
|
24
|
+
// #sourceMappingURL=ui-error.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["UIBatchError","exports","_createClass","msg","_classCallCheck","message","code","attributes","inner_errors","__use_UIBatchError_instead_of_YTERROR"],"sources":["ui-error.ts"],"sourcesContent":["import {YTError} from '../../types';\n\nexport class UIBatchError implements YTError {\n message: string;\n\n code?: number;\n attributes?: any;\n inner_errors?: YTError[];\n\n /**\n * !!! Do not remove the field!!!\n * The field is required to indicate the difference between the UIBatchError and YTerror interfaces\n * in order to force the use of UIBatchError instead of YTError due to a compiler error.\n */\n __use_UIBatchError_instead_of_YTERROR?: boolean;\n\n constructor(msg: string) {\n this.message = msg;\n }\n}\n"],"mappings":";;;;;;;;;AAEA,IAAaA,YAAY,GAAAC,OAAA,CAAAD,YAAA,oBAAAE,qBAAA,EAcrB,SAAAF,aAAYG,GAAW,EAAE;EAAA,IAAAC,wBAAA,QAAAJ,YAAA;EAAA,KAbzBK,OAAO;EAAA,KAEPC,IAAI;EAAA,KACJC,UAAU;EAAA,KACVC,YAAY;EAEZ;AACJ;AACA;AACA;AACA;EAJI,KAKAC,qCAAqC;EAGjC,IAAI,CAACJ,OAAO,GAAGF,GAAG;AACtB,CAAC"}
|
@@ -1,11 +1,12 @@
|
|
1
1
|
import React from 'react';
|
2
|
+
import { AxiosError } from 'axios';
|
2
3
|
import { TypedKeys, YTError } from '../types';
|
3
4
|
import { ProgressProps } from '@gravity-ui/uikit';
|
4
5
|
import { ThemeThreshold } from '../utils/progress';
|
5
6
|
import { ErrorInfo } from '../store/reducers/modals/errors';
|
6
7
|
import { BatchResultsItem } from '../../shared/yt-types';
|
7
|
-
import {
|
8
|
-
export declare function getBatchError<T = unknown>(batchResults: Array<BatchResultsItem<T>>, message
|
8
|
+
import { UIBatchError } from './errors/ui-error';
|
9
|
+
export declare function getBatchError<T = unknown>(batchResults: Array<BatchResultsItem<T>>, message: string): YTError | undefined;
|
9
10
|
export declare function extractBatchV4Values<V, T extends {
|
10
11
|
value?: V;
|
11
12
|
}>(data: {
|
@@ -25,22 +26,27 @@ export interface SplitedBatchResults<T> {
|
|
25
26
|
errorIndices: Array<number>;
|
26
27
|
resultIndices: Array<number>;
|
27
28
|
}
|
28
|
-
export declare function splitBatchResults<T = unknown>(batchResults: Array<BatchResultsItem<T>>,
|
29
|
+
export declare function splitBatchResults<T = unknown>(batchResults: Array<BatchResultsItem<T>>, inputError: string | UIBatchError): SplitedBatchResults<T>;
|
29
30
|
export declare function getBatchErrorIndices<T>(results: Array<BatchResultsItem<T>>): number[];
|
30
|
-
interface
|
31
|
+
interface CommonWrapApiOptions<T> {
|
31
32
|
toasterName: string;
|
32
33
|
successContent?: React.ReactNode | ((res: T) => React.ReactNode);
|
33
34
|
skipSuccessToast?: boolean;
|
34
35
|
errorContent?: React.ReactNode | ((e: YTError) => React.ReactNode);
|
35
36
|
skipErrorToast?: boolean;
|
36
37
|
successTitle?: string;
|
37
|
-
errorTitle?: string;
|
38
38
|
timeout?: number;
|
39
39
|
autoHide?: boolean;
|
40
|
-
isBatch?: boolean;
|
41
|
-
batchError?: string;
|
42
40
|
}
|
43
|
-
|
41
|
+
type BatchWrapApiOption = {
|
42
|
+
isBatch?: false;
|
43
|
+
errorTitle?: string;
|
44
|
+
} | {
|
45
|
+
isBatch: true;
|
46
|
+
errorTitle: string;
|
47
|
+
};
|
48
|
+
type WrapApiOptions<T> = CommonWrapApiOptions<T> & BatchWrapApiOption;
|
49
|
+
export declare function wrapBatchPromise<T>(p: Promise<T>, errorTitle: string): Promise<T>;
|
44
50
|
export declare function wrapApiPromiseByToaster<T>(p: Promise<T>, options: WrapApiOptions<T>): Promise<T>;
|
45
51
|
export declare function calcProgressProps(usage?: number, limit?: number, format?: 'Number' | 'Bytes', themeThresholds?: ThemeThreshold[]): ProgressProps;
|
46
52
|
export declare function formatNumber(value?: number, format?: 'Number' | 'Bytes'): string;
|
@@ -34,22 +34,19 @@ var _map2 = _interopRequireDefault(require("lodash/map"));
|
|
34
34
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
35
35
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
36
36
|
var _react = _interopRequireDefault(require("react"));
|
37
|
+
var _axios = _interopRequireDefault(require("axios"));
|
37
38
|
var _uikit = require("@gravity-ui/uikit");
|
38
39
|
var _progress = require("../utils/progress");
|
39
40
|
var _hammer = _interopRequireDefault(require("../common/hammer"));
|
40
41
|
var _constants = require("../constants");
|
41
42
|
var _errors = require("../store/actions/modals/errors");
|
42
|
-
var
|
43
|
+
var _uiError = require("./errors/ui-error");
|
43
44
|
var _jsxRuntime = require("react/jsx-runtime");
|
44
45
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
45
46
|
var _excluded = ["results"],
|
46
47
|
_excluded2 = ["output"];
|
47
|
-
|
48
|
-
|
49
|
-
var message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : BATCH_ERROR_MESSAGE;
|
50
|
-
return splitBatchResults(batchResults, {
|
51
|
-
message: message
|
52
|
-
}).error;
|
48
|
+
function getBatchError(batchResults, message) {
|
49
|
+
return splitBatchResults(batchResults, new _uiError.UIBatchError(message)).error;
|
53
50
|
}
|
54
51
|
var COMMANDS_V4_WITH_VALUE = {
|
55
52
|
get: true,
|
@@ -77,10 +74,8 @@ function extractBatchV4Values(data, requests) {
|
|
77
74
|
results: res
|
78
75
|
});
|
79
76
|
}
|
80
|
-
function splitBatchResults(batchResults) {
|
81
|
-
var dstError =
|
82
|
-
message: BATCH_ERROR_MESSAGE
|
83
|
-
};
|
77
|
+
function splitBatchResults(batchResults, inputError) {
|
78
|
+
var dstError = typeof inputError === 'string' ? new _uiError.UIBatchError(inputError) : inputError;
|
84
79
|
var innerErrors = [];
|
85
80
|
var results = [];
|
86
81
|
var outputs = [];
|
@@ -122,9 +117,9 @@ function getBatchErrorIndices(results) {
|
|
122
117
|
}, []);
|
123
118
|
}
|
124
119
|
var toaster = new _uikit.Toaster();
|
125
|
-
function wrapBatchPromise(p) {
|
120
|
+
function wrapBatchPromise(p, errorTitle) {
|
126
121
|
return p.then(function (res) {
|
127
|
-
var error = getBatchError(res,
|
122
|
+
var error = getBatchError(res, errorTitle);
|
128
123
|
if (error) {
|
129
124
|
throw error;
|
130
125
|
}
|
@@ -136,7 +131,7 @@ function wrapApiPromiseByToaster(p, options) {
|
|
136
131
|
successContent = options.successContent;
|
137
132
|
return p.then(function (res) {
|
138
133
|
if (options.isBatch) {
|
139
|
-
var error = getBatchError(res, options.
|
134
|
+
var error = getBatchError(res, options.errorTitle || 'Missing batch error title');
|
140
135
|
if (error) {
|
141
136
|
throw error;
|
142
137
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_uikit","_progress","_hammer","_constants","_errors","_axios","_jsxRuntime","obj","__esModule","default","BATCH_ERROR_MESSAGE","getBatchError","batchResults","message","arguments","length","undefined","splitBatchResults","error","COMMANDS_V4_WITH_VALUE","get","list","exists","extractBatchV4Values","data","requests","results","rest","_objectWithoutProperties","_excluded","res","_map","itemData","index","_requests$index","hasValue","command","output","itemRest","_excluded2","_objectSpread","value","dstError","innerErrors","outputs","errorIndices","resultIndices","_forEach","push","_dstError$inner_error","_dstError$inner_error2","inner_errors","apply","getBatchErrorIndices","_reduce","acc","_ref","toaster","Toaster","wrapBatchPromise","p","then","wrapApiPromiseByToaster","options","errorContent","successContent","isBatch","batchError","skipSuccessToast","_options$timeout","add","name","toasterName","type","title","successTitle","content","autoHiding","autoHide","timeout","_error$response","axios","isCancel","Promise","reject","response","code","skipErrorToast","errorTitle","_jsxs","children","actions","label","onClick","showErrorPopup","calcProgressProps","usage","limit","format","themeThresholds","defaultThemeThresholds","computeProgress","theme","getProgressTheme","text","concat","formatNumber","hammer","showToasterError","_error$response2","unescapeSlashX","path","decoded","i","len","currentChar","charAt","nextChar","hexEscapeSequence","String","fromCharCode","parseInt","calculateLoadingStatus","loading","loaded","LOADING_STATUS","LOADING","ERROR","LOADED","UNINITIALIZED","isFinalLoadingStatus","status","delayed","callBack","rej","setTimeout","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","t0","t1","sent","t2","stop","makeLink","url","_jsx","Link","href","target","window","store","dispatch","showErrorModal","toggleBooleanInPlace","key","tmp","moveArrayElement","arr","oldIndex","newIndex","_arr$splice","splice","_arr$splice2","_slicedToArray","item","nanToUndefined","isNaN","visitTreeItems","treeItem","visitorFn","opts","handledSet","Set","visitTreeItemsImpl","isNeedToSkipChildren","has","child","openInNewTab","Object","assign","document","createElement","click","previousProps","showChangedProps","props","verbose","prevProps","console","log","Date","now","keys","changed","v","k","updateIfChanged","isEqual"],"sources":["utils.tsx"],"sourcesContent":["import React from 'react';\nimport _ from 'lodash';\n\nimport {TypedKeys, YTError} from '../types';\nimport {Link, ProgressProps, Toaster} from '@gravity-ui/uikit';\nimport {\n ThemeThreshold,\n computeProgress,\n defaultThemeThresholds,\n getProgressTheme,\n} from '../utils/progress';\nimport hammer from '../common/hammer';\nimport {LOADING_STATUS} from '../constants';\nimport {ErrorInfo} from '../store/reducers/modals/errors';\nimport {showErrorModal} from '../store/actions/modals/errors';\nimport {BatchResultsItem} from '../../shared/yt-types';\nimport axios, {AxiosError} from 'axios';\n\nconst BATCH_ERROR_MESSAGE = 'The following sub-requests are failed:';\n\nexport function getBatchError<T = unknown>(\n batchResults: Array<BatchResultsItem<T>>,\n message: string = BATCH_ERROR_MESSAGE,\n): YTError | undefined {\n return splitBatchResults(batchResults, {message}).error;\n}\n\nconst COMMANDS_V4_WITH_VALUE: Record<string, boolean> = {\n get: true,\n list: true,\n exists: true,\n};\n\nexport function extractBatchV4Values<V, T extends {value?: V}>(\n data: {\n results?: Array<BatchResultsItem<T | V>>;\n },\n requests: Array<{command: string}>,\n) {\n const {results, ...rest} = data;\n const res = !results\n ? []\n : _.map(results, (itemData, index) => {\n const hasValue = COMMANDS_V4_WITH_VALUE[requests[index]?.command];\n if (!hasValue) {\n return itemData;\n }\n\n const {output, ...itemRest} = itemData;\n return {\n ...itemRest,\n ...(hasValue ? {output: (output as any).value} : {output}),\n };\n });\n\n return {...rest, results: res};\n}\n\nexport interface SplitedBatchResults<T> {\n error: YTError | undefined;\n results: Array<T>;\n outputs: Array<T | undefined>;\n errorIndices: Array<number>;\n resultIndices: Array<number>;\n}\n\nexport function splitBatchResults<T = unknown>(\n batchResults: Array<BatchResultsItem<T>>,\n dstError: YTError = {message: BATCH_ERROR_MESSAGE},\n): SplitedBatchResults<T> {\n const innerErrors: Array<YTError> = [];\n const results: Array<T> = [];\n const outputs: Array<T | undefined> = [];\n const errorIndices: Array<number> = [];\n const resultIndices: Array<number> = [];\n _.forEach(batchResults, (res, index) => {\n const {error, output} = res;\n outputs.push(output);\n if (error) {\n innerErrors.push(error);\n errorIndices.push(index);\n } else {\n results.push(output!);\n resultIndices.push(index);\n }\n });\n\n if (innerErrors.length) {\n dstError.inner_errors = dstError.inner_errors ?? [];\n dstError.inner_errors.push(...innerErrors);\n }\n\n const error = !innerErrors.length ? undefined : dstError;\n return {error, results, outputs, errorIndices, resultIndices};\n}\n\nexport function getBatchErrorIndices<T>(results: Array<BatchResultsItem<T>>) {\n return _.reduce(\n results,\n (acc, {error}, index) => {\n if (error) {\n acc.push(index);\n }\n return acc;\n },\n [] as Array<number>,\n );\n}\n\ninterface WrapApiOptions<T> {\n toasterName: string;\n successContent?: React.ReactNode | ((res: T) => React.ReactNode);\n skipSuccessToast?: boolean;\n errorContent?: React.ReactNode | ((e: YTError) => React.ReactNode);\n skipErrorToast?: boolean;\n successTitle?: string;\n errorTitle?: string;\n timeout?: number;\n autoHide?: boolean;\n\n isBatch?: boolean;\n batchError?: string;\n}\n\nconst toaster = new Toaster();\n\nexport function wrapBatchPromise<T>(p: Promise<T>): Promise<T> {\n return p.then((res) => {\n const error = getBatchError(res as any, 'Batch-request is failed');\n if (error) {\n throw error;\n }\n\n return res;\n });\n}\n\nexport function wrapApiPromiseByToaster<T>(p: Promise<T>, options: WrapApiOptions<T>): Promise<T> {\n const {errorContent, successContent} = options;\n return p\n .then((res) => {\n if (options.isBatch) {\n const error = getBatchError(\n res as any,\n options.batchError || 'Batch-request is failed',\n );\n if (error) {\n throw error;\n }\n }\n\n if (!options.skipSuccessToast) {\n toaster.add({\n name: options.toasterName,\n type: 'success',\n title: options.successTitle || 'Success',\n content:\n 'function' === typeof successContent ? successContent(res) : successContent,\n autoHiding: options.autoHide === false ? false : options.timeout ?? 10000,\n });\n }\n return res;\n })\n .catch((error) => {\n if (axios.isCancel(error)) {\n return Promise.reject(error);\n }\n\n const data = error?.response?.data || error;\n const {code, message} = data;\n\n if (!options.skipErrorToast) {\n toaster.add({\n name: options.toasterName,\n type: 'error',\n title: options.errorTitle || 'Failure',\n content:\n 'function' === typeof errorContent\n ? errorContent(error)\n : errorContent || (\n <span>\n [code {code}] {message}\n </span>\n ),\n actions: [{label: ' Details', onClick: () => showErrorPopup(data)}],\n autoHiding: false,\n });\n }\n return Promise.reject(error);\n });\n}\n\nexport function calcProgressProps(\n usage?: number,\n limit?: number,\n format: 'Number' | 'Bytes' = 'Number',\n themeThresholds: ThemeThreshold[] = defaultThemeThresholds,\n): ProgressProps {\n const value = computeProgress(usage, limit);\n return {\n value,\n theme: getProgressTheme(value, themeThresholds),\n text: `${formatNumber(usage, format)} / ${formatNumber(limit, format)}`,\n };\n}\n\nexport function formatNumber(value?: number, format?: 'Number' | 'Bytes'): string {\n return format === 'Bytes' ? hammer.format['Bytes'](value) : hammer.format['Number'](value);\n}\n\nexport function showToasterError(name: string, error: any) {\n const data = error?.response?.data || error;\n const {code, message} = data;\n\n toaster.add({\n name,\n type: 'error',\n title: `${name} failure`,\n content: (\n <span>\n [code {code}] {message}\n </span>\n ),\n actions: [{label: ' view', onClick: () => showErrorPopup(data)}],\n });\n return Promise.reject(error);\n}\n\nexport function unescapeSlashX(path: string) {\n let decoded = '';\n\n for (let i = 0, len = path.length; i < len; i++) {\n const currentChar = path.charAt(i);\n\n if (currentChar === '\\\\') {\n const nextChar = path.charAt((i += 1));\n\n if (nextChar === 'x') {\n // TODO check that next two characters are hexademical and end of string is not reached\n const hexEscapeSequence = path.charAt((i += 1)) + path.charAt((i += 1));\n\n decoded += String.fromCharCode(parseInt(hexEscapeSequence, 16));\n } else {\n decoded += nextChar;\n }\n } else {\n decoded += currentChar;\n }\n }\n\n return decoded;\n}\n\nexport function calculateLoadingStatus(loading: boolean, loaded: boolean, error: any) {\n if (loading) {\n return LOADING_STATUS.LOADING;\n }\n\n if (error) {\n return LOADING_STATUS.ERROR;\n }\n\n if (loaded) {\n return LOADING_STATUS.LOADED;\n }\n\n return LOADING_STATUS.UNINITIALIZED;\n}\n\nexport function isFinalLoadingStatus(status: string) {\n return status === LOADING_STATUS.LOADED || status === LOADING_STATUS.ERROR;\n}\n\nexport function delayed<T>(callBack: () => Promise<T>, timeout: number): Promise<T> {\n return new Promise((res, rej) => {\n setTimeout(async () => {\n try {\n res(await callBack());\n } catch (e) {\n rej(e);\n }\n }, timeout);\n });\n}\n\nexport function makeLink(url: string, text: string) {\n return !url ? undefined : (\n <Link href={url} target={'_blank'}>\n {text}\n </Link>\n );\n}\n\nexport function showErrorPopup(\n error: YTError | AxiosError,\n options: Omit<ErrorInfo, 'error'> = {},\n) {\n (window as any).store.dispatch(showErrorModal(error, options));\n}\n\nexport function toggleBooleanInPlace<T, K extends TypedKeys<T, boolean>>(key: K, obj: T) {\n const tmp: any = obj;\n if (tmp[key]) {\n delete tmp[key];\n } else {\n tmp[key] = true;\n }\n return obj;\n}\n\nexport function moveArrayElement<T>(arr: Array<T>, oldIndex: number, newIndex: number): [] | [T] {\n if (oldIndex < 0 || oldIndex >= arr.length || newIndex < 0 || newIndex >= arr.length) {\n return [];\n }\n\n const [item] = arr.splice(oldIndex, 1);\n arr.splice(newIndex, 0, item);\n\n return [item];\n}\n\nexport function nanToUndefined(value: any) {\n return isNaN(value) ? undefined : value;\n}\n\ntype Tree<T> = T & {\n children?: Array<Tree<T>>;\n};\n\ninterface VisitTreeItemsOptions<T> {\n handledSet: Set<unknown>;\n isNeedToSkipChildren?: (item: T) => boolean;\n}\n\nexport function visitTreeItems<T>(\n treeItem: Tree<T> | undefined,\n visitorFn: (item: T) => void,\n options?: Partial<VisitTreeItemsOptions<T>>,\n) {\n const opts = {\n ...options,\n handledSet: options?.handledSet || new Set(),\n };\n\n return visitTreeItemsImpl(treeItem, visitorFn, opts);\n}\n\nfunction visitTreeItemsImpl<T>(\n treeItem: Tree<T> | undefined,\n visitorFn: (item: T) => void,\n options: VisitTreeItemsOptions<T>,\n) {\n const {handledSet, isNeedToSkipChildren} = options;\n\n if (!treeItem || handledSet.has(treeItem)) {\n return;\n }\n\n handledSet.add(treeItem);\n visitorFn(treeItem);\n\n if (isNeedToSkipChildren && isNeedToSkipChildren(treeItem)) {\n return;\n }\n\n _.forEach(treeItem.children, (child) => visitTreeItemsImpl(child, visitorFn, options));\n}\n\nexport function openInNewTab(href: string) {\n // Safari specific hack to open new tab (not window)\n Object.assign(document.createElement('a'), {\n target: '_blank',\n href,\n }).click();\n}\n\nconst previousProps: Record<string, any> = {};\n\nexport function showChangedProps(key: string, props: object, verbose?: boolean) {\n const prevProps = previousProps[key];\n if (prevProps === undefined) {\n console.log(key, Date.now(), Object.keys(props));\n } else {\n const changed: Array<string> = [];\n _.forEach(props, (v, k) => {\n if (v !== prevProps[k]) {\n changed.push(k);\n if (verbose) {\n console.log(key, k, {prev: prevProps[k], v});\n }\n }\n });\n console.log(key, Date.now(), changed);\n }\n previousProps[key] = props;\n}\n\nexport function updateIfChanged<T, K extends keyof T>(\n obj: T,\n key: K,\n value: T[K],\n isEqual?: (l: T[K], r: T[K]) => boolean,\n) {\n if (isEqual ? !isEqual(obj[key], value) : obj[key] !== value) {\n obj[key] = value;\n }\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_axios","_uikit","_progress","_hammer","_constants","_errors","_uiError","_jsxRuntime","obj","__esModule","default","getBatchError","batchResults","message","splitBatchResults","UIBatchError","error","COMMANDS_V4_WITH_VALUE","get","list","exists","extractBatchV4Values","data","requests","results","rest","_objectWithoutProperties","_excluded","res","_map","itemData","index","_requests$index","hasValue","command","output","itemRest","_excluded2","_objectSpread","value","inputError","dstError","innerErrors","outputs","errorIndices","resultIndices","_forEach","push","length","_dstError$inner_error","_dstError$inner_error2","inner_errors","apply","undefined","getBatchErrorIndices","_reduce","acc","_ref","toaster","Toaster","wrapBatchPromise","p","errorTitle","then","wrapApiPromiseByToaster","options","errorContent","successContent","isBatch","skipSuccessToast","_options$timeout","add","name","toasterName","type","title","successTitle","content","autoHiding","autoHide","timeout","_error$response","axios","isCancel","Promise","reject","response","code","skipErrorToast","_jsxs","children","actions","label","onClick","showErrorPopup","calcProgressProps","usage","limit","format","arguments","themeThresholds","defaultThemeThresholds","computeProgress","theme","getProgressTheme","text","concat","formatNumber","hammer","showToasterError","_error$response2","unescapeSlashX","path","decoded","i","len","currentChar","charAt","nextChar","hexEscapeSequence","String","fromCharCode","parseInt","calculateLoadingStatus","loading","loaded","LOADING_STATUS","LOADING","ERROR","LOADED","UNINITIALIZED","isFinalLoadingStatus","status","delayed","callBack","rej","setTimeout","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","t0","t1","sent","t2","stop","makeLink","url","_jsx","Link","href","target","window","store","dispatch","showErrorModal","toggleBooleanInPlace","key","tmp","moveArrayElement","arr","oldIndex","newIndex","_arr$splice","splice","_arr$splice2","_slicedToArray","item","nanToUndefined","isNaN","visitTreeItems","treeItem","visitorFn","opts","handledSet","Set","visitTreeItemsImpl","isNeedToSkipChildren","has","child","openInNewTab","Object","assign","document","createElement","click","previousProps","showChangedProps","props","verbose","prevProps","console","log","Date","now","keys","changed","v","k","updateIfChanged","isEqual"],"sources":["utils.tsx"],"sourcesContent":["import React from 'react';\nimport axios, {AxiosError} from 'axios';\nimport _ from 'lodash';\n\nimport {TypedKeys, YTError} from '../types';\nimport {Link, ProgressProps, Toaster} from '@gravity-ui/uikit';\nimport {\n ThemeThreshold,\n computeProgress,\n defaultThemeThresholds,\n getProgressTheme,\n} from '../utils/progress';\nimport hammer from '../common/hammer';\nimport {LOADING_STATUS} from '../constants';\nimport {ErrorInfo} from '../store/reducers/modals/errors';\nimport {showErrorModal} from '../store/actions/modals/errors';\nimport {BatchResultsItem} from '../../shared/yt-types';\n\nimport {UIBatchError} from './errors/ui-error';\n\nexport function getBatchError<T = unknown>(\n batchResults: Array<BatchResultsItem<T>>,\n message: string,\n): YTError | undefined {\n return splitBatchResults(batchResults, new UIBatchError(message)).error;\n}\n\nconst COMMANDS_V4_WITH_VALUE: Record<string, boolean> = {\n get: true,\n list: true,\n exists: true,\n};\n\nexport function extractBatchV4Values<V, T extends {value?: V}>(\n data: {\n results?: Array<BatchResultsItem<T | V>>;\n },\n requests: Array<{command: string}>,\n) {\n const {results, ...rest} = data;\n const res = !results\n ? []\n : _.map(results, (itemData, index) => {\n const hasValue = COMMANDS_V4_WITH_VALUE[requests[index]?.command];\n if (!hasValue) {\n return itemData;\n }\n\n const {output, ...itemRest} = itemData;\n return {\n ...itemRest,\n ...(hasValue ? {output: (output as any).value} : {output}),\n };\n });\n\n return {...rest, results: res};\n}\n\nexport interface SplitedBatchResults<T> {\n error: YTError | undefined;\n results: Array<T>;\n outputs: Array<T | undefined>;\n errorIndices: Array<number>;\n resultIndices: Array<number>;\n}\n\nexport function splitBatchResults<T = unknown>(\n batchResults: Array<BatchResultsItem<T>>,\n inputError: string | UIBatchError,\n): SplitedBatchResults<T> {\n const dstError: UIBatchError =\n typeof inputError === 'string' ? new UIBatchError(inputError) : inputError;\n\n const innerErrors: Array<YTError> = [];\n const results: Array<T> = [];\n const outputs: Array<T | undefined> = [];\n const errorIndices: Array<number> = [];\n const resultIndices: Array<number> = [];\n _.forEach(batchResults, (res, index) => {\n const {error, output} = res;\n outputs.push(output);\n if (error) {\n innerErrors.push(error);\n errorIndices.push(index);\n } else {\n results.push(output!);\n resultIndices.push(index);\n }\n });\n\n if (innerErrors.length) {\n dstError.inner_errors = dstError.inner_errors ?? [];\n dstError.inner_errors.push(...innerErrors);\n }\n\n const error = !innerErrors.length ? undefined : dstError;\n return {error: error as UIBatchError, results, outputs, errorIndices, resultIndices};\n}\n\nexport function getBatchErrorIndices<T>(results: Array<BatchResultsItem<T>>) {\n return _.reduce(\n results,\n (acc, {error}, index) => {\n if (error) {\n acc.push(index);\n }\n return acc;\n },\n [] as Array<number>,\n );\n}\n\ninterface CommonWrapApiOptions<T> {\n toasterName: string;\n successContent?: React.ReactNode | ((res: T) => React.ReactNode);\n skipSuccessToast?: boolean;\n errorContent?: React.ReactNode | ((e: YTError) => React.ReactNode);\n skipErrorToast?: boolean;\n successTitle?: string;\n timeout?: number;\n autoHide?: boolean;\n}\n\ntype BatchWrapApiOption =\n | {isBatch?: false; errorTitle?: string}\n | {isBatch: true; errorTitle: string};\n\ntype WrapApiOptions<T> = CommonWrapApiOptions<T> & BatchWrapApiOption;\n\nconst toaster = new Toaster();\n\nexport function wrapBatchPromise<T>(p: Promise<T>, errorTitle: string): Promise<T> {\n return p.then((res) => {\n const error = getBatchError(res as any, errorTitle);\n if (error) {\n throw error;\n }\n\n return res;\n });\n}\n\nexport function wrapApiPromiseByToaster<T>(p: Promise<T>, options: WrapApiOptions<T>): Promise<T> {\n const {errorContent, successContent} = options;\n return p\n .then((res) => {\n if (options.isBatch) {\n const error = getBatchError(\n res as any,\n options.errorTitle || 'Missing batch error title',\n );\n if (error) {\n throw error;\n }\n }\n\n if (!options.skipSuccessToast) {\n toaster.add({\n name: options.toasterName,\n type: 'success',\n title: options.successTitle || 'Success',\n content:\n 'function' === typeof successContent ? successContent(res) : successContent,\n autoHiding: options.autoHide === false ? false : options.timeout ?? 10000,\n });\n }\n return res;\n })\n .catch((error) => {\n if (axios.isCancel(error)) {\n return Promise.reject(error);\n }\n\n const data = error?.response?.data || error;\n const {code, message} = data;\n\n if (!options.skipErrorToast) {\n toaster.add({\n name: options.toasterName,\n type: 'error',\n title: options.errorTitle || 'Failure',\n content:\n 'function' === typeof errorContent\n ? errorContent(error)\n : errorContent || (\n <span>\n [code {code}] {message}\n </span>\n ),\n actions: [{label: ' Details', onClick: () => showErrorPopup(data)}],\n autoHiding: false,\n });\n }\n return Promise.reject(error);\n });\n}\n\nexport function calcProgressProps(\n usage?: number,\n limit?: number,\n format: 'Number' | 'Bytes' = 'Number',\n themeThresholds: ThemeThreshold[] = defaultThemeThresholds,\n): ProgressProps {\n const value = computeProgress(usage, limit);\n return {\n value,\n theme: getProgressTheme(value, themeThresholds),\n text: `${formatNumber(usage, format)} / ${formatNumber(limit, format)}`,\n };\n}\n\nexport function formatNumber(value?: number, format?: 'Number' | 'Bytes'): string {\n return format === 'Bytes' ? hammer.format['Bytes'](value) : hammer.format['Number'](value);\n}\n\nexport function showToasterError(name: string, error: any) {\n const data = error?.response?.data || error;\n const {code, message} = data;\n\n toaster.add({\n name,\n type: 'error',\n title: `${name} failure`,\n content: (\n <span>\n [code {code}] {message}\n </span>\n ),\n actions: [{label: ' view', onClick: () => showErrorPopup(data)}],\n });\n return Promise.reject(error);\n}\n\nexport function unescapeSlashX(path: string) {\n let decoded = '';\n\n for (let i = 0, len = path.length; i < len; i++) {\n const currentChar = path.charAt(i);\n\n if (currentChar === '\\\\') {\n const nextChar = path.charAt((i += 1));\n\n if (nextChar === 'x') {\n // TODO check that next two characters are hexademical and end of string is not reached\n const hexEscapeSequence = path.charAt((i += 1)) + path.charAt((i += 1));\n\n decoded += String.fromCharCode(parseInt(hexEscapeSequence, 16));\n } else {\n decoded += nextChar;\n }\n } else {\n decoded += currentChar;\n }\n }\n\n return decoded;\n}\n\nexport function calculateLoadingStatus(loading: boolean, loaded: boolean, error: any) {\n if (loading) {\n return LOADING_STATUS.LOADING;\n }\n\n if (error) {\n return LOADING_STATUS.ERROR;\n }\n\n if (loaded) {\n return LOADING_STATUS.LOADED;\n }\n\n return LOADING_STATUS.UNINITIALIZED;\n}\n\nexport function isFinalLoadingStatus(status: string) {\n return status === LOADING_STATUS.LOADED || status === LOADING_STATUS.ERROR;\n}\n\nexport function delayed<T>(callBack: () => Promise<T>, timeout: number): Promise<T> {\n return new Promise((res, rej) => {\n setTimeout(async () => {\n try {\n res(await callBack());\n } catch (e) {\n rej(e);\n }\n }, timeout);\n });\n}\n\nexport function makeLink(url: string, text: string) {\n return !url ? undefined : (\n <Link href={url} target={'_blank'}>\n {text}\n </Link>\n );\n}\n\nexport function showErrorPopup(\n error: YTError | AxiosError,\n options: Omit<ErrorInfo, 'error'> = {},\n) {\n (window as any).store.dispatch(showErrorModal(error, options));\n}\n\nexport function toggleBooleanInPlace<T, K extends TypedKeys<T, boolean>>(key: K, obj: T) {\n const tmp: any = obj;\n if (tmp[key]) {\n delete tmp[key];\n } else {\n tmp[key] = true;\n }\n return obj;\n}\n\nexport function moveArrayElement<T>(arr: Array<T>, oldIndex: number, newIndex: number): [] | [T] {\n if (oldIndex < 0 || oldIndex >= arr.length || newIndex < 0 || newIndex >= arr.length) {\n return [];\n }\n\n const [item] = arr.splice(oldIndex, 1);\n arr.splice(newIndex, 0, item);\n\n return [item];\n}\n\nexport function nanToUndefined(value: any) {\n return isNaN(value) ? undefined : value;\n}\n\ntype Tree<T> = T & {\n children?: Array<Tree<T>>;\n};\n\ninterface VisitTreeItemsOptions<T> {\n handledSet: Set<unknown>;\n isNeedToSkipChildren?: (item: T) => boolean;\n}\n\nexport function visitTreeItems<T>(\n treeItem: Tree<T> | undefined,\n visitorFn: (item: T) => void,\n options?: Partial<VisitTreeItemsOptions<T>>,\n) {\n const opts = {\n ...options,\n handledSet: options?.handledSet || new Set(),\n };\n\n return visitTreeItemsImpl(treeItem, visitorFn, opts);\n}\n\nfunction visitTreeItemsImpl<T>(\n treeItem: Tree<T> | undefined,\n visitorFn: (item: T) => void,\n options: VisitTreeItemsOptions<T>,\n) {\n const {handledSet, isNeedToSkipChildren} = options;\n\n if (!treeItem || handledSet.has(treeItem)) {\n return;\n }\n\n handledSet.add(treeItem);\n visitorFn(treeItem);\n\n if (isNeedToSkipChildren && isNeedToSkipChildren(treeItem)) {\n return;\n }\n\n _.forEach(treeItem.children, (child) => visitTreeItemsImpl(child, visitorFn, options));\n}\n\nexport function openInNewTab(href: string) {\n // Safari specific hack to open new tab (not window)\n Object.assign(document.createElement('a'), {\n target: '_blank',\n href,\n }).click();\n}\n\nconst previousProps: Record<string, any> = {};\n\nexport function showChangedProps(key: string, props: object, verbose?: boolean) {\n const prevProps = previousProps[key];\n if (prevProps === undefined) {\n console.log(key, Date.now(), Object.keys(props));\n } else {\n const changed: Array<string> = [];\n _.forEach(props, (v, k) => {\n if (v !== prevProps[k]) {\n changed.push(k);\n if (verbose) {\n console.log(key, k, {prev: prevProps[k], v});\n }\n }\n });\n console.log(key, Date.now(), changed);\n }\n previousProps[key] = props;\n}\n\nexport function updateIfChanged<T, K extends keyof T>(\n obj: T,\n key: K,\n value: T[K],\n isEqual?: (l: T[K], r: T[K]) => boolean,\n) {\n if (isEqual ? !isEqual(obj[key], value) : obj[key] !== value) {\n obj[key] = value;\n }\n}\n"],"mappings":"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"}
|
@@ -38,13 +38,9 @@ export function getYtPageIdParts(url) {
|
|
38
38
|
}
|
39
39
|
}
|
40
40
|
export function isYTError(error) {
|
41
|
-
var
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
trace_id = _ref2.trace_id,
|
46
|
-
pid = _ref2.pid,
|
47
|
-
tid = _ref2.tid;
|
48
|
-
return Boolean(code && trace_id && tid && pid);
|
41
|
+
var _ref2;
|
42
|
+
var _ref = (_ref2 = error) !== null && _ref2 !== void 0 ? _ref2 : {},
|
43
|
+
yt_javascript_wrapper = _ref.yt_javascript_wrapper;
|
44
|
+
return Boolean((yt_javascript_wrapper === null || yt_javascript_wrapper === void 0 ? void 0 : yt_javascript_wrapper.xYTTraceId) && (yt_javascript_wrapper === null || yt_javascript_wrapper === void 0 ? void 0 : yt_javascript_wrapper.xYTRequestId));
|
49
45
|
}
|
50
46
|
// #sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["YT_LOCAL_CLUSTER_ID","isLocalClusterId","clusterId","getYtPageIdParts","url","_URL","URL","pathname","arr","split","slice","section","splice","cluster","parts","toString","join","getPage","_unused","isYTError","error","
|
1
|
+
{"version":3,"names":["YT_LOCAL_CLUSTER_ID","isLocalClusterId","clusterId","getYtPageIdParts","url","_URL","URL","pathname","arr","split","slice","section","splice","cluster","parts","toString","join","getPage","_unused","isYTError","error","_ref2","_ref","yt_javascript_wrapper","Boolean","xYTTraceId","xYTRequestId"],"sources":["index.ts"],"sourcesContent":["import {YTError} from '../../@types/types';\nimport {YT_LOCAL_CLUSTER_ID} from '../../shared/constants';\n\nexport function isLocalClusterId(clusterId: string) {\n return clusterId === YT_LOCAL_CLUSTER_ID;\n}\n\nexport function getYtPageIdParts(url: string): PageId {\n try {\n const {pathname} = new URL(url);\n const arr = pathname.split('/').slice(1); // cut off first slash;\n\n const section = arr[1];\n\n if (section === 'operations' || section === 'tablet') {\n arr.splice(2, 1);\n } else if (section === 'job') {\n arr.splice(2, 2);\n }\n\n const cluster = arr[0]; // cluster | odin | resource-planner\n\n return {\n parts: arr,\n toString() {\n return arr.join('_');\n },\n getPage() {\n return section || cluster;\n },\n };\n } catch {\n return {\n parts: [],\n toString: () => '',\n getPage: () => '',\n };\n }\n}\n\ninterface PageId {\n parts: Array<string>;\n toString(): string;\n getPage(): string;\n}\n\nexport function isYTError(error: any): error is YTError {\n const {yt_javascript_wrapper} = (error as YTError) ?? {};\n return Boolean(yt_javascript_wrapper?.xYTTraceId && yt_javascript_wrapper?.xYTRequestId);\n}\n"],"mappings":"AACA,SAAQA,mBAAmB,QAAO,wBAAwB;AAE1D,OAAO,SAASC,gBAAgBA,CAACC,SAAiB,EAAE;EAChD,OAAOA,SAAS,KAAKF,mBAAmB;AAC5C;AAEA,OAAO,SAASG,gBAAgBA,CAACC,GAAW,EAAU;EAClD,IAAI;IACA,IAAAC,IAAA,GAAmB,IAAIC,GAAG,CAACF,GAAG,CAAC;MAAxBG,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACf,IAAMC,GAAG,GAAGD,QAAQ,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;;IAE1C,IAAMC,OAAO,GAAGH,GAAG,CAAC,CAAC,CAAC;IAEtB,IAAIG,OAAO,KAAK,YAAY,IAAIA,OAAO,KAAK,QAAQ,EAAE;MAClDH,GAAG,CAACI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC,MAAM,IAAID,OAAO,KAAK,KAAK,EAAE;MAC1BH,GAAG,CAACI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACpB;IAEA,IAAMC,OAAO,GAAGL,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;;IAExB,OAAO;MACHM,KAAK,EAAEN,GAAG;MACVO,QAAQ,WAAAA,SAAA,EAAG;QACP,OAAOP,GAAG,CAACQ,IAAI,CAAC,GAAG,CAAC;MACxB,CAAC;MACDC,OAAO,WAAAA,QAAA,EAAG;QACN,OAAON,OAAO,IAAIE,OAAO;MAC7B;IACJ,CAAC;EACL,CAAC,CAAC,OAAAK,OAAA,EAAM;IACJ,OAAO;MACHJ,KAAK,EAAE,EAAE;MACTC,QAAQ,EAAE,SAAAA,SAAA;QAAA,OAAM,EAAE;MAAA;MAClBE,OAAO,EAAE,SAAAA,QAAA;QAAA,OAAM,EAAE;MAAA;IACrB,CAAC;EACL;AACJ;AAQA,OAAO,SAASE,SAASA,CAACC,KAAU,EAAoB;EAAA,IAAAC,KAAA;EACpD,IAAAC,IAAA,IAAAD,KAAA,GAAiCD,KAAK,cAAAC,KAAA,cAAAA,KAAA,GAAgB,CAAC,CAAC;IAAjDE,qBAAqB,GAAAD,IAAA,CAArBC,qBAAqB;EAC5B,OAAOC,OAAO,CAAC,CAAAD,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAEE,UAAU,MAAIF,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAEG,YAAY,EAAC;AAC5F"}
|
@@ -50,7 +50,7 @@ declare const _default: import("react-redux").ConnectedComponent<typeof Attribut
|
|
50
50
|
break: PropTypes.Requireable<boolean>;
|
51
51
|
}>>>;
|
52
52
|
closeAttributesModal: PropTypes.Validator<(...args: any[]) => any>;
|
53
|
-
}>, "
|
53
|
+
}>, "error" | "visible" | "attributes" | "loading" | "loaded" | "title" | "errorData" | "ysonSettings" | "closeAttributesModal">>;
|
54
54
|
export default _default;
|
55
55
|
import React from 'react';
|
56
56
|
import PropTypes from 'prop-types';
|
@@ -17,8 +17,7 @@ function RetryBatchImpl(props) {
|
|
17
17
|
var id = props.id,
|
18
18
|
error = props.error,
|
19
19
|
showModal = props.showModal,
|
20
|
-
|
21
|
-
options = _props$options === void 0 ? {} : _props$options;
|
20
|
+
options = props.options;
|
22
21
|
var disableSkip = options.disableSkip;
|
23
22
|
var handleRetry = React.useCallback(function () {
|
24
23
|
dispatch(retryExecuteBatch(id));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","useDispatch","useSelector","Button","Dialog","getExecuteBatchState","ErrorBlock","rumLogError","abortExecuteBatch","retryExecuteBatch","skipExecuteBatch","jsx","_jsx","jsxs","_jsxs","BUTTON_WIDTH_STYLE","width","RetryBatchImpl","props","dispatch","id","error","showModal","
|
1
|
+
{"version":3,"names":["React","useDispatch","useSelector","Button","Dialog","getExecuteBatchState","ErrorBlock","rumLogError","abortExecuteBatch","retryExecuteBatch","skipExecuteBatch","jsx","_jsx","jsxs","_jsxs","BUTTON_WIDTH_STYLE","width","RetryBatchImpl","props","dispatch","id","error","showModal","options","disableSkip","handleRetry","useCallback","handleSkip","handleAbort","handleClose","message","open","hasCloseButton","onClose","children","Header","caption","Body","Footer","preset","showError","listenKeyEnter","textButtonCancel","textButtonApply","onClickButtonApply","onClickButtonCancel","style","onClick","size","RetryBatch","memo","RetryBatchModals","state","Fragment","_map","data","key","_objectSpread"],"sources":["RetryBatchModal.tsx"],"sourcesContent":["import React from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport _ from 'lodash';\n\nimport {Button, Dialog} from '@gravity-ui/uikit';\n\nimport {getExecuteBatchState} from '../../store/selectors/execute-batch';\nimport {ExecuteBatchStateItem} from '../../store/reducers/execute-batch';\n\nimport ErrorBlock from '../../components/Error/Error';\nimport {rumLogError} from '../../rum/rum-counter';\nimport {\n abortExecuteBatch,\n retryExecuteBatch,\n skipExecuteBatch,\n} from '../../store/actions/execute-batch';\n\nconst BUTTON_WIDTH_STYLE = {width: 128};\n\nfunction RetryBatchImpl(props: ExecuteBatchStateItem) {\n const dispatch = useDispatch();\n const {id, error, showModal, options} = props;\n const {disableSkip} = options;\n\n const handleRetry = React.useCallback(() => {\n dispatch(retryExecuteBatch(id));\n }, [dispatch, id]);\n\n const handleSkip = React.useCallback(() => {\n dispatch(skipExecuteBatch(id));\n }, [dispatch, id]);\n\n const handleAbort = React.useCallback(() => {\n dispatch(abortExecuteBatch(id));\n }, [dispatch, id]);\n\n const handleClose = React.useCallback(() => {\n rumLogError({\n message: 'RetryBatchImpl: handleClose should not be called ever',\n });\n }, []);\n\n return (\n <Dialog open={showModal} hasCloseButton={false} onClose={handleClose}>\n <Dialog.Header caption={'Error'} />\n <Dialog.Body>\n <div>Some sub-requests have been failed. Would you like to try again?</div>\n <ErrorBlock error={error} />\n </Dialog.Body>\n <Dialog.Footer\n preset={'default'}\n showError={false}\n listenKeyEnter={false}\n textButtonCancel={disableSkip ? 'Abort' : 'Skip'}\n textButtonApply={'Retry'}\n onClickButtonApply={handleRetry}\n onClickButtonCancel={disableSkip ? handleAbort : handleSkip}\n >\n {!disableSkip && (\n <div style={BUTTON_WIDTH_STYLE}>\n <Button onClick={handleAbort} size={'l'} width={'max'}>\n Abort\n </Button>\n </div>\n )}\n </Dialog.Footer>\n </Dialog>\n );\n}\n\nconst RetryBatch = React.memo(RetryBatchImpl);\n\nfunction RetryBatchModals() {\n const state = useSelector(getExecuteBatchState);\n return (\n <React.Fragment>\n {_.map(state, (data, key) => {\n return <RetryBatch key={key} {...data} />;\n })}\n </React.Fragment>\n );\n}\n\nexport default React.memo(RetryBatchModals);\n"],"mappings":"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"}
|
@@ -11,5 +11,5 @@ interface Props {
|
|
11
11
|
onEditEnableReplicatedTableTracker: AutomaticModeSwitchProps['onEdit'];
|
12
12
|
}
|
13
13
|
declare function TableMeta({ attributes, mediumList, isDynamic, tableType, collapsibleSize, onEditEnableReplicatedTableTracker, }: Props): React.JSX.Element;
|
14
|
-
declare const _default: import("react-redux").ConnectedComponent<typeof TableMeta, import("react-redux").Omit<Props, "
|
14
|
+
declare const _default: import("react-redux").ConnectedComponent<typeof TableMeta, import("react-redux").Omit<Props, "mediumList" | "attributes" | "collapsibleSize" | "isDynamic" | "tableType">>;
|
15
15
|
export default _default;
|
@@ -217,7 +217,7 @@ export declare const getShowCompetitiveJobs: ((state: Omit<import("redux").Combi
|
|
217
217
|
checkPermissionsError: undefined;
|
218
218
|
} & {
|
219
219
|
path: string;
|
220
|
-
mode: "
|
220
|
+
mode: "acl" | "attributes" | "auto" | "consumer" | "content" | "queue" | "user_attributes" | "locks" | "schema" | "tablets" | "tablet_errors" | "annotation" | "access_log" | "mount_config";
|
221
221
|
};
|
222
222
|
content: import("redux").CombinedState<{
|
223
223
|
replicatedTable: import("../../store/reducers/navigation/content/replicated-table").ReplicatedTableState;
|
@@ -367,7 +367,7 @@ export function requestQueries(ids) {
|
|
367
367
|
case 5:
|
368
368
|
resp = _context5.sent;
|
369
369
|
extracted = extractBatchV4Values(resp, requests);
|
370
|
-
_splitBatchResults = splitBatchResults((_extracted$results = extracted.results) !== null && _extracted$results !== void 0 ? _extracted$results : []), results = _splitBatchResults.results;
|
370
|
+
_splitBatchResults = splitBatchResults((_extracted$results = extracted.results) !== null && _extracted$results !== void 0 ? _extracted$results : [], 'Failed to fetch queries'), results = _splitBatchResults.results;
|
371
371
|
return _context5.abrupt("return", results);
|
372
372
|
case 9:
|
373
373
|
case "end":
|