ydb-embedded-ui 15.0.0 → 15.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/components/ShardsTable/columns.js +3 -1
  2. package/dist/components/ShardsTable/columns.js.map +1 -1
  3. package/dist/components/ShardsTable/i18n/en.json +1 -0
  4. package/dist/components/ShardsTable/i18n/index.d.ts +1 -1
  5. package/dist/components/StorageGroupInfo/i18n/index.d.ts +1 -1
  6. package/dist/components/VDiskPopup/VDiskPopup.js +2 -2
  7. package/dist/components/VDiskPopup/VDiskPopup.js.map +1 -1
  8. package/dist/components/capacityMetricsColumns/columns.js +4 -1
  9. package/dist/components/capacityMetricsColumns/columns.js.map +1 -1
  10. package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js +0 -5
  11. package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js.map +1 -1
  12. package/dist/containers/Tenant/Diagnostics/StorageUsage/storageUsageFormatters.d.ts +3 -3
  13. package/dist/containers/Tenant/Diagnostics/StorageUsage/storageUsageFormatters.js +4 -42
  14. package/dist/containers/Tenant/Diagnostics/StorageUsage/storageUsageFormatters.js.map +1 -1
  15. package/dist/containers/Tenant/Diagnostics/i18n/en.json +0 -1
  16. package/dist/containers/Tenant/Diagnostics/i18n/index.d.ts +1 -1
  17. package/dist/containers/VDiskPage/VDiskPage.js +21 -12
  18. package/dist/containers/VDiskPage/VDiskPage.js.map +1 -1
  19. package/dist/containers/VDiskPage/VDiskPage.scss +4 -0
  20. package/dist/containers/VDiskPage/VDiskStorageDetails.d.ts +8 -0
  21. package/dist/containers/VDiskPage/VDiskStorageDetails.js +40 -0
  22. package/dist/containers/VDiskPage/VDiskStorageDetails.js.map +1 -0
  23. package/dist/containers/VDiskPage/VDiskStorageDetails.scss +129 -0
  24. package/dist/containers/VDiskPage/i18n/en.json +10 -0
  25. package/dist/containers/VDiskPage/i18n/index.d.ts +1 -1
  26. package/dist/routes.d.ts +1 -1
  27. package/dist/routes.js +2 -2
  28. package/dist/routes.js.map +1 -1
  29. package/dist/routes.test.d.ts +1 -0
  30. package/dist/routes.test.js +25 -0
  31. package/dist/routes.test.js.map +1 -0
  32. package/dist/services/api/__test__/base.test.d.ts +1 -0
  33. package/dist/services/api/__test__/base.test.js +136 -0
  34. package/dist/services/api/__test__/base.test.js.map +1 -0
  35. package/dist/services/api/base.d.ts +21 -0
  36. package/dist/services/api/base.js +100 -13
  37. package/dist/services/api/base.js.map +1 -1
  38. package/dist/store/reducers/storage/types.d.ts +2 -2
  39. package/dist/store/reducers/vdisk/types.d.ts +1 -0
  40. package/dist/store/reducers/vdisk/utils.js +2 -0
  41. package/dist/store/reducers/vdisk/utils.js.map +1 -1
  42. package/dist/types/api/enums.d.ts +1 -0
  43. package/dist/types/api/enums.js +7 -0
  44. package/dist/types/api/enums.js.map +1 -1
  45. package/dist/types/api/nodes.d.ts +1 -1
  46. package/dist/types/api/storage.d.ts +1 -1
  47. package/dist/types/api/vdisk.d.ts +2 -1
  48. package/dist/types/api/vdisk.js.map +1 -1
  49. package/dist/uiFactory/types.d.ts +6 -0
  50. package/dist/utils/__test__/capacityAlerts.test.d.ts +1 -0
  51. package/dist/utils/__test__/capacityAlerts.test.js +56 -0
  52. package/dist/utils/__test__/capacityAlerts.test.js.map +1 -0
  53. package/dist/utils/__test__/storageMetrics.test.d.ts +1 -0
  54. package/dist/utils/__test__/storageMetrics.test.js +20 -0
  55. package/dist/utils/__test__/storageMetrics.test.js.map +1 -0
  56. package/dist/utils/capacityAlerts.d.ts +6 -1
  57. package/dist/utils/capacityAlerts.js +18 -5
  58. package/dist/utils/capacityAlerts.js.map +1 -1
  59. package/dist/utils/developerUI/__test__/developerUI.test.js +132 -2
  60. package/dist/utils/developerUI/__test__/developerUI.test.js.map +1 -1
  61. package/dist/utils/developerUI/developerUI.js +30 -8
  62. package/dist/utils/developerUI/developerUI.js.map +1 -1
  63. package/dist/utils/disks/__test__/calculateVDiskSeverity.test.js +79 -12
  64. package/dist/utils/disks/__test__/calculateVDiskSeverity.test.js.map +1 -1
  65. package/dist/utils/disks/__test__/prepareDisks.test.js +46 -0
  66. package/dist/utils/disks/__test__/prepareDisks.test.js.map +1 -1
  67. package/dist/utils/disks/calculateVDiskSeverity.d.ts +2 -0
  68. package/dist/utils/disks/calculateVDiskSeverity.js +15 -4
  69. package/dist/utils/disks/calculateVDiskSeverity.js.map +1 -1
  70. package/dist/utils/disks/constants.js +2 -2
  71. package/dist/utils/disks/constants.js.map +1 -1
  72. package/dist/utils/disks/prepareDisks.d.ts +1 -0
  73. package/dist/utils/disks/prepareDisks.js +32 -2
  74. package/dist/utils/disks/prepareDisks.js.map +1 -1
  75. package/dist/utils/disks/types.d.ts +1 -0
  76. package/dist/utils/errors/__test__/extractErrorDetails.test.js +26 -0
  77. package/dist/utils/errors/__test__/extractErrorDetails.test.js.map +1 -1
  78. package/dist/utils/storageMetrics.d.ts +4 -0
  79. package/dist/utils/storageMetrics.js +51 -0
  80. package/dist/utils/storageMetrics.js.map +1 -0
  81. package/package.json +2 -2
