mirror of https://github.com/portainer/portainer
				
				
				
			chore(deps): upgrade typescript [EE-4841] (#8247)
							parent
							
								
									365316971b
								
							
						
					
					
						commit
						6ef53f0598
					
				| 
						 | 
				
			
			@ -52,4 +52,7 @@ module.exports = {
 | 
			
		|||
    builder: 'webpack5',
 | 
			
		||||
  },
 | 
			
		||||
  staticDirs: ['./public'],
 | 
			
		||||
  typescript: {
 | 
			
		||||
    reactDocgen: 'react-docgen-typescript-plugin',
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,10 +3,10 @@
 | 
			
		|||
 *
 | 
			
		||||
 * @param promises a list of functions that return promises
 | 
			
		||||
 */
 | 
			
		||||
export function promiseSequence<T>(promises: (() => Promise<T>)[]) {
 | 
			
		||||
export function promiseSequence(promises: (() => Promise<unknown>)[]) {
 | 
			
		||||
  return promises.reduce(
 | 
			
		||||
    (promise, nextPromise) => promise.then(() => nextPromise()),
 | 
			
		||||
    Promise.resolve<T>(undefined as unknown as T)
 | 
			
		||||
    (promise, nextPromise) => promise.then(nextPromise),
 | 
			
		||||
    Promise.resolve(undefined as unknown)
 | 
			
		||||
  );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -64,7 +64,7 @@ function mergeOptions<T>(options: T[]) {
 | 
			
		|||
      ...acc,
 | 
			
		||||
      ...option,
 | 
			
		||||
    }),
 | 
			
		||||
    {}
 | 
			
		||||
    {} as T
 | 
			
		||||
  );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,7 +35,7 @@ type PropNames<T> = Exclude<keyof T, number | symbol>;
 | 
			
		|||
 * if the second parameter has any ts errors check that the component has the correct props
 | 
			
		||||
 */
 | 
			
		||||
export function react2angular<T, U extends PropNames<T>[]>(
 | 
			
		||||
  Component: React.ComponentType<T>,
 | 
			
		||||
  Component: React.ComponentType<T & JSX.IntrinsicAttributes>,
 | 
			
		||||
  propNames: U & ([PropNames<T>] extends [U[number]] ? unknown : PropNames<T>)
 | 
			
		||||
): IComponentOptions & { name: string } {
 | 
			
		||||
  const bindings = Object.fromEntries(propNames.map((key) => [key, '<']));
 | 
			
		||||
| 
						 | 
				
			
			@ -61,7 +61,7 @@ export function react2angular<T, U extends PropNames<T>[]>(
 | 
			
		|||
        ReactDOM.render(
 | 
			
		||||
          <StrictMode>
 | 
			
		||||
            {/* eslint-disable-next-line react/jsx-props-no-spreading */}
 | 
			
		||||
            <Component {...(props as T)} />
 | 
			
		||||
            <Component {...(props as T & JSX.IntrinsicAttributes)} />
 | 
			
		||||
          </StrictMode>,
 | 
			
		||||
 | 
			
		||||
          el
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,13 +5,13 @@ import { UserProvider } from '@/react/hooks/useUser';
 | 
			
		|||
import { withReactQuery } from './withReactQuery';
 | 
			
		||||
 | 
			
		||||
export function withCurrentUser<T>(
 | 
			
		||||
  WrappedComponent: ComponentType<T>
 | 
			
		||||
): ComponentType<T> {
 | 
			
		||||
  WrappedComponent: ComponentType<T & JSX.IntrinsicAttributes>
 | 
			
		||||
): ComponentType<T & JSX.IntrinsicAttributes> {
 | 
			
		||||
  // Try to create a nice displayName for React Dev Tools.
 | 
			
		||||
  const displayName =
 | 
			
		||||
    WrappedComponent.displayName || WrappedComponent.name || 'Component';
 | 
			
		||||
 | 
			
		||||
  function WrapperComponent(props: T) {
 | 
			
		||||
  function WrapperComponent(props: T & JSX.IntrinsicAttributes) {
 | 
			
		||||
    return (
 | 
			
		||||
      <UserProvider>
 | 
			
		||||
        <WrappedComponent {...props} />
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,7 +7,7 @@ export function withI18nSuspense<T>(
 | 
			
		|||
  const displayName =
 | 
			
		||||
    WrappedComponent.displayName || WrappedComponent.name || 'Component';
 | 
			
		||||
 | 
			
		||||
  function WrapperComponent(props: T) {
 | 
			
		||||
  function WrapperComponent(props: T & JSX.IntrinsicAttributes) {
 | 
			
		||||
    return (
 | 
			
		||||
      <Suspense fallback="Loading translations...">
 | 
			
		||||
        <WrappedComponent {...props} />
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,14 +4,14 @@ import { QueryClientProvider } from 'react-query';
 | 
			
		|||
import { queryClient as defaultQueryClient } from './react-query';
 | 
			
		||||
 | 
			
		||||
export function withReactQuery<T>(
 | 
			
		||||
  WrappedComponent: ComponentType<T>,
 | 
			
		||||
  WrappedComponent: ComponentType<T & JSX.IntrinsicAttributes>,
 | 
			
		||||
  queryClient = defaultQueryClient
 | 
			
		||||
): ComponentType<T> {
 | 
			
		||||
): ComponentType<T & JSX.IntrinsicAttributes> {
 | 
			
		||||
  // Try to create a nice displayName for React Dev Tools.
 | 
			
		||||
  const displayName =
 | 
			
		||||
    WrappedComponent.displayName || WrappedComponent.name || 'Component';
 | 
			
		||||
 | 
			
		||||
  function WrapperComponent(props: T) {
 | 
			
		||||
  function WrapperComponent(props: T & JSX.IntrinsicAttributes) {
 | 
			
		||||
    return (
 | 
			
		||||
      <QueryClientProvider client={queryClient}>
 | 
			
		||||
        <WrappedComponent {...props} />
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,7 +8,7 @@ export function withUIRouter<T>(
 | 
			
		|||
  const displayName =
 | 
			
		||||
    WrappedComponent.displayName || WrappedComponent.name || 'Component';
 | 
			
		||||
 | 
			
		||||
  function WrapperComponent(props: T) {
 | 
			
		||||
  function WrapperComponent(props: T & JSX.IntrinsicAttributes) {
 | 
			
		||||
    return (
 | 
			
		||||
      <UIRouterContextComponent>
 | 
			
		||||
        <WrappedComponent {...props} />
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,12 +13,12 @@ export type ZustandSetFunc<T> = (
 | 
			
		|||
  replace?: boolean | undefined
 | 
			
		||||
) => void;
 | 
			
		||||
 | 
			
		||||
export function paginationSettings(
 | 
			
		||||
  set: ZustandSetFunc<PaginationTableSettings>
 | 
			
		||||
export function paginationSettings<T extends PaginationTableSettings>(
 | 
			
		||||
  set: ZustandSetFunc<T>
 | 
			
		||||
): PaginationTableSettings {
 | 
			
		||||
  return {
 | 
			
		||||
    pageSize: 10,
 | 
			
		||||
    setPageSize: (pageSize: number) => set({ pageSize }),
 | 
			
		||||
    setPageSize: (pageSize: number) => set((s) => ({ ...s, pageSize })),
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -27,8 +27,8 @@ export interface SortableTableSettings {
 | 
			
		|||
  setSortBy: (id: string, desc: boolean) => void;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function sortableSettings(
 | 
			
		||||
  set: ZustandSetFunc<SortableTableSettings>,
 | 
			
		||||
export function sortableSettings<T extends SortableTableSettings>(
 | 
			
		||||
  set: ZustandSetFunc<T>,
 | 
			
		||||
  initialSortBy: string | { id: string; desc: boolean }
 | 
			
		||||
): SortableTableSettings {
 | 
			
		||||
  return {
 | 
			
		||||
| 
						 | 
				
			
			@ -36,7 +36,8 @@ export function sortableSettings(
 | 
			
		|||
      typeof initialSortBy === 'string'
 | 
			
		||||
        ? { id: initialSortBy, desc: false }
 | 
			
		||||
        : initialSortBy,
 | 
			
		||||
    setSortBy: (id: string, desc: boolean) => set({ sortBy: { id, desc } }),
 | 
			
		||||
    setSortBy: (id: string, desc: boolean) =>
 | 
			
		||||
      set((s) => ({ ...s, sortBy: { id, desc } })),
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -45,12 +46,13 @@ export interface SettableColumnsTableSettings {
 | 
			
		|||
  setHiddenColumns: (hiddenColumns: string[]) => void;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function hiddenColumnsSettings(
 | 
			
		||||
  set: ZustandSetFunc<SettableColumnsTableSettings>
 | 
			
		||||
export function hiddenColumnsSettings<T extends SettableColumnsTableSettings>(
 | 
			
		||||
  set: ZustandSetFunc<T>
 | 
			
		||||
): SettableColumnsTableSettings {
 | 
			
		||||
  return {
 | 
			
		||||
    hiddenColumns: [],
 | 
			
		||||
    setHiddenColumns: (hiddenColumns: string[]) => set({ hiddenColumns }),
 | 
			
		||||
    setHiddenColumns: (hiddenColumns: string[]) =>
 | 
			
		||||
      set((s) => ({ ...s, hiddenColumns })),
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -59,12 +61,13 @@ export interface RefreshableTableSettings {
 | 
			
		|||
  setAutoRefreshRate: (autoRefreshRate: number) => void;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function refreshableSettings(
 | 
			
		||||
  set: ZustandSetFunc<RefreshableTableSettings>
 | 
			
		||||
export function refreshableSettings<T extends RefreshableTableSettings>(
 | 
			
		||||
  set: ZustandSetFunc<T>
 | 
			
		||||
): RefreshableTableSettings {
 | 
			
		||||
  return {
 | 
			
		||||
    autoRefreshRate: 0,
 | 
			
		||||
    setAutoRefreshRate: (autoRefreshRate: number) => set({ autoRefreshRate }),
 | 
			
		||||
    setAutoRefreshRate: (autoRefreshRate: number) =>
 | 
			
		||||
      set((s) => ({ ...s, autoRefreshRate })),
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,7 +21,7 @@ export function withLimitToBE<T>(
 | 
			
		|||
  const displayName =
 | 
			
		||||
    WrappedComponent.displayName || WrappedComponent.name || 'Component';
 | 
			
		||||
 | 
			
		||||
  function WrapperComponent(props: T) {
 | 
			
		||||
  function WrapperComponent(props: T & JSX.IntrinsicAttributes) {
 | 
			
		||||
    const isLimitedToBE = useLimitToBE(defaultPath);
 | 
			
		||||
 | 
			
		||||
    if (isLimitedToBE) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,7 +10,7 @@ export function withHideOnExtension<T>(
 | 
			
		|||
  const displayName =
 | 
			
		||||
    WrappedComponent.displayName || WrappedComponent.name || 'Component';
 | 
			
		||||
 | 
			
		||||
  function WrapperComponent(props: T) {
 | 
			
		||||
  function WrapperComponent(props: T & JSX.IntrinsicAttributes) {
 | 
			
		||||
    if (window.ddExtension) {
 | 
			
		||||
      return null;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,15 +16,16 @@ export interface TableSettings
 | 
			
		|||
    RefreshableTableSettings,
 | 
			
		||||
    SystemResourcesTableSettings {}
 | 
			
		||||
 | 
			
		||||
export function systemResourcesSettings(
 | 
			
		||||
  set: ZustandSetFunc<SystemResourcesTableSettings>
 | 
			
		||||
export function systemResourcesSettings<T extends SystemResourcesTableSettings>(
 | 
			
		||||
  set: ZustandSetFunc<T>
 | 
			
		||||
): SystemResourcesTableSettings {
 | 
			
		||||
  return {
 | 
			
		||||
    showSystemResources: false,
 | 
			
		||||
    setShowSystemResources(showSystemResources: boolean) {
 | 
			
		||||
      set({
 | 
			
		||||
      set((s) => ({
 | 
			
		||||
        ...s,
 | 
			
		||||
        showSystemResources,
 | 
			
		||||
      });
 | 
			
		||||
      }));
 | 
			
		||||
    },
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,7 +8,7 @@ export function withEdition<T>(
 | 
			
		|||
  const displayName =
 | 
			
		||||
    WrappedComponent.displayName || WrappedComponent.name || 'Component';
 | 
			
		||||
 | 
			
		||||
  function WrapperComponent(props: T) {
 | 
			
		||||
  function WrapperComponent(props: T & JSX.IntrinsicAttributes) {
 | 
			
		||||
    if (process.env.PORTAINER_EDITION !== edition) {
 | 
			
		||||
      return null;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,7 +10,7 @@ export function withFeatureFlag<T>(
 | 
			
		|||
  const displayName =
 | 
			
		||||
    WrappedComponent.displayName || WrappedComponent.name || 'Component';
 | 
			
		||||
 | 
			
		||||
  function WrapperComponent(props: T) {
 | 
			
		||||
  function WrapperComponent(props: T & JSX.IntrinsicAttributes) {
 | 
			
		||||
    const featureFlagQuery = useFeatureFlag(flag);
 | 
			
		||||
 | 
			
		||||
    if (!featureFlagQuery.data) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,7 +21,7 @@ export function withUserProvider<T>(
 | 
			
		|||
  const displayName =
 | 
			
		||||
    WrappedComponent.displayName || WrappedComponent.name || 'Component';
 | 
			
		||||
 | 
			
		||||
  function WrapperComponent(props: T) {
 | 
			
		||||
  function WrapperComponent(props: T & JSX.IntrinsicAttributes) {
 | 
			
		||||
    const state = useMemo(() => ({ user }), []);
 | 
			
		||||
 | 
			
		||||
    return (
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -199,6 +199,7 @@
 | 
			
		|||
    "postcss-loader": "^6.2.1",
 | 
			
		||||
    "prettier": "^2.8.1",
 | 
			
		||||
    "prettier-plugin-tailwindcss": "^0.2.1",
 | 
			
		||||
    "react-docgen-typescript-plugin": "^1.0.5",
 | 
			
		||||
    "react-test-renderer": "^17.0.2",
 | 
			
		||||
    "source-map-loader": "^3.0.0",
 | 
			
		||||
    "speed-measure-webpack-plugin": "^1.5.0",
 | 
			
		||||
| 
						 | 
				
			
			@ -207,7 +208,7 @@
 | 
			
		|||
    "swagger2openapi": "^7.0.8",
 | 
			
		||||
    "tailwindcss": "^3.1.4",
 | 
			
		||||
    "tsconfig-paths-webpack-plugin": "^3.5.2",
 | 
			
		||||
    "typescript": "^4.5.2",
 | 
			
		||||
    "typescript": "^5.0.4",
 | 
			
		||||
    "webpack": "^5.65.0",
 | 
			
		||||
    "webpack-build-notifier": "^2.3.0",
 | 
			
		||||
    "webpack-bundle-analyzer": "^4.5.0",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										23
									
								
								yarn.lock
								
								
								
								
							
							
						
						
									
										23
									
								
								yarn.lock
								
								
								
								
							| 
						 | 
				
			
			@ -15016,7 +15016,20 @@ react-datetime-picker@^4.2.0:
 | 
			
		|||
    react-fit "^1.4.0"
 | 
			
		||||
    react-time-picker "^5.2.0"
 | 
			
		||||
 | 
			
		||||
react-docgen-typescript@^2.1.1:
 | 
			
		||||
react-docgen-typescript-plugin@^1.0.5:
 | 
			
		||||
  version "1.0.5"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/react-docgen-typescript-plugin/-/react-docgen-typescript-plugin-1.0.5.tgz#015d8350b06a450d98000080d8ae5eac475e9f79"
 | 
			
		||||
  integrity sha512-Ds6s2ioyIlH45XSfEVMNwRcDkzuff3xQCPxDFOzTc8GEshy+hksas8RYlmV4JEQREI+OGEGybhMCJk3vFbQZNQ==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    debug "^4.1.1"
 | 
			
		||||
    endent "^2.0.1"
 | 
			
		||||
    find-cache-dir "^3.3.1"
 | 
			
		||||
    flat-cache "^3.0.4"
 | 
			
		||||
    micromatch "^4.0.2"
 | 
			
		||||
    react-docgen-typescript "^2.2.2"
 | 
			
		||||
    tslib "^2.0.0"
 | 
			
		||||
 | 
			
		||||
react-docgen-typescript@^2.1.1, react-docgen-typescript@^2.2.2:
 | 
			
		||||
  version "2.2.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/react-docgen-typescript/-/react-docgen-typescript-2.2.2.tgz#4611055e569edc071204aadb20e1c93e1ab1659c"
 | 
			
		||||
  integrity sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==
 | 
			
		||||
| 
						 | 
				
			
			@ -17381,10 +17394,10 @@ typedarray@^0.0.6:
 | 
			
		|||
  resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
 | 
			
		||||
  integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
 | 
			
		||||
 | 
			
		||||
typescript@^4.5.2:
 | 
			
		||||
  version "4.5.5"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3"
 | 
			
		||||
  integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==
 | 
			
		||||
typescript@^5.0.4:
 | 
			
		||||
  version "5.0.4"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b"
 | 
			
		||||
  integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==
 | 
			
		||||
 | 
			
		||||
uglify-js@3.4.x:
 | 
			
		||||
  version "3.4.10"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue