@devtron-labs/devtron-fe-common-lib 1.5.8-beta-1 → 1.5.8-beta-3

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 (46) hide show
  1. package/dist/@code-editor-BBGPEaml.js +22964 -0
  2. package/dist/{@common-rjsf-Bsv_ydI_.js → @common-rjsf-BBzSlZEX.js} +2 -2
  3. package/dist/{@framer-motion-CpA7HTl-.js → @framer-motion-kr1mEWKX.js} +70 -70
  4. package/dist/@monaco-editor-CVagbUeH.js +138960 -0
  5. package/dist/{@react-dates-CaRoxjcN.js → @react-dates-BxnR_8Dc.js} +20 -20
  6. package/dist/{@react-select-D4CIuOAx.js → @react-select-BMw3IVZf.js} +1 -1
  7. package/dist/{@react-virtualized-sticky-tree-CZZtnJ_O.js → @react-virtualized-sticky-tree-wjj-2hWq.js} +1 -1
  8. package/dist/@vendor-Dse7HvPU.js +22695 -0
  9. package/dist/Common/CodeEditor/CodeEditor.d.ts +3 -13
  10. package/dist/Common/CodeEditor/CodeEditor.reducer.d.ts +47 -3
  11. package/dist/Common/CodeEditor/index.d.ts +1 -1
  12. package/dist/Common/CodeEditor/types.d.ts +76 -71
  13. package/dist/Common/CodeEditor/utils.d.ts +3 -13
  14. package/dist/Common/DeleteComponentModal/DeleteComponent.d.ts +4 -0
  15. package/dist/Common/Dialogs/DeleteDialog.d.ts +4 -0
  16. package/dist/Shared/Components/CICDHistory/DeploymentHistoryConfigDiff/DeploymentHistoryDiffView.d.ts +1 -1
  17. package/dist/Shared/Components/CICDHistory/types.d.ts +1 -0
  18. package/dist/Shared/Components/Collapse/Collapse.d.ts +1 -0
  19. package/dist/Shared/Components/ConfirmationModal/CannotDeleteModal.d.ts +2 -0
  20. package/dist/Shared/Components/ConfirmationModal/DeleteConfirmationModal.d.ts +3 -0
  21. package/dist/Shared/Components/ConfirmationModal/ForceDeleteConfirmationModal.d.ts +2 -0
  22. package/dist/Shared/Components/ConfirmationModal/index.d.ts +3 -0
  23. package/dist/Shared/Components/ConfirmationModal/types.d.ts +31 -0
  24. package/dist/Shared/Components/ConfirmationModal/utils.d.ts +2 -1
  25. package/dist/Shared/constants.d.ts +0 -1
  26. package/dist/Shared/types.d.ts +0 -8
  27. package/dist/assets/@code-editor.css +1 -1
  28. package/dist/assets/@monaco-editor.css +1 -0
  29. package/dist/assets/codicon.ecfbfe4b.ttf +0 -0
  30. package/dist/index.js +654 -649
  31. package/package.json +7 -14
  32. package/dist/@code-editor-Bc2JVhOX.js +0 -41517
  33. package/dist/@vendor-CKSERKp7.js +0 -42519
  34. package/dist/Common/ClipboardButton/index.d.ts +0 -1
  35. package/dist/Common/CodeEditor/CodeEditor.components.d.ts +0 -11
  36. package/dist/Common/CodeEditor/CodeEditor.constants.d.ts +0 -7
  37. package/dist/Common/CodeEditor/CodeEditor.context.d.ts +0 -3
  38. package/dist/Common/CodeEditor/CodeEditor.theme.d.ts +0 -1
  39. package/dist/Common/CodeEditor/Extensions/findAndReplace.d.ts +0 -2
  40. package/dist/Common/CodeEditor/Extensions/index.d.ts +0 -3
  41. package/dist/Common/CodeEditor/Extensions/readOnlyTooltip.d.ts +0 -6
  42. package/dist/Common/CodeEditor/Extensions/yamlParseLinter.d.ts +0 -3
  43. package/dist/assets/ic-match-case.702186fe.svg +0 -3
  44. package/dist/assets/ic-match-word.991dea5a.svg +0 -3
  45. package/dist/assets/ic-replace-all-text.7ebbab01.svg +0 -3
  46. package/dist/assets/ic-replace-text.5de817d2.svg +0 -3
