@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.
Files changed (244) hide show
  1. package/build/cjs/@types/types.d.ts +1 -0
  2. package/build/cjs/shared/utils/index.js +3 -3
  3. package/build/cjs/shared/utils/index.js.map +1 -1
  4. package/build/cjs/ui/components/AttributesModal/AttributesModal.d.ts +1 -1
  5. package/build/cjs/ui/containers/RetryBatchModal/RetryBatchModal.js +1 -2
  6. package/build/cjs/ui/containers/RetryBatchModal/RetryBatchModal.js.map +1 -1
  7. package/build/cjs/ui/pages/navigation/content/Table/TableMeta/TableMeta.d.ts +1 -1
  8. package/build/cjs/ui/pages/operations/selectors.d.ts +1 -1
  9. package/build/cjs/ui/pages/query-tracker/module/api.js +1 -1
  10. package/build/cjs/ui/pages/query-tracker/module/api.js.map +1 -1
  11. package/build/cjs/ui/pages/query-tracker/module/queries_list/selectors.d.ts +4 -4
  12. package/build/cjs/ui/pages/query-tracker/module/query/selectors.d.ts +1 -1
  13. package/build/cjs/ui/pages/query-tracker/module/settings/selector.d.ts +1 -1
  14. package/build/cjs/ui/rum/constants.d.ts +2 -0
  15. package/build/cjs/ui/rum/constants.js +4 -1
  16. package/build/cjs/ui/rum/constants.js.map +1 -1
  17. package/build/cjs/ui/rum/rum-counter.js +28 -1
  18. package/build/cjs/ui/rum/rum-counter.js.map +1 -1
  19. package/build/cjs/ui/store/actions/chaos_cell_bundles/tablet-cell-bundle-editor.js +2 -1
  20. package/build/cjs/ui/store/actions/chaos_cell_bundles/tablet-cell-bundle-editor.js.map +1 -1
  21. package/build/cjs/ui/store/actions/components/nodes/nodes.js +1 -1
  22. package/build/cjs/ui/store/actions/components/nodes/nodes.js.map +1 -1
  23. package/build/cjs/ui/store/actions/execute-batch.d.ts +2 -1
  24. package/build/cjs/ui/store/actions/execute-batch.js +3 -3
  25. package/build/cjs/ui/store/actions/execute-batch.js.map +1 -1
  26. package/build/cjs/ui/store/actions/navigation/content/map-node.js +1 -1
  27. package/build/cjs/ui/store/actions/navigation/content/map-node.js.map +1 -1
  28. package/build/cjs/ui/store/actions/navigation/index.js +1 -1
  29. package/build/cjs/ui/store/actions/navigation/index.js.map +1 -1
  30. package/build/cjs/ui/store/actions/navigation/modals/attributes-editor.js +9 -3
  31. package/build/cjs/ui/store/actions/navigation/modals/attributes-editor.js.map +1 -1
  32. package/build/cjs/ui/store/actions/navigation/modals/copy-object.js +3 -10
  33. package/build/cjs/ui/store/actions/navigation/modals/copy-object.js.map +1 -1
  34. package/build/cjs/ui/store/actions/navigation/modals/delete-object.js +13 -14
  35. package/build/cjs/ui/store/actions/navigation/modals/delete-object.js.map +1 -1
  36. package/build/cjs/ui/store/actions/navigation/modals/dyn-tables-state-modal.js +9 -5
  37. package/build/cjs/ui/store/actions/navigation/modals/dyn-tables-state-modal.js.map +1 -1
  38. package/build/cjs/ui/store/actions/navigation/modals/move-object.js +3 -10
  39. package/build/cjs/ui/store/actions/navigation/modals/move-object.js.map +1 -1
  40. package/build/cjs/ui/store/actions/navigation/modals/restore-object.js +3 -11
  41. package/build/cjs/ui/store/actions/navigation/modals/restore-object.js.map +1 -1
  42. package/build/cjs/ui/store/actions/navigation/tabs/locks.js +1 -1
  43. package/build/cjs/ui/store/actions/navigation/tabs/locks.js.map +1 -1
  44. package/build/cjs/ui/store/actions/scheduling/expanded-pools.js +2 -3
  45. package/build/cjs/ui/store/actions/scheduling/expanded-pools.js.map +1 -1
  46. package/build/cjs/ui/store/actions/scheduling/scheduling-ts.js +3 -3
  47. package/build/cjs/ui/store/actions/scheduling/scheduling-ts.js.map +1 -1
  48. package/build/cjs/ui/store/actions/scheduling/scheduling.js +1 -1
  49. package/build/cjs/ui/store/actions/scheduling/scheduling.js.map +1 -1
  50. package/build/cjs/ui/store/actions/system/nodes.js +1 -1
  51. package/build/cjs/ui/store/actions/system/nodes.js.map +1 -1
  52. package/build/cjs/ui/store/actions/system/schedulers.js +2 -2
  53. package/build/cjs/ui/store/actions/system/schedulers.js.map +1 -1
  54. package/build/cjs/ui/store/actions/tablet/stores.js +1 -1
  55. package/build/cjs/ui/store/actions/tablet/stores.js.map +1 -1
  56. package/build/cjs/ui/store/actions/tablet_cell_bundles/index.js +1 -1
  57. package/build/cjs/ui/store/actions/tablet_cell_bundles/index.js.map +1 -1
  58. package/build/cjs/ui/store/actions/tablet_cell_bundles/tablet-cell-bundle-editor.js +5 -5
  59. package/build/cjs/ui/store/actions/tablet_cell_bundles/tablet-cell-bundle-editor.js.map +1 -1
  60. package/build/cjs/ui/store/actions/users.js +1 -1
  61. package/build/cjs/ui/store/actions/users.js.map +1 -1
  62. package/build/cjs/ui/store/reducers/execute-batch.d.ts +1 -1
  63. package/build/cjs/ui/store/reducers/execute-batch.js.map +1 -1
  64. package/build/cjs/ui/store/reducers/index.d.ts +1 -1
  65. package/build/cjs/ui/store/reducers/navigation/index.d.ts +1 -1
  66. package/build/cjs/ui/store/selectors/accounts/account-usage.d.ts +8 -8
  67. package/build/cjs/ui/store/selectors/accounts/accounts-ts.d.ts +8 -8
  68. package/build/cjs/ui/store/selectors/chaos_cell_bundles/index.d.ts +11 -11
  69. package/build/cjs/ui/store/selectors/chyt/index.d.ts +7 -7
  70. package/build/cjs/ui/store/selectors/components/node/memory.d.ts +7 -7
  71. package/build/cjs/ui/store/selectors/components/node-maintenance-modal.d.ts +3 -3
  72. package/build/cjs/ui/store/selectors/components/nodes/node-card.d.ts +1 -1
  73. package/build/cjs/ui/store/selectors/components/nodes/nodes/data.d.ts +2 -2
  74. package/build/cjs/ui/store/selectors/components/nodes/nodes/predicates.d.ts +6 -6
  75. package/build/cjs/ui/store/selectors/components/versions/versions_v2-ts.d.ts +2 -2
  76. package/build/cjs/ui/store/selectors/components/versions/versions_v2.d.ts +5 -5
  77. package/build/cjs/ui/store/selectors/global/index.d.ts +14 -14
  78. package/build/cjs/ui/store/selectors/global/supported-features.d.ts +6 -6
  79. package/build/cjs/ui/store/selectors/modals/errors.d.ts +1 -1
  80. package/build/cjs/ui/store/selectors/navigation/content/document.d.ts +1 -1
  81. package/build/cjs/ui/store/selectors/navigation/content/replicated-table.d.ts +3 -3
  82. package/build/cjs/ui/store/selectors/navigation/content/table-mount-config.d.ts +1 -1
  83. package/build/cjs/ui/store/selectors/navigation/content/table-ts.d.ts +4 -4
  84. package/build/cjs/ui/store/selectors/navigation/content/table.d.ts +7 -7
  85. package/build/cjs/ui/store/selectors/navigation/modals/attributes-editor.d.ts +3 -3
  86. package/build/cjs/ui/store/selectors/navigation/modals/remote-copy-modal.d.ts +1 -1
  87. package/build/cjs/ui/store/selectors/navigation/navigation.d.ts +4 -4
  88. package/build/cjs/ui/store/selectors/navigation/tabs/access-log.d.ts +1 -1
  89. package/build/cjs/ui/store/selectors/navigation/tabs/annotation.d.ts +1 -1
  90. package/build/cjs/ui/store/selectors/navigation/tabs/consumer.d.ts +1 -1
  91. package/build/cjs/ui/store/selectors/navigation/tabs/locks.d.ts +2 -2
  92. package/build/cjs/ui/store/selectors/navigation/tabs/queue.d.ts +2 -2
  93. package/build/cjs/ui/store/selectors/navigation/tabs/tablet-errors.d.ts +1 -1
  94. package/build/cjs/ui/store/selectors/operations/index.d.ts +12 -12
  95. package/build/cjs/ui/store/selectors/operations/jobs-monitor.d.ts +4 -4
  96. package/build/cjs/ui/store/selectors/operations/operation.d.ts +12 -12
  97. package/build/cjs/ui/store/selectors/operations/operations-list.d.ts +3 -3
  98. package/build/cjs/ui/store/selectors/operations/statistics-v2.d.ts +8 -8
  99. package/build/cjs/ui/store/selectors/scheduling/attributes-to-filter.d.ts +1 -1
  100. package/build/cjs/ui/store/selectors/scheduling/create-pool-dialog.d.ts +1 -1
  101. package/build/cjs/ui/store/selectors/scheduling/expanded-pools.d.ts +1 -1
  102. package/build/cjs/ui/store/selectors/scheduling/index.d.ts +1 -1
  103. package/build/cjs/ui/store/selectors/scheduling/scheduling-pools.d.ts +3 -3
  104. package/build/cjs/ui/store/selectors/scheduling/scheduling-ts.d.ts +6 -6
  105. package/build/cjs/ui/store/selectors/scheduling/scheduling.d.ts +20 -20
  106. package/build/cjs/ui/store/selectors/tablet_cell_bundles/index.d.ts +15 -15
  107. package/build/cjs/ui/store/selectors/thor/support.d.ts +5 -5
  108. package/build/cjs/ui/utils/acl/acl-api.js +4 -4
  109. package/build/cjs/ui/utils/acl/acl-api.js.map +1 -1
  110. package/build/cjs/ui/utils/batch.d.ts +2 -2
  111. package/build/cjs/ui/utils/cypress-attributes.js +1 -1
  112. package/build/cjs/ui/utils/cypress-attributes.js.map +1 -1
  113. package/build/cjs/ui/utils/errors/ui-error.d.ts +14 -0
  114. package/build/cjs/ui/utils/errors/ui-error.js +24 -0
  115. package/build/cjs/ui/utils/errors/ui-error.js.map +1 -0
  116. package/build/cjs/ui/utils/utils.d.ts +14 -8
  117. package/build/cjs/ui/utils/utils.js +9 -14
  118. package/build/cjs/ui/utils/utils.js.map +1 -1
  119. package/build/esm/@types/types.d.ts +1 -0
  120. package/build/esm/shared/utils/index.js +4 -8
  121. package/build/esm/shared/utils/index.js.map +1 -1
  122. package/build/esm/ui/components/AttributesModal/AttributesModal.d.ts +1 -1
  123. package/build/esm/ui/containers/RetryBatchModal/RetryBatchModal.js +1 -2
  124. package/build/esm/ui/containers/RetryBatchModal/RetryBatchModal.js.map +1 -1
  125. package/build/esm/ui/pages/navigation/content/Table/TableMeta/TableMeta.d.ts +1 -1
  126. package/build/esm/ui/pages/operations/selectors.d.ts +1 -1
  127. package/build/esm/ui/pages/query-tracker/module/api.js +1 -1
  128. package/build/esm/ui/pages/query-tracker/module/api.js.map +1 -1
  129. package/build/esm/ui/pages/query-tracker/module/queries_list/selectors.d.ts +4 -4
  130. package/build/esm/ui/pages/query-tracker/module/query/selectors.d.ts +1 -1
  131. package/build/esm/ui/pages/query-tracker/module/settings/selector.d.ts +1 -1
  132. package/build/esm/ui/rum/constants.d.ts +2 -0
  133. package/build/esm/ui/rum/constants.js +4 -1
  134. package/build/esm/ui/rum/constants.js.map +1 -1
  135. package/build/esm/ui/rum/rum-counter.js +28 -1
  136. package/build/esm/ui/rum/rum-counter.js.map +1 -1
  137. package/build/esm/ui/store/actions/chaos_cell_bundles/tablet-cell-bundle-editor.js +2 -1
  138. package/build/esm/ui/store/actions/chaos_cell_bundles/tablet-cell-bundle-editor.js.map +1 -1
  139. package/build/esm/ui/store/actions/components/nodes/nodes.js +1 -1
  140. package/build/esm/ui/store/actions/components/nodes/nodes.js.map +1 -1
  141. package/build/esm/ui/store/actions/execute-batch.d.ts +2 -1
  142. package/build/esm/ui/store/actions/execute-batch.js +3 -3
  143. package/build/esm/ui/store/actions/execute-batch.js.map +1 -1
  144. package/build/esm/ui/store/actions/navigation/content/map-node.js +1 -1
  145. package/build/esm/ui/store/actions/navigation/content/map-node.js.map +1 -1
  146. package/build/esm/ui/store/actions/navigation/index.js +1 -1
  147. package/build/esm/ui/store/actions/navigation/index.js.map +1 -1
  148. package/build/esm/ui/store/actions/navigation/modals/attributes-editor.js +9 -3
  149. package/build/esm/ui/store/actions/navigation/modals/attributes-editor.js.map +1 -1
  150. package/build/esm/ui/store/actions/navigation/modals/copy-object.js +4 -11
  151. package/build/esm/ui/store/actions/navigation/modals/copy-object.js.map +1 -1
  152. package/build/esm/ui/store/actions/navigation/modals/delete-object.js +14 -15
  153. package/build/esm/ui/store/actions/navigation/modals/delete-object.js.map +1 -1
  154. package/build/esm/ui/store/actions/navigation/modals/dyn-tables-state-modal.js +9 -5
  155. package/build/esm/ui/store/actions/navigation/modals/dyn-tables-state-modal.js.map +1 -1
  156. package/build/esm/ui/store/actions/navigation/modals/move-object.js +4 -11
  157. package/build/esm/ui/store/actions/navigation/modals/move-object.js.map +1 -1
  158. package/build/esm/ui/store/actions/navigation/modals/restore-object.js +4 -12
  159. package/build/esm/ui/store/actions/navigation/modals/restore-object.js.map +1 -1
  160. package/build/esm/ui/store/actions/navigation/tabs/locks.js +1 -1
  161. package/build/esm/ui/store/actions/navigation/tabs/locks.js.map +1 -1
  162. package/build/esm/ui/store/actions/scheduling/expanded-pools.js +2 -3
  163. package/build/esm/ui/store/actions/scheduling/expanded-pools.js.map +1 -1
  164. package/build/esm/ui/store/actions/scheduling/scheduling-ts.js +3 -3
  165. package/build/esm/ui/store/actions/scheduling/scheduling-ts.js.map +1 -1
  166. package/build/esm/ui/store/actions/scheduling/scheduling.js +1 -1
  167. package/build/esm/ui/store/actions/scheduling/scheduling.js.map +1 -1
  168. package/build/esm/ui/store/actions/system/nodes.js +1 -1
  169. package/build/esm/ui/store/actions/system/nodes.js.map +1 -1
  170. package/build/esm/ui/store/actions/system/schedulers.js +2 -2
  171. package/build/esm/ui/store/actions/system/schedulers.js.map +1 -1
  172. package/build/esm/ui/store/actions/tablet/stores.js +1 -1
  173. package/build/esm/ui/store/actions/tablet/stores.js.map +1 -1
  174. package/build/esm/ui/store/actions/tablet_cell_bundles/index.js +1 -1
  175. package/build/esm/ui/store/actions/tablet_cell_bundles/index.js.map +1 -1
  176. package/build/esm/ui/store/actions/tablet_cell_bundles/tablet-cell-bundle-editor.js +5 -5
  177. package/build/esm/ui/store/actions/tablet_cell_bundles/tablet-cell-bundle-editor.js.map +1 -1
  178. package/build/esm/ui/store/actions/users.js +1 -1
  179. package/build/esm/ui/store/actions/users.js.map +1 -1
  180. package/build/esm/ui/store/reducers/execute-batch.d.ts +1 -1
  181. package/build/esm/ui/store/reducers/execute-batch.js.map +1 -1
  182. package/build/esm/ui/store/reducers/index.d.ts +1 -1
  183. package/build/esm/ui/store/reducers/navigation/index.d.ts +1 -1
  184. package/build/esm/ui/store/selectors/accounts/account-usage.d.ts +8 -8
  185. package/build/esm/ui/store/selectors/accounts/accounts-ts.d.ts +8 -8
  186. package/build/esm/ui/store/selectors/chaos_cell_bundles/index.d.ts +11 -11
  187. package/build/esm/ui/store/selectors/chyt/index.d.ts +7 -7
  188. package/build/esm/ui/store/selectors/components/node/memory.d.ts +7 -7
  189. package/build/esm/ui/store/selectors/components/node-maintenance-modal.d.ts +3 -3
  190. package/build/esm/ui/store/selectors/components/nodes/node-card.d.ts +1 -1
  191. package/build/esm/ui/store/selectors/components/nodes/nodes/data.d.ts +2 -2
  192. package/build/esm/ui/store/selectors/components/nodes/nodes/predicates.d.ts +6 -6
  193. package/build/esm/ui/store/selectors/components/versions/versions_v2-ts.d.ts +2 -2
  194. package/build/esm/ui/store/selectors/components/versions/versions_v2.d.ts +5 -5
  195. package/build/esm/ui/store/selectors/global/index.d.ts +14 -14
  196. package/build/esm/ui/store/selectors/global/supported-features.d.ts +6 -6
  197. package/build/esm/ui/store/selectors/modals/errors.d.ts +1 -1
  198. package/build/esm/ui/store/selectors/navigation/content/document.d.ts +1 -1
  199. package/build/esm/ui/store/selectors/navigation/content/replicated-table.d.ts +3 -3
  200. package/build/esm/ui/store/selectors/navigation/content/table-mount-config.d.ts +1 -1
  201. package/build/esm/ui/store/selectors/navigation/content/table-ts.d.ts +4 -4
  202. package/build/esm/ui/store/selectors/navigation/content/table.d.ts +7 -7
  203. package/build/esm/ui/store/selectors/navigation/modals/attributes-editor.d.ts +3 -3
  204. package/build/esm/ui/store/selectors/navigation/modals/remote-copy-modal.d.ts +1 -1
  205. package/build/esm/ui/store/selectors/navigation/navigation.d.ts +4 -4
  206. package/build/esm/ui/store/selectors/navigation/tabs/access-log.d.ts +1 -1
  207. package/build/esm/ui/store/selectors/navigation/tabs/annotation.d.ts +1 -1
  208. package/build/esm/ui/store/selectors/navigation/tabs/consumer.d.ts +1 -1
  209. package/build/esm/ui/store/selectors/navigation/tabs/locks.d.ts +2 -2
  210. package/build/esm/ui/store/selectors/navigation/tabs/queue.d.ts +2 -2
  211. package/build/esm/ui/store/selectors/navigation/tabs/tablet-errors.d.ts +1 -1
  212. package/build/esm/ui/store/selectors/operations/index.d.ts +12 -12
  213. package/build/esm/ui/store/selectors/operations/jobs-monitor.d.ts +4 -4
  214. package/build/esm/ui/store/selectors/operations/operation.d.ts +12 -12
  215. package/build/esm/ui/store/selectors/operations/operations-list.d.ts +3 -3
  216. package/build/esm/ui/store/selectors/operations/statistics-v2.d.ts +8 -8
  217. package/build/esm/ui/store/selectors/scheduling/attributes-to-filter.d.ts +1 -1
  218. package/build/esm/ui/store/selectors/scheduling/create-pool-dialog.d.ts +1 -1
  219. package/build/esm/ui/store/selectors/scheduling/expanded-pools.d.ts +1 -1
  220. package/build/esm/ui/store/selectors/scheduling/index.d.ts +1 -1
  221. package/build/esm/ui/store/selectors/scheduling/scheduling-pools.d.ts +3 -3
  222. package/build/esm/ui/store/selectors/scheduling/scheduling-ts.d.ts +6 -6
  223. package/build/esm/ui/store/selectors/scheduling/scheduling.d.ts +20 -20
  224. package/build/esm/ui/store/selectors/tablet_cell_bundles/index.d.ts +15 -15
  225. package/build/esm/ui/store/selectors/thor/support.d.ts +5 -5
  226. package/build/esm/ui/utils/acl/acl-api.js +4 -4
  227. package/build/esm/ui/utils/acl/acl-api.js.map +1 -1
  228. package/build/esm/ui/utils/batch.d.ts +2 -2
  229. package/build/esm/ui/utils/cypress-attributes.js +1 -1
  230. package/build/esm/ui/utils/cypress-attributes.js.map +1 -1
  231. package/build/esm/ui/utils/errors/ui-error.d.ts +14 -0
  232. package/build/esm/ui/utils/errors/ui-error.js +17 -0
  233. package/build/esm/ui/utils/errors/ui-error.js.map +1 -0
  234. package/build/esm/ui/utils/utils.d.ts +14 -8
  235. package/build/esm/ui/utils/utils.js +9 -14
  236. package/build/esm/ui/utils/utils.js.map +1 -1
  237. package/dist/public/build/assets-manifest.json +4 -4
  238. package/dist/public/build/js/main.8e777909.js +3 -0
  239. package/dist/public/build/js/{main.652b0208.js.map → main.8e777909.js.map} +1 -1
  240. package/dist/public/build/manifest.json +2 -2
  241. package/dist/shared/utils/index.js +3 -3
  242. package/package.json +3 -3
  243. package/dist/public/build/js/main.652b0208.js +0 -3
  244. /package/dist/public/build/js/{main.652b0208.js.LICENSE.txt → main.8e777909.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["getBatchError","getBatchErrorIndices","EXECUTE_BATCH_RETRY_HIDE_MODAL","EXECUTE_BATCH_RETRY_SHOW_MODAL","rumLogError","getExecuteBatchState","ytApiV3Id","MAX_REQUESTS_COUNT_PER_BATCH","executeBatchWithRetries","_x","_x2","_x3","_executeBatchWithRetries","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","id","requests","options","results","failedRequests","innerErrors","i","from","to","current","tmp","e","error","_error","failed_requests","successful_results","_error2","_tmp","wrap","_callee$","_context","prev","next","length","slice","handleBatchSlice","sent","_concat","t0","allowRetries","isBatchError","console","concat","inner_errors","message","Error","handleFailedRequests","abrupt","stop","BATCH_ERROR_TYPE","type","_x4","_x5","_x6","_handleBatchSlice","_callee2","errorIndices","_callee2$","_context2","executeBatch","parameters","cancellation","saveCancelSourceCb","Set","_filter","_item","index","has","_x7","_handleFailedRequests","_callee3","_args3","_callee3$","_context3","undefined","Promise","res","rej","window","store","dispatch","showExecuteBatchRetryModal","resolveCb","rejectCb","batchCounter","makeId","ytApiId","params","data","_objectSpread","hideExecuteBatchRetryModal","abortExecuteBatch","getState","_getExecuteBatchState","skipExecuteBatch","retryExecuteBatch","item","then"],"sources":["execute-batch.ts"],"sourcesContent":["import _ from 'lodash';\n\nimport {getBatchError, getBatchErrorIndices} from '../../utils/utils';\nimport {YTError} from '../../types';\nimport {ExecuteBatchAction, HandleExecuteBatchRetryParams} from '../reducers/execute-batch';\nimport {ThunkAction} from 'redux-thunk';\nimport {RootState} from '../reducers';\nimport {\n EXECUTE_BATCH_RETRY_HIDE_MODAL,\n EXECUTE_BATCH_RETRY_SHOW_MODAL,\n} from '../../constants/execute-batch';\nimport {rumLogError} from '../../rum/rum-counter';\nimport {getExecuteBatchState} from '../selectors/execute-batch';\nimport {CancelTokenSource} from 'axios';\nimport {YTApiId, ytApiV3Id} from '../../rum/rum-wrap-api';\nimport {BatchResultsItem, BatchSubRequest} from '../../../shared/yt-types';\n\nconst MAX_REQUESTS_COUNT_PER_BATCH = 100;\n\nexport interface ExecuteBatchOptions {\n saveCancelSourceCb?: (source: CancelTokenSource) => void;\n disableSkip?: boolean;\n allowRetries?: boolean;\n}\n\n/**\n * The function splits requests-parameter to smaller sub-arrays and handles them sequentially.\n * Also by default if !Boolean(options?.abortOnFirstError) it displays dialog with\n * ability to retry (or skip) only failed requests.\n * @param requests\n * @param options\n */\nexport async function executeBatchWithRetries<T>(\n id: YTApiId,\n requests: Array<BatchSubRequest>,\n options?: ExecuteBatchOptions,\n): Promise<Array<BatchResultsItem<T>>> {\n let results: Array<BatchResultsItem<T>> = [];\n let failedRequests: Array<BatchSubRequest> = [];\n let innerErrors: Array<YTError> = [];\n for (let i = 0; i < requests.length; i += MAX_REQUESTS_COUNT_PER_BATCH) {\n const from = i;\n const to = from + MAX_REQUESTS_COUNT_PER_BATCH;\n\n const current = requests.slice(from, to);\n\n try {\n const tmp = await handleBatchSlice<T>(id, current, options);\n results = _.concat(results, tmp);\n } catch (err) {\n const e = err as any;\n if (!options?.allowRetries) {\n const error = isBatchError(e) ? e.error : e;\n console.error(error);\n throw error;\n }\n\n if (isBatchError<T>(e)) {\n const {error, failed_requests, successful_results} = e;\n results = results.concat(successful_results || []);\n innerErrors = innerErrors.concat(error?.inner_errors || []);\n failedRequests = failedRequests.concat(failed_requests || []);\n } else {\n rumLogError(\n {\n message: 'execute-batch with retries failed',\n },\n e,\n );\n throw new Error('Unexpected error during executeBatchWithRetries');\n }\n }\n }\n\n if (failedRequests.length) {\n const error = {\n message: 'Failed sub-requests:',\n inner_errors: innerErrors,\n };\n\n const tmp = await handleFailedRequests<T>(id, failedRequests, error);\n return results.concat(tmp);\n }\n\n return results;\n}\n\nconst BATCH_ERROR_TYPE = {type: 'BATCH_ERROR_TYPE'};\n\ninterface BatchError<T> {\n type: typeof BATCH_ERROR_TYPE;\n error: YTError;\n failed_requests: Array<BatchSubRequest>;\n successful_results: Array<BatchResultsItem<T>>;\n}\n\nfunction isBatchError<T>(error: any): error is BatchError<T> {\n return error?.type === BATCH_ERROR_TYPE;\n}\n\nasync function handleBatchSlice<T>(\n id: YTApiId,\n requests: Array<BatchSubRequest>,\n options?: ExecuteBatchOptions,\n): Promise<Array<BatchResultsItem<T>>> {\n try {\n const results: Array<BatchResultsItem<T>> = await ytApiV3Id.executeBatch(id, {\n parameters: {requests},\n cancellation: options?.saveCancelSourceCb,\n });\n const error = getBatchError(results);\n if (error) {\n const errorIndices = new Set(getBatchErrorIndices(results));\n const successful_results = _.filter(results, (_item, index) => {\n return !errorIndices.has(index);\n });\n const failed_requests = _.filter(requests, (_item, index) => {\n return errorIndices.has(index);\n });\n\n throw {\n type: BATCH_ERROR_TYPE,\n error,\n failed_requests,\n successful_results,\n };\n }\n return results;\n } catch (e) {\n if (isBatchError<T>(e)) {\n throw e;\n } else {\n throw {\n type: BATCH_ERROR_TYPE,\n error: getBatchError([{error: e as any}]),\n failed_requests: requests,\n successful_results: [],\n };\n }\n }\n}\n\nasync function handleFailedRequests<T>(\n id: YTApiId,\n requests: Array<BatchSubRequest> = [],\n error: YTError,\n options?: ExecuteBatchOptions,\n): Promise<Array<BatchResultsItem<T>>> {\n return new Promise((res, rej) => {\n (window as any).store.dispatch(\n showExecuteBatchRetryModal(id, {\n failed_requests: requests,\n error,\n resolveCb: res,\n rejectCb: rej,\n options,\n }),\n );\n });\n}\n\ntype ExecuteBatchThunkAction = ThunkAction<any, RootState, any, ExecuteBatchAction>;\n\nlet batchCounter = -1;\nfunction makeId() {\n return `batch_id_${++batchCounter}`;\n}\n\nfunction showExecuteBatchRetryModal(\n ytApiId: YTApiId,\n params: HandleExecuteBatchRetryParams,\n): ExecuteBatchThunkAction {\n return (dispatch) => {\n dispatch({\n type: EXECUTE_BATCH_RETRY_SHOW_MODAL,\n data: {...params, id: makeId(), ytApiId},\n });\n };\n}\n\nexport function hideExecuteBatchRetryModal(id: string): ExecuteBatchThunkAction {\n return (dispatch) => {\n dispatch({type: EXECUTE_BATCH_RETRY_HIDE_MODAL, data: {id}});\n };\n}\n\nexport function abortExecuteBatch(id: string): ExecuteBatchThunkAction {\n return (dispatch, getState) => {\n const {rejectCb, error} = getExecuteBatchState(getState())[id];\n rejectCb!(error);\n dispatch(hideExecuteBatchRetryModal(id));\n };\n}\n\nexport function skipExecuteBatch(id: string): ExecuteBatchThunkAction {\n return (dispatch, getState) => {\n const {resolveCb} = getExecuteBatchState(getState())[id];\n resolveCb!([]);\n dispatch(hideExecuteBatchRetryModal(id));\n };\n}\n\nexport function retryExecuteBatch(id: string): ExecuteBatchThunkAction {\n return (dispatch, getState) => {\n const item = getExecuteBatchState(getState())[id];\n if (!item) {\n rumLogError({\n message: `executeBatch with retries, store does not contain any elements with id=${id}`,\n });\n return;\n }\n\n dispatch(hideExecuteBatchRetryModal(id));\n const {failed_requests, options, resolveCb, rejectCb, ytApiId} = item;\n\n return executeBatchWithRetries(ytApiId, failed_requests, options)\n .then((res) => {\n resolveCb(res);\n })\n .catch((e) => {\n rejectCb(e);\n });\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["getBatchError","getBatchErrorIndices","EXECUTE_BATCH_RETRY_HIDE_MODAL","EXECUTE_BATCH_RETRY_SHOW_MODAL","rumLogError","getExecuteBatchState","ytApiV3Id","MAX_REQUESTS_COUNT_PER_BATCH","executeBatchWithRetries","_x","_x2","_x3","_executeBatchWithRetries","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","id","requests","options","results","failedRequests","innerErrors","i","from","to","current","tmp","e","error","_error","failed_requests","successful_results","_error2","_tmp","wrap","_callee$","_context","prev","next","length","slice","handleBatchSlice","sent","_concat","t0","allowRetries","isBatchError","console","concat","inner_errors","message","Error","handleFailedRequests","abrupt","stop","BATCH_ERROR_TYPE","type","_x4","_x5","_x6","_handleBatchSlice","_callee2","errorIndices","_callee2$","_context2","executeBatch","parameters","cancellation","saveCancelSourceCb","errorTitle","Set","_filter","_item","index","has","_x7","_handleFailedRequests","_callee3","_args3","_callee3$","_context3","undefined","Promise","res","rej","window","store","dispatch","showExecuteBatchRetryModal","resolveCb","rejectCb","batchCounter","makeId","ytApiId","params","data","_objectSpread","hideExecuteBatchRetryModal","abortExecuteBatch","getState","_getExecuteBatchState","skipExecuteBatch","retryExecuteBatch","item","then"],"sources":["execute-batch.ts"],"sourcesContent":["import _ from 'lodash';\n\nimport {getBatchError, getBatchErrorIndices} from '../../utils/utils';\nimport {YTError} from '../../types';\nimport {ExecuteBatchAction, HandleExecuteBatchRetryParams} from '../reducers/execute-batch';\nimport {ThunkAction} from 'redux-thunk';\nimport {RootState} from '../reducers';\nimport {\n EXECUTE_BATCH_RETRY_HIDE_MODAL,\n EXECUTE_BATCH_RETRY_SHOW_MODAL,\n} from '../../constants/execute-batch';\nimport {rumLogError} from '../../rum/rum-counter';\nimport {getExecuteBatchState} from '../selectors/execute-batch';\nimport {CancelTokenSource} from 'axios';\nimport {YTApiId, ytApiV3Id} from '../../rum/rum-wrap-api';\nimport {BatchResultsItem, BatchSubRequest} from '../../../shared/yt-types';\n\nconst MAX_REQUESTS_COUNT_PER_BATCH = 100;\n\nexport interface ExecuteBatchOptions {\n saveCancelSourceCb?: (source: CancelTokenSource) => void;\n disableSkip?: boolean;\n allowRetries?: boolean;\n errorTitle: string;\n}\n\n/**\n * The function splits requests-parameter to smaller sub-arrays and handles them sequentially.\n * Also by default if !Boolean(options?.abortOnFirstError) it displays dialog with\n * ability to retry (or skip) only failed requests.\n * @param requests\n * @param options\n */\nexport async function executeBatchWithRetries<T>(\n id: YTApiId,\n requests: Array<BatchSubRequest>,\n options: ExecuteBatchOptions,\n): Promise<Array<BatchResultsItem<T>>> {\n let results: Array<BatchResultsItem<T>> = [];\n let failedRequests: Array<BatchSubRequest> = [];\n let innerErrors: Array<YTError> = [];\n for (let i = 0; i < requests.length; i += MAX_REQUESTS_COUNT_PER_BATCH) {\n const from = i;\n const to = from + MAX_REQUESTS_COUNT_PER_BATCH;\n\n const current = requests.slice(from, to);\n\n try {\n const tmp = await handleBatchSlice<T>(id, current, options);\n results = _.concat(results, tmp);\n } catch (err) {\n const e = err as any;\n if (!options?.allowRetries) {\n const error = isBatchError(e) ? e.error : e;\n console.error(error);\n throw error;\n }\n\n if (isBatchError<T>(e)) {\n const {error, failed_requests, successful_results} = e;\n results = results.concat(successful_results || []);\n innerErrors = innerErrors.concat(error?.inner_errors || []);\n failedRequests = failedRequests.concat(failed_requests || []);\n } else {\n rumLogError(\n {\n message: 'execute-batch with retries failed',\n },\n e,\n );\n throw new Error('Unexpected error during executeBatchWithRetries');\n }\n }\n }\n\n if (failedRequests.length) {\n const error = {\n message: 'Failed sub-requests:',\n inner_errors: innerErrors,\n };\n\n const tmp = await handleFailedRequests<T>(id, failedRequests, error, options);\n return results.concat(tmp);\n }\n\n return results;\n}\n\nconst BATCH_ERROR_TYPE = {type: 'BATCH_ERROR_TYPE'};\n\ninterface BatchError<T> {\n type: typeof BATCH_ERROR_TYPE;\n error: YTError;\n failed_requests: Array<BatchSubRequest>;\n successful_results: Array<BatchResultsItem<T>>;\n}\n\nfunction isBatchError<T>(error: any): error is BatchError<T> {\n return error?.type === BATCH_ERROR_TYPE;\n}\n\nasync function handleBatchSlice<T>(\n id: YTApiId,\n requests: Array<BatchSubRequest>,\n options: ExecuteBatchOptions,\n): Promise<Array<BatchResultsItem<T>>> {\n try {\n const results: Array<BatchResultsItem<T>> = await ytApiV3Id.executeBatch(id, {\n parameters: {requests},\n cancellation: options?.saveCancelSourceCb,\n });\n const error = getBatchError(results, options.errorTitle);\n if (error) {\n const errorIndices = new Set(getBatchErrorIndices(results));\n const successful_results = _.filter(results, (_item, index) => {\n return !errorIndices.has(index);\n });\n const failed_requests = _.filter(requests, (_item, index) => {\n return errorIndices.has(index);\n });\n\n throw {\n type: BATCH_ERROR_TYPE,\n error,\n failed_requests,\n successful_results,\n };\n }\n return results;\n } catch (e) {\n if (isBatchError<T>(e)) {\n throw e;\n } else {\n throw {\n type: BATCH_ERROR_TYPE,\n error: getBatchError([{error: e as any}], options.errorTitle),\n failed_requests: requests,\n successful_results: [],\n };\n }\n }\n}\n\nasync function handleFailedRequests<T>(\n id: YTApiId,\n requests: Array<BatchSubRequest> = [],\n error: YTError,\n options: ExecuteBatchOptions,\n): Promise<Array<BatchResultsItem<T>>> {\n return new Promise((res, rej) => {\n (window as any).store.dispatch(\n showExecuteBatchRetryModal(id, {\n failed_requests: requests,\n error,\n resolveCb: res,\n rejectCb: rej,\n options,\n }),\n );\n });\n}\n\ntype ExecuteBatchThunkAction = ThunkAction<any, RootState, any, ExecuteBatchAction>;\n\nlet batchCounter = -1;\nfunction makeId() {\n return `batch_id_${++batchCounter}`;\n}\n\nfunction showExecuteBatchRetryModal(\n ytApiId: YTApiId,\n params: HandleExecuteBatchRetryParams,\n): ExecuteBatchThunkAction {\n return (dispatch) => {\n dispatch({\n type: EXECUTE_BATCH_RETRY_SHOW_MODAL,\n data: {...params, id: makeId(), ytApiId},\n });\n };\n}\n\nexport function hideExecuteBatchRetryModal(id: string): ExecuteBatchThunkAction {\n return (dispatch) => {\n dispatch({type: EXECUTE_BATCH_RETRY_HIDE_MODAL, data: {id}});\n };\n}\n\nexport function abortExecuteBatch(id: string): ExecuteBatchThunkAction {\n return (dispatch, getState) => {\n const {rejectCb, error} = getExecuteBatchState(getState())[id];\n rejectCb!(error);\n dispatch(hideExecuteBatchRetryModal(id));\n };\n}\n\nexport function skipExecuteBatch(id: string): ExecuteBatchThunkAction {\n return (dispatch, getState) => {\n const {resolveCb} = getExecuteBatchState(getState())[id];\n resolveCb!([]);\n dispatch(hideExecuteBatchRetryModal(id));\n };\n}\n\nexport function retryExecuteBatch(id: string): ExecuteBatchThunkAction {\n return (dispatch, getState) => {\n const item = getExecuteBatchState(getState())[id];\n if (!item) {\n rumLogError({\n message: `executeBatch with retries, store does not contain any elements with id=${id}`,\n });\n return;\n }\n\n dispatch(hideExecuteBatchRetryModal(id));\n const {failed_requests, options, resolveCb, rejectCb, ytApiId} = item;\n\n return executeBatchWithRetries(ytApiId, failed_requests, options)\n .then((res) => {\n resolveCb(res);\n })\n .catch((e) => {\n rejectCb(e);\n });\n };\n}\n"],"mappings":";;;;;AAEA,SAAQA,aAAa,EAAEC,oBAAoB,QAAO,mBAAmB;AAKrE,SACIC,8BAA8B,EAC9BC,8BAA8B,QAC3B,+BAA+B;AACtC,SAAQC,WAAW,QAAO,uBAAuB;AACjD,SAAQC,oBAAoB,QAAO,4BAA4B;AAE/D,SAAiBC,SAAS,QAAO,wBAAwB;AAGzD,IAAMC,4BAA4B,GAAG,GAAG;AASxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAsBC,uBAAuBA,CAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,wBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAqD5C,SAAAF,yBAAA;EAAAA,wBAAA,GAAAG,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CArDM,SAAAC,QACHC,EAAW,EACXC,QAAgC,EAChCC,OAA4B;IAAA,IAAAC,OAAA,EAAAC,cAAA,EAAAC,WAAA,EAAAC,CAAA,EAAAC,IAAA,EAAAC,EAAA,EAAAC,OAAA,EAAAC,GAAA,EAAAC,CAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAC,eAAA,EAAAC,kBAAA,EAAAC,OAAA,EAAAC,IAAA;IAAA,OAAApB,mBAAA,CAAAqB,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAExBnB,OAAmC,GAAG,EAAE;UACxCC,cAAsC,GAAG,EAAE;UAC3CC,WAA2B,GAAG,EAAE;UAC3BC,CAAC,GAAG,CAAC;QAAA;UAAA,MAAEA,CAAC,GAAGL,QAAQ,CAACsB,MAAM;YAAAH,QAAA,CAAAE,IAAA;YAAA;UAAA;UACzBf,IAAI,GAAGD,CAAC;UACRE,EAAE,GAAGD,IAAI,GAAGnB,4BAA4B;UAExCqB,OAAO,GAAGR,QAAQ,CAACuB,KAAK,CAACjB,IAAI,EAAEC,EAAE,CAAC;UAAAY,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAE,IAAA;UAAA,OAGlBG,gBAAgB,CAAIzB,EAAE,EAAES,OAAO,EAAEP,OAAO,CAAC;QAAA;UAArDQ,GAAG,GAAAU,QAAA,CAAAM,IAAA;UACTvB,OAAO,GAAGwB,OAAA,CAASxB,OAAO,EAAEO,GAAG,CAAC;UAACU,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAAF,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAQ,EAAA,GAAAR,QAAA;UAE3BT,CAAC,GAAAS,QAAA,CAAAQ,EAAA;UAAA,IACF1B,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAE2B,YAAY;YAAAT,QAAA,CAAAE,IAAA;YAAA;UAAA;UAChBV,KAAK,GAAGkB,YAAY,CAACnB,CAAC,CAAC,GAAGA,CAAC,CAACC,KAAK,GAAGD,CAAC;UAC3CoB,OAAO,CAACnB,KAAK,CAACA,KAAK,CAAC;UAAC,MACfA,KAAK;QAAA;UAAA,KAGXkB,YAAY,CAAInB,CAAC,CAAC;YAAAS,QAAA,CAAAE,IAAA;YAAA;UAAA;UACXV,MAAK,GAAyCD,CAAC,CAA/CC,KAAK,EAAEE,eAAe,GAAwBH,CAAC,CAAxCG,eAAe,EAAEC,kBAAkB,GAAIJ,CAAC,CAAvBI,kBAAkB;UACjDZ,OAAO,GAAGA,OAAO,CAAC6B,MAAM,CAACjB,kBAAkB,IAAI,EAAE,CAAC;UAClDV,WAAW,GAAGA,WAAW,CAAC2B,MAAM,CAAC,CAAApB,MAAK,aAALA,MAAK,uBAALA,MAAK,CAAEqB,YAAY,KAAI,EAAE,CAAC;UAC3D7B,cAAc,GAAGA,cAAc,CAAC4B,MAAM,CAAClB,eAAe,IAAI,EAAE,CAAC;UAACM,QAAA,CAAAE,IAAA;UAAA;QAAA;UAE9DrC,WAAW,CACP;YACIiD,OAAO,EAAE;UACb,CAAC,EACDvB,CACJ,CAAC;UAAC,MACI,IAAIwB,KAAK,CAAC,iDAAiD,CAAC;QAAA;UA7BzC7B,CAAC,IAAIlB,4BAA4B;UAAAgC,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAA,KAkClElB,cAAc,CAACmB,MAAM;YAAAH,QAAA,CAAAE,IAAA;YAAA;UAAA;UACfV,OAAK,GAAG;YACVsB,OAAO,EAAE,sBAAsB;YAC/BD,YAAY,EAAE5B;UAClB,CAAC;UAAAe,QAAA,CAAAE,IAAA;UAAA,OAEiBc,oBAAoB,CAAIpC,EAAE,EAAEI,cAAc,EAAEQ,OAAK,EAAEV,OAAO,CAAC;QAAA;UAAvEQ,IAAG,GAAAU,QAAA,CAAAM,IAAA;UAAA,OAAAN,QAAA,CAAAiB,MAAA,WACFlC,OAAO,CAAC6B,MAAM,CAACtB,IAAG,CAAC;QAAA;UAAA,OAAAU,QAAA,CAAAiB,MAAA,WAGvBlC,OAAO;QAAA;QAAA;UAAA,OAAAiB,QAAA,CAAAkB,IAAA;MAAA;IAAA,GAAAvC,OAAA;EAAA,CACjB;EAAA,OAAAN,wBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAED,IAAM4C,gBAAgB,GAAG;EAACC,IAAI,EAAE;AAAkB,CAAC;AASnD,SAASV,YAAYA,CAAIlB,KAAU,EAA0B;EACzD,OAAO,CAAAA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAE4B,IAAI,MAAKD,gBAAgB;AAC3C;AAAC,SAEcd,gBAAgBA,CAAAgB,GAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,iBAAA,CAAAlD,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAiD,kBAAA;EAAAA,iBAAA,GAAAhD,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CAA/B,SAAA+C,SACI7C,EAAW,EACXC,QAAgC,EAChCC,OAA4B;IAAA,IAAAC,OAAA,EAAAS,KAAA,EAAAkC,YAAA,EAAA/B,kBAAA,EAAAD,eAAA;IAAA,OAAAjB,mBAAA,CAAAqB,IAAA,UAAA6B,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAA3B,IAAA,GAAA2B,SAAA,CAAA1B,IAAA;QAAA;UAAA0B,SAAA,CAAA3B,IAAA;UAAA2B,SAAA,CAAA1B,IAAA;UAAA,OAG0BnC,SAAS,CAAC8D,YAAY,CAACjD,EAAE,EAAE;YACzEkD,UAAU,EAAE;cAACjD,QAAQ,EAARA;YAAQ,CAAC;YACtBkD,YAAY,EAAEjD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEkD;UAC3B,CAAC,CAAC;QAAA;UAHIjD,OAAmC,GAAA6C,SAAA,CAAAtB,IAAA;UAInCd,KAAK,GAAG/B,aAAa,CAACsB,OAAO,EAAED,OAAO,CAACmD,UAAU,CAAC;UAAA,KACpDzC,KAAK;YAAAoC,SAAA,CAAA1B,IAAA;YAAA;UAAA;UACCwB,YAAY,GAAG,IAAIQ,GAAG,CAACxE,oBAAoB,CAACqB,OAAO,CAAC,CAAC;UACrDY,kBAAkB,GAAGwC,OAAA,CAASpD,OAAO,EAAE,UAACqD,KAAK,EAAEC,KAAK,EAAK;YAC3D,OAAO,CAACX,YAAY,CAACY,GAAG,CAACD,KAAK,CAAC;UACnC,CAAC,CAAC;UACI3C,eAAe,GAAGyC,OAAA,CAAStD,QAAQ,EAAE,UAACuD,KAAK,EAAEC,KAAK,EAAK;YACzD,OAAOX,YAAY,CAACY,GAAG,CAACD,KAAK,CAAC;UAClC,CAAC,CAAC;UAAA,MAEI;YACFjB,IAAI,EAAED,gBAAgB;YACtB3B,KAAK,EAALA,KAAK;YACLE,eAAe,EAAfA,eAAe;YACfC,kBAAkB,EAAlBA;UACJ,CAAC;QAAA;UAAA,OAAAiC,SAAA,CAAAX,MAAA,WAEElC,OAAO;QAAA;UAAA6C,SAAA,CAAA3B,IAAA;UAAA2B,SAAA,CAAApB,EAAA,GAAAoB,SAAA;UAAA,KAEVlB,YAAY,CAAAkB,SAAA,CAAApB,EAAK,CAAC;YAAAoB,SAAA,CAAA1B,IAAA;YAAA;UAAA;UAAA,MAAA0B,SAAA,CAAApB,EAAA;QAAA;UAAA,MAGZ;YACFY,IAAI,EAAED,gBAAgB;YACtB3B,KAAK,EAAE/B,aAAa,CAAC,CAAC;cAAC+B,KAAK,EAAAoC,SAAA,CAAApB;YAAU,CAAC,CAAC,EAAE1B,OAAO,CAACmD,UAAU,CAAC;YAC7DvC,eAAe,EAAEb,QAAQ;YACzBc,kBAAkB,EAAE;UACxB,CAAC;QAAA;QAAA;UAAA,OAAAiC,SAAA,CAAAV,IAAA;MAAA;IAAA,GAAAO,QAAA;EAAA,CAGZ;EAAA,OAAAD,iBAAA,CAAAlD,KAAA,OAAAC,SAAA;AAAA;AAAA,SAEcyC,oBAAoBA,CAAAuB,GAAA;EAAA,OAAAC,qBAAA,CAAAlE,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAiE,sBAAA;EAAAA,qBAAA,GAAAhE,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CAAnC,SAAA+D,SACI7D,EAAW;IAAA,IAAAC,QAAA;MAAAW,KAAA;MAAAV,OAAA;MAAA4D,MAAA,GAAAnE,SAAA;IAAA,OAAAE,mBAAA,CAAAqB,IAAA,UAAA6C,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAA3C,IAAA,GAAA2C,SAAA,CAAA1C,IAAA;QAAA;UACXrB,QAAgC,GAAA6D,MAAA,CAAAvC,MAAA,QAAAuC,MAAA,QAAAG,SAAA,GAAAH,MAAA,MAAG,EAAE;UACrClD,KAAc,GAAAkD,MAAA,CAAAvC,MAAA,OAAAuC,MAAA,MAAAG,SAAA;UACd/D,OAA4B,GAAA4D,MAAA,CAAAvC,MAAA,OAAAuC,MAAA,MAAAG,SAAA;UAAA,OAAAD,SAAA,CAAA3B,MAAA,WAErB,IAAI6B,OAAO,CAAC,UAACC,GAAG,EAAEC,GAAG,EAAK;YAC5BC,MAAM,CAASC,KAAK,CAACC,QAAQ,CAC1BC,0BAA0B,CAACxE,EAAE,EAAE;cAC3Bc,eAAe,EAAEb,QAAQ;cACzBW,KAAK,EAALA,KAAK;cACL6D,SAAS,EAAEN,GAAG;cACdO,QAAQ,EAAEN,GAAG;cACblE,OAAO,EAAPA;YACJ,CAAC,CACL,CAAC;UACL,CAAC,CAAC;QAAA;QAAA;UAAA,OAAA8D,SAAA,CAAA1B,IAAA;MAAA;IAAA,GAAAuB,QAAA;EAAA,CACL;EAAA,OAAAD,qBAAA,CAAAlE,KAAA,OAAAC,SAAA;AAAA;AAID,IAAIgF,YAAY,GAAG,CAAC,CAAC;AACrB,SAASC,MAAMA,CAAA,EAAG;EACd,mBAAA5C,MAAA,CAAmB,EAAE2C,YAAY;AACrC;AAEA,SAASH,0BAA0BA,CAC/BK,OAAgB,EAChBC,MAAqC,EACd;EACvB,OAAO,UAACP,QAAQ,EAAK;IACjBA,QAAQ,CAAC;MACL/B,IAAI,EAAExD,8BAA8B;MACpC+F,IAAI,EAAAC,aAAA,CAAAA,aAAA,KAAMF,MAAM;QAAE9E,EAAE,EAAE4E,MAAM,CAAC,CAAC;QAAEC,OAAO,EAAPA;MAAO;IAC3C,CAAC,CAAC;EACN,CAAC;AACL;AAEA,OAAO,SAASI,0BAA0BA,CAACjF,EAAU,EAA2B;EAC5E,OAAO,UAACuE,QAAQ,EAAK;IACjBA,QAAQ,CAAC;MAAC/B,IAAI,EAAEzD,8BAA8B;MAAEgG,IAAI,EAAE;QAAC/E,EAAE,EAAFA;MAAE;IAAC,CAAC,CAAC;EAChE,CAAC;AACL;AAEA,OAAO,SAASkF,iBAAiBA,CAAClF,EAAU,EAA2B;EACnE,OAAO,UAACuE,QAAQ,EAAEY,QAAQ,EAAK;IAC3B,IAAAC,qBAAA,GAA0BlG,oBAAoB,CAACiG,QAAQ,CAAC,CAAC,CAAC,CAACnF,EAAE,CAAC;MAAvD0E,QAAQ,GAAAU,qBAAA,CAARV,QAAQ;MAAE9D,KAAK,GAAAwE,qBAAA,CAALxE,KAAK;IACtB8D,QAAQ,CAAE9D,KAAK,CAAC;IAChB2D,QAAQ,CAACU,0BAA0B,CAACjF,EAAE,CAAC,CAAC;EAC5C,CAAC;AACL;AAEA,OAAO,SAASqF,gBAAgBA,CAACrF,EAAU,EAA2B;EAClE,OAAO,UAACuE,QAAQ,EAAEY,QAAQ,EAAK;IAC3B,IAAOV,SAAS,GAAIvF,oBAAoB,CAACiG,QAAQ,CAAC,CAAC,CAAC,CAACnF,EAAE,CAAC,CAAjDyE,SAAS;IAChBA,SAAS,CAAE,EAAE,CAAC;IACdF,QAAQ,CAACU,0BAA0B,CAACjF,EAAE,CAAC,CAAC;EAC5C,CAAC;AACL;AAEA,OAAO,SAASsF,iBAAiBA,CAACtF,EAAU,EAA2B;EACnE,OAAO,UAACuE,QAAQ,EAAEY,QAAQ,EAAK;IAC3B,IAAMI,IAAI,GAAGrG,oBAAoB,CAACiG,QAAQ,CAAC,CAAC,CAAC,CAACnF,EAAE,CAAC;IACjD,IAAI,CAACuF,IAAI,EAAE;MACPtG,WAAW,CAAC;QACRiD,OAAO,4EAAAF,MAAA,CAA4EhC,EAAE;MACzF,CAAC,CAAC;MACF;IACJ;IAEAuE,QAAQ,CAACU,0BAA0B,CAACjF,EAAE,CAAC,CAAC;IACxC,IAAOc,eAAe,GAA2CyE,IAAI,CAA9DzE,eAAe;MAAEZ,OAAO,GAAkCqF,IAAI,CAA7CrF,OAAO;MAAEuE,SAAS,GAAuBc,IAAI,CAApCd,SAAS;MAAEC,QAAQ,GAAaa,IAAI,CAAzBb,QAAQ;MAAEG,OAAO,GAAIU,IAAI,CAAfV,OAAO;IAE7D,OAAOxF,uBAAuB,CAACwF,OAAO,EAAE/D,eAAe,EAAEZ,OAAO,CAAC,CAC5DsF,IAAI,CAAC,UAACrB,GAAG,EAAK;MACXM,SAAS,CAACN,GAAG,CAAC;IAClB,CAAC,CAAC,SACI,CAAC,UAACxD,CAAC,EAAK;MACV+D,QAAQ,CAAC/D,CAAC,CAAC;IACf,CAAC,CAAC;EACV,CAAC;AACL"}
@@ -133,7 +133,7 @@ export function updateResourceUsage() {
133
133
  return updatedNodeData(nodeData, dataMap[nodeData.$value]);
134
134
  })
135
135
  });