@@ -0,0 +1,129 @@
1
+ .ydb-vdisk-storage-details {
2
+ &__title {
3
+ margin-bottom: var(--g-spacing-4);
4
+ }
5
+
6
+ &__cards {
7
+ display: flex;
8
+ flex-wrap: wrap;
9
+ align-items: flex-start;
10
+ gap: var(--g-spacing-1);
11
+
12
+ width: fit-content;
13
+ max-width: 100%;
14
+ }
15
+
16
+ &__card {
17
+ min-width: 0;
18
+ padding: var(--g-spacing-4) var(--g-spacing-5);
19
+
20
+ border-radius: var(--g-border-radius-m) var(--g-border-radius-xs) var(--g-border-radius-xs)
21
+ var(--g-border-radius-m);
22
+ background-color: var(--g-color-base-generic);
23
+
24
+ &_metrics {
25
+ display: flex;
26
+ flex: 0 0 auto;
27
+ align-items: stretch;
28
+ gap: var(--g-spacing-5);
29
+
30
+ width: max-content;
31
+ max-width: 100%;
32
+ min-height: 74px;
33
+ }
34
+
35
+ &_details {
36
+ display: flex;
37
+ flex: 0 1 auto;
38
+ flex-wrap: wrap;
39
+ justify-content: flex-start;
40
+ align-items: center;
41
+ gap: var(--g-spacing-4);
42
+
43
+ width: fit-content;
44
+ max-width: 100%;
45
+ min-height: 74px;
46
+
47
+ border-radius: var(--g-border-radius-xs) var(--g-border-radius-m)
48
+ var(--g-border-radius-m) var(--g-border-radius-xs);
49
+ }
50
+ }
51
+
52
+ &__details {
53
+ display: flex;
54
+ flex: 0 1 auto;
55
+ flex-wrap: wrap;
56
+ align-items: stretch;
57
+ gap: var(--g-spacing-4);
58
+
59
+ min-width: 0;
60
+ max-width: 100%;
61
+ }
62
+
63
+ &__metric,
64
+ &__detail {
65
+ display: flex;
66
+ flex-direction: column;
67
+ justify-content: center;
68
+ align-items: flex-start;
69
+ gap: var(--g-spacing-1);
70
+
71
+ min-width: 0;
72
+ padding-right: var(--g-spacing-4);
73
+ }
74
+
75
+ &__detail {
76
+ flex: 0 1 auto;
77
+
78
+ min-width: 100px;
79
+ max-width: 200px;
80
+ }
81
+
82
+ &__value,
83
+ &__label {
84
+ display: block;
85
+
86
+ white-space: nowrap;
87
+ }
88
+
89
+ &__value-row &__value {
90
+ overflow: hidden;
91
+
92
+ text-overflow: ellipsis;
93
+ }
94
+
95
+ &__value-row {
96
+ flex-wrap: nowrap;
97
+
98
+ width: 100%;
99
+ min-width: 0;
100
+ height: 20px;
101
+
102
+ &_copyable {
103
+ width: auto;
104
+ max-width: 100%;
105
+ }
106
+ }
107
+
108
+ &__value-popover {
109
+ flex: 1 1 auto;
110
+
111
+ min-width: 0;
112
+
113
+ &_copyable {
114
+ flex: 0 1 auto;
115
+
116
+ max-width: 100%;
117
+ }
118
+ }
119
+
120
+ &__value-popover-content {
121
+ width: 100%;
122
+ min-width: 0;
123
+
124
+ &_copyable {
125
+ width: auto;
126
+ max-width: 100%;
127
+ }
128
+ }
129
+ }
@@ -5,6 +5,16 @@
5
5
  "vdisk": "VDisk",
6
6
  "storage": "Storage",
7
7
  "tablets": "Tablets",
8
+ "title_storage-details": "Storage details",
9
+ "field_storage-details-used": "Used",
10
+ "field_storage-details-total": "Total",
11
+ "field_storage-details-free": "Free",
12
+ "field_storage-details-usage": "Usage",
13
+ "field_datacenter": "Datacenter",
14
+ "field_rack": "Rack",
15
+ "field_node": "Node",
16
+ "field_pdisk-id": "PDisk ID",
17
+ "action_go-to-pdisk": "Go to PDisk",
8
18
  "tablet-id": "Tablet ID",
9
19
  "channel-id": "Channel ID",
10
20
  "count": "Count",
@@ -1 +1 @@
1
- export declare const vDiskPageKeyset: (key: "storage" | "size" | "tablets" | "node" | "fqdn" | "count" | "tablet-id" | "label_donor" | "pdisk" | "vdisk" | "channel-id", params?: import("@gravity-ui/i18n").Params) => string;
1
+ export declare const vDiskPageKeyset: (key: "storage" | "size" | "tablets" | "node" | "fqdn" | "count" | "tablet-id" | "field_rack" | "label_donor" | "pdisk" | "vdisk" | "field_node" | "title_storage-details" | "field_storage-details-used" | "field_storage-details-total" | "field_storage-details-free" | "field_storage-details-usage" | "field_datacenter" | "field_pdisk-id" | "action_go-to-pdisk" | "channel-id", params?: import("@gravity-ui/i18n").Params) => string;
package/dist/routes.d.ts CHANGED
@@ -43,7 +43,7 @@ export type BaseQueryParams = {
43
43
  export type QueryParamsTypeFromQueryObject<T extends Record<string, QueryParamConfig<any, any>>> = {
44
44
  [QueryParamName in keyof T]?: Parameters<T[QueryParamName]['encode']>[0];
45
45
  };
46
- export declare function getPDiskPagePath(pDiskId: string | number, nodeId: string | number, query?: Query): string;
46
+ export declare function getPDiskPagePath(pDiskId: string | number, nodeId: string | number, query?: Query, options?: CreateHrefOptions): string;
47
47
  export declare function getStorageGroupPath(groupId: string | number, query?: Query): string;
48
48
  export declare function getDefaultNodePath(params: {
49
49
  id: string | number;
package/dist/routes.js CHANGED
@@ -91,8 +91,8 @@ export function getLocationObjectFromHref(href) {
91
91
  const { pathname, search, hash } = new URL(href, 'http://localhost');
92
92
  return { pathname, search, hash };
93
93
  }
94
- export function getPDiskPagePath(pDiskId, nodeId, query = {}) {
95
- return createHref(routes.pDisk, undefined, { ...query, nodeId, pDiskId });
94
+ export function getPDiskPagePath(pDiskId, nodeId, query = {}, options) {
95
+ return createHref(routes.pDisk, undefined, { ...query, nodeId, pDiskId }, options);
96
96
  }
97
97
  export function getStorageGroupPath(groupId, query = {}) {
98
98
  return createHref(routes.storageGroup, undefined, { ...query, groupId });
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,25 @@
1
+ jest.mock('./store', () => ({
2
+ backend: undefined,
3
+ basename: '/monitoring',
4
+ clusterName: undefined,
5
+ environment: undefined,
6
+ webVersion: false,
7
+ }));
8
+ jest.mock('./uiFactory/uiFactory', () => ({
9
+ uiFactory: { clustersDomain: undefined },
10
+ }));
11
+ jest.mock('./utils/hooks/useDatabaseFromQuery', () => ({
12
+ useDatabaseFromQuery: jest.fn(),
13
+ }));
14
+ import { getPDiskPagePath } from './routes';
15
+ describe('routes', () => {
16
+ describe('getPDiskPagePath', () => {
17
+ test('should create pDisk path without basename by default', () => {
18
+ expect(getPDiskPagePath(1001, 4)).toBe('/pDisk?nodeId=4&pDiskId=1001');
19
+ });
20
+ test('should prepend basename when requested for href-based links', () => {
21
+ expect(getPDiskPagePath(1001, 4, undefined, { withBasename: true })).toBe('/monitoring/pDisk?nodeId=4&pDiskId=1001');
22
+ });
23
+ });
24
+ });
25
+ //# sourceMappingURL=routes.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.test.js","sourceRoot":"","sources":["../src/routes.test.ts"],"names":[],"mappings":"AAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IACxB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,aAAa;IACvB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,SAAS;IACtB,UAAU,EAAE,KAAK;CACpB,CAAC,CAAC,CAAC;AAEJ,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC;IACtC,SAAS,EAAE,EAAC,cAAc,EAAE,SAAS,EAAC;CACzC,CAAC,CAAC,CAAC;AAEJ,IAAI,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE,CAAC,CAAC;IACnD,oBAAoB,EAAE,IAAI,CAAC,EAAE,EAAE;CAClC,CAAC,CAAC,CAAC;AAEJ,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAE1C,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACpB,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC9B,IAAI,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,EAAC,YAAY,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,IAAI,CACnE,yCAAyC,CAC5C,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,136 @@
1
+ jest.mock('../../../store', () => ({
2
+ backend: undefined,
3
+ clusterName: undefined,
4
+ }));
5
+ import { isRedirectToAuth } from '../../../utils/response';
6
+ import { handleBaseApiResponseError, recoverXhrResponseFromNetworkError } from '../base';
7
+ import * as needResetModule from '../utils/needReset';
8
+ function createXhrRequestMock({ readyState = 4, status = 504, statusText = 'Deadline Exceeded', responseText = '', responseURL = 'https://oidc-proxy-preprod.example.net/viewer/json/whoami?database=%2Fdb', rawHeaders = '', } = {}) {
9
+ return {
10
+ readyState,
11
+ status,
12
+ statusText,
13
+ responseText,
14
+ responseURL,
15
+ getAllResponseHeaders: () => rawHeaders,
16
+ };
17
+ }
18
+ function createNetworkError(request) {
19
+ return {
20
+ name: 'AxiosError',
21
+ message: 'Network Error',
22
+ code: 'ERR_NETWORK',
23
+ config: {
24
+ url: '/viewer/json/whoami?database=%2Fdb',
25
+ method: 'get',
26
+ },
27
+ request,
28
+ };
29
+ }
30
+ describe('recoverXhrResponseFromNetworkError', () => {
31
+ test('restores HTTP response details from recoverable XHR network error', () => {
32
+ const error = createNetworkError(createXhrRequestMock({
33
+ rawHeaders: [
34
+ 'Content-Type: text/plain; charset=utf-8',
35
+ 'X-Worker-Name: oidc-proxy-1-vm-preprod.example.net',
36
+ 'X-Trace-Id: trace-id-504',
37
+ ].join('\r\n'),
38
+ }));
39
+ const response = recoverXhrResponseFromNetworkError(error);
40
+ expect(response).toEqual(expect.objectContaining({
41
+ status: 504,
42
+ statusText: 'Deadline Exceeded',
43
+ data: '',
44
+ headers: {
45
+ 'content-type': 'text/plain; charset=utf-8',
46
+ 'x-worker-name': 'oidc-proxy-1-vm-preprod.example.net',
47
+ 'x-trace-id': 'trace-id-504',
48
+ },
49
+ config: expect.objectContaining({
50
+ url: 'https://oidc-proxy-preprod.example.net/viewer/json/whoami?database=%2Fdb',
51
+ method: 'get',
52
+ }),
53
+ code: 'ERR_NETWORK',
54
+ message: 'Network Error',
55
+ }));
56
+ expect(error.response).toBe(response);
57
+ expect(error.status).toBe(504);
58
+ });
59
+ test('does not treat array-like errors as recoverable records', () => {
60
+ const error = Object.assign([], createNetworkError(createXhrRequestMock()));
61
+ const response = recoverXhrResponseFromNetworkError(error);
62
+ expect(response).toBeUndefined();
63
+ expect(error.response).toBeUndefined();
64
+ });
65
+ test('restores recovered auth response in shape compatible with redirect-to-auth checks', () => {
66
+ const error = createNetworkError(createXhrRequestMock({
67
+ status: 401,
68
+ statusText: 'Unauthorized',
69
+ responseText: JSON.stringify({ authUrl: 'https://auth.example.com/login' }),
70
+ rawHeaders: 'Content-Type: application/json',
71
+ }));
72
+ const response = recoverXhrResponseFromNetworkError(error);
73
+ expect(response).toEqual(expect.objectContaining({
74
+ status: 401,
75
+ data: { authUrl: 'https://auth.example.com/login' },
76
+ }));
77
+ expect(isRedirectToAuth(response)).toBe(true);
78
+ });
79
+ test.each([
80
+ {
81
+ title: 'status is zero',
82
+ request: createXhrRequestMock({ status: 0 }),
83
+ },
84
+ {
85
+ title: 'readyState is not done',
86
+ request: createXhrRequestMock({ readyState: 3 }),
87
+ },
88
+ {
89
+ title: 'request does not expose headers reader',
90
+ request: {
91
+ readyState: 4,
92
+ status: 504,
93
+ statusText: 'Deadline Exceeded',
94
+ },
95
+ },
96
+ {
97
+ title: 'request is missing entirely',
98
+ request: undefined,
99
+ },
100
+ ])('does not restore response when $title', ({ request }) => {
101
+ const error = createNetworkError(request);
102
+ const response = recoverXhrResponseFromNetworkError(error);
103
+ expect(response).toBeUndefined();
104
+ expect(error.response).toBeUndefined();
105
+ });
106
+ });
107
+ describe('handleBaseApiResponseError', () => {
108
+ afterEach(() => {
109
+ jest.restoreAllMocks();
110
+ });
111
+ test('preserves NEED_RESET behavior after recovered response JSON parsing', async () => {
112
+ const visibilityStateDescriptor = Object.getOwnPropertyDescriptor(document, 'visibilityState');
113
+ Object.defineProperty(document, 'visibilityState', {
114
+ configurable: true,
115
+ value: 'visible',
116
+ });
117
+ const processNeedResetSpy = jest
118
+ .spyOn(needResetModule, 'processNeedReset')
119
+ .mockImplementation(jest.fn());
120
+ const error = createNetworkError(createXhrRequestMock({
121
+ status: 401,
122
+ statusText: 'Unauthorized',
123
+ responseText: JSON.stringify({ code: 'NEED_RESET' }),
124
+ rawHeaders: 'Content-Type: application/json',
125
+ }));
126
+ await expect(handleBaseApiResponseError(error)).rejects.toBe(error);
127
+ expect(processNeedResetSpy).toHaveBeenCalledTimes(1);
128
+ if (visibilityStateDescriptor) {
129
+ Object.defineProperty(document, 'visibilityState', visibilityStateDescriptor);
130
+ }
131
+ else {
132
+ Reflect.deleteProperty(document, 'visibilityState');
133
+ }
134
+ });
135
+ });
136
+ //# sourceMappingURL=base.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.test.js","sourceRoot":"","sources":["../../../../src/services/api/__test__/base.test.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,26 @@ export interface BaseAPIParams {
12
12
  proxyMeta: undefined | boolean;
13
13
  useRelativePath: undefined | boolean;
14
14
  }
15
+ interface XhrLikeRequest {
16
+ readyState: number;
17
+ status: number;
18
+ statusText?: string;
19
+ responseText?: string;
20
+ responseURL?: string;
21
+ getAllResponseHeaders: () => string;
22
+ }
23
+ interface RecoveredNetworkResponse {
24
+ status: number;
25
+ statusText: string;
26
+ data?: unknown;
27
+ headers: Record<string, string>;
28
+ config: Record<string, unknown>;
29
+ request: XhrLikeRequest;
30
+ code?: string;
31
+ message?: string;
32
+ }
33
+ export declare function recoverXhrResponseFromNetworkError(error: unknown): RecoveredNetworkResponse | undefined;
34
+ export declare function handleBaseApiResponseError(error: unknown): Promise<never>;
15
35
  export declare class BaseYdbAPI extends AxiosWrapper {
16
36
  DEFAULT_RETRIES_COUNT: number;
17
37
  singleClusterMode: BaseAPIParams['singleClusterMode'];
@@ -21,3 +41,4 @@ export declare class BaseYdbAPI extends AxiosWrapper {
21
41
  getSchemaPath(params?: SchemaPathParam): string | undefined;
22
42
  prepareArrayRequestParam(arr: (string | number)[]): string;
23
43
  }
44
+ export {};
@@ -6,6 +6,105 @@ import { DEV_ENABLE_TRACING_FOR_ALL_REQUESTS } from '../../utils/constants';
6
6
  import { prepareBackendWithMetaProxy } from '../../utils/parseBalancer';
7
7
  import { isRedirectToAuth } from '../../utils/response';
8
8
  import { isNeedResetResponse, processNeedReset } from './utils/needReset';
9
+ function isRecord(value) {
10
+ return Boolean(value && typeof value === 'object' && !Array.isArray(value));
11
+ }
12
+ function isXhrLikeRequest(request) {
13
+ return Boolean(isRecord(request) &&
14
+ typeof request.readyState === 'number' &&
15
+ typeof request.status === 'number' &&
16
+ typeof request.getAllResponseHeaders === 'function');
17
+ }
18
+ function parseXhrResponseHeaders(rawHeaders) {
19
+ if (!rawHeaders.trim()) {
20
+ return {};
21
+ }
22
+ const headers = {};
23
+ for (const line of rawHeaders.split(/\r?\n/)) {
24
+ const separatorIndex = line.indexOf(':');
25
+ if (separatorIndex <= 0) {
26
+ continue;
27
+ }
28
+ const headerName = line.slice(0, separatorIndex).trim().toLowerCase();
29
+ const headerValue = line.slice(separatorIndex + 1).trim();
30
+ if (!headerName || !headerValue) {
31
+ continue;
32
+ }
33
+ headers[headerName] = headers[headerName]
34
+ ? `${headers[headerName]}, ${headerValue}`
35
+ : headerValue;
36
+ }
37
+ return headers;
38
+ }
39
+ function parseRecoveredResponseData(responseText, headers) {
40
+ var _a;
41
+ if (typeof responseText !== 'string') {
42
+ return undefined;
43
+ }
44
+ const trimmedResponse = responseText.trim();
45
+ if (!trimmedResponse) {
46
+ return responseText;
47
+ }
48
+ const contentType = (_a = headers['content-type']) === null || _a === void 0 ? void 0 : _a.toLowerCase();
49
+ const shouldParseJson = Boolean(contentType === null || contentType === void 0 ? void 0 : contentType.includes('json')) ||
50
+ trimmedResponse.startsWith('{') ||
51
+ trimmedResponse.startsWith('[');
52
+ if (!shouldParseJson) {
53
+ return responseText;
54
+ }
55
+ try {
56
+ return JSON.parse(responseText);
57
+ }
58
+ catch (_b) {
59
+ return responseText;
60
+ }
61
+ }
62
+ export function recoverXhrResponseFromNetworkError(error) {
63
+ if (!isRecord(error) || error.code !== 'ERR_NETWORK' || error.response) {
64
+ return undefined;
65
+ }
66
+ const request = error.request;
67
+ if (!isXhrLikeRequest(request) || request.readyState !== 4 || request.status <= 0) {
68
+ return undefined;
69
+ }
70
+ const headers = parseXhrResponseHeaders(request.getAllResponseHeaders());
71
+ const config = isRecord(error.config) ? { ...error.config } : {};
72
+ if (request.responseURL) {
73
+ config.url = request.responseURL;
74
+ }
75
+ const recoveredResponse = {
76
+ status: request.status,
77
+ statusText: typeof request.statusText === 'string' ? request.statusText : '',
78
+ data: parseRecoveredResponseData(request.responseText, headers),
79
+ headers,
80
+ config,
81
+ request,
82
+ };
83
+ if (typeof error.code === 'string') {
84
+ recoveredResponse.code = error.code;
85
+ }
86
+ if (typeof error.message === 'string') {
87
+ recoveredResponse.message = error.message;
88
+ }
89
+ Object.assign(error, {
90
+ response: recoveredResponse,
91
+ status: request.status,
92
+ });
93
+ return recoveredResponse;
94
+ }
95
+ export function handleBaseApiResponseError(error) {
96
+ recoverXhrResponseFromNetworkError(error);
97
+ const response = isRecord(error) && 'response' in error && isRecord(error.response)
98
+ ? error.response
99
+ : undefined;
100
+ if (isRedirectToAuth(response)) {
101
+ window.location.assign(response.data.authUrl);
102
+ }
103
+ if (isNeedResetResponse(response === null || response === void 0 ? void 0 : response.data) && document.visibilityState === 'visible') {
104
+ processNeedReset();
105
+ }
106
+ return Promise.reject(error);
107
+ }
9
108
  export class BaseYdbAPI extends AxiosWrapper {
10
109
  constructor(axiosOptions, baseApiParams) {
11
110
  super(axiosOptions);
@@ -40,19 +139,7 @@ export class BaseYdbAPI extends AxiosWrapper {
40
139
  return response;
41
140
  });
42
141
  // Interceptor to process OIDC auth and NEED_RESET
43
- this._axios.interceptors.response.use(null, function (error) {
44
- const response = error.response;
45
- // OIDC proxy returns 401 response with authUrl in it
46
- // authUrl - external auth service link, after successful auth additional cookies will be appended
47
- // that will allow access to clusters where OIDC proxy is a balancer
48
- if (isRedirectToAuth(response)) {
49
- window.location.assign(response.data.authUrl);
50
- }
51
- if (isNeedResetResponse(response === null || response === void 0 ? void 0 : response.data) && document.visibilityState === 'visible') {
52
- processNeedReset();
53
- }
54
- return Promise.reject(error);
55
- });
142
+ this._axios.interceptors.response.use(null, handleBaseApiResponseError);
56
143
  }
57
144
  getPath(path) {
58
145
  if (clusterName && !this.singleClusterMode && !BACKEND) {
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/services/api/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/services/api/base.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,2BAA2B,CAAC;AAErD,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,OAAO,EAAC,OAAO,IAAI,OAAO,EAAE,WAAW,EAAC,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAC,mCAAmC,EAAC,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAC,2BAA2B,EAAC,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAC,mBAAmB,EAAE,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAmCxE,SAAS,QAAQ,CAAC,KAAc;IAC5B,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB;IACtC,OAAO,OAAO,CACV,QAAQ,CAAC,OAAO,CAAC;QACb,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ;QACtC,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ;QAClC,OAAO,OAAO,CAAC,qBAAqB,KAAK,UAAU,CAC1D,CAAC;AACN,CAAC;AAED,SAAS,uBAAuB,CAAC,UAAkB;IAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAA2B,EAAE,CAAC;IAE3C,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;YACtB,SAAS;QACb,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACtE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE1D,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9B,SAAS;QACb,CAAC;QAED,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;YACrC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,WAAW,EAAE;YAC1C,CAAC,CAAC,WAAW,CAAC;IACtB,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAS,0BAA0B,CAC/B,YAAgC,EAChC,OAA+B;;IAE/B,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;IAC5C,IAAI,CAAC,eAAe,EAAE,CAAC;QACnB,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,MAAM,WAAW,GAAG,MAAA,OAAO,CAAC,cAAc,CAAC,0CAAE,WAAW,EAAE,CAAC;IAC3D,MAAM,eAAe,GACjB,OAAO,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtC,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC;QAC/B,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAEpC,IAAI,CAAC,eAAe,EAAE,CAAC;QACnB,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAY,CAAC;IAC/C,CAAC;IAAC,WAAM,CAAC;QACL,OAAO,YAAY,CAAC;IACxB,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kCAAkC,CAC9C,KAAc;IAEd,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrE,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAChF,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,GAAG,KAAK,CAAC,MAAM,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/D,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IACrC,CAAC;IAED,MAAM,iBAAiB,GAA6B;QAChD,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,UAAU,EAAE,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;QAC5E,IAAI,EAAE,0BAA0B,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC;QAC/D,OAAO;QACP,MAAM;QACN,OAAO;KACV,CAAC;IAEF,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACjC,iBAAiB,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxC,CAAC;IAED,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpC,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;QACjB,QAAQ,EAAE,iBAAiB;QAC3B,MAAM,EAAE,OAAO,CAAC,MAAM;KACzB,CAAC,CAAC;IAEH,OAAO,iBAAiB,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACrD,kCAAkC,CAAC,KAAK,CAAC,CAAC;IAE1C,MAAM,QAAQ,GACV,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC9D,CAAC,CAAC,KAAK,CAAC,QAAQ;QAChB,CAAC,CAAC,SAAS,CAAC;IAEpB,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,mBAAmB,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAChF,gBAAgB,EAAE,CAAC;IACvB,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,OAAO,UAAW,SAAQ,YAAY;IAMxC,YAAY,YAAiC,EAAE,aAA4B;QACvE,KAAK,CAAC,YAAY,CAAC,CAAC;QANxB,0BAAqB,GAAG,CAAC,CAAC;QAQtB,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC,iBAAiB,CAAC;QACzD,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC,eAAe,CAAC;QAErD,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE;YACpB,OAAO,EAAE,IAAI,CAAC,qBAAqB;YACnC,UAAU,EAAE,UAAU,CAAC,gBAAgB;SAC1C,CAAC,CAAC;QAEH,yDAAyD;QACzD,2BAA2B;QAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM;YACjD,MAAM,aAAa,GAAG,sBAAsB,CAAC,mCAAmC,CAAC,CAAC;YAElF,IAAI,aAAa,EAAE,CAAC;gBAChB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACvC,CAAC;YAED,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,uCAAuC;QACvC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,QAAQ;YACpD,IACI,QAAQ,CAAC,IAAI;gBACb,QAAQ,CAAC,IAAI,YAAY,MAAM;gBAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC7B,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,EACnC,CAAC;gBACC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEhE,QAAQ,CAAC,IAAI,GAAG;oBACZ,GAAG,QAAQ,CAAC,IAAI;oBAChB,KAAK,EAAE,EAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAC;iBAC3C,CAAC;YACN,CAAC;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,kDAAkD;QAClD,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,CAAC,IAAY;QAChB,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,OAAO,EAAE,CAAC;YACrD,OAAO,2BAA2B,CAAC,EAAC,WAAW,EAAC,CAAC,GAAG,IAAI,CAAC;QAC7D,CAAC;QAED,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,GAAG,IAAI,EAAE,CAAC;IACrC,CAAC;IAED,aAAa,CAAC,MAAwB;QAClC,MAAM,EAAC,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAC,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,YAAY,EAAE,CAAC;YACvE,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,GAAG,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,wBAAwB,CAAC,GAAwB;QAC7C,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;CACJ"}
@@ -36,7 +36,7 @@ export interface PreparedStorageNode extends PreparedNodeSystemState, Omit<TNode
36
36
  MaximumDisksPerNode: number;
37
37
  MaxPDiskUsage?: number;
38
38
  MaxVDiskSlotUsage?: number;
39
- CapacityAlert?: ECapacityAlert;
39
+ CapacityAlert?: ECapacityAlert | string;
40
40
  }
41
41
  export interface PreparedStorageGroupFilters {
42
42
  searchValue: string;
@@ -87,7 +87,7 @@ export interface PreparedStorageGroup {
87
87
  MaxVDiskSlotUsage?: number;
88
88
  MaxVDiskRawUsage?: number;
89
89
  MaxNormalizedOccupancy?: number;
90
- CapacityAlert?: ECapacityAlert;
90
+ CapacityAlert?: ECapacityAlert | string;
91
91
  }
92
92
  export type TableGroup = {
93
93
  name: string;
@@ -4,6 +4,7 @@ export interface VDiskData extends PreparedVDisk {
4
4
  NodeHost?: string;
5
5
  NodeType?: string;
6
6
  NodeDC?: string;
7
+ NodeRack?: string;
7
8
  PDiskId?: number;
8
9
  PDiskType?: string;
9
10
  }
@@ -23,6 +23,7 @@ export function prepareVDiskDataResponse([storageGroupResponse, nodeResponse], v
23
23
  const NodeHost = preparedNode.Host;
24
24
  const NodeType = (_g = preparedNode.Roles) === null || _g === void 0 ? void 0 : _g[0];
25
25
  const NodeDC = preparedNode.DC;
26
+ const NodeRack = preparedNode.Rack;
26
27
  const PDiskId = (_h = currentVDisk.PDiskId) !== null && _h !== void 0 ? _h : preparedPDisk === null || preparedPDisk === void 0 ? void 0 : preparedPDisk.PDiskId;
27
28
  const PDiskType = preparedPDisk === null || preparedPDisk === void 0 ? void 0 : preparedPDisk.Type;
28
29
  return {
@@ -31,6 +32,7 @@ export function prepareVDiskDataResponse([storageGroupResponse, nodeResponse], v
31
32
  NodeHost,
32
33
  NodeType,
33
34
  NodeDC,
35
+ NodeRack,
34
36
  PDiskId,
35
37
  PDiskType,
36
38
  };
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/store/reducers/vdisk/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,sBAAsB,EAAC,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAC,kBAAkB,EAAC,MAAM,+BAA+B,CAAC;AAIjE,MAAM,UAAU,wBAAwB,CACpC,CAAC,oBAAoB,EAAE,YAAY,CAGlC,EACD,OAAe;;IAEf,MAAM,QAAQ,GAAG,MAAA,MAAA,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,aAAa,0CAAG,CAAC,EAAE,MAAM,0CAAE,IAAI,CAClE,CAAC,EAAC,OAAO,EAAE,MAAM,EAAC,EAAE,EAAE,CAClB,OAAO,KAAK,OAAO,KAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,CAAC,EAAC,OAAO,EAAE,OAAO,EAAC,EAAE,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,CAAA,CACvF,CAAC;IAEF,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAEnD,IAAI,YAAY,GAAkB,EAAE,CAAC;IAErC,IAAI,aAAa,CAAC,aAAa,KAAK,OAAO,EAAE,CAAC;QAC1C,YAAY,GAAG,aAAa,CAAC;IACjC,CAAC;SAAM,CAAC;QACJ,KAAK,MAAM,KAAK,IAAI,MAAA,aAAa,CAAC,MAAM,mCAAI,EAAE,EAAE,CAAC;YAC7C,IAAI,KAAK,CAAC,aAAa,KAAK,OAAO,EAAE,CAAC;gBAClC,YAAY,GAAG,KAAK,CAAC;gBACrB,MAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC;IAEzC,MAAM,OAAO,GAAG,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,eAAe,0CAAG,CAAC,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,MAAA,MAAA,YAAY,CAAC,MAAM,mCAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,mCAAI,YAAY,CAAC,MAAM,CAAC;IACnF,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC;IACnC,MAAM,QAAQ,GAAG,MAAA,YAAY,CAAC,KAAK,0CAAG,CAAC,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC;IAE/B,MAAM,OAAO,GAAG,MAAA,YAAY,CAAC,OAAO,mCAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,CAAC;IAC/D,MAAM,SAAS,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC;IAEtC,OAAO;QACH,GAAG,YAAY;QAEf,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,MAAM;QAEN,OAAO;QACP,SAAS;KACZ,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/store/reducers/vdisk/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,sBAAsB,EAAC,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAC,kBAAkB,EAAC,MAAM,+BAA+B,CAAC;AAIjE,MAAM,UAAU,wBAAwB,CACpC,CAAC,oBAAoB,EAAE,YAAY,CAGlC,EACD,OAAe;;IAEf,MAAM,QAAQ,GAAG,MAAA,MAAA,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,aAAa,0CAAG,CAAC,EAAE,MAAM,0CAAE,IAAI,CAClE,CAAC,EAAC,OAAO,EAAE,MAAM,EAAC,EAAE,EAAE,CAClB,OAAO,KAAK,OAAO,KAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,CAAC,EAAC,OAAO,EAAE,OAAO,EAAC,EAAE,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,CAAA,CACvF,CAAC;IAEF,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAEnD,IAAI,YAAY,GAAkB,EAAE,CAAC;IAErC,IAAI,aAAa,CAAC,aAAa,KAAK,OAAO,EAAE,CAAC;QAC1C,YAAY,GAAG,aAAa,CAAC;IACjC,CAAC;SAAM,CAAC;QACJ,KAAK,MAAM,KAAK,IAAI,MAAA,aAAa,CAAC,MAAM,mCAAI,EAAE,EAAE,CAAC;YAC7C,IAAI,KAAK,CAAC,aAAa,KAAK,OAAO,EAAE,CAAC;gBAClC,YAAY,GAAG,KAAK,CAAC;gBACrB,MAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC;IAEzC,MAAM,OAAO,GAAG,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,eAAe,0CAAG,CAAC,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,MAAA,MAAA,YAAY,CAAC,MAAM,mCAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,mCAAI,YAAY,CAAC,MAAM,CAAC;IACnF,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC;IACnC,MAAM,QAAQ,GAAG,MAAA,YAAY,CAAC,KAAK,0CAAG,CAAC,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC;IAEnC,MAAM,OAAO,GAAG,MAAA,YAAY,CAAC,OAAO,mCAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,CAAC;IAC/D,MAAM,SAAS,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC;IAEtC,OAAO;QACH,GAAG,YAAY;QAEf,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,QAAQ;QAER,OAAO;QACP,SAAS;KACZ,CAAC;AACN,CAAC"}
@@ -17,3 +17,4 @@ export declare enum ECapacityAlert {
17
17
  RED = "RED",
18
18
  BLACK = "BLACK"
19
19
  }
20
+ export declare function isCapacityAlert(value?: string): value is ECapacityAlert;
@@ -23,4 +23,11 @@ export var ECapacityAlert;
23
23
  ECapacityAlert["RED"] = "RED";
24
24
  ECapacityAlert["BLACK"] = "BLACK";
25
25
  })(ECapacityAlert || (ECapacityAlert = {}));
26
+ const capacityAlertValues = new Set(Object.values(ECapacityAlert));
27
+ export function isCapacityAlert(value) {
28
+ if (!value) {
29
+ return false;
30
+ }
31
+ return capacityAlertValues.has(value);
32
+ }
26
33
  //# sourceMappingURL=enums.js.map