@@ -1,14 +1,4 @@
1
- import { CodeEditorProps } from './types';
2
- declare const CodeEditor: {
3
- <DiffView extends boolean = false>({ theme, value: propValue, originalValue, modifiedValue, isOriginalModifiable, mode, noParsing, children, tabSize, height, shebang, onChange, onOriginalValueChange, onModifiedValueChange, readOnly, placeholder, diffView, loading, customLoader, validatorSchema, schemaURI, cleanData, onBlur, onFocus, autoFocus, disableSearch, }: CodeEditorProps<DiffView>): JSX.Element;
4
- Clipboard: () => JSX.Element;
5
- Header: ({ children, className, hideDefaultSplitHeader }: import('./types').CodeEditorHeaderProps) => JSX.Element;
6
- Warning: ({ className, text, children }: import('./types').CodeEditorStatusBarProps) => JSX.Element;
7
- ErrorBar: ({ className, text, children }: import('./types').CodeEditorStatusBarProps) => JSX.Element;
8
- Information: ({ className, children, text }: import('./types').CodeEditorStatusBarProps) => JSX.Element;
9
- Container: ({ children, flexExpand }: {
10
- children: import('react').ReactNode;
11
- flexExpand?: boolean;
12
- }) => JSX.Element;
13
- };
1
+ import { default as React } from 'react';
2
+ import { CodeEditorComposition, CodeEditorInterface } from './types';
3
+ declare const CodeEditor: React.FC<CodeEditorInterface> & CodeEditorComposition;
14
4
  export default CodeEditor;
@@ -1,4 +1,48 @@
1
- import { CodeEditorPayloadType, CodeEditorInitialValueType, CodeEditorState } from './types';
2
- export declare const CodeEditorReducer: (state: CodeEditorState, action: CodeEditorPayloadType) => CodeEditorState;
1
+ import { MODES } from '../Constants';
2
+ import { Action, CodeEditorInitialValueType, CodeEditorState } from './types';
3
+ export declare const CodeEditorReducer: (state: CodeEditorState, action: Action) => {
4
+ mode: any;
5
+ diffMode: boolean;
6
+ theme: import('./types').CodeEditorThemesKeys;
7
+ code: string;
8
+ defaultCode: string;
9
+ noParsing: boolean;
10
+ } | {
11
+ diffMode: any;
12
+ mode: MODES;
13
+ theme: import('./types').CodeEditorThemesKeys;
14
+ code: string;
15
+ defaultCode: string;
16
+ noParsing: boolean;
17
+ } | {
18
+ theme: any;
19
+ mode: MODES;
20
+ diffMode: boolean;
21
+ code: string;
22
+ defaultCode: string;
23
+ noParsing: boolean;
24
+ } | {
25
+ code: any;
26
+ mode: MODES;
27
+ diffMode: boolean;
28
+ theme: import('./types').CodeEditorThemesKeys;
29
+ defaultCode: string;
30
+ noParsing: boolean;
31
+ } | {
32
+ defaultCode: any;
33
+ mode: MODES;
34
+ diffMode: boolean;
35
+ theme: import('./types').CodeEditorThemesKeys;
36
+ code: string;
37
+ noParsing: boolean;
38
+ } | {
39
+ height: any;
40
+ mode: MODES;
41
+ diffMode: boolean;
42
+ theme: import('./types').CodeEditorThemesKeys;
43
+ code: string;
44
+ defaultCode: string;
45
+ noParsing: boolean;
46
+ };
3
47
  export declare const parseValueToCode: (value: string, mode: string, tabSize: number) => string;
4
- export declare const initialState: ({ mode, value, lhsValue, diffView, noParsing, tabSize, }: CodeEditorInitialValueType) => CodeEditorState;
48
+ export declare const initialState: ({ mode, theme, value, defaultValue, diffView, noParsing, tabSize, appTheme, }: CodeEditorInitialValueType) => CodeEditorState;
@@ -1,2 +1,2 @@
1
1
  export { default as CodeEditor } from './CodeEditor';