136
- var error = getBatchError(errorResults);
136
+ var error = getBatchError(errorResults, 'Failed to get resource usage');
137
137
  if (error) {
138
138
  throw error;
139
139
  }
@@ -1 +1 @@
1
- {"version":3,"names":["yt","Toaster","ypath","prepareRequest","saveRequestCancellation","APPLY_CUSTOM_SORT","FETCH_NODES","NAVIGATION_MAP_NODE_TABLE_ID","SELECT_ALL","SET_CONTENT_MODE","SET_MEDIUM_TYPE","SET_SELECTED_ITEM","SET_TEXT_FILTER","UPDATE_RESOURCE_USAGE","getFilteredNodes","getLastSelected","getNodesData","getSelected","getSortedNodes","isRootNode","shouldApplyCustomSort","getCluster","getPath","getTransaction","changeColumnSortOrder","RumWrapper","YTApiId","ytApiV3Id","getBatchError","showErrorPopup","RumMeasureTypes","hammer","GENERIC_ERROR_MESSAGE","isSupportedEffectiveExpiration","getList","path","transaction","cluster","allowEffectiveExpiration","id","NAVIGATION_CONTENT_MAP_NODE","fetch","navigationListNodes","list","attributes","concat","_toConsumableArray","fetchNodes","dispatch","getState","state","type","REQUEST","then","getValue","data","SUCCESS","applyCustomSort","tableId","columnName","asc","error","code","codes","CANCELLED","FAILURE","message","details","updateResourceUsage","BATCH_LIMIT","updatedNodeData","nodeValue","newData","$value","$attributes","_objectSpread","recursive_resource_usage","nodes","_filter","node","length","nodesChunks","_chunk","batchedRequests","_map","nodesChunk","requests","command","parameters","timeout","executeBatch","navigationResourceUsage","Promise","all","resultChunks","dataMap","errorResults","_forEach","index","resultChunkIndex","Math","floor","resultChunk","item","push","output","nodeData","toast","add","name","title","content","format","NO_VALUE","actions","label","onClick","setFilter","filter","setContentMode","contentMode","setMediumType","mediumType","setSelectedItem","shiftKey","selected","lastSelected","lastIndex","_findIndex","nameIndex","from","min","to","max","i","undefined","selectAll","isAllSelected","allNodes","_reduce","res"],"sources":["map-node.js"],"sourcesContent":["import _ from 'lodash';\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport {Toaster} from '@gravity-ui/uikit';\n\nimport ypath from '../../../../common/thor/ypath';\nimport {prepareRequest, saveRequestCancellation} from '../../../../utils/navigation';\nimport {\n APPLY_CUSTOM_SORT,\n FETCH_NODES,\n NAVIGATION_MAP_NODE_TABLE_ID,\n SELECT_ALL,\n SET_CONTENT_MODE,\n SET_MEDIUM_TYPE,\n SET_SELECTED_ITEM,\n SET_TEXT_FILTER,\n UPDATE_RESOURCE_USAGE,\n} from '../../../../constants/navigation';\nimport {\n getFilteredNodes,\n getLastSelected,\n getNodesData,\n getSelected,\n getSortedNodes,\n isRootNode,\n shouldApplyCustomSort,\n} from '../../../../store/selectors/navigation/content/map-node';\nimport {getCluster} from '../../../../store/selectors/global';\nimport {getPath, getTransaction} from '../../../../store/selectors/navigation';\nimport {changeColumnSortOrder} from '../../../../store/actions/tables';\nimport {RumWrapper, YTApiId, ytApiV3Id} from '../../../../rum/rum-wrap-api';\nimport {getBatchError, showErrorPopup} from '../../../../utils/utils';\nimport {RumMeasureTypes} from '../../../../rum/rum-measure-types';\nimport hammer from '../../../../common/hammer';\nimport {GENERIC_ERROR_MESSAGE} from '../../../../constants';\nimport {isSupportedEffectiveExpiration} from '../../../../store/selectors/thor/support';\n\nfunction getList(path, transaction, cluster, allowEffectiveExpiration) {\n const id = new RumWrapper(cluster, RumMeasureTypes.NAVIGATION_CONTENT_MAP_NODE);\n return id.fetch(\n YTApiId.navigationListNodes,\n ytApiV3Id.list(\n YTApiId.navigationListNodes,\n prepareRequest({\n attributes: [\n 'type',\n 'dynamic',\n 'row_count', // Deprecated\n 'unmerged_row_count', // Deprecated\n 'chunk_row_count',\n 'modification_time',\n 'creation_time',\n 'resource_usage',\n 'data_weight',\n 'account',\n 'target_path',\n 'broken',\n 'lock_count',\n 'tablet_state',\n '_restore_path',\n 'expiration_time',\n 'expiration_timeout',\n ...(allowEffectiveExpiration ? ['effective_expiration'] : []),\n ],\n path,\n transaction,\n }),\n saveRequestCancellation,\n ),\n );\n}\n\nexport function fetchNodes() {\n return (dispatch, getState) => {\n const state = getState();\n const path = getPath(state);\n const transaction = getTransaction(state);\n const cluster = getCluster(state);\n\n const allowEffectiveExpiration = isSupportedEffectiveExpiration(state);\n\n dispatch({type: FETCH_NODES.REQUEST});\n return getList(path, transaction, cluster, allowEffectiveExpiration)\n .then(ypath.getValue)\n .then((data) => {\n dispatch({\n type: FETCH_NODES.SUCCESS,\n data,\n });\n\n const applyCustomSort = shouldApplyCustomSort(getState());\n dispatch({\n type: APPLY_CUSTOM_SORT,\n data: applyCustomSort ? 'date' : '',\n });\n if (applyCustomSort) {\n dispatch(\n changeColumnSortOrder({\n tableId: NAVIGATION_MAP_NODE_TABLE_ID,\n columnName: 'name',\n asc: false,\n }),\n );\n }\n })\n .catch((error) => {\n if (error.code !== yt.codes.CANCELLED) {\n dispatch({\n type: FETCH_NODES.FAILURE,\n data: {\n message: 'Could not load list. ' + GENERIC_ERROR_MESSAGE,\n details: error,\n },\n });\n } else {\n dispatch({type: FETCH_NODES.CANCELLED});\n }\n });\n };\n}\n\nexport function updateResourceUsage() {\n const BATCH_LIMIT = 200;\n\n function updatedNodeData(nodeValue, newData) {\n return newData\n ? {\n $value: nodeValue.$value,\n $attributes: {\n ...nodeValue.$attributes,\n recursive_resource_usage: newData,\n },\n }\n : nodeValue;\n }\n\n return (dispatch, getState) => {\n const state = getState();\n\n let nodes = getFilteredNodes(state);\n nodes = _.filter(nodes, (node) => !node.$attributes.recursive_resource_usage);\n\n if (isRootNode(state) || nodes.length === 0) {\n return;\n }\n\n dispatch({type: UPDATE_RESOURCE_USAGE.REQUEST});\n\n const nodesChunks = _.chunk(nodes, BATCH_LIMIT);\n const batchedRequests = _.map(nodesChunks, (nodesChunk) => {\n const requests = _.map(nodesChunk, (node) => {\n return {\n command: 'get',\n parameters: {\n path: node.path + '&/@recursive_resource_usage',\n timeout: 60 * 1000,\n },\n };\n });\n\n return ytApiV3Id.executeBatch(YTApiId.navigationResourceUsage, {requests});\n });\n\n Promise.all(batchedRequests)\n .then((resultChunks) => {\n const dataMap = {};\n\n const errorResults = [];\n\n _.forEach(nodes, (node, index) => {\n const resultChunkIndex = Math.floor(index / BATCH_LIMIT);\n const resultChunk = resultChunks[resultChunkIndex];\n const item = resultChunk[index % BATCH_LIMIT];\n\n if (item.error) {\n errorResults.push(item);\n } else if (item.output) {\n dataMap[node.$value] = item.output;\n }\n });\n\n dispatch({\n type: UPDATE_RESOURCE_USAGE.SUCCESS,\n data: _.map(getNodesData(state), (nodeData) =>\n updatedNodeData(nodeData, dataMap[nodeData.$value]),\n ),\n });\n\n const error = getBatchError(errorResults);\n if (error) {\n throw error;\n }\n })\n .catch((error) => {\n if (error.code !== yt.codes.CANCELLED) {\n dispatch({\n type: UPDATE_RESOURCE_USAGE.FAILURE,\n data: {\n message: 'Failed to load resources. ' + GENERIC_ERROR_MESSAGE,\n details: error,\n },\n });\n const toast = new Toaster();\n toast.add({\n type: 'error',\n name: 'map_node_update_resources',\n timeout: 500000,\n title: 'Resource loading error',\n content: error ? error.message : hammer.format.NO_VALUE,\n actions: [\n {\n label: ' view',\n onClick: () => showErrorPopup(error),\n },\n ],\n });\n } else {\n dispatch({\n type: UPDATE_RESOURCE_USAGE.CANCELLED,\n });\n }\n });\n };\n}\n\nexport function setFilter(filter) {\n return (dispatch, getState) => {\n const path = getPath(getState());\n\n dispatch({\n type: SET_TEXT_FILTER,\n data: {filter, path},\n });\n };\n}\n\nexport function setContentMode(contentMode) {\n return {\n type: SET_CONTENT_MODE,\n data: contentMode,\n };\n}\n\nexport function setMediumType(mediumType) {\n return {\n type: SET_MEDIUM_TYPE,\n data: mediumType,\n };\n}\n\nexport function setSelectedItem(name, shiftKey) {\n return (dispatch, getState) => {\n const state = getState();\n const selected = {...getSelected(state)};\n if (selected[name] && !shiftKey) {\n delete selected[name];\n } else {\n selected[name] = true;\n }\n\n const lastSelected = getLastSelected(state);\n if (lastSelected && shiftKey) {\n const nodes = getSortedNodes(state);\n const lastIndex = _.findIndex(nodes, (item) => lastSelected === item.name);\n if (-1 !== lastIndex) {\n const nameIndex = _.findIndex(nodes, (item) => item.name === name);\n if (-1 !== nameIndex && lastIndex !== nameIndex) {\n const from = Math.min(lastIndex, nameIndex);\n const to = Math.max(lastIndex, nameIndex);\n for (let i = from; i <= to; ++i) {\n const item = nodes[i];\n selected[item.name] = true;\n }\n }\n }\n }\n\n dispatch({\n type: SET_SELECTED_ITEM,\n data: {selected, lastSelected: selected[name] ? name : undefined},\n });\n };\n}\n\nexport function selectAll(isAllSelected) {\n return (dispatch, getState) => {\n let selected = {};\n\n if (!isAllSelected) {\n const allNodes = getFilteredNodes(getState());\n\n selected = _.reduce(\n allNodes,\n (res, node) => {\n res[ypath.getValue(node)] = true;\n return res;\n },\n {},\n );\n }\n\n dispatch({\n type: SELECT_ALL,\n data: {selected},\n });\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["yt","Toaster","ypath","prepareRequest","saveRequestCancellation","APPLY_CUSTOM_SORT","FETCH_NODES","NAVIGATION_MAP_NODE_TABLE_ID","SELECT_ALL","SET_CONTENT_MODE","SET_MEDIUM_TYPE","SET_SELECTED_ITEM","SET_TEXT_FILTER","UPDATE_RESOURCE_USAGE","getFilteredNodes","getLastSelected","getNodesData","getSelected","getSortedNodes","isRootNode","shouldApplyCustomSort","getCluster","getPath","getTransaction","changeColumnSortOrder","RumWrapper","YTApiId","ytApiV3Id","getBatchError","showErrorPopup","RumMeasureTypes","hammer","GENERIC_ERROR_MESSAGE","isSupportedEffectiveExpiration","getList","path","transaction","cluster","allowEffectiveExpiration","id","NAVIGATION_CONTENT_MAP_NODE","fetch","navigationListNodes","list","attributes","concat","_toConsumableArray","fetchNodes","dispatch","getState","state","type","REQUEST","then","getValue","data","SUCCESS","applyCustomSort","tableId","columnName","asc","error","code","codes","CANCELLED","FAILURE","message","details","updateResourceUsage","BATCH_LIMIT","updatedNodeData","nodeValue","newData","$value","$attributes","_objectSpread","recursive_resource_usage","nodes","_filter","node","length","nodesChunks","_chunk","batchedRequests","_map","nodesChunk","requests","command","parameters","timeout","executeBatch","navigationResourceUsage","Promise","all","resultChunks","dataMap","errorResults","_forEach","index","resultChunkIndex","Math","floor","resultChunk","item","push","output","nodeData","toast","add","name","title","content","format","NO_VALUE","actions","label","onClick","setFilter","filter","setContentMode","contentMode","setMediumType","mediumType","setSelectedItem","shiftKey","selected","lastSelected","lastIndex","_findIndex","nameIndex","from","min","to","max","i","undefined","selectAll","isAllSelected","allNodes","_reduce","res"],"sources":["map-node.js"],"sourcesContent":["import _ from 'lodash';\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport {Toaster} from '@gravity-ui/uikit';\n\nimport ypath from '../../../../common/thor/ypath';\nimport {prepareRequest, saveRequestCancellation} from '../../../../utils/navigation';\nimport {\n APPLY_CUSTOM_SORT,\n FETCH_NODES,\n NAVIGATION_MAP_NODE_TABLE_ID,\n SELECT_ALL,\n SET_CONTENT_MODE,\n SET_MEDIUM_TYPE,\n SET_SELECTED_ITEM,\n SET_TEXT_FILTER,\n UPDATE_RESOURCE_USAGE,\n} from '../../../../constants/navigation';\nimport {\n getFilteredNodes,\n getLastSelected,\n getNodesData,\n getSelected,\n getSortedNodes,\n isRootNode,\n shouldApplyCustomSort,\n} from '../../../../store/selectors/navigation/content/map-node';\nimport {getCluster} from '../../../../store/selectors/global';\nimport {getPath, getTransaction} from '../../../../store/selectors/navigation';\nimport {changeColumnSortOrder} from '../../../../store/actions/tables';\nimport {RumWrapper, YTApiId, ytApiV3Id} from '../../../../rum/rum-wrap-api';\nimport {getBatchError, showErrorPopup} from '../../../../utils/utils';\nimport {RumMeasureTypes} from '../../../../rum/rum-measure-types';\nimport hammer from '../../../../common/hammer';\nimport {GENERIC_ERROR_MESSAGE} from '../../../../constants';\nimport {isSupportedEffectiveExpiration} from '../../../../store/selectors/thor/support';\n\nfunction getList(path, transaction, cluster, allowEffectiveExpiration) {\n const id = new RumWrapper(cluster, RumMeasureTypes.NAVIGATION_CONTENT_MAP_NODE);\n return id.fetch(\n YTApiId.navigationListNodes,\n ytApiV3Id.list(\n YTApiId.navigationListNodes,\n prepareRequest({\n attributes: [\n 'type',\n 'dynamic',\n 'row_count', // Deprecated\n 'unmerged_row_count', // Deprecated\n 'chunk_row_count',\n 'modification_time',\n 'creation_time',\n 'resource_usage',\n 'data_weight',\n 'account',\n 'target_path',\n 'broken',\n 'lock_count',\n 'tablet_state',\n '_restore_path',\n 'expiration_time',\n 'expiration_timeout',\n ...(allowEffectiveExpiration ? ['effective_expiration'] : []),\n ],\n path,\n transaction,\n }),\n saveRequestCancellation,\n ),\n );\n}\n\nexport function fetchNodes() {\n return (dispatch, getState) => {\n const state = getState();\n const path = getPath(state);\n const transaction = getTransaction(state);\n const cluster = getCluster(state);\n\n const allowEffectiveExpiration = isSupportedEffectiveExpiration(state);\n\n dispatch({type: FETCH_NODES.REQUEST});\n return getList(path, transaction, cluster, allowEffectiveExpiration)\n .then(ypath.getValue)\n .then((data) => {\n dispatch({\n type: FETCH_NODES.SUCCESS,\n data,\n });\n\n const applyCustomSort = shouldApplyCustomSort(getState());\n dispatch({\n type: APPLY_CUSTOM_SORT,\n data: applyCustomSort ? 'date' : '',\n });\n if (applyCustomSort) {\n dispatch(\n changeColumnSortOrder({\n tableId: NAVIGATION_MAP_NODE_TABLE_ID,\n columnName: 'name',\n asc: false,\n }),\n );\n }\n })\n .catch((error) => {\n if (error.code !== yt.codes.CANCELLED) {\n dispatch({\n type: FETCH_NODES.FAILURE,\n data: {\n message: 'Could not load list. ' + GENERIC_ERROR_MESSAGE,\n details: error,\n },\n });\n } else {\n dispatch({type: FETCH_NODES.CANCELLED});\n }\n });\n };\n}\n\nexport function updateResourceUsage() {\n const BATCH_LIMIT = 200;\n\n function updatedNodeData(nodeValue, newData) {\n return newData\n ? {\n $value: nodeValue.$value,\n $attributes: {\n ...nodeValue.$attributes,\n recursive_resource_usage: newData,\n },\n }\n : nodeValue;\n }\n\n return (dispatch, getState) => {\n const state = getState();\n\n let nodes = getFilteredNodes(state);\n nodes = _.filter(nodes, (node) => !node.$attributes.recursive_resource_usage);\n\n if (isRootNode(state) || nodes.length === 0) {\n return;\n }\n\n dispatch({type: UPDATE_RESOURCE_USAGE.REQUEST});\n\n const nodesChunks = _.chunk(nodes, BATCH_LIMIT);\n const batchedRequests = _.map(nodesChunks, (nodesChunk) => {\n const requests = _.map(nodesChunk, (node) => {\n return {\n command: 'get',\n parameters: {\n path: node.path + '&/@recursive_resource_usage',\n timeout: 60 * 1000,\n },\n };\n });\n\n return ytApiV3Id.executeBatch(YTApiId.navigationResourceUsage, {requests});\n });\n\n Promise.all(batchedRequests)\n .then((resultChunks) => {\n const dataMap = {};\n\n const errorResults = [];\n\n _.forEach(nodes, (node, index) => {\n const resultChunkIndex = Math.floor(index / BATCH_LIMIT);\n const resultChunk = resultChunks[resultChunkIndex];\n const item = resultChunk[index % BATCH_LIMIT];\n\n if (item.error) {\n errorResults.push(item);\n } else if (item.output) {\n dataMap[node.$value] = item.output;\n }\n });\n\n dispatch({\n type: UPDATE_RESOURCE_USAGE.SUCCESS,\n data: _.map(getNodesData(state), (nodeData) =>\n updatedNodeData(nodeData, dataMap[nodeData.$value]),\n ),\n });\n\n const error = getBatchError(errorResults, 'Failed to get resource usage');\n if (error) {\n throw error;\n }\n })\n .catch((error) => {\n if (error.code !== yt.codes.CANCELLED) {\n dispatch({\n type: UPDATE_RESOURCE_USAGE.FAILURE,\n data: {\n message: 'Failed to load resources. ' + GENERIC_ERROR_MESSAGE,\n details: error,\n },\n });\n const toast = new Toaster();\n toast.add({\n type: 'error',\n name: 'map_node_update_resources',\n timeout: 500000,\n title: 'Resource loading error',\n content: error ? error.message : hammer.format.NO_VALUE,\n actions: [\n {\n label: ' view',\n onClick: () => showErrorPopup(error),\n },\n ],\n });\n } else {\n dispatch({\n type: UPDATE_RESOURCE_USAGE.CANCELLED,\n });\n }\n });\n };\n}\n\nexport function setFilter(filter) {\n return (dispatch, getState) => {\n const path = getPath(getState());\n\n dispatch({\n type: SET_TEXT_FILTER,\n data: {filter, path},\n });\n };\n}\n\nexport function setContentMode(contentMode) {\n return {\n type: SET_CONTENT_MODE,\n data: contentMode,\n };\n}\n\nexport function setMediumType(mediumType) {\n return {\n type: SET_MEDIUM_TYPE,\n data: mediumType,\n };\n}\n\nexport function setSelectedItem(name, shiftKey) {\n return (dispatch, getState) => {\n const state = getState();\n const selected = {...getSelected(state)};\n if (selected[name] && !shiftKey) {\n delete selected[name];\n } else {\n selected[name] = true;\n }\n\n const lastSelected = getLastSelected(state);\n if (lastSelected && shiftKey) {\n const nodes = getSortedNodes(state);\n const lastIndex = _.findIndex(nodes, (item) => lastSelected === item.name);\n if (-1 !== lastIndex) {\n const nameIndex = _.findIndex(nodes, (item) => item.name === name);\n if (-1 !== nameIndex && lastIndex !== nameIndex) {\n const from = Math.min(lastIndex, nameIndex);\n const to = Math.max(lastIndex, nameIndex);\n for (let i = from; i <= to; ++i) {\n const item = nodes[i];\n selected[item.name] = true;\n }\n }\n }\n }\n\n dispatch({\n type: SET_SELECTED_ITEM,\n data: {selected, lastSelected: selected[name] ? name : undefined},\n });\n };\n}\n\nexport function selectAll(isAllSelected) {\n return (dispatch, getState) => {\n let selected = {};\n\n if (!isAllSelected) {\n const allNodes = getFilteredNodes(getState());\n\n selected = _.reduce(\n allNodes,\n (res, node) => {\n res[ypath.getValue(node)] = true;\n return res;\n },\n {},\n );\n }\n\n dispatch({\n type: SELECT_ALL,\n data: {selected},\n });\n };\n}\n"],"mappings":"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"}
@@ -66,7 +66,7 @@ export function updateView() {
66
66
  if ((pathError === null || pathError === void 0 ? void 0 : pathError.code) === yt.codes.NODE_DOES_NOT_EXIST) {
67
67
  delete path.error;
68
68
  }
69
- var error = getBatchError(results);
69
+ var error = getBatchError(results, 'Failed to get navigation attributes');
70
70
  if (error) {
71
71
  // Convert typed errors to regular ones
72
72
  error.inner_errors = error.inner_errors.map(prepareAttributes);
@@ -1 +1 @@
1
- {"version":3,"names":["yt","metrics","navigationTrackVisit","RumWrapper","YTApiId","ytApiV3","ytApiV3Id","RumMeasureTypes","isPathAutoCorrectionSettingEnabled","getPath","getTransaction","getDefaultMode","autoCorrectPath","cancelRequests","getParentPath","prepareRequest","saveRequestCancellation","prepareAttributes","getBatchError","getPermissionDeniedError","GENERIC_ERROR_MESSAGE","TYPED_OUTPUT_FORMAT","CLEAR_TRANSACTION","NAVIGATION_PARTIAL","SET_MODE","SET_TRANSACTION","Tab","UPDATE_PATH","UPDATE_VIEW","getCluster","getCurrentUserName","fetchTableMountConfig","checkPermissions","getAnnotation","loadTabletErrorsCount","isSupportedEffectiveExpiration","updateView","settings","arguments","length","undefined","dispatch","getState","state","currentPath","transaction","type","REQUEST","path","updatePath","saveCancelTokenSource","allowEffectiveExpiration","requestParams","cluster","id","NAVIGATION_PRELOAD","fetch","navigationAttributes","executeBatch","requests","command","parameters","_objectSpread","attributes","concat","_toConsumableArray","output_format","then","results","_results","_slicedToArray","attrs","_results$","_results$2","opaqueAttrs","output","pathError","error","code","codes","NODE_DOES_NOT_EXIST","inner_errors","map","effective_expiration","preparedAttributes","asHTML","trackVisit","countEvent","navigation_path","user","account","SUCCESS","data","attributesWithTypes","dispatchAccountPermissions","_ref","isWriteable","isAccountUsable","checkPermissionsError","permission","transaction_id","navigationCheckPermissions","_ref2","_ref3","writeAction","action","useAction","CANCELLED","permissionDeniedError","message","push","exists","isIdmSupported","FAILURE","join","details","setMode","mode","defaultMode","AUTO","onTransactionChange","window","dispatchEvent","Event","setTransaction","clearTransaction","shouldUpdateContentMode","autoCorrectionEnabled","correctedPath","navigateParent","navigation","nextPath"],"sources":["index.js"],"sourcesContent":["import yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport metrics from '../../../common/utils/metrics';\nimport {navigationTrackVisit} from '../../../store/actions/favourites';\nimport {RumWrapper, YTApiId, ytApiV3, ytApiV3Id} from '../../../rum/rum-wrap-api';\nimport {RumMeasureTypes} from '../../../rum/rum-measure-types';\n\nimport {isPathAutoCorrectionSettingEnabled} from '../../../store/selectors/settings';\nimport {getPath, getTransaction} from '../../../store/selectors/navigation';\nimport {getDefaultMode} from '../../../store/selectors/navigation/navigation';\n\nimport {\n autoCorrectPath,\n cancelRequests,\n getParentPath,\n prepareRequest,\n saveRequestCancellation,\n} from '../../../utils/navigation';\nimport {prepareAttributes} from '../../../utils/index';\nimport {getBatchError} from '../../../utils/utils';\nimport {getPermissionDeniedError} from '../../../utils/errors';\n\nimport {GENERIC_ERROR_MESSAGE, TYPED_OUTPUT_FORMAT} from '../../../constants/index';\nimport {\n CLEAR_TRANSACTION,\n NAVIGATION_PARTIAL,\n SET_MODE,\n SET_TRANSACTION,\n Tab,\n UPDATE_PATH,\n UPDATE_VIEW,\n} from '../../../constants/navigation/index';\nimport {getCluster, getCurrentUserName} from '../../../store/selectors/global';\nimport {fetchTableMountConfig} from '../../../store/actions/navigation/content/table/table-mount-config';\nimport {checkPermissions} from '../../../utils/acl/acl-api';\nimport {getAnnotation} from './tabs/annotation';\nimport {loadTabletErrorsCount} from './tabs/tablet-errors';\nimport {isSupportedEffectiveExpiration} from '../../../store/selectors/thor/support';\n\nexport function updateView(settings = {}) {\n return (dispatch, getState) => {\n const state = getState();\n const currentPath = getPath(state);\n const transaction = getTransaction(state);\n\n dispatch({type: UPDATE_VIEW.REQUEST});\n // Update path for use default path and auto correct path\n const path = dispatch(updatePath(currentPath, false));\n cancelRequests();\n\n dispatch(getAnnotation());\n dispatch(loadTabletErrorsCount({path, saveCancelTokenSource: saveRequestCancellation}));\n\n const allowEffectiveExpiration = isSupportedEffectiveExpiration(state);\n\n const requestParams = {\n path,\n transaction,\n };\n\n const cluster = getCluster(state);\n\n const id = new RumWrapper(cluster, RumMeasureTypes.NAVIGATION_PRELOAD);\n\n return id\n .fetch(\n YTApiId.navigationAttributes,\n ytApiV3Id.executeBatch(\n YTApiId.navigationAttributes,\n {\n requests: [\n {command: 'get', parameters: prepareRequest('/@', requestParams)},\n {\n command: 'get',\n parameters: prepareRequest('/@', {\n ...requestParams,\n attributes: [\n 'path',\n ...(allowEffectiveExpiration\n ? ['effective_expiration']\n : []),\n ],\n }),\n },\n ],\n output_format: TYPED_OUTPUT_FORMAT,\n },\n saveRequestCancellation,\n ),\n )\n .then((results) => {\n const [attrs, {output: opaqueAttrs} = {}] = results;\n const pathError = prepareAttributes(path.error);\n if (pathError?.code === yt.codes.NODE_DOES_NOT_EXIST) {\n delete path.error;\n }\n\n const error = getBatchError(results);\n if (error) {\n // Convert typed errors to regular ones\n error.inner_errors = error.inner_errors.map(prepareAttributes);\n throw error;\n }\n\n return {\n ...attrs.output,\n ...(opaqueAttrs?.effective_expiration\n ? {effective_expiration: opaqueAttrs.effective_expiration}\n : {}),\n ...(path.output ? {path: opaqueAttrs.path} : {}),\n };\n })\n .then((attributes) => {\n const preparedAttributes = prepareAttributes(attributes, {\n asHTML: false,\n });\n\n if (settings.trackVisit) {\n dispatch(navigationTrackVisit(path));\n }\n\n metrics.countEvent({\n navigation_path: {\n type: preparedAttributes.type,\n },\n });\n\n const user = getCurrentUserName(state);\n const {account} = preparedAttributes;\n\n dispatch({\n type: UPDATE_VIEW.SUCCESS,\n data: {\n attributesWithTypes: attributes,\n attributes: preparedAttributes,\n },\n });\n\n const dispatchAccountPermissions = ({\n isWriteable,\n isAccountUsable,\n checkPermissionsError,\n }) => {\n dispatch({\n type: NAVIGATION_PARTIAL,\n data: {isWriteable, isAccountUsable, checkPermissionsError},\n });\n };\n\n dispatch(fetchTableMountConfig(path));\n\n if (!account) {\n /**\n * If account is not defined we just pretend that everything is awesome\n * and the code works the same as there are no any checks of permissions.\n */\n return dispatchAccountPermissions({\n isWriteable: true,\n isAccountUsable: true,\n });\n }\n\n checkPermissions(\n [\n {\n user,\n permission: 'write',\n path,\n transaction_id: transaction,\n },\n {\n user,\n permission: 'use',\n path: `//sys/accounts/${account}`,\n transaction_id: transaction,\n },\n ],\n YTApiId.navigationCheckPermissions,\n )\n .then(([{action: writeAction}, {action: useAction}]) => {\n dispatchAccountPermissions({\n isWriteable: writeAction === 'allow',\n isAccountUsable: useAction === 'allow',\n });\n })\n .catch((checkPermissionsError) => {\n dispatchAccountPermissions({checkPermissionsError});\n });\n })\n .catch((error) => {\n if (error.code === yt.codes.CANCELLED) {\n dispatch({\n type: UPDATE_VIEW.CANCELLED,\n });\n } else {\n const permissionDeniedError = getPermissionDeniedError(error);\n const message = ['Error occurred when loading path.'];\n if (!permissionDeniedError) message.push(GENERIC_ERROR_MESSAGE);\n\n ytApiV3\n .exists({path: '//sys/idm/lock'})\n .catch(() => false)\n .then((isIdmSupported) => {\n dispatch({\n type: UPDATE_VIEW.FAILURE,\n data: {\n message: message.join(' '),\n details: error,\n isIdmSupported,\n },\n });\n });\n }\n });\n };\n}\n\nexport function setMode(mode) {\n return (dispatch, getState) => {\n const defaultMode = getDefaultMode(getState());\n\n dispatch({\n type: SET_MODE,\n data: mode === defaultMode ? Tab.AUTO : mode,\n });\n };\n}\n\nexport function onTransactionChange() {\n return (dispatch) => {\n dispatch(updateView({trackVisit: true}));\n // Need to update breadcrumbs dimensions after transaction change\n window.dispatchEvent(new Event('resize'));\n };\n}\n\nexport function setTransaction(transaction) {\n return (dispatch) => {\n dispatch({\n type: SET_TRANSACTION,\n data: transaction,\n });\n dispatch(onTransactionChange());\n };\n}\n\nexport function clearTransaction() {\n return (dispatch) => {\n dispatch({\n type: CLEAR_TRANSACTION,\n });\n dispatch(onTransactionChange());\n };\n}\n\nexport function updatePath(path, shouldUpdateContentMode = true) {\n return (dispatch, getState) => {\n const autoCorrectionEnabled = isPathAutoCorrectionSettingEnabled(getState());\n\n const correctedPath = autoCorrectionEnabled ? autoCorrectPath(path) : path;\n\n dispatch({\n type: UPDATE_PATH,\n data: {\n path: correctedPath,\n shouldUpdateContentMode,\n },\n });\n\n return correctedPath;\n };\n}\n\nexport function navigateParent() {\n return (dispatch, getState) => {\n const {path} = getState().navigation.navigation;\n const nextPath = getParentPath(path);\n dispatch(updatePath(nextPath));\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["yt","metrics","navigationTrackVisit","RumWrapper","YTApiId","ytApiV3","ytApiV3Id","RumMeasureTypes","isPathAutoCorrectionSettingEnabled","getPath","getTransaction","getDefaultMode","autoCorrectPath","cancelRequests","getParentPath","prepareRequest","saveRequestCancellation","prepareAttributes","getBatchError","getPermissionDeniedError","GENERIC_ERROR_MESSAGE","TYPED_OUTPUT_FORMAT","CLEAR_TRANSACTION","NAVIGATION_PARTIAL","SET_MODE","SET_TRANSACTION","Tab","UPDATE_PATH","UPDATE_VIEW","getCluster","getCurrentUserName","fetchTableMountConfig","checkPermissions","getAnnotation","loadTabletErrorsCount","isSupportedEffectiveExpiration","updateView","settings","arguments","length","undefined","dispatch","getState","state","currentPath","transaction","type","REQUEST","path","updatePath","saveCancelTokenSource","allowEffectiveExpiration","requestParams","cluster","id","NAVIGATION_PRELOAD","fetch","navigationAttributes","executeBatch","requests","command","parameters","_objectSpread","attributes","concat","_toConsumableArray","output_format","then","results","_results","_slicedToArray","attrs","_results$","_results$2","opaqueAttrs","output","pathError","error","code","codes","NODE_DOES_NOT_EXIST","inner_errors","map","effective_expiration","preparedAttributes","asHTML","trackVisit","countEvent","navigation_path","user","account","SUCCESS","data","attributesWithTypes","dispatchAccountPermissions","_ref","isWriteable","isAccountUsable","checkPermissionsError","permission","transaction_id","navigationCheckPermissions","_ref2","_ref3","writeAction","action","useAction","CANCELLED","permissionDeniedError","message","push","exists","isIdmSupported","FAILURE","join","details","setMode","mode","defaultMode","AUTO","onTransactionChange","window","dispatchEvent","Event","setTransaction","clearTransaction","shouldUpdateContentMode","autoCorrectionEnabled","correctedPath","navigateParent","navigation","nextPath"],"sources":["index.js"],"sourcesContent":["import yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport metrics from '../../../common/utils/metrics';\nimport {navigationTrackVisit} from '../../../store/actions/favourites';\nimport {RumWrapper, YTApiId, ytApiV3, ytApiV3Id} from '../../../rum/rum-wrap-api';\nimport {RumMeasureTypes} from '../../../rum/rum-measure-types';\n\nimport {isPathAutoCorrectionSettingEnabled} from '../../../store/selectors/settings';\nimport {getPath, getTransaction} from '../../../store/selectors/navigation';\nimport {getDefaultMode} from '../../../store/selectors/navigation/navigation';\n\nimport {\n autoCorrectPath,\n cancelRequests,\n getParentPath,\n prepareRequest,\n saveRequestCancellation,\n} from '../../../utils/navigation';\nimport {prepareAttributes} from '../../../utils/index';\nimport {getBatchError} from '../../../utils/utils';\nimport {getPermissionDeniedError} from '../../../utils/errors';\n\nimport {GENERIC_ERROR_MESSAGE, TYPED_OUTPUT_FORMAT} from '../../../constants/index';\nimport {\n CLEAR_TRANSACTION,\n NAVIGATION_PARTIAL,\n SET_MODE,\n SET_TRANSACTION,\n Tab,\n UPDATE_PATH,\n UPDATE_VIEW,\n} from '../../../constants/navigation/index';\nimport {getCluster, getCurrentUserName} from '../../../store/selectors/global';\nimport {fetchTableMountConfig} from '../../../store/actions/navigation/content/table/table-mount-config';\nimport {checkPermissions} from '../../../utils/acl/acl-api';\nimport {getAnnotation} from './tabs/annotation';\nimport {loadTabletErrorsCount} from './tabs/tablet-errors';\nimport {isSupportedEffectiveExpiration} from '../../../store/selectors/thor/support';\n\nexport function updateView(settings = {}) {\n return (dispatch, getState) => {\n const state = getState();\n const currentPath = getPath(state);\n const transaction = getTransaction(state);\n\n dispatch({type: UPDATE_VIEW.REQUEST});\n // Update path for use default path and auto correct path\n const path = dispatch(updatePath(currentPath, false));\n cancelRequests();\n\n dispatch(getAnnotation());\n dispatch(loadTabletErrorsCount({path, saveCancelTokenSource: saveRequestCancellation}));\n\n const allowEffectiveExpiration = isSupportedEffectiveExpiration(state);\n\n const requestParams = {\n path,\n transaction,\n };\n\n const cluster = getCluster(state);\n\n const id = new RumWrapper(cluster, RumMeasureTypes.NAVIGATION_PRELOAD);\n\n return id\n .fetch(\n YTApiId.navigationAttributes,\n ytApiV3Id.executeBatch(\n YTApiId.navigationAttributes,\n {\n requests: [\n {command: 'get', parameters: prepareRequest('/@', requestParams)},\n {\n command: 'get',\n parameters: prepareRequest('/@', {\n ...requestParams,\n attributes: [\n 'path',\n ...(allowEffectiveExpiration\n ? ['effective_expiration']\n : []),\n ],\n }),\n },\n ],\n output_format: TYPED_OUTPUT_FORMAT,\n },\n saveRequestCancellation,\n ),\n )\n .then((results) => {\n const [attrs, {output: opaqueAttrs} = {}] = results;\n const pathError = prepareAttributes(path.error);\n if (pathError?.code === yt.codes.NODE_DOES_NOT_EXIST) {\n delete path.error;\n }\n\n const error = getBatchError(results, 'Failed to get navigation attributes');\n if (error) {\n // Convert typed errors to regular ones\n error.inner_errors = error.inner_errors.map(prepareAttributes);\n throw error;\n }\n\n return {\n ...attrs.output,\n ...(opaqueAttrs?.effective_expiration\n ? {effective_expiration: opaqueAttrs.effective_expiration}\n : {}),\n ...(path.output ? {path: opaqueAttrs.path} : {}),\n };\n })\n .then((attributes) => {\n const preparedAttributes = prepareAttributes(attributes, {\n asHTML: false,\n });\n\n if (settings.trackVisit) {\n dispatch(navigationTrackVisit(path));\n }\n\n metrics.countEvent({\n navigation_path: {\n type: preparedAttributes.type,\n },\n });\n\n const user = getCurrentUserName(state);\n const {account} = preparedAttributes;\n\n dispatch({\n type: UPDATE_VIEW.SUCCESS,\n data: {\n attributesWithTypes: attributes,\n attributes: preparedAttributes,\n },\n });\n\n const dispatchAccountPermissions = ({\n isWriteable,\n isAccountUsable,\n checkPermissionsError,\n }) => {\n dispatch({\n type: NAVIGATION_PARTIAL,\n data: {isWriteable, isAccountUsable, checkPermissionsError},\n });\n };\n\n dispatch(fetchTableMountConfig(path));\n\n if (!account) {\n /**\n * If account is not defined we just pretend that everything is awesome\n * and the code works the same as there are no any checks of permissions.\n */\n return dispatchAccountPermissions({\n isWriteable: true,\n isAccountUsable: true,\n });\n }\n\n checkPermissions(\n [\n {\n user,\n permission: 'write',\n path,\n transaction_id: transaction,\n },\n {\n user,\n permission: 'use',\n path: `//sys/accounts/${account}`,\n transaction_id: transaction,\n },\n ],\n YTApiId.navigationCheckPermissions,\n )\n .then(([{action: writeAction}, {action: useAction}]) => {\n dispatchAccountPermissions({\n isWriteable: writeAction === 'allow',\n isAccountUsable: useAction === 'allow',\n });\n })\n .catch((checkPermissionsError) => {\n dispatchAccountPermissions({checkPermissionsError});\n });\n })\n .catch((error) => {\n if (error.code === yt.codes.CANCELLED) {\n dispatch({\n type: UPDATE_VIEW.CANCELLED,\n });\n } else {\n const permissionDeniedError = getPermissionDeniedError(error);\n const message = ['Error occurred when loading path.'];\n if (!permissionDeniedError) message.push(GENERIC_ERROR_MESSAGE);\n\n ytApiV3\n .exists({path: '//sys/idm/lock'})\n .catch(() => false)\n .then((isIdmSupported) => {\n dispatch({\n type: UPDATE_VIEW.FAILURE,\n data: {\n message: message.join(' '),\n details: error,\n isIdmSupported,\n },\n });\n });\n }\n });\n };\n}\n\nexport function setMode(mode) {\n return (dispatch, getState) => {\n const defaultMode = getDefaultMode(getState());\n\n dispatch({\n type: SET_MODE,\n data: mode === defaultMode ? Tab.AUTO : mode,\n });\n };\n}\n\nexport function onTransactionChange() {\n return (dispatch) => {\n dispatch(updateView({trackVisit: true}));\n // Need to update breadcrumbs dimensions after transaction change\n window.dispatchEvent(new Event('resize'));\n };\n}\n\nexport function setTransaction(transaction) {\n return (dispatch) => {\n dispatch({\n type: SET_TRANSACTION,\n data: transaction,\n });\n dispatch(onTransactionChange());\n };\n}\n\nexport function clearTransaction() {\n return (dispatch) => {\n dispatch({\n type: CLEAR_TRANSACTION,\n });\n dispatch(onTransactionChange());\n };\n}\n\nexport function updatePath(path, shouldUpdateContentMode = true) {\n return (dispatch, getState) => {\n const autoCorrectionEnabled = isPathAutoCorrectionSettingEnabled(getState());\n\n const correctedPath = autoCorrectionEnabled ? autoCorrectPath(path) : path;\n\n dispatch({\n type: UPDATE_PATH,\n data: {\n path: correctedPath,\n shouldUpdateContentMode,\n },\n });\n\n return correctedPath;\n };\n}\n\nexport function navigateParent() {\n return (dispatch, getState) => {\n const {path} = getState().navigation.navigation;\n const nextPath = getParentPath(path);\n dispatch(updatePath(nextPath));\n };\n}\n"],"mappings":"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"}
@@ -41,7 +41,9 @@ export function showNavigationAttributesEditor(paths) {
41
41
  }
42
42
  };
43
43
  });
44
- return executeBatchWithRetries(YTApiId.attributesEditorGetAttrs, requests).then(function (results) {
44
+ return executeBatchWithRetries(YTApiId.attributesEditorGetAttrs, requests, {
45
+ errorTitle: 'Attributes cannot be loaded'
46
+ }).then(function (results) {
45
47
  var error = getBatchError(results, 'Attributes cannot be loaded');
46
48
  if (error) {
47
49
  throw error;
@@ -135,7 +137,9 @@ export function navigationSetNodeAttributes(generalAttrs, storageAttrs, runMerge
135
137
  return acc;
136
138
  }, []);
137
139
  var staticTables = getNavigationAttributesEditorStaticTables(getState());
138
- return executeBatchWithRetries(YTApiId.attributesEditorSet, requests).then(function (res) {
140
+ return executeBatchWithRetries(YTApiId.attributesEditorSet, requests, {
141
+ errorTitle: "Cannot set attributes for ".concat(paths)
142
+ }).then(function (res) {
139
143
  var error = getBatchError(res, "Cannot set attributes for ".concat(paths));
140
144
  if (error) {
141
145
  dispatch({
@@ -185,7 +189,9 @@ export function navigationSetNodeAttributes(generalAttrs, storageAttrs, runMerge
185
189
  parameters: prepareMergeParams(path)
186
190
  };
187
191
  });
188
- return executeBatchWithRetries(YTApiId.attributesEditorMerge, _requests).then(function (results) {
192
+ return executeBatchWithRetries(YTApiId.attributesEditorMerge, _requests, {
193
+ errorTitle: 'Failed to start some operations'
194
+ }).then(function (results) {
189
195
  var error = getBatchError(results, 'Failed to start some operations');
190
196
  if (error) {
191
197
  throw error;
@@ -1 +1 @@
1
- {"version":3,"names":["React","Toaster","ypath","yt","NAVIGATION_ATTRIBUTES_EDITOR_ERROR","NAVIGATION_ATTRIBUTES_EDITOR_PARTIAL","NAVIGATION_ATTRIBUTES_EDITOR_REQUEST","NAVIGATION_ATTRIBUTES_EDITOR_SUCCESS","getNavigationAttributesEditorAttributes","getNavigationAttributesEditorPath","getNavigationAttributesEditorStaticTables","getBatchError","showErrorPopup","wrapApiPromiseByToaster","OperationShortInfo","AppStoreProvider","updateView","Link","getCluster","makeUiMarker","prepareSetCommandForBatch","Page","executeBatchWithRetries","YTApiId","jsx","_jsx","jsxs","_jsxs","EDITABLE_ATTRIBUTES","showNavigationAttributesEditor","paths","dispatch","type","requests","_map","path","command","parameters","attributes","attributesEditorGetAttrs","then","results","error","attributesMap","_reduce","acc","index","$attributes","output","data","visible","e","toaster","add","name","_join","title","content","message","actions","label","onClick","autoHiding","hideNavigationAttributesEditor","undefined","EDIT_MARKER","concat","NAVIGATION","EDIT_MERGE_MARKER","navigationSetNodeAttributes","generalAttrs","storageAttrs","runMerge","getState","_isEmpty","_objectSpread","console","warn","JSON","stringify","Promise","resolve","cluster","in_memory_mode","tablet_cell_bundle","restGeneralAttrs","_objectWithoutProperties","_excluded","attrs","newAttrs","getValue","isDynamic","isDynTable","Object","assign","_forEach","value","key","push","staticTables","attributesEditorSet","res","reject","length","prepareMergeParams","sorted","spec","input_table_paths","output_table_path","force_transform","mode","promises","v3","merge","toasterName","successContent","opId","parse","children","id","output_attribute_name","successTitle","errorTitle","autoHide","all","attributesEditorMerge","join","url"],"sources":["attributes-editor.tsx"],"sourcesContent":["import React from 'react';\nimport _ from 'lodash';\nimport {ThunkAction} from 'redux-thunk';\n\nimport {Toaster} from '@gravity-ui/uikit';\nimport ypath from '../../../../common/thor/ypath';\n\n// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport {\n NAVIGATION_ATTRIBUTES_EDITOR_ERROR,\n NAVIGATION_ATTRIBUTES_EDITOR_PARTIAL,\n NAVIGATION_ATTRIBUTES_EDITOR_REQUEST,\n NAVIGATION_ATTRIBUTES_EDITOR_SUCCESS,\n} from '../../../../constants/navigation/modals/attributes-editor';\nimport {RootState} from '../../../../store/reducers';\nimport {NavAttrEditorAction} from '../../../../store/reducers/navigation/modals/attributes-editor';\nimport {\n getNavigationAttributesEditorAttributes,\n getNavigationAttributesEditorPath,\n getNavigationAttributesEditorStaticTables,\n} from '../../../../store/selectors/navigation/modals/attributes-editor';\nimport {getBatchError, showErrorPopup, wrapApiPromiseByToaster} from '../../../../utils/utils';\nimport {OperationShortInfo} from '../../../../pages/components/OperationShortInfo/OperationShortInfo';\nimport {AppStoreProvider} from '../../../../containers/App/AppStoreProvider';\nimport {updateView} from '../index';\nimport Link from '../../../../components/Link/Link';\nimport {getCluster} from '../../../selectors/global';\nimport {makeUiMarker, prepareSetCommandForBatch} from '../../../../utils/cypress-attributes';\nimport {Page} from '../../../../constants';\nimport {executeBatchWithRetries} from '../../execute-batch';\nimport {YTApiId} from '../../../../rum/rum-wrap-api';\nimport {BatchSubRequest} from '../../../../../shared/yt-types';\n\ntype ActionType<R = any> = ThunkAction<R, RootState, any, NavAttrEditorAction>;\n\nconst EDITABLE_ATTRIBUTES = [\n 'type',\n 'account',\n 'primary_medium',\n 'optimize_for',\n 'compression_codec',\n 'erasure_codec',\n 'replication_factor',\n 'tablet_cell_bundle',\n 'in_memory_mode',\n 'dynamic',\n 'sorted',\n 'annotation',\n 'annotation_path',\n 'expiration_time',\n 'expiration_timeout',\n];\n\nexport function showNavigationAttributesEditor(paths: Array<string>): ActionType {\n return (dispatch) => {\n dispatch({type: NAVIGATION_ATTRIBUTES_EDITOR_REQUEST});\n const requests = _.map(paths, (path) => {\n return {\n command: 'get' as const,\n parameters: {\n path: path + '/@',\n attributes: EDITABLE_ATTRIBUTES,\n },\n };\n });\n return executeBatchWithRetries(YTApiId.attributesEditorGetAttrs, requests)\n .then((results: any) => {\n const error = getBatchError(results, 'Attributes cannot be loaded');\n if (error) {\n throw error;\n }\n const attributesMap = _.reduce(\n paths,\n (acc, path, index) => {\n acc[path] = {$attributes: results[index].output};\n return acc;\n },\n {} as any,\n );\n dispatch({\n type: NAVIGATION_ATTRIBUTES_EDITOR_SUCCESS,\n data: {attributesMap, paths},\n });\n dispatch({\n type: NAVIGATION_ATTRIBUTES_EDITOR_PARTIAL,\n data: {visible: true},\n });\n })\n .catch((e: any) => {\n dispatch({type: NAVIGATION_ATTRIBUTES_EDITOR_ERROR, data: e});\n const toaster = new Toaster();\n toaster.add({\n name: 'show_attrs_editor_' + _.join(paths),\n type: 'error',\n title: 'Attributes cannot be loaded',\n content: e?.message,\n actions: [\n {\n label: ' [Details]',\n onClick: () => showErrorPopup(e),\n },\n ],\n autoHiding: false,\n });\n });\n };\n}\n\nexport function hideNavigationAttributesEditor() {\n return {\n type: NAVIGATION_ATTRIBUTES_EDITOR_PARTIAL,\n data: {paths: undefined, visible: false},\n };\n}\n\nconst EDIT_MARKER = makeUiMarker(`${Page.NAVIGATION}:edit-attributes`);\nconst EDIT_MERGE_MARKER = makeUiMarker(`${Page.NAVIGATION}:edit-attributes:merge`);\n\nexport function navigationSetNodeAttributes(\n generalAttrs: any,\n storageAttrs: object,\n runMerge: boolean,\n): ActionType<Promise<unknown>> {\n return (dispatch, getState) => {\n const paths = getNavigationAttributesEditorPath(getState());\n\n if (_.isEmpty({...generalAttrs, ...storageAttrs})) {\n console.warn(\n `Please check your parameters: ${JSON.stringify({\n path: paths,\n attributes: generalAttrs,\n })}`,\n );\n return Promise.resolve();\n }\n\n const cluster = getCluster(getState());\n\n const attributesMap = getNavigationAttributesEditorAttributes(getState());\n const {in_memory_mode, tablet_cell_bundle, ...restGeneralAttrs} = generalAttrs;\n\n const requests = _.reduce(\n paths,\n (acc, path) => {\n const attrs = attributesMap[path] || {};\n const newAttrs = {...restGeneralAttrs, ...storageAttrs};\n const type = ypath.getValue(attrs, '/@type');\n const isDynamic = ypath.getValue(attrs, '/@dynamic');\n const isDynTable = type === 'table' && isDynamic;\n if (in_memory_mode !== undefined && isDynTable) {\n Object.assign(newAttrs, {in_memory_mode});\n }\n if (tablet_cell_bundle !== undefined && (type === 'map_node' || isDynTable)) {\n Object.assign(newAttrs, {tablet_cell_bundle});\n }\n\n _.forEach(newAttrs, (value, key) => {\n acc.push(prepareSetCommandForBatch(`${path}/@${key}`, value, EDIT_MARKER));\n });\n return acc;\n },\n [] as Array<BatchSubRequest>,\n );\n\n const staticTables = getNavigationAttributesEditorStaticTables(getState());\n\n return executeBatchWithRetries(YTApiId.attributesEditorSet, requests)\n .then((res): Promise<unknown> => {\n const error = getBatchError(res, `Cannot set attributes for ${paths}`);\n if (error) {\n dispatch({\n type: NAVIGATION_ATTRIBUTES_EDITOR_ERROR,\n data: error,\n });\n return Promise.reject(error);\n }\n if (!runMerge || !staticTables.length || _.isEmpty(storageAttrs)) {\n return Promise.resolve(res);\n }\n\n const prepareMergeParams = (path: string) => {\n const sorted = ypath.getValue(attributesMap[path], '/@sorted');\n return {\n spec: Object.assign(\n {\n input_table_paths: [path],\n output_table_path: path,\n force_transform: true,\n },\n sorted ? {mode: 'sorted'} : {},\n ),\n ...EDIT_MERGE_MARKER,\n };\n };\n\n if (staticTables.length < 6) {\n const promises = _.map(staticTables, (path) => {\n return wrapApiPromiseByToaster(yt.v3.merge(prepareMergeParams(path)), {\n toasterName: 'storage_attrs_' + path,\n successContent(res: string) {\n const opId = JSON.parse(res);\n return (\n <AppStoreProvider>\n <OperationShortInfo\n id={opId}\n output_attribute_name={'/spec/output_table_path'}\n />\n </AppStoreProvider>\n );\n },\n successTitle: 'Merge operation is started',\n errorTitle: 'Merge operation is failed',\n autoHide: false,\n });\n });\n return Promise.all(promises);\n } else {\n const requests = _.map(staticTables, (path) => {\n return {\n command: 'merge' as const,\n parameters: prepareMergeParams(path),\n };\n });\n return executeBatchWithRetries(YTApiId.attributesEditorMerge, requests).then(\n (results: any) => {\n const error = getBatchError(results, 'Failed to start some operations');\n if (error) {\n throw error;\n }\n\n const toaster = new Toaster();\n toaster.add({\n type: 'success',\n name: 'merge_' + staticTables.join(','),\n title: `${staticTables.length} operations are started`,\n content: (\n <span>\n Please visit\n <Link url={`/${cluster}/operations`}> operations </Link>\n page to see more details\n </span>\n ),\n });\n },\n );\n }\n })\n .then(() => {\n dispatch(updateView());\n dispatch({\n type: NAVIGATION_ATTRIBUTES_EDITOR_PARTIAL,\n data: {paths: undefined, visible: false},\n });\n })\n .catch((e: any) => {\n dispatch({\n type: NAVIGATION_ATTRIBUTES_EDITOR_ERROR,\n data: e,\n });\n return Promise.reject(e);\n });\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","Toaster","ypath","yt","NAVIGATION_ATTRIBUTES_EDITOR_ERROR","NAVIGATION_ATTRIBUTES_EDITOR_PARTIAL","NAVIGATION_ATTRIBUTES_EDITOR_REQUEST","NAVIGATION_ATTRIBUTES_EDITOR_SUCCESS","getNavigationAttributesEditorAttributes","getNavigationAttributesEditorPath","getNavigationAttributesEditorStaticTables","getBatchError","showErrorPopup","wrapApiPromiseByToaster","OperationShortInfo","AppStoreProvider","updateView","Link","getCluster","makeUiMarker","prepareSetCommandForBatch","Page","executeBatchWithRetries","YTApiId","jsx","_jsx","jsxs","_jsxs","EDITABLE_ATTRIBUTES","showNavigationAttributesEditor","paths","dispatch","type","requests","_map","path","command","parameters","attributes","attributesEditorGetAttrs","errorTitle","then","results","error","attributesMap","_reduce","acc","index","$attributes","output","data","visible","e","toaster","add","name","_join","title","content","message","actions","label","onClick","autoHiding","hideNavigationAttributesEditor","undefined","EDIT_MARKER","concat","NAVIGATION","EDIT_MERGE_MARKER","navigationSetNodeAttributes","generalAttrs","storageAttrs","runMerge","getState","_isEmpty","_objectSpread","console","warn","JSON","stringify","Promise","resolve","cluster","in_memory_mode","tablet_cell_bundle","restGeneralAttrs","_objectWithoutProperties","_excluded","attrs","newAttrs","getValue","isDynamic","isDynTable","Object","assign","_forEach","value","key","push","staticTables","attributesEditorSet","res","reject","length","prepareMergeParams","sorted","spec","input_table_paths","output_table_path","force_transform","mode","promises","v3","merge","toasterName","successContent","opId","parse","children","id","output_attribute_name","successTitle","autoHide","all","attributesEditorMerge","join","url"],"sources":["attributes-editor.tsx"],"sourcesContent":["import React from 'react';\nimport _ from 'lodash';\nimport {ThunkAction} from 'redux-thunk';\n\nimport {Toaster} from '@gravity-ui/uikit';\nimport ypath from '../../../../common/thor/ypath';\n\n// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport {\n NAVIGATION_ATTRIBUTES_EDITOR_ERROR,\n NAVIGATION_ATTRIBUTES_EDITOR_PARTIAL,\n NAVIGATION_ATTRIBUTES_EDITOR_REQUEST,\n NAVIGATION_ATTRIBUTES_EDITOR_SUCCESS,\n} from '../../../../constants/navigation/modals/attributes-editor';\nimport {RootState} from '../../../../store/reducers';\nimport {NavAttrEditorAction} from '../../../../store/reducers/navigation/modals/attributes-editor';\nimport {\n getNavigationAttributesEditorAttributes,\n getNavigationAttributesEditorPath,\n getNavigationAttributesEditorStaticTables,\n} from '../../../../store/selectors/navigation/modals/attributes-editor';\nimport {getBatchError, showErrorPopup, wrapApiPromiseByToaster} from '../../../../utils/utils';\nimport {OperationShortInfo} from '../../../../pages/components/OperationShortInfo/OperationShortInfo';\nimport {AppStoreProvider} from '../../../../containers/App/AppStoreProvider';\nimport {updateView} from '../index';\nimport Link from '../../../../components/Link/Link';\nimport {getCluster} from '../../../selectors/global';\nimport {makeUiMarker, prepareSetCommandForBatch} from '../../../../utils/cypress-attributes';\nimport {Page} from '../../../../constants';\nimport {executeBatchWithRetries} from '../../execute-batch';\nimport {YTApiId} from '../../../../rum/rum-wrap-api';\nimport {BatchSubRequest} from '../../../../../shared/yt-types';\n\ntype ActionType<R = any> = ThunkAction<R, RootState, any, NavAttrEditorAction>;\n\nconst EDITABLE_ATTRIBUTES = [\n 'type',\n 'account',\n 'primary_medium',\n 'optimize_for',\n 'compression_codec',\n 'erasure_codec',\n 'replication_factor',\n 'tablet_cell_bundle',\n 'in_memory_mode',\n 'dynamic',\n 'sorted',\n 'annotation',\n 'annotation_path',\n 'expiration_time',\n 'expiration_timeout',\n];\n\nexport function showNavigationAttributesEditor(paths: Array<string>): ActionType {\n return (dispatch) => {\n dispatch({type: NAVIGATION_ATTRIBUTES_EDITOR_REQUEST});\n const requests = _.map(paths, (path) => {\n return {\n command: 'get' as const,\n parameters: {\n path: path + '/@',\n attributes: EDITABLE_ATTRIBUTES,\n },\n };\n });\n return executeBatchWithRetries(YTApiId.attributesEditorGetAttrs, requests, {\n errorTitle: 'Attributes cannot be loaded',\n })\n .then((results: any) => {\n const error = getBatchError(results, 'Attributes cannot be loaded');\n if (error) {\n throw error;\n }\n const attributesMap = _.reduce(\n paths,\n (acc, path, index) => {\n acc[path] = {$attributes: results[index].output};\n return acc;\n },\n {} as any,\n );\n dispatch({\n type: NAVIGATION_ATTRIBUTES_EDITOR_SUCCESS,\n data: {attributesMap, paths},\n });\n dispatch({\n type: NAVIGATION_ATTRIBUTES_EDITOR_PARTIAL,\n data: {visible: true},\n });\n })\n .catch((e: any) => {\n dispatch({type: NAVIGATION_ATTRIBUTES_EDITOR_ERROR, data: e});\n const toaster = new Toaster();\n toaster.add({\n name: 'show_attrs_editor_' + _.join(paths),\n type: 'error',\n title: 'Attributes cannot be loaded',\n content: e?.message,\n actions: [\n {\n label: ' [Details]',\n onClick: () => showErrorPopup(e),\n },\n ],\n autoHiding: false,\n });\n });\n };\n}\n\nexport function hideNavigationAttributesEditor() {\n return {\n type: NAVIGATION_ATTRIBUTES_EDITOR_PARTIAL,\n data: {paths: undefined, visible: false},\n };\n}\n\nconst EDIT_MARKER = makeUiMarker(`${Page.NAVIGATION}:edit-attributes`);\nconst EDIT_MERGE_MARKER = makeUiMarker(`${Page.NAVIGATION}:edit-attributes:merge`);\n\nexport function navigationSetNodeAttributes(\n generalAttrs: any,\n storageAttrs: object,\n runMerge: boolean,\n): ActionType<Promise<unknown>> {\n return (dispatch, getState) => {\n const paths = getNavigationAttributesEditorPath(getState());\n\n if (_.isEmpty({...generalAttrs, ...storageAttrs})) {\n console.warn(\n `Please check your parameters: ${JSON.stringify({\n path: paths,\n attributes: generalAttrs,\n })}`,\n );\n return Promise.resolve();\n }\n\n const cluster = getCluster(getState());\n\n const attributesMap = getNavigationAttributesEditorAttributes(getState());\n const {in_memory_mode, tablet_cell_bundle, ...restGeneralAttrs} = generalAttrs;\n\n const requests = _.reduce(\n paths,\n (acc, path) => {\n const attrs = attributesMap[path] || {};\n const newAttrs = {...restGeneralAttrs, ...storageAttrs};\n const type = ypath.getValue(attrs, '/@type');\n const isDynamic = ypath.getValue(attrs, '/@dynamic');\n const isDynTable = type === 'table' && isDynamic;\n if (in_memory_mode !== undefined && isDynTable) {\n Object.assign(newAttrs, {in_memory_mode});\n }\n if (tablet_cell_bundle !== undefined && (type === 'map_node' || isDynTable)) {\n Object.assign(newAttrs, {tablet_cell_bundle});\n }\n\n _.forEach(newAttrs, (value, key) => {\n acc.push(prepareSetCommandForBatch(`${path}/@${key}`, value, EDIT_MARKER));\n });\n return acc;\n },\n [] as Array<BatchSubRequest>,\n );\n\n const staticTables = getNavigationAttributesEditorStaticTables(getState());\n\n return executeBatchWithRetries(YTApiId.attributesEditorSet, requests, {\n errorTitle: `Cannot set attributes for ${paths}`,\n })\n .then((res): Promise<unknown> => {\n const error = getBatchError(res, `Cannot set attributes for ${paths}`);\n if (error) {\n dispatch({\n type: NAVIGATION_ATTRIBUTES_EDITOR_ERROR,\n data: error,\n });\n return Promise.reject(error);\n }\n if (!runMerge || !staticTables.length || _.isEmpty(storageAttrs)) {\n return Promise.resolve(res);\n }\n\n const prepareMergeParams = (path: string) => {\n const sorted = ypath.getValue(attributesMap[path], '/@sorted');\n return {\n spec: Object.assign(\n {\n input_table_paths: [path],\n output_table_path: path,\n force_transform: true,\n },\n sorted ? {mode: 'sorted'} : {},\n ),\n ...EDIT_MERGE_MARKER,\n };\n };\n\n if (staticTables.length < 6) {\n const promises = _.map(staticTables, (path) => {\n return wrapApiPromiseByToaster(yt.v3.merge(prepareMergeParams(path)), {\n toasterName: 'storage_attrs_' + path,\n successContent(res: string) {\n const opId = JSON.parse(res);\n return (\n <AppStoreProvider>\n <OperationShortInfo\n id={opId}\n output_attribute_name={'/spec/output_table_path'}\n />\n </AppStoreProvider>\n );\n },\n successTitle: 'Merge operation is started',\n errorTitle: 'Merge operation is failed',\n autoHide: false,\n });\n });\n return Promise.all(promises);\n } else {\n const requests = _.map(staticTables, (path) => {\n return {\n command: 'merge' as const,\n parameters: prepareMergeParams(path),\n };\n });\n return executeBatchWithRetries(YTApiId.attributesEditorMerge, requests, {\n errorTitle: 'Failed to start some operations',\n }).then((results: any) => {\n const error = getBatchError(results, 'Failed to start some operations');\n if (error) {\n throw error;\n }\n\n const toaster = new Toaster();\n toaster.add({\n type: 'success',\n name: 'merge_' + staticTables.join(','),\n title: `${staticTables.length} operations are started`,\n content: (\n <span>\n Please visit\n <Link url={`/${cluster}/operations`}> operations </Link>\n page to see more details\n </span>\n ),\n });\n });\n }\n })\n .then(() => {\n dispatch(updateView());\n dispatch({\n type: NAVIGATION_ATTRIBUTES_EDITOR_PARTIAL,\n data: {paths: undefined, visible: false},\n });\n })\n .catch((e: any) => {\n dispatch({\n type: NAVIGATION_ATTRIBUTES_EDITOR_ERROR,\n data: e,\n });\n return Promise.reject(e);\n });\n };\n}\n"],"mappings":"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"}
@@ -12,18 +12,10 @@ import { prepareDestinationPath, preparePath } from '../../../../utils/navigatio
12
12
  import CancelHelper from '../../../../utils/cancel-helper';
13
13
  import { executeBatchWithRetries } from '../../execute-batch';
14
14
  import { YTApiId } from '../../../../rum/rum-wrap-api';
15
- import { splitBatchResults } from '../../../../utils/utils';
15
+ import { wrapBatchPromise } from '../../../../utils/utils';
16
16
  import { jsx as _jsx } from "react/jsx-runtime";
17
17
  var requests = new CancelHelper();
18
18
  var toaster = new Toaster();
19
- function checkError(responses) {
20
- var _splitBatchResults = splitBatchResults(responses),
21
- error = _splitBatchResults.error;
22
- if (error) {
23
- return Promise.reject(error);
24
- }
25
- return Promise.resolve(responses);
26
- }
27
19
  function copyObjectIntoDirectory(from, to, _ref) {
28
20
  var preserve_account = _ref.preserve_account;
29
21
  var parts = from.split('/');
@@ -92,9 +84,10 @@ function copyObjects(items, copyingPath, _ref4) {
92
84
  }
93
85
  };
94
86
  });
95
- return executeBatchWithRetries(YTApiId.navigationCopy, copyRequests, {
87
+ return wrapBatchPromise(executeBatchWithRetries(YTApiId.navigationCopy, copyRequests, {
88
+ errorTitle: 'Failed to copy the object(s)',
96
89
  saveCancelSourceCb: requests.saveCancelToken
97
- }).then(checkError).then(function () {
90
+ }), 'Failed to copy the object(s)').then(function () {
98
91
  return yt.v3.commitTransaction({
99
92
  transaction_id: id
100
93
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","yt","Toaster","Link","COPY_OBJECT","showErrorInModal","HIDE_ERROR","prepareDestinationPath","preparePath","CancelHelper","executeBatchWithRetries","YTApiId","splitBatchResults","jsx","_jsx","requests","toaster","checkError","responses","_splitBatchResults","error","Promise","reject","resolve","copyObjectIntoDirectory","from","to","_ref","preserve_account","parts","split","name","length","v3","copy","parameters","source_path","destination_path","cancellation","saveCancelToken","copyObjectWithRename","_ref2","copySingleObject","_ref3","lastChar","charAt","exists","path","concat","then","exist","copyObjects","items","copyingPath","_ref4","_items","_slicedToArray","startTransaction","timeout","id","copyRequests","_map","node","command","transaction_id","titleUnquoted","navigationCopy","saveCancelSourceCb","commitTransaction","err","abortTransaction","copyObject","objectPath","onSuccess","multipleMode","_ref5","dispatch","type","REQUEST","SUCCESS","add","autoHiding","title","content","url","children","code","codes","CANCELLED","FAILURE","action","abortRequests","removeAllRequests"],"sources":["copy-object.tsx"],"sourcesContent":["import React from 'react';\n// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport {Toaster} from '@gravity-ui/uikit';\nimport Link from '../../../../components/Link/Link';\n\nimport {COPY_OBJECT} from '../../../../constants/navigation/modals/copy-object';\nimport {showErrorInModal} from '../../../../store/actions/navigation/modals/path-editing-popup';\nimport {HIDE_ERROR} from '../../../../constants/navigation/modals/path-editing-popup';\nimport {prepareDestinationPath, preparePath} from '../../../../utils/navigation';\nimport CancelHelper from '../../../../utils/cancel-helper';\nimport _ from 'lodash';\nimport {executeBatchWithRetries} from '../../execute-batch';\nimport {YTApiId} from '../../../../rum/rum-wrap-api';\nimport {BatchResultsItem} from '../../../../../shared/yt-types';\nimport {splitBatchResults} from '../../../../utils/utils';\nimport {Dispatch} from 'redux';\n\nconst requests = new CancelHelper();\nconst toaster = new Toaster();\n\nfunction checkError(responses: Array<BatchResultsItem>) {\n const {error} = splitBatchResults(responses);\n if (error) {\n return Promise.reject(error);\n }\n\n return Promise.resolve(responses);\n}\n\ninterface CopyOptions {\n preserve_account?: boolean;\n}\n\nfunction copyObjectIntoDirectory(from: string, to: string, {preserve_account}: CopyOptions) {\n const parts = from.split('/');\n const name = parts[parts.length - 1];\n return yt.v3.copy({\n parameters: {\n source_path: preparePath(from),\n destination_path: prepareDestinationPath(to, name),\n preserve_account,\n },\n cancellation: requests.saveCancelToken,\n });\n}\n\nfunction copyObjectWithRename(from: string, to: string, {preserve_account}: CopyOptions) {\n return yt.v3.copy({\n parameters: {\n source_path: preparePath(from),\n destination_path: to,\n preserve_account,\n },\n cancellation: requests.saveCancelToken,\n });\n}\n\nfunction copySingleObject(from: string, to: string, {preserve_account}: CopyOptions) {\n const lastChar = to.charAt(to.length - 1);\n\n if (lastChar === '/') {\n return copyObjectIntoDirectory(from, to, {preserve_account});\n }\n\n return yt.v3\n .exists({parameters: {path: `${to}&`}, cancellation: requests.saveCancelToken})\n .then((exist: boolean) => {\n return exist\n ? copyObjectIntoDirectory(from, to, {preserve_account})\n : copyObjectWithRename(from, to, {preserve_account});\n });\n}\n\nfunction copyObjects(\n items: Array<{path: string; titleUnquoted: string}>,\n copyingPath: string,\n {preserve_account}: CopyOptions,\n) {\n if (items.length === 1) {\n const [{path}] = items;\n return copySingleObject(path, copyingPath, {preserve_account});\n }\n\n return yt.v3.startTransaction({timeout: 120000}).then((id: string) => {\n const copyRequests = _.map(items, (node) => {\n return {\n command: 'copy' as const,\n parameters: {\n transaction_id: id,\n source_path: preparePath(node.path),\n destination_path: prepareDestinationPath(copyingPath, node.titleUnquoted),\n preserve_account,\n },\n };\n });\n\n return executeBatchWithRetries(YTApiId.navigationCopy, copyRequests, {\n saveCancelSourceCb: requests.saveCancelToken,\n })\n .then(checkError)\n .then(() => yt.v3.commitTransaction({transaction_id: id}))\n .catch((err) =>\n yt.v3.abortTransaction({transaction_id: id}).then(() => Promise.reject(err)),\n );\n });\n}\n\nexport function copyObject(\n objectPath: string,\n copyingPath: string,\n onSuccess: () => void,\n multipleMode: boolean,\n items: Array<{path: string; titleUnquoted: string}>,\n {preserve_account}: CopyOptions,\n) {\n return (dispatch: Dispatch) => {\n dispatch({type: COPY_OBJECT.REQUEST});\n\n return Promise.resolve()\n .then(() =>\n multipleMode\n ? copyObjects(items, copyingPath, {preserve_account})\n : copySingleObject(objectPath, copyingPath, {preserve_account}),\n )\n .then(() => {\n dispatch({type: COPY_OBJECT.SUCCESS});\n\n if (typeof onSuccess === 'function') {\n onSuccess();\n }\n\n toaster.add({\n name: 'copy',\n autoHiding: 10000,\n type: 'success',\n title: multipleMode\n ? 'Objects were successfully copied'\n : 'Object was successfully copied',\n content: <Link url={`navigation?path=${copyingPath}`}>{copyingPath}</Link>,\n });\n })\n .catch((error) => {\n if (error.code === yt.codes.CANCELLED) {\n dispatch({\n type: COPY_OBJECT.CANCELLED,\n });\n } else {\n dispatch({type: COPY_OBJECT.FAILURE});\n\n const action = showErrorInModal(error);\n\n dispatch(action);\n }\n return Promise.reject(error);\n });\n };\n}\n\nexport function abortRequests() {\n return (dispatch: Dispatch) => {\n requests.removeAllRequests();\n\n dispatch({type: HIDE_ERROR});\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","yt","Toaster","Link","COPY_OBJECT","showErrorInModal","HIDE_ERROR","prepareDestinationPath","preparePath","CancelHelper","executeBatchWithRetries","YTApiId","wrapBatchPromise","jsx","_jsx","requests","toaster","copyObjectIntoDirectory","from","to","_ref","preserve_account","parts","split","name","length","v3","copy","parameters","source_path","destination_path","cancellation","saveCancelToken","copyObjectWithRename","_ref2","copySingleObject","_ref3","lastChar","charAt","exists","path","concat","then","exist","copyObjects","items","copyingPath","_ref4","_items","_slicedToArray","startTransaction","timeout","id","copyRequests","_map","node","command","transaction_id","titleUnquoted","navigationCopy","errorTitle","saveCancelSourceCb","commitTransaction","err","abortTransaction","Promise","reject","copyObject","objectPath","onSuccess","multipleMode","_ref5","dispatch","type","REQUEST","resolve","SUCCESS","add","autoHiding","title","content","url","children","error","code","codes","CANCELLED","FAILURE","action","abortRequests","removeAllRequests"],"sources":["copy-object.tsx"],"sourcesContent":["import React from 'react';\n// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport {Toaster} from '@gravity-ui/uikit';\nimport Link from '../../../../components/Link/Link';\n\nimport {COPY_OBJECT} from '../../../../constants/navigation/modals/copy-object';\nimport {showErrorInModal} from '../../../../store/actions/navigation/modals/path-editing-popup';\nimport {HIDE_ERROR} from '../../../../constants/navigation/modals/path-editing-popup';\nimport {prepareDestinationPath, preparePath} from '../../../../utils/navigation';\nimport CancelHelper from '../../../../utils/cancel-helper';\nimport _ from 'lodash';\nimport {executeBatchWithRetries} from '../../execute-batch';\nimport {YTApiId} from '../../../../rum/rum-wrap-api';\nimport {wrapBatchPromise} from '../../../../utils/utils';\nimport {Dispatch} from 'redux';\n\nconst requests = new CancelHelper();\nconst toaster = new Toaster();\n\ninterface CopyOptions {\n preserve_account?: boolean;\n}\n\nfunction copyObjectIntoDirectory(from: string, to: string, {preserve_account}: CopyOptions) {\n const parts = from.split('/');\n const name = parts[parts.length - 1];\n return yt.v3.copy({\n parameters: {\n source_path: preparePath(from),\n destination_path: prepareDestinationPath(to, name),\n preserve_account,\n },\n cancellation: requests.saveCancelToken,\n });\n}\n\nfunction copyObjectWithRename(from: string, to: string, {preserve_account}: CopyOptions) {\n return yt.v3.copy({\n parameters: {\n source_path: preparePath(from),\n destination_path: to,\n preserve_account,\n },\n cancellation: requests.saveCancelToken,\n });\n}\n\nfunction copySingleObject(from: string, to: string, {preserve_account}: CopyOptions) {\n const lastChar = to.charAt(to.length - 1);\n\n if (lastChar === '/') {\n return copyObjectIntoDirectory(from, to, {preserve_account});\n }\n\n return yt.v3\n .exists({parameters: {path: `${to}&`}, cancellation: requests.saveCancelToken})\n .then((exist: boolean) => {\n return exist\n ? copyObjectIntoDirectory(from, to, {preserve_account})\n : copyObjectWithRename(from, to, {preserve_account});\n });\n}\n\nfunction copyObjects(\n items: Array<{path: string; titleUnquoted: string}>,\n copyingPath: string,\n {preserve_account}: CopyOptions,\n) {\n if (items.length === 1) {\n const [{path}] = items;\n return copySingleObject(path, copyingPath, {preserve_account});\n }\n\n return yt.v3.startTransaction({timeout: 120000}).then((id: string) => {\n const copyRequests = _.map(items, (node) => {\n return {\n command: 'copy' as const,\n parameters: {\n transaction_id: id,\n source_path: preparePath(node.path),\n destination_path: prepareDestinationPath(copyingPath, node.titleUnquoted),\n preserve_account,\n },\n };\n });\n\n return wrapBatchPromise(\n executeBatchWithRetries(YTApiId.navigationCopy, copyRequests, {\n errorTitle: 'Failed to copy the object(s)',\n saveCancelSourceCb: requests.saveCancelToken,\n }),\n 'Failed to copy the object(s)',\n )\n .then(() => yt.v3.commitTransaction({transaction_id: id}))\n .catch((err) =>\n yt.v3.abortTransaction({transaction_id: id}).then(() => Promise.reject(err)),\n );\n });\n}\n\nexport function copyObject(\n objectPath: string,\n copyingPath: string,\n onSuccess: () => void,\n multipleMode: boolean,\n items: Array<{path: string; titleUnquoted: string}>,\n {preserve_account}: CopyOptions,\n) {\n return (dispatch: Dispatch) => {\n dispatch({type: COPY_OBJECT.REQUEST});\n\n return Promise.resolve()\n .then(() =>\n multipleMode\n ? copyObjects(items, copyingPath, {preserve_account})\n : copySingleObject(objectPath, copyingPath, {preserve_account}),\n )\n .then(() => {\n dispatch({type: COPY_OBJECT.SUCCESS});\n\n if (typeof onSuccess === 'function') {\n onSuccess();\n }\n\n toaster.add({\n name: 'copy',\n autoHiding: 10000,\n type: 'success',\n title: multipleMode\n ? 'Objects were successfully copied'\n : 'Object was successfully copied',\n content: <Link url={`navigation?path=${copyingPath}`}>{copyingPath}</Link>,\n });\n })\n .catch((error) => {\n if (error.code === yt.codes.CANCELLED) {\n dispatch({\n type: COPY_OBJECT.CANCELLED,\n });\n } else {\n dispatch({type: COPY_OBJECT.FAILURE});\n\n const action = showErrorInModal(error);\n\n dispatch(action);\n }\n return Promise.reject(error);\n });\n };\n}\n\nexport function abortRequests() {\n return (dispatch: Dispatch) => {\n requests.removeAllRequests();\n\n dispatch({type: HIDE_ERROR});\n };\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB;AACA,OAAOC,EAAE,MAAM,qCAAqC;AAEpD,SAAQC,OAAO,QAAO,mBAAmB;AACzC,OAAOC,IAAI,MAAM,kCAAkC;AAEnD,SAAQC,WAAW,QAAO,qDAAqD;AAC/E,SAAQC,gBAAgB,QAAO,gEAAgE;AAC/F,SAAQC,UAAU,QAAO,4DAA4D;AACrF,SAAQC,sBAAsB,EAAEC,WAAW,QAAO,8BAA8B;AAChF,OAAOC,YAAY,MAAM,iCAAiC;AAE1D,SAAQC,uBAAuB,QAAO,qBAAqB;AAC3D,SAAQC,OAAO,QAAO,8BAA8B;AACpD,SAAQC,gBAAgB,QAAO,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGzD,IAAMC,QAAQ,GAAG,IAAIN,YAAY,CAAC,CAAC;AACnC,IAAMO,OAAO,GAAG,IAAId,OAAO,CAAC,CAAC;AAM7B,SAASe,uBAAuBA,CAACC,IAAY,EAAEC,EAAU,EAAAC,IAAA,EAAmC;EAAA,IAAhCC,gBAAgB,GAAAD,IAAA,CAAhBC,gBAAgB;EACxE,IAAMC,KAAK,GAAGJ,IAAI,CAACK,KAAK,CAAC,GAAG,CAAC;EAC7B,IAAMC,IAAI,GAAGF,KAAK,CAACA,KAAK,CAACG,MAAM,GAAG,CAAC,CAAC;EACpC,OAAOxB,EAAE,CAACyB,EAAE,CAACC,IAAI,CAAC;IACdC,UAAU,EAAE;MACRC,WAAW,EAAErB,WAAW,CAACU,IAAI,CAAC;MAC9BY,gBAAgB,EAAEvB,sBAAsB,CAACY,EAAE,EAAEK,IAAI,CAAC;MAClDH,gBAAgB,EAAhBA;IACJ,CAAC;IACDU,YAAY,EAAEhB,QAAQ,CAACiB;EAC3B,CAAC,CAAC;AACN;AAEA,SAASC,oBAAoBA,CAACf,IAAY,EAAEC,EAAU,EAAAe,KAAA,EAAmC;EAAA,IAAhCb,gBAAgB,GAAAa,KAAA,CAAhBb,gBAAgB;EACrE,OAAOpB,EAAE,CAACyB,EAAE,CAACC,IAAI,CAAC;IACdC,UAAU,EAAE;MACRC,WAAW,EAAErB,WAAW,CAACU,IAAI,CAAC;MAC9BY,gBAAgB,EAAEX,EAAE;MACpBE,gBAAgB,EAAhBA;IACJ,CAAC;IACDU,YAAY,EAAEhB,QAAQ,CAACiB;EAC3B,CAAC,CAAC;AACN;AAEA,SAASG,gBAAgBA,CAACjB,IAAY,EAAEC,EAAU,EAAAiB,KAAA,EAAmC;EAAA,IAAhCf,gBAAgB,GAAAe,KAAA,CAAhBf,gBAAgB;EACjE,IAAMgB,QAAQ,GAAGlB,EAAE,CAACmB,MAAM,CAACnB,EAAE,CAACM,MAAM,GAAG,CAAC,CAAC;EAEzC,IAAIY,QAAQ,KAAK,GAAG,EAAE;IAClB,OAAOpB,uBAAuB,CAACC,IAAI,EAAEC,EAAE,EAAE;MAACE,gBAAgB,EAAhBA;IAAgB,CAAC,CAAC;EAChE;EAEA,OAAOpB,EAAE,CAACyB,EAAE,CACPa,MAAM,CAAC;IAACX,UAAU,EAAE;MAACY,IAAI,KAAAC,MAAA,CAAKtB,EAAE;IAAG,CAAC;IAAEY,YAAY,EAAEhB,QAAQ,CAACiB;EAAe,CAAC,CAAC,CAC9EU,IAAI,CAAC,UAACC,KAAc,EAAK;IACtB,OAAOA,KAAK,GACN1B,uBAAuB,CAACC,IAAI,EAAEC,EAAE,EAAE;MAACE,gBAAgB,EAAhBA;IAAgB,CAAC,CAAC,GACrDY,oBAAoB,CAACf,IAAI,EAAEC,EAAE,EAAE;MAACE,gBAAgB,EAAhBA;IAAgB,CAAC,CAAC;EAC5D,CAAC,CAAC;AACV;AAEA,SAASuB,WAAWA,CAChBC,KAAmD,EACnDC,WAAmB,EAAAC,KAAA,EAErB;EAAA,IADG1B,gBAAgB,GAAA0B,KAAA,CAAhB1B,gBAAgB;EAEjB,IAAIwB,KAAK,CAACpB,MAAM,KAAK,CAAC,EAAE;IACpB,IAAAuB,MAAA,GAAAC,cAAA,CAAiBJ,KAAK;MAAdL,IAAI,GAAAQ,MAAA,IAAJR,IAAI;IACZ,OAAOL,gBAAgB,CAACK,IAAI,EAAEM,WAAW,EAAE;MAACzB,gBAAgB,EAAhBA;IAAgB,CAAC,CAAC;EAClE;EAEA,OAAOpB,EAAE,CAACyB,EAAE,CAACwB,gBAAgB,CAAC;IAACC,OAAO,EAAE;EAAM,CAAC,CAAC,CAACT,IAAI,CAAC,UAACU,EAAU,EAAK;IAClE,IAAMC,YAAY,GAAGC,IAAA,CAAMT,KAAK,EAAE,UAACU,IAAI,EAAK;MACxC,OAAO;QACHC,OAAO,EAAE,MAAe;QACxB5B,UAAU,EAAE;UACR6B,cAAc,EAAEL,EAAE;UAClBvB,WAAW,EAAErB,WAAW,CAAC+C,IAAI,CAACf,IAAI,CAAC;UACnCV,gBAAgB,EAAEvB,sBAAsB,CAACuC,WAAW,EAAES,IAAI,CAACG,aAAa,CAAC;UACzErC,gBAAgB,EAAhBA;QACJ;MACJ,CAAC;IACL,CAAC,CAAC;IAEF,OAAOT,gBAAgB,CACnBF,uBAAuB,CAACC,OAAO,CAACgD,cAAc,EAAEN,YAAY,EAAE;MAC1DO,UAAU,EAAE,8BAA8B;MAC1CC,kBAAkB,EAAE9C,QAAQ,CAACiB;IACjC,CAAC,CAAC,EACF,8BACJ,CAAC,CACIU,IAAI,CAAC;MAAA,OAAMzC,EAAE,CAACyB,EAAE,CAACoC,iBAAiB,CAAC;QAACL,cAAc,EAAEL;MAAE,CAAC,CAAC;IAAA,EAAC,SACpD,CAAC,UAACW,GAAG;MAAA,OACP9D,EAAE,CAACyB,EAAE,CAACsC,gBAAgB,CAAC;QAACP,cAAc,EAAEL;MAAE,CAAC,CAAC,CAACV,IAAI,CAAC;QAAA,OAAMuB,OAAO,CAACC,MAAM,CAACH,GAAG,CAAC;MAAA,EAAC;IAAA,CAChF,CAAC;EACT,CAAC,CAAC;AACN;AAEA,OAAO,SAASI,UAAUA,CACtBC,UAAkB,EAClBtB,WAAmB,EACnBuB,SAAqB,EACrBC,YAAqB,EACrBzB,KAAmD,EAAA0B,KAAA,EAErD;EAAA,IADGlD,gBAAgB,GAAAkD,KAAA,CAAhBlD,gBAAgB;EAEjB,OAAO,UAACmD,QAAkB,EAAK;IAC3BA,QAAQ,CAAC;MAACC,IAAI,EAAErE,WAAW,CAACsE;IAAO,CAAC,CAAC;IAErC,OAAOT,OAAO,CAACU,OAAO,CAAC,CAAC,CACnBjC,IAAI,CAAC;MAAA,OACF4B,YAAY,GACN1B,WAAW,CAACC,KAAK,EAAEC,WAAW,EAAE;QAACzB,gBAAgB,EAAhBA;MAAgB,CAAC,CAAC,GACnDc,gBAAgB,CAACiC,UAAU,EAAEtB,WAAW,EAAE;QAACzB,gBAAgB,EAAhBA;MAAgB,CAAC,CAAC;IAAA,CACvE,CAAC,CACAqB,IAAI,CAAC,YAAM;MACR8B,QAAQ,CAAC;QAACC,IAAI,EAAErE,WAAW,CAACwE;MAAO,CAAC,CAAC;MAErC,IAAI,OAAOP,SAAS,KAAK,UAAU,EAAE;QACjCA,SAAS,CAAC,CAAC;MACf;MAEArD,OAAO,CAAC6D,GAAG,CAAC;QACRrD,IAAI,EAAE,MAAM;QACZsD,UAAU,EAAE,KAAK;QACjBL,IAAI,EAAE,SAAS;QACfM,KAAK,EAAET,YAAY,GACb,kCAAkC,GAClC,gCAAgC;QACtCU,OAAO,eAAElE,IAAA,CAACX,IAAI;UAAC8E,GAAG,qBAAAxC,MAAA,CAAqBK,WAAW,CAAG;UAAAoC,QAAA,EAAEpC;QAAW,CAAO;MAC7E,CAAC,CAAC;IACN,CAAC,CAAC,SACI,CAAC,UAACqC,KAAK,EAAK;MACd,IAAIA,KAAK,CAACC,IAAI,KAAKnF,EAAE,CAACoF,KAAK,CAACC,SAAS,EAAE;QACnCd,QAAQ,CAAC;UACLC,IAAI,EAAErE,WAAW,CAACkF;QACtB,CAAC,CAAC;MACN,CAAC,MAAM;QACHd,QAAQ,CAAC;UAACC,IAAI,EAAErE,WAAW,CAACmF;QAAO,CAAC,CAAC;QAErC,IAAMC,MAAM,GAAGnF,gBAAgB,CAAC8E,KAAK,CAAC;QAEtCX,QAAQ,CAACgB,MAAM,CAAC;MACpB;MACA,OAAOvB,OAAO,CAACC,MAAM,CAACiB,KAAK,CAAC;IAChC,CAAC,CAAC;EACV,CAAC;AACL;AAEA,OAAO,SAASM,aAAaA,CAAA,EAAG;EAC5B,OAAO,UAACjB,QAAkB,EAAK;IAC3BzD,QAAQ,CAAC2E,iBAAiB,CAAC,CAAC;IAE5BlB,QAAQ,CAAC;MAACC,IAAI,EAAEnE;IAAU,CAAC,CAAC;EAChC,CAAC;AACL"}