2
- export type { CodeEditorProps } from './types';
2
+ export * from './types';
@@ -1,95 +1,100 @@
1
- import { Dispatch, FunctionComponent, ReactNode, SVGProps } from 'react';
2
- import { JSONSchema7 } from 'json-schema';
3
- import { EditorView, ReactCodeMirrorProps } from '@uiw/react-codemirror';
4
- import { SearchQuery } from '@codemirror/search';
5
- import { MODES } from '../Constants';
6
- import { Never } from '../../Shared/types';
7
1
  import { AppThemeType } from '../../Shared/Providers';
8
- export interface CodeEditorStatusBarProps {
2
+ import { MODES } from '../Constants';
3
+ export interface InformationBarProps {
9
4
  text: string;
10
5
  className?: string;
11
- children?: ReactNode;
6
+ children?: React.ReactNode;
12
7
  }
13
- export interface CodeEditorHeaderProps {
14
- className?: string;
15
- hideDefaultSplitHeader?: boolean;
16
- children?: ReactNode;
8
+ export declare enum CodeEditorThemesKeys {
9
+ vsDarkDT = "vs-dark--dt",
10
+ vs = "vs",
11
+ networkStatusInterface = "network-status-interface"
17
12
  }
18
- type CodeEditorBaseProps = Pick<ReactCodeMirrorProps, 'onBlur' | 'onFocus' | 'autoFocus'> & {
19
- value?: ReactCodeMirrorProps['value'];
20
- onChange?: (value: string) => void;
21
- shebang?: string | JSX.Element;
22
- validatorSchema?: JSONSchema7;
23
- schemaURI?: string;
24
- };
25
- type CodeEditorDiffBaseProps = {
26
- onOriginalValueChange?: (originalValue: string) => void;
27
- onModifiedValueChange?: (modifiedValue: string) => void;
28
- originalValue?: ReactCodeMirrorProps['value'];
29
- modifiedValue?: ReactCodeMirrorProps['value'];
30
- isOriginalModifiable?: boolean;
31
- };
32
- type CodeEditorPropsBasedOnDiffView<DiffView extends boolean> = DiffView extends true ? CodeEditorDiffBaseProps & Never<CodeEditorBaseProps> : CodeEditorBaseProps & Never<CodeEditorDiffBaseProps>;
33
- export type CodeEditorProps<DiffView extends boolean = false> = {
34
- /**
35
- * @default 450
36
- */
37
- height?: 'auto' | '100%' | 'fitToParent' | number;
38
- children?: ReactNode;
39
- mode?: MODES;
13
+ interface CodeEditorBaseInterface {
14
+ value?: string;
15
+ lineDecorationsWidth?: number;
16
+ responseType?: string;
17
+ onChange?: (value: string, defaultValue: string) => void;
18
+ onBlur?: () => void;
19
+ onFocus?: () => void;
20
+ children?: any;
21
+ defaultValue?: string;
22
+ mode?: MODES | string;
40
23
  tabSize?: number;
41
24
  readOnly?: boolean;
42
- placeholder?: string;
43
25
  noParsing?: boolean;
26
+ inline?: boolean;
27
+ shebang?: string | JSX.Element;
28
+ diffView?: boolean;
44
29
  loading?: boolean;
45
30
  customLoader?: JSX.Element;
31
+ theme?: CodeEditorThemesKeys;
32
+ original?: string;
33
+ focus?: boolean;
34
+ validatorSchema?: any;
35
+ isKubernetes?: boolean;
46
36
  cleanData?: boolean;
37
+ schemaURI?: string;
47
38
  /**
48
- * If true, disables the in-built search
39
+ * If true, disable the in-built search of monaco editor
49
40
  * @default false
50
41
  */
51
42
  disableSearch?: boolean;
52
- diffView?: DiffView;
53
- theme?: AppThemeType;
54
- } & CodeEditorPropsBasedOnDiffView<DiffView>;
55
- export interface GetCodeEditorHeightReturnType {
56
- codeEditorParentClassName: string;
57
- codeEditorClassName: string;
58
- codeEditorHeight: string;
59
43
  }
60
- export type HoverTexts = {
61
- message: string;
62
- typeInfo: string;
63
- };
64
- export type FindReplaceQuery = Partial<Pick<SearchQuery, 'search' | 'wholeWord' | 'regexp' | 'replace' | 'caseSensitive'>>;
65
- export interface FindReplaceProps {
66
- view: EditorView;
67
- defaultQuery: SearchQuery;
44
+ export type CodeEditorInterface = CodeEditorBaseInterface & ({
45
+ adjustEditorHeightToContent?: boolean;
46
+ height?: never;
47
+ } | {
48
+ adjustEditorHeightToContent?: never;
49
+ height?: number | string;
50
+ });
51
+ export interface CodeEditorHeaderInterface {
52
+ children?: any;
53
+ className?: string;
54
+ hideDefaultSplitHeader?: boolean;
55
+ }
56
+ export interface CodeEditorComposition {
57
+ Header?: React.FC<any>;
58
+ LanguageChanger?: React.FC<any>;
59
+ ThemeChanger?: React.FC<any>;
60
+ ValidationError?: React.FC<any>;
61
+ Clipboard?: React.FC<any>;
62
+ Warning?: React.FC<InformationBarProps>;
63
+ ErrorBar?: React.FC<InformationBarProps>;
64
+ Information?: React.FC<InformationBarProps>;
65
+ }
66
+ export interface CodeEditorHeaderComposition {
67
+ LanguageChanger?: React.FC<any>;
68
+ ThemeChanger?: React.FC<any>;
69
+ ValidationError?: React.FC<any>;
70
+ Clipboard?: React.FC<any>;
68
71
  }
69
- export type CodeEditorActionTypes = 'setDiff' | 'setCode' | 'setLhsCode';
70
- export interface CodeEditorPayloadType {
71
- type: CodeEditorActionTypes;
72
+ export type ActionTypes = 'changeLanguage' | 'setDiff' | 'setTheme' | 'setCode' | 'setDefaultCode' | 'setHeight';
73
+ export interface Action {
74
+ type: ActionTypes;
72
75
  value: any;
73
76
  }
74
- export interface CodeEditorInitialValueType extends Pick<CodeEditorProps, 'value' | 'noParsing' | 'tabSize' | 'mode'> {
75
- lhsValue: ReactCodeMirrorProps['value'];
77
+ export interface CodeEditorInitialValueType extends Pick<CodeEditorBaseInterface, 'theme'> {
78
+ mode: string;
76
79
  diffView: boolean;
80
+ value: string;
81
+ defaultValue: string;
82
+ noParsing?: boolean;
83
+ tabSize: number;
84
+ appTheme: AppThemeType;
77
85
  }
78
- export interface CodeEditorState extends Pick<CodeEditorProps, 'noParsing'> {
79
- code: CodeEditorProps['value'];
80
- lhsCode: CodeEditorProps<true>['originalValue'];
81
- diffMode: CodeEditorProps<boolean>['diffView'];
82
- }
83
- export interface CodeEditorContextProps extends Pick<CodeEditorProps, 'readOnly' | 'height'> {
84
- state: CodeEditorState;
85
- hasCodeEditorContainer: boolean;
86
- dispatch: Dispatch<CodeEditorPayloadType>;
86
+ export interface CodeEditorState {
87
+ mode: MODES;
88
+ diffMode: boolean;
89
+ theme: CodeEditorThemesKeys;
90
+ code: string;
91
+ defaultCode: string;
92
+ noParsing: boolean;
87
93
  }
88
- export interface FindReplaceToggleButtonProps {
89
- isChecked: boolean;
90
- Icon: FunctionComponent<SVGProps<SVGSVGElement>>;
91
- onChange: (isChecked: boolean) => void;
92
- iconType?: 'stroke' | 'fill';
93
- tooltipText: string;
94
+ export declare enum CodeEditorActionTypes {
95
+ reInit = "reInit",
96
+ submitLoading = "submitLoading",
97
+ overrideLoading = "overrideLoading",
98
+ success = "success"
94
99
  }
95
100
  export {};
@@ -1,13 +1,3 @@
1
- import { SearchQuery } from '@codemirror/search';
2
- import { EditorView, Extension } from '@uiw/react-codemirror';
3
- import { CodeEditorProps, FindReplaceToggleButtonProps, GetCodeEditorHeightReturnType } from './types';
4
- export declare const getCodeEditorHeight: (height: CodeEditorProps["height"]) => GetCodeEditorHeightReturnType;
5
- export declare const getFindReplaceToggleButtonIconClass: ({ iconType, isChecked, }: Pick<FindReplaceToggleButtonProps, "iconType" | "isChecked">) => "scb-5" | "scn-7" | "fcb-5" | "fcn-7";
6
- export declare const getUpdatedSearchMatchesCount: (newQuery: SearchQuery, view: EditorView) => {
7
- count: number;
8
- current: number;
9
- };
10
- export declare const getFoldGutterElement: (open: boolean) => HTMLSpanElement;
11
- export declare const getReadOnlyElement: () => HTMLDivElement;
12
- export declare const getLanguageExtension: (mode: CodeEditorProps["mode"]) => Extension;
13
- export declare const getValidationSchema: ({ mode, validatorSchema, schemaURI, }: Pick<CodeEditorProps, "schemaURI" | "validatorSchema" | "mode">) => Extension[];
1
+ import { AppThemeType } from '../../Shared/Providers';
2
+ import { CodeEditorInterface } from './types';
3
+ export declare const getCodeEditorThemeFromAppTheme: (editorTheme: CodeEditorInterface["theme"], appTheme: AppThemeType) => CodeEditorInterface["theme"];
@@ -1,3 +1,7 @@
1
1
  import { DeleteComponentProps } from './types';
2
+ /**
3
+ *
4
+ * @deprecated Use DeleteConfirmationDialog instead
5
+ */
2
6
  declare const DeleteComponent: ({ setDeleting, toggleConfirmation, deleteComponent, title, component, payload, confirmationDialogDescription, redirectTo, url, reload, configuration, closeCustomComponent, }: DeleteComponentProps) => JSX.Element;
3
7
  export default DeleteComponent;
@@ -1,5 +1,9 @@
1
1
  import { default as React } from 'react';
2
2
  import { DeleteDialogProps } from './Types';
3
+ /**
4
+ *
5
+ * @deprecated Use DeleteConfirmationDialog instead
6
+ */
3
7
  export declare const DeleteDialog: React.FC<DeleteDialogProps> & {
4
8
  Description?: React.FC<any>;
5
9
  };
@@ -1,3 +1,3 @@
1
1
  import { DeploymentTemplateHistoryType } from '../types';
2
- declare const DeploymentHistoryDiffView: ({ currentConfiguration, baseTemplateConfiguration, previousConfigAvailable, rootClassName, }: DeploymentTemplateHistoryType) => JSX.Element;
2
+ declare const DeploymentHistoryDiffView: ({ currentConfiguration, baseTemplateConfiguration, previousConfigAvailable, rootClassName, codeEditorKey, }: DeploymentTemplateHistoryType) => JSX.Element;
3
3
  export default DeploymentHistoryDiffView;
@@ -423,6 +423,7 @@ export interface DeploymentTemplateHistoryType {
423
423
  baseTemplateConfiguration: DeploymentHistoryDetail;
424
424
  previousConfigAvailable: boolean;
425
425
  rootClassName?: string;
426
+ codeEditorKey?: React.Key;
426
427
  }
427
428
  export interface DeploymentHistoryDetailRes extends ResponseType {
428
429
  result?: DeploymentHistoryDetail;
@@ -1,6 +1,7 @@
1
1
  import { CollapseProps } from './types';
2
2
  /**
3
3
  * Collapse component for smoothly expanding or collapsing its content.
4
+ * Dynamically calculates the content height and applies smooth transitions.
4
5
  * It also supports a callback when the transition ends.
5
6
  */
6
7
  export declare const Collapse: ({ expand, onTransitionEnd, children }: CollapseProps) => JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { CannotDeleteModalProps } from './types';
2
+ export declare const CannotDeleteModal: ({ title, component, description, closeConfirmationModal, showCannotDeleteDialogModal, }: CannotDeleteModalProps) => JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { default as React } from 'react';
2
+ import { DeleteComponentModalProps } from './types';
3
+ export declare const DeleteConfirmationModal: React.FC<DeleteComponentModalProps>;
@@ -0,0 +1,2 @@
1
+ import { ForceDeleteConfirmationProps } from './types';
2
+ export declare const ForceDeleteConfirmationModal: ({ title, description, onDelete, closeConfirmationModal, showConfirmationModal, }: ForceDeleteConfirmationProps) => JSX.Element;
@@ -1,2 +1,5 @@
1
1
  export { default as ConfirmationModal } from './ConfirmationModal';
2
+ export { DeleteConfirmationModal } from './DeleteConfirmationModal';
3
+ export { ForceDeleteConfirmationModal } from './ForceDeleteConfirmationModal';
4
+ export { CannotDeleteModal } from './CannotDeleteModal';
2
5
  export { ConfirmationModalVariantType } from './types';
@@ -45,6 +45,7 @@ type ButtonConfigAndVariantType<isConfig extends boolean> = {
45
45
  export type ConfirmationModalProps<isConfig extends boolean = false> = {
46
46
  title: string;
47
47
  subtitle: ReactNode;
48
+ dataTestId?: string;
48
49
  /**
49
50
  * @default true
50
51
  */
@@ -54,4 +55,34 @@ export type ConfirmationModalProps<isConfig extends boolean = false> = {
54
55
  showConfirmationModal: boolean;
55
56
  } : {});
56
57
  export type ConfirmationModalBodyProps = Omit<ConfirmationModalProps, 'showConfirmationModal'>;
58
+ export type DeleteComponentModalProps = {
59
+ title: string;
60
+ showConfirmationModal: boolean;
61
+ closeConfirmationModal: () => void;
62
+ onDelete: () => void;
63
+ isCannotDeleteModal?: boolean;
64
+ isForceDeleteModal?: boolean;
65
+ primaryButtonText?: string;
66
+ component?: string;
67
+ description?: ReactNode;
68
+ successToastMessage?: string;
69
+ isLoading?: boolean;
70
+ renderCannotDeleteConfirmationSubTitle?: ReactNode;
71
+ errorCodeToShowCannotDeleteDialog?: number;
72
+ reload?: () => void;
73
+ shouldStopPropagation?: boolean;
74
+ disabled?: boolean;
75
+ url?: string;
76
+ dataTestId?: string;
77
+ children?: ReactNode;
78
+ };
79
+ export interface CannotDeleteModalProps extends Partial<Pick<DeleteComponentModalProps, 'title' | 'description' | 'component' | 'closeConfirmationModal'>> {
80
+ showCannotDeleteDialogModal: boolean;
81
+ }
82
+ export interface ForceDeleteConfirmationProps extends Partial<Pick<DeleteComponentModalProps, 'title' | 'description' | 'onDelete' | 'showConfirmationModal' | 'closeConfirmationModal'>> {
83
+ }
84
+ export declare enum ConfirmationActionType {
85
+ DELETE = "delete",
86
+ CANCEL = "cancel"
87
+ }
57
88
  export {};
@@ -1,6 +1,7 @@
1
1
  import { FunctionComponent, ReactNode, SVGProps } from 'react';
2
- import { ConfirmationModalVariantType } from './types';
2
+ import { ConfirmationActionType, ConfirmationModalVariantType } from './types';
3
3
  import { ButtonStyleType } from '../Button';
4
4
  export declare const getIconFromVariant: (variant: ConfirmationModalVariantType) => FunctionComponent<SVGProps<SVGSVGElement>>;
5
5
  export declare const getConfirmationLabel: (confirmationKeyword: string) => ReactNode;
6
6
  export declare const getPrimaryButtonStyleFromVariant: (variant: ConfirmationModalVariantType) => ButtonStyleType;
7
+ export declare const getDataTestId: (action: ConfirmationActionType, dataTestId: string) => string;
@@ -393,7 +393,6 @@ export declare const ANSI_UP_REGEX: RegExp;
393
393
  * Size variants for components
394
394
  */
395
395
  export declare enum ComponentSizeType {
396
- xxs = "xxs",
397
396
  xs = "xs",
398
397
  small = "small",
399
398
  medium = "medium",
@@ -782,14 +782,6 @@ export interface UploadFileProps {
782
782
  allowedExtensions?: string[];
783
783
  maxUploadSize?: number;
784
784
  }
785
- /**
786
- * A utility type that transforms all properties of a given type `T` to be optional and of type `never`. \
787
- * This can be useful for scenarios where you want to explicitly mark that certain properties should not exist.
788
- * @template T - The type whose properties will be transformed.
789
- */
790
- export type Never<T> = {
791
- [K in keyof T]?: never;
792
- };
793
785
  export interface TargetPlatformItemDTO {
794
786
  name: string;
795
787
  }