diff --git a/.babelrc b/.babelrc index 9add76866..9387060d8 100644 --- a/.babelrc +++ b/.babelrc @@ -1,5 +1,5 @@ { - "presets": ["@babel/preset-env", "@babel/preset-react", "@babel/preset-flow"], + "presets": ["@babel/preset-env", "@babel/preset-react", "@babel/preset-typescript"], "plugins": [ "@babel/plugin-proposal-class-properties" ] diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 000000000..4de7e8bb6 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,3 @@ +node_modules +dist +build_ts diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 000000000..eae504a7d --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,15 @@ +module.exports = { + root: true, + parser: '@typescript-eslint/parser', + plugins: ['@typescript-eslint'], + extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended'], + overrides: [ + // https://github.com/typescript-eslint/typescript-eslint/blob/main/docs/linting/TROUBLESHOOTING.md#i-get-errors-from-the-no-undef-rule-about-global-variables-not-being-defined-even-though-there-are-no-typescript-errors + { + files: ['*.ts', '*.tsx'], + rules: { + 'no-undef': 'off', + }, + }, + ], +}; diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 3c6d45280..000000000 --- a/.eslintrc.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "parser": "babel-eslint", - "parserOptions": { - "ecmaVersion": 6, - "sourceType": "module", - "ecmaFeatures": { - "jsx": true, - "modules": true, - "experimentalObjectRestSpread": true, - "impliedStrict": true - } - }, - "plugins": [ - "react", - "jest", - "import", - "flowtype", - "flowtype-errors" - ], - "ignorePatterns": [ - "src/react/group", - "src/react/user", - "src/react/backend/StorageMonitor.jsx" - ], - "rules": { - "semi": "error", - "indent": "off", - "no-var": "error", - "no-trailing-spaces": "error", - "no-extra-bind": "error", - "comma-dangle": [ "error", "always-multiline" ], - "keyword-spacing": [ "error", { "before": true } ], - "eol-last": "error", - "sort-imports": "off", - "no-multi-spaces": "error", - "eqeqeq": "error", - "no-useless-rename": "error", - "no-const-assign": "error", - "no-dupe-class-members": "error", - "prefer-arrow-callback": "error", - "quotes": ["error", "single"], - "flowtype-errors/show-errors": 2, - "flowtype-errors/show-warnings": 1, - "flowtype-errors/enforce-min-coverage": ["error", 30], - "flowtype/semi": "error", - "flowtype/delimiter-dangle": ["error", "always-multiline"], - "flowtype/union-intersection-spacing": "error", - "flowtype/space-after-type-colon": "warn", - "flowtype/type-import-style": ["error", "declaration"], - "flowtype/type-id-match": ["error", "^([A-Z][a-zA-Z0-9]*)$"], - "flowtype/no-dupe-keys": "error", - "import/no-duplicates": "warn", - "object-curly-spacing" : ["error", "always"] - }, - "extends": [ - "eslint:recommended", - "plugin:react/recommended", - "plugin:jest/recommended", - "plugin:flowtype/recommended", - "plugin:react-hooks/recommended", - "plugin:cypress/recommended" - ], - "settings": { - "react": { - "pragma": "React", - "version": "detect" - }, - "flowtype": { - "onlyFilesWithFlowAnnotation": true - } - }, - "globals": { - "global": true - }, - "env": { - "browser": true, - "es6": true - } -} diff --git a/.flowconfig b/.flowconfig deleted file mode 100644 index b056b0415..000000000 --- a/.flowconfig +++ /dev/null @@ -1,21 +0,0 @@ -[ignore] -/node_modules/react-side-effect/.* -/immutable/dist/.* - -[include] -/src/.* - -[libs] - -[lints] -all=error -untyped-import=warn -unclear-type=warn -sketchy-null=off -unsafe-getters-setters=warn - -[options] -include_warnings=false -esproposal.optional_chaining=enable - -[strict] diff --git a/flow-typed/npm/@babel/core_vx.x.x.js b/flow-typed/npm/@babel/core_vx.x.x.js deleted file mode 100644 index 3b5628ab5..000000000 --- a/flow-typed/npm/@babel/core_vx.x.x.js +++ /dev/null @@ -1,355 +0,0 @@ -// flow-typed signature: fe427af8cf6faa7d2de47aa9e945241b -// flow-typed version: <>/@babel/core_v^7.8.4/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * '@babel/core' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module '@babel/core' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module '@babel/core/lib/config/caching' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/config-chain' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/config-descriptors' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/files/configuration' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/files/import' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/files/index-browser' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/files' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/files/module-types' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/files/package' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/files/plugins' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/files/types' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/files/utils' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/full' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/helpers/config-api' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/helpers/environment' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/item' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/partial' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/pattern-to-regex' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/plugin' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/util' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/validation/option-assertions' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/validation/options' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/validation/plugins' { - declare module.exports: any; -} - -declare module '@babel/core/lib/config/validation/removed' { - declare module.exports: any; -} - -declare module '@babel/core/lib/gensync-utils/async' { - declare module.exports: any; -} - -declare module '@babel/core/lib/gensync-utils/fs' { - declare module.exports: any; -} - -declare module '@babel/core/lib/gensync-utils/resolve' { - declare module.exports: any; -} - -declare module '@babel/core/lib' { - declare module.exports: any; -} - -declare module '@babel/core/lib/parse' { - declare module.exports: any; -} - -declare module '@babel/core/lib/parser' { - declare module.exports: any; -} - -declare module '@babel/core/lib/parser/util/missing-plugin-helper' { - declare module.exports: any; -} - -declare module '@babel/core/lib/tools/build-external-helpers' { - declare module.exports: any; -} - -declare module '@babel/core/lib/transform-ast' { - declare module.exports: any; -} - -declare module '@babel/core/lib/transform-file-browser' { - declare module.exports: any; -} - -declare module '@babel/core/lib/transform-file' { - declare module.exports: any; -} - -declare module '@babel/core/lib/transform' { - declare module.exports: any; -} - -declare module '@babel/core/lib/transformation/block-hoist-plugin' { - declare module.exports: any; -} - -declare module '@babel/core/lib/transformation/file/file' { - declare module.exports: any; -} - -declare module '@babel/core/lib/transformation/file/generate' { - declare module.exports: any; -} - -declare module '@babel/core/lib/transformation/file/merge-map' { - declare module.exports: any; -} - -declare module '@babel/core/lib/transformation' { - declare module.exports: any; -} - -declare module '@babel/core/lib/transformation/normalize-file' { - declare module.exports: any; -} - -declare module '@babel/core/lib/transformation/normalize-opts' { - declare module.exports: any; -} - -declare module '@babel/core/lib/transformation/plugin-pass' { - declare module.exports: any; -} - -// Filename aliases -declare module '@babel/core/lib/config/caching.js' { - declare module.exports: $Exports<'@babel/core/lib/config/caching'>; -} -declare module '@babel/core/lib/config/config-chain.js' { - declare module.exports: $Exports<'@babel/core/lib/config/config-chain'>; -} -declare module '@babel/core/lib/config/config-descriptors.js' { - declare module.exports: $Exports<'@babel/core/lib/config/config-descriptors'>; -} -declare module '@babel/core/lib/config/files/configuration.js' { - declare module.exports: $Exports<'@babel/core/lib/config/files/configuration'>; -} -declare module '@babel/core/lib/config/files/import.js' { - declare module.exports: $Exports<'@babel/core/lib/config/files/import'>; -} -declare module '@babel/core/lib/config/files/index-browser.js' { - declare module.exports: $Exports<'@babel/core/lib/config/files/index-browser'>; -} -declare module '@babel/core/lib/config/files/index' { - declare module.exports: $Exports<'@babel/core/lib/config/files'>; -} -declare module '@babel/core/lib/config/files/index.js' { - declare module.exports: $Exports<'@babel/core/lib/config/files'>; -} -declare module '@babel/core/lib/config/files/module-types.js' { - declare module.exports: $Exports<'@babel/core/lib/config/files/module-types'>; -} -declare module '@babel/core/lib/config/files/package.js' { - declare module.exports: $Exports<'@babel/core/lib/config/files/package'>; -} -declare module '@babel/core/lib/config/files/plugins.js' { - declare module.exports: $Exports<'@babel/core/lib/config/files/plugins'>; -} -declare module '@babel/core/lib/config/files/types.js' { - declare module.exports: $Exports<'@babel/core/lib/config/files/types'>; -} -declare module '@babel/core/lib/config/files/utils.js' { - declare module.exports: $Exports<'@babel/core/lib/config/files/utils'>; -} -declare module '@babel/core/lib/config/full.js' { - declare module.exports: $Exports<'@babel/core/lib/config/full'>; -} -declare module '@babel/core/lib/config/helpers/config-api.js' { - declare module.exports: $Exports<'@babel/core/lib/config/helpers/config-api'>; -} -declare module '@babel/core/lib/config/helpers/environment.js' { - declare module.exports: $Exports<'@babel/core/lib/config/helpers/environment'>; -} -declare module '@babel/core/lib/config/index' { - declare module.exports: $Exports<'@babel/core/lib/config'>; -} -declare module '@babel/core/lib/config/index.js' { - declare module.exports: $Exports<'@babel/core/lib/config'>; -} -declare module '@babel/core/lib/config/item.js' { - declare module.exports: $Exports<'@babel/core/lib/config/item'>; -} -declare module '@babel/core/lib/config/partial.js' { - declare module.exports: $Exports<'@babel/core/lib/config/partial'>; -} -declare module '@babel/core/lib/config/pattern-to-regex.js' { - declare module.exports: $Exports<'@babel/core/lib/config/pattern-to-regex'>; -} -declare module '@babel/core/lib/config/plugin.js' { - declare module.exports: $Exports<'@babel/core/lib/config/plugin'>; -} -declare module '@babel/core/lib/config/util.js' { - declare module.exports: $Exports<'@babel/core/lib/config/util'>; -} -declare module '@babel/core/lib/config/validation/option-assertions.js' { - declare module.exports: $Exports<'@babel/core/lib/config/validation/option-assertions'>; -} -declare module '@babel/core/lib/config/validation/options.js' { - declare module.exports: $Exports<'@babel/core/lib/config/validation/options'>; -} -declare module '@babel/core/lib/config/validation/plugins.js' { - declare module.exports: $Exports<'@babel/core/lib/config/validation/plugins'>; -} -declare module '@babel/core/lib/config/validation/removed.js' { - declare module.exports: $Exports<'@babel/core/lib/config/validation/removed'>; -} -declare module '@babel/core/lib/gensync-utils/async.js' { - declare module.exports: $Exports<'@babel/core/lib/gensync-utils/async'>; -} -declare module '@babel/core/lib/gensync-utils/fs.js' { - declare module.exports: $Exports<'@babel/core/lib/gensync-utils/fs'>; -} -declare module '@babel/core/lib/gensync-utils/resolve.js' { - declare module.exports: $Exports<'@babel/core/lib/gensync-utils/resolve'>; -} -declare module '@babel/core/lib/index' { - declare module.exports: $Exports<'@babel/core/lib'>; -} -declare module '@babel/core/lib/index.js' { - declare module.exports: $Exports<'@babel/core/lib'>; -} -declare module '@babel/core/lib/parse.js' { - declare module.exports: $Exports<'@babel/core/lib/parse'>; -} -declare module '@babel/core/lib/parser/index' { - declare module.exports: $Exports<'@babel/core/lib/parser'>; -} -declare module '@babel/core/lib/parser/index.js' { - declare module.exports: $Exports<'@babel/core/lib/parser'>; -} -declare module '@babel/core/lib/parser/util/missing-plugin-helper.js' { - declare module.exports: $Exports<'@babel/core/lib/parser/util/missing-plugin-helper'>; -} -declare module '@babel/core/lib/tools/build-external-helpers.js' { - declare module.exports: $Exports<'@babel/core/lib/tools/build-external-helpers'>; -} -declare module '@babel/core/lib/transform-ast.js' { - declare module.exports: $Exports<'@babel/core/lib/transform-ast'>; -} -declare module '@babel/core/lib/transform-file-browser.js' { - declare module.exports: $Exports<'@babel/core/lib/transform-file-browser'>; -} -declare module '@babel/core/lib/transform-file.js' { - declare module.exports: $Exports<'@babel/core/lib/transform-file'>; -} -declare module '@babel/core/lib/transform.js' { - declare module.exports: $Exports<'@babel/core/lib/transform'>; -} -declare module '@babel/core/lib/transformation/block-hoist-plugin.js' { - declare module.exports: $Exports<'@babel/core/lib/transformation/block-hoist-plugin'>; -} -declare module '@babel/core/lib/transformation/file/file.js' { - declare module.exports: $Exports<'@babel/core/lib/transformation/file/file'>; -} -declare module '@babel/core/lib/transformation/file/generate.js' { - declare module.exports: $Exports<'@babel/core/lib/transformation/file/generate'>; -} -declare module '@babel/core/lib/transformation/file/merge-map.js' { - declare module.exports: $Exports<'@babel/core/lib/transformation/file/merge-map'>; -} -declare module '@babel/core/lib/transformation/index' { - declare module.exports: $Exports<'@babel/core/lib/transformation'>; -} -declare module '@babel/core/lib/transformation/index.js' { - declare module.exports: $Exports<'@babel/core/lib/transformation'>; -} -declare module '@babel/core/lib/transformation/normalize-file.js' { - declare module.exports: $Exports<'@babel/core/lib/transformation/normalize-file'>; -} -declare module '@babel/core/lib/transformation/normalize-opts.js' { - declare module.exports: $Exports<'@babel/core/lib/transformation/normalize-opts'>; -} -declare module '@babel/core/lib/transformation/plugin-pass.js' { - declare module.exports: $Exports<'@babel/core/lib/transformation/plugin-pass'>; -} diff --git a/flow-typed/npm/@babel/plugin-proposal-class-properties_vx.x.x.js b/flow-typed/npm/@babel/plugin-proposal-class-properties_vx.x.x.js deleted file mode 100644 index 6dcfc2ad4..000000000 --- a/flow-typed/npm/@babel/plugin-proposal-class-properties_vx.x.x.js +++ /dev/null @@ -1,35 +0,0 @@ -// flow-typed signature: af8a958b753294eb50a3ce5d17aab1b7 -// flow-typed version: <>/@babel/plugin-proposal-class-properties_v^7.8.3/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * '@babel/plugin-proposal-class-properties' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module '@babel/plugin-proposal-class-properties' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module '@babel/plugin-proposal-class-properties/lib' { - declare module.exports: any; -} - -// Filename aliases -declare module '@babel/plugin-proposal-class-properties/lib/index' { - declare module.exports: $Exports<'@babel/plugin-proposal-class-properties/lib'>; -} -declare module '@babel/plugin-proposal-class-properties/lib/index.js' { - declare module.exports: $Exports<'@babel/plugin-proposal-class-properties/lib'>; -} diff --git a/flow-typed/npm/@babel/preset-env_vx.x.x.js b/flow-typed/npm/@babel/preset-env_vx.x.x.js deleted file mode 100644 index a5c7bffbf..000000000 --- a/flow-typed/npm/@babel/preset-env_vx.x.x.js +++ /dev/null @@ -1,238 +0,0 @@ -// flow-typed signature: a817bdb71201c0ac201149beb2d8e083 -// flow-typed version: <>/@babel/preset-env_v^7.8.4/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * '@babel/preset-env' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module '@babel/preset-env' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module '@babel/preset-env/data/built-in-modules' { - declare module.exports: any; -} - -declare module '@babel/preset-env/data/built-in-modules.json' { - declare module.exports: any; -} - -declare module '@babel/preset-env/data/built-ins' { - declare module.exports: any; -} - -declare module '@babel/preset-env/data/built-ins.json' { - declare module.exports: any; -} - -declare module '@babel/preset-env/data/corejs2-built-ins' { - declare module.exports: any; -} - -declare module '@babel/preset-env/data/corejs2-built-ins.json' { - declare module.exports: any; -} - -declare module '@babel/preset-env/data/plugins' { - declare module.exports: any; -} - -declare module '@babel/preset-env/data/plugins.json' { - declare module.exports: any; -} - -declare module '@babel/preset-env/data/shipped-proposals' { - declare module.exports: any; -} - -declare module '@babel/preset-env/data/unreleased-labels' { - declare module.exports: any; -} - -declare module '@babel/preset-env/lib/available-plugins' { - declare module.exports: any; -} - -declare module '@babel/preset-env/lib/debug' { - declare module.exports: any; -} - -declare module '@babel/preset-env/lib/filter-items' { - declare module.exports: any; -} - -declare module '@babel/preset-env/lib/get-option-specific-excludes' { - declare module.exports: any; -} - -declare module '@babel/preset-env/lib' { - declare module.exports: any; -} - -declare module '@babel/preset-env/lib/module-transformations' { - declare module.exports: any; -} - -declare module '@babel/preset-env/lib/normalize-options' { - declare module.exports: any; -} - -declare module '@babel/preset-env/lib/options' { - declare module.exports: any; -} - -declare module '@babel/preset-env/lib/plugins-compat-data' { - declare module.exports: any; -} - -declare module '@babel/preset-env/lib/polyfills/corejs2/built-in-definitions' { - declare module.exports: any; -} - -declare module '@babel/preset-env/lib/polyfills/corejs2/entry-plugin' { - declare module.exports: any; -} - -declare module '@babel/preset-env/lib/polyfills/corejs2/get-platform-specific-default' { - declare module.exports: any; -} - -declare module '@babel/preset-env/lib/polyfills/corejs2/usage-plugin' { - declare module.exports: any; -} - -declare module '@babel/preset-env/lib/polyfills/corejs3/built-in-definitions' { - declare module.exports: any; -} - -declare module '@babel/preset-env/lib/polyfills/corejs3/entry-plugin' { - declare module.exports: any; -} - -declare module '@babel/preset-env/lib/polyfills/corejs3/usage-plugin' { - declare module.exports: any; -} - -declare module '@babel/preset-env/lib/polyfills/regenerator/entry-plugin' { - declare module.exports: any; -} - -declare module '@babel/preset-env/lib/polyfills/regenerator/usage-plugin' { - declare module.exports: any; -} - -declare module '@babel/preset-env/lib/targets-parser' { - declare module.exports: any; -} - -declare module '@babel/preset-env/lib/utils' { - declare module.exports: any; -} - -// Filename aliases -declare module '@babel/preset-env/data/built-in-modules.js' { - declare module.exports: $Exports<'@babel/preset-env/data/built-in-modules'>; -} -declare module '@babel/preset-env/data/built-in-modules.json.js' { - declare module.exports: $Exports<'@babel/preset-env/data/built-in-modules.json'>; -} -declare module '@babel/preset-env/data/built-ins.js' { - declare module.exports: $Exports<'@babel/preset-env/data/built-ins'>; -} -declare module '@babel/preset-env/data/built-ins.json.js' { - declare module.exports: $Exports<'@babel/preset-env/data/built-ins.json'>; -} -declare module '@babel/preset-env/data/corejs2-built-ins.js' { - declare module.exports: $Exports<'@babel/preset-env/data/corejs2-built-ins'>; -} -declare module '@babel/preset-env/data/corejs2-built-ins.json.js' { - declare module.exports: $Exports<'@babel/preset-env/data/corejs2-built-ins.json'>; -} -declare module '@babel/preset-env/data/plugins.js' { - declare module.exports: $Exports<'@babel/preset-env/data/plugins'>; -} -declare module '@babel/preset-env/data/plugins.json.js' { - declare module.exports: $Exports<'@babel/preset-env/data/plugins.json'>; -} -declare module '@babel/preset-env/data/shipped-proposals.js' { - declare module.exports: $Exports<'@babel/preset-env/data/shipped-proposals'>; -} -declare module '@babel/preset-env/data/unreleased-labels.js' { - declare module.exports: $Exports<'@babel/preset-env/data/unreleased-labels'>; -} -declare module '@babel/preset-env/lib/available-plugins.js' { - declare module.exports: $Exports<'@babel/preset-env/lib/available-plugins'>; -} -declare module '@babel/preset-env/lib/debug.js' { - declare module.exports: $Exports<'@babel/preset-env/lib/debug'>; -} -declare module '@babel/preset-env/lib/filter-items.js' { - declare module.exports: $Exports<'@babel/preset-env/lib/filter-items'>; -} -declare module '@babel/preset-env/lib/get-option-specific-excludes.js' { - declare module.exports: $Exports<'@babel/preset-env/lib/get-option-specific-excludes'>; -} -declare module '@babel/preset-env/lib/index' { - declare module.exports: $Exports<'@babel/preset-env/lib'>; -} -declare module '@babel/preset-env/lib/index.js' { - declare module.exports: $Exports<'@babel/preset-env/lib'>; -} -declare module '@babel/preset-env/lib/module-transformations.js' { - declare module.exports: $Exports<'@babel/preset-env/lib/module-transformations'>; -} -declare module '@babel/preset-env/lib/normalize-options.js' { - declare module.exports: $Exports<'@babel/preset-env/lib/normalize-options'>; -} -declare module '@babel/preset-env/lib/options.js' { - declare module.exports: $Exports<'@babel/preset-env/lib/options'>; -} -declare module '@babel/preset-env/lib/plugins-compat-data.js' { - declare module.exports: $Exports<'@babel/preset-env/lib/plugins-compat-data'>; -} -declare module '@babel/preset-env/lib/polyfills/corejs2/built-in-definitions.js' { - declare module.exports: $Exports<'@babel/preset-env/lib/polyfills/corejs2/built-in-definitions'>; -} -declare module '@babel/preset-env/lib/polyfills/corejs2/entry-plugin.js' { - declare module.exports: $Exports<'@babel/preset-env/lib/polyfills/corejs2/entry-plugin'>; -} -declare module '@babel/preset-env/lib/polyfills/corejs2/get-platform-specific-default.js' { - declare module.exports: $Exports<'@babel/preset-env/lib/polyfills/corejs2/get-platform-specific-default'>; -} -declare module '@babel/preset-env/lib/polyfills/corejs2/usage-plugin.js' { - declare module.exports: $Exports<'@babel/preset-env/lib/polyfills/corejs2/usage-plugin'>; -} -declare module '@babel/preset-env/lib/polyfills/corejs3/built-in-definitions.js' { - declare module.exports: $Exports<'@babel/preset-env/lib/polyfills/corejs3/built-in-definitions'>; -} -declare module '@babel/preset-env/lib/polyfills/corejs3/entry-plugin.js' { - declare module.exports: $Exports<'@babel/preset-env/lib/polyfills/corejs3/entry-plugin'>; -} -declare module '@babel/preset-env/lib/polyfills/corejs3/usage-plugin.js' { - declare module.exports: $Exports<'@babel/preset-env/lib/polyfills/corejs3/usage-plugin'>; -} -declare module '@babel/preset-env/lib/polyfills/regenerator/entry-plugin.js' { - declare module.exports: $Exports<'@babel/preset-env/lib/polyfills/regenerator/entry-plugin'>; -} -declare module '@babel/preset-env/lib/polyfills/regenerator/usage-plugin.js' { - declare module.exports: $Exports<'@babel/preset-env/lib/polyfills/regenerator/usage-plugin'>; -} -declare module '@babel/preset-env/lib/targets-parser.js' { - declare module.exports: $Exports<'@babel/preset-env/lib/targets-parser'>; -} -declare module '@babel/preset-env/lib/utils.js' { - declare module.exports: $Exports<'@babel/preset-env/lib/utils'>; -} diff --git a/flow-typed/npm/@babel/preset-flow_vx.x.x.js b/flow-typed/npm/@babel/preset-flow_vx.x.x.js deleted file mode 100644 index b2d0a6442..000000000 --- a/flow-typed/npm/@babel/preset-flow_vx.x.x.js +++ /dev/null @@ -1,35 +0,0 @@ -// flow-typed signature: d4bbecca03614945cd1596b00bfd9c60 -// flow-typed version: <>/@babel/preset-flow_v^7.8.3/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * '@babel/preset-flow' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module '@babel/preset-flow' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module '@babel/preset-flow/lib' { - declare module.exports: any; -} - -// Filename aliases -declare module '@babel/preset-flow/lib/index' { - declare module.exports: $Exports<'@babel/preset-flow/lib'>; -} -declare module '@babel/preset-flow/lib/index.js' { - declare module.exports: $Exports<'@babel/preset-flow/lib'>; -} diff --git a/flow-typed/npm/@babel/preset-react_vx.x.x.js b/flow-typed/npm/@babel/preset-react_vx.x.x.js deleted file mode 100644 index 2d8c50e47..000000000 --- a/flow-typed/npm/@babel/preset-react_vx.x.x.js +++ /dev/null @@ -1,35 +0,0 @@ -// flow-typed signature: f94f3f59db5ba5cf368fb5cf242903c5 -// flow-typed version: <>/@babel/preset-react_v^7.8.3/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * '@babel/preset-react' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module '@babel/preset-react' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module '@babel/preset-react/lib' { - declare module.exports: any; -} - -// Filename aliases -declare module '@babel/preset-react/lib/index' { - declare module.exports: $Exports<'@babel/preset-react/lib'>; -} -declare module '@babel/preset-react/lib/index.js' { - declare module.exports: $Exports<'@babel/preset-react/lib'>; -} diff --git a/flow-typed/npm/@fortawesome/fontawesome-free_vx.x.x.js b/flow-typed/npm/@fortawesome/fontawesome-free_vx.x.x.js deleted file mode 100644 index 11d36dd28..000000000 --- a/flow-typed/npm/@fortawesome/fontawesome-free_vx.x.x.js +++ /dev/null @@ -1,109 +0,0 @@ -// flow-typed signature: 0804e7f5751ac9c74a3492e3c16d43e4 -// flow-typed version: <>/@fortawesome/fontawesome-free_v5.7.2/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * '@fortawesome/fontawesome-free' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module '@fortawesome/fontawesome-free' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module '@fortawesome/fontawesome-free/js/all' { - declare module.exports: any; -} - -declare module '@fortawesome/fontawesome-free/js/all.min' { - declare module.exports: any; -} - -declare module '@fortawesome/fontawesome-free/js/brands' { - declare module.exports: any; -} - -declare module '@fortawesome/fontawesome-free/js/brands.min' { - declare module.exports: any; -} - -declare module '@fortawesome/fontawesome-free/js/fontawesome' { - declare module.exports: any; -} - -declare module '@fortawesome/fontawesome-free/js/fontawesome.min' { - declare module.exports: any; -} - -declare module '@fortawesome/fontawesome-free/js/regular' { - declare module.exports: any; -} - -declare module '@fortawesome/fontawesome-free/js/regular.min' { - declare module.exports: any; -} - -declare module '@fortawesome/fontawesome-free/js/solid' { - declare module.exports: any; -} - -declare module '@fortawesome/fontawesome-free/js/solid.min' { - declare module.exports: any; -} - -declare module '@fortawesome/fontawesome-free/js/v4-shims' { - declare module.exports: any; -} - -declare module '@fortawesome/fontawesome-free/js/v4-shims.min' { - declare module.exports: any; -} - -// Filename aliases -declare module '@fortawesome/fontawesome-free/js/all.js' { - declare module.exports: $Exports<'@fortawesome/fontawesome-free/js/all'>; -} -declare module '@fortawesome/fontawesome-free/js/all.min.js' { - declare module.exports: $Exports<'@fortawesome/fontawesome-free/js/all.min'>; -} -declare module '@fortawesome/fontawesome-free/js/brands.js' { - declare module.exports: $Exports<'@fortawesome/fontawesome-free/js/brands'>; -} -declare module '@fortawesome/fontawesome-free/js/brands.min.js' { - declare module.exports: $Exports<'@fortawesome/fontawesome-free/js/brands.min'>; -} -declare module '@fortawesome/fontawesome-free/js/fontawesome.js' { - declare module.exports: $Exports<'@fortawesome/fontawesome-free/js/fontawesome'>; -} -declare module '@fortawesome/fontawesome-free/js/fontawesome.min.js' { - declare module.exports: $Exports<'@fortawesome/fontawesome-free/js/fontawesome.min'>; -} -declare module '@fortawesome/fontawesome-free/js/regular.js' { - declare module.exports: $Exports<'@fortawesome/fontawesome-free/js/regular'>; -} -declare module '@fortawesome/fontawesome-free/js/regular.min.js' { - declare module.exports: $Exports<'@fortawesome/fontawesome-free/js/regular.min'>; -} -declare module '@fortawesome/fontawesome-free/js/solid.js' { - declare module.exports: $Exports<'@fortawesome/fontawesome-free/js/solid'>; -} -declare module '@fortawesome/fontawesome-free/js/solid.min.js' { - declare module.exports: $Exports<'@fortawesome/fontawesome-free/js/solid.min'>; -} -declare module '@fortawesome/fontawesome-free/js/v4-shims.js' { - declare module.exports: $Exports<'@fortawesome/fontawesome-free/js/v4-shims'>; -} -declare module '@fortawesome/fontawesome-free/js/v4-shims.min.js' { - declare module.exports: $Exports<'@fortawesome/fontawesome-free/js/v4-shims.min'>; -} diff --git a/flow-typed/npm/@scality/core-ui_vx.x.x.js b/flow-typed/npm/@scality/core-ui_vx.x.x.js deleted file mode 100644 index 205b988cc..000000000 --- a/flow-typed/npm/@scality/core-ui_vx.x.x.js +++ /dev/null @@ -1,1329 +0,0 @@ -// flow-typed signature: 33cc98277e8053affbfa224c0ff50355 -// flow-typed version: <>/@scality/core-ui_vgithub:scality/core-ui.git#add-dist-folder/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * '@scality/core-ui' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module '@scality/core-ui' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module '@scality/core-ui/__mocks__/fileMock' { - declare module.exports: any; -} - -declare module '@scality/core-ui/__mocks__/styleMock' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/areachart/AreaChart.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/banner/Banner.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/barchart/BarChart.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/breadcrumb/Breadcrumb.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/button/Button.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/checkbox/Checkbox.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/chips/Chips.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/circularprogressbar/CircularProgressBar.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/circularprogressbar/CircularProgressBar.component.style' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/cloudprogressbar/CloudProgressBar.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/collapsiblepanel/CollapsiblePanel.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/constants' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/dropdown/Dropdown.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/input/Input.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/input/Input.component.style' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/layout/Layout.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/linechart/LineChart.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/loader/Loader.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/modal/Modal.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/multiselect/MultiSelect.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/navbar/Navbar.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/notifications/Notification.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/notifications/Notifications.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/progressbar/ProgressBar.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/searchinput/SearchInput.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/select/Select.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/sidebar/Sidebar.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/sparkline/SparkLine.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/steppers/Steppers.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/table/Table.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/tabs/Tabs.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/textarea/TextArea.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/toggle/Toggle.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/tooltip/Tooltip.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/components/vegachart/VegaChart.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/icons/branding' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/icons/scality-loading' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/style/theme' { - declare module.exports: any; -} - -declare module '@scality/core-ui/dist/utils' { - declare module.exports: any; -} - -declare module '@scality/core-ui/plopfile' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/areachart/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/areachart/AreaChart.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/areachart/AreaChart.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/banner/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/banner/Banner.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/banner/Banner.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/barchart/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/barchart/BarChart.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/barchart/BarChart.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/breadcrumb/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/breadcrumb/Breadcrumb.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/breadcrumb/Breadcrumb.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/button/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/button/Button.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/button/Button.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/checkbox/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/checkbox/Checkbox.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/checkbox/Checkbox.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/chips/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/chips/Chips.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/chips/Chips.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/circularprogressbar/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/circularprogressbar/CircularProgressBar.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/circularprogressbar/CircularProgressBar.component.style' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/circularprogressbar/CircularProgressBar.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/cloudprogressbar/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/cloudprogressbar/CloudProgressBar.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/cloudprogressbar/CloudProgressBar.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/collapsiblepanel/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/collapsiblepanel/CollapsiblePanel.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/collapsiblepanel/CollapsiblePanel.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/constants' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/dropdown/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/dropdown/Dropdown.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/dropdown/Dropdown.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/input/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/input/Input.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/input/Input.component.style' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/input/Input.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/layout/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/layout/Layout.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/layout/Layout.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/linechart/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/linechart/LineChart.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/linechart/LineChart.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/loader/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/loader/Loader.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/loader/Loader.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/modal/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/modal/Modal.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/modal/Modal.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/multiselect/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/multiselect/MultiSelect.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/multiselect/MultiSelect.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/navbar/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/navbar/Navbar.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/navbar/Navbar.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/notifications/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/notifications/Notification.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/notifications/Notifications.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/notifications/Notifications.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/progressbar/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/progressbar/ProgressBar.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/progressbar/ProgressBar.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/searchinput/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/searchinput/SearchInput.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/searchinput/SearchInput.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/select/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/select/Select.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/select/Select.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/sidebar/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/sidebar/Sidebar.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/sidebar/Sidebar.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/sparkline/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/sparkline/SparkLine.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/sparkline/SparkLine.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/steppers/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/steppers/Steppers.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/steppers/Steppers.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/table/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/table/Table.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/table/Table.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/tabs/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/tabs/Tabs.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/tabs/Tabs.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/textarea/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/textarea/TextArea.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/textarea/TextArea.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/toggle/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/toggle/Toggle.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/toggle/Toggle.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/tooltip/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/tooltip/Tooltip.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/tooltip/Tooltip.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/vegachart/__snapshots__/config' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/vegachart/VegaChart.component' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/components/vegachart/VegaChart.component.test' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/icons/branding' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/icons/scality-loading' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/style/theme' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/lib/utils' { - declare module.exports: any; -} - -declare module '@scality/core-ui/src/setupTests' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/areachart' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/banner' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/barchart' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/breadcrumb' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/button' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/checkbox' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/chips' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/circularprogressbar' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/cloudprogressbar' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/collapsiblepanel' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/color' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/common' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/data/areachart' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/data/barchart' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/data/linechart' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/data/list' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/data/sparklinechart' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/dropdown' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/input' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/layout' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/linechart' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/loader' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/modal' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/multiselect' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/navbar' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/notifications' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/progressbar' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/searchinput' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/select' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/sidebar' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/sparkline' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/steppers' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/table' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/tabs' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/textarea' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/toggle' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/tooltip' { - declare module.exports: any; -} - -declare module '@scality/core-ui/stories/vegachart' { - declare module.exports: any; -} - -// Filename aliases -declare module '@scality/core-ui/__mocks__/fileMock.js' { - declare module.exports: $Exports<'@scality/core-ui/__mocks__/fileMock'>; -} -declare module '@scality/core-ui/__mocks__/styleMock.js' { - declare module.exports: $Exports<'@scality/core-ui/__mocks__/styleMock'>; -} -declare module '@scality/core-ui/dist/components/areachart/AreaChart.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/areachart/AreaChart.component'>; -} -declare module '@scality/core-ui/dist/components/banner/Banner.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/banner/Banner.component'>; -} -declare module '@scality/core-ui/dist/components/barchart/BarChart.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/barchart/BarChart.component'>; -} -declare module '@scality/core-ui/dist/components/breadcrumb/Breadcrumb.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/breadcrumb/Breadcrumb.component'>; -} -declare module '@scality/core-ui/dist/components/button/Button.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/button/Button.component'>; -} -declare module '@scality/core-ui/dist/components/checkbox/Checkbox.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/checkbox/Checkbox.component'>; -} -declare module '@scality/core-ui/dist/components/chips/Chips.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/chips/Chips.component'>; -} -declare module '@scality/core-ui/dist/components/circularprogressbar/CircularProgressBar.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/circularprogressbar/CircularProgressBar.component'>; -} -declare module '@scality/core-ui/dist/components/circularprogressbar/CircularProgressBar.component.style.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/circularprogressbar/CircularProgressBar.component.style'>; -} -declare module '@scality/core-ui/dist/components/cloudprogressbar/CloudProgressBar.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/cloudprogressbar/CloudProgressBar.component'>; -} -declare module '@scality/core-ui/dist/components/collapsiblepanel/CollapsiblePanel.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/collapsiblepanel/CollapsiblePanel.component'>; -} -declare module '@scality/core-ui/dist/components/constants.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/constants'>; -} -declare module '@scality/core-ui/dist/components/dropdown/Dropdown.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/dropdown/Dropdown.component'>; -} -declare module '@scality/core-ui/dist/components/input/Input.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/input/Input.component'>; -} -declare module '@scality/core-ui/dist/components/input/Input.component.style.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/input/Input.component.style'>; -} -declare module '@scality/core-ui/dist/components/layout/Layout.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/layout/Layout.component'>; -} -declare module '@scality/core-ui/dist/components/linechart/LineChart.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/linechart/LineChart.component'>; -} -declare module '@scality/core-ui/dist/components/loader/Loader.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/loader/Loader.component'>; -} -declare module '@scality/core-ui/dist/components/modal/Modal.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/modal/Modal.component'>; -} -declare module '@scality/core-ui/dist/components/multiselect/MultiSelect.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/multiselect/MultiSelect.component'>; -} -declare module '@scality/core-ui/dist/components/navbar/Navbar.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/navbar/Navbar.component'>; -} -declare module '@scality/core-ui/dist/components/notifications/Notification.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/notifications/Notification.component'>; -} -declare module '@scality/core-ui/dist/components/notifications/Notifications.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/notifications/Notifications.component'>; -} -declare module '@scality/core-ui/dist/components/progressbar/ProgressBar.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/progressbar/ProgressBar.component'>; -} -declare module '@scality/core-ui/dist/components/searchinput/SearchInput.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/searchinput/SearchInput.component'>; -} -declare module '@scality/core-ui/dist/components/select/Select.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/select/Select.component'>; -} -declare module '@scality/core-ui/dist/components/sidebar/Sidebar.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/sidebar/Sidebar.component'>; -} -declare module '@scality/core-ui/dist/components/sparkline/SparkLine.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/sparkline/SparkLine.component'>; -} -declare module '@scality/core-ui/dist/components/steppers/Steppers.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/steppers/Steppers.component'>; -} -declare module '@scality/core-ui/dist/components/table/Table.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/table/Table.component'>; -} -declare module '@scality/core-ui/dist/components/tabs/Tabs.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/tabs/Tabs.component'>; -} -declare module '@scality/core-ui/dist/components/textarea/TextArea.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/textarea/TextArea.component'>; -} -declare module '@scality/core-ui/dist/components/toggle/Toggle.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/toggle/Toggle.component'>; -} -declare module '@scality/core-ui/dist/components/tooltip/Tooltip.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/tooltip/Tooltip.component'>; -} -declare module '@scality/core-ui/dist/components/vegachart/VegaChart.component.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/components/vegachart/VegaChart.component'>; -} -declare module '@scality/core-ui/dist/icons/branding.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/icons/branding'>; -} -declare module '@scality/core-ui/dist/icons/scality-loading.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/icons/scality-loading'>; -} -declare module '@scality/core-ui/dist/index' { - declare module.exports: $Exports<'@scality/core-ui/dist'>; -} -declare module '@scality/core-ui/dist/index.js' { - declare module.exports: $Exports<'@scality/core-ui/dist'>; -} -declare module '@scality/core-ui/dist/style/theme.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/style/theme'>; -} -declare module '@scality/core-ui/dist/utils.js' { - declare module.exports: $Exports<'@scality/core-ui/dist/utils'>; -} -declare module '@scality/core-ui/plopfile.js' { - declare module.exports: $Exports<'@scality/core-ui/plopfile'>; -} -declare module '@scality/core-ui/src/lib/components/areachart/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/areachart/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/areachart/AreaChart.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/areachart/AreaChart.component'>; -} -declare module '@scality/core-ui/src/lib/components/areachart/AreaChart.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/areachart/AreaChart.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/banner/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/banner/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/banner/Banner.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/banner/Banner.component'>; -} -declare module '@scality/core-ui/src/lib/components/banner/Banner.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/banner/Banner.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/barchart/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/barchart/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/barchart/BarChart.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/barchart/BarChart.component'>; -} -declare module '@scality/core-ui/src/lib/components/barchart/BarChart.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/barchart/BarChart.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/breadcrumb/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/breadcrumb/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/breadcrumb/Breadcrumb.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/breadcrumb/Breadcrumb.component'>; -} -declare module '@scality/core-ui/src/lib/components/breadcrumb/Breadcrumb.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/breadcrumb/Breadcrumb.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/button/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/button/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/button/Button.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/button/Button.component'>; -} -declare module '@scality/core-ui/src/lib/components/button/Button.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/button/Button.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/checkbox/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/checkbox/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/checkbox/Checkbox.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/checkbox/Checkbox.component'>; -} -declare module '@scality/core-ui/src/lib/components/checkbox/Checkbox.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/checkbox/Checkbox.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/chips/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/chips/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/chips/Chips.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/chips/Chips.component'>; -} -declare module '@scality/core-ui/src/lib/components/chips/Chips.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/chips/Chips.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/circularprogressbar/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/circularprogressbar/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/circularprogressbar/CircularProgressBar.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/circularprogressbar/CircularProgressBar.component'>; -} -declare module '@scality/core-ui/src/lib/components/circularprogressbar/CircularProgressBar.component.style.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/circularprogressbar/CircularProgressBar.component.style'>; -} -declare module '@scality/core-ui/src/lib/components/circularprogressbar/CircularProgressBar.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/circularprogressbar/CircularProgressBar.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/cloudprogressbar/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/cloudprogressbar/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/cloudprogressbar/CloudProgressBar.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/cloudprogressbar/CloudProgressBar.component'>; -} -declare module '@scality/core-ui/src/lib/components/cloudprogressbar/CloudProgressBar.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/cloudprogressbar/CloudProgressBar.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/collapsiblepanel/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/collapsiblepanel/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/collapsiblepanel/CollapsiblePanel.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/collapsiblepanel/CollapsiblePanel.component'>; -} -declare module '@scality/core-ui/src/lib/components/collapsiblepanel/CollapsiblePanel.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/collapsiblepanel/CollapsiblePanel.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/constants.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/constants'>; -} -declare module '@scality/core-ui/src/lib/components/dropdown/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/dropdown/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/dropdown/Dropdown.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/dropdown/Dropdown.component'>; -} -declare module '@scality/core-ui/src/lib/components/dropdown/Dropdown.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/dropdown/Dropdown.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/input/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/input/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/input/Input.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/input/Input.component'>; -} -declare module '@scality/core-ui/src/lib/components/input/Input.component.style.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/input/Input.component.style'>; -} -declare module '@scality/core-ui/src/lib/components/input/Input.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/input/Input.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/layout/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/layout/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/layout/Layout.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/layout/Layout.component'>; -} -declare module '@scality/core-ui/src/lib/components/layout/Layout.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/layout/Layout.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/linechart/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/linechart/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/linechart/LineChart.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/linechart/LineChart.component'>; -} -declare module '@scality/core-ui/src/lib/components/linechart/LineChart.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/linechart/LineChart.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/loader/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/loader/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/loader/Loader.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/loader/Loader.component'>; -} -declare module '@scality/core-ui/src/lib/components/loader/Loader.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/loader/Loader.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/modal/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/modal/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/modal/Modal.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/modal/Modal.component'>; -} -declare module '@scality/core-ui/src/lib/components/modal/Modal.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/modal/Modal.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/multiselect/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/multiselect/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/multiselect/MultiSelect.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/multiselect/MultiSelect.component'>; -} -declare module '@scality/core-ui/src/lib/components/multiselect/MultiSelect.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/multiselect/MultiSelect.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/navbar/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/navbar/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/navbar/Navbar.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/navbar/Navbar.component'>; -} -declare module '@scality/core-ui/src/lib/components/navbar/Navbar.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/navbar/Navbar.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/notifications/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/notifications/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/notifications/Notification.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/notifications/Notification.component'>; -} -declare module '@scality/core-ui/src/lib/components/notifications/Notifications.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/notifications/Notifications.component'>; -} -declare module '@scality/core-ui/src/lib/components/notifications/Notifications.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/notifications/Notifications.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/progressbar/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/progressbar/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/progressbar/ProgressBar.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/progressbar/ProgressBar.component'>; -} -declare module '@scality/core-ui/src/lib/components/progressbar/ProgressBar.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/progressbar/ProgressBar.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/searchinput/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/searchinput/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/searchinput/SearchInput.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/searchinput/SearchInput.component'>; -} -declare module '@scality/core-ui/src/lib/components/searchinput/SearchInput.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/searchinput/SearchInput.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/select/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/select/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/select/Select.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/select/Select.component'>; -} -declare module '@scality/core-ui/src/lib/components/select/Select.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/select/Select.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/sidebar/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/sidebar/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/sidebar/Sidebar.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/sidebar/Sidebar.component'>; -} -declare module '@scality/core-ui/src/lib/components/sidebar/Sidebar.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/sidebar/Sidebar.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/sparkline/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/sparkline/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/sparkline/SparkLine.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/sparkline/SparkLine.component'>; -} -declare module '@scality/core-ui/src/lib/components/sparkline/SparkLine.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/sparkline/SparkLine.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/steppers/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/steppers/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/steppers/Steppers.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/steppers/Steppers.component'>; -} -declare module '@scality/core-ui/src/lib/components/steppers/Steppers.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/steppers/Steppers.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/table/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/table/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/table/Table.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/table/Table.component'>; -} -declare module '@scality/core-ui/src/lib/components/table/Table.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/table/Table.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/tabs/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/tabs/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/tabs/Tabs.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/tabs/Tabs.component'>; -} -declare module '@scality/core-ui/src/lib/components/tabs/Tabs.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/tabs/Tabs.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/textarea/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/textarea/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/textarea/TextArea.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/textarea/TextArea.component'>; -} -declare module '@scality/core-ui/src/lib/components/textarea/TextArea.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/textarea/TextArea.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/toggle/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/toggle/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/toggle/Toggle.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/toggle/Toggle.component'>; -} -declare module '@scality/core-ui/src/lib/components/toggle/Toggle.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/toggle/Toggle.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/tooltip/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/tooltip/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/tooltip/Tooltip.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/tooltip/Tooltip.component'>; -} -declare module '@scality/core-ui/src/lib/components/tooltip/Tooltip.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/tooltip/Tooltip.component.test'>; -} -declare module '@scality/core-ui/src/lib/components/vegachart/__snapshots__/config.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/vegachart/__snapshots__/config'>; -} -declare module '@scality/core-ui/src/lib/components/vegachart/VegaChart.component.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/vegachart/VegaChart.component'>; -} -declare module '@scality/core-ui/src/lib/components/vegachart/VegaChart.component.test.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/components/vegachart/VegaChart.component.test'>; -} -declare module '@scality/core-ui/src/lib/icons/branding.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/icons/branding'>; -} -declare module '@scality/core-ui/src/lib/icons/scality-loading.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/icons/scality-loading'>; -} -declare module '@scality/core-ui/src/lib/index' { - declare module.exports: $Exports<'@scality/core-ui/src/lib'>; -} -declare module '@scality/core-ui/src/lib/index.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib'>; -} -declare module '@scality/core-ui/src/lib/style/theme.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/style/theme'>; -} -declare module '@scality/core-ui/src/lib/utils.js' { - declare module.exports: $Exports<'@scality/core-ui/src/lib/utils'>; -} -declare module '@scality/core-ui/src/setupTests.js' { - declare module.exports: $Exports<'@scality/core-ui/src/setupTests'>; -} -declare module '@scality/core-ui/stories/areachart.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/areachart'>; -} -declare module '@scality/core-ui/stories/banner.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/banner'>; -} -declare module '@scality/core-ui/stories/barchart.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/barchart'>; -} -declare module '@scality/core-ui/stories/breadcrumb.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/breadcrumb'>; -} -declare module '@scality/core-ui/stories/button.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/button'>; -} -declare module '@scality/core-ui/stories/checkbox.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/checkbox'>; -} -declare module '@scality/core-ui/stories/chips.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/chips'>; -} -declare module '@scality/core-ui/stories/circularprogressbar.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/circularprogressbar'>; -} -declare module '@scality/core-ui/stories/cloudprogressbar.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/cloudprogressbar'>; -} -declare module '@scality/core-ui/stories/collapsiblepanel.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/collapsiblepanel'>; -} -declare module '@scality/core-ui/stories/color.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/color'>; -} -declare module '@scality/core-ui/stories/common.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/common'>; -} -declare module '@scality/core-ui/stories/data/areachart.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/data/areachart'>; -} -declare module '@scality/core-ui/stories/data/barchart.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/data/barchart'>; -} -declare module '@scality/core-ui/stories/data/linechart.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/data/linechart'>; -} -declare module '@scality/core-ui/stories/data/list.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/data/list'>; -} -declare module '@scality/core-ui/stories/data/sparklinechart.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/data/sparklinechart'>; -} -declare module '@scality/core-ui/stories/dropdown.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/dropdown'>; -} -declare module '@scality/core-ui/stories/index' { - declare module.exports: $Exports<'@scality/core-ui/stories'>; -} -declare module '@scality/core-ui/stories/index.js' { - declare module.exports: $Exports<'@scality/core-ui/stories'>; -} -declare module '@scality/core-ui/stories/input.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/input'>; -} -declare module '@scality/core-ui/stories/layout.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/layout'>; -} -declare module '@scality/core-ui/stories/linechart.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/linechart'>; -} -declare module '@scality/core-ui/stories/loader.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/loader'>; -} -declare module '@scality/core-ui/stories/modal.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/modal'>; -} -declare module '@scality/core-ui/stories/multiselect.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/multiselect'>; -} -declare module '@scality/core-ui/stories/navbar.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/navbar'>; -} -declare module '@scality/core-ui/stories/notifications.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/notifications'>; -} -declare module '@scality/core-ui/stories/progressbar.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/progressbar'>; -} -declare module '@scality/core-ui/stories/searchinput.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/searchinput'>; -} -declare module '@scality/core-ui/stories/select.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/select'>; -} -declare module '@scality/core-ui/stories/sidebar.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/sidebar'>; -} -declare module '@scality/core-ui/stories/sparkline.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/sparkline'>; -} -declare module '@scality/core-ui/stories/steppers.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/steppers'>; -} -declare module '@scality/core-ui/stories/table.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/table'>; -} -declare module '@scality/core-ui/stories/tabs.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/tabs'>; -} -declare module '@scality/core-ui/stories/textarea.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/textarea'>; -} -declare module '@scality/core-ui/stories/toggle.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/toggle'>; -} -declare module '@scality/core-ui/stories/tooltip.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/tooltip'>; -} -declare module '@scality/core-ui/stories/vegachart.js' { - declare module.exports: $Exports<'@scality/core-ui/stories/vegachart'>; -} diff --git a/flow-typed/npm/@welldone-software/why-did-you-render_vx.x.x.js b/flow-typed/npm/@welldone-software/why-did-you-render_vx.x.x.js deleted file mode 100644 index bbf79e217..000000000 --- a/flow-typed/npm/@welldone-software/why-did-you-render_vx.x.x.js +++ /dev/null @@ -1,217 +0,0 @@ -// flow-typed signature: 3ba28167dd88ca8a9c440d229a3de5c3 -// flow-typed version: <>/@welldone-software/why-did-you-render_v^4.0.5/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * '@welldone-software/why-did-you-render' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module '@welldone-software/why-did-you-render' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module '@welldone-software/why-did-you-render/dist/cjs/whyDidYouRender' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/dist/cjs/whyDidYouRender.min' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/dist/esm/whyDidYouRender' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/dist/esm/whyDidYouRender.min' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/dist/no-classes-transpile/cjs/whyDidYouRender' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/dist/no-classes-transpile/cjs/whyDidYouRender.min' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/dist/no-classes-transpile/esm/whyDidYouRender' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/dist/no-classes-transpile/esm/whyDidYouRender.min' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/dist/no-classes-transpile/umd/whyDidYouRender' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/dist/no-classes-transpile/umd/whyDidYouRender.min' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/dist/umd/whyDidYouRender' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/dist/umd/whyDidYouRender.min' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/src/calculateDeepEqualDiffs' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/src/consts' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/src/defaultNotifier' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/src/findObjectsDifferences' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/src/getDisplayName' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/src/getUpdateInfo' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/src' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/src/normalizeOptions' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/src/patches/patchClassComponent' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/src/patches/patchForwardRefComponent' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/src/patches/patchFunctionalOrStrComponent' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/src/patches/patchMemoComponent' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/src/shouldTrack' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/src/utils' { - declare module.exports: any; -} - -declare module '@welldone-software/why-did-you-render/src/whyDidYouRender' { - declare module.exports: any; -} - -// Filename aliases -declare module '@welldone-software/why-did-you-render/dist/cjs/whyDidYouRender.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/dist/cjs/whyDidYouRender'>; -} -declare module '@welldone-software/why-did-you-render/dist/cjs/whyDidYouRender.min.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/dist/cjs/whyDidYouRender.min'>; -} -declare module '@welldone-software/why-did-you-render/dist/esm/whyDidYouRender.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/dist/esm/whyDidYouRender'>; -} -declare module '@welldone-software/why-did-you-render/dist/esm/whyDidYouRender.min.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/dist/esm/whyDidYouRender.min'>; -} -declare module '@welldone-software/why-did-you-render/dist/no-classes-transpile/cjs/whyDidYouRender.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/dist/no-classes-transpile/cjs/whyDidYouRender'>; -} -declare module '@welldone-software/why-did-you-render/dist/no-classes-transpile/cjs/whyDidYouRender.min.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/dist/no-classes-transpile/cjs/whyDidYouRender.min'>; -} -declare module '@welldone-software/why-did-you-render/dist/no-classes-transpile/esm/whyDidYouRender.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/dist/no-classes-transpile/esm/whyDidYouRender'>; -} -declare module '@welldone-software/why-did-you-render/dist/no-classes-transpile/esm/whyDidYouRender.min.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/dist/no-classes-transpile/esm/whyDidYouRender.min'>; -} -declare module '@welldone-software/why-did-you-render/dist/no-classes-transpile/umd/whyDidYouRender.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/dist/no-classes-transpile/umd/whyDidYouRender'>; -} -declare module '@welldone-software/why-did-you-render/dist/no-classes-transpile/umd/whyDidYouRender.min.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/dist/no-classes-transpile/umd/whyDidYouRender.min'>; -} -declare module '@welldone-software/why-did-you-render/dist/umd/whyDidYouRender.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/dist/umd/whyDidYouRender'>; -} -declare module '@welldone-software/why-did-you-render/dist/umd/whyDidYouRender.min.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/dist/umd/whyDidYouRender.min'>; -} -declare module '@welldone-software/why-did-you-render/src/calculateDeepEqualDiffs.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/src/calculateDeepEqualDiffs'>; -} -declare module '@welldone-software/why-did-you-render/src/consts.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/src/consts'>; -} -declare module '@welldone-software/why-did-you-render/src/defaultNotifier.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/src/defaultNotifier'>; -} -declare module '@welldone-software/why-did-you-render/src/findObjectsDifferences.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/src/findObjectsDifferences'>; -} -declare module '@welldone-software/why-did-you-render/src/getDisplayName.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/src/getDisplayName'>; -} -declare module '@welldone-software/why-did-you-render/src/getUpdateInfo.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/src/getUpdateInfo'>; -} -declare module '@welldone-software/why-did-you-render/src/index' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/src'>; -} -declare module '@welldone-software/why-did-you-render/src/index.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/src'>; -} -declare module '@welldone-software/why-did-you-render/src/normalizeOptions.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/src/normalizeOptions'>; -} -declare module '@welldone-software/why-did-you-render/src/patches/patchClassComponent.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/src/patches/patchClassComponent'>; -} -declare module '@welldone-software/why-did-you-render/src/patches/patchForwardRefComponent.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/src/patches/patchForwardRefComponent'>; -} -declare module '@welldone-software/why-did-you-render/src/patches/patchFunctionalOrStrComponent.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/src/patches/patchFunctionalOrStrComponent'>; -} -declare module '@welldone-software/why-did-you-render/src/patches/patchMemoComponent.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/src/patches/patchMemoComponent'>; -} -declare module '@welldone-software/why-did-you-render/src/shouldTrack.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/src/shouldTrack'>; -} -declare module '@welldone-software/why-did-you-render/src/utils.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/src/utils'>; -} -declare module '@welldone-software/why-did-you-render/src/whyDidYouRender.js' { - declare module.exports: $Exports<'@welldone-software/why-did-you-render/src/whyDidYouRender'>; -} diff --git a/flow-typed/npm/async_vx.x.x.js b/flow-typed/npm/async_vx.x.x.js deleted file mode 100644 index 2279074f6..000000000 --- a/flow-typed/npm/async_vx.x.x.js +++ /dev/null @@ -1,941 +0,0 @@ -// flow-typed signature: fdb182a8f4846b6e690535832d2a145d -// flow-typed version: <>/async_v^3.2.0/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'async' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'async' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'async/all' { - declare module.exports: any; -} - -declare module 'async/allLimit' { - declare module.exports: any; -} - -declare module 'async/allSeries' { - declare module.exports: any; -} - -declare module 'async/any' { - declare module.exports: any; -} - -declare module 'async/anyLimit' { - declare module.exports: any; -} - -declare module 'async/anySeries' { - declare module.exports: any; -} - -declare module 'async/apply' { - declare module.exports: any; -} - -declare module 'async/applyEach' { - declare module.exports: any; -} - -declare module 'async/applyEachSeries' { - declare module.exports: any; -} - -declare module 'async/asyncify' { - declare module.exports: any; -} - -declare module 'async/auto' { - declare module.exports: any; -} - -declare module 'async/autoInject' { - declare module.exports: any; -} - -declare module 'async/cargo' { - declare module.exports: any; -} - -declare module 'async/cargoQueue' { - declare module.exports: any; -} - -declare module 'async/compose' { - declare module.exports: any; -} - -declare module 'async/concat' { - declare module.exports: any; -} - -declare module 'async/concatLimit' { - declare module.exports: any; -} - -declare module 'async/concatSeries' { - declare module.exports: any; -} - -declare module 'async/constant' { - declare module.exports: any; -} - -declare module 'async/detect' { - declare module.exports: any; -} - -declare module 'async/detectLimit' { - declare module.exports: any; -} - -declare module 'async/detectSeries' { - declare module.exports: any; -} - -declare module 'async/dir' { - declare module.exports: any; -} - -declare module 'async/dist/async' { - declare module.exports: any; -} - -declare module 'async/dist/async.min' { - declare module.exports: any; -} - -declare module 'async/doDuring' { - declare module.exports: any; -} - -declare module 'async/doUntil' { - declare module.exports: any; -} - -declare module 'async/doWhilst' { - declare module.exports: any; -} - -declare module 'async/during' { - declare module.exports: any; -} - -declare module 'async/each' { - declare module.exports: any; -} - -declare module 'async/eachLimit' { - declare module.exports: any; -} - -declare module 'async/eachOf' { - declare module.exports: any; -} - -declare module 'async/eachOfLimit' { - declare module.exports: any; -} - -declare module 'async/eachOfSeries' { - declare module.exports: any; -} - -declare module 'async/eachSeries' { - declare module.exports: any; -} - -declare module 'async/ensureAsync' { - declare module.exports: any; -} - -declare module 'async/every' { - declare module.exports: any; -} - -declare module 'async/everyLimit' { - declare module.exports: any; -} - -declare module 'async/everySeries' { - declare module.exports: any; -} - -declare module 'async/filter' { - declare module.exports: any; -} - -declare module 'async/filterLimit' { - declare module.exports: any; -} - -declare module 'async/filterSeries' { - declare module.exports: any; -} - -declare module 'async/find' { - declare module.exports: any; -} - -declare module 'async/findLimit' { - declare module.exports: any; -} - -declare module 'async/findSeries' { - declare module.exports: any; -} - -declare module 'async/flatMap' { - declare module.exports: any; -} - -declare module 'async/flatMapLimit' { - declare module.exports: any; -} - -declare module 'async/flatMapSeries' { - declare module.exports: any; -} - -declare module 'async/foldl' { - declare module.exports: any; -} - -declare module 'async/foldr' { - declare module.exports: any; -} - -declare module 'async/forEach' { - declare module.exports: any; -} - -declare module 'async/forEachLimit' { - declare module.exports: any; -} - -declare module 'async/forEachOf' { - declare module.exports: any; -} - -declare module 'async/forEachOfLimit' { - declare module.exports: any; -} - -declare module 'async/forEachOfSeries' { - declare module.exports: any; -} - -declare module 'async/forEachSeries' { - declare module.exports: any; -} - -declare module 'async/forever' { - declare module.exports: any; -} - -declare module 'async/groupBy' { - declare module.exports: any; -} - -declare module 'async/groupByLimit' { - declare module.exports: any; -} - -declare module 'async/groupBySeries' { - declare module.exports: any; -} - -declare module 'async/inject' { - declare module.exports: any; -} - -declare module 'async/internal/applyEach' { - declare module.exports: any; -} - -declare module 'async/internal/asyncEachOfLimit' { - declare module.exports: any; -} - -declare module 'async/internal/awaitify' { - declare module.exports: any; -} - -declare module 'async/internal/breakLoop' { - declare module.exports: any; -} - -declare module 'async/internal/consoleFunc' { - declare module.exports: any; -} - -declare module 'async/internal/createTester' { - declare module.exports: any; -} - -declare module 'async/internal/DoublyLinkedList' { - declare module.exports: any; -} - -declare module 'async/internal/eachOfLimit' { - declare module.exports: any; -} - -declare module 'async/internal/filter' { - declare module.exports: any; -} - -declare module 'async/internal/getIterator' { - declare module.exports: any; -} - -declare module 'async/internal/Heap' { - declare module.exports: any; -} - -declare module 'async/internal/initialParams' { - declare module.exports: any; -} - -declare module 'async/internal/isArrayLike' { - declare module.exports: any; -} - -declare module 'async/internal/iterator' { - declare module.exports: any; -} - -declare module 'async/internal/map' { - declare module.exports: any; -} - -declare module 'async/internal/once' { - declare module.exports: any; -} - -declare module 'async/internal/onlyOnce' { - declare module.exports: any; -} - -declare module 'async/internal/parallel' { - declare module.exports: any; -} - -declare module 'async/internal/promiseCallback' { - declare module.exports: any; -} - -declare module 'async/internal/queue' { - declare module.exports: any; -} - -declare module 'async/internal/range' { - declare module.exports: any; -} - -declare module 'async/internal/reject' { - declare module.exports: any; -} - -declare module 'async/internal/setImmediate' { - declare module.exports: any; -} - -declare module 'async/internal/withoutIndex' { - declare module.exports: any; -} - -declare module 'async/internal/wrapAsync' { - declare module.exports: any; -} - -declare module 'async/log' { - declare module.exports: any; -} - -declare module 'async/map' { - declare module.exports: any; -} - -declare module 'async/mapLimit' { - declare module.exports: any; -} - -declare module 'async/mapSeries' { - declare module.exports: any; -} - -declare module 'async/mapValues' { - declare module.exports: any; -} - -declare module 'async/mapValuesLimit' { - declare module.exports: any; -} - -declare module 'async/mapValuesSeries' { - declare module.exports: any; -} - -declare module 'async/memoize' { - declare module.exports: any; -} - -declare module 'async/nextTick' { - declare module.exports: any; -} - -declare module 'async/parallel' { - declare module.exports: any; -} - -declare module 'async/parallelLimit' { - declare module.exports: any; -} - -declare module 'async/priorityQueue' { - declare module.exports: any; -} - -declare module 'async/queue' { - declare module.exports: any; -} - -declare module 'async/race' { - declare module.exports: any; -} - -declare module 'async/reduce' { - declare module.exports: any; -} - -declare module 'async/reduceRight' { - declare module.exports: any; -} - -declare module 'async/reflect' { - declare module.exports: any; -} - -declare module 'async/reflectAll' { - declare module.exports: any; -} - -declare module 'async/reject' { - declare module.exports: any; -} - -declare module 'async/rejectLimit' { - declare module.exports: any; -} - -declare module 'async/rejectSeries' { - declare module.exports: any; -} - -declare module 'async/retry' { - declare module.exports: any; -} - -declare module 'async/retryable' { - declare module.exports: any; -} - -declare module 'async/select' { - declare module.exports: any; -} - -declare module 'async/selectLimit' { - declare module.exports: any; -} - -declare module 'async/selectSeries' { - declare module.exports: any; -} - -declare module 'async/seq' { - declare module.exports: any; -} - -declare module 'async/series' { - declare module.exports: any; -} - -declare module 'async/setImmediate' { - declare module.exports: any; -} - -declare module 'async/some' { - declare module.exports: any; -} - -declare module 'async/someLimit' { - declare module.exports: any; -} - -declare module 'async/someSeries' { - declare module.exports: any; -} - -declare module 'async/sortBy' { - declare module.exports: any; -} - -declare module 'async/timeout' { - declare module.exports: any; -} - -declare module 'async/times' { - declare module.exports: any; -} - -declare module 'async/timesLimit' { - declare module.exports: any; -} - -declare module 'async/timesSeries' { - declare module.exports: any; -} - -declare module 'async/transform' { - declare module.exports: any; -} - -declare module 'async/tryEach' { - declare module.exports: any; -} - -declare module 'async/unmemoize' { - declare module.exports: any; -} - -declare module 'async/until' { - declare module.exports: any; -} - -declare module 'async/waterfall' { - declare module.exports: any; -} - -declare module 'async/whilst' { - declare module.exports: any; -} - -declare module 'async/wrapSync' { - declare module.exports: any; -} - -// Filename aliases -declare module 'async/all.js' { - declare module.exports: $Exports<'async/all'>; -} -declare module 'async/allLimit.js' { - declare module.exports: $Exports<'async/allLimit'>; -} -declare module 'async/allSeries.js' { - declare module.exports: $Exports<'async/allSeries'>; -} -declare module 'async/any.js' { - declare module.exports: $Exports<'async/any'>; -} -declare module 'async/anyLimit.js' { - declare module.exports: $Exports<'async/anyLimit'>; -} -declare module 'async/anySeries.js' { - declare module.exports: $Exports<'async/anySeries'>; -} -declare module 'async/apply.js' { - declare module.exports: $Exports<'async/apply'>; -} -declare module 'async/applyEach.js' { - declare module.exports: $Exports<'async/applyEach'>; -} -declare module 'async/applyEachSeries.js' { - declare module.exports: $Exports<'async/applyEachSeries'>; -} -declare module 'async/asyncify.js' { - declare module.exports: $Exports<'async/asyncify'>; -} -declare module 'async/auto.js' { - declare module.exports: $Exports<'async/auto'>; -} -declare module 'async/autoInject.js' { - declare module.exports: $Exports<'async/autoInject'>; -} -declare module 'async/cargo.js' { - declare module.exports: $Exports<'async/cargo'>; -} -declare module 'async/cargoQueue.js' { - declare module.exports: $Exports<'async/cargoQueue'>; -} -declare module 'async/compose.js' { - declare module.exports: $Exports<'async/compose'>; -} -declare module 'async/concat.js' { - declare module.exports: $Exports<'async/concat'>; -} -declare module 'async/concatLimit.js' { - declare module.exports: $Exports<'async/concatLimit'>; -} -declare module 'async/concatSeries.js' { - declare module.exports: $Exports<'async/concatSeries'>; -} -declare module 'async/constant.js' { - declare module.exports: $Exports<'async/constant'>; -} -declare module 'async/detect.js' { - declare module.exports: $Exports<'async/detect'>; -} -declare module 'async/detectLimit.js' { - declare module.exports: $Exports<'async/detectLimit'>; -} -declare module 'async/detectSeries.js' { - declare module.exports: $Exports<'async/detectSeries'>; -} -declare module 'async/dir.js' { - declare module.exports: $Exports<'async/dir'>; -} -declare module 'async/dist/async.js' { - declare module.exports: $Exports<'async/dist/async'>; -} -declare module 'async/dist/async.min.js' { - declare module.exports: $Exports<'async/dist/async.min'>; -} -declare module 'async/doDuring.js' { - declare module.exports: $Exports<'async/doDuring'>; -} -declare module 'async/doUntil.js' { - declare module.exports: $Exports<'async/doUntil'>; -} -declare module 'async/doWhilst.js' { - declare module.exports: $Exports<'async/doWhilst'>; -} -declare module 'async/during.js' { - declare module.exports: $Exports<'async/during'>; -} -declare module 'async/each.js' { - declare module.exports: $Exports<'async/each'>; -} -declare module 'async/eachLimit.js' { - declare module.exports: $Exports<'async/eachLimit'>; -} -declare module 'async/eachOf.js' { - declare module.exports: $Exports<'async/eachOf'>; -} -declare module 'async/eachOfLimit.js' { - declare module.exports: $Exports<'async/eachOfLimit'>; -} -declare module 'async/eachOfSeries.js' { - declare module.exports: $Exports<'async/eachOfSeries'>; -} -declare module 'async/eachSeries.js' { - declare module.exports: $Exports<'async/eachSeries'>; -} -declare module 'async/ensureAsync.js' { - declare module.exports: $Exports<'async/ensureAsync'>; -} -declare module 'async/every.js' { - declare module.exports: $Exports<'async/every'>; -} -declare module 'async/everyLimit.js' { - declare module.exports: $Exports<'async/everyLimit'>; -} -declare module 'async/everySeries.js' { - declare module.exports: $Exports<'async/everySeries'>; -} -declare module 'async/filter.js' { - declare module.exports: $Exports<'async/filter'>; -} -declare module 'async/filterLimit.js' { - declare module.exports: $Exports<'async/filterLimit'>; -} -declare module 'async/filterSeries.js' { - declare module.exports: $Exports<'async/filterSeries'>; -} -declare module 'async/find.js' { - declare module.exports: $Exports<'async/find'>; -} -declare module 'async/findLimit.js' { - declare module.exports: $Exports<'async/findLimit'>; -} -declare module 'async/findSeries.js' { - declare module.exports: $Exports<'async/findSeries'>; -} -declare module 'async/flatMap.js' { - declare module.exports: $Exports<'async/flatMap'>; -} -declare module 'async/flatMapLimit.js' { - declare module.exports: $Exports<'async/flatMapLimit'>; -} -declare module 'async/flatMapSeries.js' { - declare module.exports: $Exports<'async/flatMapSeries'>; -} -declare module 'async/foldl.js' { - declare module.exports: $Exports<'async/foldl'>; -} -declare module 'async/foldr.js' { - declare module.exports: $Exports<'async/foldr'>; -} -declare module 'async/forEach.js' { - declare module.exports: $Exports<'async/forEach'>; -} -declare module 'async/forEachLimit.js' { - declare module.exports: $Exports<'async/forEachLimit'>; -} -declare module 'async/forEachOf.js' { - declare module.exports: $Exports<'async/forEachOf'>; -} -declare module 'async/forEachOfLimit.js' { - declare module.exports: $Exports<'async/forEachOfLimit'>; -} -declare module 'async/forEachOfSeries.js' { - declare module.exports: $Exports<'async/forEachOfSeries'>; -} -declare module 'async/forEachSeries.js' { - declare module.exports: $Exports<'async/forEachSeries'>; -} -declare module 'async/forever.js' { - declare module.exports: $Exports<'async/forever'>; -} -declare module 'async/groupBy.js' { - declare module.exports: $Exports<'async/groupBy'>; -} -declare module 'async/groupByLimit.js' { - declare module.exports: $Exports<'async/groupByLimit'>; -} -declare module 'async/groupBySeries.js' { - declare module.exports: $Exports<'async/groupBySeries'>; -} -declare module 'async/index' { - declare module.exports: $Exports<'async'>; -} -declare module 'async/index.js' { - declare module.exports: $Exports<'async'>; -} -declare module 'async/inject.js' { - declare module.exports: $Exports<'async/inject'>; -} -declare module 'async/internal/applyEach.js' { - declare module.exports: $Exports<'async/internal/applyEach'>; -} -declare module 'async/internal/asyncEachOfLimit.js' { - declare module.exports: $Exports<'async/internal/asyncEachOfLimit'>; -} -declare module 'async/internal/awaitify.js' { - declare module.exports: $Exports<'async/internal/awaitify'>; -} -declare module 'async/internal/breakLoop.js' { - declare module.exports: $Exports<'async/internal/breakLoop'>; -} -declare module 'async/internal/consoleFunc.js' { - declare module.exports: $Exports<'async/internal/consoleFunc'>; -} -declare module 'async/internal/createTester.js' { - declare module.exports: $Exports<'async/internal/createTester'>; -} -declare module 'async/internal/DoublyLinkedList.js' { - declare module.exports: $Exports<'async/internal/DoublyLinkedList'>; -} -declare module 'async/internal/eachOfLimit.js' { - declare module.exports: $Exports<'async/internal/eachOfLimit'>; -} -declare module 'async/internal/filter.js' { - declare module.exports: $Exports<'async/internal/filter'>; -} -declare module 'async/internal/getIterator.js' { - declare module.exports: $Exports<'async/internal/getIterator'>; -} -declare module 'async/internal/Heap.js' { - declare module.exports: $Exports<'async/internal/Heap'>; -} -declare module 'async/internal/initialParams.js' { - declare module.exports: $Exports<'async/internal/initialParams'>; -} -declare module 'async/internal/isArrayLike.js' { - declare module.exports: $Exports<'async/internal/isArrayLike'>; -} -declare module 'async/internal/iterator.js' { - declare module.exports: $Exports<'async/internal/iterator'>; -} -declare module 'async/internal/map.js' { - declare module.exports: $Exports<'async/internal/map'>; -} -declare module 'async/internal/once.js' { - declare module.exports: $Exports<'async/internal/once'>; -} -declare module 'async/internal/onlyOnce.js' { - declare module.exports: $Exports<'async/internal/onlyOnce'>; -} -declare module 'async/internal/parallel.js' { - declare module.exports: $Exports<'async/internal/parallel'>; -} -declare module 'async/internal/promiseCallback.js' { - declare module.exports: $Exports<'async/internal/promiseCallback'>; -} -declare module 'async/internal/queue.js' { - declare module.exports: $Exports<'async/internal/queue'>; -} -declare module 'async/internal/range.js' { - declare module.exports: $Exports<'async/internal/range'>; -} -declare module 'async/internal/reject.js' { - declare module.exports: $Exports<'async/internal/reject'>; -} -declare module 'async/internal/setImmediate.js' { - declare module.exports: $Exports<'async/internal/setImmediate'>; -} -declare module 'async/internal/withoutIndex.js' { - declare module.exports: $Exports<'async/internal/withoutIndex'>; -} -declare module 'async/internal/wrapAsync.js' { - declare module.exports: $Exports<'async/internal/wrapAsync'>; -} -declare module 'async/log.js' { - declare module.exports: $Exports<'async/log'>; -} -declare module 'async/map.js' { - declare module.exports: $Exports<'async/map'>; -} -declare module 'async/mapLimit.js' { - declare module.exports: $Exports<'async/mapLimit'>; -} -declare module 'async/mapSeries.js' { - declare module.exports: $Exports<'async/mapSeries'>; -} -declare module 'async/mapValues.js' { - declare module.exports: $Exports<'async/mapValues'>; -} -declare module 'async/mapValuesLimit.js' { - declare module.exports: $Exports<'async/mapValuesLimit'>; -} -declare module 'async/mapValuesSeries.js' { - declare module.exports: $Exports<'async/mapValuesSeries'>; -} -declare module 'async/memoize.js' { - declare module.exports: $Exports<'async/memoize'>; -} -declare module 'async/nextTick.js' { - declare module.exports: $Exports<'async/nextTick'>; -} -declare module 'async/parallel.js' { - declare module.exports: $Exports<'async/parallel'>; -} -declare module 'async/parallelLimit.js' { - declare module.exports: $Exports<'async/parallelLimit'>; -} -declare module 'async/priorityQueue.js' { - declare module.exports: $Exports<'async/priorityQueue'>; -} -declare module 'async/queue.js' { - declare module.exports: $Exports<'async/queue'>; -} -declare module 'async/race.js' { - declare module.exports: $Exports<'async/race'>; -} -declare module 'async/reduce.js' { - declare module.exports: $Exports<'async/reduce'>; -} -declare module 'async/reduceRight.js' { - declare module.exports: $Exports<'async/reduceRight'>; -} -declare module 'async/reflect.js' { - declare module.exports: $Exports<'async/reflect'>; -} -declare module 'async/reflectAll.js' { - declare module.exports: $Exports<'async/reflectAll'>; -} -declare module 'async/reject.js' { - declare module.exports: $Exports<'async/reject'>; -} -declare module 'async/rejectLimit.js' { - declare module.exports: $Exports<'async/rejectLimit'>; -} -declare module 'async/rejectSeries.js' { - declare module.exports: $Exports<'async/rejectSeries'>; -} -declare module 'async/retry.js' { - declare module.exports: $Exports<'async/retry'>; -} -declare module 'async/retryable.js' { - declare module.exports: $Exports<'async/retryable'>; -} -declare module 'async/select.js' { - declare module.exports: $Exports<'async/select'>; -} -declare module 'async/selectLimit.js' { - declare module.exports: $Exports<'async/selectLimit'>; -} -declare module 'async/selectSeries.js' { - declare module.exports: $Exports<'async/selectSeries'>; -} -declare module 'async/seq.js' { - declare module.exports: $Exports<'async/seq'>; -} -declare module 'async/series.js' { - declare module.exports: $Exports<'async/series'>; -} -declare module 'async/setImmediate.js' { - declare module.exports: $Exports<'async/setImmediate'>; -} -declare module 'async/some.js' { - declare module.exports: $Exports<'async/some'>; -} -declare module 'async/someLimit.js' { - declare module.exports: $Exports<'async/someLimit'>; -} -declare module 'async/someSeries.js' { - declare module.exports: $Exports<'async/someSeries'>; -} -declare module 'async/sortBy.js' { - declare module.exports: $Exports<'async/sortBy'>; -} -declare module 'async/timeout.js' { - declare module.exports: $Exports<'async/timeout'>; -} -declare module 'async/times.js' { - declare module.exports: $Exports<'async/times'>; -} -declare module 'async/timesLimit.js' { - declare module.exports: $Exports<'async/timesLimit'>; -} -declare module 'async/timesSeries.js' { - declare module.exports: $Exports<'async/timesSeries'>; -} -declare module 'async/transform.js' { - declare module.exports: $Exports<'async/transform'>; -} -declare module 'async/tryEach.js' { - declare module.exports: $Exports<'async/tryEach'>; -} -declare module 'async/unmemoize.js' { - declare module.exports: $Exports<'async/unmemoize'>; -} -declare module 'async/until.js' { - declare module.exports: $Exports<'async/until'>; -} -declare module 'async/waterfall.js' { - declare module.exports: $Exports<'async/waterfall'>; -} -declare module 'async/whilst.js' { - declare module.exports: $Exports<'async/whilst'>; -} -declare module 'async/wrapSync.js' { - declare module.exports: $Exports<'async/wrapSync'>; -} diff --git a/flow-typed/npm/aws-sdk_vx.x.x.js b/flow-typed/npm/aws-sdk_vx.x.x.js deleted file mode 100644 index 494297fc4..000000000 --- a/flow-typed/npm/aws-sdk_vx.x.x.js +++ /dev/null @@ -1,2724 +0,0 @@ -// flow-typed signature: 590b9d4ee8be4299bb7645477811b57d -// flow-typed version: <>/aws-sdk_v^2.616.0/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'aws-sdk' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'aws-sdk' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'aws-sdk/browser' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/accessanalyzer' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/acm' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/acmpca' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/alexaforbusiness' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/all' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/amplify' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/apigateway' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/apigatewaymanagementapi' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/apigatewayv2' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/appconfig' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/applicationautoscaling' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/applicationinsights' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/appmesh' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/appstream' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/appsync' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/athena' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/augmentedairuntime' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/autoscaling' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/autoscalingplans' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/backup' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/batch' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/browser_default' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/budgets' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/chime' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/cloud9' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/clouddirectory' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/cloudformation' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/cloudfront' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/cloudhsm' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/cloudhsmv2' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/cloudsearch' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/cloudsearchdomain' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/cloudtrail' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/cloudwatch' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/cloudwatchevents' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/cloudwatchlogs' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/codeartifact' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/codebuild' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/codecommit' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/codedeploy' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/codeguruprofiler' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/codegurureviewer' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/codepipeline' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/codestar' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/codestarconnections' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/codestarnotifications' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/cognitoidentity' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/cognitoidentityserviceprovider' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/cognitosync' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/comprehend' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/comprehendmedical' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/computeoptimizer' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/configservice' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/connect' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/connectparticipant' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/costexplorer' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/cur' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/dataexchange' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/datapipeline' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/datasync' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/dax' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/detective' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/devicefarm' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/directconnect' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/directoryservice' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/discovery' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/dlm' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/dms' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/docdb' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/dynamodb' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/dynamodbstreams' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/ebs' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/ec2' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/ec2instanceconnect' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/ecr' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/ecs' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/efs' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/eks' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/elasticache' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/elasticbeanstalk' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/elasticinference' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/elastictranscoder' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/elb' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/elbv2' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/emr' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/es' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/eventbridge' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/firehose' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/fms' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/forecastqueryservice' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/forecastservice' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/frauddetector' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/fsx' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/gamelift' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/glacier' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/globalaccelerator' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/glue' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/greengrass' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/groundstation' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/guardduty' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/health' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/honeycode' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/iam' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/imagebuilder' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/importexport' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/inspector' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/iot' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/iot1clickdevicesservice' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/iot1clickprojects' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/iotanalytics' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/iotdata' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/iotevents' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/ioteventsdata' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/iotjobsdataplane' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/iotsecuretunneling' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/iotsitewise' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/iotthingsgraph' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/ivs' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/kafka' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/kendra' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/kinesis' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/kinesisanalytics' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/kinesisanalyticsv2' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/kinesisvideo' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/kinesisvideoarchivedmedia' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/kinesisvideomedia' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/kinesisvideosignalingchannels' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/kms' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/lakeformation' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/lambda' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/lexmodelbuildingservice' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/lexruntime' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/licensemanager' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/lightsail' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/machinelearning' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/macie' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/macie2' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/managedblockchain' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/marketplacecatalog' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/marketplacecommerceanalytics' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/marketplaceentitlementservice' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/marketplacemetering' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/mediaconnect' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/mediaconvert' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/medialive' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/mediapackage' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/mediapackagevod' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/mediastore' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/mediastoredata' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/mediatailor' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/migrationhub' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/migrationhubconfig' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/mobile' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/mobileanalytics' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/mq' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/mturk' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/neptune' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/networkmanager' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/opsworks' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/opsworkscm' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/organizations' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/outposts' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/personalize' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/personalizeevents' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/personalizeruntime' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/pi' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/pinpoint' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/pinpointemail' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/pinpointsmsvoice' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/polly' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/pricing' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/qldb' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/qldbsession' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/quicksight' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/ram' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/rds' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/rdsdataservice' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/redshift' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/rekognition' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/resourcegroups' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/resourcegroupstaggingapi' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/robomaker' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/route53' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/route53domains' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/route53resolver' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/s3' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/s3control' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/sagemaker' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/sagemakerruntime' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/savingsplans' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/schemas' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/secretsmanager' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/securityhub' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/serverlessapplicationrepository' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/servicecatalog' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/servicediscovery' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/servicequotas' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/ses' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/sesv2' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/shield' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/signer' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/simpledb' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/sms' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/snowball' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/sns' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/sqs' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/ssm' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/sso' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/ssooidc' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/stepfunctions' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/storagegateway' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/sts' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/support' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/swf' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/synthetics' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/textract' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/transcribeservice' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/transfer' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/translate' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/waf' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/wafregional' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/wafv2' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/workdocs' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/worklink' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/workmail' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/workmailmessageflow' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/workspaces' { - declare module.exports: any; -} - -declare module 'aws-sdk/clients/xray' { - declare module.exports: any; -} - -declare module 'aws-sdk/dist-tools/browser-builder' { - declare module.exports: any; -} - -declare module 'aws-sdk/dist-tools/client-creator' { - declare module.exports: any; -} - -declare module 'aws-sdk/dist-tools/create-all-services' { - declare module.exports: any; -} - -declare module 'aws-sdk/dist-tools/service-collector' { - declare module.exports: any; -} - -declare module 'aws-sdk/dist-tools/transform' { - declare module.exports: any; -} - -declare module 'aws-sdk/dist-tools/webpack.config.rn-core' { - declare module.exports: any; -} - -declare module 'aws-sdk/dist-tools/webpack.config.rn-dep' { - declare module.exports: any; -} - -declare module 'aws-sdk/dist-tools/webpack.config.rn' { - declare module.exports: any; -} - -declare module 'aws-sdk/dist/aws-sdk-core-react-native' { - declare module.exports: any; -} - -declare module 'aws-sdk/dist/aws-sdk-react-native' { - declare module.exports: any; -} - -declare module 'aws-sdk/dist/aws-sdk' { - declare module.exports: any; -} - -declare module 'aws-sdk/dist/aws-sdk.min' { - declare module.exports: any; -} - -declare module 'aws-sdk/dist/xml2js' { - declare module.exports: any; -} - -declare module 'aws-sdk/global' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/api_loader' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/aws' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/browser_loader' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/browser' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/browserCryptoLib' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/browserHashUtils' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/browserHmac' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/browserMd5' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/browserSha1' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/browserSha256' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/cloudfront/signer' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/config_regional_endpoint' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/config' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/core' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/credentials' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/credentials/chainable_temporary_credentials' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/credentials/cognito_identity_credentials' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/credentials/credential_provider_chain' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/credentials/ec2_metadata_credentials' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/credentials/ecs_credentials' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/credentials/environment_credentials' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/credentials/file_system_credentials' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/credentials/process_credentials' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/credentials/remote_credentials' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/credentials/saml_credentials' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/credentials/shared_ini_file_credentials' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/credentials/temporary_credentials' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/credentials/token_file_web_identity_credentials' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/credentials/web_identity_credentials' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/discover_endpoint' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/dynamodb/converter' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/dynamodb/document_client' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/dynamodb/numberValue' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/dynamodb/set' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/dynamodb/translator' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/dynamodb/types' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/empty' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/event_listeners' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/event-stream/buffered-create-event-stream' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/event-stream/build-message' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/event-stream/event-message-chunker-stream' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/event-stream/event-message-chunker' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/event-stream/event-message-unmarshaller-stream' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/event-stream/int64' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/event-stream/parse-event' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/event-stream/parse-message' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/event-stream/split-message' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/event-stream/streaming-create-event-stream' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/http' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/http/node' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/http/xhr' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/json/builder' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/json/parser' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/metadata_service' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/model/api' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/model/collection' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/model/operation' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/model/paginator' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/model/resource_waiter' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/model/shape' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/node_loader' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/param_validator' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/polly/presigner' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/protocol/helpers' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/protocol/json' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/protocol/query' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/protocol/rest_json' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/protocol/rest_xml' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/protocol/rest' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/publisher/configuration' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/publisher' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/query/query_param_serializer' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/rds/signer' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/react-native-loader' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/react-native/add-content-type' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/realclock/browserClock' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/realclock/nodeClock' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/region_config' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/request' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/resource_waiter' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/response' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/s3/managed_upload' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/sequential_executor' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/service' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/services/apigateway' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/services/cloudfront' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/services/cloudsearchdomain' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/services/cognitoidentity' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/services/dynamodb' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/services/ec2' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/services/glacier' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/services/iotdata' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/services/lambda' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/services/machinelearning' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/services/polly' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/services/rds' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/services/rdsdataservice' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/services/route53' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/services/s3' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/services/s3control' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/services/sqs' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/services/sts' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/services/swf' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/shared-ini' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/shared-ini/ini-loader' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/signers/presign' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/signers/request_signer' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/signers/s3' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/signers/v2' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/signers/v3' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/signers/v3https' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/signers/v4_credentials' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/signers/v4' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/state_machine' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/util' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/xml/browser_parser' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/xml/builder' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/xml/escape-attribute' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/xml/escape-element' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/xml/node_parser' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/xml/xml-node' { - declare module.exports: any; -} - -declare module 'aws-sdk/lib/xml/xml-text' { - declare module.exports: any; -} - -declare module 'aws-sdk/react-native' { - declare module.exports: any; -} - -declare module 'aws-sdk/scripts/changelog/add-change' { - declare module.exports: any; -} - -declare module 'aws-sdk/scripts/changelog/change-creator' { - declare module.exports: any; -} - -declare module 'aws-sdk/scripts/changelog/util' { - declare module.exports: any; -} - -declare module 'aws-sdk/scripts/composite-test' { - declare module.exports: any; -} - -declare module 'aws-sdk/scripts/lib/get-operation-shape-names' { - declare module.exports: any; -} - -declare module 'aws-sdk/scripts/lib/prune-shapes' { - declare module.exports: any; -} - -declare module 'aws-sdk/scripts/lib/remove-event-stream-ops' { - declare module.exports: any; -} - -declare module 'aws-sdk/scripts/lib/test-helper' { - declare module.exports: any; -} - -declare module 'aws-sdk/scripts/lib/translator' { - declare module.exports: any; -} - -declare module 'aws-sdk/scripts/lib/ts-generator' { - declare module.exports: any; -} - -declare module 'aws-sdk/scripts/lib/visit-related-shape-names' { - declare module.exports: any; -} - -declare module 'aws-sdk/scripts/region-checker/allowlist' { - declare module.exports: any; -} - -declare module 'aws-sdk/scripts/region-checker' { - declare module.exports: any; -} - -declare module 'aws-sdk/scripts/services-table-generator' { - declare module.exports: any; -} - -declare module 'aws-sdk/scripts/typings-generator' { - declare module.exports: any; -} - -declare module 'aws-sdk/vendor/endpoint-cache' { - declare module.exports: any; -} - -declare module 'aws-sdk/vendor/endpoint-cache/utils/LRU' { - declare module.exports: any; -} - -// Filename aliases -declare module 'aws-sdk/browser.js' { - declare module.exports: $Exports<'aws-sdk/browser'>; -} -declare module 'aws-sdk/clients/accessanalyzer.js' { - declare module.exports: $Exports<'aws-sdk/clients/accessanalyzer'>; -} -declare module 'aws-sdk/clients/acm.js' { - declare module.exports: $Exports<'aws-sdk/clients/acm'>; -} -declare module 'aws-sdk/clients/acmpca.js' { - declare module.exports: $Exports<'aws-sdk/clients/acmpca'>; -} -declare module 'aws-sdk/clients/alexaforbusiness.js' { - declare module.exports: $Exports<'aws-sdk/clients/alexaforbusiness'>; -} -declare module 'aws-sdk/clients/all.js' { - declare module.exports: $Exports<'aws-sdk/clients/all'>; -} -declare module 'aws-sdk/clients/amplify.js' { - declare module.exports: $Exports<'aws-sdk/clients/amplify'>; -} -declare module 'aws-sdk/clients/apigateway.js' { - declare module.exports: $Exports<'aws-sdk/clients/apigateway'>; -} -declare module 'aws-sdk/clients/apigatewaymanagementapi.js' { - declare module.exports: $Exports<'aws-sdk/clients/apigatewaymanagementapi'>; -} -declare module 'aws-sdk/clients/apigatewayv2.js' { - declare module.exports: $Exports<'aws-sdk/clients/apigatewayv2'>; -} -declare module 'aws-sdk/clients/appconfig.js' { - declare module.exports: $Exports<'aws-sdk/clients/appconfig'>; -} -declare module 'aws-sdk/clients/applicationautoscaling.js' { - declare module.exports: $Exports<'aws-sdk/clients/applicationautoscaling'>; -} -declare module 'aws-sdk/clients/applicationinsights.js' { - declare module.exports: $Exports<'aws-sdk/clients/applicationinsights'>; -} -declare module 'aws-sdk/clients/appmesh.js' { - declare module.exports: $Exports<'aws-sdk/clients/appmesh'>; -} -declare module 'aws-sdk/clients/appstream.js' { - declare module.exports: $Exports<'aws-sdk/clients/appstream'>; -} -declare module 'aws-sdk/clients/appsync.js' { - declare module.exports: $Exports<'aws-sdk/clients/appsync'>; -} -declare module 'aws-sdk/clients/athena.js' { - declare module.exports: $Exports<'aws-sdk/clients/athena'>; -} -declare module 'aws-sdk/clients/augmentedairuntime.js' { - declare module.exports: $Exports<'aws-sdk/clients/augmentedairuntime'>; -} -declare module 'aws-sdk/clients/autoscaling.js' { - declare module.exports: $Exports<'aws-sdk/clients/autoscaling'>; -} -declare module 'aws-sdk/clients/autoscalingplans.js' { - declare module.exports: $Exports<'aws-sdk/clients/autoscalingplans'>; -} -declare module 'aws-sdk/clients/backup.js' { - declare module.exports: $Exports<'aws-sdk/clients/backup'>; -} -declare module 'aws-sdk/clients/batch.js' { - declare module.exports: $Exports<'aws-sdk/clients/batch'>; -} -declare module 'aws-sdk/clients/browser_default.js' { - declare module.exports: $Exports<'aws-sdk/clients/browser_default'>; -} -declare module 'aws-sdk/clients/budgets.js' { - declare module.exports: $Exports<'aws-sdk/clients/budgets'>; -} -declare module 'aws-sdk/clients/chime.js' { - declare module.exports: $Exports<'aws-sdk/clients/chime'>; -} -declare module 'aws-sdk/clients/cloud9.js' { - declare module.exports: $Exports<'aws-sdk/clients/cloud9'>; -} -declare module 'aws-sdk/clients/clouddirectory.js' { - declare module.exports: $Exports<'aws-sdk/clients/clouddirectory'>; -} -declare module 'aws-sdk/clients/cloudformation.js' { - declare module.exports: $Exports<'aws-sdk/clients/cloudformation'>; -} -declare module 'aws-sdk/clients/cloudfront.js' { - declare module.exports: $Exports<'aws-sdk/clients/cloudfront'>; -} -declare module 'aws-sdk/clients/cloudhsm.js' { - declare module.exports: $Exports<'aws-sdk/clients/cloudhsm'>; -} -declare module 'aws-sdk/clients/cloudhsmv2.js' { - declare module.exports: $Exports<'aws-sdk/clients/cloudhsmv2'>; -} -declare module 'aws-sdk/clients/cloudsearch.js' { - declare module.exports: $Exports<'aws-sdk/clients/cloudsearch'>; -} -declare module 'aws-sdk/clients/cloudsearchdomain.js' { - declare module.exports: $Exports<'aws-sdk/clients/cloudsearchdomain'>; -} -declare module 'aws-sdk/clients/cloudtrail.js' { - declare module.exports: $Exports<'aws-sdk/clients/cloudtrail'>; -} -declare module 'aws-sdk/clients/cloudwatch.js' { - declare module.exports: $Exports<'aws-sdk/clients/cloudwatch'>; -} -declare module 'aws-sdk/clients/cloudwatchevents.js' { - declare module.exports: $Exports<'aws-sdk/clients/cloudwatchevents'>; -} -declare module 'aws-sdk/clients/cloudwatchlogs.js' { - declare module.exports: $Exports<'aws-sdk/clients/cloudwatchlogs'>; -} -declare module 'aws-sdk/clients/codeartifact.js' { - declare module.exports: $Exports<'aws-sdk/clients/codeartifact'>; -} -declare module 'aws-sdk/clients/codebuild.js' { - declare module.exports: $Exports<'aws-sdk/clients/codebuild'>; -} -declare module 'aws-sdk/clients/codecommit.js' { - declare module.exports: $Exports<'aws-sdk/clients/codecommit'>; -} -declare module 'aws-sdk/clients/codedeploy.js' { - declare module.exports: $Exports<'aws-sdk/clients/codedeploy'>; -} -declare module 'aws-sdk/clients/codeguruprofiler.js' { - declare module.exports: $Exports<'aws-sdk/clients/codeguruprofiler'>; -} -declare module 'aws-sdk/clients/codegurureviewer.js' { - declare module.exports: $Exports<'aws-sdk/clients/codegurureviewer'>; -} -declare module 'aws-sdk/clients/codepipeline.js' { - declare module.exports: $Exports<'aws-sdk/clients/codepipeline'>; -} -declare module 'aws-sdk/clients/codestar.js' { - declare module.exports: $Exports<'aws-sdk/clients/codestar'>; -} -declare module 'aws-sdk/clients/codestarconnections.js' { - declare module.exports: $Exports<'aws-sdk/clients/codestarconnections'>; -} -declare module 'aws-sdk/clients/codestarnotifications.js' { - declare module.exports: $Exports<'aws-sdk/clients/codestarnotifications'>; -} -declare module 'aws-sdk/clients/cognitoidentity.js' { - declare module.exports: $Exports<'aws-sdk/clients/cognitoidentity'>; -} -declare module 'aws-sdk/clients/cognitoidentityserviceprovider.js' { - declare module.exports: $Exports<'aws-sdk/clients/cognitoidentityserviceprovider'>; -} -declare module 'aws-sdk/clients/cognitosync.js' { - declare module.exports: $Exports<'aws-sdk/clients/cognitosync'>; -} -declare module 'aws-sdk/clients/comprehend.js' { - declare module.exports: $Exports<'aws-sdk/clients/comprehend'>; -} -declare module 'aws-sdk/clients/comprehendmedical.js' { - declare module.exports: $Exports<'aws-sdk/clients/comprehendmedical'>; -} -declare module 'aws-sdk/clients/computeoptimizer.js' { - declare module.exports: $Exports<'aws-sdk/clients/computeoptimizer'>; -} -declare module 'aws-sdk/clients/configservice.js' { - declare module.exports: $Exports<'aws-sdk/clients/configservice'>; -} -declare module 'aws-sdk/clients/connect.js' { - declare module.exports: $Exports<'aws-sdk/clients/connect'>; -} -declare module 'aws-sdk/clients/connectparticipant.js' { - declare module.exports: $Exports<'aws-sdk/clients/connectparticipant'>; -} -declare module 'aws-sdk/clients/costexplorer.js' { - declare module.exports: $Exports<'aws-sdk/clients/costexplorer'>; -} -declare module 'aws-sdk/clients/cur.js' { - declare module.exports: $Exports<'aws-sdk/clients/cur'>; -} -declare module 'aws-sdk/clients/dataexchange.js' { - declare module.exports: $Exports<'aws-sdk/clients/dataexchange'>; -} -declare module 'aws-sdk/clients/datapipeline.js' { - declare module.exports: $Exports<'aws-sdk/clients/datapipeline'>; -} -declare module 'aws-sdk/clients/datasync.js' { - declare module.exports: $Exports<'aws-sdk/clients/datasync'>; -} -declare module 'aws-sdk/clients/dax.js' { - declare module.exports: $Exports<'aws-sdk/clients/dax'>; -} -declare module 'aws-sdk/clients/detective.js' { - declare module.exports: $Exports<'aws-sdk/clients/detective'>; -} -declare module 'aws-sdk/clients/devicefarm.js' { - declare module.exports: $Exports<'aws-sdk/clients/devicefarm'>; -} -declare module 'aws-sdk/clients/directconnect.js' { - declare module.exports: $Exports<'aws-sdk/clients/directconnect'>; -} -declare module 'aws-sdk/clients/directoryservice.js' { - declare module.exports: $Exports<'aws-sdk/clients/directoryservice'>; -} -declare module 'aws-sdk/clients/discovery.js' { - declare module.exports: $Exports<'aws-sdk/clients/discovery'>; -} -declare module 'aws-sdk/clients/dlm.js' { - declare module.exports: $Exports<'aws-sdk/clients/dlm'>; -} -declare module 'aws-sdk/clients/dms.js' { - declare module.exports: $Exports<'aws-sdk/clients/dms'>; -} -declare module 'aws-sdk/clients/docdb.js' { - declare module.exports: $Exports<'aws-sdk/clients/docdb'>; -} -declare module 'aws-sdk/clients/dynamodb.js' { - declare module.exports: $Exports<'aws-sdk/clients/dynamodb'>; -} -declare module 'aws-sdk/clients/dynamodbstreams.js' { - declare module.exports: $Exports<'aws-sdk/clients/dynamodbstreams'>; -} -declare module 'aws-sdk/clients/ebs.js' { - declare module.exports: $Exports<'aws-sdk/clients/ebs'>; -} -declare module 'aws-sdk/clients/ec2.js' { - declare module.exports: $Exports<'aws-sdk/clients/ec2'>; -} -declare module 'aws-sdk/clients/ec2instanceconnect.js' { - declare module.exports: $Exports<'aws-sdk/clients/ec2instanceconnect'>; -} -declare module 'aws-sdk/clients/ecr.js' { - declare module.exports: $Exports<'aws-sdk/clients/ecr'>; -} -declare module 'aws-sdk/clients/ecs.js' { - declare module.exports: $Exports<'aws-sdk/clients/ecs'>; -} -declare module 'aws-sdk/clients/efs.js' { - declare module.exports: $Exports<'aws-sdk/clients/efs'>; -} -declare module 'aws-sdk/clients/eks.js' { - declare module.exports: $Exports<'aws-sdk/clients/eks'>; -} -declare module 'aws-sdk/clients/elasticache.js' { - declare module.exports: $Exports<'aws-sdk/clients/elasticache'>; -} -declare module 'aws-sdk/clients/elasticbeanstalk.js' { - declare module.exports: $Exports<'aws-sdk/clients/elasticbeanstalk'>; -} -declare module 'aws-sdk/clients/elasticinference.js' { - declare module.exports: $Exports<'aws-sdk/clients/elasticinference'>; -} -declare module 'aws-sdk/clients/elastictranscoder.js' { - declare module.exports: $Exports<'aws-sdk/clients/elastictranscoder'>; -} -declare module 'aws-sdk/clients/elb.js' { - declare module.exports: $Exports<'aws-sdk/clients/elb'>; -} -declare module 'aws-sdk/clients/elbv2.js' { - declare module.exports: $Exports<'aws-sdk/clients/elbv2'>; -} -declare module 'aws-sdk/clients/emr.js' { - declare module.exports: $Exports<'aws-sdk/clients/emr'>; -} -declare module 'aws-sdk/clients/es.js' { - declare module.exports: $Exports<'aws-sdk/clients/es'>; -} -declare module 'aws-sdk/clients/eventbridge.js' { - declare module.exports: $Exports<'aws-sdk/clients/eventbridge'>; -} -declare module 'aws-sdk/clients/firehose.js' { - declare module.exports: $Exports<'aws-sdk/clients/firehose'>; -} -declare module 'aws-sdk/clients/fms.js' { - declare module.exports: $Exports<'aws-sdk/clients/fms'>; -} -declare module 'aws-sdk/clients/forecastqueryservice.js' { - declare module.exports: $Exports<'aws-sdk/clients/forecastqueryservice'>; -} -declare module 'aws-sdk/clients/forecastservice.js' { - declare module.exports: $Exports<'aws-sdk/clients/forecastservice'>; -} -declare module 'aws-sdk/clients/frauddetector.js' { - declare module.exports: $Exports<'aws-sdk/clients/frauddetector'>; -} -declare module 'aws-sdk/clients/fsx.js' { - declare module.exports: $Exports<'aws-sdk/clients/fsx'>; -} -declare module 'aws-sdk/clients/gamelift.js' { - declare module.exports: $Exports<'aws-sdk/clients/gamelift'>; -} -declare module 'aws-sdk/clients/glacier.js' { - declare module.exports: $Exports<'aws-sdk/clients/glacier'>; -} -declare module 'aws-sdk/clients/globalaccelerator.js' { - declare module.exports: $Exports<'aws-sdk/clients/globalaccelerator'>; -} -declare module 'aws-sdk/clients/glue.js' { - declare module.exports: $Exports<'aws-sdk/clients/glue'>; -} -declare module 'aws-sdk/clients/greengrass.js' { - declare module.exports: $Exports<'aws-sdk/clients/greengrass'>; -} -declare module 'aws-sdk/clients/groundstation.js' { - declare module.exports: $Exports<'aws-sdk/clients/groundstation'>; -} -declare module 'aws-sdk/clients/guardduty.js' { - declare module.exports: $Exports<'aws-sdk/clients/guardduty'>; -} -declare module 'aws-sdk/clients/health.js' { - declare module.exports: $Exports<'aws-sdk/clients/health'>; -} -declare module 'aws-sdk/clients/honeycode.js' { - declare module.exports: $Exports<'aws-sdk/clients/honeycode'>; -} -declare module 'aws-sdk/clients/iam.js' { - declare module.exports: $Exports<'aws-sdk/clients/iam'>; -} -declare module 'aws-sdk/clients/imagebuilder.js' { - declare module.exports: $Exports<'aws-sdk/clients/imagebuilder'>; -} -declare module 'aws-sdk/clients/importexport.js' { - declare module.exports: $Exports<'aws-sdk/clients/importexport'>; -} -declare module 'aws-sdk/clients/inspector.js' { - declare module.exports: $Exports<'aws-sdk/clients/inspector'>; -} -declare module 'aws-sdk/clients/iot.js' { - declare module.exports: $Exports<'aws-sdk/clients/iot'>; -} -declare module 'aws-sdk/clients/iot1clickdevicesservice.js' { - declare module.exports: $Exports<'aws-sdk/clients/iot1clickdevicesservice'>; -} -declare module 'aws-sdk/clients/iot1clickprojects.js' { - declare module.exports: $Exports<'aws-sdk/clients/iot1clickprojects'>; -} -declare module 'aws-sdk/clients/iotanalytics.js' { - declare module.exports: $Exports<'aws-sdk/clients/iotanalytics'>; -} -declare module 'aws-sdk/clients/iotdata.js' { - declare module.exports: $Exports<'aws-sdk/clients/iotdata'>; -} -declare module 'aws-sdk/clients/iotevents.js' { - declare module.exports: $Exports<'aws-sdk/clients/iotevents'>; -} -declare module 'aws-sdk/clients/ioteventsdata.js' { - declare module.exports: $Exports<'aws-sdk/clients/ioteventsdata'>; -} -declare module 'aws-sdk/clients/iotjobsdataplane.js' { - declare module.exports: $Exports<'aws-sdk/clients/iotjobsdataplane'>; -} -declare module 'aws-sdk/clients/iotsecuretunneling.js' { - declare module.exports: $Exports<'aws-sdk/clients/iotsecuretunneling'>; -} -declare module 'aws-sdk/clients/iotsitewise.js' { - declare module.exports: $Exports<'aws-sdk/clients/iotsitewise'>; -} -declare module 'aws-sdk/clients/iotthingsgraph.js' { - declare module.exports: $Exports<'aws-sdk/clients/iotthingsgraph'>; -} -declare module 'aws-sdk/clients/ivs.js' { - declare module.exports: $Exports<'aws-sdk/clients/ivs'>; -} -declare module 'aws-sdk/clients/kafka.js' { - declare module.exports: $Exports<'aws-sdk/clients/kafka'>; -} -declare module 'aws-sdk/clients/kendra.js' { - declare module.exports: $Exports<'aws-sdk/clients/kendra'>; -} -declare module 'aws-sdk/clients/kinesis.js' { - declare module.exports: $Exports<'aws-sdk/clients/kinesis'>; -} -declare module 'aws-sdk/clients/kinesisanalytics.js' { - declare module.exports: $Exports<'aws-sdk/clients/kinesisanalytics'>; -} -declare module 'aws-sdk/clients/kinesisanalyticsv2.js' { - declare module.exports: $Exports<'aws-sdk/clients/kinesisanalyticsv2'>; -} -declare module 'aws-sdk/clients/kinesisvideo.js' { - declare module.exports: $Exports<'aws-sdk/clients/kinesisvideo'>; -} -declare module 'aws-sdk/clients/kinesisvideoarchivedmedia.js' { - declare module.exports: $Exports<'aws-sdk/clients/kinesisvideoarchivedmedia'>; -} -declare module 'aws-sdk/clients/kinesisvideomedia.js' { - declare module.exports: $Exports<'aws-sdk/clients/kinesisvideomedia'>; -} -declare module 'aws-sdk/clients/kinesisvideosignalingchannels.js' { - declare module.exports: $Exports<'aws-sdk/clients/kinesisvideosignalingchannels'>; -} -declare module 'aws-sdk/clients/kms.js' { - declare module.exports: $Exports<'aws-sdk/clients/kms'>; -} -declare module 'aws-sdk/clients/lakeformation.js' { - declare module.exports: $Exports<'aws-sdk/clients/lakeformation'>; -} -declare module 'aws-sdk/clients/lambda.js' { - declare module.exports: $Exports<'aws-sdk/clients/lambda'>; -} -declare module 'aws-sdk/clients/lexmodelbuildingservice.js' { - declare module.exports: $Exports<'aws-sdk/clients/lexmodelbuildingservice'>; -} -declare module 'aws-sdk/clients/lexruntime.js' { - declare module.exports: $Exports<'aws-sdk/clients/lexruntime'>; -} -declare module 'aws-sdk/clients/licensemanager.js' { - declare module.exports: $Exports<'aws-sdk/clients/licensemanager'>; -} -declare module 'aws-sdk/clients/lightsail.js' { - declare module.exports: $Exports<'aws-sdk/clients/lightsail'>; -} -declare module 'aws-sdk/clients/machinelearning.js' { - declare module.exports: $Exports<'aws-sdk/clients/machinelearning'>; -} -declare module 'aws-sdk/clients/macie.js' { - declare module.exports: $Exports<'aws-sdk/clients/macie'>; -} -declare module 'aws-sdk/clients/macie2.js' { - declare module.exports: $Exports<'aws-sdk/clients/macie2'>; -} -declare module 'aws-sdk/clients/managedblockchain.js' { - declare module.exports: $Exports<'aws-sdk/clients/managedblockchain'>; -} -declare module 'aws-sdk/clients/marketplacecatalog.js' { - declare module.exports: $Exports<'aws-sdk/clients/marketplacecatalog'>; -} -declare module 'aws-sdk/clients/marketplacecommerceanalytics.js' { - declare module.exports: $Exports<'aws-sdk/clients/marketplacecommerceanalytics'>; -} -declare module 'aws-sdk/clients/marketplaceentitlementservice.js' { - declare module.exports: $Exports<'aws-sdk/clients/marketplaceentitlementservice'>; -} -declare module 'aws-sdk/clients/marketplacemetering.js' { - declare module.exports: $Exports<'aws-sdk/clients/marketplacemetering'>; -} -declare module 'aws-sdk/clients/mediaconnect.js' { - declare module.exports: $Exports<'aws-sdk/clients/mediaconnect'>; -} -declare module 'aws-sdk/clients/mediaconvert.js' { - declare module.exports: $Exports<'aws-sdk/clients/mediaconvert'>; -} -declare module 'aws-sdk/clients/medialive.js' { - declare module.exports: $Exports<'aws-sdk/clients/medialive'>; -} -declare module 'aws-sdk/clients/mediapackage.js' { - declare module.exports: $Exports<'aws-sdk/clients/mediapackage'>; -} -declare module 'aws-sdk/clients/mediapackagevod.js' { - declare module.exports: $Exports<'aws-sdk/clients/mediapackagevod'>; -} -declare module 'aws-sdk/clients/mediastore.js' { - declare module.exports: $Exports<'aws-sdk/clients/mediastore'>; -} -declare module 'aws-sdk/clients/mediastoredata.js' { - declare module.exports: $Exports<'aws-sdk/clients/mediastoredata'>; -} -declare module 'aws-sdk/clients/mediatailor.js' { - declare module.exports: $Exports<'aws-sdk/clients/mediatailor'>; -} -declare module 'aws-sdk/clients/migrationhub.js' { - declare module.exports: $Exports<'aws-sdk/clients/migrationhub'>; -} -declare module 'aws-sdk/clients/migrationhubconfig.js' { - declare module.exports: $Exports<'aws-sdk/clients/migrationhubconfig'>; -} -declare module 'aws-sdk/clients/mobile.js' { - declare module.exports: $Exports<'aws-sdk/clients/mobile'>; -} -declare module 'aws-sdk/clients/mobileanalytics.js' { - declare module.exports: $Exports<'aws-sdk/clients/mobileanalytics'>; -} -declare module 'aws-sdk/clients/mq.js' { - declare module.exports: $Exports<'aws-sdk/clients/mq'>; -} -declare module 'aws-sdk/clients/mturk.js' { - declare module.exports: $Exports<'aws-sdk/clients/mturk'>; -} -declare module 'aws-sdk/clients/neptune.js' { - declare module.exports: $Exports<'aws-sdk/clients/neptune'>; -} -declare module 'aws-sdk/clients/networkmanager.js' { - declare module.exports: $Exports<'aws-sdk/clients/networkmanager'>; -} -declare module 'aws-sdk/clients/opsworks.js' { - declare module.exports: $Exports<'aws-sdk/clients/opsworks'>; -} -declare module 'aws-sdk/clients/opsworkscm.js' { - declare module.exports: $Exports<'aws-sdk/clients/opsworkscm'>; -} -declare module 'aws-sdk/clients/organizations.js' { - declare module.exports: $Exports<'aws-sdk/clients/organizations'>; -} -declare module 'aws-sdk/clients/outposts.js' { - declare module.exports: $Exports<'aws-sdk/clients/outposts'>; -} -declare module 'aws-sdk/clients/personalize.js' { - declare module.exports: $Exports<'aws-sdk/clients/personalize'>; -} -declare module 'aws-sdk/clients/personalizeevents.js' { - declare module.exports: $Exports<'aws-sdk/clients/personalizeevents'>; -} -declare module 'aws-sdk/clients/personalizeruntime.js' { - declare module.exports: $Exports<'aws-sdk/clients/personalizeruntime'>; -} -declare module 'aws-sdk/clients/pi.js' { - declare module.exports: $Exports<'aws-sdk/clients/pi'>; -} -declare module 'aws-sdk/clients/pinpoint.js' { - declare module.exports: $Exports<'aws-sdk/clients/pinpoint'>; -} -declare module 'aws-sdk/clients/pinpointemail.js' { - declare module.exports: $Exports<'aws-sdk/clients/pinpointemail'>; -} -declare module 'aws-sdk/clients/pinpointsmsvoice.js' { - declare module.exports: $Exports<'aws-sdk/clients/pinpointsmsvoice'>; -} -declare module 'aws-sdk/clients/polly.js' { - declare module.exports: $Exports<'aws-sdk/clients/polly'>; -} -declare module 'aws-sdk/clients/pricing.js' { - declare module.exports: $Exports<'aws-sdk/clients/pricing'>; -} -declare module 'aws-sdk/clients/qldb.js' { - declare module.exports: $Exports<'aws-sdk/clients/qldb'>; -} -declare module 'aws-sdk/clients/qldbsession.js' { - declare module.exports: $Exports<'aws-sdk/clients/qldbsession'>; -} -declare module 'aws-sdk/clients/quicksight.js' { - declare module.exports: $Exports<'aws-sdk/clients/quicksight'>; -} -declare module 'aws-sdk/clients/ram.js' { - declare module.exports: $Exports<'aws-sdk/clients/ram'>; -} -declare module 'aws-sdk/clients/rds.js' { - declare module.exports: $Exports<'aws-sdk/clients/rds'>; -} -declare module 'aws-sdk/clients/rdsdataservice.js' { - declare module.exports: $Exports<'aws-sdk/clients/rdsdataservice'>; -} -declare module 'aws-sdk/clients/redshift.js' { - declare module.exports: $Exports<'aws-sdk/clients/redshift'>; -} -declare module 'aws-sdk/clients/rekognition.js' { - declare module.exports: $Exports<'aws-sdk/clients/rekognition'>; -} -declare module 'aws-sdk/clients/resourcegroups.js' { - declare module.exports: $Exports<'aws-sdk/clients/resourcegroups'>; -} -declare module 'aws-sdk/clients/resourcegroupstaggingapi.js' { - declare module.exports: $Exports<'aws-sdk/clients/resourcegroupstaggingapi'>; -} -declare module 'aws-sdk/clients/robomaker.js' { - declare module.exports: $Exports<'aws-sdk/clients/robomaker'>; -} -declare module 'aws-sdk/clients/route53.js' { - declare module.exports: $Exports<'aws-sdk/clients/route53'>; -} -declare module 'aws-sdk/clients/route53domains.js' { - declare module.exports: $Exports<'aws-sdk/clients/route53domains'>; -} -declare module 'aws-sdk/clients/route53resolver.js' { - declare module.exports: $Exports<'aws-sdk/clients/route53resolver'>; -} -declare module 'aws-sdk/clients/s3.js' { - declare module.exports: $Exports<'aws-sdk/clients/s3'>; -} -declare module 'aws-sdk/clients/s3control.js' { - declare module.exports: $Exports<'aws-sdk/clients/s3control'>; -} -declare module 'aws-sdk/clients/sagemaker.js' { - declare module.exports: $Exports<'aws-sdk/clients/sagemaker'>; -} -declare module 'aws-sdk/clients/sagemakerruntime.js' { - declare module.exports: $Exports<'aws-sdk/clients/sagemakerruntime'>; -} -declare module 'aws-sdk/clients/savingsplans.js' { - declare module.exports: $Exports<'aws-sdk/clients/savingsplans'>; -} -declare module 'aws-sdk/clients/schemas.js' { - declare module.exports: $Exports<'aws-sdk/clients/schemas'>; -} -declare module 'aws-sdk/clients/secretsmanager.js' { - declare module.exports: $Exports<'aws-sdk/clients/secretsmanager'>; -} -declare module 'aws-sdk/clients/securityhub.js' { - declare module.exports: $Exports<'aws-sdk/clients/securityhub'>; -} -declare module 'aws-sdk/clients/serverlessapplicationrepository.js' { - declare module.exports: $Exports<'aws-sdk/clients/serverlessapplicationrepository'>; -} -declare module 'aws-sdk/clients/servicecatalog.js' { - declare module.exports: $Exports<'aws-sdk/clients/servicecatalog'>; -} -declare module 'aws-sdk/clients/servicediscovery.js' { - declare module.exports: $Exports<'aws-sdk/clients/servicediscovery'>; -} -declare module 'aws-sdk/clients/servicequotas.js' { - declare module.exports: $Exports<'aws-sdk/clients/servicequotas'>; -} -declare module 'aws-sdk/clients/ses.js' { - declare module.exports: $Exports<'aws-sdk/clients/ses'>; -} -declare module 'aws-sdk/clients/sesv2.js' { - declare module.exports: $Exports<'aws-sdk/clients/sesv2'>; -} -declare module 'aws-sdk/clients/shield.js' { - declare module.exports: $Exports<'aws-sdk/clients/shield'>; -} -declare module 'aws-sdk/clients/signer.js' { - declare module.exports: $Exports<'aws-sdk/clients/signer'>; -} -declare module 'aws-sdk/clients/simpledb.js' { - declare module.exports: $Exports<'aws-sdk/clients/simpledb'>; -} -declare module 'aws-sdk/clients/sms.js' { - declare module.exports: $Exports<'aws-sdk/clients/sms'>; -} -declare module 'aws-sdk/clients/snowball.js' { - declare module.exports: $Exports<'aws-sdk/clients/snowball'>; -} -declare module 'aws-sdk/clients/sns.js' { - declare module.exports: $Exports<'aws-sdk/clients/sns'>; -} -declare module 'aws-sdk/clients/sqs.js' { - declare module.exports: $Exports<'aws-sdk/clients/sqs'>; -} -declare module 'aws-sdk/clients/ssm.js' { - declare module.exports: $Exports<'aws-sdk/clients/ssm'>; -} -declare module 'aws-sdk/clients/sso.js' { - declare module.exports: $Exports<'aws-sdk/clients/sso'>; -} -declare module 'aws-sdk/clients/ssooidc.js' { - declare module.exports: $Exports<'aws-sdk/clients/ssooidc'>; -} -declare module 'aws-sdk/clients/stepfunctions.js' { - declare module.exports: $Exports<'aws-sdk/clients/stepfunctions'>; -} -declare module 'aws-sdk/clients/storagegateway.js' { - declare module.exports: $Exports<'aws-sdk/clients/storagegateway'>; -} -declare module 'aws-sdk/clients/sts.js' { - declare module.exports: $Exports<'aws-sdk/clients/sts'>; -} -declare module 'aws-sdk/clients/support.js' { - declare module.exports: $Exports<'aws-sdk/clients/support'>; -} -declare module 'aws-sdk/clients/swf.js' { - declare module.exports: $Exports<'aws-sdk/clients/swf'>; -} -declare module 'aws-sdk/clients/synthetics.js' { - declare module.exports: $Exports<'aws-sdk/clients/synthetics'>; -} -declare module 'aws-sdk/clients/textract.js' { - declare module.exports: $Exports<'aws-sdk/clients/textract'>; -} -declare module 'aws-sdk/clients/transcribeservice.js' { - declare module.exports: $Exports<'aws-sdk/clients/transcribeservice'>; -} -declare module 'aws-sdk/clients/transfer.js' { - declare module.exports: $Exports<'aws-sdk/clients/transfer'>; -} -declare module 'aws-sdk/clients/translate.js' { - declare module.exports: $Exports<'aws-sdk/clients/translate'>; -} -declare module 'aws-sdk/clients/waf.js' { - declare module.exports: $Exports<'aws-sdk/clients/waf'>; -} -declare module 'aws-sdk/clients/wafregional.js' { - declare module.exports: $Exports<'aws-sdk/clients/wafregional'>; -} -declare module 'aws-sdk/clients/wafv2.js' { - declare module.exports: $Exports<'aws-sdk/clients/wafv2'>; -} -declare module 'aws-sdk/clients/workdocs.js' { - declare module.exports: $Exports<'aws-sdk/clients/workdocs'>; -} -declare module 'aws-sdk/clients/worklink.js' { - declare module.exports: $Exports<'aws-sdk/clients/worklink'>; -} -declare module 'aws-sdk/clients/workmail.js' { - declare module.exports: $Exports<'aws-sdk/clients/workmail'>; -} -declare module 'aws-sdk/clients/workmailmessageflow.js' { - declare module.exports: $Exports<'aws-sdk/clients/workmailmessageflow'>; -} -declare module 'aws-sdk/clients/workspaces.js' { - declare module.exports: $Exports<'aws-sdk/clients/workspaces'>; -} -declare module 'aws-sdk/clients/xray.js' { - declare module.exports: $Exports<'aws-sdk/clients/xray'>; -} -declare module 'aws-sdk/dist-tools/browser-builder.js' { - declare module.exports: $Exports<'aws-sdk/dist-tools/browser-builder'>; -} -declare module 'aws-sdk/dist-tools/client-creator.js' { - declare module.exports: $Exports<'aws-sdk/dist-tools/client-creator'>; -} -declare module 'aws-sdk/dist-tools/create-all-services.js' { - declare module.exports: $Exports<'aws-sdk/dist-tools/create-all-services'>; -} -declare module 'aws-sdk/dist-tools/service-collector.js' { - declare module.exports: $Exports<'aws-sdk/dist-tools/service-collector'>; -} -declare module 'aws-sdk/dist-tools/transform.js' { - declare module.exports: $Exports<'aws-sdk/dist-tools/transform'>; -} -declare module 'aws-sdk/dist-tools/webpack.config.rn-core.js' { - declare module.exports: $Exports<'aws-sdk/dist-tools/webpack.config.rn-core'>; -} -declare module 'aws-sdk/dist-tools/webpack.config.rn-dep.js' { - declare module.exports: $Exports<'aws-sdk/dist-tools/webpack.config.rn-dep'>; -} -declare module 'aws-sdk/dist-tools/webpack.config.rn.js' { - declare module.exports: $Exports<'aws-sdk/dist-tools/webpack.config.rn'>; -} -declare module 'aws-sdk/dist/aws-sdk-core-react-native.js' { - declare module.exports: $Exports<'aws-sdk/dist/aws-sdk-core-react-native'>; -} -declare module 'aws-sdk/dist/aws-sdk-react-native.js' { - declare module.exports: $Exports<'aws-sdk/dist/aws-sdk-react-native'>; -} -declare module 'aws-sdk/dist/aws-sdk.js' { - declare module.exports: $Exports<'aws-sdk/dist/aws-sdk'>; -} -declare module 'aws-sdk/dist/aws-sdk.min.js' { - declare module.exports: $Exports<'aws-sdk/dist/aws-sdk.min'>; -} -declare module 'aws-sdk/dist/xml2js.js' { - declare module.exports: $Exports<'aws-sdk/dist/xml2js'>; -} -declare module 'aws-sdk/global.js' { - declare module.exports: $Exports<'aws-sdk/global'>; -} -declare module 'aws-sdk/index' { - declare module.exports: $Exports<'aws-sdk'>; -} -declare module 'aws-sdk/index.js' { - declare module.exports: $Exports<'aws-sdk'>; -} -declare module 'aws-sdk/lib/api_loader.js' { - declare module.exports: $Exports<'aws-sdk/lib/api_loader'>; -} -declare module 'aws-sdk/lib/aws.js' { - declare module.exports: $Exports<'aws-sdk/lib/aws'>; -} -declare module 'aws-sdk/lib/browser_loader.js' { - declare module.exports: $Exports<'aws-sdk/lib/browser_loader'>; -} -declare module 'aws-sdk/lib/browser.js' { - declare module.exports: $Exports<'aws-sdk/lib/browser'>; -} -declare module 'aws-sdk/lib/browserCryptoLib.js' { - declare module.exports: $Exports<'aws-sdk/lib/browserCryptoLib'>; -} -declare module 'aws-sdk/lib/browserHashUtils.js' { - declare module.exports: $Exports<'aws-sdk/lib/browserHashUtils'>; -} -declare module 'aws-sdk/lib/browserHmac.js' { - declare module.exports: $Exports<'aws-sdk/lib/browserHmac'>; -} -declare module 'aws-sdk/lib/browserMd5.js' { - declare module.exports: $Exports<'aws-sdk/lib/browserMd5'>; -} -declare module 'aws-sdk/lib/browserSha1.js' { - declare module.exports: $Exports<'aws-sdk/lib/browserSha1'>; -} -declare module 'aws-sdk/lib/browserSha256.js' { - declare module.exports: $Exports<'aws-sdk/lib/browserSha256'>; -} -declare module 'aws-sdk/lib/cloudfront/signer.js' { - declare module.exports: $Exports<'aws-sdk/lib/cloudfront/signer'>; -} -declare module 'aws-sdk/lib/config_regional_endpoint.js' { - declare module.exports: $Exports<'aws-sdk/lib/config_regional_endpoint'>; -} -declare module 'aws-sdk/lib/config.js' { - declare module.exports: $Exports<'aws-sdk/lib/config'>; -} -declare module 'aws-sdk/lib/core.js' { - declare module.exports: $Exports<'aws-sdk/lib/core'>; -} -declare module 'aws-sdk/lib/credentials.js' { - declare module.exports: $Exports<'aws-sdk/lib/credentials'>; -} -declare module 'aws-sdk/lib/credentials/chainable_temporary_credentials.js' { - declare module.exports: $Exports<'aws-sdk/lib/credentials/chainable_temporary_credentials'>; -} -declare module 'aws-sdk/lib/credentials/cognito_identity_credentials.js' { - declare module.exports: $Exports<'aws-sdk/lib/credentials/cognito_identity_credentials'>; -} -declare module 'aws-sdk/lib/credentials/credential_provider_chain.js' { - declare module.exports: $Exports<'aws-sdk/lib/credentials/credential_provider_chain'>; -} -declare module 'aws-sdk/lib/credentials/ec2_metadata_credentials.js' { - declare module.exports: $Exports<'aws-sdk/lib/credentials/ec2_metadata_credentials'>; -} -declare module 'aws-sdk/lib/credentials/ecs_credentials.js' { - declare module.exports: $Exports<'aws-sdk/lib/credentials/ecs_credentials'>; -} -declare module 'aws-sdk/lib/credentials/environment_credentials.js' { - declare module.exports: $Exports<'aws-sdk/lib/credentials/environment_credentials'>; -} -declare module 'aws-sdk/lib/credentials/file_system_credentials.js' { - declare module.exports: $Exports<'aws-sdk/lib/credentials/file_system_credentials'>; -} -declare module 'aws-sdk/lib/credentials/process_credentials.js' { - declare module.exports: $Exports<'aws-sdk/lib/credentials/process_credentials'>; -} -declare module 'aws-sdk/lib/credentials/remote_credentials.js' { - declare module.exports: $Exports<'aws-sdk/lib/credentials/remote_credentials'>; -} -declare module 'aws-sdk/lib/credentials/saml_credentials.js' { - declare module.exports: $Exports<'aws-sdk/lib/credentials/saml_credentials'>; -} -declare module 'aws-sdk/lib/credentials/shared_ini_file_credentials.js' { - declare module.exports: $Exports<'aws-sdk/lib/credentials/shared_ini_file_credentials'>; -} -declare module 'aws-sdk/lib/credentials/temporary_credentials.js' { - declare module.exports: $Exports<'aws-sdk/lib/credentials/temporary_credentials'>; -} -declare module 'aws-sdk/lib/credentials/token_file_web_identity_credentials.js' { - declare module.exports: $Exports<'aws-sdk/lib/credentials/token_file_web_identity_credentials'>; -} -declare module 'aws-sdk/lib/credentials/web_identity_credentials.js' { - declare module.exports: $Exports<'aws-sdk/lib/credentials/web_identity_credentials'>; -} -declare module 'aws-sdk/lib/discover_endpoint.js' { - declare module.exports: $Exports<'aws-sdk/lib/discover_endpoint'>; -} -declare module 'aws-sdk/lib/dynamodb/converter.js' { - declare module.exports: $Exports<'aws-sdk/lib/dynamodb/converter'>; -} -declare module 'aws-sdk/lib/dynamodb/document_client.js' { - declare module.exports: $Exports<'aws-sdk/lib/dynamodb/document_client'>; -} -declare module 'aws-sdk/lib/dynamodb/numberValue.js' { - declare module.exports: $Exports<'aws-sdk/lib/dynamodb/numberValue'>; -} -declare module 'aws-sdk/lib/dynamodb/set.js' { - declare module.exports: $Exports<'aws-sdk/lib/dynamodb/set'>; -} -declare module 'aws-sdk/lib/dynamodb/translator.js' { - declare module.exports: $Exports<'aws-sdk/lib/dynamodb/translator'>; -} -declare module 'aws-sdk/lib/dynamodb/types.js' { - declare module.exports: $Exports<'aws-sdk/lib/dynamodb/types'>; -} -declare module 'aws-sdk/lib/empty.js' { - declare module.exports: $Exports<'aws-sdk/lib/empty'>; -} -declare module 'aws-sdk/lib/event_listeners.js' { - declare module.exports: $Exports<'aws-sdk/lib/event_listeners'>; -} -declare module 'aws-sdk/lib/event-stream/buffered-create-event-stream.js' { - declare module.exports: $Exports<'aws-sdk/lib/event-stream/buffered-create-event-stream'>; -} -declare module 'aws-sdk/lib/event-stream/build-message.js' { - declare module.exports: $Exports<'aws-sdk/lib/event-stream/build-message'>; -} -declare module 'aws-sdk/lib/event-stream/event-message-chunker-stream.js' { - declare module.exports: $Exports<'aws-sdk/lib/event-stream/event-message-chunker-stream'>; -} -declare module 'aws-sdk/lib/event-stream/event-message-chunker.js' { - declare module.exports: $Exports<'aws-sdk/lib/event-stream/event-message-chunker'>; -} -declare module 'aws-sdk/lib/event-stream/event-message-unmarshaller-stream.js' { - declare module.exports: $Exports<'aws-sdk/lib/event-stream/event-message-unmarshaller-stream'>; -} -declare module 'aws-sdk/lib/event-stream/int64.js' { - declare module.exports: $Exports<'aws-sdk/lib/event-stream/int64'>; -} -declare module 'aws-sdk/lib/event-stream/parse-event.js' { - declare module.exports: $Exports<'aws-sdk/lib/event-stream/parse-event'>; -} -declare module 'aws-sdk/lib/event-stream/parse-message.js' { - declare module.exports: $Exports<'aws-sdk/lib/event-stream/parse-message'>; -} -declare module 'aws-sdk/lib/event-stream/split-message.js' { - declare module.exports: $Exports<'aws-sdk/lib/event-stream/split-message'>; -} -declare module 'aws-sdk/lib/event-stream/streaming-create-event-stream.js' { - declare module.exports: $Exports<'aws-sdk/lib/event-stream/streaming-create-event-stream'>; -} -declare module 'aws-sdk/lib/http.js' { - declare module.exports: $Exports<'aws-sdk/lib/http'>; -} -declare module 'aws-sdk/lib/http/node.js' { - declare module.exports: $Exports<'aws-sdk/lib/http/node'>; -} -declare module 'aws-sdk/lib/http/xhr.js' { - declare module.exports: $Exports<'aws-sdk/lib/http/xhr'>; -} -declare module 'aws-sdk/lib/json/builder.js' { - declare module.exports: $Exports<'aws-sdk/lib/json/builder'>; -} -declare module 'aws-sdk/lib/json/parser.js' { - declare module.exports: $Exports<'aws-sdk/lib/json/parser'>; -} -declare module 'aws-sdk/lib/metadata_service.js' { - declare module.exports: $Exports<'aws-sdk/lib/metadata_service'>; -} -declare module 'aws-sdk/lib/model/api.js' { - declare module.exports: $Exports<'aws-sdk/lib/model/api'>; -} -declare module 'aws-sdk/lib/model/collection.js' { - declare module.exports: $Exports<'aws-sdk/lib/model/collection'>; -} -declare module 'aws-sdk/lib/model/operation.js' { - declare module.exports: $Exports<'aws-sdk/lib/model/operation'>; -} -declare module 'aws-sdk/lib/model/paginator.js' { - declare module.exports: $Exports<'aws-sdk/lib/model/paginator'>; -} -declare module 'aws-sdk/lib/model/resource_waiter.js' { - declare module.exports: $Exports<'aws-sdk/lib/model/resource_waiter'>; -} -declare module 'aws-sdk/lib/model/shape.js' { - declare module.exports: $Exports<'aws-sdk/lib/model/shape'>; -} -declare module 'aws-sdk/lib/node_loader.js' { - declare module.exports: $Exports<'aws-sdk/lib/node_loader'>; -} -declare module 'aws-sdk/lib/param_validator.js' { - declare module.exports: $Exports<'aws-sdk/lib/param_validator'>; -} -declare module 'aws-sdk/lib/polly/presigner.js' { - declare module.exports: $Exports<'aws-sdk/lib/polly/presigner'>; -} -declare module 'aws-sdk/lib/protocol/helpers.js' { - declare module.exports: $Exports<'aws-sdk/lib/protocol/helpers'>; -} -declare module 'aws-sdk/lib/protocol/json.js' { - declare module.exports: $Exports<'aws-sdk/lib/protocol/json'>; -} -declare module 'aws-sdk/lib/protocol/query.js' { - declare module.exports: $Exports<'aws-sdk/lib/protocol/query'>; -} -declare module 'aws-sdk/lib/protocol/rest_json.js' { - declare module.exports: $Exports<'aws-sdk/lib/protocol/rest_json'>; -} -declare module 'aws-sdk/lib/protocol/rest_xml.js' { - declare module.exports: $Exports<'aws-sdk/lib/protocol/rest_xml'>; -} -declare module 'aws-sdk/lib/protocol/rest.js' { - declare module.exports: $Exports<'aws-sdk/lib/protocol/rest'>; -} -declare module 'aws-sdk/lib/publisher/configuration.js' { - declare module.exports: $Exports<'aws-sdk/lib/publisher/configuration'>; -} -declare module 'aws-sdk/lib/publisher/index' { - declare module.exports: $Exports<'aws-sdk/lib/publisher'>; -} -declare module 'aws-sdk/lib/publisher/index.js' { - declare module.exports: $Exports<'aws-sdk/lib/publisher'>; -} -declare module 'aws-sdk/lib/query/query_param_serializer.js' { - declare module.exports: $Exports<'aws-sdk/lib/query/query_param_serializer'>; -} -declare module 'aws-sdk/lib/rds/signer.js' { - declare module.exports: $Exports<'aws-sdk/lib/rds/signer'>; -} -declare module 'aws-sdk/lib/react-native-loader.js' { - declare module.exports: $Exports<'aws-sdk/lib/react-native-loader'>; -} -declare module 'aws-sdk/lib/react-native/add-content-type.js' { - declare module.exports: $Exports<'aws-sdk/lib/react-native/add-content-type'>; -} -declare module 'aws-sdk/lib/realclock/browserClock.js' { - declare module.exports: $Exports<'aws-sdk/lib/realclock/browserClock'>; -} -declare module 'aws-sdk/lib/realclock/nodeClock.js' { - declare module.exports: $Exports<'aws-sdk/lib/realclock/nodeClock'>; -} -declare module 'aws-sdk/lib/region_config.js' { - declare module.exports: $Exports<'aws-sdk/lib/region_config'>; -} -declare module 'aws-sdk/lib/request.js' { - declare module.exports: $Exports<'aws-sdk/lib/request'>; -} -declare module 'aws-sdk/lib/resource_waiter.js' { - declare module.exports: $Exports<'aws-sdk/lib/resource_waiter'>; -} -declare module 'aws-sdk/lib/response.js' { - declare module.exports: $Exports<'aws-sdk/lib/response'>; -} -declare module 'aws-sdk/lib/s3/managed_upload.js' { - declare module.exports: $Exports<'aws-sdk/lib/s3/managed_upload'>; -} -declare module 'aws-sdk/lib/sequential_executor.js' { - declare module.exports: $Exports<'aws-sdk/lib/sequential_executor'>; -} -declare module 'aws-sdk/lib/service.js' { - declare module.exports: $Exports<'aws-sdk/lib/service'>; -} -declare module 'aws-sdk/lib/services/apigateway.js' { - declare module.exports: $Exports<'aws-sdk/lib/services/apigateway'>; -} -declare module 'aws-sdk/lib/services/cloudfront.js' { - declare module.exports: $Exports<'aws-sdk/lib/services/cloudfront'>; -} -declare module 'aws-sdk/lib/services/cloudsearchdomain.js' { - declare module.exports: $Exports<'aws-sdk/lib/services/cloudsearchdomain'>; -} -declare module 'aws-sdk/lib/services/cognitoidentity.js' { - declare module.exports: $Exports<'aws-sdk/lib/services/cognitoidentity'>; -} -declare module 'aws-sdk/lib/services/dynamodb.js' { - declare module.exports: $Exports<'aws-sdk/lib/services/dynamodb'>; -} -declare module 'aws-sdk/lib/services/ec2.js' { - declare module.exports: $Exports<'aws-sdk/lib/services/ec2'>; -} -declare module 'aws-sdk/lib/services/glacier.js' { - declare module.exports: $Exports<'aws-sdk/lib/services/glacier'>; -} -declare module 'aws-sdk/lib/services/iotdata.js' { - declare module.exports: $Exports<'aws-sdk/lib/services/iotdata'>; -} -declare module 'aws-sdk/lib/services/lambda.js' { - declare module.exports: $Exports<'aws-sdk/lib/services/lambda'>; -} -declare module 'aws-sdk/lib/services/machinelearning.js' { - declare module.exports: $Exports<'aws-sdk/lib/services/machinelearning'>; -} -declare module 'aws-sdk/lib/services/polly.js' { - declare module.exports: $Exports<'aws-sdk/lib/services/polly'>; -} -declare module 'aws-sdk/lib/services/rds.js' { - declare module.exports: $Exports<'aws-sdk/lib/services/rds'>; -} -declare module 'aws-sdk/lib/services/rdsdataservice.js' { - declare module.exports: $Exports<'aws-sdk/lib/services/rdsdataservice'>; -} -declare module 'aws-sdk/lib/services/route53.js' { - declare module.exports: $Exports<'aws-sdk/lib/services/route53'>; -} -declare module 'aws-sdk/lib/services/s3.js' { - declare module.exports: $Exports<'aws-sdk/lib/services/s3'>; -} -declare module 'aws-sdk/lib/services/s3control.js' { - declare module.exports: $Exports<'aws-sdk/lib/services/s3control'>; -} -declare module 'aws-sdk/lib/services/sqs.js' { - declare module.exports: $Exports<'aws-sdk/lib/services/sqs'>; -} -declare module 'aws-sdk/lib/services/sts.js' { - declare module.exports: $Exports<'aws-sdk/lib/services/sts'>; -} -declare module 'aws-sdk/lib/services/swf.js' { - declare module.exports: $Exports<'aws-sdk/lib/services/swf'>; -} -declare module 'aws-sdk/lib/shared-ini/index' { - declare module.exports: $Exports<'aws-sdk/lib/shared-ini'>; -} -declare module 'aws-sdk/lib/shared-ini/index.js' { - declare module.exports: $Exports<'aws-sdk/lib/shared-ini'>; -} -declare module 'aws-sdk/lib/shared-ini/ini-loader.js' { - declare module.exports: $Exports<'aws-sdk/lib/shared-ini/ini-loader'>; -} -declare module 'aws-sdk/lib/signers/presign.js' { - declare module.exports: $Exports<'aws-sdk/lib/signers/presign'>; -} -declare module 'aws-sdk/lib/signers/request_signer.js' { - declare module.exports: $Exports<'aws-sdk/lib/signers/request_signer'>; -} -declare module 'aws-sdk/lib/signers/s3.js' { - declare module.exports: $Exports<'aws-sdk/lib/signers/s3'>; -} -declare module 'aws-sdk/lib/signers/v2.js' { - declare module.exports: $Exports<'aws-sdk/lib/signers/v2'>; -} -declare module 'aws-sdk/lib/signers/v3.js' { - declare module.exports: $Exports<'aws-sdk/lib/signers/v3'>; -} -declare module 'aws-sdk/lib/signers/v3https.js' { - declare module.exports: $Exports<'aws-sdk/lib/signers/v3https'>; -} -declare module 'aws-sdk/lib/signers/v4_credentials.js' { - declare module.exports: $Exports<'aws-sdk/lib/signers/v4_credentials'>; -} -declare module 'aws-sdk/lib/signers/v4.js' { - declare module.exports: $Exports<'aws-sdk/lib/signers/v4'>; -} -declare module 'aws-sdk/lib/state_machine.js' { - declare module.exports: $Exports<'aws-sdk/lib/state_machine'>; -} -declare module 'aws-sdk/lib/util.js' { - declare module.exports: $Exports<'aws-sdk/lib/util'>; -} -declare module 'aws-sdk/lib/xml/browser_parser.js' { - declare module.exports: $Exports<'aws-sdk/lib/xml/browser_parser'>; -} -declare module 'aws-sdk/lib/xml/builder.js' { - declare module.exports: $Exports<'aws-sdk/lib/xml/builder'>; -} -declare module 'aws-sdk/lib/xml/escape-attribute.js' { - declare module.exports: $Exports<'aws-sdk/lib/xml/escape-attribute'>; -} -declare module 'aws-sdk/lib/xml/escape-element.js' { - declare module.exports: $Exports<'aws-sdk/lib/xml/escape-element'>; -} -declare module 'aws-sdk/lib/xml/node_parser.js' { - declare module.exports: $Exports<'aws-sdk/lib/xml/node_parser'>; -} -declare module 'aws-sdk/lib/xml/xml-node.js' { - declare module.exports: $Exports<'aws-sdk/lib/xml/xml-node'>; -} -declare module 'aws-sdk/lib/xml/xml-text.js' { - declare module.exports: $Exports<'aws-sdk/lib/xml/xml-text'>; -} -declare module 'aws-sdk/react-native.js' { - declare module.exports: $Exports<'aws-sdk/react-native'>; -} -declare module 'aws-sdk/scripts/changelog/add-change.js' { - declare module.exports: $Exports<'aws-sdk/scripts/changelog/add-change'>; -} -declare module 'aws-sdk/scripts/changelog/change-creator.js' { - declare module.exports: $Exports<'aws-sdk/scripts/changelog/change-creator'>; -} -declare module 'aws-sdk/scripts/changelog/util.js' { - declare module.exports: $Exports<'aws-sdk/scripts/changelog/util'>; -} -declare module 'aws-sdk/scripts/composite-test.js' { - declare module.exports: $Exports<'aws-sdk/scripts/composite-test'>; -} -declare module 'aws-sdk/scripts/lib/get-operation-shape-names.js' { - declare module.exports: $Exports<'aws-sdk/scripts/lib/get-operation-shape-names'>; -} -declare module 'aws-sdk/scripts/lib/prune-shapes.js' { - declare module.exports: $Exports<'aws-sdk/scripts/lib/prune-shapes'>; -} -declare module 'aws-sdk/scripts/lib/remove-event-stream-ops.js' { - declare module.exports: $Exports<'aws-sdk/scripts/lib/remove-event-stream-ops'>; -} -declare module 'aws-sdk/scripts/lib/test-helper.js' { - declare module.exports: $Exports<'aws-sdk/scripts/lib/test-helper'>; -} -declare module 'aws-sdk/scripts/lib/translator.js' { - declare module.exports: $Exports<'aws-sdk/scripts/lib/translator'>; -} -declare module 'aws-sdk/scripts/lib/ts-generator.js' { - declare module.exports: $Exports<'aws-sdk/scripts/lib/ts-generator'>; -} -declare module 'aws-sdk/scripts/lib/visit-related-shape-names.js' { - declare module.exports: $Exports<'aws-sdk/scripts/lib/visit-related-shape-names'>; -} -declare module 'aws-sdk/scripts/region-checker/allowlist.js' { - declare module.exports: $Exports<'aws-sdk/scripts/region-checker/allowlist'>; -} -declare module 'aws-sdk/scripts/region-checker/index' { - declare module.exports: $Exports<'aws-sdk/scripts/region-checker'>; -} -declare module 'aws-sdk/scripts/region-checker/index.js' { - declare module.exports: $Exports<'aws-sdk/scripts/region-checker'>; -} -declare module 'aws-sdk/scripts/services-table-generator.js' { - declare module.exports: $Exports<'aws-sdk/scripts/services-table-generator'>; -} -declare module 'aws-sdk/scripts/typings-generator.js' { - declare module.exports: $Exports<'aws-sdk/scripts/typings-generator'>; -} -declare module 'aws-sdk/vendor/endpoint-cache/index' { - declare module.exports: $Exports<'aws-sdk/vendor/endpoint-cache'>; -} -declare module 'aws-sdk/vendor/endpoint-cache/index.js' { - declare module.exports: $Exports<'aws-sdk/vendor/endpoint-cache'>; -} -declare module 'aws-sdk/vendor/endpoint-cache/utils/LRU.js' { - declare module.exports: $Exports<'aws-sdk/vendor/endpoint-cache/utils/LRU'>; -} diff --git a/flow-typed/npm/babel-eslint_vx.x.x.js b/flow-typed/npm/babel-eslint_vx.x.x.js deleted file mode 100644 index e0de6e836..000000000 --- a/flow-typed/npm/babel-eslint_vx.x.x.js +++ /dev/null @@ -1,122 +0,0 @@ -// flow-typed signature: 4038f4f62930fee25a2b71ecf21e8513 -// flow-typed version: <>/babel-eslint_v^10.0.3/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'babel-eslint' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'babel-eslint' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'babel-eslint/lib/analyze-scope' { - declare module.exports: any; -} - -declare module 'babel-eslint/lib/babylon-to-espree/attachComments' { - declare module.exports: any; -} - -declare module 'babel-eslint/lib/babylon-to-espree/convertComments' { - declare module.exports: any; -} - -declare module 'babel-eslint/lib/babylon-to-espree/convertTemplateType' { - declare module.exports: any; -} - -declare module 'babel-eslint/lib/babylon-to-espree' { - declare module.exports: any; -} - -declare module 'babel-eslint/lib/babylon-to-espree/toAST' { - declare module.exports: any; -} - -declare module 'babel-eslint/lib/babylon-to-espree/toToken' { - declare module.exports: any; -} - -declare module 'babel-eslint/lib/babylon-to-espree/toTokens' { - declare module.exports: any; -} - -declare module 'babel-eslint/lib' { - declare module.exports: any; -} - -declare module 'babel-eslint/lib/parse-with-scope' { - declare module.exports: any; -} - -declare module 'babel-eslint/lib/parse' { - declare module.exports: any; -} - -declare module 'babel-eslint/lib/require-from-eslint' { - declare module.exports: any; -} - -declare module 'babel-eslint/lib/visitor-keys' { - declare module.exports: any; -} - -// Filename aliases -declare module 'babel-eslint/lib/analyze-scope.js' { - declare module.exports: $Exports<'babel-eslint/lib/analyze-scope'>; -} -declare module 'babel-eslint/lib/babylon-to-espree/attachComments.js' { - declare module.exports: $Exports<'babel-eslint/lib/babylon-to-espree/attachComments'>; -} -declare module 'babel-eslint/lib/babylon-to-espree/convertComments.js' { - declare module.exports: $Exports<'babel-eslint/lib/babylon-to-espree/convertComments'>; -} -declare module 'babel-eslint/lib/babylon-to-espree/convertTemplateType.js' { - declare module.exports: $Exports<'babel-eslint/lib/babylon-to-espree/convertTemplateType'>; -} -declare module 'babel-eslint/lib/babylon-to-espree/index' { - declare module.exports: $Exports<'babel-eslint/lib/babylon-to-espree'>; -} -declare module 'babel-eslint/lib/babylon-to-espree/index.js' { - declare module.exports: $Exports<'babel-eslint/lib/babylon-to-espree'>; -} -declare module 'babel-eslint/lib/babylon-to-espree/toAST.js' { - declare module.exports: $Exports<'babel-eslint/lib/babylon-to-espree/toAST'>; -} -declare module 'babel-eslint/lib/babylon-to-espree/toToken.js' { - declare module.exports: $Exports<'babel-eslint/lib/babylon-to-espree/toToken'>; -} -declare module 'babel-eslint/lib/babylon-to-espree/toTokens.js' { - declare module.exports: $Exports<'babel-eslint/lib/babylon-to-espree/toTokens'>; -} -declare module 'babel-eslint/lib/index' { - declare module.exports: $Exports<'babel-eslint/lib'>; -} -declare module 'babel-eslint/lib/index.js' { - declare module.exports: $Exports<'babel-eslint/lib'>; -} -declare module 'babel-eslint/lib/parse-with-scope.js' { - declare module.exports: $Exports<'babel-eslint/lib/parse-with-scope'>; -} -declare module 'babel-eslint/lib/parse.js' { - declare module.exports: $Exports<'babel-eslint/lib/parse'>; -} -declare module 'babel-eslint/lib/require-from-eslint.js' { - declare module.exports: $Exports<'babel-eslint/lib/require-from-eslint'>; -} -declare module 'babel-eslint/lib/visitor-keys.js' { - declare module.exports: $Exports<'babel-eslint/lib/visitor-keys'>; -} diff --git a/flow-typed/npm/babel-loader_vx.x.x.js b/flow-typed/npm/babel-loader_vx.x.x.js deleted file mode 100644 index 36f47e87c..000000000 --- a/flow-typed/npm/babel-loader_vx.x.x.js +++ /dev/null @@ -1,63 +0,0 @@ -// flow-typed signature: 447244e95c13165c909aeb4af1d35c96 -// flow-typed version: <>/babel-loader_v^8.0.6/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'babel-loader' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'babel-loader' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'babel-loader/lib/cache' { - declare module.exports: any; -} - -declare module 'babel-loader/lib/Error' { - declare module.exports: any; -} - -declare module 'babel-loader/lib' { - declare module.exports: any; -} - -declare module 'babel-loader/lib/injectCaller' { - declare module.exports: any; -} - -declare module 'babel-loader/lib/transform' { - declare module.exports: any; -} - -// Filename aliases -declare module 'babel-loader/lib/cache.js' { - declare module.exports: $Exports<'babel-loader/lib/cache'>; -} -declare module 'babel-loader/lib/Error.js' { - declare module.exports: $Exports<'babel-loader/lib/Error'>; -} -declare module 'babel-loader/lib/index' { - declare module.exports: $Exports<'babel-loader/lib'>; -} -declare module 'babel-loader/lib/index.js' { - declare module.exports: $Exports<'babel-loader/lib'>; -} -declare module 'babel-loader/lib/injectCaller.js' { - declare module.exports: $Exports<'babel-loader/lib/injectCaller'>; -} -declare module 'babel-loader/lib/transform.js' { - declare module.exports: $Exports<'babel-loader/lib/transform'>; -} diff --git a/flow-typed/npm/connected-react-router_vx.x.x.js b/flow-typed/npm/connected-react-router_vx.x.x.js deleted file mode 100644 index d598df165..000000000 --- a/flow-typed/npm/connected-react-router_vx.x.x.js +++ /dev/null @@ -1,266 +0,0 @@ -// flow-typed signature: 10ccd7070c00f47849b76a0e0fc67570 -// flow-typed version: <>/connected-react-router_v^6.7.0/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'connected-react-router' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'connected-react-router' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'connected-react-router/esm/actions' { - declare module.exports: any; -} - -declare module 'connected-react-router/esm/ConnectedRouter' { - declare module.exports: any; -} - -declare module 'connected-react-router/esm/immutable' { - declare module.exports: any; -} - -declare module 'connected-react-router/esm' { - declare module.exports: any; -} - -declare module 'connected-react-router/esm/middleware' { - declare module.exports: any; -} - -declare module 'connected-react-router/esm/reducer' { - declare module.exports: any; -} - -declare module 'connected-react-router/esm/seamless-immutable' { - declare module.exports: any; -} - -declare module 'connected-react-router/esm/selectors' { - declare module.exports: any; -} - -declare module 'connected-react-router/esm/structure/immutable/getIn' { - declare module.exports: any; -} - -declare module 'connected-react-router/esm/structure/immutable' { - declare module.exports: any; -} - -declare module 'connected-react-router/esm/structure/plain/getIn' { - declare module.exports: any; -} - -declare module 'connected-react-router/esm/structure/plain' { - declare module.exports: any; -} - -declare module 'connected-react-router/esm/structure/seamless-immutable' { - declare module.exports: any; -} - -declare module 'connected-react-router/immutable' { - declare module.exports: any; -} - -declare module 'connected-react-router/lib/actions' { - declare module.exports: any; -} - -declare module 'connected-react-router/lib/ConnectedRouter' { - declare module.exports: any; -} - -declare module 'connected-react-router/lib/immutable' { - declare module.exports: any; -} - -declare module 'connected-react-router/lib' { - declare module.exports: any; -} - -declare module 'connected-react-router/lib/middleware' { - declare module.exports: any; -} - -declare module 'connected-react-router/lib/reducer' { - declare module.exports: any; -} - -declare module 'connected-react-router/lib/seamless-immutable' { - declare module.exports: any; -} - -declare module 'connected-react-router/lib/selectors' { - declare module.exports: any; -} - -declare module 'connected-react-router/lib/structure/immutable/getIn' { - declare module.exports: any; -} - -declare module 'connected-react-router/lib/structure/immutable' { - declare module.exports: any; -} - -declare module 'connected-react-router/lib/structure/plain/getIn' { - declare module.exports: any; -} - -declare module 'connected-react-router/lib/structure/plain' { - declare module.exports: any; -} - -declare module 'connected-react-router/lib/structure/seamless-immutable' { - declare module.exports: any; -} - -declare module 'connected-react-router/seamless-immutable' { - declare module.exports: any; -} - -declare module 'connected-react-router/umd/ConnectedReactRouter' { - declare module.exports: any; -} - -declare module 'connected-react-router/umd/ConnectedReactRouter.min' { - declare module.exports: any; -} - -declare module 'connected-react-router/webpack.config' { - declare module.exports: any; -} - -// Filename aliases -declare module 'connected-react-router/esm/actions.js' { - declare module.exports: $Exports<'connected-react-router/esm/actions'>; -} -declare module 'connected-react-router/esm/ConnectedRouter.js' { - declare module.exports: $Exports<'connected-react-router/esm/ConnectedRouter'>; -} -declare module 'connected-react-router/esm/immutable.js' { - declare module.exports: $Exports<'connected-react-router/esm/immutable'>; -} -declare module 'connected-react-router/esm/index' { - declare module.exports: $Exports<'connected-react-router/esm'>; -} -declare module 'connected-react-router/esm/index.js' { - declare module.exports: $Exports<'connected-react-router/esm'>; -} -declare module 'connected-react-router/esm/middleware.js' { - declare module.exports: $Exports<'connected-react-router/esm/middleware'>; -} -declare module 'connected-react-router/esm/reducer.js' { - declare module.exports: $Exports<'connected-react-router/esm/reducer'>; -} -declare module 'connected-react-router/esm/seamless-immutable.js' { - declare module.exports: $Exports<'connected-react-router/esm/seamless-immutable'>; -} -declare module 'connected-react-router/esm/selectors.js' { - declare module.exports: $Exports<'connected-react-router/esm/selectors'>; -} -declare module 'connected-react-router/esm/structure/immutable/getIn.js' { - declare module.exports: $Exports<'connected-react-router/esm/structure/immutable/getIn'>; -} -declare module 'connected-react-router/esm/structure/immutable/index' { - declare module.exports: $Exports<'connected-react-router/esm/structure/immutable'>; -} -declare module 'connected-react-router/esm/structure/immutable/index.js' { - declare module.exports: $Exports<'connected-react-router/esm/structure/immutable'>; -} -declare module 'connected-react-router/esm/structure/plain/getIn.js' { - declare module.exports: $Exports<'connected-react-router/esm/structure/plain/getIn'>; -} -declare module 'connected-react-router/esm/structure/plain/index' { - declare module.exports: $Exports<'connected-react-router/esm/structure/plain'>; -} -declare module 'connected-react-router/esm/structure/plain/index.js' { - declare module.exports: $Exports<'connected-react-router/esm/structure/plain'>; -} -declare module 'connected-react-router/esm/structure/seamless-immutable/index' { - declare module.exports: $Exports<'connected-react-router/esm/structure/seamless-immutable'>; -} -declare module 'connected-react-router/esm/structure/seamless-immutable/index.js' { - declare module.exports: $Exports<'connected-react-router/esm/structure/seamless-immutable'>; -} -declare module 'connected-react-router/immutable.js' { - declare module.exports: $Exports<'connected-react-router/immutable'>; -} -declare module 'connected-react-router/lib/actions.js' { - declare module.exports: $Exports<'connected-react-router/lib/actions'>; -} -declare module 'connected-react-router/lib/ConnectedRouter.js' { - declare module.exports: $Exports<'connected-react-router/lib/ConnectedRouter'>; -} -declare module 'connected-react-router/lib/immutable.js' { - declare module.exports: $Exports<'connected-react-router/lib/immutable'>; -} -declare module 'connected-react-router/lib/index' { - declare module.exports: $Exports<'connected-react-router/lib'>; -} -declare module 'connected-react-router/lib/index.js' { - declare module.exports: $Exports<'connected-react-router/lib'>; -} -declare module 'connected-react-router/lib/middleware.js' { - declare module.exports: $Exports<'connected-react-router/lib/middleware'>; -} -declare module 'connected-react-router/lib/reducer.js' { - declare module.exports: $Exports<'connected-react-router/lib/reducer'>; -} -declare module 'connected-react-router/lib/seamless-immutable.js' { - declare module.exports: $Exports<'connected-react-router/lib/seamless-immutable'>; -} -declare module 'connected-react-router/lib/selectors.js' { - declare module.exports: $Exports<'connected-react-router/lib/selectors'>; -} -declare module 'connected-react-router/lib/structure/immutable/getIn.js' { - declare module.exports: $Exports<'connected-react-router/lib/structure/immutable/getIn'>; -} -declare module 'connected-react-router/lib/structure/immutable/index' { - declare module.exports: $Exports<'connected-react-router/lib/structure/immutable'>; -} -declare module 'connected-react-router/lib/structure/immutable/index.js' { - declare module.exports: $Exports<'connected-react-router/lib/structure/immutable'>; -} -declare module 'connected-react-router/lib/structure/plain/getIn.js' { - declare module.exports: $Exports<'connected-react-router/lib/structure/plain/getIn'>; -} -declare module 'connected-react-router/lib/structure/plain/index' { - declare module.exports: $Exports<'connected-react-router/lib/structure/plain'>; -} -declare module 'connected-react-router/lib/structure/plain/index.js' { - declare module.exports: $Exports<'connected-react-router/lib/structure/plain'>; -} -declare module 'connected-react-router/lib/structure/seamless-immutable/index' { - declare module.exports: $Exports<'connected-react-router/lib/structure/seamless-immutable'>; -} -declare module 'connected-react-router/lib/structure/seamless-immutable/index.js' { - declare module.exports: $Exports<'connected-react-router/lib/structure/seamless-immutable'>; -} -declare module 'connected-react-router/seamless-immutable.js' { - declare module.exports: $Exports<'connected-react-router/seamless-immutable'>; -} -declare module 'connected-react-router/umd/ConnectedReactRouter.js' { - declare module.exports: $Exports<'connected-react-router/umd/ConnectedReactRouter'>; -} -declare module 'connected-react-router/umd/ConnectedReactRouter.min.js' { - declare module.exports: $Exports<'connected-react-router/umd/ConnectedReactRouter.min'>; -} -declare module 'connected-react-router/webpack.config.js' { - declare module.exports: $Exports<'connected-react-router/webpack.config'>; -} diff --git a/flow-typed/npm/css-loader_vx.x.x.js b/flow-typed/npm/css-loader_vx.x.x.js deleted file mode 100644 index 0b5c063fa..000000000 --- a/flow-typed/npm/css-loader_vx.x.x.js +++ /dev/null @@ -1,108 +0,0 @@ -// flow-typed signature: b1ef9e2216ab045262df71d3e32cf7cf -// flow-typed version: <>/css-loader_v^3.4.2/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'css-loader' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'css-loader' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'css-loader/dist/cjs' { - declare module.exports: any; -} - -declare module 'css-loader/dist/CssSyntaxError' { - declare module.exports: any; -} - -declare module 'css-loader/dist' { - declare module.exports: any; -} - -declare module 'css-loader/dist/plugins' { - declare module.exports: any; -} - -declare module 'css-loader/dist/plugins/postcss-icss-parser' { - declare module.exports: any; -} - -declare module 'css-loader/dist/plugins/postcss-import-parser' { - declare module.exports: any; -} - -declare module 'css-loader/dist/plugins/postcss-url-parser' { - declare module.exports: any; -} - -declare module 'css-loader/dist/runtime/api' { - declare module.exports: any; -} - -declare module 'css-loader/dist/runtime/getUrl' { - declare module.exports: any; -} - -declare module 'css-loader/dist/utils' { - declare module.exports: any; -} - -declare module 'css-loader/dist/Warning' { - declare module.exports: any; -} - -// Filename aliases -declare module 'css-loader/dist/cjs.js' { - declare module.exports: $Exports<'css-loader/dist/cjs'>; -} -declare module 'css-loader/dist/CssSyntaxError.js' { - declare module.exports: $Exports<'css-loader/dist/CssSyntaxError'>; -} -declare module 'css-loader/dist/index' { - declare module.exports: $Exports<'css-loader/dist'>; -} -declare module 'css-loader/dist/index.js' { - declare module.exports: $Exports<'css-loader/dist'>; -} -declare module 'css-loader/dist/plugins/index' { - declare module.exports: $Exports<'css-loader/dist/plugins'>; -} -declare module 'css-loader/dist/plugins/index.js' { - declare module.exports: $Exports<'css-loader/dist/plugins'>; -} -declare module 'css-loader/dist/plugins/postcss-icss-parser.js' { - declare module.exports: $Exports<'css-loader/dist/plugins/postcss-icss-parser'>; -} -declare module 'css-loader/dist/plugins/postcss-import-parser.js' { - declare module.exports: $Exports<'css-loader/dist/plugins/postcss-import-parser'>; -} -declare module 'css-loader/dist/plugins/postcss-url-parser.js' { - declare module.exports: $Exports<'css-loader/dist/plugins/postcss-url-parser'>; -} -declare module 'css-loader/dist/runtime/api.js' { - declare module.exports: $Exports<'css-loader/dist/runtime/api'>; -} -declare module 'css-loader/dist/runtime/getUrl.js' { - declare module.exports: $Exports<'css-loader/dist/runtime/getUrl'>; -} -declare module 'css-loader/dist/utils.js' { - declare module.exports: $Exports<'css-loader/dist/utils'>; -} -declare module 'css-loader/dist/Warning.js' { - declare module.exports: $Exports<'css-loader/dist/Warning'>; -} diff --git a/flow-typed/npm/cypress_vx.x.x.js b/flow-typed/npm/cypress_vx.x.x.js deleted file mode 100644 index e3b0a9274..000000000 --- a/flow-typed/npm/cypress_vx.x.x.js +++ /dev/null @@ -1,157 +0,0 @@ -// flow-typed signature: 3b7334e49012e16e4bdde5315a5374d2 -// flow-typed version: <>/cypress_v^4.8.0/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'cypress' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'cypress' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'cypress/lib/cli' { - declare module.exports: any; -} - -declare module 'cypress/lib/cypress' { - declare module.exports: any; -} - -declare module 'cypress/lib/errors' { - declare module.exports: any; -} - -declare module 'cypress/lib/exec/info' { - declare module.exports: any; -} - -declare module 'cypress/lib/exec/open' { - declare module.exports: any; -} - -declare module 'cypress/lib/exec/run' { - declare module.exports: any; -} - -declare module 'cypress/lib/exec/spawn' { - declare module.exports: any; -} - -declare module 'cypress/lib/exec/versions' { - declare module.exports: any; -} - -declare module 'cypress/lib/exec/xvfb' { - declare module.exports: any; -} - -declare module 'cypress/lib/fs' { - declare module.exports: any; -} - -declare module 'cypress/lib/logger' { - declare module.exports: any; -} - -declare module 'cypress/lib/tasks/cache' { - declare module.exports: any; -} - -declare module 'cypress/lib/tasks/download' { - declare module.exports: any; -} - -declare module 'cypress/lib/tasks/install' { - declare module.exports: any; -} - -declare module 'cypress/lib/tasks/state' { - declare module.exports: any; -} - -declare module 'cypress/lib/tasks/unzip' { - declare module.exports: any; -} - -declare module 'cypress/lib/tasks/verify' { - declare module.exports: any; -} - -declare module 'cypress/lib/util' { - declare module.exports: any; -} - -// Filename aliases -declare module 'cypress/index' { - declare module.exports: $Exports<'cypress'>; -} -declare module 'cypress/index.js' { - declare module.exports: $Exports<'cypress'>; -} -declare module 'cypress/lib/cli.js' { - declare module.exports: $Exports<'cypress/lib/cli'>; -} -declare module 'cypress/lib/cypress.js' { - declare module.exports: $Exports<'cypress/lib/cypress'>; -} -declare module 'cypress/lib/errors.js' { - declare module.exports: $Exports<'cypress/lib/errors'>; -} -declare module 'cypress/lib/exec/info.js' { - declare module.exports: $Exports<'cypress/lib/exec/info'>; -} -declare module 'cypress/lib/exec/open.js' { - declare module.exports: $Exports<'cypress/lib/exec/open'>; -} -declare module 'cypress/lib/exec/run.js' { - declare module.exports: $Exports<'cypress/lib/exec/run'>; -} -declare module 'cypress/lib/exec/spawn.js' { - declare module.exports: $Exports<'cypress/lib/exec/spawn'>; -} -declare module 'cypress/lib/exec/versions.js' { - declare module.exports: $Exports<'cypress/lib/exec/versions'>; -} -declare module 'cypress/lib/exec/xvfb.js' { - declare module.exports: $Exports<'cypress/lib/exec/xvfb'>; -} -declare module 'cypress/lib/fs.js' { - declare module.exports: $Exports<'cypress/lib/fs'>; -} -declare module 'cypress/lib/logger.js' { - declare module.exports: $Exports<'cypress/lib/logger'>; -} -declare module 'cypress/lib/tasks/cache.js' { - declare module.exports: $Exports<'cypress/lib/tasks/cache'>; -} -declare module 'cypress/lib/tasks/download.js' { - declare module.exports: $Exports<'cypress/lib/tasks/download'>; -} -declare module 'cypress/lib/tasks/install.js' { - declare module.exports: $Exports<'cypress/lib/tasks/install'>; -} -declare module 'cypress/lib/tasks/state.js' { - declare module.exports: $Exports<'cypress/lib/tasks/state'>; -} -declare module 'cypress/lib/tasks/unzip.js' { - declare module.exports: $Exports<'cypress/lib/tasks/unzip'>; -} -declare module 'cypress/lib/tasks/verify.js' { - declare module.exports: $Exports<'cypress/lib/tasks/verify'>; -} -declare module 'cypress/lib/util.js' { - declare module.exports: $Exports<'cypress/lib/util'>; -} diff --git a/flow-typed/npm/enzyme-adapter-react-16_vx.x.x.js b/flow-typed/npm/enzyme-adapter-react-16_vx.x.x.js deleted file mode 100644 index fe0c39530..000000000 --- a/flow-typed/npm/enzyme-adapter-react-16_vx.x.x.js +++ /dev/null @@ -1,87 +0,0 @@ -// flow-typed signature: 4d14b328fda62361959869de5f16a1e4 -// flow-typed version: <>/enzyme-adapter-react-16_v^1.15.2/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'enzyme-adapter-react-16' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'enzyme-adapter-react-16' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'enzyme-adapter-react-16/build/detectFiberTags' { - declare module.exports: any; -} - -declare module 'enzyme-adapter-react-16/build/findCurrentFiberUsingSlowPath' { - declare module.exports: any; -} - -declare module 'enzyme-adapter-react-16/build' { - declare module.exports: any; -} - -declare module 'enzyme-adapter-react-16/build/ReactSixteenAdapter' { - declare module.exports: any; -} - -declare module 'enzyme-adapter-react-16/src/detectFiberTags' { - declare module.exports: any; -} - -declare module 'enzyme-adapter-react-16/src/findCurrentFiberUsingSlowPath' { - declare module.exports: any; -} - -declare module 'enzyme-adapter-react-16/src' { - declare module.exports: any; -} - -declare module 'enzyme-adapter-react-16/src/ReactSixteenAdapter' { - declare module.exports: any; -} - -// Filename aliases -declare module 'enzyme-adapter-react-16/build/detectFiberTags.js' { - declare module.exports: $Exports<'enzyme-adapter-react-16/build/detectFiberTags'>; -} -declare module 'enzyme-adapter-react-16/build/findCurrentFiberUsingSlowPath.js' { - declare module.exports: $Exports<'enzyme-adapter-react-16/build/findCurrentFiberUsingSlowPath'>; -} -declare module 'enzyme-adapter-react-16/build/index' { - declare module.exports: $Exports<'enzyme-adapter-react-16/build'>; -} -declare module 'enzyme-adapter-react-16/build/index.js' { - declare module.exports: $Exports<'enzyme-adapter-react-16/build'>; -} -declare module 'enzyme-adapter-react-16/build/ReactSixteenAdapter.js' { - declare module.exports: $Exports<'enzyme-adapter-react-16/build/ReactSixteenAdapter'>; -} -declare module 'enzyme-adapter-react-16/src/detectFiberTags.js' { - declare module.exports: $Exports<'enzyme-adapter-react-16/src/detectFiberTags'>; -} -declare module 'enzyme-adapter-react-16/src/findCurrentFiberUsingSlowPath.js' { - declare module.exports: $Exports<'enzyme-adapter-react-16/src/findCurrentFiberUsingSlowPath'>; -} -declare module 'enzyme-adapter-react-16/src/index' { - declare module.exports: $Exports<'enzyme-adapter-react-16/src'>; -} -declare module 'enzyme-adapter-react-16/src/index.js' { - declare module.exports: $Exports<'enzyme-adapter-react-16/src'>; -} -declare module 'enzyme-adapter-react-16/src/ReactSixteenAdapter.js' { - declare module.exports: $Exports<'enzyme-adapter-react-16/src/ReactSixteenAdapter'>; -} diff --git a/flow-typed/npm/enzyme_v3.x.x.js b/flow-typed/npm/enzyme_v3.x.x.js deleted file mode 100644 index 6ed48bcb6..000000000 --- a/flow-typed/npm/enzyme_v3.x.x.js +++ /dev/null @@ -1,144 +0,0 @@ -// flow-typed signature: 20e2bb4e722c2a79e4e0f178491bf6cc -// flow-typed version: 1f669c8dd2/enzyme_v3.x.x/flow_>=v0.104.x - -declare module "enzyme" { - declare type PredicateFunction> = ( - wrapper: T, - index: number - ) => boolean; - declare type UntypedSelector = string | { [key: string]: number|string|boolean, ... }; - declare type EnzymeSelector = UntypedSelector | React$ElementType; - - // CheerioWrapper is a type alias for an actual cheerio instance - // TODO: Reference correct type from cheerio's type declarations - declare type CheerioWrapper = any; - - declare class Wrapper { - at(index: number): this, - childAt(index: number): this, - children(selector?: UntypedSelector): this, - children(selector: T): ReactWrapper, - closest(selector: UntypedSelector): this, - closest(selector: T): ReactWrapper, - contains(nodes: React$Element | $ReadOnlyArray>): boolean, - containsAllMatchingElements(nodes: $ReadOnlyArray>): boolean, - containsAnyMatchingElements(nodes: $ReadOnlyArray>): boolean, - containsMatchingElement(node: React$Element): boolean, - context(key?: string): any, - debug(options?: Object): string, - dive(option?: { context?: Object, ... }): this, - equals(node: React$Element): boolean, - every(selector: EnzymeSelector): boolean, - everyWhere(predicate: PredicateFunction): boolean, - exists(selector?: EnzymeSelector): boolean, - filter(selector: UntypedSelector): this, - filter(selector: T): ReactWrapper, - filterWhere(predicate: PredicateFunction): this, - find(selector: UntypedSelector): this, - find(selector: T): ReactWrapper, - findWhere(predicate: PredicateFunction): this, - first(): this, - forEach(fn: (node: this, index: number) => mixed): this, - get(index: number): React$Element, - getDOMNode(): HTMLElement | HTMLInputElement, - hasClass(className: string): boolean, - hostNodes(): this, - html(): string, - instance(): React$ElementRef, - invoke(propName: string): (...args: $ReadOnlyArray) => mixed, - is(selector: EnzymeSelector): boolean, - isEmpty(): boolean, - isEmptyRender(): boolean, - key(): string, - last(): this, - length: number, - map(fn: (node: this, index: number) => T): Array, - matchesElement(node: React$Element): boolean, - name(): string, - not(selector: EnzymeSelector): this, - parent(): this, - parents(selector?: UntypedSelector): this, - parents(selector: T): ReactWrapper, - prop(key: string): any, - props(): Object, - reduce( - fn: (value: T, node: this, index: number) => T, - initialValue?: T - ): Array, - reduceRight( - fn: (value: T, node: this, index: number) => T, - initialValue?: T - ): Array, - render(): CheerioWrapper, - renderProp(propName: string): (...args: Array) => this, - setContext(context: Object): this, - setProps(props: {...}, callback?: () => void): this, - setState(state: {...}, callback?: () => void): this, - simulate(event: string, ...args: Array): this, - simulateError(error: Error): this, - slice(begin?: number, end?: number): this, - some(selector: EnzymeSelector): boolean, - someWhere(predicate: PredicateFunction): boolean, - state(key?: string): any, - text(): string, - type(): string | Function | null, - unmount(): this, - update(): this, - } - - declare class ReactWrapper extends Wrapper { - constructor(nodes: React$Element, root: any, options?: ?Object): ReactWrapper, - mount(): this, - ref(refName: string): this, - detach(): void - } - - declare class ShallowWrapper extends Wrapper { - constructor( - nodes: React$Element, - root: any, - options?: ?Object - ): ShallowWrapper, - shallow(options?: { context?: Object, ... }): ShallowWrapper, - getElement(): React$Element, - getElements(): Array> - } - - declare function shallow( - node: React$Element, - options?: { - context?: Object, - disableLifecycleMethods?: boolean, - ... - } - ): ShallowWrapper; - - declare function mount( - node: React$Element, - options?: { - context?: Object, - attachTo?: HTMLElement, - childContextTypes?: Object, - ... - } - ): ReactWrapper; - - declare function render( - node: React$Node, - options?: { context?: Object, ... } - ): CheerioWrapper; - - declare module.exports: { - configure(options: { - Adapter?: any, - disableLifecycleMethods?: boolean, - ... - }): void, - render: typeof render, - mount: typeof mount, - shallow: typeof shallow, - ShallowWrapper: typeof ShallowWrapper, - ReactWrapper: typeof ReactWrapper, - ... - }; -} diff --git a/flow-typed/npm/eslint-plugin-cypress_vx.x.x.js b/flow-typed/npm/eslint-plugin-cypress_vx.x.x.js deleted file mode 100644 index 6d14c6137..000000000 --- a/flow-typed/npm/eslint-plugin-cypress_vx.x.x.js +++ /dev/null @@ -1,136 +0,0 @@ -// flow-typed signature: 351697be0d9d94e74094fadc9bd8c378 -// flow-typed version: <>/eslint-plugin-cypress_v^2.11.1/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'eslint-plugin-cypress' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'eslint-plugin-cypress' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'eslint-plugin-cypress/jest.config' { - declare module.exports: any; -} - -declare module 'eslint-plugin-cypress/lib/config/recommended' { - declare module.exports: any; -} - -declare module 'eslint-plugin-cypress/lib/rules/assertion-before-screenshot' { - declare module.exports: any; -} - -declare module 'eslint-plugin-cypress/lib/rules/no-assigning-return-values' { - declare module.exports: any; -} - -declare module 'eslint-plugin-cypress/lib/rules/no-async-tests' { - declare module.exports: any; -} - -declare module 'eslint-plugin-cypress/lib/rules/no-force' { - declare module.exports: any; -} - -declare module 'eslint-plugin-cypress/lib/rules/no-unnecessary-waiting' { - declare module.exports: any; -} - -declare module 'eslint-plugin-cypress/lib/rules/require-data-selectors' { - declare module.exports: any; -} - -declare module 'eslint-plugin-cypress/tests/config' { - declare module.exports: any; -} - -declare module 'eslint-plugin-cypress/tests/lib/rules/assertion-before-screenshot' { - declare module.exports: any; -} - -declare module 'eslint-plugin-cypress/tests/lib/rules/no-assigning-return-values' { - declare module.exports: any; -} - -declare module 'eslint-plugin-cypress/tests/lib/rules/no-async-tests' { - declare module.exports: any; -} - -declare module 'eslint-plugin-cypress/tests/lib/rules/no-force' { - declare module.exports: any; -} - -declare module 'eslint-plugin-cypress/tests/lib/rules/no-unnecessary-waiting' { - declare module.exports: any; -} - -declare module 'eslint-plugin-cypress/tests/lib/rules/require-data-selectors' { - declare module.exports: any; -} - -// Filename aliases -declare module 'eslint-plugin-cypress/index' { - declare module.exports: $Exports<'eslint-plugin-cypress'>; -} -declare module 'eslint-plugin-cypress/index.js' { - declare module.exports: $Exports<'eslint-plugin-cypress'>; -} -declare module 'eslint-plugin-cypress/jest.config.js' { - declare module.exports: $Exports<'eslint-plugin-cypress/jest.config'>; -} -declare module 'eslint-plugin-cypress/lib/config/recommended.js' { - declare module.exports: $Exports<'eslint-plugin-cypress/lib/config/recommended'>; -} -declare module 'eslint-plugin-cypress/lib/rules/assertion-before-screenshot.js' { - declare module.exports: $Exports<'eslint-plugin-cypress/lib/rules/assertion-before-screenshot'>; -} -declare module 'eslint-plugin-cypress/lib/rules/no-assigning-return-values.js' { - declare module.exports: $Exports<'eslint-plugin-cypress/lib/rules/no-assigning-return-values'>; -} -declare module 'eslint-plugin-cypress/lib/rules/no-async-tests.js' { - declare module.exports: $Exports<'eslint-plugin-cypress/lib/rules/no-async-tests'>; -} -declare module 'eslint-plugin-cypress/lib/rules/no-force.js' { - declare module.exports: $Exports<'eslint-plugin-cypress/lib/rules/no-force'>; -} -declare module 'eslint-plugin-cypress/lib/rules/no-unnecessary-waiting.js' { - declare module.exports: $Exports<'eslint-plugin-cypress/lib/rules/no-unnecessary-waiting'>; -} -declare module 'eslint-plugin-cypress/lib/rules/require-data-selectors.js' { - declare module.exports: $Exports<'eslint-plugin-cypress/lib/rules/require-data-selectors'>; -} -declare module 'eslint-plugin-cypress/tests/config.js' { - declare module.exports: $Exports<'eslint-plugin-cypress/tests/config'>; -} -declare module 'eslint-plugin-cypress/tests/lib/rules/assertion-before-screenshot.js' { - declare module.exports: $Exports<'eslint-plugin-cypress/tests/lib/rules/assertion-before-screenshot'>; -} -declare module 'eslint-plugin-cypress/tests/lib/rules/no-assigning-return-values.js' { - declare module.exports: $Exports<'eslint-plugin-cypress/tests/lib/rules/no-assigning-return-values'>; -} -declare module 'eslint-plugin-cypress/tests/lib/rules/no-async-tests.js' { - declare module.exports: $Exports<'eslint-plugin-cypress/tests/lib/rules/no-async-tests'>; -} -declare module 'eslint-plugin-cypress/tests/lib/rules/no-force.js' { - declare module.exports: $Exports<'eslint-plugin-cypress/tests/lib/rules/no-force'>; -} -declare module 'eslint-plugin-cypress/tests/lib/rules/no-unnecessary-waiting.js' { - declare module.exports: $Exports<'eslint-plugin-cypress/tests/lib/rules/no-unnecessary-waiting'>; -} -declare module 'eslint-plugin-cypress/tests/lib/rules/require-data-selectors.js' { - declare module.exports: $Exports<'eslint-plugin-cypress/tests/lib/rules/require-data-selectors'>; -} diff --git a/flow-typed/npm/eslint-plugin-flowtype-errors_vx.x.x.js b/flow-typed/npm/eslint-plugin-flowtype-errors_vx.x.x.js deleted file mode 100644 index d4d7efdac..000000000 --- a/flow-typed/npm/eslint-plugin-flowtype-errors_vx.x.x.js +++ /dev/null @@ -1,69 +0,0 @@ -// flow-typed signature: 8e93373758af560f52ae8e2bea63950a -// flow-typed version: <>/eslint-plugin-flowtype-errors_v^4.1.0/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'eslint-plugin-flowtype-errors' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'eslint-plugin-flowtype-errors' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'eslint-plugin-flowtype-errors/dist/collect' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype-errors/dist/config/recommended' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype-errors/dist/format' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype-errors/dist/get-program' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype-errors/dist' { - declare module.exports: any; -} - -// Filename aliases -declare module 'eslint-plugin-flowtype-errors/dist/collect.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype-errors/dist/collect'>; -} -declare module 'eslint-plugin-flowtype-errors/dist/config/recommended.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype-errors/dist/config/recommended'>; -} -declare module 'eslint-plugin-flowtype-errors/dist/format.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype-errors/dist/format'>; -} -declare module 'eslint-plugin-flowtype-errors/dist/get-program.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype-errors/dist/get-program'>; -} -declare module 'eslint-plugin-flowtype-errors/dist/index' { - declare module.exports: $Exports<'eslint-plugin-flowtype-errors/dist'>; -} -declare module 'eslint-plugin-flowtype-errors/dist/index.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype-errors/dist'>; -} -declare module 'eslint-plugin-flowtype-errors/index' { - declare module.exports: $Exports<'eslint-plugin-flowtype-errors'>; -} -declare module 'eslint-plugin-flowtype-errors/index.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype-errors'>; -} diff --git a/flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js b/flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js deleted file mode 100644 index 1940aca67..000000000 --- a/flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js +++ /dev/null @@ -1,506 +0,0 @@ -// flow-typed signature: 3006e9a798b3d70e74d1297fcf0ab61b -// flow-typed version: <>/eslint-plugin-flowtype_v^4.6.0/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'eslint-plugin-flowtype' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'eslint-plugin-flowtype' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'eslint-plugin-flowtype/dist/bin/addAssertions' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/bin/checkDocs' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/bin/checkTests' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/bin/utilities' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/arrayStyle' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/arrayStyle/isSimpleType' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/arrayStyle/needWrap' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/arrayStyleComplexType' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/arrayStyleSimpleType' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/arrowParens' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/booleanStyle' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/defineFlowType' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/delimiterDangle' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/genericSpacing' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/newlineAfterFlowAnnotation' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/noDupeKeys' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/noExistentialType' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/noFlowFixMeComments' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/noMixed' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/noMutableArray' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/noPrimitiveConstructorTypes' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/noTypesMissingFileAnnotation' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/noUnusedExpressions' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/noWeakTypes' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/objectTypeDelimiter' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/requireCompoundTypeAlias' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/requireExactType' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/requireIndexerName' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/requireInexactType' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/requireParameterType' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/requireReadonlyReactProps' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/requireReturnType' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/requireTypesAtTop' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/requireValidFileAnnotation' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/requireVariableType' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/semi' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/sortKeys' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/spaceAfterTypeColon' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/spaceBeforeGenericBracket' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/spaceBeforeTypeColon' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/spreadExactType' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateFunctions' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeIndexer' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeProperty' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateReturnType' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypeCastExpression' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypical' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateVariables' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/reporter' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/typeIdMatch' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/typeImportStyle' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/unionIntersectionSpacing' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/useFlowType' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/rules/validSyntax' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/utilities/checkFlowFileAnnotation' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/utilities/fuzzyStringMatch' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/utilities/getParameterName' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/utilities/getTokenAfterParens' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/utilities/getTokenBeforeParens' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/utilities' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/utilities/isFlowFile' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/utilities/isFlowFileAnnotation' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/utilities/iterateFunctionNodes' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/utilities/quoteName' { - declare module.exports: any; -} - -declare module 'eslint-plugin-flowtype/dist/utilities/spacingFixers' { - declare module.exports: any; -} - -// Filename aliases -declare module 'eslint-plugin-flowtype/dist/bin/addAssertions.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/bin/addAssertions'>; -} -declare module 'eslint-plugin-flowtype/dist/bin/checkDocs.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/bin/checkDocs'>; -} -declare module 'eslint-plugin-flowtype/dist/bin/checkTests.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/bin/checkTests'>; -} -declare module 'eslint-plugin-flowtype/dist/bin/utilities.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/bin/utilities'>; -} -declare module 'eslint-plugin-flowtype/dist/index' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist'>; -} -declare module 'eslint-plugin-flowtype/dist/index.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/arrayStyle/index' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/arrayStyle'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/arrayStyle/index.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/arrayStyle'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/arrayStyle/isSimpleType.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/arrayStyle/isSimpleType'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/arrayStyle/needWrap.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/arrayStyle/needWrap'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/arrayStyleComplexType.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/arrayStyleComplexType'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/arrayStyleSimpleType.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/arrayStyleSimpleType'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/arrowParens.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/arrowParens'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/booleanStyle.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/booleanStyle'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/defineFlowType.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/defineFlowType'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/delimiterDangle.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/delimiterDangle'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/genericSpacing.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/genericSpacing'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/newlineAfterFlowAnnotation.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/newlineAfterFlowAnnotation'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/noDupeKeys.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noDupeKeys'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/noExistentialType.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noExistentialType'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/noFlowFixMeComments.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noFlowFixMeComments'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/noMixed.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noMixed'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/noMutableArray.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noMutableArray'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/noPrimitiveConstructorTypes.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noPrimitiveConstructorTypes'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/noTypesMissingFileAnnotation.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noTypesMissingFileAnnotation'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/noUnusedExpressions.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noUnusedExpressions'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/noWeakTypes.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noWeakTypes'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/objectTypeDelimiter.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/objectTypeDelimiter'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/requireCompoundTypeAlias.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/requireCompoundTypeAlias'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/requireExactType.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/requireExactType'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/requireIndexerName.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/requireIndexerName'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/requireInexactType.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/requireInexactType'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/requireParameterType.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/requireParameterType'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/requireReadonlyReactProps.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/requireReadonlyReactProps'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/requireReturnType.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/requireReturnType'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/requireTypesAtTop.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/requireTypesAtTop'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/requireValidFileAnnotation.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/requireValidFileAnnotation'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/requireVariableType.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/requireVariableType'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/semi.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/semi'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/sortKeys.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/sortKeys'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/spaceAfterTypeColon.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/spaceAfterTypeColon'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/spaceBeforeGenericBracket.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/spaceBeforeGenericBracket'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/spaceBeforeTypeColon.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/spaceBeforeTypeColon'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/spreadExactType.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/spreadExactType'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateFunctions.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateFunctions'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeIndexer.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeIndexer'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeProperty.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeProperty'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateReturnType.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateReturnType'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypeCastExpression.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypeCastExpression'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypical.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypical'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateVariables.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateVariables'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/index' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/index.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/reporter.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/reporter'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/typeIdMatch.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeIdMatch'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/typeImportStyle.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeImportStyle'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/unionIntersectionSpacing.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/unionIntersectionSpacing'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/useFlowType.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/useFlowType'>; -} -declare module 'eslint-plugin-flowtype/dist/rules/validSyntax.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/validSyntax'>; -} -declare module 'eslint-plugin-flowtype/dist/utilities/checkFlowFileAnnotation.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/checkFlowFileAnnotation'>; -} -declare module 'eslint-plugin-flowtype/dist/utilities/fuzzyStringMatch.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/fuzzyStringMatch'>; -} -declare module 'eslint-plugin-flowtype/dist/utilities/getParameterName.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/getParameterName'>; -} -declare module 'eslint-plugin-flowtype/dist/utilities/getTokenAfterParens.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/getTokenAfterParens'>; -} -declare module 'eslint-plugin-flowtype/dist/utilities/getTokenBeforeParens.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/getTokenBeforeParens'>; -} -declare module 'eslint-plugin-flowtype/dist/utilities/index' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities'>; -} -declare module 'eslint-plugin-flowtype/dist/utilities/index.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities'>; -} -declare module 'eslint-plugin-flowtype/dist/utilities/isFlowFile.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/isFlowFile'>; -} -declare module 'eslint-plugin-flowtype/dist/utilities/isFlowFileAnnotation.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/isFlowFileAnnotation'>; -} -declare module 'eslint-plugin-flowtype/dist/utilities/iterateFunctionNodes.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/iterateFunctionNodes'>; -} -declare module 'eslint-plugin-flowtype/dist/utilities/quoteName.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/quoteName'>; -} -declare module 'eslint-plugin-flowtype/dist/utilities/spacingFixers.js' { - declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/spacingFixers'>; -} diff --git a/flow-typed/npm/eslint-plugin-import_vx.x.x.js b/flow-typed/npm/eslint-plugin-import_vx.x.x.js deleted file mode 100644 index cf5a78640..000000000 --- a/flow-typed/npm/eslint-plugin-import_vx.x.x.js +++ /dev/null @@ -1,423 +0,0 @@ -// flow-typed signature: 255725c553e0a76eb189ac6b9d36424a -// flow-typed version: <>/eslint-plugin-import_v^2.20.1/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'eslint-plugin-import' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'eslint-plugin-import' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'eslint-plugin-import/config/electron' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/config/errors' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/config/react-native' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/config/react' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/config/recommended' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/config/stage-0' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/config/typescript' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/config/warnings' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/core/importType' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/core/staticRequire' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/docsUrl' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/ExportMap' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/importDeclaration' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/default' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/dynamic-import-chunkname' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/export' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/exports-last' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/extensions' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/first' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/group-exports' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/imports-first' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/max-dependencies' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/named' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/namespace' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/newline-after-import' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-absolute-path' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-amd' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-anonymous-default-export' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-commonjs' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-cycle' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-default-export' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-deprecated' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-duplicates' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-dynamic-require' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-extraneous-dependencies' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-internal-modules' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-mutable-exports' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-named-as-default-member' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-named-as-default' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-named-default' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-named-export' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-namespace' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-nodejs-modules' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-relative-parent-imports' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-restricted-paths' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-self-import' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-unassigned-import' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-unresolved' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-unused-modules' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-useless-path-segments' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/no-webpack-loader-syntax' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/order' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/prefer-default-export' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/lib/rules/unambiguous' { - declare module.exports: any; -} - -declare module 'eslint-plugin-import/memo-parser' { - declare module.exports: any; -} - -// Filename aliases -declare module 'eslint-plugin-import/config/electron.js' { - declare module.exports: $Exports<'eslint-plugin-import/config/electron'>; -} -declare module 'eslint-plugin-import/config/errors.js' { - declare module.exports: $Exports<'eslint-plugin-import/config/errors'>; -} -declare module 'eslint-plugin-import/config/react-native.js' { - declare module.exports: $Exports<'eslint-plugin-import/config/react-native'>; -} -declare module 'eslint-plugin-import/config/react.js' { - declare module.exports: $Exports<'eslint-plugin-import/config/react'>; -} -declare module 'eslint-plugin-import/config/recommended.js' { - declare module.exports: $Exports<'eslint-plugin-import/config/recommended'>; -} -declare module 'eslint-plugin-import/config/stage-0.js' { - declare module.exports: $Exports<'eslint-plugin-import/config/stage-0'>; -} -declare module 'eslint-plugin-import/config/typescript.js' { - declare module.exports: $Exports<'eslint-plugin-import/config/typescript'>; -} -declare module 'eslint-plugin-import/config/warnings.js' { - declare module.exports: $Exports<'eslint-plugin-import/config/warnings'>; -} -declare module 'eslint-plugin-import/lib/core/importType.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/core/importType'>; -} -declare module 'eslint-plugin-import/lib/core/staticRequire.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/core/staticRequire'>; -} -declare module 'eslint-plugin-import/lib/docsUrl.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/docsUrl'>; -} -declare module 'eslint-plugin-import/lib/ExportMap.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/ExportMap'>; -} -declare module 'eslint-plugin-import/lib/importDeclaration.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/importDeclaration'>; -} -declare module 'eslint-plugin-import/lib/index' { - declare module.exports: $Exports<'eslint-plugin-import/lib'>; -} -declare module 'eslint-plugin-import/lib/index.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib'>; -} -declare module 'eslint-plugin-import/lib/rules/default.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/default'>; -} -declare module 'eslint-plugin-import/lib/rules/dynamic-import-chunkname.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/dynamic-import-chunkname'>; -} -declare module 'eslint-plugin-import/lib/rules/export.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/export'>; -} -declare module 'eslint-plugin-import/lib/rules/exports-last.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/exports-last'>; -} -declare module 'eslint-plugin-import/lib/rules/extensions.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/extensions'>; -} -declare module 'eslint-plugin-import/lib/rules/first.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/first'>; -} -declare module 'eslint-plugin-import/lib/rules/group-exports.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/group-exports'>; -} -declare module 'eslint-plugin-import/lib/rules/imports-first.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/imports-first'>; -} -declare module 'eslint-plugin-import/lib/rules/max-dependencies.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/max-dependencies'>; -} -declare module 'eslint-plugin-import/lib/rules/named.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/named'>; -} -declare module 'eslint-plugin-import/lib/rules/namespace.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/namespace'>; -} -declare module 'eslint-plugin-import/lib/rules/newline-after-import.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/newline-after-import'>; -} -declare module 'eslint-plugin-import/lib/rules/no-absolute-path.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-absolute-path'>; -} -declare module 'eslint-plugin-import/lib/rules/no-amd.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-amd'>; -} -declare module 'eslint-plugin-import/lib/rules/no-anonymous-default-export.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-anonymous-default-export'>; -} -declare module 'eslint-plugin-import/lib/rules/no-commonjs.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-commonjs'>; -} -declare module 'eslint-plugin-import/lib/rules/no-cycle.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-cycle'>; -} -declare module 'eslint-plugin-import/lib/rules/no-default-export.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-default-export'>; -} -declare module 'eslint-plugin-import/lib/rules/no-deprecated.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-deprecated'>; -} -declare module 'eslint-plugin-import/lib/rules/no-duplicates.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-duplicates'>; -} -declare module 'eslint-plugin-import/lib/rules/no-dynamic-require.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-dynamic-require'>; -} -declare module 'eslint-plugin-import/lib/rules/no-extraneous-dependencies.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-extraneous-dependencies'>; -} -declare module 'eslint-plugin-import/lib/rules/no-internal-modules.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-internal-modules'>; -} -declare module 'eslint-plugin-import/lib/rules/no-mutable-exports.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-mutable-exports'>; -} -declare module 'eslint-plugin-import/lib/rules/no-named-as-default-member.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-named-as-default-member'>; -} -declare module 'eslint-plugin-import/lib/rules/no-named-as-default.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-named-as-default'>; -} -declare module 'eslint-plugin-import/lib/rules/no-named-default.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-named-default'>; -} -declare module 'eslint-plugin-import/lib/rules/no-named-export.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-named-export'>; -} -declare module 'eslint-plugin-import/lib/rules/no-namespace.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-namespace'>; -} -declare module 'eslint-plugin-import/lib/rules/no-nodejs-modules.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-nodejs-modules'>; -} -declare module 'eslint-plugin-import/lib/rules/no-relative-parent-imports.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-relative-parent-imports'>; -} -declare module 'eslint-plugin-import/lib/rules/no-restricted-paths.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-restricted-paths'>; -} -declare module 'eslint-plugin-import/lib/rules/no-self-import.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-self-import'>; -} -declare module 'eslint-plugin-import/lib/rules/no-unassigned-import.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-unassigned-import'>; -} -declare module 'eslint-plugin-import/lib/rules/no-unresolved.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-unresolved'>; -} -declare module 'eslint-plugin-import/lib/rules/no-unused-modules.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-unused-modules'>; -} -declare module 'eslint-plugin-import/lib/rules/no-useless-path-segments.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-useless-path-segments'>; -} -declare module 'eslint-plugin-import/lib/rules/no-webpack-loader-syntax.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/no-webpack-loader-syntax'>; -} -declare module 'eslint-plugin-import/lib/rules/order.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/order'>; -} -declare module 'eslint-plugin-import/lib/rules/prefer-default-export.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/prefer-default-export'>; -} -declare module 'eslint-plugin-import/lib/rules/unambiguous.js' { - declare module.exports: $Exports<'eslint-plugin-import/lib/rules/unambiguous'>; -} -declare module 'eslint-plugin-import/memo-parser/index' { - declare module.exports: $Exports<'eslint-plugin-import/memo-parser'>; -} -declare module 'eslint-plugin-import/memo-parser/index.js' { - declare module.exports: $Exports<'eslint-plugin-import/memo-parser'>; -} diff --git a/flow-typed/npm/eslint-plugin-jest_vx.x.x.js b/flow-typed/npm/eslint-plugin-jest_vx.x.x.js deleted file mode 100644 index 62ddbe5ef..000000000 --- a/flow-typed/npm/eslint-plugin-jest_vx.x.x.js +++ /dev/null @@ -1,357 +0,0 @@ -// flow-typed signature: a36a816146e89485f507f14a6421252d -// flow-typed version: <>/eslint-plugin-jest_v^23.7.0/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'eslint-plugin-jest' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'eslint-plugin-jest' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'eslint-plugin-jest/lib' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/processors/snapshot-processor' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/consistent-test-it' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/expect-expect' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/lowercase-name' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-alias-methods' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-commented-out-tests' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-conditional-expect' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-deprecated-functions' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-disabled-tests' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-duplicate-hooks' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-expect-resolves' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-export' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-focused-tests' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-hooks' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-identical-title' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-if' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-interpolation-in-snapshots' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-jasmine-globals' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-jest-import' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-large-snapshots' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-mocks-import' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-restricted-matchers' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-standalone-expect' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-test-callback' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-test-prefixes' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-test-return-statement' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-truthy-falsy' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/no-try-expect' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/prefer-called-with' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/prefer-expect-assertions' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/prefer-hooks-on-top' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/prefer-inline-snapshots' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/prefer-spy-on' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/prefer-strict-equal' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/prefer-to-be-null' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/prefer-to-be-undefined' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/prefer-to-contain' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/prefer-to-have-length' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/prefer-todo' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/require-to-throw-message' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/require-top-level-describe' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/utils' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/valid-describe' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/valid-expect-in-promise' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/valid-expect' { - declare module.exports: any; -} - -declare module 'eslint-plugin-jest/lib/rules/valid-title' { - declare module.exports: any; -} - -// Filename aliases -declare module 'eslint-plugin-jest/lib/index' { - declare module.exports: $Exports<'eslint-plugin-jest/lib'>; -} -declare module 'eslint-plugin-jest/lib/index.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib'>; -} -declare module 'eslint-plugin-jest/lib/processors/snapshot-processor.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/processors/snapshot-processor'>; -} -declare module 'eslint-plugin-jest/lib/rules/consistent-test-it.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/consistent-test-it'>; -} -declare module 'eslint-plugin-jest/lib/rules/expect-expect.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/expect-expect'>; -} -declare module 'eslint-plugin-jest/lib/rules/lowercase-name.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/lowercase-name'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-alias-methods.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-alias-methods'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-commented-out-tests.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-commented-out-tests'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-conditional-expect.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-conditional-expect'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-deprecated-functions.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-deprecated-functions'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-disabled-tests.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-disabled-tests'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-duplicate-hooks.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-duplicate-hooks'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-expect-resolves.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-expect-resolves'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-export.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-export'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-focused-tests.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-focused-tests'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-hooks.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-hooks'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-identical-title.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-identical-title'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-if.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-if'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-interpolation-in-snapshots.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-interpolation-in-snapshots'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-jasmine-globals.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-jasmine-globals'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-jest-import.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-jest-import'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-large-snapshots.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-large-snapshots'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-mocks-import.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-mocks-import'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-restricted-matchers.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-restricted-matchers'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-standalone-expect.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-standalone-expect'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-test-callback.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-test-callback'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-test-prefixes.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-test-prefixes'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-test-return-statement.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-test-return-statement'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-truthy-falsy.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-truthy-falsy'>; -} -declare module 'eslint-plugin-jest/lib/rules/no-try-expect.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/no-try-expect'>; -} -declare module 'eslint-plugin-jest/lib/rules/prefer-called-with.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/prefer-called-with'>; -} -declare module 'eslint-plugin-jest/lib/rules/prefer-expect-assertions.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/prefer-expect-assertions'>; -} -declare module 'eslint-plugin-jest/lib/rules/prefer-hooks-on-top.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/prefer-hooks-on-top'>; -} -declare module 'eslint-plugin-jest/lib/rules/prefer-inline-snapshots.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/prefer-inline-snapshots'>; -} -declare module 'eslint-plugin-jest/lib/rules/prefer-spy-on.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/prefer-spy-on'>; -} -declare module 'eslint-plugin-jest/lib/rules/prefer-strict-equal.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/prefer-strict-equal'>; -} -declare module 'eslint-plugin-jest/lib/rules/prefer-to-be-null.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/prefer-to-be-null'>; -} -declare module 'eslint-plugin-jest/lib/rules/prefer-to-be-undefined.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/prefer-to-be-undefined'>; -} -declare module 'eslint-plugin-jest/lib/rules/prefer-to-contain.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/prefer-to-contain'>; -} -declare module 'eslint-plugin-jest/lib/rules/prefer-to-have-length.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/prefer-to-have-length'>; -} -declare module 'eslint-plugin-jest/lib/rules/prefer-todo.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/prefer-todo'>; -} -declare module 'eslint-plugin-jest/lib/rules/require-to-throw-message.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/require-to-throw-message'>; -} -declare module 'eslint-plugin-jest/lib/rules/require-top-level-describe.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/require-top-level-describe'>; -} -declare module 'eslint-plugin-jest/lib/rules/utils.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/utils'>; -} -declare module 'eslint-plugin-jest/lib/rules/valid-describe.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/valid-describe'>; -} -declare module 'eslint-plugin-jest/lib/rules/valid-expect-in-promise.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/valid-expect-in-promise'>; -} -declare module 'eslint-plugin-jest/lib/rules/valid-expect.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/valid-expect'>; -} -declare module 'eslint-plugin-jest/lib/rules/valid-title.js' { - declare module.exports: $Exports<'eslint-plugin-jest/lib/rules/valid-title'>; -} diff --git a/flow-typed/npm/eslint-plugin-react-hooks_vx.x.x.js b/flow-typed/npm/eslint-plugin-react-hooks_vx.x.x.js deleted file mode 100644 index 8c81bf79f..000000000 --- a/flow-typed/npm/eslint-plugin-react-hooks_vx.x.x.js +++ /dev/null @@ -1,45 +0,0 @@ -// flow-typed signature: 486d31e3bf0e9d131d7fbb66ff8197af -// flow-typed version: <>/eslint-plugin-react-hooks_v^3.0.0/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'eslint-plugin-react-hooks' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'eslint-plugin-react-hooks' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'eslint-plugin-react-hooks/cjs/eslint-plugin-react-hooks.development' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react-hooks/cjs/eslint-plugin-react-hooks.production.min' { - declare module.exports: any; -} - -// Filename aliases -declare module 'eslint-plugin-react-hooks/cjs/eslint-plugin-react-hooks.development.js' { - declare module.exports: $Exports<'eslint-plugin-react-hooks/cjs/eslint-plugin-react-hooks.development'>; -} -declare module 'eslint-plugin-react-hooks/cjs/eslint-plugin-react-hooks.production.min.js' { - declare module.exports: $Exports<'eslint-plugin-react-hooks/cjs/eslint-plugin-react-hooks.production.min'>; -} -declare module 'eslint-plugin-react-hooks/index' { - declare module.exports: $Exports<'eslint-plugin-react-hooks'>; -} -declare module 'eslint-plugin-react-hooks/index.js' { - declare module.exports: $Exports<'eslint-plugin-react-hooks'>; -} diff --git a/flow-typed/npm/eslint-plugin-react_vx.x.x.js b/flow-typed/npm/eslint-plugin-react_vx.x.x.js deleted file mode 100644 index 39b66a43c..000000000 --- a/flow-typed/npm/eslint-plugin-react_vx.x.x.js +++ /dev/null @@ -1,773 +0,0 @@ -// flow-typed signature: e12d9a909bd0b17e39d467bdc3ce8f1a -// flow-typed version: <>/eslint-plugin-react_v^7.18.3/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'eslint-plugin-react' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'eslint-plugin-react' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'eslint-plugin-react/lib/rules/boolean-prop-naming' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/button-has-type' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/default-props-match-prop-types' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/destructuring-assignment' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/display-name' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/forbid-component-props' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/forbid-dom-props' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/forbid-elements' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/forbid-foreign-prop-types' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/forbid-prop-types' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/function-component-definition' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-boolean-value' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-child-element-spacing' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-closing-bracket-location' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-closing-tag-location' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-curly-brace-presence' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-curly-newline' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-curly-spacing' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-equals-spacing' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-filename-extension' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-first-prop-new-line' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-fragments' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-handler-names' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-indent-props' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-indent' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-key' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-max-depth' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-max-props-per-line' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-no-bind' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-no-comment-textnodes' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-no-duplicate-props' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-no-literals' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-no-script-url' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-no-target-blank' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-no-undef' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-no-useless-fragment' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-one-expression-per-line' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-pascal-case' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-props-no-multi-spaces' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-props-no-spreading' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-sort-default-props' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-sort-props' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-space-before-closing' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-tag-spacing' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-uses-react' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-uses-vars' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/jsx-wrap-multilines' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-access-state-in-setstate' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-adjacent-inline-elements' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-array-index-key' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-children-prop' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-danger-with-children' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-danger' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-deprecated' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-did-mount-set-state' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-did-update-set-state' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-direct-mutation-state' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-find-dom-node' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-is-mounted' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-multi-comp' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-redundant-should-component-update' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-render-return-value' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-set-state' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-string-refs' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-this-in-sfc' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-typos' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-unescaped-entities' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-unknown-property' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-unsafe' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-unused-prop-types' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-unused-state' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/no-will-update-set-state' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/prefer-es6-class' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/prefer-read-only-props' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/prefer-stateless-function' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/prop-types' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/react-in-jsx-scope' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/require-default-props' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/require-optimization' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/require-render-return' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/self-closing-comp' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/sort-comp' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/sort-prop-types' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/state-in-constructor' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/static-property-placement' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/style-prop-object' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/rules/void-dom-elements-no-children' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/util/annotations' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/util/ast' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/util/Components' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/util/defaultProps' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/util/docsUrl' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/util/error' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/util/getTokenBeforeClosingBracket' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/util/jsx' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/util/linkComponents' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/util/log' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/util/makeNoMethodSetStateRule' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/util/pragma' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/util/props' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/util/propTypes' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/util/propTypesSort' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/util/propWrapper' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/util/usedPropTypes' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/util/variable' { - declare module.exports: any; -} - -declare module 'eslint-plugin-react/lib/util/version' { - declare module.exports: any; -} - -// Filename aliases -declare module 'eslint-plugin-react/index' { - declare module.exports: $Exports<'eslint-plugin-react'>; -} -declare module 'eslint-plugin-react/index.js' { - declare module.exports: $Exports<'eslint-plugin-react'>; -} -declare module 'eslint-plugin-react/lib/rules/boolean-prop-naming.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/boolean-prop-naming'>; -} -declare module 'eslint-plugin-react/lib/rules/button-has-type.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/button-has-type'>; -} -declare module 'eslint-plugin-react/lib/rules/default-props-match-prop-types.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/default-props-match-prop-types'>; -} -declare module 'eslint-plugin-react/lib/rules/destructuring-assignment.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/destructuring-assignment'>; -} -declare module 'eslint-plugin-react/lib/rules/display-name.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/display-name'>; -} -declare module 'eslint-plugin-react/lib/rules/forbid-component-props.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/forbid-component-props'>; -} -declare module 'eslint-plugin-react/lib/rules/forbid-dom-props.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/forbid-dom-props'>; -} -declare module 'eslint-plugin-react/lib/rules/forbid-elements.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/forbid-elements'>; -} -declare module 'eslint-plugin-react/lib/rules/forbid-foreign-prop-types.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/forbid-foreign-prop-types'>; -} -declare module 'eslint-plugin-react/lib/rules/forbid-prop-types.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/forbid-prop-types'>; -} -declare module 'eslint-plugin-react/lib/rules/function-component-definition.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/function-component-definition'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-boolean-value.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-boolean-value'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-child-element-spacing.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-child-element-spacing'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-closing-bracket-location.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-closing-bracket-location'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-closing-tag-location.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-closing-tag-location'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-curly-brace-presence.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-curly-brace-presence'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-curly-newline.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-curly-newline'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-curly-spacing.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-curly-spacing'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-equals-spacing.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-equals-spacing'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-filename-extension.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-filename-extension'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-first-prop-new-line.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-first-prop-new-line'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-fragments.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-fragments'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-handler-names.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-handler-names'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-indent-props.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-indent-props'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-indent.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-indent'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-key.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-key'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-max-depth.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-max-depth'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-max-props-per-line.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-max-props-per-line'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-no-bind.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-no-bind'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-no-comment-textnodes.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-no-comment-textnodes'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-no-duplicate-props.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-no-duplicate-props'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-no-literals.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-no-literals'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-no-script-url.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-no-script-url'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-no-target-blank.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-no-target-blank'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-no-undef.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-no-undef'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-no-useless-fragment.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-no-useless-fragment'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-one-expression-per-line.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-one-expression-per-line'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-pascal-case.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-pascal-case'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-props-no-multi-spaces.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-props-no-multi-spaces'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-props-no-spreading.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-props-no-spreading'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-sort-default-props.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-sort-default-props'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-sort-props.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-sort-props'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-space-before-closing.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-space-before-closing'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-tag-spacing.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-tag-spacing'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-uses-react.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-uses-react'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-uses-vars.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-uses-vars'>; -} -declare module 'eslint-plugin-react/lib/rules/jsx-wrap-multilines.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/jsx-wrap-multilines'>; -} -declare module 'eslint-plugin-react/lib/rules/no-access-state-in-setstate.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-access-state-in-setstate'>; -} -declare module 'eslint-plugin-react/lib/rules/no-adjacent-inline-elements.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-adjacent-inline-elements'>; -} -declare module 'eslint-plugin-react/lib/rules/no-array-index-key.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-array-index-key'>; -} -declare module 'eslint-plugin-react/lib/rules/no-children-prop.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-children-prop'>; -} -declare module 'eslint-plugin-react/lib/rules/no-danger-with-children.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-danger-with-children'>; -} -declare module 'eslint-plugin-react/lib/rules/no-danger.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-danger'>; -} -declare module 'eslint-plugin-react/lib/rules/no-deprecated.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-deprecated'>; -} -declare module 'eslint-plugin-react/lib/rules/no-did-mount-set-state.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-did-mount-set-state'>; -} -declare module 'eslint-plugin-react/lib/rules/no-did-update-set-state.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-did-update-set-state'>; -} -declare module 'eslint-plugin-react/lib/rules/no-direct-mutation-state.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-direct-mutation-state'>; -} -declare module 'eslint-plugin-react/lib/rules/no-find-dom-node.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-find-dom-node'>; -} -declare module 'eslint-plugin-react/lib/rules/no-is-mounted.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-is-mounted'>; -} -declare module 'eslint-plugin-react/lib/rules/no-multi-comp.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-multi-comp'>; -} -declare module 'eslint-plugin-react/lib/rules/no-redundant-should-component-update.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-redundant-should-component-update'>; -} -declare module 'eslint-plugin-react/lib/rules/no-render-return-value.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-render-return-value'>; -} -declare module 'eslint-plugin-react/lib/rules/no-set-state.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-set-state'>; -} -declare module 'eslint-plugin-react/lib/rules/no-string-refs.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-string-refs'>; -} -declare module 'eslint-plugin-react/lib/rules/no-this-in-sfc.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-this-in-sfc'>; -} -declare module 'eslint-plugin-react/lib/rules/no-typos.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-typos'>; -} -declare module 'eslint-plugin-react/lib/rules/no-unescaped-entities.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-unescaped-entities'>; -} -declare module 'eslint-plugin-react/lib/rules/no-unknown-property.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-unknown-property'>; -} -declare module 'eslint-plugin-react/lib/rules/no-unsafe.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-unsafe'>; -} -declare module 'eslint-plugin-react/lib/rules/no-unused-prop-types.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-unused-prop-types'>; -} -declare module 'eslint-plugin-react/lib/rules/no-unused-state.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-unused-state'>; -} -declare module 'eslint-plugin-react/lib/rules/no-will-update-set-state.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/no-will-update-set-state'>; -} -declare module 'eslint-plugin-react/lib/rules/prefer-es6-class.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/prefer-es6-class'>; -} -declare module 'eslint-plugin-react/lib/rules/prefer-read-only-props.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/prefer-read-only-props'>; -} -declare module 'eslint-plugin-react/lib/rules/prefer-stateless-function.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/prefer-stateless-function'>; -} -declare module 'eslint-plugin-react/lib/rules/prop-types.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/prop-types'>; -} -declare module 'eslint-plugin-react/lib/rules/react-in-jsx-scope.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/react-in-jsx-scope'>; -} -declare module 'eslint-plugin-react/lib/rules/require-default-props.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/require-default-props'>; -} -declare module 'eslint-plugin-react/lib/rules/require-optimization.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/require-optimization'>; -} -declare module 'eslint-plugin-react/lib/rules/require-render-return.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/require-render-return'>; -} -declare module 'eslint-plugin-react/lib/rules/self-closing-comp.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/self-closing-comp'>; -} -declare module 'eslint-plugin-react/lib/rules/sort-comp.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/sort-comp'>; -} -declare module 'eslint-plugin-react/lib/rules/sort-prop-types.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/sort-prop-types'>; -} -declare module 'eslint-plugin-react/lib/rules/state-in-constructor.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/state-in-constructor'>; -} -declare module 'eslint-plugin-react/lib/rules/static-property-placement.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/static-property-placement'>; -} -declare module 'eslint-plugin-react/lib/rules/style-prop-object.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/style-prop-object'>; -} -declare module 'eslint-plugin-react/lib/rules/void-dom-elements-no-children.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/rules/void-dom-elements-no-children'>; -} -declare module 'eslint-plugin-react/lib/util/annotations.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/util/annotations'>; -} -declare module 'eslint-plugin-react/lib/util/ast.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/util/ast'>; -} -declare module 'eslint-plugin-react/lib/util/Components.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/util/Components'>; -} -declare module 'eslint-plugin-react/lib/util/defaultProps.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/util/defaultProps'>; -} -declare module 'eslint-plugin-react/lib/util/docsUrl.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/util/docsUrl'>; -} -declare module 'eslint-plugin-react/lib/util/error.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/util/error'>; -} -declare module 'eslint-plugin-react/lib/util/getTokenBeforeClosingBracket.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/util/getTokenBeforeClosingBracket'>; -} -declare module 'eslint-plugin-react/lib/util/jsx.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/util/jsx'>; -} -declare module 'eslint-plugin-react/lib/util/linkComponents.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/util/linkComponents'>; -} -declare module 'eslint-plugin-react/lib/util/log.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/util/log'>; -} -declare module 'eslint-plugin-react/lib/util/makeNoMethodSetStateRule.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/util/makeNoMethodSetStateRule'>; -} -declare module 'eslint-plugin-react/lib/util/pragma.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/util/pragma'>; -} -declare module 'eslint-plugin-react/lib/util/props.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/util/props'>; -} -declare module 'eslint-plugin-react/lib/util/propTypes.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/util/propTypes'>; -} -declare module 'eslint-plugin-react/lib/util/propTypesSort.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/util/propTypesSort'>; -} -declare module 'eslint-plugin-react/lib/util/propWrapper.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/util/propWrapper'>; -} -declare module 'eslint-plugin-react/lib/util/usedPropTypes.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/util/usedPropTypes'>; -} -declare module 'eslint-plugin-react/lib/util/variable.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/util/variable'>; -} -declare module 'eslint-plugin-react/lib/util/version.js' { - declare module.exports: $Exports<'eslint-plugin-react/lib/util/version'>; -} diff --git a/flow-typed/npm/eslint_vx.x.x.js b/flow-typed/npm/eslint_vx.x.x.js deleted file mode 100644 index 3476bb006..000000000 --- a/flow-typed/npm/eslint_vx.x.x.js +++ /dev/null @@ -1,2674 +0,0 @@ -// flow-typed signature: 4181ac7ffe9ab0024f5b7362e99ed3e3 -// flow-typed version: <>/eslint_v^6.8.0/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'eslint' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'eslint' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'eslint/bin/eslint' { - declare module.exports: any; -} - -declare module 'eslint/conf/config-schema' { - declare module.exports: any; -} - -declare module 'eslint/conf/default-cli-options' { - declare module.exports: any; -} - -declare module 'eslint/conf/environments' { - declare module.exports: any; -} - -declare module 'eslint/conf/eslint-all' { - declare module.exports: any; -} - -declare module 'eslint/conf/eslint-recommended' { - declare module.exports: any; -} - -declare module 'eslint/lib/api' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/cascading-config-array-factory' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/cli-engine' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/config-array-factory' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/config-array/config-array' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/config-array/config-dependency' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/config-array/extracted-config' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/config-array/ignore-pattern' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/config-array' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/config-array/override-tester' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/file-enumerator' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/formatters/checkstyle' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/formatters/codeframe' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/formatters/compact' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/formatters/html' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/formatters/jslint-xml' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/formatters/json-with-metadata' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/formatters/json' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/formatters/junit' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/formatters/stylish' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/formatters/table' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/formatters/tap' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/formatters/unix' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/formatters/visualstudio' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/hash' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/lint-result-cache' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/load-rules' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli-engine/xml-escape' { - declare module.exports: any; -} - -declare module 'eslint/lib/cli' { - declare module.exports: any; -} - -declare module 'eslint/lib/init/autoconfig' { - declare module.exports: any; -} - -declare module 'eslint/lib/init/config-file' { - declare module.exports: any; -} - -declare module 'eslint/lib/init/config-initializer' { - declare module.exports: any; -} - -declare module 'eslint/lib/init/config-rule' { - declare module.exports: any; -} - -declare module 'eslint/lib/init/npm-utils' { - declare module.exports: any; -} - -declare module 'eslint/lib/init/source-code-utils' { - declare module.exports: any; -} - -declare module 'eslint/lib/linter/apply-disable-directives' { - declare module.exports: any; -} - -declare module 'eslint/lib/linter/code-path-analysis/code-path-analyzer' { - declare module.exports: any; -} - -declare module 'eslint/lib/linter/code-path-analysis/code-path-segment' { - declare module.exports: any; -} - -declare module 'eslint/lib/linter/code-path-analysis/code-path-state' { - declare module.exports: any; -} - -declare module 'eslint/lib/linter/code-path-analysis/code-path' { - declare module.exports: any; -} - -declare module 'eslint/lib/linter/code-path-analysis/debug-helpers' { - declare module.exports: any; -} - -declare module 'eslint/lib/linter/code-path-analysis/fork-context' { - declare module.exports: any; -} - -declare module 'eslint/lib/linter/code-path-analysis/id-generator' { - declare module.exports: any; -} - -declare module 'eslint/lib/linter/config-comment-parser' { - declare module.exports: any; -} - -declare module 'eslint/lib/linter' { - declare module.exports: any; -} - -declare module 'eslint/lib/linter/interpolate' { - declare module.exports: any; -} - -declare module 'eslint/lib/linter/linter' { - declare module.exports: any; -} - -declare module 'eslint/lib/linter/node-event-generator' { - declare module.exports: any; -} - -declare module 'eslint/lib/linter/report-translator' { - declare module.exports: any; -} - -declare module 'eslint/lib/linter/rule-fixer' { - declare module.exports: any; -} - -declare module 'eslint/lib/linter/rules' { - declare module.exports: any; -} - -declare module 'eslint/lib/linter/safe-emitter' { - declare module.exports: any; -} - -declare module 'eslint/lib/linter/source-code-fixer' { - declare module.exports: any; -} - -declare module 'eslint/lib/linter/timing' { - declare module.exports: any; -} - -declare module 'eslint/lib/options' { - declare module.exports: any; -} - -declare module 'eslint/lib/rule-tester' { - declare module.exports: any; -} - -declare module 'eslint/lib/rule-tester/rule-tester' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/accessor-pairs' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/array-bracket-newline' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/array-bracket-spacing' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/array-callback-return' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/array-element-newline' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/arrow-body-style' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/arrow-parens' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/arrow-spacing' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/block-scoped-var' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/block-spacing' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/brace-style' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/callback-return' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/camelcase' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/capitalized-comments' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/class-methods-use-this' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/comma-dangle' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/comma-spacing' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/comma-style' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/complexity' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/computed-property-spacing' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/consistent-return' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/consistent-this' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/constructor-super' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/curly' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/default-case' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/default-param-last' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/dot-location' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/dot-notation' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/eol-last' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/eqeqeq' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/for-direction' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/func-call-spacing' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/func-name-matching' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/func-names' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/func-style' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/function-call-argument-newline' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/function-paren-newline' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/generator-star-spacing' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/getter-return' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/global-require' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/grouped-accessor-pairs' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/guard-for-in' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/handle-callback-err' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/id-blacklist' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/id-length' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/id-match' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/implicit-arrow-linebreak' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/indent-legacy' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/indent' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/init-declarations' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/jsx-quotes' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/key-spacing' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/keyword-spacing' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/line-comment-position' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/linebreak-style' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/lines-around-comment' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/lines-around-directive' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/lines-between-class-members' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/max-classes-per-file' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/max-depth' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/max-len' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/max-lines-per-function' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/max-lines' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/max-nested-callbacks' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/max-params' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/max-statements-per-line' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/max-statements' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/multiline-comment-style' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/multiline-ternary' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/new-cap' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/new-parens' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/newline-after-var' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/newline-before-return' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/newline-per-chained-call' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-alert' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-array-constructor' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-async-promise-executor' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-await-in-loop' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-bitwise' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-buffer-constructor' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-caller' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-case-declarations' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-catch-shadow' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-class-assign' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-compare-neg-zero' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-cond-assign' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-confusing-arrow' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-console' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-const-assign' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-constant-condition' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-constructor-return' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-continue' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-control-regex' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-debugger' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-delete-var' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-div-regex' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-dupe-args' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-dupe-class-members' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-dupe-else-if' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-dupe-keys' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-duplicate-case' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-duplicate-imports' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-else-return' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-empty-character-class' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-empty-function' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-empty-pattern' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-empty' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-eq-null' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-eval' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-ex-assign' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-extend-native' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-extra-bind' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-extra-boolean-cast' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-extra-label' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-extra-parens' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-extra-semi' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-fallthrough' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-floating-decimal' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-func-assign' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-global-assign' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-implicit-coercion' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-implicit-globals' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-implied-eval' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-import-assign' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-inline-comments' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-inner-declarations' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-invalid-regexp' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-invalid-this' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-irregular-whitespace' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-iterator' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-label-var' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-labels' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-lone-blocks' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-lonely-if' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-loop-func' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-magic-numbers' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-misleading-character-class' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-mixed-operators' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-mixed-requires' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-mixed-spaces-and-tabs' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-multi-assign' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-multi-spaces' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-multi-str' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-multiple-empty-lines' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-native-reassign' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-negated-condition' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-negated-in-lhs' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-nested-ternary' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-new-func' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-new-object' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-new-require' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-new-symbol' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-new-wrappers' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-new' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-obj-calls' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-octal-escape' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-octal' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-param-reassign' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-path-concat' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-plusplus' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-process-env' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-process-exit' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-proto' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-prototype-builtins' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-redeclare' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-regex-spaces' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-restricted-globals' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-restricted-imports' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-restricted-modules' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-restricted-properties' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-restricted-syntax' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-return-assign' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-return-await' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-script-url' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-self-assign' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-self-compare' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-sequences' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-setter-return' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-shadow-restricted-names' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-shadow' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-spaced-func' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-sparse-arrays' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-sync' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-tabs' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-template-curly-in-string' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-ternary' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-this-before-super' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-throw-literal' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-trailing-spaces' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-undef-init' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-undef' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-undefined' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-underscore-dangle' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-unexpected-multiline' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-unmodified-loop-condition' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-unneeded-ternary' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-unreachable' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-unsafe-finally' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-unsafe-negation' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-unused-expressions' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-unused-labels' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-unused-vars' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-use-before-define' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-useless-call' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-useless-catch' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-useless-computed-key' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-useless-concat' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-useless-constructor' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-useless-escape' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-useless-rename' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-useless-return' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-var' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-void' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-warning-comments' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-whitespace-before-property' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/no-with' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/nonblock-statement-body-position' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/object-curly-newline' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/object-curly-spacing' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/object-property-newline' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/object-shorthand' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/one-var-declaration-per-line' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/one-var' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/operator-assignment' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/operator-linebreak' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/padded-blocks' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/padding-line-between-statements' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/prefer-arrow-callback' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/prefer-const' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/prefer-destructuring' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/prefer-exponentiation-operator' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/prefer-named-capture-group' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/prefer-numeric-literals' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/prefer-object-spread' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/prefer-promise-reject-errors' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/prefer-reflect' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/prefer-regex-literals' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/prefer-rest-params' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/prefer-spread' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/prefer-template' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/quote-props' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/quotes' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/radix' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/require-atomic-updates' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/require-await' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/require-jsdoc' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/require-unicode-regexp' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/require-yield' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/rest-spread-spacing' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/semi-spacing' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/semi-style' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/semi' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/sort-imports' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/sort-keys' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/sort-vars' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/space-before-blocks' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/space-before-function-paren' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/space-in-parens' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/space-infix-ops' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/space-unary-ops' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/spaced-comment' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/strict' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/switch-colon-spacing' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/symbol-description' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/template-curly-spacing' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/template-tag-spacing' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/unicode-bom' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/use-isnan' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/utils/ast-utils' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/utils/fix-tracker' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/utils/keywords' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/utils/lazy-loading-rule-map' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/utils/patterns/letters' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/utils/unicode' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/utils/unicode/is-combining-character' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/utils/unicode/is-emoji-modifier' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/utils/unicode/is-regional-indicator-symbol' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/utils/unicode/is-surrogate-pair' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/valid-jsdoc' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/valid-typeof' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/vars-on-top' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/wrap-iife' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/wrap-regex' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/yield-star-spacing' { - declare module.exports: any; -} - -declare module 'eslint/lib/rules/yoda' { - declare module.exports: any; -} - -declare module 'eslint/lib/shared/ajv' { - declare module.exports: any; -} - -declare module 'eslint/lib/shared/ast-utils' { - declare module.exports: any; -} - -declare module 'eslint/lib/shared/config-ops' { - declare module.exports: any; -} - -declare module 'eslint/lib/shared/config-validator' { - declare module.exports: any; -} - -declare module 'eslint/lib/shared/logging' { - declare module.exports: any; -} - -declare module 'eslint/lib/shared/naming' { - declare module.exports: any; -} - -declare module 'eslint/lib/shared/relative-module-resolver' { - declare module.exports: any; -} - -declare module 'eslint/lib/shared/runtime-info' { - declare module.exports: any; -} - -declare module 'eslint/lib/shared/traverser' { - declare module.exports: any; -} - -declare module 'eslint/lib/shared/types' { - declare module.exports: any; -} - -declare module 'eslint/lib/source-code' { - declare module.exports: any; -} - -declare module 'eslint/lib/source-code/source-code' { - declare module.exports: any; -} - -declare module 'eslint/lib/source-code/token-store/backward-token-comment-cursor' { - declare module.exports: any; -} - -declare module 'eslint/lib/source-code/token-store/backward-token-cursor' { - declare module.exports: any; -} - -declare module 'eslint/lib/source-code/token-store/cursor' { - declare module.exports: any; -} - -declare module 'eslint/lib/source-code/token-store/cursors' { - declare module.exports: any; -} - -declare module 'eslint/lib/source-code/token-store/decorative-cursor' { - declare module.exports: any; -} - -declare module 'eslint/lib/source-code/token-store/filter-cursor' { - declare module.exports: any; -} - -declare module 'eslint/lib/source-code/token-store/forward-token-comment-cursor' { - declare module.exports: any; -} - -declare module 'eslint/lib/source-code/token-store/forward-token-cursor' { - declare module.exports: any; -} - -declare module 'eslint/lib/source-code/token-store' { - declare module.exports: any; -} - -declare module 'eslint/lib/source-code/token-store/limit-cursor' { - declare module.exports: any; -} - -declare module 'eslint/lib/source-code/token-store/padded-token-cursor' { - declare module.exports: any; -} - -declare module 'eslint/lib/source-code/token-store/skip-cursor' { - declare module.exports: any; -} - -declare module 'eslint/lib/source-code/token-store/utils' { - declare module.exports: any; -} - -// Filename aliases -declare module 'eslint/bin/eslint.js' { - declare module.exports: $Exports<'eslint/bin/eslint'>; -} -declare module 'eslint/conf/config-schema.js' { - declare module.exports: $Exports<'eslint/conf/config-schema'>; -} -declare module 'eslint/conf/default-cli-options.js' { - declare module.exports: $Exports<'eslint/conf/default-cli-options'>; -} -declare module 'eslint/conf/environments.js' { - declare module.exports: $Exports<'eslint/conf/environments'>; -} -declare module 'eslint/conf/eslint-all.js' { - declare module.exports: $Exports<'eslint/conf/eslint-all'>; -} -declare module 'eslint/conf/eslint-recommended.js' { - declare module.exports: $Exports<'eslint/conf/eslint-recommended'>; -} -declare module 'eslint/lib/api.js' { - declare module.exports: $Exports<'eslint/lib/api'>; -} -declare module 'eslint/lib/cli-engine/cascading-config-array-factory.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/cascading-config-array-factory'>; -} -declare module 'eslint/lib/cli-engine/cli-engine.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/cli-engine'>; -} -declare module 'eslint/lib/cli-engine/config-array-factory.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/config-array-factory'>; -} -declare module 'eslint/lib/cli-engine/config-array/config-array.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/config-array/config-array'>; -} -declare module 'eslint/lib/cli-engine/config-array/config-dependency.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/config-array/config-dependency'>; -} -declare module 'eslint/lib/cli-engine/config-array/extracted-config.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/config-array/extracted-config'>; -} -declare module 'eslint/lib/cli-engine/config-array/ignore-pattern.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/config-array/ignore-pattern'>; -} -declare module 'eslint/lib/cli-engine/config-array/index' { - declare module.exports: $Exports<'eslint/lib/cli-engine/config-array'>; -} -declare module 'eslint/lib/cli-engine/config-array/index.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/config-array'>; -} -declare module 'eslint/lib/cli-engine/config-array/override-tester.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/config-array/override-tester'>; -} -declare module 'eslint/lib/cli-engine/file-enumerator.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/file-enumerator'>; -} -declare module 'eslint/lib/cli-engine/formatters/checkstyle.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/formatters/checkstyle'>; -} -declare module 'eslint/lib/cli-engine/formatters/codeframe.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/formatters/codeframe'>; -} -declare module 'eslint/lib/cli-engine/formatters/compact.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/formatters/compact'>; -} -declare module 'eslint/lib/cli-engine/formatters/html.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/formatters/html'>; -} -declare module 'eslint/lib/cli-engine/formatters/jslint-xml.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/formatters/jslint-xml'>; -} -declare module 'eslint/lib/cli-engine/formatters/json-with-metadata.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/formatters/json-with-metadata'>; -} -declare module 'eslint/lib/cli-engine/formatters/json.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/formatters/json'>; -} -declare module 'eslint/lib/cli-engine/formatters/junit.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/formatters/junit'>; -} -declare module 'eslint/lib/cli-engine/formatters/stylish.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/formatters/stylish'>; -} -declare module 'eslint/lib/cli-engine/formatters/table.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/formatters/table'>; -} -declare module 'eslint/lib/cli-engine/formatters/tap.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/formatters/tap'>; -} -declare module 'eslint/lib/cli-engine/formatters/unix.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/formatters/unix'>; -} -declare module 'eslint/lib/cli-engine/formatters/visualstudio.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/formatters/visualstudio'>; -} -declare module 'eslint/lib/cli-engine/hash.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/hash'>; -} -declare module 'eslint/lib/cli-engine/index' { - declare module.exports: $Exports<'eslint/lib/cli-engine'>; -} -declare module 'eslint/lib/cli-engine/index.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine'>; -} -declare module 'eslint/lib/cli-engine/lint-result-cache.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/lint-result-cache'>; -} -declare module 'eslint/lib/cli-engine/load-rules.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/load-rules'>; -} -declare module 'eslint/lib/cli-engine/xml-escape.js' { - declare module.exports: $Exports<'eslint/lib/cli-engine/xml-escape'>; -} -declare module 'eslint/lib/cli.js' { - declare module.exports: $Exports<'eslint/lib/cli'>; -} -declare module 'eslint/lib/init/autoconfig.js' { - declare module.exports: $Exports<'eslint/lib/init/autoconfig'>; -} -declare module 'eslint/lib/init/config-file.js' { - declare module.exports: $Exports<'eslint/lib/init/config-file'>; -} -declare module 'eslint/lib/init/config-initializer.js' { - declare module.exports: $Exports<'eslint/lib/init/config-initializer'>; -} -declare module 'eslint/lib/init/config-rule.js' { - declare module.exports: $Exports<'eslint/lib/init/config-rule'>; -} -declare module 'eslint/lib/init/npm-utils.js' { - declare module.exports: $Exports<'eslint/lib/init/npm-utils'>; -} -declare module 'eslint/lib/init/source-code-utils.js' { - declare module.exports: $Exports<'eslint/lib/init/source-code-utils'>; -} -declare module 'eslint/lib/linter/apply-disable-directives.js' { - declare module.exports: $Exports<'eslint/lib/linter/apply-disable-directives'>; -} -declare module 'eslint/lib/linter/code-path-analysis/code-path-analyzer.js' { - declare module.exports: $Exports<'eslint/lib/linter/code-path-analysis/code-path-analyzer'>; -} -declare module 'eslint/lib/linter/code-path-analysis/code-path-segment.js' { - declare module.exports: $Exports<'eslint/lib/linter/code-path-analysis/code-path-segment'>; -} -declare module 'eslint/lib/linter/code-path-analysis/code-path-state.js' { - declare module.exports: $Exports<'eslint/lib/linter/code-path-analysis/code-path-state'>; -} -declare module 'eslint/lib/linter/code-path-analysis/code-path.js' { - declare module.exports: $Exports<'eslint/lib/linter/code-path-analysis/code-path'>; -} -declare module 'eslint/lib/linter/code-path-analysis/debug-helpers.js' { - declare module.exports: $Exports<'eslint/lib/linter/code-path-analysis/debug-helpers'>; -} -declare module 'eslint/lib/linter/code-path-analysis/fork-context.js' { - declare module.exports: $Exports<'eslint/lib/linter/code-path-analysis/fork-context'>; -} -declare module 'eslint/lib/linter/code-path-analysis/id-generator.js' { - declare module.exports: $Exports<'eslint/lib/linter/code-path-analysis/id-generator'>; -} -declare module 'eslint/lib/linter/config-comment-parser.js' { - declare module.exports: $Exports<'eslint/lib/linter/config-comment-parser'>; -} -declare module 'eslint/lib/linter/index' { - declare module.exports: $Exports<'eslint/lib/linter'>; -} -declare module 'eslint/lib/linter/index.js' { - declare module.exports: $Exports<'eslint/lib/linter'>; -} -declare module 'eslint/lib/linter/interpolate.js' { - declare module.exports: $Exports<'eslint/lib/linter/interpolate'>; -} -declare module 'eslint/lib/linter/linter.js' { - declare module.exports: $Exports<'eslint/lib/linter/linter'>; -} -declare module 'eslint/lib/linter/node-event-generator.js' { - declare module.exports: $Exports<'eslint/lib/linter/node-event-generator'>; -} -declare module 'eslint/lib/linter/report-translator.js' { - declare module.exports: $Exports<'eslint/lib/linter/report-translator'>; -} -declare module 'eslint/lib/linter/rule-fixer.js' { - declare module.exports: $Exports<'eslint/lib/linter/rule-fixer'>; -} -declare module 'eslint/lib/linter/rules.js' { - declare module.exports: $Exports<'eslint/lib/linter/rules'>; -} -declare module 'eslint/lib/linter/safe-emitter.js' { - declare module.exports: $Exports<'eslint/lib/linter/safe-emitter'>; -} -declare module 'eslint/lib/linter/source-code-fixer.js' { - declare module.exports: $Exports<'eslint/lib/linter/source-code-fixer'>; -} -declare module 'eslint/lib/linter/timing.js' { - declare module.exports: $Exports<'eslint/lib/linter/timing'>; -} -declare module 'eslint/lib/options.js' { - declare module.exports: $Exports<'eslint/lib/options'>; -} -declare module 'eslint/lib/rule-tester/index' { - declare module.exports: $Exports<'eslint/lib/rule-tester'>; -} -declare module 'eslint/lib/rule-tester/index.js' { - declare module.exports: $Exports<'eslint/lib/rule-tester'>; -} -declare module 'eslint/lib/rule-tester/rule-tester.js' { - declare module.exports: $Exports<'eslint/lib/rule-tester/rule-tester'>; -} -declare module 'eslint/lib/rules/accessor-pairs.js' { - declare module.exports: $Exports<'eslint/lib/rules/accessor-pairs'>; -} -declare module 'eslint/lib/rules/array-bracket-newline.js' { - declare module.exports: $Exports<'eslint/lib/rules/array-bracket-newline'>; -} -declare module 'eslint/lib/rules/array-bracket-spacing.js' { - declare module.exports: $Exports<'eslint/lib/rules/array-bracket-spacing'>; -} -declare module 'eslint/lib/rules/array-callback-return.js' { - declare module.exports: $Exports<'eslint/lib/rules/array-callback-return'>; -} -declare module 'eslint/lib/rules/array-element-newline.js' { - declare module.exports: $Exports<'eslint/lib/rules/array-element-newline'>; -} -declare module 'eslint/lib/rules/arrow-body-style.js' { - declare module.exports: $Exports<'eslint/lib/rules/arrow-body-style'>; -} -declare module 'eslint/lib/rules/arrow-parens.js' { - declare module.exports: $Exports<'eslint/lib/rules/arrow-parens'>; -} -declare module 'eslint/lib/rules/arrow-spacing.js' { - declare module.exports: $Exports<'eslint/lib/rules/arrow-spacing'>; -} -declare module 'eslint/lib/rules/block-scoped-var.js' { - declare module.exports: $Exports<'eslint/lib/rules/block-scoped-var'>; -} -declare module 'eslint/lib/rules/block-spacing.js' { - declare module.exports: $Exports<'eslint/lib/rules/block-spacing'>; -} -declare module 'eslint/lib/rules/brace-style.js' { - declare module.exports: $Exports<'eslint/lib/rules/brace-style'>; -} -declare module 'eslint/lib/rules/callback-return.js' { - declare module.exports: $Exports<'eslint/lib/rules/callback-return'>; -} -declare module 'eslint/lib/rules/camelcase.js' { - declare module.exports: $Exports<'eslint/lib/rules/camelcase'>; -} -declare module 'eslint/lib/rules/capitalized-comments.js' { - declare module.exports: $Exports<'eslint/lib/rules/capitalized-comments'>; -} -declare module 'eslint/lib/rules/class-methods-use-this.js' { - declare module.exports: $Exports<'eslint/lib/rules/class-methods-use-this'>; -} -declare module 'eslint/lib/rules/comma-dangle.js' { - declare module.exports: $Exports<'eslint/lib/rules/comma-dangle'>; -} -declare module 'eslint/lib/rules/comma-spacing.js' { - declare module.exports: $Exports<'eslint/lib/rules/comma-spacing'>; -} -declare module 'eslint/lib/rules/comma-style.js' { - declare module.exports: $Exports<'eslint/lib/rules/comma-style'>; -} -declare module 'eslint/lib/rules/complexity.js' { - declare module.exports: $Exports<'eslint/lib/rules/complexity'>; -} -declare module 'eslint/lib/rules/computed-property-spacing.js' { - declare module.exports: $Exports<'eslint/lib/rules/computed-property-spacing'>; -} -declare module 'eslint/lib/rules/consistent-return.js' { - declare module.exports: $Exports<'eslint/lib/rules/consistent-return'>; -} -declare module 'eslint/lib/rules/consistent-this.js' { - declare module.exports: $Exports<'eslint/lib/rules/consistent-this'>; -} -declare module 'eslint/lib/rules/constructor-super.js' { - declare module.exports: $Exports<'eslint/lib/rules/constructor-super'>; -} -declare module 'eslint/lib/rules/curly.js' { - declare module.exports: $Exports<'eslint/lib/rules/curly'>; -} -declare module 'eslint/lib/rules/default-case.js' { - declare module.exports: $Exports<'eslint/lib/rules/default-case'>; -} -declare module 'eslint/lib/rules/default-param-last.js' { - declare module.exports: $Exports<'eslint/lib/rules/default-param-last'>; -} -declare module 'eslint/lib/rules/dot-location.js' { - declare module.exports: $Exports<'eslint/lib/rules/dot-location'>; -} -declare module 'eslint/lib/rules/dot-notation.js' { - declare module.exports: $Exports<'eslint/lib/rules/dot-notation'>; -} -declare module 'eslint/lib/rules/eol-last.js' { - declare module.exports: $Exports<'eslint/lib/rules/eol-last'>; -} -declare module 'eslint/lib/rules/eqeqeq.js' { - declare module.exports: $Exports<'eslint/lib/rules/eqeqeq'>; -} -declare module 'eslint/lib/rules/for-direction.js' { - declare module.exports: $Exports<'eslint/lib/rules/for-direction'>; -} -declare module 'eslint/lib/rules/func-call-spacing.js' { - declare module.exports: $Exports<'eslint/lib/rules/func-call-spacing'>; -} -declare module 'eslint/lib/rules/func-name-matching.js' { - declare module.exports: $Exports<'eslint/lib/rules/func-name-matching'>; -} -declare module 'eslint/lib/rules/func-names.js' { - declare module.exports: $Exports<'eslint/lib/rules/func-names'>; -} -declare module 'eslint/lib/rules/func-style.js' { - declare module.exports: $Exports<'eslint/lib/rules/func-style'>; -} -declare module 'eslint/lib/rules/function-call-argument-newline.js' { - declare module.exports: $Exports<'eslint/lib/rules/function-call-argument-newline'>; -} -declare module 'eslint/lib/rules/function-paren-newline.js' { - declare module.exports: $Exports<'eslint/lib/rules/function-paren-newline'>; -} -declare module 'eslint/lib/rules/generator-star-spacing.js' { - declare module.exports: $Exports<'eslint/lib/rules/generator-star-spacing'>; -} -declare module 'eslint/lib/rules/getter-return.js' { - declare module.exports: $Exports<'eslint/lib/rules/getter-return'>; -} -declare module 'eslint/lib/rules/global-require.js' { - declare module.exports: $Exports<'eslint/lib/rules/global-require'>; -} -declare module 'eslint/lib/rules/grouped-accessor-pairs.js' { - declare module.exports: $Exports<'eslint/lib/rules/grouped-accessor-pairs'>; -} -declare module 'eslint/lib/rules/guard-for-in.js' { - declare module.exports: $Exports<'eslint/lib/rules/guard-for-in'>; -} -declare module 'eslint/lib/rules/handle-callback-err.js' { - declare module.exports: $Exports<'eslint/lib/rules/handle-callback-err'>; -} -declare module 'eslint/lib/rules/id-blacklist.js' { - declare module.exports: $Exports<'eslint/lib/rules/id-blacklist'>; -} -declare module 'eslint/lib/rules/id-length.js' { - declare module.exports: $Exports<'eslint/lib/rules/id-length'>; -} -declare module 'eslint/lib/rules/id-match.js' { - declare module.exports: $Exports<'eslint/lib/rules/id-match'>; -} -declare module 'eslint/lib/rules/implicit-arrow-linebreak.js' { - declare module.exports: $Exports<'eslint/lib/rules/implicit-arrow-linebreak'>; -} -declare module 'eslint/lib/rules/indent-legacy.js' { - declare module.exports: $Exports<'eslint/lib/rules/indent-legacy'>; -} -declare module 'eslint/lib/rules/indent.js' { - declare module.exports: $Exports<'eslint/lib/rules/indent'>; -} -declare module 'eslint/lib/rules/index' { - declare module.exports: $Exports<'eslint/lib/rules'>; -} -declare module 'eslint/lib/rules/index.js' { - declare module.exports: $Exports<'eslint/lib/rules'>; -} -declare module 'eslint/lib/rules/init-declarations.js' { - declare module.exports: $Exports<'eslint/lib/rules/init-declarations'>; -} -declare module 'eslint/lib/rules/jsx-quotes.js' { - declare module.exports: $Exports<'eslint/lib/rules/jsx-quotes'>; -} -declare module 'eslint/lib/rules/key-spacing.js' { - declare module.exports: $Exports<'eslint/lib/rules/key-spacing'>; -} -declare module 'eslint/lib/rules/keyword-spacing.js' { - declare module.exports: $Exports<'eslint/lib/rules/keyword-spacing'>; -} -declare module 'eslint/lib/rules/line-comment-position.js' { - declare module.exports: $Exports<'eslint/lib/rules/line-comment-position'>; -} -declare module 'eslint/lib/rules/linebreak-style.js' { - declare module.exports: $Exports<'eslint/lib/rules/linebreak-style'>; -} -declare module 'eslint/lib/rules/lines-around-comment.js' { - declare module.exports: $Exports<'eslint/lib/rules/lines-around-comment'>; -} -declare module 'eslint/lib/rules/lines-around-directive.js' { - declare module.exports: $Exports<'eslint/lib/rules/lines-around-directive'>; -} -declare module 'eslint/lib/rules/lines-between-class-members.js' { - declare module.exports: $Exports<'eslint/lib/rules/lines-between-class-members'>; -} -declare module 'eslint/lib/rules/max-classes-per-file.js' { - declare module.exports: $Exports<'eslint/lib/rules/max-classes-per-file'>; -} -declare module 'eslint/lib/rules/max-depth.js' { - declare module.exports: $Exports<'eslint/lib/rules/max-depth'>; -} -declare module 'eslint/lib/rules/max-len.js' { - declare module.exports: $Exports<'eslint/lib/rules/max-len'>; -} -declare module 'eslint/lib/rules/max-lines-per-function.js' { - declare module.exports: $Exports<'eslint/lib/rules/max-lines-per-function'>; -} -declare module 'eslint/lib/rules/max-lines.js' { - declare module.exports: $Exports<'eslint/lib/rules/max-lines'>; -} -declare module 'eslint/lib/rules/max-nested-callbacks.js' { - declare module.exports: $Exports<'eslint/lib/rules/max-nested-callbacks'>; -} -declare module 'eslint/lib/rules/max-params.js' { - declare module.exports: $Exports<'eslint/lib/rules/max-params'>; -} -declare module 'eslint/lib/rules/max-statements-per-line.js' { - declare module.exports: $Exports<'eslint/lib/rules/max-statements-per-line'>; -} -declare module 'eslint/lib/rules/max-statements.js' { - declare module.exports: $Exports<'eslint/lib/rules/max-statements'>; -} -declare module 'eslint/lib/rules/multiline-comment-style.js' { - declare module.exports: $Exports<'eslint/lib/rules/multiline-comment-style'>; -} -declare module 'eslint/lib/rules/multiline-ternary.js' { - declare module.exports: $Exports<'eslint/lib/rules/multiline-ternary'>; -} -declare module 'eslint/lib/rules/new-cap.js' { - declare module.exports: $Exports<'eslint/lib/rules/new-cap'>; -} -declare module 'eslint/lib/rules/new-parens.js' { - declare module.exports: $Exports<'eslint/lib/rules/new-parens'>; -} -declare module 'eslint/lib/rules/newline-after-var.js' { - declare module.exports: $Exports<'eslint/lib/rules/newline-after-var'>; -} -declare module 'eslint/lib/rules/newline-before-return.js' { - declare module.exports: $Exports<'eslint/lib/rules/newline-before-return'>; -} -declare module 'eslint/lib/rules/newline-per-chained-call.js' { - declare module.exports: $Exports<'eslint/lib/rules/newline-per-chained-call'>; -} -declare module 'eslint/lib/rules/no-alert.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-alert'>; -} -declare module 'eslint/lib/rules/no-array-constructor.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-array-constructor'>; -} -declare module 'eslint/lib/rules/no-async-promise-executor.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-async-promise-executor'>; -} -declare module 'eslint/lib/rules/no-await-in-loop.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-await-in-loop'>; -} -declare module 'eslint/lib/rules/no-bitwise.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-bitwise'>; -} -declare module 'eslint/lib/rules/no-buffer-constructor.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-buffer-constructor'>; -} -declare module 'eslint/lib/rules/no-caller.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-caller'>; -} -declare module 'eslint/lib/rules/no-case-declarations.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-case-declarations'>; -} -declare module 'eslint/lib/rules/no-catch-shadow.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-catch-shadow'>; -} -declare module 'eslint/lib/rules/no-class-assign.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-class-assign'>; -} -declare module 'eslint/lib/rules/no-compare-neg-zero.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-compare-neg-zero'>; -} -declare module 'eslint/lib/rules/no-cond-assign.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-cond-assign'>; -} -declare module 'eslint/lib/rules/no-confusing-arrow.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-confusing-arrow'>; -} -declare module 'eslint/lib/rules/no-console.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-console'>; -} -declare module 'eslint/lib/rules/no-const-assign.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-const-assign'>; -} -declare module 'eslint/lib/rules/no-constant-condition.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-constant-condition'>; -} -declare module 'eslint/lib/rules/no-constructor-return.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-constructor-return'>; -} -declare module 'eslint/lib/rules/no-continue.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-continue'>; -} -declare module 'eslint/lib/rules/no-control-regex.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-control-regex'>; -} -declare module 'eslint/lib/rules/no-debugger.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-debugger'>; -} -declare module 'eslint/lib/rules/no-delete-var.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-delete-var'>; -} -declare module 'eslint/lib/rules/no-div-regex.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-div-regex'>; -} -declare module 'eslint/lib/rules/no-dupe-args.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-dupe-args'>; -} -declare module 'eslint/lib/rules/no-dupe-class-members.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-dupe-class-members'>; -} -declare module 'eslint/lib/rules/no-dupe-else-if.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-dupe-else-if'>; -} -declare module 'eslint/lib/rules/no-dupe-keys.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-dupe-keys'>; -} -declare module 'eslint/lib/rules/no-duplicate-case.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-duplicate-case'>; -} -declare module 'eslint/lib/rules/no-duplicate-imports.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-duplicate-imports'>; -} -declare module 'eslint/lib/rules/no-else-return.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-else-return'>; -} -declare module 'eslint/lib/rules/no-empty-character-class.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-empty-character-class'>; -} -declare module 'eslint/lib/rules/no-empty-function.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-empty-function'>; -} -declare module 'eslint/lib/rules/no-empty-pattern.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-empty-pattern'>; -} -declare module 'eslint/lib/rules/no-empty.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-empty'>; -} -declare module 'eslint/lib/rules/no-eq-null.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-eq-null'>; -} -declare module 'eslint/lib/rules/no-eval.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-eval'>; -} -declare module 'eslint/lib/rules/no-ex-assign.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-ex-assign'>; -} -declare module 'eslint/lib/rules/no-extend-native.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-extend-native'>; -} -declare module 'eslint/lib/rules/no-extra-bind.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-extra-bind'>; -} -declare module 'eslint/lib/rules/no-extra-boolean-cast.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-extra-boolean-cast'>; -} -declare module 'eslint/lib/rules/no-extra-label.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-extra-label'>; -} -declare module 'eslint/lib/rules/no-extra-parens.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-extra-parens'>; -} -declare module 'eslint/lib/rules/no-extra-semi.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-extra-semi'>; -} -declare module 'eslint/lib/rules/no-fallthrough.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-fallthrough'>; -} -declare module 'eslint/lib/rules/no-floating-decimal.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-floating-decimal'>; -} -declare module 'eslint/lib/rules/no-func-assign.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-func-assign'>; -} -declare module 'eslint/lib/rules/no-global-assign.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-global-assign'>; -} -declare module 'eslint/lib/rules/no-implicit-coercion.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-implicit-coercion'>; -} -declare module 'eslint/lib/rules/no-implicit-globals.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-implicit-globals'>; -} -declare module 'eslint/lib/rules/no-implied-eval.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-implied-eval'>; -} -declare module 'eslint/lib/rules/no-import-assign.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-import-assign'>; -} -declare module 'eslint/lib/rules/no-inline-comments.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-inline-comments'>; -} -declare module 'eslint/lib/rules/no-inner-declarations.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-inner-declarations'>; -} -declare module 'eslint/lib/rules/no-invalid-regexp.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-invalid-regexp'>; -} -declare module 'eslint/lib/rules/no-invalid-this.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-invalid-this'>; -} -declare module 'eslint/lib/rules/no-irregular-whitespace.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-irregular-whitespace'>; -} -declare module 'eslint/lib/rules/no-iterator.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-iterator'>; -} -declare module 'eslint/lib/rules/no-label-var.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-label-var'>; -} -declare module 'eslint/lib/rules/no-labels.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-labels'>; -} -declare module 'eslint/lib/rules/no-lone-blocks.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-lone-blocks'>; -} -declare module 'eslint/lib/rules/no-lonely-if.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-lonely-if'>; -} -declare module 'eslint/lib/rules/no-loop-func.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-loop-func'>; -} -declare module 'eslint/lib/rules/no-magic-numbers.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-magic-numbers'>; -} -declare module 'eslint/lib/rules/no-misleading-character-class.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-misleading-character-class'>; -} -declare module 'eslint/lib/rules/no-mixed-operators.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-mixed-operators'>; -} -declare module 'eslint/lib/rules/no-mixed-requires.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-mixed-requires'>; -} -declare module 'eslint/lib/rules/no-mixed-spaces-and-tabs.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-mixed-spaces-and-tabs'>; -} -declare module 'eslint/lib/rules/no-multi-assign.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-multi-assign'>; -} -declare module 'eslint/lib/rules/no-multi-spaces.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-multi-spaces'>; -} -declare module 'eslint/lib/rules/no-multi-str.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-multi-str'>; -} -declare module 'eslint/lib/rules/no-multiple-empty-lines.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-multiple-empty-lines'>; -} -declare module 'eslint/lib/rules/no-native-reassign.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-native-reassign'>; -} -declare module 'eslint/lib/rules/no-negated-condition.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-negated-condition'>; -} -declare module 'eslint/lib/rules/no-negated-in-lhs.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-negated-in-lhs'>; -} -declare module 'eslint/lib/rules/no-nested-ternary.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-nested-ternary'>; -} -declare module 'eslint/lib/rules/no-new-func.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-new-func'>; -} -declare module 'eslint/lib/rules/no-new-object.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-new-object'>; -} -declare module 'eslint/lib/rules/no-new-require.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-new-require'>; -} -declare module 'eslint/lib/rules/no-new-symbol.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-new-symbol'>; -} -declare module 'eslint/lib/rules/no-new-wrappers.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-new-wrappers'>; -} -declare module 'eslint/lib/rules/no-new.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-new'>; -} -declare module 'eslint/lib/rules/no-obj-calls.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-obj-calls'>; -} -declare module 'eslint/lib/rules/no-octal-escape.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-octal-escape'>; -} -declare module 'eslint/lib/rules/no-octal.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-octal'>; -} -declare module 'eslint/lib/rules/no-param-reassign.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-param-reassign'>; -} -declare module 'eslint/lib/rules/no-path-concat.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-path-concat'>; -} -declare module 'eslint/lib/rules/no-plusplus.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-plusplus'>; -} -declare module 'eslint/lib/rules/no-process-env.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-process-env'>; -} -declare module 'eslint/lib/rules/no-process-exit.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-process-exit'>; -} -declare module 'eslint/lib/rules/no-proto.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-proto'>; -} -declare module 'eslint/lib/rules/no-prototype-builtins.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-prototype-builtins'>; -} -declare module 'eslint/lib/rules/no-redeclare.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-redeclare'>; -} -declare module 'eslint/lib/rules/no-regex-spaces.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-regex-spaces'>; -} -declare module 'eslint/lib/rules/no-restricted-globals.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-restricted-globals'>; -} -declare module 'eslint/lib/rules/no-restricted-imports.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-restricted-imports'>; -} -declare module 'eslint/lib/rules/no-restricted-modules.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-restricted-modules'>; -} -declare module 'eslint/lib/rules/no-restricted-properties.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-restricted-properties'>; -} -declare module 'eslint/lib/rules/no-restricted-syntax.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-restricted-syntax'>; -} -declare module 'eslint/lib/rules/no-return-assign.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-return-assign'>; -} -declare module 'eslint/lib/rules/no-return-await.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-return-await'>; -} -declare module 'eslint/lib/rules/no-script-url.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-script-url'>; -} -declare module 'eslint/lib/rules/no-self-assign.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-self-assign'>; -} -declare module 'eslint/lib/rules/no-self-compare.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-self-compare'>; -} -declare module 'eslint/lib/rules/no-sequences.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-sequences'>; -} -declare module 'eslint/lib/rules/no-setter-return.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-setter-return'>; -} -declare module 'eslint/lib/rules/no-shadow-restricted-names.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-shadow-restricted-names'>; -} -declare module 'eslint/lib/rules/no-shadow.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-shadow'>; -} -declare module 'eslint/lib/rules/no-spaced-func.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-spaced-func'>; -} -declare module 'eslint/lib/rules/no-sparse-arrays.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-sparse-arrays'>; -} -declare module 'eslint/lib/rules/no-sync.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-sync'>; -} -declare module 'eslint/lib/rules/no-tabs.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-tabs'>; -} -declare module 'eslint/lib/rules/no-template-curly-in-string.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-template-curly-in-string'>; -} -declare module 'eslint/lib/rules/no-ternary.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-ternary'>; -} -declare module 'eslint/lib/rules/no-this-before-super.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-this-before-super'>; -} -declare module 'eslint/lib/rules/no-throw-literal.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-throw-literal'>; -} -declare module 'eslint/lib/rules/no-trailing-spaces.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-trailing-spaces'>; -} -declare module 'eslint/lib/rules/no-undef-init.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-undef-init'>; -} -declare module 'eslint/lib/rules/no-undef.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-undef'>; -} -declare module 'eslint/lib/rules/no-undefined.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-undefined'>; -} -declare module 'eslint/lib/rules/no-underscore-dangle.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-underscore-dangle'>; -} -declare module 'eslint/lib/rules/no-unexpected-multiline.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-unexpected-multiline'>; -} -declare module 'eslint/lib/rules/no-unmodified-loop-condition.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-unmodified-loop-condition'>; -} -declare module 'eslint/lib/rules/no-unneeded-ternary.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-unneeded-ternary'>; -} -declare module 'eslint/lib/rules/no-unreachable.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-unreachable'>; -} -declare module 'eslint/lib/rules/no-unsafe-finally.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-unsafe-finally'>; -} -declare module 'eslint/lib/rules/no-unsafe-negation.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-unsafe-negation'>; -} -declare module 'eslint/lib/rules/no-unused-expressions.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-unused-expressions'>; -} -declare module 'eslint/lib/rules/no-unused-labels.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-unused-labels'>; -} -declare module 'eslint/lib/rules/no-unused-vars.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-unused-vars'>; -} -declare module 'eslint/lib/rules/no-use-before-define.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-use-before-define'>; -} -declare module 'eslint/lib/rules/no-useless-call.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-useless-call'>; -} -declare module 'eslint/lib/rules/no-useless-catch.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-useless-catch'>; -} -declare module 'eslint/lib/rules/no-useless-computed-key.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-useless-computed-key'>; -} -declare module 'eslint/lib/rules/no-useless-concat.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-useless-concat'>; -} -declare module 'eslint/lib/rules/no-useless-constructor.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-useless-constructor'>; -} -declare module 'eslint/lib/rules/no-useless-escape.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-useless-escape'>; -} -declare module 'eslint/lib/rules/no-useless-rename.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-useless-rename'>; -} -declare module 'eslint/lib/rules/no-useless-return.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-useless-return'>; -} -declare module 'eslint/lib/rules/no-var.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-var'>; -} -declare module 'eslint/lib/rules/no-void.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-void'>; -} -declare module 'eslint/lib/rules/no-warning-comments.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-warning-comments'>; -} -declare module 'eslint/lib/rules/no-whitespace-before-property.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-whitespace-before-property'>; -} -declare module 'eslint/lib/rules/no-with.js' { - declare module.exports: $Exports<'eslint/lib/rules/no-with'>; -} -declare module 'eslint/lib/rules/nonblock-statement-body-position.js' { - declare module.exports: $Exports<'eslint/lib/rules/nonblock-statement-body-position'>; -} -declare module 'eslint/lib/rules/object-curly-newline.js' { - declare module.exports: $Exports<'eslint/lib/rules/object-curly-newline'>; -} -declare module 'eslint/lib/rules/object-curly-spacing.js' { - declare module.exports: $Exports<'eslint/lib/rules/object-curly-spacing'>; -} -declare module 'eslint/lib/rules/object-property-newline.js' { - declare module.exports: $Exports<'eslint/lib/rules/object-property-newline'>; -} -declare module 'eslint/lib/rules/object-shorthand.js' { - declare module.exports: $Exports<'eslint/lib/rules/object-shorthand'>; -} -declare module 'eslint/lib/rules/one-var-declaration-per-line.js' { - declare module.exports: $Exports<'eslint/lib/rules/one-var-declaration-per-line'>; -} -declare module 'eslint/lib/rules/one-var.js' { - declare module.exports: $Exports<'eslint/lib/rules/one-var'>; -} -declare module 'eslint/lib/rules/operator-assignment.js' { - declare module.exports: $Exports<'eslint/lib/rules/operator-assignment'>; -} -declare module 'eslint/lib/rules/operator-linebreak.js' { - declare module.exports: $Exports<'eslint/lib/rules/operator-linebreak'>; -} -declare module 'eslint/lib/rules/padded-blocks.js' { - declare module.exports: $Exports<'eslint/lib/rules/padded-blocks'>; -} -declare module 'eslint/lib/rules/padding-line-between-statements.js' { - declare module.exports: $Exports<'eslint/lib/rules/padding-line-between-statements'>; -} -declare module 'eslint/lib/rules/prefer-arrow-callback.js' { - declare module.exports: $Exports<'eslint/lib/rules/prefer-arrow-callback'>; -} -declare module 'eslint/lib/rules/prefer-const.js' { - declare module.exports: $Exports<'eslint/lib/rules/prefer-const'>; -} -declare module 'eslint/lib/rules/prefer-destructuring.js' { - declare module.exports: $Exports<'eslint/lib/rules/prefer-destructuring'>; -} -declare module 'eslint/lib/rules/prefer-exponentiation-operator.js' { - declare module.exports: $Exports<'eslint/lib/rules/prefer-exponentiation-operator'>; -} -declare module 'eslint/lib/rules/prefer-named-capture-group.js' { - declare module.exports: $Exports<'eslint/lib/rules/prefer-named-capture-group'>; -} -declare module 'eslint/lib/rules/prefer-numeric-literals.js' { - declare module.exports: $Exports<'eslint/lib/rules/prefer-numeric-literals'>; -} -declare module 'eslint/lib/rules/prefer-object-spread.js' { - declare module.exports: $Exports<'eslint/lib/rules/prefer-object-spread'>; -} -declare module 'eslint/lib/rules/prefer-promise-reject-errors.js' { - declare module.exports: $Exports<'eslint/lib/rules/prefer-promise-reject-errors'>; -} -declare module 'eslint/lib/rules/prefer-reflect.js' { - declare module.exports: $Exports<'eslint/lib/rules/prefer-reflect'>; -} -declare module 'eslint/lib/rules/prefer-regex-literals.js' { - declare module.exports: $Exports<'eslint/lib/rules/prefer-regex-literals'>; -} -declare module 'eslint/lib/rules/prefer-rest-params.js' { - declare module.exports: $Exports<'eslint/lib/rules/prefer-rest-params'>; -} -declare module 'eslint/lib/rules/prefer-spread.js' { - declare module.exports: $Exports<'eslint/lib/rules/prefer-spread'>; -} -declare module 'eslint/lib/rules/prefer-template.js' { - declare module.exports: $Exports<'eslint/lib/rules/prefer-template'>; -} -declare module 'eslint/lib/rules/quote-props.js' { - declare module.exports: $Exports<'eslint/lib/rules/quote-props'>; -} -declare module 'eslint/lib/rules/quotes.js' { - declare module.exports: $Exports<'eslint/lib/rules/quotes'>; -} -declare module 'eslint/lib/rules/radix.js' { - declare module.exports: $Exports<'eslint/lib/rules/radix'>; -} -declare module 'eslint/lib/rules/require-atomic-updates.js' { - declare module.exports: $Exports<'eslint/lib/rules/require-atomic-updates'>; -} -declare module 'eslint/lib/rules/require-await.js' { - declare module.exports: $Exports<'eslint/lib/rules/require-await'>; -} -declare module 'eslint/lib/rules/require-jsdoc.js' { - declare module.exports: $Exports<'eslint/lib/rules/require-jsdoc'>; -} -declare module 'eslint/lib/rules/require-unicode-regexp.js' { - declare module.exports: $Exports<'eslint/lib/rules/require-unicode-regexp'>; -} -declare module 'eslint/lib/rules/require-yield.js' { - declare module.exports: $Exports<'eslint/lib/rules/require-yield'>; -} -declare module 'eslint/lib/rules/rest-spread-spacing.js' { - declare module.exports: $Exports<'eslint/lib/rules/rest-spread-spacing'>; -} -declare module 'eslint/lib/rules/semi-spacing.js' { - declare module.exports: $Exports<'eslint/lib/rules/semi-spacing'>; -} -declare module 'eslint/lib/rules/semi-style.js' { - declare module.exports: $Exports<'eslint/lib/rules/semi-style'>; -} -declare module 'eslint/lib/rules/semi.js' { - declare module.exports: $Exports<'eslint/lib/rules/semi'>; -} -declare module 'eslint/lib/rules/sort-imports.js' { - declare module.exports: $Exports<'eslint/lib/rules/sort-imports'>; -} -declare module 'eslint/lib/rules/sort-keys.js' { - declare module.exports: $Exports<'eslint/lib/rules/sort-keys'>; -} -declare module 'eslint/lib/rules/sort-vars.js' { - declare module.exports: $Exports<'eslint/lib/rules/sort-vars'>; -} -declare module 'eslint/lib/rules/space-before-blocks.js' { - declare module.exports: $Exports<'eslint/lib/rules/space-before-blocks'>; -} -declare module 'eslint/lib/rules/space-before-function-paren.js' { - declare module.exports: $Exports<'eslint/lib/rules/space-before-function-paren'>; -} -declare module 'eslint/lib/rules/space-in-parens.js' { - declare module.exports: $Exports<'eslint/lib/rules/space-in-parens'>; -} -declare module 'eslint/lib/rules/space-infix-ops.js' { - declare module.exports: $Exports<'eslint/lib/rules/space-infix-ops'>; -} -declare module 'eslint/lib/rules/space-unary-ops.js' { - declare module.exports: $Exports<'eslint/lib/rules/space-unary-ops'>; -} -declare module 'eslint/lib/rules/spaced-comment.js' { - declare module.exports: $Exports<'eslint/lib/rules/spaced-comment'>; -} -declare module 'eslint/lib/rules/strict.js' { - declare module.exports: $Exports<'eslint/lib/rules/strict'>; -} -declare module 'eslint/lib/rules/switch-colon-spacing.js' { - declare module.exports: $Exports<'eslint/lib/rules/switch-colon-spacing'>; -} -declare module 'eslint/lib/rules/symbol-description.js' { - declare module.exports: $Exports<'eslint/lib/rules/symbol-description'>; -} -declare module 'eslint/lib/rules/template-curly-spacing.js' { - declare module.exports: $Exports<'eslint/lib/rules/template-curly-spacing'>; -} -declare module 'eslint/lib/rules/template-tag-spacing.js' { - declare module.exports: $Exports<'eslint/lib/rules/template-tag-spacing'>; -} -declare module 'eslint/lib/rules/unicode-bom.js' { - declare module.exports: $Exports<'eslint/lib/rules/unicode-bom'>; -} -declare module 'eslint/lib/rules/use-isnan.js' { - declare module.exports: $Exports<'eslint/lib/rules/use-isnan'>; -} -declare module 'eslint/lib/rules/utils/ast-utils.js' { - declare module.exports: $Exports<'eslint/lib/rules/utils/ast-utils'>; -} -declare module 'eslint/lib/rules/utils/fix-tracker.js' { - declare module.exports: $Exports<'eslint/lib/rules/utils/fix-tracker'>; -} -declare module 'eslint/lib/rules/utils/keywords.js' { - declare module.exports: $Exports<'eslint/lib/rules/utils/keywords'>; -} -declare module 'eslint/lib/rules/utils/lazy-loading-rule-map.js' { - declare module.exports: $Exports<'eslint/lib/rules/utils/lazy-loading-rule-map'>; -} -declare module 'eslint/lib/rules/utils/patterns/letters.js' { - declare module.exports: $Exports<'eslint/lib/rules/utils/patterns/letters'>; -} -declare module 'eslint/lib/rules/utils/unicode/index' { - declare module.exports: $Exports<'eslint/lib/rules/utils/unicode'>; -} -declare module 'eslint/lib/rules/utils/unicode/index.js' { - declare module.exports: $Exports<'eslint/lib/rules/utils/unicode'>; -} -declare module 'eslint/lib/rules/utils/unicode/is-combining-character.js' { - declare module.exports: $Exports<'eslint/lib/rules/utils/unicode/is-combining-character'>; -} -declare module 'eslint/lib/rules/utils/unicode/is-emoji-modifier.js' { - declare module.exports: $Exports<'eslint/lib/rules/utils/unicode/is-emoji-modifier'>; -} -declare module 'eslint/lib/rules/utils/unicode/is-regional-indicator-symbol.js' { - declare module.exports: $Exports<'eslint/lib/rules/utils/unicode/is-regional-indicator-symbol'>; -} -declare module 'eslint/lib/rules/utils/unicode/is-surrogate-pair.js' { - declare module.exports: $Exports<'eslint/lib/rules/utils/unicode/is-surrogate-pair'>; -} -declare module 'eslint/lib/rules/valid-jsdoc.js' { - declare module.exports: $Exports<'eslint/lib/rules/valid-jsdoc'>; -} -declare module 'eslint/lib/rules/valid-typeof.js' { - declare module.exports: $Exports<'eslint/lib/rules/valid-typeof'>; -} -declare module 'eslint/lib/rules/vars-on-top.js' { - declare module.exports: $Exports<'eslint/lib/rules/vars-on-top'>; -} -declare module 'eslint/lib/rules/wrap-iife.js' { - declare module.exports: $Exports<'eslint/lib/rules/wrap-iife'>; -} -declare module 'eslint/lib/rules/wrap-regex.js' { - declare module.exports: $Exports<'eslint/lib/rules/wrap-regex'>; -} -declare module 'eslint/lib/rules/yield-star-spacing.js' { - declare module.exports: $Exports<'eslint/lib/rules/yield-star-spacing'>; -} -declare module 'eslint/lib/rules/yoda.js' { - declare module.exports: $Exports<'eslint/lib/rules/yoda'>; -} -declare module 'eslint/lib/shared/ajv.js' { - declare module.exports: $Exports<'eslint/lib/shared/ajv'>; -} -declare module 'eslint/lib/shared/ast-utils.js' { - declare module.exports: $Exports<'eslint/lib/shared/ast-utils'>; -} -declare module 'eslint/lib/shared/config-ops.js' { - declare module.exports: $Exports<'eslint/lib/shared/config-ops'>; -} -declare module 'eslint/lib/shared/config-validator.js' { - declare module.exports: $Exports<'eslint/lib/shared/config-validator'>; -} -declare module 'eslint/lib/shared/logging.js' { - declare module.exports: $Exports<'eslint/lib/shared/logging'>; -} -declare module 'eslint/lib/shared/naming.js' { - declare module.exports: $Exports<'eslint/lib/shared/naming'>; -} -declare module 'eslint/lib/shared/relative-module-resolver.js' { - declare module.exports: $Exports<'eslint/lib/shared/relative-module-resolver'>; -} -declare module 'eslint/lib/shared/runtime-info.js' { - declare module.exports: $Exports<'eslint/lib/shared/runtime-info'>; -} -declare module 'eslint/lib/shared/traverser.js' { - declare module.exports: $Exports<'eslint/lib/shared/traverser'>; -} -declare module 'eslint/lib/shared/types.js' { - declare module.exports: $Exports<'eslint/lib/shared/types'>; -} -declare module 'eslint/lib/source-code/index' { - declare module.exports: $Exports<'eslint/lib/source-code'>; -} -declare module 'eslint/lib/source-code/index.js' { - declare module.exports: $Exports<'eslint/lib/source-code'>; -} -declare module 'eslint/lib/source-code/source-code.js' { - declare module.exports: $Exports<'eslint/lib/source-code/source-code'>; -} -declare module 'eslint/lib/source-code/token-store/backward-token-comment-cursor.js' { - declare module.exports: $Exports<'eslint/lib/source-code/token-store/backward-token-comment-cursor'>; -} -declare module 'eslint/lib/source-code/token-store/backward-token-cursor.js' { - declare module.exports: $Exports<'eslint/lib/source-code/token-store/backward-token-cursor'>; -} -declare module 'eslint/lib/source-code/token-store/cursor.js' { - declare module.exports: $Exports<'eslint/lib/source-code/token-store/cursor'>; -} -declare module 'eslint/lib/source-code/token-store/cursors.js' { - declare module.exports: $Exports<'eslint/lib/source-code/token-store/cursors'>; -} -declare module 'eslint/lib/source-code/token-store/decorative-cursor.js' { - declare module.exports: $Exports<'eslint/lib/source-code/token-store/decorative-cursor'>; -} -declare module 'eslint/lib/source-code/token-store/filter-cursor.js' { - declare module.exports: $Exports<'eslint/lib/source-code/token-store/filter-cursor'>; -} -declare module 'eslint/lib/source-code/token-store/forward-token-comment-cursor.js' { - declare module.exports: $Exports<'eslint/lib/source-code/token-store/forward-token-comment-cursor'>; -} -declare module 'eslint/lib/source-code/token-store/forward-token-cursor.js' { - declare module.exports: $Exports<'eslint/lib/source-code/token-store/forward-token-cursor'>; -} -declare module 'eslint/lib/source-code/token-store/index' { - declare module.exports: $Exports<'eslint/lib/source-code/token-store'>; -} -declare module 'eslint/lib/source-code/token-store/index.js' { - declare module.exports: $Exports<'eslint/lib/source-code/token-store'>; -} -declare module 'eslint/lib/source-code/token-store/limit-cursor.js' { - declare module.exports: $Exports<'eslint/lib/source-code/token-store/limit-cursor'>; -} -declare module 'eslint/lib/source-code/token-store/padded-token-cursor.js' { - declare module.exports: $Exports<'eslint/lib/source-code/token-store/padded-token-cursor'>; -} -declare module 'eslint/lib/source-code/token-store/skip-cursor.js' { - declare module.exports: $Exports<'eslint/lib/source-code/token-store/skip-cursor'>; -} -declare module 'eslint/lib/source-code/token-store/utils.js' { - declare module.exports: $Exports<'eslint/lib/source-code/token-store/utils'>; -} diff --git a/flow-typed/npm/file-loader_vx.x.x.js b/flow-typed/npm/file-loader_vx.x.x.js deleted file mode 100644 index 35cad7800..000000000 --- a/flow-typed/npm/file-loader_vx.x.x.js +++ /dev/null @@ -1,42 +0,0 @@ -// flow-typed signature: cf1074e5b18bbd93a7ccd82ed0247f5a -// flow-typed version: <>/file-loader_v^5.0.2/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'file-loader' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'file-loader' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'file-loader/dist/cjs' { - declare module.exports: any; -} - -declare module 'file-loader/dist' { - declare module.exports: any; -} - -// Filename aliases -declare module 'file-loader/dist/cjs.js' { - declare module.exports: $Exports<'file-loader/dist/cjs'>; -} -declare module 'file-loader/dist/index' { - declare module.exports: $Exports<'file-loader/dist'>; -} -declare module 'file-loader/dist/index.js' { - declare module.exports: $Exports<'file-loader/dist'>; -} diff --git a/flow-typed/npm/flow-bin_v0.x.x.js b/flow-typed/npm/flow-bin_v0.x.x.js deleted file mode 100644 index fda1f2901..000000000 --- a/flow-typed/npm/flow-bin_v0.x.x.js +++ /dev/null @@ -1,6 +0,0 @@ -// flow-typed signature: 28fdff7f110e1c75efab63ff205dda30 -// flow-typed version: c6154227d1/flow-bin_v0.x.x/flow_>=v0.104.x - -declare module "flow-bin" { - declare module.exports: string; -} diff --git a/flow-typed/npm/flow-type_vx.x.x.js b/flow-typed/npm/flow-type_vx.x.x.js deleted file mode 100644 index f5910558e..000000000 --- a/flow-typed/npm/flow-type_vx.x.x.js +++ /dev/null @@ -1,270 +0,0 @@ -// flow-typed signature: 5f5bf3ea5b597fff203eca817b45a46c -// flow-typed version: <>/flow-type_v^1.0.1/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'flow-type' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'flow-type' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'flow-type/examples/ignored' { - declare module.exports: any; -} - -declare module 'flow-type/lib/cli' { - declare module.exports: any; -} - -declare module 'flow-type/lib/register' { - declare module.exports: any; -} - -declare module 'flow-type/lib/strip' { - declare module.exports: any; -} - -declare module 'flow-type/lib/walk' { - declare module.exports: any; -} - -declare module 'flow-type/register' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/def-site-variance/actual' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/def-site-variance/expected' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-array-types/actual' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-array-types/expected' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-call-properties/actual' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-call-properties/expected' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-declare-module/actual' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-declare-module/expected' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-declare-statements/actual' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-declare-statements/expected' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-directive/actual' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-directive/expected' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-interfaces-module-and-script/actual' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-interfaces-module-and-script/expected' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-qualified-generic-type/actual' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-qualified-generic-type/expected' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-string-literal-types/actual' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-string-literal-types/expected' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-tuples/actual' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-tuples/expected' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-type-alias/actual' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-type-alias/expected' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-type-annotations/actual' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-type-annotations/expected' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-typecasts/actual' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/strip-typecasts/expected' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/type-comments/actual' { - declare module.exports: any; -} - -declare module 'flow-type/test/fixtures/type-comments/expected' { - declare module.exports: any; -} - -declare module 'flow-type/test/test' { - declare module.exports: any; -} - -// Filename aliases -declare module 'flow-type/examples/ignored.js' { - declare module.exports: $Exports<'flow-type/examples/ignored'>; -} -declare module 'flow-type/lib/cli.js' { - declare module.exports: $Exports<'flow-type/lib/cli'>; -} -declare module 'flow-type/lib/register.js' { - declare module.exports: $Exports<'flow-type/lib/register'>; -} -declare module 'flow-type/lib/strip.js' { - declare module.exports: $Exports<'flow-type/lib/strip'>; -} -declare module 'flow-type/lib/walk.js' { - declare module.exports: $Exports<'flow-type/lib/walk'>; -} -declare module 'flow-type/register.js' { - declare module.exports: $Exports<'flow-type/register'>; -} -declare module 'flow-type/test/fixtures/def-site-variance/actual.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/def-site-variance/actual'>; -} -declare module 'flow-type/test/fixtures/def-site-variance/expected.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/def-site-variance/expected'>; -} -declare module 'flow-type/test/fixtures/strip-array-types/actual.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-array-types/actual'>; -} -declare module 'flow-type/test/fixtures/strip-array-types/expected.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-array-types/expected'>; -} -declare module 'flow-type/test/fixtures/strip-call-properties/actual.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-call-properties/actual'>; -} -declare module 'flow-type/test/fixtures/strip-call-properties/expected.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-call-properties/expected'>; -} -declare module 'flow-type/test/fixtures/strip-declare-module/actual.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-declare-module/actual'>; -} -declare module 'flow-type/test/fixtures/strip-declare-module/expected.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-declare-module/expected'>; -} -declare module 'flow-type/test/fixtures/strip-declare-statements/actual.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-declare-statements/actual'>; -} -declare module 'flow-type/test/fixtures/strip-declare-statements/expected.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-declare-statements/expected'>; -} -declare module 'flow-type/test/fixtures/strip-directive/actual.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-directive/actual'>; -} -declare module 'flow-type/test/fixtures/strip-directive/expected.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-directive/expected'>; -} -declare module 'flow-type/test/fixtures/strip-interfaces-module-and-script/actual.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-interfaces-module-and-script/actual'>; -} -declare module 'flow-type/test/fixtures/strip-interfaces-module-and-script/expected.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-interfaces-module-and-script/expected'>; -} -declare module 'flow-type/test/fixtures/strip-qualified-generic-type/actual.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-qualified-generic-type/actual'>; -} -declare module 'flow-type/test/fixtures/strip-qualified-generic-type/expected.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-qualified-generic-type/expected'>; -} -declare module 'flow-type/test/fixtures/strip-string-literal-types/actual.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-string-literal-types/actual'>; -} -declare module 'flow-type/test/fixtures/strip-string-literal-types/expected.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-string-literal-types/expected'>; -} -declare module 'flow-type/test/fixtures/strip-tuples/actual.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-tuples/actual'>; -} -declare module 'flow-type/test/fixtures/strip-tuples/expected.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-tuples/expected'>; -} -declare module 'flow-type/test/fixtures/strip-type-alias/actual.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-type-alias/actual'>; -} -declare module 'flow-type/test/fixtures/strip-type-alias/expected.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-type-alias/expected'>; -} -declare module 'flow-type/test/fixtures/strip-type-annotations/actual.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-type-annotations/actual'>; -} -declare module 'flow-type/test/fixtures/strip-type-annotations/expected.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-type-annotations/expected'>; -} -declare module 'flow-type/test/fixtures/strip-typecasts/actual.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-typecasts/actual'>; -} -declare module 'flow-type/test/fixtures/strip-typecasts/expected.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/strip-typecasts/expected'>; -} -declare module 'flow-type/test/fixtures/type-comments/actual.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/type-comments/actual'>; -} -declare module 'flow-type/test/fixtures/type-comments/expected.js' { - declare module.exports: $Exports<'flow-type/test/fixtures/type-comments/expected'>; -} -declare module 'flow-type/test/test.js' { - declare module.exports: $Exports<'flow-type/test/test'>; -} diff --git a/flow-typed/npm/flow-typed_vx.x.x.js b/flow-typed/npm/flow-typed_vx.x.x.js deleted file mode 100644 index 2a3ce7332..000000000 --- a/flow-typed/npm/flow-typed_vx.x.x.js +++ /dev/null @@ -1,186 +0,0 @@ -// flow-typed signature: 9eefc985e3da8e49f19543d87bdbe618 -// flow-typed version: <>/flow-typed_v^2.6.2/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'flow-typed' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'flow-typed' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'flow-typed/dist/cli' { - declare module.exports: any; -} - -declare module 'flow-typed/dist/commands/create-stub' { - declare module.exports: any; -} - -declare module 'flow-typed/dist/commands/install' { - declare module.exports: any; -} - -declare module 'flow-typed/dist/commands/runTests' { - declare module.exports: any; -} - -declare module 'flow-typed/dist/commands/search' { - declare module.exports: any; -} - -declare module 'flow-typed/dist/commands/update-cache' { - declare module.exports: any; -} - -declare module 'flow-typed/dist/commands/update' { - declare module.exports: any; -} - -declare module 'flow-typed/dist/commands/validateDefs' { - declare module.exports: any; -} - -declare module 'flow-typed/dist/lib/cacheRepoUtils' { - declare module.exports: any; -} - -declare module 'flow-typed/dist/lib/codeSign' { - declare module.exports: any; -} - -declare module 'flow-typed/dist/lib/fileUtils' { - declare module.exports: any; -} - -declare module 'flow-typed/dist/lib/flowProjectUtils' { - declare module.exports: any; -} - -declare module 'flow-typed/dist/lib/flowVersion' { - declare module.exports: any; -} - -declare module 'flow-typed/dist/lib/git' { - declare module.exports: any; -} - -declare module 'flow-typed/dist/lib/github' { - declare module.exports: any; -} - -declare module 'flow-typed/dist/lib/isInFlowTypedRepo' { - declare module.exports: any; -} - -declare module 'flow-typed/dist/lib/libDefs' { - declare module.exports: any; -} - -declare module 'flow-typed/dist/lib/node' { - declare module.exports: any; -} - -declare module 'flow-typed/dist/lib/npm/npmLibDefs' { - declare module.exports: any; -} - -declare module 'flow-typed/dist/lib/npm/npmProjectUtils' { - declare module.exports: any; -} - -declare module 'flow-typed/dist/lib/semver' { - declare module.exports: any; -} - -declare module 'flow-typed/dist/lib/stubUtils' { - declare module.exports: any; -} - -declare module 'flow-typed/dist/lib/ValidationError' { - declare module.exports: any; -} - -// Filename aliases -declare module 'flow-typed/dist/cli.js' { - declare module.exports: $Exports<'flow-typed/dist/cli'>; -} -declare module 'flow-typed/dist/commands/create-stub.js' { - declare module.exports: $Exports<'flow-typed/dist/commands/create-stub'>; -} -declare module 'flow-typed/dist/commands/install.js' { - declare module.exports: $Exports<'flow-typed/dist/commands/install'>; -} -declare module 'flow-typed/dist/commands/runTests.js' { - declare module.exports: $Exports<'flow-typed/dist/commands/runTests'>; -} -declare module 'flow-typed/dist/commands/search.js' { - declare module.exports: $Exports<'flow-typed/dist/commands/search'>; -} -declare module 'flow-typed/dist/commands/update-cache.js' { - declare module.exports: $Exports<'flow-typed/dist/commands/update-cache'>; -} -declare module 'flow-typed/dist/commands/update.js' { - declare module.exports: $Exports<'flow-typed/dist/commands/update'>; -} -declare module 'flow-typed/dist/commands/validateDefs.js' { - declare module.exports: $Exports<'flow-typed/dist/commands/validateDefs'>; -} -declare module 'flow-typed/dist/lib/cacheRepoUtils.js' { - declare module.exports: $Exports<'flow-typed/dist/lib/cacheRepoUtils'>; -} -declare module 'flow-typed/dist/lib/codeSign.js' { - declare module.exports: $Exports<'flow-typed/dist/lib/codeSign'>; -} -declare module 'flow-typed/dist/lib/fileUtils.js' { - declare module.exports: $Exports<'flow-typed/dist/lib/fileUtils'>; -} -declare module 'flow-typed/dist/lib/flowProjectUtils.js' { - declare module.exports: $Exports<'flow-typed/dist/lib/flowProjectUtils'>; -} -declare module 'flow-typed/dist/lib/flowVersion.js' { - declare module.exports: $Exports<'flow-typed/dist/lib/flowVersion'>; -} -declare module 'flow-typed/dist/lib/git.js' { - declare module.exports: $Exports<'flow-typed/dist/lib/git'>; -} -declare module 'flow-typed/dist/lib/github.js' { - declare module.exports: $Exports<'flow-typed/dist/lib/github'>; -} -declare module 'flow-typed/dist/lib/isInFlowTypedRepo.js' { - declare module.exports: $Exports<'flow-typed/dist/lib/isInFlowTypedRepo'>; -} -declare module 'flow-typed/dist/lib/libDefs.js' { - declare module.exports: $Exports<'flow-typed/dist/lib/libDefs'>; -} -declare module 'flow-typed/dist/lib/node.js' { - declare module.exports: $Exports<'flow-typed/dist/lib/node'>; -} -declare module 'flow-typed/dist/lib/npm/npmLibDefs.js' { - declare module.exports: $Exports<'flow-typed/dist/lib/npm/npmLibDefs'>; -} -declare module 'flow-typed/dist/lib/npm/npmProjectUtils.js' { - declare module.exports: $Exports<'flow-typed/dist/lib/npm/npmProjectUtils'>; -} -declare module 'flow-typed/dist/lib/semver.js' { - declare module.exports: $Exports<'flow-typed/dist/lib/semver'>; -} -declare module 'flow-typed/dist/lib/stubUtils.js' { - declare module.exports: $Exports<'flow-typed/dist/lib/stubUtils'>; -} -declare module 'flow-typed/dist/lib/ValidationError.js' { - declare module.exports: $Exports<'flow-typed/dist/lib/ValidationError'>; -} diff --git a/flow-typed/npm/history_v4.10.x.js b/flow-typed/npm/history_v4.10.x.js deleted file mode 100644 index e46d4e7ad..000000000 --- a/flow-typed/npm/history_v4.10.x.js +++ /dev/null @@ -1,109 +0,0 @@ -// flow-typed signature: 90337b03d736e9bdaa68004c36c4d3ee -// flow-typed version: 51319746df/history_v4.10.x/flow_>=v0.104.x - -declare module 'history' { - declare type Unregister = () => void; - - declare export type Action = 'PUSH' | 'REPLACE' | 'POP'; - - declare export type Location = {| - pathname: string, - search: string, - hash: string, - state: { ... }, - key: string, - |}; - - declare type History = {| - length: number, - location: HistoryLocation, - action: Action, - push: ((path: string, state?: { ... }) => void) & - ((location: $Shape) => void), - replace: ((path: string, state?: { ... }) => void) & - ((location: $Shape) => void), - go(n: number): void, - goBack(): void, - goForward(): void, - listen((location: HistoryLocation, action: Action) => void): Unregister, - block( - prompt: - | string - | boolean - | ((location: HistoryLocation, action: Action) => string | false | void) - ): Unregister, - createHref(location: $Shape): string, - |}; - - declare export type BrowserHistory = History<>; - - declare type BrowserHistoryOpts = {| - basename?: string, - forceRefresh?: boolean, - getUserConfirmation?: ( - message: string, - callback: (willContinue: boolean) => void - ) => void, - keyLength?: number, - |}; - - declare function createBrowserHistory( - opts?: BrowserHistoryOpts - ): BrowserHistory; - - declare export type MemoryHistory = {| - ...History<>, - index: number, - entries: Array, - canGo(n: number): boolean, - |}; - - declare type MemoryHistoryOpts = {| - initialEntries?: Array, - initialIndex?: number, - keyLength?: number, - getUserConfirmation?: ( - message: string, - callback: (willContinue: boolean) => void - ) => void, - |}; - - declare function createMemoryHistory(opts?: MemoryHistoryOpts): MemoryHistory; - - declare export type HashLocation = {| - ...Location, - state: void, - key: void, - |}; - - declare export type HashHistory = History; - - declare type HashHistoryOpts = {| - basename?: string, - hashType: 'slash' | 'noslash' | 'hashbang', - getUserConfirmation?: ( - message: string, - callback: (willContinue: boolean) => void - ) => void, - |}; - - declare function createHashHistory(opts?: HashHistoryOpts): HashHistory; - - // PathUtils - declare function parsePath(path: string): Location; - - declare function createPath(location: $Shape): string; - - // LocationUtils - declare function locationsAreEqual( - a: $Shape, - b: $Shape - ): boolean; - - declare function createLocation( - path: string | $Shape, - state?: { ... }, - key?: string, - currentLocation?: Location - ): Location; -} diff --git a/flow-typed/npm/html-loader_vx.x.x.js b/flow-typed/npm/html-loader_vx.x.x.js deleted file mode 100644 index 0892cba47..000000000 --- a/flow-typed/npm/html-loader_vx.x.x.js +++ /dev/null @@ -1,87 +0,0 @@ -// flow-typed signature: 460c21ddfc48c570256ae3b9c84ef516 -// flow-typed version: <>/html-loader_v^1.0.0/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'html-loader' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'html-loader' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'html-loader/dist/cjs' { - declare module.exports: any; -} - -declare module 'html-loader/dist/HtmlSourceError' { - declare module.exports: any; -} - -declare module 'html-loader/dist' { - declare module.exports: any; -} - -declare module 'html-loader/dist/plugins' { - declare module.exports: any; -} - -declare module 'html-loader/dist/plugins/minimizer-plugin' { - declare module.exports: any; -} - -declare module 'html-loader/dist/plugins/source-plugin' { - declare module.exports: any; -} - -declare module 'html-loader/dist/runtime/getUrl' { - declare module.exports: any; -} - -declare module 'html-loader/dist/utils' { - declare module.exports: any; -} - -// Filename aliases -declare module 'html-loader/dist/cjs.js' { - declare module.exports: $Exports<'html-loader/dist/cjs'>; -} -declare module 'html-loader/dist/HtmlSourceError.js' { - declare module.exports: $Exports<'html-loader/dist/HtmlSourceError'>; -} -declare module 'html-loader/dist/index' { - declare module.exports: $Exports<'html-loader/dist'>; -} -declare module 'html-loader/dist/index.js' { - declare module.exports: $Exports<'html-loader/dist'>; -} -declare module 'html-loader/dist/plugins/index' { - declare module.exports: $Exports<'html-loader/dist/plugins'>; -} -declare module 'html-loader/dist/plugins/index.js' { - declare module.exports: $Exports<'html-loader/dist/plugins'>; -} -declare module 'html-loader/dist/plugins/minimizer-plugin.js' { - declare module.exports: $Exports<'html-loader/dist/plugins/minimizer-plugin'>; -} -declare module 'html-loader/dist/plugins/source-plugin.js' { - declare module.exports: $Exports<'html-loader/dist/plugins/source-plugin'>; -} -declare module 'html-loader/dist/runtime/getUrl.js' { - declare module.exports: $Exports<'html-loader/dist/runtime/getUrl'>; -} -declare module 'html-loader/dist/utils.js' { - declare module.exports: $Exports<'html-loader/dist/utils'>; -} diff --git a/flow-typed/npm/html-webpack-plugin_vx.x.x.js b/flow-typed/npm/html-webpack-plugin_vx.x.x.js deleted file mode 100644 index 3de4589a4..000000000 --- a/flow-typed/npm/html-webpack-plugin_vx.x.x.js +++ /dev/null @@ -1,101 +0,0 @@ -// flow-typed signature: 82a6de7322dafff75cbedc95213af2b9 -// flow-typed version: <>/html-webpack-plugin_v^4.0.3/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'html-webpack-plugin' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'html-webpack-plugin' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'html-webpack-plugin/lib/cached-child-compiler' { - declare module.exports: any; -} - -declare module 'html-webpack-plugin/lib/child-compiler' { - declare module.exports: any; -} - -declare module 'html-webpack-plugin/lib/chunksorter' { - declare module.exports: any; -} - -declare module 'html-webpack-plugin/lib/errors' { - declare module.exports: any; -} - -declare module 'html-webpack-plugin/lib/file-watcher-api' { - declare module.exports: any; -} - -declare module 'html-webpack-plugin/lib/hooks' { - declare module.exports: any; -} - -declare module 'html-webpack-plugin/lib/html-tags' { - declare module.exports: any; -} - -declare module 'html-webpack-plugin/lib/loader' { - declare module.exports: any; -} - -declare module 'html-webpack-plugin/lib/webpack4/file-watcher-api' { - declare module.exports: any; -} - -declare module 'html-webpack-plugin/lib/webpack5/file-watcher-api' { - declare module.exports: any; -} - -// Filename aliases -declare module 'html-webpack-plugin/index' { - declare module.exports: $Exports<'html-webpack-plugin'>; -} -declare module 'html-webpack-plugin/index.js' { - declare module.exports: $Exports<'html-webpack-plugin'>; -} -declare module 'html-webpack-plugin/lib/cached-child-compiler.js' { - declare module.exports: $Exports<'html-webpack-plugin/lib/cached-child-compiler'>; -} -declare module 'html-webpack-plugin/lib/child-compiler.js' { - declare module.exports: $Exports<'html-webpack-plugin/lib/child-compiler'>; -} -declare module 'html-webpack-plugin/lib/chunksorter.js' { - declare module.exports: $Exports<'html-webpack-plugin/lib/chunksorter'>; -} -declare module 'html-webpack-plugin/lib/errors.js' { - declare module.exports: $Exports<'html-webpack-plugin/lib/errors'>; -} -declare module 'html-webpack-plugin/lib/file-watcher-api.js' { - declare module.exports: $Exports<'html-webpack-plugin/lib/file-watcher-api'>; -} -declare module 'html-webpack-plugin/lib/hooks.js' { - declare module.exports: $Exports<'html-webpack-plugin/lib/hooks'>; -} -declare module 'html-webpack-plugin/lib/html-tags.js' { - declare module.exports: $Exports<'html-webpack-plugin/lib/html-tags'>; -} -declare module 'html-webpack-plugin/lib/loader.js' { - declare module.exports: $Exports<'html-webpack-plugin/lib/loader'>; -} -declare module 'html-webpack-plugin/lib/webpack4/file-watcher-api.js' { - declare module.exports: $Exports<'html-webpack-plugin/lib/webpack4/file-watcher-api'>; -} -declare module 'html-webpack-plugin/lib/webpack5/file-watcher-api.js' { - declare module.exports: $Exports<'html-webpack-plugin/lib/webpack5/file-watcher-api'>; -} diff --git a/flow-typed/npm/identity-obj-proxy_vx.x.x.js b/flow-typed/npm/identity-obj-proxy_vx.x.x.js deleted file mode 100644 index 6a2069c9e..000000000 --- a/flow-typed/npm/identity-obj-proxy_vx.x.x.js +++ /dev/null @@ -1,119 +0,0 @@ -// flow-typed signature: 81538cddba7166eb4061fb3b56bdfae4 -// flow-typed version: <>/identity-obj-proxy_v^3.0.0/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'identity-obj-proxy' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'identity-obj-proxy' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'identity-obj-proxy/src/__tests__/import-es6-export-test' { - declare module.exports: any; -} - -declare module 'identity-obj-proxy/src/__tests__/import-es6-import-export-test' { - declare module.exports: any; -} - -declare module 'identity-obj-proxy/src/__tests__/import-es6-import-test' { - declare module.exports: any; -} - -declare module 'identity-obj-proxy/src/__tests__/import-vanilla-test' { - declare module.exports: any; -} - -declare module 'identity-obj-proxy/src/__tests__/index-test' { - declare module.exports: any; -} - -declare module 'identity-obj-proxy/src/__tests__/require-es6-export-test' { - declare module.exports: any; -} - -declare module 'identity-obj-proxy/src/__tests__/require-es6-import-export-test' { - declare module.exports: any; -} - -declare module 'identity-obj-proxy/src/__tests__/require-es6-import-test' { - declare module.exports: any; -} - -declare module 'identity-obj-proxy/src/__tests__/require-vanilla-test' { - declare module.exports: any; -} - -declare module 'identity-obj-proxy/src' { - declare module.exports: any; -} - -declare module 'identity-obj-proxy/src/test-redirections/idObjES6Export' { - declare module.exports: any; -} - -declare module 'identity-obj-proxy/src/test-redirections/idObjES6Import' { - declare module.exports: any; -} - -declare module 'identity-obj-proxy/src/test-redirections/idObjES6ImportExport' { - declare module.exports: any; -} - -// Filename aliases -declare module 'identity-obj-proxy/src/__tests__/import-es6-export-test.js' { - declare module.exports: $Exports<'identity-obj-proxy/src/__tests__/import-es6-export-test'>; -} -declare module 'identity-obj-proxy/src/__tests__/import-es6-import-export-test.js' { - declare module.exports: $Exports<'identity-obj-proxy/src/__tests__/import-es6-import-export-test'>; -} -declare module 'identity-obj-proxy/src/__tests__/import-es6-import-test.js' { - declare module.exports: $Exports<'identity-obj-proxy/src/__tests__/import-es6-import-test'>; -} -declare module 'identity-obj-proxy/src/__tests__/import-vanilla-test.js' { - declare module.exports: $Exports<'identity-obj-proxy/src/__tests__/import-vanilla-test'>; -} -declare module 'identity-obj-proxy/src/__tests__/index-test.js' { - declare module.exports: $Exports<'identity-obj-proxy/src/__tests__/index-test'>; -} -declare module 'identity-obj-proxy/src/__tests__/require-es6-export-test.js' { - declare module.exports: $Exports<'identity-obj-proxy/src/__tests__/require-es6-export-test'>; -} -declare module 'identity-obj-proxy/src/__tests__/require-es6-import-export-test.js' { - declare module.exports: $Exports<'identity-obj-proxy/src/__tests__/require-es6-import-export-test'>; -} -declare module 'identity-obj-proxy/src/__tests__/require-es6-import-test.js' { - declare module.exports: $Exports<'identity-obj-proxy/src/__tests__/require-es6-import-test'>; -} -declare module 'identity-obj-proxy/src/__tests__/require-vanilla-test.js' { - declare module.exports: $Exports<'identity-obj-proxy/src/__tests__/require-vanilla-test'>; -} -declare module 'identity-obj-proxy/src/index' { - declare module.exports: $Exports<'identity-obj-proxy/src'>; -} -declare module 'identity-obj-proxy/src/index.js' { - declare module.exports: $Exports<'identity-obj-proxy/src'>; -} -declare module 'identity-obj-proxy/src/test-redirections/idObjES6Export.js' { - declare module.exports: $Exports<'identity-obj-proxy/src/test-redirections/idObjES6Export'>; -} -declare module 'identity-obj-proxy/src/test-redirections/idObjES6Import.js' { - declare module.exports: $Exports<'identity-obj-proxy/src/test-redirections/idObjES6Import'>; -} -declare module 'identity-obj-proxy/src/test-redirections/idObjES6ImportExport.js' { - declare module.exports: $Exports<'identity-obj-proxy/src/test-redirections/idObjES6ImportExport'>; -} diff --git a/flow-typed/npm/jest_v25.x.x.js b/flow-typed/npm/jest_v25.x.x.js deleted file mode 100644 index a392e4e54..000000000 --- a/flow-typed/npm/jest_v25.x.x.js +++ /dev/null @@ -1,1212 +0,0 @@ -// flow-typed signature: ddbe7dbe6749c5424c3c33cbe6fc900f -// flow-typed version: 7afca48d86/jest_v25.x.x/flow_>=v0.104.x - -type JestMockFn, TReturn> = { - (...args: TArguments): TReturn, - /** - * An object for introspecting mock calls - */ - mock: { - /** - * An array that represents all calls that have been made into this mock - * function. Each call is represented by an array of arguments that were - * passed during the call. - */ - calls: Array, - /** - * An array that contains all the object instances that have been - * instantiated from this mock function. - */ - instances: Array, - /** - * An array that contains all the object results that have been - * returned by this mock function call - */ - results: Array<{ - isThrow: boolean, - value: TReturn, - ... - }>, - ... - }, - /** - * Resets all information stored in the mockFn.mock.calls and - * mockFn.mock.instances arrays. Often this is useful when you want to clean - * up a mock's usage data between two assertions. - */ - mockClear(): void, - /** - * Resets all information stored in the mock. This is useful when you want to - * completely restore a mock back to its initial state. - */ - mockReset(): void, - /** - * Removes the mock and restores the initial implementation. This is useful - * when you want to mock functions in certain test cases and restore the - * original implementation in others. Beware that mockFn.mockRestore only - * works when mock was created with jest.spyOn. Thus you have to take care of - * restoration yourself when manually assigning jest.fn(). - */ - mockRestore(): void, - /** - * Accepts a function that should be used as the implementation of the mock. - * The mock itself will still record all calls that go into and instances - * that come from itself -- the only difference is that the implementation - * will also be executed when the mock is called. - */ - mockImplementation( - fn: (...args: TArguments) => TReturn - ): JestMockFn, - /** - * Accepts a function that will be used as an implementation of the mock for - * one call to the mocked function. Can be chained so that multiple function - * calls produce different results. - */ - mockImplementationOnce( - fn: (...args: TArguments) => TReturn - ): JestMockFn, - /** - * Accepts a string to use in test result output in place of "jest.fn()" to - * indicate which mock function is being referenced. - */ - mockName(name: string): JestMockFn, - /** - * Just a simple sugar function for returning `this` - */ - mockReturnThis(): void, - /** - * Accepts a value that will be returned whenever the mock function is called. - */ - mockReturnValue(value: TReturn): JestMockFn, - /** - * Sugar for only returning a value once inside your mock - */ - mockReturnValueOnce(value: TReturn): JestMockFn, - /** - * Sugar for jest.fn().mockImplementation(() => Promise.resolve(value)) - */ - mockResolvedValue(value: TReturn): JestMockFn>, - /** - * Sugar for jest.fn().mockImplementationOnce(() => Promise.resolve(value)) - */ - mockResolvedValueOnce( - value: TReturn - ): JestMockFn>, - /** - * Sugar for jest.fn().mockImplementation(() => Promise.reject(value)) - */ - mockRejectedValue(value: TReturn): JestMockFn>, - /** - * Sugar for jest.fn().mockImplementationOnce(() => Promise.reject(value)) - */ - mockRejectedValueOnce(value: TReturn): JestMockFn>, - ... -}; - -type JestAsymmetricEqualityType = { /** - * A custom Jasmine equality tester - */ -asymmetricMatch(value: mixed): boolean, ... }; - -type JestCallsType = { - allArgs(): mixed, - all(): mixed, - any(): boolean, - count(): number, - first(): mixed, - mostRecent(): mixed, - reset(): void, - ... -}; - -type JestClockType = { - install(): void, - mockDate(date: Date): void, - tick(milliseconds?: number): void, - uninstall(): void, - ... -}; - -type JestMatcherResult = { - message?: string | (() => string), - pass: boolean, - ... -}; - -type JestMatcher = ( - received: any, - ...actual: Array -) => JestMatcherResult | Promise; - -type JestPromiseType = { - /** - * Use rejects to unwrap the reason of a rejected promise so any other - * matcher can be chained. If the promise is fulfilled the assertion fails. - */ - rejects: JestExpectType, - /** - * Use resolves to unwrap the value of a fulfilled promise so any other - * matcher can be chained. If the promise is rejected the assertion fails. - */ - resolves: JestExpectType, - ... -}; - -/** - * Jest allows functions and classes to be used as test names in test() and - * describe() - */ -type JestTestName = string | Function; - -/** - * Plugin: jest-styled-components - */ - -type JestStyledComponentsMatcherValue = - | string - | JestAsymmetricEqualityType - | RegExp - | typeof undefined; - -type JestStyledComponentsMatcherOptions = { - media?: string, - modifier?: string, - supports?: string, - ... -}; - -type JestStyledComponentsMatchersType = { toHaveStyleRule( - property: string, - value: JestStyledComponentsMatcherValue, - options?: JestStyledComponentsMatcherOptions -): void, ... }; - -/** - * Plugin: jest-enzyme - */ -type EnzymeMatchersType = { - // 5.x - toBeEmpty(): void, - toBePresent(): void, - // 6.x - toBeChecked(): void, - toBeDisabled(): void, - toBeEmptyRender(): void, - toContainMatchingElement(selector: string): void, - toContainMatchingElements(n: number, selector: string): void, - toContainExactlyOneMatchingElement(selector: string): void, - toContainReact(element: React$Element): void, - toExist(): void, - toHaveClassName(className: string): void, - toHaveHTML(html: string): void, - toHaveProp: ((propKey: string, propValue?: any) => void) & - ((props: {...}) => void), - toHaveRef(refName: string): void, - toHaveState: ((stateKey: string, stateValue?: any) => void) & - ((state: {...}) => void), - toHaveStyle: ((styleKey: string, styleValue?: any) => void) & - ((style: {...}) => void), - toHaveTagName(tagName: string): void, - toHaveText(text: string): void, - toHaveValue(value: any): void, - toIncludeText(text: string): void, - toMatchElement( - element: React$Element, - options?: {| ignoreProps?: boolean, verbose?: boolean |} - ): void, - toMatchSelector(selector: string): void, - // 7.x - toHaveDisplayName(name: string): void, - ... -}; - -// DOM testing library extensions (jest-dom) -// https://github.com/testing-library/jest-dom -type DomTestingLibraryType = { - /** - * @deprecated - */ - toBeInTheDOM(container?: HTMLElement): void, - - // 4.x - toBeInTheDocument(): void, - toBeVisible(): void, - toBeEmpty(): void, - toBeDisabled(): void, - toBeEnabled(): void, - toBeInvalid(): void, - toBeRequired(): void, - toBeValid(): void, - toContainElement(element: HTMLElement | null): void, - toContainHTML(htmlText: string): void, - toHaveAttribute(attr: string, value?: any): void, - toHaveClass(...classNames: string[]): void, - toHaveFocus(): void, - toHaveFormValues(expectedValues: { [name: string]: any, ... }): void, - toHaveStyle(css: string | { [name: string]: any, ... }): void, - toHaveTextContent( - text: string | RegExp, - options?: {| normalizeWhitespace: boolean |} - ): void, - toHaveValue(value?: string | string[] | number): void, - - // 5.x - toHaveDisplayValue(value: string | string[]): void, - toBeChecked(): void, - ... -}; - -// Jest JQuery Matchers: https://github.com/unindented/custom-jquery-matchers -type JestJQueryMatchersType = { - toExist(): void, - toHaveLength(len: number): void, - toHaveId(id: string): void, - toHaveClass(className: string): void, - toHaveTag(tag: string): void, - toHaveAttr(key: string, val?: any): void, - toHaveProp(key: string, val?: any): void, - toHaveText(text: string | RegExp): void, - toHaveData(key: string, val?: any): void, - toHaveValue(val: any): void, - toHaveCss(css: { [key: string]: any, ... }): void, - toBeChecked(): void, - toBeDisabled(): void, - toBeEmpty(): void, - toBeHidden(): void, - toBeSelected(): void, - toBeVisible(): void, - toBeFocused(): void, - toBeInDom(): void, - toBeMatchedBy(sel: string): void, - toHaveDescendant(sel: string): void, - toHaveDescendantWithText(sel: string, text: string | RegExp): void, - ... -}; - -// Jest Extended Matchers: https://github.com/jest-community/jest-extended -type JestExtendedMatchersType = { - /** - * Note: Currently unimplemented - * Passing assertion - * - * @param {String} message - */ - // pass(message: string): void; - - /** - * Note: Currently unimplemented - * Failing assertion - * - * @param {String} message - */ - // fail(message: string): void; - - /** - * Use .toBeEmpty when checking if a String '', Array [] or Object {} is empty. - */ - toBeEmpty(): void, - /** - * Use .toBeOneOf when checking if a value is a member of a given Array. - * @param {Array.<*>} members - */ - toBeOneOf(members: any[]): void, - /** - * Use `.toBeNil` when checking a value is `null` or `undefined`. - */ - toBeNil(): void, - /** - * Use `.toSatisfy` when you want to use a custom matcher by supplying a predicate function that returns a `Boolean`. - * @param {Function} predicate - */ - toSatisfy(predicate: (n: any) => boolean): void, - /** - * Use `.toBeArray` when checking if a value is an `Array`. - */ - toBeArray(): void, - /** - * Use `.toBeArrayOfSize` when checking if a value is an `Array` of size x. - * @param {Number} x - */ - toBeArrayOfSize(x: number): void, - /** - * Use `.toIncludeAllMembers` when checking if an `Array` contains all of the same members of a given set. - * @param {Array.<*>} members - */ - toIncludeAllMembers(members: any[]): void, - /** - * Use `.toIncludeAnyMembers` when checking if an `Array` contains any of the members of a given set. - * @param {Array.<*>} members - */ - toIncludeAnyMembers(members: any[]): void, - /** - * Use `.toSatisfyAll` when you want to use a custom matcher by supplying a predicate function that returns a `Boolean` for all values in an array. - * @param {Function} predicate - */ - toSatisfyAll(predicate: (n: any) => boolean): void, - /** - * Use `.toBeBoolean` when checking if a value is a `Boolean`. - */ - toBeBoolean(): void, - /** - * Use `.toBeTrue` when checking a value is equal (===) to `true`. - */ - toBeTrue(): void, - /** - * Use `.toBeFalse` when checking a value is equal (===) to `false`. - */ - toBeFalse(): void, - /** - * Use .toBeDate when checking if a value is a Date. - */ - toBeDate(): void, - /** - * Use `.toBeFunction` when checking if a value is a `Function`. - */ - toBeFunction(): void, - /** - * Use `.toHaveBeenCalledBefore` when checking if a `Mock` was called before another `Mock`. - * - * Note: Required Jest version >22 - * Note: Your mock functions will have to be asynchronous to cause the timestamps inside of Jest to occur in a differentJS event loop, otherwise the mock timestamps will all be the same - * - * @param {Mock} mock - */ - toHaveBeenCalledBefore(mock: JestMockFn): void, - /** - * Use `.toBeNumber` when checking if a value is a `Number`. - */ - toBeNumber(): void, - /** - * Use `.toBeNaN` when checking a value is `NaN`. - */ - toBeNaN(): void, - /** - * Use `.toBeFinite` when checking if a value is a `Number`, not `NaN` or `Infinity`. - */ - toBeFinite(): void, - /** - * Use `.toBePositive` when checking if a value is a positive `Number`. - */ - toBePositive(): void, - /** - * Use `.toBeNegative` when checking if a value is a negative `Number`. - */ - toBeNegative(): void, - /** - * Use `.toBeEven` when checking if a value is an even `Number`. - */ - toBeEven(): void, - /** - * Use `.toBeOdd` when checking if a value is an odd `Number`. - */ - toBeOdd(): void, - /** - * Use `.toBeWithin` when checking if a number is in between the given bounds of: start (inclusive) and end (exclusive). - * - * @param {Number} start - * @param {Number} end - */ - toBeWithin(start: number, end: number): void, - /** - * Use `.toBeObject` when checking if a value is an `Object`. - */ - toBeObject(): void, - /** - * Use `.toContainKey` when checking if an object contains the provided key. - * - * @param {String} key - */ - toContainKey(key: string): void, - /** - * Use `.toContainKeys` when checking if an object has all of the provided keys. - * - * @param {Array.} keys - */ - toContainKeys(keys: string[]): void, - /** - * Use `.toContainAllKeys` when checking if an object only contains all of the provided keys. - * - * @param {Array.} keys - */ - toContainAllKeys(keys: string[]): void, - /** - * Use `.toContainAnyKeys` when checking if an object contains at least one of the provided keys. - * - * @param {Array.} keys - */ - toContainAnyKeys(keys: string[]): void, - /** - * Use `.toContainValue` when checking if an object contains the provided value. - * - * @param {*} value - */ - toContainValue(value: any): void, - /** - * Use `.toContainValues` when checking if an object contains all of the provided values. - * - * @param {Array.<*>} values - */ - toContainValues(values: any[]): void, - /** - * Use `.toContainAllValues` when checking if an object only contains all of the provided values. - * - * @param {Array.<*>} values - */ - toContainAllValues(values: any[]): void, - /** - * Use `.toContainAnyValues` when checking if an object contains at least one of the provided values. - * - * @param {Array.<*>} values - */ - toContainAnyValues(values: any[]): void, - /** - * Use `.toContainEntry` when checking if an object contains the provided entry. - * - * @param {Array.} entry - */ - toContainEntry(entry: [string, string]): void, - /** - * Use `.toContainEntries` when checking if an object contains all of the provided entries. - * - * @param {Array.>} entries - */ - toContainEntries(entries: [string, string][]): void, - /** - * Use `.toContainAllEntries` when checking if an object only contains all of the provided entries. - * - * @param {Array.>} entries - */ - toContainAllEntries(entries: [string, string][]): void, - /** - * Use `.toContainAnyEntries` when checking if an object contains at least one of the provided entries. - * - * @param {Array.>} entries - */ - toContainAnyEntries(entries: [string, string][]): void, - /** - * Use `.toBeExtensible` when checking if an object is extensible. - */ - toBeExtensible(): void, - /** - * Use `.toBeFrozen` when checking if an object is frozen. - */ - toBeFrozen(): void, - /** - * Use `.toBeSealed` when checking if an object is sealed. - */ - toBeSealed(): void, - /** - * Use `.toBeString` when checking if a value is a `String`. - */ - toBeString(): void, - /** - * Use `.toEqualCaseInsensitive` when checking if a string is equal (===) to another ignoring the casing of both strings. - * - * @param {String} string - */ - toEqualCaseInsensitive(string: string): void, - /** - * Use `.toStartWith` when checking if a `String` starts with a given `String` prefix. - * - * @param {String} prefix - */ - toStartWith(prefix: string): void, - /** - * Use `.toEndWith` when checking if a `String` ends with a given `String` suffix. - * - * @param {String} suffix - */ - toEndWith(suffix: string): void, - /** - * Use `.toInclude` when checking if a `String` includes the given `String` substring. - * - * @param {String} substring - */ - toInclude(substring: string): void, - /** - * Use `.toIncludeRepeated` when checking if a `String` includes the given `String` substring the correct number of times. - * - * @param {String} substring - * @param {Number} times - */ - toIncludeRepeated(substring: string, times: number): void, - /** - * Use `.toIncludeMultiple` when checking if a `String` includes all of the given substrings. - * - * @param {Array.} substring - */ - toIncludeMultiple(substring: string[]): void, - ... -}; - -// Diffing snapshot utility for Jest (snapshot-diff) -// https://github.com/jest-community/snapshot-diff -type SnapshotDiffType = { - /** - * Compare the difference between the actual in the `expect()` - * vs the object inside `valueB` with some extra options. - */ - toMatchDiffSnapshot( - valueB: any, - options?: {| - expand?: boolean; - colors?: boolean; - contextLines?: number; - stablePatchmarks?: boolean; - aAnnotation?: string; - bAnnotation?: string; - |}, - testName?: string - ): void, - ... -} - -interface JestExpectType { - not: JestExpectType & - EnzymeMatchersType & - DomTestingLibraryType & - JestJQueryMatchersType & - JestStyledComponentsMatchersType & - JestExtendedMatchersType & - SnapshotDiffType; - /** - * If you have a mock function, you can use .lastCalledWith to test what - * arguments it was last called with. - */ - lastCalledWith(...args: Array): void; - /** - * toBe just checks that a value is what you expect. It uses === to check - * strict equality. - */ - toBe(value: any): void; - /** - * Use .toBeCalledWith to ensure that a mock function was called with - * specific arguments. - */ - toBeCalledWith(...args: Array): void; - /** - * Using exact equality with floating point numbers is a bad idea. Rounding - * means that intuitive things fail. - */ - toBeCloseTo(num: number, delta: any): void; - /** - * Use .toBeDefined to check that a variable is not undefined. - */ - toBeDefined(): void; - /** - * Use .toBeFalsy when you don't care what a value is, you just want to - * ensure a value is false in a boolean context. - */ - toBeFalsy(): void; - /** - * To compare floating point numbers, you can use toBeGreaterThan. - */ - toBeGreaterThan(number: number): void; - /** - * To compare floating point numbers, you can use toBeGreaterThanOrEqual. - */ - toBeGreaterThanOrEqual(number: number): void; - /** - * To compare floating point numbers, you can use toBeLessThan. - */ - toBeLessThan(number: number): void; - /** - * To compare floating point numbers, you can use toBeLessThanOrEqual. - */ - toBeLessThanOrEqual(number: number): void; - /** - * Use .toBeInstanceOf(Class) to check that an object is an instance of a - * class. - */ - toBeInstanceOf(cls: Class<*>): void; - /** - * .toBeNull() is the same as .toBe(null) but the error messages are a bit - * nicer. - */ - toBeNull(): void; - /** - * Use .toBeTruthy when you don't care what a value is, you just want to - * ensure a value is true in a boolean context. - */ - toBeTruthy(): void; - /** - * Use .toBeUndefined to check that a variable is undefined. - */ - toBeUndefined(): void; - /** - * Use .toContain when you want to check that an item is in a list. For - * testing the items in the list, this uses ===, a strict equality check. - */ - toContain(item: any): void; - /** - * Use .toContainEqual when you want to check that an item is in a list. For - * testing the items in the list, this matcher recursively checks the - * equality of all fields, rather than checking for object identity. - */ - toContainEqual(item: any): void; - /** - * Use .toEqual when you want to check that two objects have the same value. - * This matcher recursively checks the equality of all fields, rather than - * checking for object identity. - */ - toEqual(value: any): void; - /** - * Use .toHaveBeenCalled to ensure that a mock function got called. - */ - toHaveBeenCalled(): void; - toBeCalled(): void; - /** - * Use .toHaveBeenCalledTimes to ensure that a mock function got called exact - * number of times. - */ - toHaveBeenCalledTimes(number: number): void; - toBeCalledTimes(number: number): void; - /** - * - */ - toHaveBeenNthCalledWith(nthCall: number, ...args: Array): void; - nthCalledWith(nthCall: number, ...args: Array): void; - /** - * - */ - toHaveReturned(): void; - toReturn(): void; - /** - * - */ - toHaveReturnedTimes(number: number): void; - toReturnTimes(number: number): void; - /** - * - */ - toHaveReturnedWith(value: any): void; - toReturnWith(value: any): void; - /** - * - */ - toHaveLastReturnedWith(value: any): void; - lastReturnedWith(value: any): void; - /** - * - */ - toHaveNthReturnedWith(nthCall: number, value: any): void; - nthReturnedWith(nthCall: number, value: any): void; - /** - * Use .toHaveBeenCalledWith to ensure that a mock function was called with - * specific arguments. - */ - toHaveBeenCalledWith(...args: Array): void; - toBeCalledWith(...args: Array): void; - /** - * Use .toHaveBeenLastCalledWith to ensure that a mock function was last called - * with specific arguments. - */ - toHaveBeenLastCalledWith(...args: Array): void; - lastCalledWith(...args: Array): void; - /** - * Check that an object has a .length property and it is set to a certain - * numeric value. - */ - toHaveLength(number: number): void; - /** - * - */ - toHaveProperty(propPath: string | $ReadOnlyArray, value?: any): void; - /** - * Use .toMatch to check that a string matches a regular expression or string. - */ - toMatch(regexpOrString: RegExp | string): void; - /** - * Use .toMatchObject to check that a javascript object matches a subset of the properties of an object. - */ - toMatchObject(object: Object | Array): void; - /** - * Use .toStrictEqual to check that a javascript object matches a subset of the properties of an object. - */ - toStrictEqual(value: any): void; - /** - * This ensures that an Object matches the most recent snapshot. - */ - toMatchSnapshot(propertyMatchers?: any, name?: string): void; - /** - * This ensures that an Object matches the most recent snapshot. - */ - toMatchSnapshot(name: string): void; - - toMatchInlineSnapshot(snapshot?: string): void; - toMatchInlineSnapshot(propertyMatchers?: any, snapshot?: string): void; - /** - * Use .toThrow to test that a function throws when it is called. - * If you want to test that a specific error gets thrown, you can provide an - * argument to toThrow. The argument can be a string for the error message, - * a class for the error, or a regex that should match the error. - * - * Alias: .toThrowError - */ - toThrow(message?: string | Error | Class | RegExp): void; - toThrowError(message?: string | Error | Class | RegExp): void; - /** - * Use .toThrowErrorMatchingSnapshot to test that a function throws a error - * matching the most recent snapshot when it is called. - */ - toThrowErrorMatchingSnapshot(): void; - toThrowErrorMatchingInlineSnapshot(snapshot?: string): void; -} - -type JestObjectType = { - /** - * Disables automatic mocking in the module loader. - * - * After this method is called, all `require()`s will return the real - * versions of each module (rather than a mocked version). - */ - disableAutomock(): JestObjectType, - /** - * An un-hoisted version of disableAutomock - */ - autoMockOff(): JestObjectType, - /** - * Enables automatic mocking in the module loader. - */ - enableAutomock(): JestObjectType, - /** - * An un-hoisted version of enableAutomock - */ - autoMockOn(): JestObjectType, - /** - * Clears the mock.calls and mock.instances properties of all mocks. - * Equivalent to calling .mockClear() on every mocked function. - */ - clearAllMocks(): JestObjectType, - /** - * Resets the state of all mocks. Equivalent to calling .mockReset() on every - * mocked function. - */ - resetAllMocks(): JestObjectType, - /** - * Restores all mocks back to their original value. - */ - restoreAllMocks(): JestObjectType, - /** - * Removes any pending timers from the timer system. - */ - clearAllTimers(): void, - /** - * Returns the number of fake timers still left to run. - */ - getTimerCount(): number, - /** - * The same as `mock` but not moved to the top of the expectation by - * babel-jest. - */ - doMock(moduleName: string, moduleFactory?: any): JestObjectType, - /** - * The same as `unmock` but not moved to the top of the expectation by - * babel-jest. - */ - dontMock(moduleName: string): JestObjectType, - /** - * Returns a new, unused mock function. Optionally takes a mock - * implementation. - */ - fn, TReturn>( - implementation?: (...args: TArguments) => TReturn - ): JestMockFn, - /** - * Determines if the given function is a mocked function. - */ - isMockFunction(fn: Function): boolean, - /** - * Given the name of a module, use the automatic mocking system to generate a - * mocked version of the module for you. - */ - genMockFromModule(moduleName: string): any, - /** - * Mocks a module with an auto-mocked version when it is being required. - * - * The second argument can be used to specify an explicit module factory that - * is being run instead of using Jest's automocking feature. - * - * The third argument can be used to create virtual mocks -- mocks of modules - * that don't exist anywhere in the system. - */ - mock( - moduleName: string, - moduleFactory?: any, - options?: Object - ): JestObjectType, - /** - * Returns the actual module instead of a mock, bypassing all checks on - * whether the module should receive a mock implementation or not. - */ - requireActual(m: $Flow$ModuleRef | string): T, - /** - * Returns a mock module instead of the actual module, bypassing all checks - * on whether the module should be required normally or not. - */ - requireMock(moduleName: string): any, - /** - * Resets the module registry - the cache of all required modules. This is - * useful to isolate modules where local state might conflict between tests. - */ - resetModules(): JestObjectType, - /** - * Creates a sandbox registry for the modules that are loaded inside the - * callback function. This is useful to isolate specific modules for every - * test so that local module state doesn't conflict between tests. - */ - isolateModules(fn: () => void): JestObjectType, - /** - * Exhausts the micro-task queue (usually interfaced in node via - * process.nextTick). - */ - runAllTicks(): void, - /** - * Exhausts the macro-task queue (i.e., all tasks queued by setTimeout(), - * setInterval(), and setImmediate()). - */ - runAllTimers(): void, - /** - * Exhausts all tasks queued by setImmediate(). - */ - runAllImmediates(): void, - /** - * Executes only the macro task queue (i.e. all tasks queued by setTimeout() - * or setInterval() and setImmediate()). - */ - advanceTimersByTime(msToRun: number): void, - /** - * Executes only the macro task queue (i.e. all tasks queued by setTimeout() - * or setInterval() and setImmediate()). - * - * Renamed to `advanceTimersByTime`. - */ - runTimersToTime(msToRun: number): void, - /** - * Executes only the macro-tasks that are currently pending (i.e., only the - * tasks that have been queued by setTimeout() or setInterval() up to this - * point) - */ - runOnlyPendingTimers(): void, - /** - * Explicitly supplies the mock object that the module system should return - * for the specified module. Note: It is recommended to use jest.mock() - * instead. - */ - setMock(moduleName: string, moduleExports: any): JestObjectType, - /** - * Indicates that the module system should never return a mocked version of - * the specified module from require() (e.g. that it should always return the - * real module). - */ - unmock(moduleName: string): JestObjectType, - /** - * Instructs Jest to use fake versions of the standard timer functions - * (setTimeout, setInterval, clearTimeout, clearInterval, nextTick, - * setImmediate and clearImmediate). - */ - useFakeTimers(): JestObjectType, - /** - * Instructs Jest to use the real versions of the standard timer functions. - */ - useRealTimers(): JestObjectType, - /** - * Creates a mock function similar to jest.fn but also tracks calls to - * object[methodName]. - */ - spyOn( - object: Object, - methodName: string, - accessType?: 'get' | 'set' - ): JestMockFn, - /** - * Set the default timeout interval for tests and before/after hooks in milliseconds. - * Note: The default timeout interval is 5 seconds if this method is not called. - */ - setTimeout(timeout: number): JestObjectType, - ... -}; - -type JestSpyType = { calls: JestCallsType, ... }; - -type JestDoneFn = {| - (error?: Error): void, - fail: (error: Error) => void, -|}; - -/** Runs this function after every test inside this context */ -declare function afterEach( - fn: (done: JestDoneFn) => ?Promise, - timeout?: number -): void; -/** Runs this function before every test inside this context */ -declare function beforeEach( - fn: (done: JestDoneFn) => ?Promise, - timeout?: number -): void; -/** Runs this function after all tests have finished inside this context */ -declare function afterAll( - fn: (done: JestDoneFn) => ?Promise, - timeout?: number -): void; -/** Runs this function before any tests have started inside this context */ -declare function beforeAll( - fn: (done: JestDoneFn) => ?Promise, - timeout?: number -): void; - -/** A context for grouping tests together */ -declare var describe: { - /** - * Creates a block that groups together several related tests in one "test suite" - */ - (name: JestTestName, fn: () => void): void, - /** - * Only run this describe block - */ - only(name: JestTestName, fn: () => void): void, - /** - * Skip running this describe block - */ - skip(name: JestTestName, fn: () => void): void, - /** - * each runs this test against array of argument arrays per each run - * - * @param {table} table of Test - */ - each( - ...table: Array | mixed> | [Array, string] - ): ( - name: JestTestName, - fn?: (...args: Array) => ?Promise, - timeout?: number - ) => void, - ... -}; - -/** An individual test unit */ -declare var it: { - /** - * An individual test unit - * - * @param {JestTestName} Name of Test - * @param {Function} Test - * @param {number} Timeout for the test, in milliseconds. - */ - ( - name: JestTestName, - fn?: (done: JestDoneFn) => ?Promise, - timeout?: number - ): void, - /** - * Only run this test - * - * @param {JestTestName} Name of Test - * @param {Function} Test - * @param {number} Timeout for the test, in milliseconds. - */ - only: {| - ( - name: JestTestName, - fn?: (done: JestDoneFn) => ?Promise, - timeout?: number - ): void, - each( - ...table: Array | mixed> | [Array, string] - ): ( - name: JestTestName, - fn?: (...args: Array) => ?Promise, - timeout?: number - ) => void - |}, - /** - * Skip running this test - * - * @param {JestTestName} Name of Test - * @param {Function} Test - * @param {number} Timeout for the test, in milliseconds. - */ - skip( - name: JestTestName, - fn?: (done: JestDoneFn) => ?Promise, - timeout?: number - ): void, - /** - * Highlight planned tests in the summary output - * - * @param {String} Name of Test to do - */ - todo(name: string): void, - /** - * Run the test concurrently - * - * @param {JestTestName} Name of Test - * @param {Function} Test - * @param {number} Timeout for the test, in milliseconds. - */ - concurrent( - name: JestTestName, - fn?: (done: JestDoneFn) => ?Promise, - timeout?: number - ): void, - /** - * each runs this test against array of argument arrays per each run - * - * @param {table} table of Test - */ - each( - ...table: Array | mixed> | [Array, string] - ): ( - name: JestTestName, - fn?: (...args: Array) => ?Promise, - timeout?: number - ) => void, - ... -}; - -declare function fit( - name: JestTestName, - fn: (done: JestDoneFn) => ?Promise, - timeout?: number -): void; -/** An individual test unit */ -declare var test: typeof it; -/** A disabled group of tests */ -declare var xdescribe: typeof describe; -/** A focused group of tests */ -declare var fdescribe: typeof describe; -/** A disabled individual test */ -declare var xit: typeof it; -/** A disabled individual test */ -declare var xtest: typeof it; - -type JestPrettyFormatColors = { - comment: { - close: string, - open: string, - ... - }, - content: { - close: string, - open: string, - ... - }, - prop: { - close: string, - open: string, - ... - }, - tag: { - close: string, - open: string, - ... - }, - value: { - close: string, - open: string, - ... - }, - ... -}; - -type JestPrettyFormatIndent = string => string; -type JestPrettyFormatRefs = Array; -type JestPrettyFormatPrint = any => string; -type JestPrettyFormatStringOrNull = string | null; - -type JestPrettyFormatOptions = {| - callToJSON: boolean, - edgeSpacing: string, - escapeRegex: boolean, - highlight: boolean, - indent: number, - maxDepth: number, - min: boolean, - plugins: JestPrettyFormatPlugins, - printFunctionName: boolean, - spacing: string, - theme: {| - comment: string, - content: string, - prop: string, - tag: string, - value: string, - |}, -|}; - -type JestPrettyFormatPlugin = { - print: ( - val: any, - serialize: JestPrettyFormatPrint, - indent: JestPrettyFormatIndent, - opts: JestPrettyFormatOptions, - colors: JestPrettyFormatColors - ) => string, - test: any => boolean, - ... -}; - -type JestPrettyFormatPlugins = Array; - -/** The expect function is used every time you want to test a value */ -declare var expect: { - /** The object that you want to make assertions against */ - ( - value: any - ): JestExpectType & - JestPromiseType & - EnzymeMatchersType & - DomTestingLibraryType & - JestJQueryMatchersType & - JestStyledComponentsMatchersType & - JestExtendedMatchersType & - SnapshotDiffType, - /** Add additional Jasmine matchers to Jest's roster */ - extend(matchers: { [name: string]: JestMatcher, ... }): void, - /** Add a module that formats application-specific data structures. */ - addSnapshotSerializer(pluginModule: JestPrettyFormatPlugin): void, - assertions(expectedAssertions: number): void, - hasAssertions(): void, - any(value: mixed): JestAsymmetricEqualityType, - anything(): any, - arrayContaining(value: Array): Array, - objectContaining(value: Object): Object, - /** Matches any received string that contains the exact expected string. */ - stringContaining(value: string): string, - stringMatching(value: string | RegExp): string, - not: { - arrayContaining: (value: $ReadOnlyArray) => Array, - objectContaining: (value: {...}) => Object, - stringContaining: (value: string) => string, - stringMatching: (value: string | RegExp) => string, - ... - }, - ... -}; - -// TODO handle return type -// http://jasmine.github.io/2.4/introduction.html#section-Spies -declare function spyOn(value: mixed, method: string): Object; - -/** Holds all functions related to manipulating test runner */ -declare var jest: JestObjectType; - -/** - * The global Jasmine object, this is generally not exposed as the public API, - * using features inside here could break in later versions of Jest. - */ -declare var jasmine: { - DEFAULT_TIMEOUT_INTERVAL: number, - any(value: mixed): JestAsymmetricEqualityType, - anything(): any, - arrayContaining(value: Array): Array, - clock(): JestClockType, - createSpy(name: string): JestSpyType, - createSpyObj( - baseName: string, - methodNames: Array - ): { [methodName: string]: JestSpyType, ... }, - objectContaining(value: Object): Object, - stringMatching(value: string): string, - ... -}; diff --git a/flow-typed/npm/oidc-client_vx.x.x.js b/flow-typed/npm/oidc-client_vx.x.x.js deleted file mode 100644 index 402f933b8..000000000 --- a/flow-typed/npm/oidc-client_vx.x.x.js +++ /dev/null @@ -1,962 +0,0 @@ -// flow-typed signature: 76e535fa91a940c8989bf10ee4b37993 -// flow-typed version: <>/oidc-client_v^1.10.1/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'oidc-client' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'oidc-client' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'oidc-client/dist/oidc-client' { - declare module.exports: any; -} - -declare module 'oidc-client/dist/oidc-client.min' { - declare module.exports: any; -} - -declare module 'oidc-client/dist/oidc-client.rsa256.slim' { - declare module.exports: any; -} - -declare module 'oidc-client/dist/oidc-client.rsa256.slim.min' { - declare module.exports: any; -} - -declare module 'oidc-client/dist/oidc-client.slim' { - declare module.exports: any; -} - -declare module 'oidc-client/dist/oidc-client.slim.min' { - declare module.exports: any; -} - -declare module 'oidc-client/gulpfile' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/dist/jsrsasign' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/base64-min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/base64' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/aes_min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/aes' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/cipher-core_min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/cipher-core' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/cryptojs-312-core-fix-min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/cryptojs-312-core-fix' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/enc-base64_min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/enc-base64' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/hmac_min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/hmac' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/md5_min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/md5' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/pbkdf2_min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/pbkdf2' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/ripemd160_min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/ripemd160' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/sha1_min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/sha1' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/sha224_min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/sha224' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/sha256_min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/sha256' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/sha384_min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/sha384' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/sha512_min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/sha512' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/tripledes_min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/tripledes' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/x64-core_min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/cj/x64-core' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/ec-min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/ec-patch-min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/ec-patch' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/ec' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/jsbn-min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/jsbn' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/jsbn2-min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/jsbn2' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/json-sans-eval-min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/json-sans-eval' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/prng4-min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/prng4' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/rng-min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/rng' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/rsa-min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/rsa' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/rsa2-min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/rsa2' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/yahoo-min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/ext/yahoo' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/footer' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/header' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/min/asn1-1.0.min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/min/asn1cades-1.0.min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/min/asn1cms-1.0.min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/min/asn1csr-1.0.min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/min/asn1hex-1.1.min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/min/asn1ocsp-1.0.min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/min/asn1tsp-1.0.min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/min/asn1x509-1.0.min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/min/base64x-1.1.min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/min/crypto-1.1.min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/min/dsa-2.0.min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/min/ecdsa-modified-1.0.min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/min/ecparam-1.0.min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/min/jws-3.3.min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/min/jwsjs-2.0.min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/min/keyutil-1.0.min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/min/nodeutil-1.0.min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/min/rsapem-1.1.min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/min/rsasign-1.2.min' { - declare module.exports: any; -} - -declare module 'oidc-client/jsrsasign/min/x509-1.1.min' { - declare module.exports: any; -} - -declare module 'oidc-client/lib/oidc-client' { - declare module.exports: any; -} - -declare module 'oidc-client/lib/oidc-client.min' { - declare module.exports: any; -} - -declare module 'oidc-client/lib/oidc-client.rsa256' { - declare module.exports: any; -} - -declare module 'oidc-client/lib/oidc-client.rsa256.min' { - declare module.exports: any; -} - -declare module 'oidc-client/polyfills' { - declare module.exports: any; -} - -declare module 'oidc-client/src/AccessTokenEvents' { - declare module.exports: any; -} - -declare module 'oidc-client/src/CheckSessionIFrame' { - declare module.exports: any; -} - -declare module 'oidc-client/src/CordovaIFrameNavigator' { - declare module.exports: any; -} - -declare module 'oidc-client/src/CordovaPopupNavigator' { - declare module.exports: any; -} - -declare module 'oidc-client/src/CordovaPopupWindow' { - declare module.exports: any; -} - -declare module 'oidc-client/src/crypto/jsrsasign' { - declare module.exports: any; -} - -declare module 'oidc-client/src/crypto/rsa' { - declare module.exports: any; -} - -declare module 'oidc-client/src/ErrorResponse' { - declare module.exports: any; -} - -declare module 'oidc-client/src/Event' { - declare module.exports: any; -} - -declare module 'oidc-client/src/Global' { - declare module.exports: any; -} - -declare module 'oidc-client/src/IFrameNavigator' { - declare module.exports: any; -} - -declare module 'oidc-client/src/IFrameWindow' { - declare module.exports: any; -} - -declare module 'oidc-client/src/InMemoryWebStorage' { - declare module.exports: any; -} - -declare module 'oidc-client/src/JoseUtil' { - declare module.exports: any; -} - -declare module 'oidc-client/src/JoseUtilImpl' { - declare module.exports: any; -} - -declare module 'oidc-client/src/JoseUtilRsa' { - declare module.exports: any; -} - -declare module 'oidc-client/src/JsonService' { - declare module.exports: any; -} - -declare module 'oidc-client/src/Log' { - declare module.exports: any; -} - -declare module 'oidc-client/src/MetadataService' { - declare module.exports: any; -} - -declare module 'oidc-client/src/OidcClient' { - declare module.exports: any; -} - -declare module 'oidc-client/src/OidcClientSettings' { - declare module.exports: any; -} - -declare module 'oidc-client/src/PopupNavigator' { - declare module.exports: any; -} - -declare module 'oidc-client/src/PopupWindow' { - declare module.exports: any; -} - -declare module 'oidc-client/src/random' { - declare module.exports: any; -} - -declare module 'oidc-client/src/RedirectNavigator' { - declare module.exports: any; -} - -declare module 'oidc-client/src/ResponseValidator' { - declare module.exports: any; -} - -declare module 'oidc-client/src/SessionMonitor' { - declare module.exports: any; -} - -declare module 'oidc-client/src/SigninRequest' { - declare module.exports: any; -} - -declare module 'oidc-client/src/SigninResponse' { - declare module.exports: any; -} - -declare module 'oidc-client/src/SigninState' { - declare module.exports: any; -} - -declare module 'oidc-client/src/SignoutRequest' { - declare module.exports: any; -} - -declare module 'oidc-client/src/SignoutResponse' { - declare module.exports: any; -} - -declare module 'oidc-client/src/SilentRenewService' { - declare module.exports: any; -} - -declare module 'oidc-client/src/State' { - declare module.exports: any; -} - -declare module 'oidc-client/src/Timer' { - declare module.exports: any; -} - -declare module 'oidc-client/src/TokenClient' { - declare module.exports: any; -} - -declare module 'oidc-client/src/TokenRevocationClient' { - declare module.exports: any; -} - -declare module 'oidc-client/src/UrlUtility' { - declare module.exports: any; -} - -declare module 'oidc-client/src/User' { - declare module.exports: any; -} - -declare module 'oidc-client/src/UserInfoService' { - declare module.exports: any; -} - -declare module 'oidc-client/src/UserManager' { - declare module.exports: any; -} - -declare module 'oidc-client/src/UserManagerEvents' { - declare module.exports: any; -} - -declare module 'oidc-client/src/UserManagerSettings' { - declare module.exports: any; -} - -declare module 'oidc-client/src/WebStorageStateStore' { - declare module.exports: any; -} - -declare module 'oidc-client/version' { - declare module.exports: any; -} - -declare module 'oidc-client/webpack.base' { - declare module.exports: any; -} - -// Filename aliases -declare module 'oidc-client/dist/oidc-client.js' { - declare module.exports: $Exports<'oidc-client/dist/oidc-client'>; -} -declare module 'oidc-client/dist/oidc-client.min.js' { - declare module.exports: $Exports<'oidc-client/dist/oidc-client.min'>; -} -declare module 'oidc-client/dist/oidc-client.rsa256.slim.js' { - declare module.exports: $Exports<'oidc-client/dist/oidc-client.rsa256.slim'>; -} -declare module 'oidc-client/dist/oidc-client.rsa256.slim.min.js' { - declare module.exports: $Exports<'oidc-client/dist/oidc-client.rsa256.slim.min'>; -} -declare module 'oidc-client/dist/oidc-client.slim.js' { - declare module.exports: $Exports<'oidc-client/dist/oidc-client.slim'>; -} -declare module 'oidc-client/dist/oidc-client.slim.min.js' { - declare module.exports: $Exports<'oidc-client/dist/oidc-client.slim.min'>; -} -declare module 'oidc-client/gulpfile.js' { - declare module.exports: $Exports<'oidc-client/gulpfile'>; -} -declare module 'oidc-client/index' { - declare module.exports: $Exports<'oidc-client'>; -} -declare module 'oidc-client/index.js' { - declare module.exports: $Exports<'oidc-client'>; -} -declare module 'oidc-client/jsrsasign/dist/jsrsasign.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/dist/jsrsasign'>; -} -declare module 'oidc-client/jsrsasign/ext/base64-min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/base64-min'>; -} -declare module 'oidc-client/jsrsasign/ext/base64.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/base64'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/aes_min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/aes_min'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/aes.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/aes'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/cipher-core_min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/cipher-core_min'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/cipher-core.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/cipher-core'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/cryptojs-312-core-fix-min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/cryptojs-312-core-fix-min'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/cryptojs-312-core-fix.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/cryptojs-312-core-fix'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/enc-base64_min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/enc-base64_min'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/enc-base64.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/enc-base64'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/hmac_min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/hmac_min'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/hmac.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/hmac'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/md5_min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/md5_min'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/md5.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/md5'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/pbkdf2_min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/pbkdf2_min'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/pbkdf2.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/pbkdf2'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/ripemd160_min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/ripemd160_min'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/ripemd160.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/ripemd160'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/sha1_min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/sha1_min'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/sha1.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/sha1'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/sha224_min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/sha224_min'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/sha224.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/sha224'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/sha256_min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/sha256_min'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/sha256.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/sha256'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/sha384_min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/sha384_min'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/sha384.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/sha384'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/sha512_min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/sha512_min'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/sha512.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/sha512'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/tripledes_min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/tripledes_min'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/tripledes.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/tripledes'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/x64-core_min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/x64-core_min'>; -} -declare module 'oidc-client/jsrsasign/ext/cj/x64-core.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/cj/x64-core'>; -} -declare module 'oidc-client/jsrsasign/ext/ec-min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/ec-min'>; -} -declare module 'oidc-client/jsrsasign/ext/ec-patch-min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/ec-patch-min'>; -} -declare module 'oidc-client/jsrsasign/ext/ec-patch.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/ec-patch'>; -} -declare module 'oidc-client/jsrsasign/ext/ec.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/ec'>; -} -declare module 'oidc-client/jsrsasign/ext/jsbn-min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/jsbn-min'>; -} -declare module 'oidc-client/jsrsasign/ext/jsbn.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/jsbn'>; -} -declare module 'oidc-client/jsrsasign/ext/jsbn2-min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/jsbn2-min'>; -} -declare module 'oidc-client/jsrsasign/ext/jsbn2.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/jsbn2'>; -} -declare module 'oidc-client/jsrsasign/ext/json-sans-eval-min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/json-sans-eval-min'>; -} -declare module 'oidc-client/jsrsasign/ext/json-sans-eval.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/json-sans-eval'>; -} -declare module 'oidc-client/jsrsasign/ext/prng4-min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/prng4-min'>; -} -declare module 'oidc-client/jsrsasign/ext/prng4.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/prng4'>; -} -declare module 'oidc-client/jsrsasign/ext/rng-min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/rng-min'>; -} -declare module 'oidc-client/jsrsasign/ext/rng.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/rng'>; -} -declare module 'oidc-client/jsrsasign/ext/rsa-min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/rsa-min'>; -} -declare module 'oidc-client/jsrsasign/ext/rsa.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/rsa'>; -} -declare module 'oidc-client/jsrsasign/ext/rsa2-min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/rsa2-min'>; -} -declare module 'oidc-client/jsrsasign/ext/rsa2.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/rsa2'>; -} -declare module 'oidc-client/jsrsasign/ext/yahoo-min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/yahoo-min'>; -} -declare module 'oidc-client/jsrsasign/ext/yahoo.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/ext/yahoo'>; -} -declare module 'oidc-client/jsrsasign/footer.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/footer'>; -} -declare module 'oidc-client/jsrsasign/header.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/header'>; -} -declare module 'oidc-client/jsrsasign/min/asn1-1.0.min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/min/asn1-1.0.min'>; -} -declare module 'oidc-client/jsrsasign/min/asn1cades-1.0.min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/min/asn1cades-1.0.min'>; -} -declare module 'oidc-client/jsrsasign/min/asn1cms-1.0.min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/min/asn1cms-1.0.min'>; -} -declare module 'oidc-client/jsrsasign/min/asn1csr-1.0.min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/min/asn1csr-1.0.min'>; -} -declare module 'oidc-client/jsrsasign/min/asn1hex-1.1.min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/min/asn1hex-1.1.min'>; -} -declare module 'oidc-client/jsrsasign/min/asn1ocsp-1.0.min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/min/asn1ocsp-1.0.min'>; -} -declare module 'oidc-client/jsrsasign/min/asn1tsp-1.0.min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/min/asn1tsp-1.0.min'>; -} -declare module 'oidc-client/jsrsasign/min/asn1x509-1.0.min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/min/asn1x509-1.0.min'>; -} -declare module 'oidc-client/jsrsasign/min/base64x-1.1.min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/min/base64x-1.1.min'>; -} -declare module 'oidc-client/jsrsasign/min/crypto-1.1.min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/min/crypto-1.1.min'>; -} -declare module 'oidc-client/jsrsasign/min/dsa-2.0.min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/min/dsa-2.0.min'>; -} -declare module 'oidc-client/jsrsasign/min/ecdsa-modified-1.0.min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/min/ecdsa-modified-1.0.min'>; -} -declare module 'oidc-client/jsrsasign/min/ecparam-1.0.min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/min/ecparam-1.0.min'>; -} -declare module 'oidc-client/jsrsasign/min/jws-3.3.min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/min/jws-3.3.min'>; -} -declare module 'oidc-client/jsrsasign/min/jwsjs-2.0.min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/min/jwsjs-2.0.min'>; -} -declare module 'oidc-client/jsrsasign/min/keyutil-1.0.min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/min/keyutil-1.0.min'>; -} -declare module 'oidc-client/jsrsasign/min/nodeutil-1.0.min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/min/nodeutil-1.0.min'>; -} -declare module 'oidc-client/jsrsasign/min/rsapem-1.1.min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/min/rsapem-1.1.min'>; -} -declare module 'oidc-client/jsrsasign/min/rsasign-1.2.min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/min/rsasign-1.2.min'>; -} -declare module 'oidc-client/jsrsasign/min/x509-1.1.min.js' { - declare module.exports: $Exports<'oidc-client/jsrsasign/min/x509-1.1.min'>; -} -declare module 'oidc-client/lib/oidc-client.js' { - declare module.exports: $Exports<'oidc-client/lib/oidc-client'>; -} -declare module 'oidc-client/lib/oidc-client.min.js' { - declare module.exports: $Exports<'oidc-client/lib/oidc-client.min'>; -} -declare module 'oidc-client/lib/oidc-client.rsa256.js' { - declare module.exports: $Exports<'oidc-client/lib/oidc-client.rsa256'>; -} -declare module 'oidc-client/lib/oidc-client.rsa256.min.js' { - declare module.exports: $Exports<'oidc-client/lib/oidc-client.rsa256.min'>; -} -declare module 'oidc-client/polyfills.js' { - declare module.exports: $Exports<'oidc-client/polyfills'>; -} -declare module 'oidc-client/src/AccessTokenEvents.js' { - declare module.exports: $Exports<'oidc-client/src/AccessTokenEvents'>; -} -declare module 'oidc-client/src/CheckSessionIFrame.js' { - declare module.exports: $Exports<'oidc-client/src/CheckSessionIFrame'>; -} -declare module 'oidc-client/src/CordovaIFrameNavigator.js' { - declare module.exports: $Exports<'oidc-client/src/CordovaIFrameNavigator'>; -} -declare module 'oidc-client/src/CordovaPopupNavigator.js' { - declare module.exports: $Exports<'oidc-client/src/CordovaPopupNavigator'>; -} -declare module 'oidc-client/src/CordovaPopupWindow.js' { - declare module.exports: $Exports<'oidc-client/src/CordovaPopupWindow'>; -} -declare module 'oidc-client/src/crypto/jsrsasign.js' { - declare module.exports: $Exports<'oidc-client/src/crypto/jsrsasign'>; -} -declare module 'oidc-client/src/crypto/rsa.js' { - declare module.exports: $Exports<'oidc-client/src/crypto/rsa'>; -} -declare module 'oidc-client/src/ErrorResponse.js' { - declare module.exports: $Exports<'oidc-client/src/ErrorResponse'>; -} -declare module 'oidc-client/src/Event.js' { - declare module.exports: $Exports<'oidc-client/src/Event'>; -} -declare module 'oidc-client/src/Global.js' { - declare module.exports: $Exports<'oidc-client/src/Global'>; -} -declare module 'oidc-client/src/IFrameNavigator.js' { - declare module.exports: $Exports<'oidc-client/src/IFrameNavigator'>; -} -declare module 'oidc-client/src/IFrameWindow.js' { - declare module.exports: $Exports<'oidc-client/src/IFrameWindow'>; -} -declare module 'oidc-client/src/InMemoryWebStorage.js' { - declare module.exports: $Exports<'oidc-client/src/InMemoryWebStorage'>; -} -declare module 'oidc-client/src/JoseUtil.js' { - declare module.exports: $Exports<'oidc-client/src/JoseUtil'>; -} -declare module 'oidc-client/src/JoseUtilImpl.js' { - declare module.exports: $Exports<'oidc-client/src/JoseUtilImpl'>; -} -declare module 'oidc-client/src/JoseUtilRsa.js' { - declare module.exports: $Exports<'oidc-client/src/JoseUtilRsa'>; -} -declare module 'oidc-client/src/JsonService.js' { - declare module.exports: $Exports<'oidc-client/src/JsonService'>; -} -declare module 'oidc-client/src/Log.js' { - declare module.exports: $Exports<'oidc-client/src/Log'>; -} -declare module 'oidc-client/src/MetadataService.js' { - declare module.exports: $Exports<'oidc-client/src/MetadataService'>; -} -declare module 'oidc-client/src/OidcClient.js' { - declare module.exports: $Exports<'oidc-client/src/OidcClient'>; -} -declare module 'oidc-client/src/OidcClientSettings.js' { - declare module.exports: $Exports<'oidc-client/src/OidcClientSettings'>; -} -declare module 'oidc-client/src/PopupNavigator.js' { - declare module.exports: $Exports<'oidc-client/src/PopupNavigator'>; -} -declare module 'oidc-client/src/PopupWindow.js' { - declare module.exports: $Exports<'oidc-client/src/PopupWindow'>; -} -declare module 'oidc-client/src/random.js' { - declare module.exports: $Exports<'oidc-client/src/random'>; -} -declare module 'oidc-client/src/RedirectNavigator.js' { - declare module.exports: $Exports<'oidc-client/src/RedirectNavigator'>; -} -declare module 'oidc-client/src/ResponseValidator.js' { - declare module.exports: $Exports<'oidc-client/src/ResponseValidator'>; -} -declare module 'oidc-client/src/SessionMonitor.js' { - declare module.exports: $Exports<'oidc-client/src/SessionMonitor'>; -} -declare module 'oidc-client/src/SigninRequest.js' { - declare module.exports: $Exports<'oidc-client/src/SigninRequest'>; -} -declare module 'oidc-client/src/SigninResponse.js' { - declare module.exports: $Exports<'oidc-client/src/SigninResponse'>; -} -declare module 'oidc-client/src/SigninState.js' { - declare module.exports: $Exports<'oidc-client/src/SigninState'>; -} -declare module 'oidc-client/src/SignoutRequest.js' { - declare module.exports: $Exports<'oidc-client/src/SignoutRequest'>; -} -declare module 'oidc-client/src/SignoutResponse.js' { - declare module.exports: $Exports<'oidc-client/src/SignoutResponse'>; -} -declare module 'oidc-client/src/SilentRenewService.js' { - declare module.exports: $Exports<'oidc-client/src/SilentRenewService'>; -} -declare module 'oidc-client/src/State.js' { - declare module.exports: $Exports<'oidc-client/src/State'>; -} -declare module 'oidc-client/src/Timer.js' { - declare module.exports: $Exports<'oidc-client/src/Timer'>; -} -declare module 'oidc-client/src/TokenClient.js' { - declare module.exports: $Exports<'oidc-client/src/TokenClient'>; -} -declare module 'oidc-client/src/TokenRevocationClient.js' { - declare module.exports: $Exports<'oidc-client/src/TokenRevocationClient'>; -} -declare module 'oidc-client/src/UrlUtility.js' { - declare module.exports: $Exports<'oidc-client/src/UrlUtility'>; -} -declare module 'oidc-client/src/User.js' { - declare module.exports: $Exports<'oidc-client/src/User'>; -} -declare module 'oidc-client/src/UserInfoService.js' { - declare module.exports: $Exports<'oidc-client/src/UserInfoService'>; -} -declare module 'oidc-client/src/UserManager.js' { - declare module.exports: $Exports<'oidc-client/src/UserManager'>; -} -declare module 'oidc-client/src/UserManagerEvents.js' { - declare module.exports: $Exports<'oidc-client/src/UserManagerEvents'>; -} -declare module 'oidc-client/src/UserManagerSettings.js' { - declare module.exports: $Exports<'oidc-client/src/UserManagerSettings'>; -} -declare module 'oidc-client/src/WebStorageStateStore.js' { - declare module.exports: $Exports<'oidc-client/src/WebStorageStateStore'>; -} -declare module 'oidc-client/version.js' { - declare module.exports: $Exports<'oidc-client/version'>; -} -declare module 'oidc-client/webpack.base.js' { - declare module.exports: $Exports<'oidc-client/webpack.base'>; -} diff --git a/flow-typed/npm/rc-tooltip_vx.x.x.js b/flow-typed/npm/rc-tooltip_vx.x.x.js deleted file mode 100644 index dfdb6e8ec..000000000 --- a/flow-typed/npm/rc-tooltip_vx.x.x.js +++ /dev/null @@ -1,101 +0,0 @@ -// flow-typed signature: 62423ebc5afc8ee3e5d30eb67797b8fd -// flow-typed version: <>/rc-tooltip_v^3.7.3/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'rc-tooltip' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'rc-tooltip' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'rc-tooltip/dist/rc-tooltip' { - declare module.exports: any; -} - -declare module 'rc-tooltip/dist/rc-tooltip.min' { - declare module.exports: any; -} - -declare module 'rc-tooltip/es/Content' { - declare module.exports: any; -} - -declare module 'rc-tooltip/es' { - declare module.exports: any; -} - -declare module 'rc-tooltip/es/placements' { - declare module.exports: any; -} - -declare module 'rc-tooltip/es/Tooltip' { - declare module.exports: any; -} - -declare module 'rc-tooltip/lib/Content' { - declare module.exports: any; -} - -declare module 'rc-tooltip/lib' { - declare module.exports: any; -} - -declare module 'rc-tooltip/lib/placements' { - declare module.exports: any; -} - -declare module 'rc-tooltip/lib/Tooltip' { - declare module.exports: any; -} - -// Filename aliases -declare module 'rc-tooltip/dist/rc-tooltip.js' { - declare module.exports: $Exports<'rc-tooltip/dist/rc-tooltip'>; -} -declare module 'rc-tooltip/dist/rc-tooltip.min.js' { - declare module.exports: $Exports<'rc-tooltip/dist/rc-tooltip.min'>; -} -declare module 'rc-tooltip/es/Content.js' { - declare module.exports: $Exports<'rc-tooltip/es/Content'>; -} -declare module 'rc-tooltip/es/index' { - declare module.exports: $Exports<'rc-tooltip/es'>; -} -declare module 'rc-tooltip/es/index.js' { - declare module.exports: $Exports<'rc-tooltip/es'>; -} -declare module 'rc-tooltip/es/placements.js' { - declare module.exports: $Exports<'rc-tooltip/es/placements'>; -} -declare module 'rc-tooltip/es/Tooltip.js' { - declare module.exports: $Exports<'rc-tooltip/es/Tooltip'>; -} -declare module 'rc-tooltip/lib/Content.js' { - declare module.exports: $Exports<'rc-tooltip/lib/Content'>; -} -declare module 'rc-tooltip/lib/index' { - declare module.exports: $Exports<'rc-tooltip/lib'>; -} -declare module 'rc-tooltip/lib/index.js' { - declare module.exports: $Exports<'rc-tooltip/lib'>; -} -declare module 'rc-tooltip/lib/placements.js' { - declare module.exports: $Exports<'rc-tooltip/lib/placements'>; -} -declare module 'rc-tooltip/lib/Tooltip.js' { - declare module.exports: $Exports<'rc-tooltip/lib/Tooltip'>; -} diff --git a/flow-typed/npm/react-debounce-input_vx.x.x.js b/flow-typed/npm/react-debounce-input_vx.x.x.js deleted file mode 100644 index 7e2dad6ac..000000000 --- a/flow-typed/npm/react-debounce-input_vx.x.x.js +++ /dev/null @@ -1,73 +0,0 @@ -// flow-typed signature: 23566ddbf776775e9e29a91bf9c06f68 -// flow-typed version: <>/react-debounce-input_v3.2.0/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'react-debounce-input' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'react-debounce-input' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'react-debounce-input/build/react-debounce-input' { - declare module.exports: any; -} - -declare module 'react-debounce-input/build/react-debounce-input.min' { - declare module.exports: any; -} - -declare module 'react-debounce-input/lib/Component' { - declare module.exports: any; -} - -declare module 'react-debounce-input/lib' { - declare module.exports: any; -} - -declare module 'react-debounce-input/src/Component' { - declare module.exports: any; -} - -declare module 'react-debounce-input/src' { - declare module.exports: any; -} - -// Filename aliases -declare module 'react-debounce-input/build/react-debounce-input.js' { - declare module.exports: $Exports<'react-debounce-input/build/react-debounce-input'>; -} -declare module 'react-debounce-input/build/react-debounce-input.min.js' { - declare module.exports: $Exports<'react-debounce-input/build/react-debounce-input.min'>; -} -declare module 'react-debounce-input/lib/Component.js' { - declare module.exports: $Exports<'react-debounce-input/lib/Component'>; -} -declare module 'react-debounce-input/lib/index' { - declare module.exports: $Exports<'react-debounce-input/lib'>; -} -declare module 'react-debounce-input/lib/index.js' { - declare module.exports: $Exports<'react-debounce-input/lib'>; -} -declare module 'react-debounce-input/src/Component.js' { - declare module.exports: $Exports<'react-debounce-input/src/Component'>; -} -declare module 'react-debounce-input/src/index' { - declare module.exports: $Exports<'react-debounce-input/src'>; -} -declare module 'react-debounce-input/src/index.js' { - declare module.exports: $Exports<'react-debounce-input/src'>; -} diff --git a/flow-typed/npm/react-redux_v7.x.x.js b/flow-typed/npm/react-redux_v7.x.x.js deleted file mode 100644 index afb2da710..000000000 --- a/flow-typed/npm/react-redux_v7.x.x.js +++ /dev/null @@ -1,300 +0,0 @@ -// flow-typed signature: 8da1e134b3de1d6f6bf9ba1cc7e2dc7e -// flow-typed version: 387a235736/react-redux_v7.x.x/flow_>=v0.104.x - -/** -The order of type arguments for connect() is as follows: - -connect(…) - -In Flow v0.89 only the first two are mandatory to specify. Other 4 can be repaced with the new awesome type placeholder: - -connect(…) - -But beware, in case of weird type errors somewhere in random places -just type everything and get to a green field and only then try to -remove the definitions you see bogus. - -Decrypting the abbreviations: - WC = Component being wrapped - S = State - D = Dispatch - OP = OwnProps - SP = StateProps - DP = DispatchProps - MP = Merge props - RSP = Returned state props - RDP = Returned dispatch props - RMP = Returned merge props - CP = Props for returned component - Com = React Component - SS = Selected state - ST = Static properties of Com - EFO = Extra factory options (used only in connectAdvanced) -*/ - -declare module "react-redux" { - // ------------------------------------------------------------ - // Typings for connect() - // ------------------------------------------------------------ - - declare export type Options = {| - pure?: boolean, - forwardRef?: boolean, - areStatesEqual?: (next: S, prev: S) => boolean, - areOwnPropsEqual?: (next: OP, prev: OP) => boolean, - areStatePropsEqual?: (next: SP, prev: SP) => boolean, - areMergedPropsEqual?: (next: MP, prev: MP) => boolean, - storeKey?: string, - |}; - - declare type MapStateToProps<-S, -OP, +SP> = - | ((state: S, ownProps: OP) => SP) - // If you want to use the factory function but get a strange error - // like "function is not an object" then just type the factory function - // like this: - // const factory: (State, OwnProps) => (State, OwnProps) => StateProps - // and provide the StateProps type to the SP type parameter. - | ((state: S, ownProps: OP) => (state: S, ownProps: OP) => SP); - - declare type Bind = ((...A) => R) => (...A) => $Call; - - declare type MapDispatchToPropsFn = - | ((dispatch: D, ownProps: OP) => DP) - // If you want to use the factory function but get a strange error - // like "function is not an object" then just type the factory function - // like this: - // const factory: (Dispatch, OwnProps) => (Dispatch, OwnProps) => DispatchProps - // and provide the DispatchProps type to the DP type parameter. - | ((dispatch: D, ownProps: OP) => (dispatch: D, ownProps: OP) => DP); - - declare class ConnectedComponent extends React$Component { - static +WrappedComponent: WC; - getWrappedInstance(): React$ElementRef; - } - // The connection of the Wrapped Component and the Connected Component - // happens here in `MP: P`. It means that type wise MP belongs to P, - // so to say MP >= P. - declare type Connector = >( - WC, - ) => Class> & WC; - - // No `mergeProps` argument - - // Got error like inexact OwnProps is incompatible with exact object type? - // Just make the OP parameter for `connect()` an exact object. - declare type MergeOP = {| ...$Exact, dispatch: D |}; - declare type MergeOPSP = {| ...$Exact, ...SP, dispatch: D |}; - declare type MergeOPDP = {| ...$Exact, ...DP |}; - declare type MergeOPSPDP = {| ...$Exact, ...SP, ...DP |}; - - declare export function connect<-P, -OP, -SP, -DP, -S, -D>( - mapStateToProps?: null | void, - mapDispatchToProps?: null | void, - mergeProps?: null | void, - options?: ?Options>, - ): Connector>; - - declare export function connect<-P, -OP, -SP, -DP, -S, -D>( - // If you get error here try adding return type to your mapStateToProps function - mapStateToProps: MapStateToProps, - mapDispatchToProps?: null | void, - mergeProps?: null | void, - options?: ?Options>, - ): Connector>; - - // In this case DP is an object of functions which has been bound to dispatch - // by the given mapDispatchToProps function. - declare export function connect<-P, -OP, -SP, -DP, S, D>( - mapStateToProps: null | void, - mapDispatchToProps: MapDispatchToPropsFn, - mergeProps?: null | void, - options?: ?Options>, - ): Connector>; - - // In this case DP is an object of action creators not yet bound to dispatch, - // this difference is not important in the vanila redux, - // but in case of usage with redux-thunk, the return type may differ. - declare export function connect<-P, -OP, -SP, -DP, S, D>( - mapStateToProps: null | void, - mapDispatchToProps: DP, - mergeProps?: null | void, - options?: ?Options>, - ): Connector>>>; - - declare export function connect<-P, -OP, -SP, -DP, S, D>( - // If you get error here try adding return type to your mapStateToProps function - mapStateToProps: MapStateToProps, - mapDispatchToProps: MapDispatchToPropsFn, - mergeProps?: null | void, - options?: ?Options, - ): Connector; - - declare export function connect<-P, -OP, -SP, -DP, S, D>( - // If you get error here try adding return type to your mapStateToProps function - mapStateToProps: MapStateToProps, - mapDispatchToProps: DP, - mergeProps?: null | void, - options?: ?Options>, - ): Connector>>>; - - // With `mergeProps` argument - - declare type MergeProps<+P, -OP, -SP, -DP> = ( - stateProps: SP, - dispatchProps: DP, - ownProps: OP, - ) => P; - - declare export function connect<-P, -OP, -SP: {||}, -DP: {||}, S, D>( - mapStateToProps: null | void, - mapDispatchToProps: null | void, - // If you get error here try adding return type to you mapStateToProps function - mergeProps: MergeProps, - options?: ?Options, - ): Connector; - - declare export function connect<-P, -OP, -SP, -DP: {||}, S, D>( - mapStateToProps: MapStateToProps, - mapDispatchToProps: null | void, - // If you get error here try adding return type to you mapStateToProps function - mergeProps: MergeProps, - options?: ?Options, - ): Connector; - - // In this case DP is an object of functions which has been bound to dispatch - // by the given mapDispatchToProps function. - declare export function connect<-P, -OP, -SP: {||}, -DP, S, D>( - mapStateToProps: null | void, - mapDispatchToProps: MapDispatchToPropsFn, - mergeProps: MergeProps, - options?: ?Options, - ): Connector; - - // In this case DP is an object of action creators not yet bound to dispatch, - // this difference is not important in the vanila redux, - // but in case of usage with redux-thunk, the return type may differ. - declare export function connect<-P, -OP, -SP: {||}, -DP, S, D>( - mapStateToProps: null | void, - mapDispatchToProps: DP, - mergeProps: MergeProps>>, - options?: ?Options, - ): Connector; - - // In this case DP is an object of functions which has been bound to dispatch - // by the given mapDispatchToProps function. - declare export function connect<-P, -OP, -SP, -DP, S, D>( - mapStateToProps: MapStateToProps, - mapDispatchToProps: MapDispatchToPropsFn, - mergeProps: MergeProps, - options?: ?Options, - ): Connector; - - // In this case DP is an object of action creators not yet bound to dispatch, - // this difference is not important in the vanila redux, - // but in case of usage with redux-thunk, the return type may differ. - declare export function connect<-P, -OP, -SP, -DP, S, D>( - mapStateToProps: MapStateToProps, - mapDispatchToProps: DP, - mergeProps: MergeProps>>, - options?: ?Options, - ): Connector; - - // ------------------------------------------------------------ - // Typings for Hooks - // ------------------------------------------------------------ - - declare export function useDispatch(): D; - - declare export function useSelector( - selector: (state: S) => SS, - equalityFn?: (a: SS, b: SS) => boolean, - ): SS; - - declare export function useStore(): Store; - - // ------------------------------------------------------------ - // Typings for Provider - // ------------------------------------------------------------ - - declare export class Provider extends React$Component<{ - store: Store, - children?: React$Node, - ... - }> {} - - declare export function createProvider( - storeKey?: string, - subKey?: string, - ): Class>; - - // ------------------------------------------------------------ - // Typings for connectAdvanced() - // ------------------------------------------------------------ - - declare type ConnectAdvancedOptions = { - getDisplayName?: (name: string) => string, - methodName?: string, - renderCountProp?: string, - shouldHandleStateChanges?: boolean, - storeKey?: string, - forwardRef?: boolean, - ... - }; - - declare type SelectorFactoryOptions = { - getDisplayName: (name: string) => string, - methodName: string, - renderCountProp: ?string, - shouldHandleStateChanges: boolean, - storeKey: string, - forwardRef: boolean, - displayName: string, - wrappedComponentName: string, - WrappedComponent: Com, - ... - }; - - declare type MapStateToPropsEx = ( - state: S, - props: SP, - ) => RSP; - - declare type SelectorFactory< - Com: React$ComponentType<*>, - Dispatch, - S: Object, - OP: Object, - EFO: Object, - CP: Object, - > = ( - dispatch: Dispatch, - factoryOptions: SelectorFactoryOptions & EFO, - ) => MapStateToPropsEx; - - declare export function connectAdvanced< - Com: React$ComponentType<*>, - D, - S: Object, - OP: Object, - CP: Object, - EFO: Object, - ST: { [_: $Keys]: any, ... }, - >( - selectorFactory: SelectorFactory, - connectAdvancedOptions: ?(ConnectAdvancedOptions & EFO), - ): (component: Com) => React$ComponentType & $Shape; - - declare export function batch(() => void): void - - declare export default { - Provider: typeof Provider, - createProvider: typeof createProvider, - connect: typeof connect, - connectAdvanced: typeof connectAdvanced, - useDispatch: typeof useDispatch, - useSelector: typeof useSelector, - useStore: typeof useStore, - batch: typeof batch, - ... - }; -} diff --git a/flow-typed/npm/react-router-dom_v5.x.x.js b/flow-typed/npm/react-router-dom_v5.x.x.js deleted file mode 100644 index 68e6c5a72..000000000 --- a/flow-typed/npm/react-router-dom_v5.x.x.js +++ /dev/null @@ -1,181 +0,0 @@ -// flow-typed signature: 33bc320ebb5343629e228a9caa367310 -// flow-typed version: c4f47bdda4/react-router-dom_v5.x.x/flow_>=v0.104.x - -declare module "react-router-dom" { - declare export var BrowserRouter: React$ComponentType<{| - basename?: string, - forceRefresh?: boolean, - getUserConfirmation?: GetUserConfirmation, - keyLength?: number, - children?: React$Node - |}> - - declare export var HashRouter: React$ComponentType<{| - basename?: string, - getUserConfirmation?: GetUserConfirmation, - hashType?: "slash" | "noslash" | "hashbang", - children?: React$Node - |}> - - declare export var Link: React$ComponentType<{ - +className?: string, - +to: string | LocationShape, - +replace?: boolean, - +children?: React$Node, - ... - }> - - declare export var NavLink: React$ComponentType<{ - +to: string | LocationShape, - +activeClassName?: string, - +className?: string, - +activeStyle?: { +[string]: mixed, ... }, - +style?: { +[string]: mixed, ... }, - +isActive?: (match: Match, location: Location) => boolean, - +children?: React$Node, - +exact?: boolean, - +strict?: boolean, - ... - }> - - // NOTE: Below are duplicated from react-router. If updating these, please - // update the react-router and react-router-native types as well. - declare export type Location = { - pathname: string, - search: string, - hash: string, - ... - }; - - declare export type LocationShape = { - pathname?: string, - search?: string, - hash?: string, - ... - }; - - declare export type HistoryAction = "PUSH" | "REPLACE" | "POP"; - - declare export type RouterHistory = { - length: number, - location: Location, - action: HistoryAction, - listen( - callback: (location: Location, action: HistoryAction) => void - ): () => void, - push(path: string | LocationShape, state?: any): void, - replace(path: string | LocationShape, state?: any): void, - go(n: number): void, - goBack(): void, - goForward(): void, - canGo?: (n: number) => boolean, - block( - callback: string | (location: Location, action: HistoryAction) => ?string - ): () => void, - ... - }; - - declare export type Match = { - params: { [key: string]: ?string, ... }, - isExact: boolean, - path: string, - url: string, - ... - }; - - declare export type ContextRouter = {| - history: RouterHistory, - location: Location, - match: Match, - staticContext?: StaticRouterContext - |}; - - declare type ContextRouterVoid = { - history: RouterHistory | void, - location: Location | void, - match: Match | void, - staticContext?: StaticRouterContext | void, - ... - }; - - declare export type GetUserConfirmation = ( - message: string, - callback: (confirmed: boolean) => void - ) => void; - - declare export type StaticRouterContext = { url?: string, ... }; - - declare export var StaticRouter: React$ComponentType<{| - basename?: string, - location?: string | Location, - context: StaticRouterContext, - children?: React$Node - |}> - - declare export var MemoryRouter: React$ComponentType<{| - initialEntries?: Array, - initialIndex?: number, - getUserConfirmation?: GetUserConfirmation, - keyLength?: number, - children?: React$Node - |}> - - declare export var Router: React$ComponentType<{| - history: RouterHistory, - children?: React$Node - |}> - - declare export var Prompt: React$ComponentType<{| - message: string | ((location: Location) => string | boolean), - when?: boolean - |}> - - declare export var Redirect: React$ComponentType<{| - to: string | LocationShape, - push?: boolean, - from?: string, - exact?: boolean, - strict?: boolean - |}> - - declare export var Route: React$ComponentType<{| - component?: React$ComponentType<*>, - render?: (router: ContextRouter) => React$Node, - children?: React$ComponentType | React$Node, - path?: string | Array, - exact?: boolean, - strict?: boolean, - location?: LocationShape, - sensitive?: boolean - |}> - - declare export var Switch: React$ComponentType<{| - children?: React$Node, - location?: Location - |}> - - declare export function withRouter>( - WrappedComponent: Component - ): React$ComponentType<$Diff, ContextRouterVoid>>; - - declare type MatchPathOptions = { - path?: string | string[], - exact?: boolean, - sensitive?: boolean, - strict?: boolean, - ... - }; - - declare export function matchPath( - pathname: string, - options?: MatchPathOptions | string | string[], - parent?: Match - ): null | Match; - - declare export function useHistory(): $PropertyType; - declare export function useLocation(): $PropertyType; - declare export function useParams(): $PropertyType<$PropertyType, 'params'>; - declare export function useRouteMatch(path?: MatchPathOptions | string | string[]): $PropertyType; - - declare export function generatePath(pattern?: string, params?: { +[string]: mixed, ... }): string; -} diff --git a/flow-typed/npm/react-table_vx.x.x.js b/flow-typed/npm/react-table_vx.x.x.js deleted file mode 100644 index a8bd99127..000000000 --- a/flow-typed/npm/react-table_vx.x.x.js +++ /dev/null @@ -1,324 +0,0 @@ -// flow-typed signature: 27fcae153c3d746c96b6f55f695b6f81 -// flow-typed version: <>/react-table_v^7.3.0/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'react-table' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'react-table' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'react-table/dist/react-table.development' { - declare module.exports: any; -} - -declare module 'react-table/dist/react-table.production.min' { - declare module.exports: any; -} - -declare module 'react-table/src/aggregations' { - declare module.exports: any; -} - -declare module 'react-table/src/filterTypes' { - declare module.exports: any; -} - -declare module 'react-table/src/gatsby-theme-docz/components/Logo' { - declare module.exports: any; -} - -declare module 'react-table/src/hooks/tests/useTable.test' { - declare module.exports: any; -} - -declare module 'react-table/src/hooks/useColumnVisibility' { - declare module.exports: any; -} - -declare module 'react-table/src/hooks/useTable' { - declare module.exports: any; -} - -declare module 'react-table/src' { - declare module.exports: any; -} - -declare module 'react-table/src/makeDefaultPluginHooks' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/_UNSTABLE_usePivotColumns' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/tests/useAbsoluteLayout.test' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/tests/useBlockLayout.test' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/tests/useColumnOrder.test' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/tests/useExpanded.test' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/tests/useFilters.test' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/tests/useFiltersAndRowSelect.test' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/tests/useFlexLayout.test' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/tests/useGroupBy.test' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/tests/usePagination.test' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/tests/useResizeColumns.test' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/tests/useRowSelect.test' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/tests/useRowState.test' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/tests/useSortBy.test' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/useAbsoluteLayout' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/useBlockLayout' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/useColumnOrder' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/useExpanded' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/useFilters' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/useFlexLayout' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/useGlobalFilter' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/useGroupBy' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/usePagination' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/useResizeColumns' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/useRowSelect' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/useRowState' { - declare module.exports: any; -} - -declare module 'react-table/src/plugin-hooks/useSortBy' { - declare module.exports: any; -} - -declare module 'react-table/src/publicUtils' { - declare module.exports: any; -} - -declare module 'react-table/src/sortTypes' { - declare module.exports: any; -} - -declare module 'react-table/src/utility-hooks/useTokenPagination' { - declare module.exports: any; -} - -declare module 'react-table/src/utils' { - declare module.exports: any; -} - -// Filename aliases -declare module 'react-table/dist/react-table.development.js' { - declare module.exports: $Exports<'react-table/dist/react-table.development'>; -} -declare module 'react-table/dist/react-table.production.min.js' { - declare module.exports: $Exports<'react-table/dist/react-table.production.min'>; -} -declare module 'react-table/index' { - declare module.exports: $Exports<'react-table'>; -} -declare module 'react-table/index.js' { - declare module.exports: $Exports<'react-table'>; -} -declare module 'react-table/src/aggregations.js' { - declare module.exports: $Exports<'react-table/src/aggregations'>; -} -declare module 'react-table/src/filterTypes.js' { - declare module.exports: $Exports<'react-table/src/filterTypes'>; -} -declare module 'react-table/src/gatsby-theme-docz/components/Logo/index' { - declare module.exports: $Exports<'react-table/src/gatsby-theme-docz/components/Logo'>; -} -declare module 'react-table/src/gatsby-theme-docz/components/Logo/index.js' { - declare module.exports: $Exports<'react-table/src/gatsby-theme-docz/components/Logo'>; -} -declare module 'react-table/src/hooks/tests/useTable.test.js' { - declare module.exports: $Exports<'react-table/src/hooks/tests/useTable.test'>; -} -declare module 'react-table/src/hooks/useColumnVisibility.js' { - declare module.exports: $Exports<'react-table/src/hooks/useColumnVisibility'>; -} -declare module 'react-table/src/hooks/useTable.js' { - declare module.exports: $Exports<'react-table/src/hooks/useTable'>; -} -declare module 'react-table/src/index' { - declare module.exports: $Exports<'react-table/src'>; -} -declare module 'react-table/src/index.js' { - declare module.exports: $Exports<'react-table/src'>; -} -declare module 'react-table/src/makeDefaultPluginHooks.js' { - declare module.exports: $Exports<'react-table/src/makeDefaultPluginHooks'>; -} -declare module 'react-table/src/plugin-hooks/_UNSTABLE_usePivotColumns.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/_UNSTABLE_usePivotColumns'>; -} -declare module 'react-table/src/plugin-hooks/tests/useAbsoluteLayout.test.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/tests/useAbsoluteLayout.test'>; -} -declare module 'react-table/src/plugin-hooks/tests/useBlockLayout.test.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/tests/useBlockLayout.test'>; -} -declare module 'react-table/src/plugin-hooks/tests/useColumnOrder.test.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/tests/useColumnOrder.test'>; -} -declare module 'react-table/src/plugin-hooks/tests/useExpanded.test.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/tests/useExpanded.test'>; -} -declare module 'react-table/src/plugin-hooks/tests/useFilters.test.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/tests/useFilters.test'>; -} -declare module 'react-table/src/plugin-hooks/tests/useFiltersAndRowSelect.test.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/tests/useFiltersAndRowSelect.test'>; -} -declare module 'react-table/src/plugin-hooks/tests/useFlexLayout.test.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/tests/useFlexLayout.test'>; -} -declare module 'react-table/src/plugin-hooks/tests/useGroupBy.test.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/tests/useGroupBy.test'>; -} -declare module 'react-table/src/plugin-hooks/tests/usePagination.test.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/tests/usePagination.test'>; -} -declare module 'react-table/src/plugin-hooks/tests/useResizeColumns.test.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/tests/useResizeColumns.test'>; -} -declare module 'react-table/src/plugin-hooks/tests/useRowSelect.test.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/tests/useRowSelect.test'>; -} -declare module 'react-table/src/plugin-hooks/tests/useRowState.test.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/tests/useRowState.test'>; -} -declare module 'react-table/src/plugin-hooks/tests/useSortBy.test.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/tests/useSortBy.test'>; -} -declare module 'react-table/src/plugin-hooks/useAbsoluteLayout.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/useAbsoluteLayout'>; -} -declare module 'react-table/src/plugin-hooks/useBlockLayout.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/useBlockLayout'>; -} -declare module 'react-table/src/plugin-hooks/useColumnOrder.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/useColumnOrder'>; -} -declare module 'react-table/src/plugin-hooks/useExpanded.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/useExpanded'>; -} -declare module 'react-table/src/plugin-hooks/useFilters.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/useFilters'>; -} -declare module 'react-table/src/plugin-hooks/useFlexLayout.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/useFlexLayout'>; -} -declare module 'react-table/src/plugin-hooks/useGlobalFilter.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/useGlobalFilter'>; -} -declare module 'react-table/src/plugin-hooks/useGroupBy.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/useGroupBy'>; -} -declare module 'react-table/src/plugin-hooks/usePagination.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/usePagination'>; -} -declare module 'react-table/src/plugin-hooks/useResizeColumns.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/useResizeColumns'>; -} -declare module 'react-table/src/plugin-hooks/useRowSelect.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/useRowSelect'>; -} -declare module 'react-table/src/plugin-hooks/useRowState.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/useRowState'>; -} -declare module 'react-table/src/plugin-hooks/useSortBy.js' { - declare module.exports: $Exports<'react-table/src/plugin-hooks/useSortBy'>; -} -declare module 'react-table/src/publicUtils.js' { - declare module.exports: $Exports<'react-table/src/publicUtils'>; -} -declare module 'react-table/src/sortTypes.js' { - declare module.exports: $Exports<'react-table/src/sortTypes'>; -} -declare module 'react-table/src/utility-hooks/useTokenPagination.js' { - declare module.exports: $Exports<'react-table/src/utility-hooks/useTokenPagination'>; -} -declare module 'react-table/src/utils.js' { - declare module.exports: $Exports<'react-table/src/utils'>; -} diff --git a/flow-typed/npm/redux-logger_vx.x.x.js b/flow-typed/npm/redux-logger_vx.x.x.js deleted file mode 100644 index 6bb36a99c..000000000 --- a/flow-typed/npm/redux-logger_vx.x.x.js +++ /dev/null @@ -1,70 +0,0 @@ -// flow-typed signature: 29e3d9afc032338168c8015e70c658c2 -// flow-typed version: <>/redux-logger_v^3.0.6/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'redux-logger' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'redux-logger' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'redux-logger/dist/redux-logger' { - declare module.exports: any; -} - -declare module 'redux-logger/src/core' { - declare module.exports: any; -} - -declare module 'redux-logger/src/defaults' { - declare module.exports: any; -} - -declare module 'redux-logger/src/diff' { - declare module.exports: any; -} - -declare module 'redux-logger/src/helpers' { - declare module.exports: any; -} - -declare module 'redux-logger/src' { - declare module.exports: any; -} - -// Filename aliases -declare module 'redux-logger/dist/redux-logger.js' { - declare module.exports: $Exports<'redux-logger/dist/redux-logger'>; -} -declare module 'redux-logger/src/core.js' { - declare module.exports: $Exports<'redux-logger/src/core'>; -} -declare module 'redux-logger/src/defaults.js' { - declare module.exports: $Exports<'redux-logger/src/defaults'>; -} -declare module 'redux-logger/src/diff.js' { - declare module.exports: $Exports<'redux-logger/src/diff'>; -} -declare module 'redux-logger/src/helpers.js' { - declare module.exports: $Exports<'redux-logger/src/helpers'>; -} -declare module 'redux-logger/src/index' { - declare module.exports: $Exports<'redux-logger/src'>; -} -declare module 'redux-logger/src/index.js' { - declare module.exports: $Exports<'redux-logger/src'>; -} diff --git a/flow-typed/npm/redux-mock-store_v1.2.x.js b/flow-typed/npm/redux-mock-store_v1.2.x.js deleted file mode 100644 index abf840520..000000000 --- a/flow-typed/npm/redux-mock-store_v1.2.x.js +++ /dev/null @@ -1,34 +0,0 @@ -// flow-typed signature: 7f5567009b714090b344ae54bf6f57a2 -// flow-typed version: 9130b84fa4/redux-mock-store_v1.2.x/flow_>=v0.104.x - -declare module "redux-mock-store" { - /* - S = State - A = Action - */ - - declare type mockStore = { (state: S): mockStoreWithoutMiddleware, ... }; - declare type DispatchAPI = (action: A) => A; - declare type Dispatch> = DispatchAPI; - declare type mockStoreWithoutMiddleware = { - getState(): S, - getActions(): Array, - dispatch: Dispatch, - clearActions(): void, - subscribe(callback: () => void): () => void, - replaceReducer(nextReducer: Function): void, - ... - }; - - declare type Middleware = any => any => any; - - declare module.exports: (middlewares: ?Array) => mockStore; -} - -// Filename aliases -declare module "redux-mock-store/src/index" { - declare module.exports: $Exports<"redux-mock-store">; -} -declare module "redux-mock-store/src/index.js" { - declare module.exports: $Exports<"redux-mock-store">; -} diff --git a/flow-typed/npm/redux-oidc_vx.x.x.js b/flow-typed/npm/redux-oidc_vx.x.x.js deleted file mode 100644 index a926a3d77..000000000 --- a/flow-typed/npm/redux-oidc_vx.x.x.js +++ /dev/null @@ -1,125 +0,0 @@ -// flow-typed signature: 89936fa445470451dfe9103cffce1901 -// flow-typed version: <>/redux-oidc_v^4.0.0-beta1/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'redux-oidc' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'redux-oidc' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'redux-oidc/dist/redux-oidc' { - declare module.exports: any; -} - -declare module 'redux-oidc/src/actions' { - declare module.exports: any; -} - -declare module 'redux-oidc/src/CallbackComponent' { - declare module.exports: any; -} - -declare module 'redux-oidc/src/constants' { - declare module.exports: any; -} - -declare module 'redux-oidc/src/helpers/createUserManager' { - declare module.exports: any; -} - -declare module 'redux-oidc/src/helpers/loadUser' { - declare module.exports: any; -} - -declare module 'redux-oidc/src/helpers/processSilentRenew' { - declare module.exports: any; -} - -declare module 'redux-oidc/src' { - declare module.exports: any; -} - -declare module 'redux-oidc/src/oidcMiddleware' { - declare module.exports: any; -} - -declare module 'redux-oidc/src/OidcProvider' { - declare module.exports: any; -} - -declare module 'redux-oidc/src/reducer/reducer-immutable' { - declare module.exports: any; -} - -declare module 'redux-oidc/src/reducer/reducer' { - declare module.exports: any; -} - -declare module 'redux-oidc/src/SignoutCallbackComponent' { - declare module.exports: any; -} - -// Filename aliases -declare module 'redux-oidc/dist/redux-oidc.js' { - declare module.exports: $Exports<'redux-oidc/dist/redux-oidc'>; -} -declare module 'redux-oidc/src/actions/index' { - declare module.exports: $Exports<'redux-oidc/src/actions'>; -} -declare module 'redux-oidc/src/actions/index.js' { - declare module.exports: $Exports<'redux-oidc/src/actions'>; -} -declare module 'redux-oidc/src/CallbackComponent.js' { - declare module.exports: $Exports<'redux-oidc/src/CallbackComponent'>; -} -declare module 'redux-oidc/src/constants/index' { - declare module.exports: $Exports<'redux-oidc/src/constants'>; -} -declare module 'redux-oidc/src/constants/index.js' { - declare module.exports: $Exports<'redux-oidc/src/constants'>; -} -declare module 'redux-oidc/src/helpers/createUserManager.js' { - declare module.exports: $Exports<'redux-oidc/src/helpers/createUserManager'>; -} -declare module 'redux-oidc/src/helpers/loadUser.js' { - declare module.exports: $Exports<'redux-oidc/src/helpers/loadUser'>; -} -declare module 'redux-oidc/src/helpers/processSilentRenew.js' { - declare module.exports: $Exports<'redux-oidc/src/helpers/processSilentRenew'>; -} -declare module 'redux-oidc/src/index' { - declare module.exports: $Exports<'redux-oidc/src'>; -} -declare module 'redux-oidc/src/index.js' { - declare module.exports: $Exports<'redux-oidc/src'>; -} -declare module 'redux-oidc/src/oidcMiddleware.js' { - declare module.exports: $Exports<'redux-oidc/src/oidcMiddleware'>; -} -declare module 'redux-oidc/src/OidcProvider.js' { - declare module.exports: $Exports<'redux-oidc/src/OidcProvider'>; -} -declare module 'redux-oidc/src/reducer/reducer-immutable.js' { - declare module.exports: $Exports<'redux-oidc/src/reducer/reducer-immutable'>; -} -declare module 'redux-oidc/src/reducer/reducer.js' { - declare module.exports: $Exports<'redux-oidc/src/reducer/reducer'>; -} -declare module 'redux-oidc/src/SignoutCallbackComponent.js' { - declare module.exports: $Exports<'redux-oidc/src/SignoutCallbackComponent'>; -} diff --git a/flow-typed/npm/redux-thunk_vx.x.x.js b/flow-typed/npm/redux-thunk_vx.x.x.js deleted file mode 100644 index 692a3b020..000000000 --- a/flow-typed/npm/redux-thunk_vx.x.x.js +++ /dev/null @@ -1,69 +0,0 @@ -// flow-typed signature: d44b94a0d5df162926e3d7b4240ad770 -// flow-typed version: <>/redux-thunk_v^2.3.0/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'redux-thunk' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'redux-thunk' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'redux-thunk/dist/redux-thunk' { - declare module.exports: any; -} - -declare module 'redux-thunk/dist/redux-thunk.min' { - declare module.exports: any; -} - -declare module 'redux-thunk/es' { - declare module.exports: any; -} - -declare module 'redux-thunk/lib' { - declare module.exports: any; -} - -declare module 'redux-thunk/src' { - declare module.exports: any; -} - -// Filename aliases -declare module 'redux-thunk/dist/redux-thunk.js' { - declare module.exports: $Exports<'redux-thunk/dist/redux-thunk'>; -} -declare module 'redux-thunk/dist/redux-thunk.min.js' { - declare module.exports: $Exports<'redux-thunk/dist/redux-thunk.min'>; -} -declare module 'redux-thunk/es/index' { - declare module.exports: $Exports<'redux-thunk/es'>; -} -declare module 'redux-thunk/es/index.js' { - declare module.exports: $Exports<'redux-thunk/es'>; -} -declare module 'redux-thunk/lib/index' { - declare module.exports: $Exports<'redux-thunk/lib'>; -} -declare module 'redux-thunk/lib/index.js' { - declare module.exports: $Exports<'redux-thunk/lib'>; -} -declare module 'redux-thunk/src/index' { - declare module.exports: $Exports<'redux-thunk/src'>; -} -declare module 'redux-thunk/src/index.js' { - declare module.exports: $Exports<'redux-thunk/src'>; -} diff --git a/flow-typed/npm/redux_v4.x.x.js b/flow-typed/npm/redux_v4.x.x.js deleted file mode 100644 index 4ba5f34b5..000000000 --- a/flow-typed/npm/redux_v4.x.x.js +++ /dev/null @@ -1,99 +0,0 @@ -// flow-typed signature: f62df6dbce399d55b0f2954c5ac1bd4e -// flow-typed version: c6154227d1/redux_v4.x.x/flow_>=v0.104.x - -declare module 'redux' { - /* - - S = State - A = Action - D = Dispatch - - */ - - declare export type Action = { type: T, ... } - - declare export type DispatchAPI = (action: A) => A; - - declare export type Dispatch = DispatchAPI; - - declare export type MiddlewareAPI> = { - dispatch: D, - getState(): S, - ... - }; - - declare export type Store> = { - // rewrite MiddlewareAPI members in order to get nicer error messages (intersections produce long messages) - dispatch: D, - getState(): S, - subscribe(listener: () => void): () => void, - replaceReducer(nextReducer: Reducer): void, - ... - }; - - declare export type Reducer = (state: S | void, action: A) => S; - - declare export type CombinedReducer = ( - state: ($Shape & {...}) | void, - action: A - ) => S; - - declare export type Middleware> = ( - api: MiddlewareAPI - ) => (next: D) => D; - - declare export type StoreCreator> = { - (reducer: Reducer, enhancer?: StoreEnhancer): Store, - ( - reducer: Reducer, - preloadedState: S, - enhancer?: StoreEnhancer - ): Store, - ... - }; - - declare export type StoreEnhancer> = ( - next: StoreCreator - ) => StoreCreator; - - declare export function createStore( - reducer: Reducer, - enhancer?: StoreEnhancer - ): Store; - declare export function createStore( - reducer: Reducer, - preloadedState?: S, - enhancer?: StoreEnhancer - ): Store; - - declare export function applyMiddleware( - ...middlewares: Array> - ): StoreEnhancer; - - declare export type ActionCreator = (...args: Array) => A; - declare export type ActionCreators = { [key: K]: ActionCreator, ... }; - - declare export function bindActionCreators< - A, - C: ActionCreator, - D: DispatchAPI - >( - actionCreator: C, - dispatch: D - ): C; - declare export function bindActionCreators< - A, - K, - C: ActionCreators, - D: DispatchAPI - >( - actionCreators: C, - dispatch: D - ): C; - - declare export function combineReducers( - reducers: O - ): CombinedReducer<$ObjMap(r: Reducer) => S>, A>; - - declare export var compose: $Compose; -} diff --git a/flow-typed/npm/style-loader_vx.x.x.js b/flow-typed/npm/style-loader_vx.x.x.js deleted file mode 100644 index dc863099a..000000000 --- a/flow-typed/npm/style-loader_vx.x.x.js +++ /dev/null @@ -1,63 +0,0 @@ -// flow-typed signature: d7755396e304f739a9b9f4ba2354c810 -// flow-typed version: <>/style-loader_v^1.1.3/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'style-loader' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'style-loader' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'style-loader/dist/cjs' { - declare module.exports: any; -} - -declare module 'style-loader/dist' { - declare module.exports: any; -} - -declare module 'style-loader/dist/runtime/injectStylesIntoLinkTag' { - declare module.exports: any; -} - -declare module 'style-loader/dist/runtime/injectStylesIntoStyleTag' { - declare module.exports: any; -} - -declare module 'style-loader/dist/runtime/isEqualLocals' { - declare module.exports: any; -} - -// Filename aliases -declare module 'style-loader/dist/cjs.js' { - declare module.exports: $Exports<'style-loader/dist/cjs'>; -} -declare module 'style-loader/dist/index' { - declare module.exports: $Exports<'style-loader/dist'>; -} -declare module 'style-loader/dist/index.js' { - declare module.exports: $Exports<'style-loader/dist'>; -} -declare module 'style-loader/dist/runtime/injectStylesIntoLinkTag.js' { - declare module.exports: $Exports<'style-loader/dist/runtime/injectStylesIntoLinkTag'>; -} -declare module 'style-loader/dist/runtime/injectStylesIntoStyleTag.js' { - declare module.exports: $Exports<'style-loader/dist/runtime/injectStylesIntoStyleTag'>; -} -declare module 'style-loader/dist/runtime/isEqualLocals.js' { - declare module.exports: $Exports<'style-loader/dist/runtime/isEqualLocals'>; -} diff --git a/flow-typed/npm/styled-components_v4.x.x.js b/flow-typed/npm/styled-components_v4.x.x.js deleted file mode 100644 index d4bdb5c4a..000000000 --- a/flow-typed/npm/styled-components_v4.x.x.js +++ /dev/null @@ -1,440 +0,0 @@ -// flow-typed signature: 1bf5c8e22eb5cea0c62c6b51e45fb59b -// flow-typed version: bc582bb44d/styled-components_v4.x.x/flow_>=v0.104.x - -// @flow - -declare module 'styled-components' { - declare class InterpolatableComponent

extends React$Component

{ - static +styledComponentId: string; - } - - declare export type Interpolation

= - | ((executionContext: P) => - | ((executionContext: P) => InterpolationBase) - | InterpolationBase - ) - | Class> - | InterpolationBase - - declare export type InterpolationBase = - | CSSRules - | KeyFrames - | string - | number - | false // falsy values are OK, true is the only one not allowed, because it renders as "true" - | null - | void - | {[ruleOrSelector: string]: string | number, ...} // CSS-in-JS object returned by polished are also supported, partially - - declare export type TaggedTemplateLiteral = (strings: string[], ...interpolations: Interpolation[]) => R - - // Should this be `mixed` perhaps? - declare export type CSSRules = Interpolation[] // eslint-disable-line flowtype/no-weak-types - - declare export type CSSConstructor = TaggedTemplateLiteral // eslint-disable-line flowtype/no-weak-types - declare export type KeyFramesConstructor = TaggedTemplateLiteral // eslint-disable-line flowtype/no-weak-types - declare export type CreateGlobalStyleConstructor = TaggedTemplateLiteral> // eslint-disable-line flowtype/no-weak-types - - declare interface Tag { - styleTag: HTMLStyleElement | null; - getIds(): string[]; - hasNameForId(id: string, name: string): boolean; - insertMarker(id: string): T; - insertRules(id: string, cssRules: string[], name: ?string): void; - removeRules(id: string): void; - css(): string; - toHTML(additionalAttrs: ?string): string; - toElement(): React$Element<*>; - clone(): Tag; - sealed: boolean; - } - - // The `any`/weak types in here all come from `styled-components` directly, since those definitions were just copied over - declare export class StyleSheet { - static get master() : StyleSheet; - static get instance() : StyleSheet; - static reset(forceServer? : boolean) : void; - - id : number; - forceServer : boolean; - target : ?HTMLElement; - tagMap : { [string]: Tag, ... }; // eslint-disable-line flowtype/no-weak-types - deferred: { [string]: string[] | void, ... }; - rehydratedNames: { [string]: boolean, ... }; - ignoreRehydratedNames: { [string]: boolean, ... }; - tags: Tag[]; // eslint-disable-line flowtype/no-weak-types - importRuleTag: Tag; // eslint-disable-line flowtype/no-weak-types - capacity: number; - clones: StyleSheet[]; - - constructor(?HTMLElement) : this; - rehydrate() : this; - clone() : StyleSheet; - sealAllTags() : void; - makeTag(tag : ?Tag) : Tag; // eslint-disable-line flowtype/no-weak-types - getImportRuleTag() : Tag; // eslint-disable-line flowtype/no-weak-types - getTagForId(id : string): Tag; // eslint-disable-line flowtype/no-weak-types - hasId(id: string) : boolean; - hasNameForId(id: string, name: string) : boolean; - deferredInject(id : string, cssRules : string[]) : void; - inject(id: string, cssRules : string[], name? : string) : void; - remove(id : string) : void; - toHtml() : string; - toReactElements() : React$ElementType[]; - } - - declare export function isStyledComponent(target: any): boolean; - - declare type SCMProps = { - children?: React$Element, - sheet?: StyleSheet, - target?: HTMLElement, - ... - } - - declare export var StyleSheetContext: React$Context; - declare export var StyleSheetConsumer : React$ComponentType<{| - children: (value: StyleSheet) => ?React$Node - |}> - declare var StyleSheetProvider: React$ComponentType<{| - children?: React$Node, - value: StyleSheet, - |}> - - declare export class StyleSheetManager extends React$Component { - getContext(sheet: ?StyleSheet, target: ?HTMLElement): StyleSheet; - render(): React$Element - } - - declare export class ServerStyleSheet { - instance: StyleSheet; - masterSheet: StyleSheet; - sealed: boolean; - - seal(): void; - collectStyles(children: any): React$Element; - getStyleTags(): string; - toReactElements(): React$ElementType[]; - // This seems to be use a port of node streams in the Browsers. Not gonna type this for now - // eslint-disable-next-line flowtype/no-weak-types - interleaveWithNodeStream(stream: any): any; - } - - declare export class KeyFrames { - id : string; - name : string; - rules : string[]; - - constructor(name : string, rules : string[]) : this; - inject(StyleSheet) : void; - toString() : string; - getName() : string; - } - - // I think any is appropriate here? - // eslint-disable-next-line flowtype/no-weak-types - declare export var css : CSSConstructor; - declare export var keyframes : KeyFramesConstructor; - declare export var createGlobalStyle : CreateGlobalStyleConstructor - declare export var ThemeConsumer : React$ComponentType<{| - children: (value: mixed) => ?React$Node - |}> - declare export var ThemeProvider: React$ComponentType<{| - children?: ?React$Node, - theme: mixed | (mixed) => mixed, - |}> - - /** - Any because the intended use-case is for users to do: - - import {ThemeContext} from 'styled-components'; - ... - const theme = React.useContext(ThemeContext); - - If they want DRY-er code, they could declare their own version of this via something like - - import { ThemeContext as SCThemeContext } from 'styled-components'; - export const ThemeContext: React$Context = SCThemeContext; - - and then - - import {ThemeContext} from './theme'; - */ - // eslint-disable-next-line flowtype/no-weak-types - declare export var ThemeContext: React$Context; - - declare export type ThemeProps = {| - theme: T - |} - - declare type CommonSCProps = {| - children?: React$Node, - className?: ?string, - style?: {[string]: string | number, ...}, - |} - - declare export type PropsWithTheme = {| - ...ThemeProps, - ...CommonSCProps, // Not sure how useful this is here, but it's technically correct to have it - ...$Exact - |} - - declare export function withTheme(Component: React$AbstractComponent): React$AbstractComponent<$Diff>, Instance> - - declare export type StyledComponent, ...CommonSCProps, ...}> = React$AbstractComponent & Class> - - declare export type StyledFactory = {| - [[call]]: TaggedTemplateLiteral, StyledComponent>; - +attrs: (((StyleProps) => A) | A) => TaggedTemplateLiteral< - PropsWithTheme<{|...$Exact, ...$Exact|}, Theme>, - StyledComponent, ...$Exact|}, $Exact>, Theme, Instance> - >; - |} - - declare export type StyledShorthandFactory = {| - [[call]]: (string[], ...Interpolation>[]) => StyledComponent; - [[call]]: ((props: PropsWithTheme) => Interpolation) => StyledComponent; - +attrs: (((StyleProps) => A) | A) => TaggedTemplateLiteral< - PropsWithTheme<{|...$Exact, ...$Exact|}, Theme>, - StyledComponent, ...$Exact|}, $Exact>, Theme, V> - >; - |} - - - declare type BuiltinElementInstances = { - a: React$ElementRef<'a'>, - abbr: React$ElementRef<'abbr'>, - address: React$ElementRef<'address'>, - area: React$ElementRef<'area'>, - article: React$ElementRef<'article'>, - aside: React$ElementRef<'aside'>, - audio: React$ElementRef<'audio'>, - b: React$ElementRef<'b'>, - base: React$ElementRef<'base'>, - bdi: React$ElementRef<'bdi'>, - bdo: React$ElementRef<'bdo'>, - big: React$ElementRef<'big'>, - blockquote: React$ElementRef<'blockquote'>, - body: React$ElementRef<'body'>, - br: React$ElementRef<'br'>, - button: React$ElementRef<'button'>, - canvas: React$ElementRef<'canvas'>, - caption: React$ElementRef<'caption'>, - cite: React$ElementRef<'cite'>, - code: React$ElementRef<'code'>, - col: React$ElementRef<'col'>, - colgroup: React$ElementRef<'colgroup'>, - data: React$ElementRef<'data'>, - datalist: React$ElementRef<'datalist'>, - dd: React$ElementRef<'dd'>, - del: React$ElementRef<'del'>, - details: React$ElementRef<'details'>, - dfn: React$ElementRef<'dfn'>, - dialog: React$ElementRef<'dialog'>, - div: React$ElementRef<'div'>, - dl: React$ElementRef<'dl'>, - dt: React$ElementRef<'dt'>, - em: React$ElementRef<'em'>, - embed: React$ElementRef<'embed'>, - fieldset: React$ElementRef<'fieldset'>, - figcaption: React$ElementRef<'figcaption'>, - figure: React$ElementRef<'figure'>, - footer: React$ElementRef<'footer'>, - form: React$ElementRef<'form'>, - h1: React$ElementRef<'h1'>, - h2: React$ElementRef<'h2'>, - h3: React$ElementRef<'h3'>, - h4: React$ElementRef<'h4'>, - h5: React$ElementRef<'h5'>, - h6: React$ElementRef<'h6'>, - head: React$ElementRef<'head'>, - header: React$ElementRef<'header'>, - hgroup: React$ElementRef<'hgroup'>, - hr: React$ElementRef<'hr'>, - html: React$ElementRef<'html'>, - i: React$ElementRef<'i'>, - iframe: React$ElementRef<'iframe'>, - img: React$ElementRef<'img'>, - input: React$ElementRef<'input'>, - ins: React$ElementRef<'ins'>, - kbd: React$ElementRef<'kbd'>, - label: React$ElementRef<'label'>, - legend: React$ElementRef<'legend'>, - li: React$ElementRef<'li'>, - link: React$ElementRef<'link'>, - main: React$ElementRef<'main'>, - map: React$ElementRef<'map'>, - mark: React$ElementRef<'mark'>, - menu: React$ElementRef<'menu'>, - meta: React$ElementRef<'meta'>, - meter: React$ElementRef<'meter'>, - nav: React$ElementRef<'nav'>, - noscript: React$ElementRef<'noscript'>, - object: React$ElementRef<'object'>, - ol: React$ElementRef<'ol'>, - optgroup: React$ElementRef<'optgroup'>, - option: React$ElementRef<'option'>, - output: React$ElementRef<'output'>, - p: React$ElementRef<'p'>, - param: React$ElementRef<'param'>, - picture: React$ElementRef<'picture'>, - pre: React$ElementRef<'pre'>, - progress: React$ElementRef<'progress'>, - q: React$ElementRef<'q'>, - rp: React$ElementRef<'rp'>, - rt: React$ElementRef<'rt'>, - ruby: React$ElementRef<'ruby'>, - s: React$ElementRef<'s'>, - samp: React$ElementRef<'samp'>, - script: React$ElementRef<'script'>, - section: React$ElementRef<'section'>, - select: React$ElementRef<'select'>, - small: React$ElementRef<'small'>, - source: React$ElementRef<'source'>, - span: React$ElementRef<'span'>, - strong: React$ElementRef<'strong'>, - style: React$ElementRef<'style'>, - sub: React$ElementRef<'sub'>, - summary: React$ElementRef<'summary'>, - sup: React$ElementRef<'sup'>, - table: React$ElementRef<'table'>, - tbody: React$ElementRef<'tbody'>, - td: React$ElementRef<'td'>, - textarea: React$ElementRef<'textarea'>, - tfoot: React$ElementRef<'tfoot'>, - th: React$ElementRef<'th'>, - thead: React$ElementRef<'thead'>, - time: React$ElementRef<'time'>, - title: React$ElementRef<'title'>, - tr: React$ElementRef<'tr'>, - track: React$ElementRef<'track'>, - u: React$ElementRef<'u'>, - ul: React$ElementRef<'ul'>, - var: React$ElementRef<'var'>, - video: React$ElementRef<'video'>, - wbr: React$ElementRef<'wbr'>, - // SVG - circle: React$ElementRef<'circle'>, - clipPath: React$ElementRef<'clipPath'>, - defs: React$ElementRef<'defs'>, - ellipse: React$ElementRef<'ellipse'>, - g: React$ElementRef<'g'>, - image: React$ElementRef<'image'>, - line: React$ElementRef<'line'>, - linearGradient: React$ElementRef<'linearGradient'>, - mask: React$ElementRef<'mask'>, - path: React$ElementRef<'path'>, - pattern: React$ElementRef<'pattern'>, - polygon: React$ElementRef<'polygon'>, - polyline: React$ElementRef<'polyline'>, - radialGradient: React$ElementRef<'radialGradient'>, - rect: React$ElementRef<'rect'>, - stop: React$ElementRef<'stop'>, - svg: React$ElementRef<'svg'>, - text: React$ElementRef<'text'>, - tspan: React$ElementRef<'tspan'>, - // Deprecated, should be HTMLUnknownElement, but Flow doesn't support it - keygen: React$ElementRef<'keygen'>, - menuitem: React$ElementRef<'menuitem'>, - ... - } - - declare type BuiltinElementType = $ElementType - - declare type ConvenientShorthands = $ObjMap< - BuiltinElementInstances, - (V) => StyledShorthandFactory - > - - declare interface Styled { - >(ElementName): StyledFactory>; - , Theme, OwnProps = React$ElementConfig>(Comp): StyledFactory<{|...$Exact|}, Theme, Comp>; - } - - declare export default Styled & ConvenientShorthands -} - - -declare module 'styled-components/native' { - import type { - CSSRules, - CSSConstructor, - KeyFramesConstructor, - CreateGlobalStyleConstructor, - StyledComponent, - Interpolation, - - // "private" types - TaggedTemplateLiteral, - StyledFactory, - StyledShorthandFactory, - ThemeProps, - PropsWithTheme, - } from 'styled-components'; - - declare type BuiltinElementInstances = { - ActivityIndicator: React$ComponentType<{...}>, - ActivityIndicatorIOS: React$ComponentType<{...}>, - ART: React$ComponentType<{...}>, - Button: React$ComponentType<{...}>, - DatePickerIOS: React$ComponentType<{...}>, - DrawerLayoutAndroid: React$ComponentType<{...}>, - Image: React$ComponentType<{...}>, - ImageBackground: React$ComponentType<{...}>, - ImageEditor: React$ComponentType<{...}>, - ImageStore: React$ComponentType<{...}>, - KeyboardAvoidingView: React$ComponentType<{...}>, - ListView: React$ComponentType<{...}>, - MapView: React$ComponentType<{...}>, - Modal: React$ComponentType<{...}>, - NavigatorIOS: React$ComponentType<{...}>, - Picker: React$ComponentType<{...}>, - PickerIOS: React$ComponentType<{...}>, - ProgressBarAndroid: React$ComponentType<{...}>, - ProgressViewIOS: React$ComponentType<{...}>, - ScrollView: React$ComponentType<{...}>, - SegmentedControlIOS: React$ComponentType<{...}>, - Slider: React$ComponentType<{...}>, - SliderIOS: React$ComponentType<{...}>, - SnapshotViewIOS: React$ComponentType<{...}>, - Switch: React$ComponentType<{...}>, - RecyclerViewBackedScrollView: React$ComponentType<{...}>, - RefreshControl: React$ComponentType<{...}>, - SafeAreaView: React$ComponentType<{...}>, - StatusBar: React$ComponentType<{...}>, - SwipeableListView: React$ComponentType<{...}>, - SwitchAndroid: React$ComponentType<{...}>, - SwitchIOS: React$ComponentType<{...}>, - TabBarIOS: React$ComponentType<{...}>, - Text: React$ComponentType<{...}>, - TextInput: React$ComponentType<{...}>, - ToastAndroid: React$ComponentType<{...}>, - ToolbarAndroid: React$ComponentType<{...}>, - Touchable: React$ComponentType<{...}>, - TouchableHighlight: React$ComponentType<{...}>, - TouchableNativeFeedback: React$ComponentType<{...}>, - TouchableOpacity: React$ComponentType<{...}>, - TouchableWithoutFeedback: React$ComponentType<{...}>, - View: React$ComponentType<{...}>, - ViewPagerAndroid: React$ComponentType<{...}>, - WebView: React$ComponentType<{...}>, - FlatList: React$ComponentType<{...}>, - SectionList: React$ComponentType<{...}>, - VirtualizedList: React$ComponentType<{...}>, - ... - } - - declare type BuiltinElementType = $ElementType - - declare type ConvenientShorthands = $ObjMap< - BuiltinElementInstances, - (V) => StyledShorthandFactory - > - - declare interface Styled { - >(ElementName): StyledFactory>; - , Theme, OwnProps = React$ElementConfig>(Comp): StyledFactory<{|...$Exact|}, Theme, Comp>; - } - - declare export default Styled & ConvenientShorthands -} diff --git a/flow-typed/npm/styled-components_vx.x.x.js b/flow-typed/npm/styled-components_vx.x.x.js deleted file mode 100644 index 8e978e317..000000000 --- a/flow-typed/npm/styled-components_vx.x.x.js +++ /dev/null @@ -1,1383 +0,0 @@ -// flow-typed signature: faca7089498bd6f851bb66eae5505cb3 -// flow-typed version: <>/styled-components_v^3.5.0-0/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'styled-components' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'styled-components' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'styled-components/dist/styled-components-no-parser.browser.cjs' { - declare module.exports: any; -} - -declare module 'styled-components/dist/styled-components-no-parser.browser.esm' { - declare module.exports: any; -} - -declare module 'styled-components/dist/styled-components-no-parser.cjs' { - declare module.exports: any; -} - -declare module 'styled-components/dist/styled-components-no-parser.esm' { - declare module.exports: any; -} - -declare module 'styled-components/dist/styled-components-primitives.cjs' { - declare module.exports: any; -} - -declare module 'styled-components/dist/styled-components-primitives.esm' { - declare module.exports: any; -} - -declare module 'styled-components/dist/styled-components.browser.cjs' { - declare module.exports: any; -} - -declare module 'styled-components/dist/styled-components.browser.cjs.min' { - declare module.exports: any; -} - -declare module 'styled-components/dist/styled-components.browser.esm' { - declare module.exports: any; -} - -declare module 'styled-components/dist/styled-components.browser.esm.min' { - declare module.exports: any; -} - -declare module 'styled-components/dist/styled-components.cjs' { - declare module.exports: any; -} - -declare module 'styled-components/dist/styled-components.cjs.min' { - declare module.exports: any; -} - -declare module 'styled-components/dist/styled-components.esm' { - declare module.exports: any; -} - -declare module 'styled-components/dist/styled-components.esm.min' { - declare module.exports: any; -} - -declare module 'styled-components/dist/styled-components' { - declare module.exports: any; -} - -declare module 'styled-components/dist/styled-components.min' { - declare module.exports: any; -} - -declare module 'styled-components/dist/styled-components.native.cjs' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/danger-plugin-jest_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/enzyme_v3.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/fbjs_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/babel-cli_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/babel-core_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/babel-eslint_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/babel-loader_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/babel-plugin-add-module-exports_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/babel-plugin-external-helpers_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/babel-plugin-flow-react-proptypes_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/babel-plugin-transform-class-properties_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/babel-plugin-transform-flow-strip-types_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/babel-plugin-transform-object-rest-spread_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/babel-preset-latest_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/babel-preset-react_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/buffer_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/chokidar_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/css-to-react-native_v1.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/css-to-react-native_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/eslint_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/eslint-config-airbnb_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/eslint-plugin-flowtype_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/eslint-plugin-flowtype-errors_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/eslint-plugin-import_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/eslint-plugin-jsx-a11y_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/eslint-plugin-react_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/expect_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/express_v4.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/flow-bin_v0.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/flow-copy-source_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/inline-style-prefixer_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/is-function_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/is-plain-object_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/jest_v19.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/jsdom_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/lint-staged_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/mocha_v2.4.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/mocha_v3.1.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/mocha-jsdom_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/node-watch_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/pre-commit_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/react-addons-test-utils_v15.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/rollup_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/rollup-plugin-babel_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/rollup-plugin-commonjs_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/rollup-plugin-flow_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/rollup-plugin-inject_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/rollup-plugin-json_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/rollup-plugin-node-resolve_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/rollup-plugin-replace_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/rollup-plugin-uglify_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/rollup-plugin-visualizer_vx.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/npm/supports-color_v3.x.x' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/react-native' { - declare module.exports: any; -} - -declare module 'styled-components/flow-typed/webpack-hotmodule' { - declare module.exports: any; -} - -declare module 'styled-components/native' { - declare module.exports: any; -} - -declare module 'styled-components/scripts/postinstall' { - declare module.exports: any; -} - -declare module 'styled-components/src/constants' { - declare module.exports: any; -} - -declare module 'styled-components/src/constructors/constructWithOptions' { - declare module.exports: any; -} - -declare module 'styled-components/src/constructors/css' { - declare module.exports: any; -} - -declare module 'styled-components/src/constructors/injectGlobal' { - declare module.exports: any; -} - -declare module 'styled-components/src/constructors/keyframes' { - declare module.exports: any; -} - -declare module 'styled-components/src/constructors/styled' { - declare module.exports: any; -} - -declare module 'styled-components/src/constructors/test/injectGlobal.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/constructors/test/keyframes.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/constructors/test/styled.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/hoc/withTheme' { - declare module.exports: any; -} - -declare module 'styled-components/src' { - declare module.exports: any; -} - -declare module 'styled-components/src/models/ComponentStyle' { - declare module.exports: any; -} - -declare module 'styled-components/src/models/InlineStyle' { - declare module.exports: any; -} - -declare module 'styled-components/src/models/ServerStyleSheet' { - declare module.exports: any; -} - -declare module 'styled-components/src/models/StyledComponent' { - declare module.exports: any; -} - -declare module 'styled-components/src/models/StyledNativeComponent' { - declare module.exports: any; -} - -declare module 'styled-components/src/models/StyleSheet' { - declare module.exports: any; -} - -declare module 'styled-components/src/models/StyleSheetManager' { - declare module.exports: any; -} - -declare module 'styled-components/src/models/StyleTags' { - declare module.exports: any; -} - -declare module 'styled-components/src/models/test/StyleSheetManager.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/models/test/ThemeProvider.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/models/ThemeProvider' { - declare module.exports: any; -} - -declare module 'styled-components/src/native' { - declare module.exports: any; -} - -declare module 'styled-components/src/native/test/native.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/native/test/theme.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/no-parser/css' { - declare module.exports: any; -} - -declare module 'styled-components/src/no-parser/flatten' { - declare module.exports: any; -} - -declare module 'styled-components/src/no-parser' { - declare module.exports: any; -} - -declare module 'styled-components/src/no-parser/stringifyRules' { - declare module.exports: any; -} - -declare module 'styled-components/src/no-parser/test/basic.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/no-parser/test/flatten.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/no-parser/test/keyframes.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/primitives' { - declare module.exports: any; -} - -declare module 'styled-components/src/primitives/test/primitives.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/secretInternals' { - declare module.exports: any; -} - -declare module 'styled-components/src/test/attrs.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/test/basic.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/test/constants.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/test/css.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/test/enzymeSetup' { - declare module.exports: any; -} - -declare module 'styled-components/src/test/expanded-api.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/test/extending.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/test/globals' { - declare module.exports: any; -} - -declare module 'styled-components/src/test/overriding.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/test/props.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/test/rehydration.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/test/ssr.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/test/staticCaching.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/test/styles.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/test/theme.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/test/utils' { - declare module.exports: any; -} - -declare module 'styled-components/src/test/warnTooManyClasses.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/types' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/consolidateStreamedStyles' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/create-broadcast' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/createWarnTooManyClasses' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/determineTheme' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/domElements' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/empties' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/error' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/escape' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/extractCompsFromCSS' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/flatten' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/generateAlphabeticName' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/generateDisplayName' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/getComponentName' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/hasInInheritanceChain' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/insertRuleHelpers' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/interleave' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/isPlainObject' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/isStyledComponent' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/isTag' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/nonce' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/once' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/stringifyRules' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/styleNames' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/test/determineTheme.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/test/error.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/test/escape.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/test/extractCompsFromCSS.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/test/flatten.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/test/generateAlphabeticName.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/test/generateDisplayName.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/test/getComponentName.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/test/interleave.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/test/styleNames.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/test/validAttr.test' { - declare module.exports: any; -} - -declare module 'styled-components/src/utils/validAttr' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/glamor/hash' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss-nested' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss-safe-parser/parse' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss-safe-parser/safe-parser' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/at-rule' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/comment' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/container' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/css-syntax-error' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/declaration' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/input' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/lazy-result' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/list' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/node' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/parse' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/parser' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/postcss' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/processor' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/result' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/root' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/rule' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/stringifier' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/stringify' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/terminal-highlight' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/tokenize' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/vendor' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/warn-once' { - declare module.exports: any; -} - -declare module 'styled-components/src/vendor/postcss/warning' { - declare module.exports: any; -} - -declare module 'styled-components/test-utils' { - declare module.exports: any; -} - -declare module 'styled-components/test-utils/setupTestFramework' { - declare module.exports: any; -} - -// Filename aliases -declare module 'styled-components/dist/styled-components-no-parser.browser.cjs.js' { - declare module.exports: $Exports<'styled-components/dist/styled-components-no-parser.browser.cjs'>; -} -declare module 'styled-components/dist/styled-components-no-parser.browser.esm.js' { - declare module.exports: $Exports<'styled-components/dist/styled-components-no-parser.browser.esm'>; -} -declare module 'styled-components/dist/styled-components-no-parser.cjs.js' { - declare module.exports: $Exports<'styled-components/dist/styled-components-no-parser.cjs'>; -} -declare module 'styled-components/dist/styled-components-no-parser.esm.js' { - declare module.exports: $Exports<'styled-components/dist/styled-components-no-parser.esm'>; -} -declare module 'styled-components/dist/styled-components-primitives.cjs.js' { - declare module.exports: $Exports<'styled-components/dist/styled-components-primitives.cjs'>; -} -declare module 'styled-components/dist/styled-components-primitives.esm.js' { - declare module.exports: $Exports<'styled-components/dist/styled-components-primitives.esm'>; -} -declare module 'styled-components/dist/styled-components.browser.cjs.js' { - declare module.exports: $Exports<'styled-components/dist/styled-components.browser.cjs'>; -} -declare module 'styled-components/dist/styled-components.browser.cjs.min.js' { - declare module.exports: $Exports<'styled-components/dist/styled-components.browser.cjs.min'>; -} -declare module 'styled-components/dist/styled-components.browser.esm.js' { - declare module.exports: $Exports<'styled-components/dist/styled-components.browser.esm'>; -} -declare module 'styled-components/dist/styled-components.browser.esm.min.js' { - declare module.exports: $Exports<'styled-components/dist/styled-components.browser.esm.min'>; -} -declare module 'styled-components/dist/styled-components.cjs.js' { - declare module.exports: $Exports<'styled-components/dist/styled-components.cjs'>; -} -declare module 'styled-components/dist/styled-components.cjs.min.js' { - declare module.exports: $Exports<'styled-components/dist/styled-components.cjs.min'>; -} -declare module 'styled-components/dist/styled-components.esm.js' { - declare module.exports: $Exports<'styled-components/dist/styled-components.esm'>; -} -declare module 'styled-components/dist/styled-components.esm.min.js' { - declare module.exports: $Exports<'styled-components/dist/styled-components.esm.min'>; -} -declare module 'styled-components/dist/styled-components.js' { - declare module.exports: $Exports<'styled-components/dist/styled-components'>; -} -declare module 'styled-components/dist/styled-components.min.js' { - declare module.exports: $Exports<'styled-components/dist/styled-components.min'>; -} -declare module 'styled-components/dist/styled-components.native.cjs.js' { - declare module.exports: $Exports<'styled-components/dist/styled-components.native.cjs'>; -} -declare module 'styled-components/flow-typed/danger-plugin-jest_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/danger-plugin-jest_vx.x.x'>; -} -declare module 'styled-components/flow-typed/enzyme_v3.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/enzyme_v3.x.x'>; -} -declare module 'styled-components/flow-typed/fbjs_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/fbjs_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/babel-cli_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/babel-cli_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/babel-core_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/babel-core_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/babel-eslint_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/babel-eslint_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/babel-loader_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/babel-loader_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/babel-plugin-add-module-exports_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/babel-plugin-add-module-exports_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/babel-plugin-external-helpers_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/babel-plugin-external-helpers_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/babel-plugin-flow-react-proptypes_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/babel-plugin-flow-react-proptypes_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/babel-plugin-transform-class-properties_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/babel-plugin-transform-class-properties_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/babel-plugin-transform-flow-strip-types_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/babel-plugin-transform-flow-strip-types_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/babel-plugin-transform-object-rest-spread_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/babel-plugin-transform-object-rest-spread_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/babel-preset-latest_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/babel-preset-latest_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/babel-preset-react_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/babel-preset-react_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/buffer_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/buffer_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/chokidar_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/chokidar_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/css-to-react-native_v1.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/css-to-react-native_v1.x.x'>; -} -declare module 'styled-components/flow-typed/npm/css-to-react-native_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/css-to-react-native_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/eslint_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/eslint_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/eslint-config-airbnb_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/eslint-config-airbnb_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/eslint-plugin-flowtype_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/eslint-plugin-flowtype-errors_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/eslint-plugin-flowtype-errors_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/eslint-plugin-import_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/eslint-plugin-import_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/eslint-plugin-jsx-a11y_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/eslint-plugin-jsx-a11y_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/eslint-plugin-react_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/eslint-plugin-react_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/expect_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/expect_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/express_v4.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/express_v4.x.x'>; -} -declare module 'styled-components/flow-typed/npm/flow-bin_v0.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/flow-bin_v0.x.x'>; -} -declare module 'styled-components/flow-typed/npm/flow-copy-source_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/flow-copy-source_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/inline-style-prefixer_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/inline-style-prefixer_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/is-function_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/is-function_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/is-plain-object_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/is-plain-object_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/jest_v19.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/jest_v19.x.x'>; -} -declare module 'styled-components/flow-typed/npm/jsdom_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/jsdom_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/lint-staged_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/lint-staged_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/mocha_v2.4.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/mocha_v2.4.x'>; -} -declare module 'styled-components/flow-typed/npm/mocha_v3.1.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/mocha_v3.1.x'>; -} -declare module 'styled-components/flow-typed/npm/mocha-jsdom_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/mocha-jsdom_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/node-watch_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/node-watch_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/pre-commit_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/pre-commit_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/react-addons-test-utils_v15.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/react-addons-test-utils_v15.x.x'>; -} -declare module 'styled-components/flow-typed/npm/rollup_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/rollup_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/rollup-plugin-babel_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/rollup-plugin-babel_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/rollup-plugin-commonjs_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/rollup-plugin-commonjs_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/rollup-plugin-flow_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/rollup-plugin-flow_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/rollup-plugin-inject_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/rollup-plugin-inject_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/rollup-plugin-json_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/rollup-plugin-json_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/rollup-plugin-node-resolve_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/rollup-plugin-node-resolve_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/rollup-plugin-replace_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/rollup-plugin-replace_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/rollup-plugin-uglify_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/rollup-plugin-uglify_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/rollup-plugin-visualizer_vx.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/rollup-plugin-visualizer_vx.x.x'>; -} -declare module 'styled-components/flow-typed/npm/supports-color_v3.x.x.js' { - declare module.exports: $Exports<'styled-components/flow-typed/npm/supports-color_v3.x.x'>; -} -declare module 'styled-components/flow-typed/react-native.js' { - declare module.exports: $Exports<'styled-components/flow-typed/react-native'>; -} -declare module 'styled-components/flow-typed/webpack-hotmodule.js' { - declare module.exports: $Exports<'styled-components/flow-typed/webpack-hotmodule'>; -} -declare module 'styled-components/native/index' { - declare module.exports: $Exports<'styled-components/native'>; -} -declare module 'styled-components/native/index.js' { - declare module.exports: $Exports<'styled-components/native'>; -} -declare module 'styled-components/scripts/postinstall.js' { - declare module.exports: $Exports<'styled-components/scripts/postinstall'>; -} -declare module 'styled-components/src/constants.js' { - declare module.exports: $Exports<'styled-components/src/constants'>; -} -declare module 'styled-components/src/constructors/constructWithOptions.js' { - declare module.exports: $Exports<'styled-components/src/constructors/constructWithOptions'>; -} -declare module 'styled-components/src/constructors/css.js' { - declare module.exports: $Exports<'styled-components/src/constructors/css'>; -} -declare module 'styled-components/src/constructors/injectGlobal.js' { - declare module.exports: $Exports<'styled-components/src/constructors/injectGlobal'>; -} -declare module 'styled-components/src/constructors/keyframes.js' { - declare module.exports: $Exports<'styled-components/src/constructors/keyframes'>; -} -declare module 'styled-components/src/constructors/styled.js' { - declare module.exports: $Exports<'styled-components/src/constructors/styled'>; -} -declare module 'styled-components/src/constructors/test/injectGlobal.test.js' { - declare module.exports: $Exports<'styled-components/src/constructors/test/injectGlobal.test'>; -} -declare module 'styled-components/src/constructors/test/keyframes.test.js' { - declare module.exports: $Exports<'styled-components/src/constructors/test/keyframes.test'>; -} -declare module 'styled-components/src/constructors/test/styled.test.js' { - declare module.exports: $Exports<'styled-components/src/constructors/test/styled.test'>; -} -declare module 'styled-components/src/hoc/withTheme.js' { - declare module.exports: $Exports<'styled-components/src/hoc/withTheme'>; -} -declare module 'styled-components/src/index' { - declare module.exports: $Exports<'styled-components/src'>; -} -declare module 'styled-components/src/index.js' { - declare module.exports: $Exports<'styled-components/src'>; -} -declare module 'styled-components/src/models/ComponentStyle.js' { - declare module.exports: $Exports<'styled-components/src/models/ComponentStyle'>; -} -declare module 'styled-components/src/models/InlineStyle.js' { - declare module.exports: $Exports<'styled-components/src/models/InlineStyle'>; -} -declare module 'styled-components/src/models/ServerStyleSheet.js' { - declare module.exports: $Exports<'styled-components/src/models/ServerStyleSheet'>; -} -declare module 'styled-components/src/models/StyledComponent.js' { - declare module.exports: $Exports<'styled-components/src/models/StyledComponent'>; -} -declare module 'styled-components/src/models/StyledNativeComponent.js' { - declare module.exports: $Exports<'styled-components/src/models/StyledNativeComponent'>; -} -declare module 'styled-components/src/models/StyleSheet.js' { - declare module.exports: $Exports<'styled-components/src/models/StyleSheet'>; -} -declare module 'styled-components/src/models/StyleSheetManager.js' { - declare module.exports: $Exports<'styled-components/src/models/StyleSheetManager'>; -} -declare module 'styled-components/src/models/StyleTags.js' { - declare module.exports: $Exports<'styled-components/src/models/StyleTags'>; -} -declare module 'styled-components/src/models/test/StyleSheetManager.test.js' { - declare module.exports: $Exports<'styled-components/src/models/test/StyleSheetManager.test'>; -} -declare module 'styled-components/src/models/test/ThemeProvider.test.js' { - declare module.exports: $Exports<'styled-components/src/models/test/ThemeProvider.test'>; -} -declare module 'styled-components/src/models/ThemeProvider.js' { - declare module.exports: $Exports<'styled-components/src/models/ThemeProvider'>; -} -declare module 'styled-components/src/native/index' { - declare module.exports: $Exports<'styled-components/src/native'>; -} -declare module 'styled-components/src/native/index.js' { - declare module.exports: $Exports<'styled-components/src/native'>; -} -declare module 'styled-components/src/native/test/native.test.js' { - declare module.exports: $Exports<'styled-components/src/native/test/native.test'>; -} -declare module 'styled-components/src/native/test/theme.test.js' { - declare module.exports: $Exports<'styled-components/src/native/test/theme.test'>; -} -declare module 'styled-components/src/no-parser/css.js' { - declare module.exports: $Exports<'styled-components/src/no-parser/css'>; -} -declare module 'styled-components/src/no-parser/flatten.js' { - declare module.exports: $Exports<'styled-components/src/no-parser/flatten'>; -} -declare module 'styled-components/src/no-parser/index' { - declare module.exports: $Exports<'styled-components/src/no-parser'>; -} -declare module 'styled-components/src/no-parser/index.js' { - declare module.exports: $Exports<'styled-components/src/no-parser'>; -} -declare module 'styled-components/src/no-parser/stringifyRules.js' { - declare module.exports: $Exports<'styled-components/src/no-parser/stringifyRules'>; -} -declare module 'styled-components/src/no-parser/test/basic.test.js' { - declare module.exports: $Exports<'styled-components/src/no-parser/test/basic.test'>; -} -declare module 'styled-components/src/no-parser/test/flatten.test.js' { - declare module.exports: $Exports<'styled-components/src/no-parser/test/flatten.test'>; -} -declare module 'styled-components/src/no-parser/test/keyframes.test.js' { - declare module.exports: $Exports<'styled-components/src/no-parser/test/keyframes.test'>; -} -declare module 'styled-components/src/primitives/index' { - declare module.exports: $Exports<'styled-components/src/primitives'>; -} -declare module 'styled-components/src/primitives/index.js' { - declare module.exports: $Exports<'styled-components/src/primitives'>; -} -declare module 'styled-components/src/primitives/test/primitives.test.js' { - declare module.exports: $Exports<'styled-components/src/primitives/test/primitives.test'>; -} -declare module 'styled-components/src/secretInternals.js' { - declare module.exports: $Exports<'styled-components/src/secretInternals'>; -} -declare module 'styled-components/src/test/attrs.test.js' { - declare module.exports: $Exports<'styled-components/src/test/attrs.test'>; -} -declare module 'styled-components/src/test/basic.test.js' { - declare module.exports: $Exports<'styled-components/src/test/basic.test'>; -} -declare module 'styled-components/src/test/constants.test.js' { - declare module.exports: $Exports<'styled-components/src/test/constants.test'>; -} -declare module 'styled-components/src/test/css.test.js' { - declare module.exports: $Exports<'styled-components/src/test/css.test'>; -} -declare module 'styled-components/src/test/enzymeSetup.js' { - declare module.exports: $Exports<'styled-components/src/test/enzymeSetup'>; -} -declare module 'styled-components/src/test/expanded-api.test.js' { - declare module.exports: $Exports<'styled-components/src/test/expanded-api.test'>; -} -declare module 'styled-components/src/test/extending.test.js' { - declare module.exports: $Exports<'styled-components/src/test/extending.test'>; -} -declare module 'styled-components/src/test/globals.js' { - declare module.exports: $Exports<'styled-components/src/test/globals'>; -} -declare module 'styled-components/src/test/overriding.test.js' { - declare module.exports: $Exports<'styled-components/src/test/overriding.test'>; -} -declare module 'styled-components/src/test/props.test.js' { - declare module.exports: $Exports<'styled-components/src/test/props.test'>; -} -declare module 'styled-components/src/test/rehydration.test.js' { - declare module.exports: $Exports<'styled-components/src/test/rehydration.test'>; -} -declare module 'styled-components/src/test/ssr.test.js' { - declare module.exports: $Exports<'styled-components/src/test/ssr.test'>; -} -declare module 'styled-components/src/test/staticCaching.test.js' { - declare module.exports: $Exports<'styled-components/src/test/staticCaching.test'>; -} -declare module 'styled-components/src/test/styles.test.js' { - declare module.exports: $Exports<'styled-components/src/test/styles.test'>; -} -declare module 'styled-components/src/test/theme.test.js' { - declare module.exports: $Exports<'styled-components/src/test/theme.test'>; -} -declare module 'styled-components/src/test/utils.js' { - declare module.exports: $Exports<'styled-components/src/test/utils'>; -} -declare module 'styled-components/src/test/warnTooManyClasses.test.js' { - declare module.exports: $Exports<'styled-components/src/test/warnTooManyClasses.test'>; -} -declare module 'styled-components/src/types.js' { - declare module.exports: $Exports<'styled-components/src/types'>; -} -declare module 'styled-components/src/utils/consolidateStreamedStyles.js' { - declare module.exports: $Exports<'styled-components/src/utils/consolidateStreamedStyles'>; -} -declare module 'styled-components/src/utils/create-broadcast.js' { - declare module.exports: $Exports<'styled-components/src/utils/create-broadcast'>; -} -declare module 'styled-components/src/utils/createWarnTooManyClasses.js' { - declare module.exports: $Exports<'styled-components/src/utils/createWarnTooManyClasses'>; -} -declare module 'styled-components/src/utils/determineTheme.js' { - declare module.exports: $Exports<'styled-components/src/utils/determineTheme'>; -} -declare module 'styled-components/src/utils/domElements.js' { - declare module.exports: $Exports<'styled-components/src/utils/domElements'>; -} -declare module 'styled-components/src/utils/empties.js' { - declare module.exports: $Exports<'styled-components/src/utils/empties'>; -} -declare module 'styled-components/src/utils/error.js' { - declare module.exports: $Exports<'styled-components/src/utils/error'>; -} -declare module 'styled-components/src/utils/escape.js' { - declare module.exports: $Exports<'styled-components/src/utils/escape'>; -} -declare module 'styled-components/src/utils/extractCompsFromCSS.js' { - declare module.exports: $Exports<'styled-components/src/utils/extractCompsFromCSS'>; -} -declare module 'styled-components/src/utils/flatten.js' { - declare module.exports: $Exports<'styled-components/src/utils/flatten'>; -} -declare module 'styled-components/src/utils/generateAlphabeticName.js' { - declare module.exports: $Exports<'styled-components/src/utils/generateAlphabeticName'>; -} -declare module 'styled-components/src/utils/generateDisplayName.js' { - declare module.exports: $Exports<'styled-components/src/utils/generateDisplayName'>; -} -declare module 'styled-components/src/utils/getComponentName.js' { - declare module.exports: $Exports<'styled-components/src/utils/getComponentName'>; -} -declare module 'styled-components/src/utils/hasInInheritanceChain.js' { - declare module.exports: $Exports<'styled-components/src/utils/hasInInheritanceChain'>; -} -declare module 'styled-components/src/utils/insertRuleHelpers.js' { - declare module.exports: $Exports<'styled-components/src/utils/insertRuleHelpers'>; -} -declare module 'styled-components/src/utils/interleave.js' { - declare module.exports: $Exports<'styled-components/src/utils/interleave'>; -} -declare module 'styled-components/src/utils/isPlainObject.js' { - declare module.exports: $Exports<'styled-components/src/utils/isPlainObject'>; -} -declare module 'styled-components/src/utils/isStyledComponent.js' { - declare module.exports: $Exports<'styled-components/src/utils/isStyledComponent'>; -} -declare module 'styled-components/src/utils/isTag.js' { - declare module.exports: $Exports<'styled-components/src/utils/isTag'>; -} -declare module 'styled-components/src/utils/nonce.js' { - declare module.exports: $Exports<'styled-components/src/utils/nonce'>; -} -declare module 'styled-components/src/utils/once.js' { - declare module.exports: $Exports<'styled-components/src/utils/once'>; -} -declare module 'styled-components/src/utils/stringifyRules.js' { - declare module.exports: $Exports<'styled-components/src/utils/stringifyRules'>; -} -declare module 'styled-components/src/utils/styleNames.js' { - declare module.exports: $Exports<'styled-components/src/utils/styleNames'>; -} -declare module 'styled-components/src/utils/test/determineTheme.test.js' { - declare module.exports: $Exports<'styled-components/src/utils/test/determineTheme.test'>; -} -declare module 'styled-components/src/utils/test/error.test.js' { - declare module.exports: $Exports<'styled-components/src/utils/test/error.test'>; -} -declare module 'styled-components/src/utils/test/escape.test.js' { - declare module.exports: $Exports<'styled-components/src/utils/test/escape.test'>; -} -declare module 'styled-components/src/utils/test/extractCompsFromCSS.test.js' { - declare module.exports: $Exports<'styled-components/src/utils/test/extractCompsFromCSS.test'>; -} -declare module 'styled-components/src/utils/test/flatten.test.js' { - declare module.exports: $Exports<'styled-components/src/utils/test/flatten.test'>; -} -declare module 'styled-components/src/utils/test/generateAlphabeticName.test.js' { - declare module.exports: $Exports<'styled-components/src/utils/test/generateAlphabeticName.test'>; -} -declare module 'styled-components/src/utils/test/generateDisplayName.test.js' { - declare module.exports: $Exports<'styled-components/src/utils/test/generateDisplayName.test'>; -} -declare module 'styled-components/src/utils/test/getComponentName.test.js' { - declare module.exports: $Exports<'styled-components/src/utils/test/getComponentName.test'>; -} -declare module 'styled-components/src/utils/test/interleave.test.js' { - declare module.exports: $Exports<'styled-components/src/utils/test/interleave.test'>; -} -declare module 'styled-components/src/utils/test/styleNames.test.js' { - declare module.exports: $Exports<'styled-components/src/utils/test/styleNames.test'>; -} -declare module 'styled-components/src/utils/test/validAttr.test.js' { - declare module.exports: $Exports<'styled-components/src/utils/test/validAttr.test'>; -} -declare module 'styled-components/src/utils/validAttr.js' { - declare module.exports: $Exports<'styled-components/src/utils/validAttr'>; -} -declare module 'styled-components/src/vendor/glamor/hash.js' { - declare module.exports: $Exports<'styled-components/src/vendor/glamor/hash'>; -} -declare module 'styled-components/src/vendor/postcss-nested/index' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss-nested'>; -} -declare module 'styled-components/src/vendor/postcss-nested/index.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss-nested'>; -} -declare module 'styled-components/src/vendor/postcss-safe-parser/parse.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss-safe-parser/parse'>; -} -declare module 'styled-components/src/vendor/postcss-safe-parser/safe-parser.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss-safe-parser/safe-parser'>; -} -declare module 'styled-components/src/vendor/postcss/at-rule.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/at-rule'>; -} -declare module 'styled-components/src/vendor/postcss/comment.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/comment'>; -} -declare module 'styled-components/src/vendor/postcss/container.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/container'>; -} -declare module 'styled-components/src/vendor/postcss/css-syntax-error.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/css-syntax-error'>; -} -declare module 'styled-components/src/vendor/postcss/declaration.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/declaration'>; -} -declare module 'styled-components/src/vendor/postcss/input.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/input'>; -} -declare module 'styled-components/src/vendor/postcss/lazy-result.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/lazy-result'>; -} -declare module 'styled-components/src/vendor/postcss/list.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/list'>; -} -declare module 'styled-components/src/vendor/postcss/node.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/node'>; -} -declare module 'styled-components/src/vendor/postcss/parse.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/parse'>; -} -declare module 'styled-components/src/vendor/postcss/parser.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/parser'>; -} -declare module 'styled-components/src/vendor/postcss/postcss.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/postcss'>; -} -declare module 'styled-components/src/vendor/postcss/processor.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/processor'>; -} -declare module 'styled-components/src/vendor/postcss/result.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/result'>; -} -declare module 'styled-components/src/vendor/postcss/root.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/root'>; -} -declare module 'styled-components/src/vendor/postcss/rule.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/rule'>; -} -declare module 'styled-components/src/vendor/postcss/stringifier.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/stringifier'>; -} -declare module 'styled-components/src/vendor/postcss/stringify.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/stringify'>; -} -declare module 'styled-components/src/vendor/postcss/terminal-highlight.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/terminal-highlight'>; -} -declare module 'styled-components/src/vendor/postcss/tokenize.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/tokenize'>; -} -declare module 'styled-components/src/vendor/postcss/vendor.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/vendor'>; -} -declare module 'styled-components/src/vendor/postcss/warn-once.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/warn-once'>; -} -declare module 'styled-components/src/vendor/postcss/warning.js' { - declare module.exports: $Exports<'styled-components/src/vendor/postcss/warning'>; -} -declare module 'styled-components/test-utils/index' { - declare module.exports: $Exports<'styled-components/test-utils'>; -} -declare module 'styled-components/test-utils/index.js' { - declare module.exports: $Exports<'styled-components/test-utils'>; -} -declare module 'styled-components/test-utils/setupTestFramework.js' { - declare module.exports: $Exports<'styled-components/test-utils/setupTestFramework'>; -} diff --git a/flow-typed/npm/swagger-client_vx.x.x.js b/flow-typed/npm/swagger-client_vx.x.x.js deleted file mode 100644 index d28df7dfa..000000000 --- a/flow-typed/npm/swagger-client_vx.x.x.js +++ /dev/null @@ -1,419 +0,0 @@ -// flow-typed signature: 30e5452a85010d53ed2c08e39cc825bc -// flow-typed version: <>/swagger-client_v^3.10.0/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'swagger-client' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'swagger-client' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'swagger-client/dist/swagger-client.browser' { - declare module.exports: any; -} - -declare module 'swagger-client/dist/swagger-client.browser.min' { - declare module.exports: any; -} - -declare module 'swagger-client/es/commonjs' { - declare module.exports: any; -} - -declare module 'swagger-client/es/constants' { - declare module.exports: any; -} - -declare module 'swagger-client/es/execute' { - declare module.exports: any; -} - -declare module 'swagger-client/es/execute/oas3/build-request' { - declare module.exports: any; -} - -declare module 'swagger-client/es/execute/oas3/content-serializer' { - declare module.exports: any; -} - -declare module 'swagger-client/es/execute/oas3/parameter-builders' { - declare module.exports: any; -} - -declare module 'swagger-client/es/execute/oas3/style-serializer' { - declare module.exports: any; -} - -declare module 'swagger-client/es/execute/swagger2/build-request' { - declare module.exports: any; -} - -declare module 'swagger-client/es/execute/swagger2/parameter-builders' { - declare module.exports: any; -} - -declare module 'swagger-client/es/helpers' { - declare module.exports: any; -} - -declare module 'swagger-client/es/http' { - declare module.exports: any; -} - -declare module 'swagger-client/es' { - declare module.exports: any; -} - -declare module 'swagger-client/es/interfaces' { - declare module.exports: any; -} - -declare module 'swagger-client/es/internal/form-data-monkey-patch' { - declare module.exports: any; -} - -declare module 'swagger-client/es/resolver' { - declare module.exports: any; -} - -declare module 'swagger-client/es/specmap/helpers' { - declare module.exports: any; -} - -declare module 'swagger-client/es/specmap' { - declare module.exports: any; -} - -declare module 'swagger-client/es/specmap/lib/all-of' { - declare module.exports: any; -} - -declare module 'swagger-client/es/specmap/lib/context-tree' { - declare module.exports: any; -} - -declare module 'swagger-client/es/specmap/lib/create-error' { - declare module.exports: any; -} - -declare module 'swagger-client/es/specmap/lib' { - declare module.exports: any; -} - -declare module 'swagger-client/es/specmap/lib/parameters' { - declare module.exports: any; -} - -declare module 'swagger-client/es/specmap/lib/properties' { - declare module.exports: any; -} - -declare module 'swagger-client/es/specmap/lib/refs' { - declare module.exports: any; -} - -declare module 'swagger-client/es/subtree-resolver' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/commonjs' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/constants' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/execute' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/execute/oas3/build-request' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/execute/oas3/content-serializer' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/execute/oas3/parameter-builders' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/execute/oas3/style-serializer' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/execute/swagger2/build-request' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/execute/swagger2/parameter-builders' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/helpers' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/http' { - declare module.exports: any; -} - -declare module 'swagger-client/lib' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/interfaces' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/internal/form-data-monkey-patch' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/resolver' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/specmap/helpers' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/specmap' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/specmap/lib/all-of' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/specmap/lib/context-tree' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/specmap/lib/create-error' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/specmap/lib' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/specmap/lib/parameters' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/specmap/lib/properties' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/specmap/lib/refs' { - declare module.exports: any; -} - -declare module 'swagger-client/lib/subtree-resolver' { - declare module.exports: any; -} - -// Filename aliases -declare module 'swagger-client/dist/swagger-client.browser.js' { - declare module.exports: $Exports<'swagger-client/dist/swagger-client.browser'>; -} -declare module 'swagger-client/dist/swagger-client.browser.min.js' { - declare module.exports: $Exports<'swagger-client/dist/swagger-client.browser.min'>; -} -declare module 'swagger-client/es/commonjs.js' { - declare module.exports: $Exports<'swagger-client/es/commonjs'>; -} -declare module 'swagger-client/es/constants.js' { - declare module.exports: $Exports<'swagger-client/es/constants'>; -} -declare module 'swagger-client/es/execute/index' { - declare module.exports: $Exports<'swagger-client/es/execute'>; -} -declare module 'swagger-client/es/execute/index.js' { - declare module.exports: $Exports<'swagger-client/es/execute'>; -} -declare module 'swagger-client/es/execute/oas3/build-request.js' { - declare module.exports: $Exports<'swagger-client/es/execute/oas3/build-request'>; -} -declare module 'swagger-client/es/execute/oas3/content-serializer.js' { - declare module.exports: $Exports<'swagger-client/es/execute/oas3/content-serializer'>; -} -declare module 'swagger-client/es/execute/oas3/parameter-builders.js' { - declare module.exports: $Exports<'swagger-client/es/execute/oas3/parameter-builders'>; -} -declare module 'swagger-client/es/execute/oas3/style-serializer.js' { - declare module.exports: $Exports<'swagger-client/es/execute/oas3/style-serializer'>; -} -declare module 'swagger-client/es/execute/swagger2/build-request.js' { - declare module.exports: $Exports<'swagger-client/es/execute/swagger2/build-request'>; -} -declare module 'swagger-client/es/execute/swagger2/parameter-builders.js' { - declare module.exports: $Exports<'swagger-client/es/execute/swagger2/parameter-builders'>; -} -declare module 'swagger-client/es/helpers.js' { - declare module.exports: $Exports<'swagger-client/es/helpers'>; -} -declare module 'swagger-client/es/http.js' { - declare module.exports: $Exports<'swagger-client/es/http'>; -} -declare module 'swagger-client/es/index' { - declare module.exports: $Exports<'swagger-client/es'>; -} -declare module 'swagger-client/es/index.js' { - declare module.exports: $Exports<'swagger-client/es'>; -} -declare module 'swagger-client/es/interfaces.js' { - declare module.exports: $Exports<'swagger-client/es/interfaces'>; -} -declare module 'swagger-client/es/internal/form-data-monkey-patch.js' { - declare module.exports: $Exports<'swagger-client/es/internal/form-data-monkey-patch'>; -} -declare module 'swagger-client/es/resolver.js' { - declare module.exports: $Exports<'swagger-client/es/resolver'>; -} -declare module 'swagger-client/es/specmap/helpers.js' { - declare module.exports: $Exports<'swagger-client/es/specmap/helpers'>; -} -declare module 'swagger-client/es/specmap/index' { - declare module.exports: $Exports<'swagger-client/es/specmap'>; -} -declare module 'swagger-client/es/specmap/index.js' { - declare module.exports: $Exports<'swagger-client/es/specmap'>; -} -declare module 'swagger-client/es/specmap/lib/all-of.js' { - declare module.exports: $Exports<'swagger-client/es/specmap/lib/all-of'>; -} -declare module 'swagger-client/es/specmap/lib/context-tree.js' { - declare module.exports: $Exports<'swagger-client/es/specmap/lib/context-tree'>; -} -declare module 'swagger-client/es/specmap/lib/create-error.js' { - declare module.exports: $Exports<'swagger-client/es/specmap/lib/create-error'>; -} -declare module 'swagger-client/es/specmap/lib/index' { - declare module.exports: $Exports<'swagger-client/es/specmap/lib'>; -} -declare module 'swagger-client/es/specmap/lib/index.js' { - declare module.exports: $Exports<'swagger-client/es/specmap/lib'>; -} -declare module 'swagger-client/es/specmap/lib/parameters.js' { - declare module.exports: $Exports<'swagger-client/es/specmap/lib/parameters'>; -} -declare module 'swagger-client/es/specmap/lib/properties.js' { - declare module.exports: $Exports<'swagger-client/es/specmap/lib/properties'>; -} -declare module 'swagger-client/es/specmap/lib/refs.js' { - declare module.exports: $Exports<'swagger-client/es/specmap/lib/refs'>; -} -declare module 'swagger-client/es/subtree-resolver/index' { - declare module.exports: $Exports<'swagger-client/es/subtree-resolver'>; -} -declare module 'swagger-client/es/subtree-resolver/index.js' { - declare module.exports: $Exports<'swagger-client/es/subtree-resolver'>; -} -declare module 'swagger-client/lib/commonjs.js' { - declare module.exports: $Exports<'swagger-client/lib/commonjs'>; -} -declare module 'swagger-client/lib/constants.js' { - declare module.exports: $Exports<'swagger-client/lib/constants'>; -} -declare module 'swagger-client/lib/execute/index' { - declare module.exports: $Exports<'swagger-client/lib/execute'>; -} -declare module 'swagger-client/lib/execute/index.js' { - declare module.exports: $Exports<'swagger-client/lib/execute'>; -} -declare module 'swagger-client/lib/execute/oas3/build-request.js' { - declare module.exports: $Exports<'swagger-client/lib/execute/oas3/build-request'>; -} -declare module 'swagger-client/lib/execute/oas3/content-serializer.js' { - declare module.exports: $Exports<'swagger-client/lib/execute/oas3/content-serializer'>; -} -declare module 'swagger-client/lib/execute/oas3/parameter-builders.js' { - declare module.exports: $Exports<'swagger-client/lib/execute/oas3/parameter-builders'>; -} -declare module 'swagger-client/lib/execute/oas3/style-serializer.js' { - declare module.exports: $Exports<'swagger-client/lib/execute/oas3/style-serializer'>; -} -declare module 'swagger-client/lib/execute/swagger2/build-request.js' { - declare module.exports: $Exports<'swagger-client/lib/execute/swagger2/build-request'>; -} -declare module 'swagger-client/lib/execute/swagger2/parameter-builders.js' { - declare module.exports: $Exports<'swagger-client/lib/execute/swagger2/parameter-builders'>; -} -declare module 'swagger-client/lib/helpers.js' { - declare module.exports: $Exports<'swagger-client/lib/helpers'>; -} -declare module 'swagger-client/lib/http.js' { - declare module.exports: $Exports<'swagger-client/lib/http'>; -} -declare module 'swagger-client/lib/index' { - declare module.exports: $Exports<'swagger-client/lib'>; -} -declare module 'swagger-client/lib/index.js' { - declare module.exports: $Exports<'swagger-client/lib'>; -} -declare module 'swagger-client/lib/interfaces.js' { - declare module.exports: $Exports<'swagger-client/lib/interfaces'>; -} -declare module 'swagger-client/lib/internal/form-data-monkey-patch.js' { - declare module.exports: $Exports<'swagger-client/lib/internal/form-data-monkey-patch'>; -} -declare module 'swagger-client/lib/resolver.js' { - declare module.exports: $Exports<'swagger-client/lib/resolver'>; -} -declare module 'swagger-client/lib/specmap/helpers.js' { - declare module.exports: $Exports<'swagger-client/lib/specmap/helpers'>; -} -declare module 'swagger-client/lib/specmap/index' { - declare module.exports: $Exports<'swagger-client/lib/specmap'>; -} -declare module 'swagger-client/lib/specmap/index.js' { - declare module.exports: $Exports<'swagger-client/lib/specmap'>; -} -declare module 'swagger-client/lib/specmap/lib/all-of.js' { - declare module.exports: $Exports<'swagger-client/lib/specmap/lib/all-of'>; -} -declare module 'swagger-client/lib/specmap/lib/context-tree.js' { - declare module.exports: $Exports<'swagger-client/lib/specmap/lib/context-tree'>; -} -declare module 'swagger-client/lib/specmap/lib/create-error.js' { - declare module.exports: $Exports<'swagger-client/lib/specmap/lib/create-error'>; -} -declare module 'swagger-client/lib/specmap/lib/index' { - declare module.exports: $Exports<'swagger-client/lib/specmap/lib'>; -} -declare module 'swagger-client/lib/specmap/lib/index.js' { - declare module.exports: $Exports<'swagger-client/lib/specmap/lib'>; -} -declare module 'swagger-client/lib/specmap/lib/parameters.js' { - declare module.exports: $Exports<'swagger-client/lib/specmap/lib/parameters'>; -} -declare module 'swagger-client/lib/specmap/lib/properties.js' { - declare module.exports: $Exports<'swagger-client/lib/specmap/lib/properties'>; -} -declare module 'swagger-client/lib/specmap/lib/refs.js' { - declare module.exports: $Exports<'swagger-client/lib/specmap/lib/refs'>; -} -declare module 'swagger-client/lib/subtree-resolver/index' { - declare module.exports: $Exports<'swagger-client/lib/subtree-resolver'>; -} -declare module 'swagger-client/lib/subtree-resolver/index.js' { - declare module.exports: $Exports<'swagger-client/lib/subtree-resolver'>; -} diff --git a/flow-typed/npm/url-loader_vx.x.x.js b/flow-typed/npm/url-loader_vx.x.x.js deleted file mode 100644 index 19f131ad4..000000000 --- a/flow-typed/npm/url-loader_vx.x.x.js +++ /dev/null @@ -1,49 +0,0 @@ -// flow-typed signature: eedae9623b2dc8ba6c35c22b06d883a9 -// flow-typed version: <>/url-loader_v^3.0.0/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'url-loader' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'url-loader' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'url-loader/dist/cjs' { - declare module.exports: any; -} - -declare module 'url-loader/dist' { - declare module.exports: any; -} - -declare module 'url-loader/dist/utils/normalizeFallback' { - declare module.exports: any; -} - -// Filename aliases -declare module 'url-loader/dist/cjs.js' { - declare module.exports: $Exports<'url-loader/dist/cjs'>; -} -declare module 'url-loader/dist/index' { - declare module.exports: $Exports<'url-loader/dist'>; -} -declare module 'url-loader/dist/index.js' { - declare module.exports: $Exports<'url-loader/dist'>; -} -declare module 'url-loader/dist/utils/normalizeFallback.js' { - declare module.exports: $Exports<'url-loader/dist/utils/normalizeFallback'>; -} diff --git a/flow-typed/npm/vega-embed_vx.x.x.js b/flow-typed/npm/vega-embed_vx.x.x.js deleted file mode 100644 index 8d83065b6..000000000 --- a/flow-typed/npm/vega-embed_vx.x.x.js +++ /dev/null @@ -1,98 +0,0 @@ -// flow-typed signature: 6ba18d43e4cceb271c7110ad62e3b127 -// flow-typed version: <>/vega-embed_v^6.0.0/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'vega-embed' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'vega-embed' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'vega-embed/build-es5/vega-embed' { - declare module.exports: any; -} - -declare module 'vega-embed/build/src/container' { - declare module.exports: any; -} - -declare module 'vega-embed/build/src/embed' { - declare module.exports: any; -} - -declare module 'vega-embed/build/src' { - declare module.exports: any; -} - -declare module 'vega-embed/build/src/post' { - declare module.exports: any; -} - -declare module 'vega-embed/build/src/style' { - declare module.exports: any; -} - -declare module 'vega-embed/build/src/types' { - declare module.exports: any; -} - -declare module 'vega-embed/build/src/util' { - declare module.exports: any; -} - -declare module 'vega-embed/build/vega-embed' { - declare module.exports: any; -} - -declare module 'vega-embed/build/vega-embed.min' { - declare module.exports: any; -} - -// Filename aliases -declare module 'vega-embed/build-es5/vega-embed.js' { - declare module.exports: $Exports<'vega-embed/build-es5/vega-embed'>; -} -declare module 'vega-embed/build/src/container.js' { - declare module.exports: $Exports<'vega-embed/build/src/container'>; -} -declare module 'vega-embed/build/src/embed.js' { - declare module.exports: $Exports<'vega-embed/build/src/embed'>; -} -declare module 'vega-embed/build/src/index' { - declare module.exports: $Exports<'vega-embed/build/src'>; -} -declare module 'vega-embed/build/src/index.js' { - declare module.exports: $Exports<'vega-embed/build/src'>; -} -declare module 'vega-embed/build/src/post.js' { - declare module.exports: $Exports<'vega-embed/build/src/post'>; -} -declare module 'vega-embed/build/src/style.js' { - declare module.exports: $Exports<'vega-embed/build/src/style'>; -} -declare module 'vega-embed/build/src/types.js' { - declare module.exports: $Exports<'vega-embed/build/src/types'>; -} -declare module 'vega-embed/build/src/util.js' { - declare module.exports: $Exports<'vega-embed/build/src/util'>; -} -declare module 'vega-embed/build/vega-embed.js' { - declare module.exports: $Exports<'vega-embed/build/vega-embed'>; -} -declare module 'vega-embed/build/vega-embed.min.js' { - declare module.exports: $Exports<'vega-embed/build/vega-embed.min'>; -} diff --git a/flow-typed/npm/vega-lite_vx.x.x.js b/flow-typed/npm/vega-lite_vx.x.x.js deleted file mode 100644 index d6714ca9c..000000000 --- a/flow-typed/npm/vega-lite_vx.x.x.js +++ /dev/null @@ -1,1330 +0,0 @@ -// flow-typed signature: 35f04f278b1e0d772f35402f639ac633 -// flow-typed version: <>/vega-lite_v^4.0.0-beta.10/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'vega-lite' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'vega-lite' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'vega-lite/babel.config' { - declare module.exports: any; -} - -declare module 'vega-lite/build-es5/vega-lite' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/aggregate' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/axis' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/bin' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/channel' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/channeldef' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/axis/assemble' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/axis/component' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/axis/config' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/axis/encode' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/axis/parse' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/axis/properties' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/buildmodel' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/common' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/compile' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/concat' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/aggregate' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/assemble' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/bin' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/calculate' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/dataflow' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/debug' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/density' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/expressions' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/facet' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/filter' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/filterinvalid' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/flatten' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/fold' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/formatparse' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/geojson' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/geopoint' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/graticule' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/identifier' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/impute' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/joinaggregate' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/joinaggregatefacet' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/loess' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/lookup' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/optimize' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/optimizer' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/optimizers' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/parse' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/pivot' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/quantile' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/regression' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/sample' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/sequence' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/source' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/stack' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/timeunit' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/data/window' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/facet' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/format' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/guide' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/header/assemble' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/header/common' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/header/component' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/header/parse' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/layer' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/layoutsize/assemble' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/layoutsize/component' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/layoutsize/init' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/layoutsize/parse' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/legend/assemble' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/legend/component' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/legend/encode' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/legend/parse' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/legend/properties' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/arc' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/area' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/bar' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/base' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/encode/aria' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/encode/base' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/encode/color' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/encode/conditional' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/encode/defined' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/encode' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/encode/nonposition' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/encode/offset' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/encode/position-align' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/encode/position-point' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/encode/position-range' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/encode/position-rect' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/encode/text' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/encode/tooltip' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/encode/valueref' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/encode/zindex' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/geoshape' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/image' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/init' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/line' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/mark' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/point' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/rect' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/rule' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/text' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/mark/tick' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/model' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/predicate' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/projection/assemble' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/projection/component' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/projection/parse' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/resolve' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/scale/assemble' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/scale/component' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/scale/domain' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/scale/parse' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/scale/properties' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/scale/range' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/scale/type' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/selection/assemble' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/selection' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/selection/interval' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/selection/multi' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/selection/parse' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/selection/single' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/selection/transforms/clear' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/selection/transforms/inputs' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/selection/transforms/legends' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/selection/transforms/nearest' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/selection/transforms/project' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/selection/transforms/scales' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/selection/transforms/toggle' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/selection/transforms/transforms' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/selection/transforms/translate' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/selection/transforms/zoom' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/signal' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/split' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compile/unit' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compositemark/base' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compositemark/boxplot' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compositemark/common' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compositemark/errorband' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compositemark/errorbar' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/compositemark' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/config' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/data' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/datetime' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/encoding' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/guide' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/header' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/impute' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/legend' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/log' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/log/message' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/logical' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/mark' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/normalize/base' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/normalize/core' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/normalize' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/normalize/pathoverlay' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/normalize/rangestep' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/normalize/repeater' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/normalize/ruleforrangedline' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/predicate' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/projection' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/resolve' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/scale' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/selection' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/sort' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/spec/base' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/spec/concat' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/spec/facet' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/spec' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/spec/layer' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/spec/map' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/spec/repeat' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/spec/toplevel' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/spec/unit' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/stack' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/timeunit' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/title' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/transform' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/type' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/util' { - declare module.exports: any; -} - -declare module 'vega-lite/build/src/vega.schema' { - declare module.exports: any; -} - -declare module 'vega-lite/build/vega-lite' { - declare module.exports: any; -} - -declare module 'vega-lite/build/vega-lite.min' { - declare module.exports: any; -} - -// Filename aliases -declare module 'vega-lite/babel.config.js' { - declare module.exports: $Exports<'vega-lite/babel.config'>; -} -declare module 'vega-lite/build-es5/vega-lite.js' { - declare module.exports: $Exports<'vega-lite/build-es5/vega-lite'>; -} -declare module 'vega-lite/build/src/aggregate.js' { - declare module.exports: $Exports<'vega-lite/build/src/aggregate'>; -} -declare module 'vega-lite/build/src/axis.js' { - declare module.exports: $Exports<'vega-lite/build/src/axis'>; -} -declare module 'vega-lite/build/src/bin.js' { - declare module.exports: $Exports<'vega-lite/build/src/bin'>; -} -declare module 'vega-lite/build/src/channel.js' { - declare module.exports: $Exports<'vega-lite/build/src/channel'>; -} -declare module 'vega-lite/build/src/channeldef.js' { - declare module.exports: $Exports<'vega-lite/build/src/channeldef'>; -} -declare module 'vega-lite/build/src/compile/axis/assemble.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/axis/assemble'>; -} -declare module 'vega-lite/build/src/compile/axis/component.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/axis/component'>; -} -declare module 'vega-lite/build/src/compile/axis/config.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/axis/config'>; -} -declare module 'vega-lite/build/src/compile/axis/encode.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/axis/encode'>; -} -declare module 'vega-lite/build/src/compile/axis/parse.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/axis/parse'>; -} -declare module 'vega-lite/build/src/compile/axis/properties.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/axis/properties'>; -} -declare module 'vega-lite/build/src/compile/buildmodel.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/buildmodel'>; -} -declare module 'vega-lite/build/src/compile/common.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/common'>; -} -declare module 'vega-lite/build/src/compile/compile.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/compile'>; -} -declare module 'vega-lite/build/src/compile/concat.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/concat'>; -} -declare module 'vega-lite/build/src/compile/data/aggregate.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/aggregate'>; -} -declare module 'vega-lite/build/src/compile/data/assemble.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/assemble'>; -} -declare module 'vega-lite/build/src/compile/data/bin.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/bin'>; -} -declare module 'vega-lite/build/src/compile/data/calculate.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/calculate'>; -} -declare module 'vega-lite/build/src/compile/data/dataflow.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/dataflow'>; -} -declare module 'vega-lite/build/src/compile/data/debug.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/debug'>; -} -declare module 'vega-lite/build/src/compile/data/density.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/density'>; -} -declare module 'vega-lite/build/src/compile/data/expressions.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/expressions'>; -} -declare module 'vega-lite/build/src/compile/data/facet.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/facet'>; -} -declare module 'vega-lite/build/src/compile/data/filter.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/filter'>; -} -declare module 'vega-lite/build/src/compile/data/filterinvalid.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/filterinvalid'>; -} -declare module 'vega-lite/build/src/compile/data/flatten.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/flatten'>; -} -declare module 'vega-lite/build/src/compile/data/fold.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/fold'>; -} -declare module 'vega-lite/build/src/compile/data/formatparse.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/formatparse'>; -} -declare module 'vega-lite/build/src/compile/data/geojson.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/geojson'>; -} -declare module 'vega-lite/build/src/compile/data/geopoint.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/geopoint'>; -} -declare module 'vega-lite/build/src/compile/data/graticule.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/graticule'>; -} -declare module 'vega-lite/build/src/compile/data/identifier.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/identifier'>; -} -declare module 'vega-lite/build/src/compile/data/impute.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/impute'>; -} -declare module 'vega-lite/build/src/compile/data/index' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data'>; -} -declare module 'vega-lite/build/src/compile/data/index.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data'>; -} -declare module 'vega-lite/build/src/compile/data/joinaggregate.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/joinaggregate'>; -} -declare module 'vega-lite/build/src/compile/data/joinaggregatefacet.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/joinaggregatefacet'>; -} -declare module 'vega-lite/build/src/compile/data/loess.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/loess'>; -} -declare module 'vega-lite/build/src/compile/data/lookup.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/lookup'>; -} -declare module 'vega-lite/build/src/compile/data/optimize.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/optimize'>; -} -declare module 'vega-lite/build/src/compile/data/optimizer.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/optimizer'>; -} -declare module 'vega-lite/build/src/compile/data/optimizers.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/optimizers'>; -} -declare module 'vega-lite/build/src/compile/data/parse.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/parse'>; -} -declare module 'vega-lite/build/src/compile/data/pivot.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/pivot'>; -} -declare module 'vega-lite/build/src/compile/data/quantile.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/quantile'>; -} -declare module 'vega-lite/build/src/compile/data/regression.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/regression'>; -} -declare module 'vega-lite/build/src/compile/data/sample.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/sample'>; -} -declare module 'vega-lite/build/src/compile/data/sequence.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/sequence'>; -} -declare module 'vega-lite/build/src/compile/data/source.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/source'>; -} -declare module 'vega-lite/build/src/compile/data/stack.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/stack'>; -} -declare module 'vega-lite/build/src/compile/data/timeunit.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/timeunit'>; -} -declare module 'vega-lite/build/src/compile/data/window.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/data/window'>; -} -declare module 'vega-lite/build/src/compile/facet.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/facet'>; -} -declare module 'vega-lite/build/src/compile/format.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/format'>; -} -declare module 'vega-lite/build/src/compile/guide.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/guide'>; -} -declare module 'vega-lite/build/src/compile/header/assemble.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/header/assemble'>; -} -declare module 'vega-lite/build/src/compile/header/common.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/header/common'>; -} -declare module 'vega-lite/build/src/compile/header/component.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/header/component'>; -} -declare module 'vega-lite/build/src/compile/header/parse.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/header/parse'>; -} -declare module 'vega-lite/build/src/compile/layer.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/layer'>; -} -declare module 'vega-lite/build/src/compile/layoutsize/assemble.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/layoutsize/assemble'>; -} -declare module 'vega-lite/build/src/compile/layoutsize/component.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/layoutsize/component'>; -} -declare module 'vega-lite/build/src/compile/layoutsize/init.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/layoutsize/init'>; -} -declare module 'vega-lite/build/src/compile/layoutsize/parse.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/layoutsize/parse'>; -} -declare module 'vega-lite/build/src/compile/legend/assemble.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/legend/assemble'>; -} -declare module 'vega-lite/build/src/compile/legend/component.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/legend/component'>; -} -declare module 'vega-lite/build/src/compile/legend/encode.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/legend/encode'>; -} -declare module 'vega-lite/build/src/compile/legend/parse.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/legend/parse'>; -} -declare module 'vega-lite/build/src/compile/legend/properties.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/legend/properties'>; -} -declare module 'vega-lite/build/src/compile/mark/arc.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/arc'>; -} -declare module 'vega-lite/build/src/compile/mark/area.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/area'>; -} -declare module 'vega-lite/build/src/compile/mark/bar.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/bar'>; -} -declare module 'vega-lite/build/src/compile/mark/base.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/base'>; -} -declare module 'vega-lite/build/src/compile/mark/encode/aria.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/encode/aria'>; -} -declare module 'vega-lite/build/src/compile/mark/encode/base.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/encode/base'>; -} -declare module 'vega-lite/build/src/compile/mark/encode/color.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/encode/color'>; -} -declare module 'vega-lite/build/src/compile/mark/encode/conditional.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/encode/conditional'>; -} -declare module 'vega-lite/build/src/compile/mark/encode/defined.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/encode/defined'>; -} -declare module 'vega-lite/build/src/compile/mark/encode/index' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/encode'>; -} -declare module 'vega-lite/build/src/compile/mark/encode/index.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/encode'>; -} -declare module 'vega-lite/build/src/compile/mark/encode/nonposition.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/encode/nonposition'>; -} -declare module 'vega-lite/build/src/compile/mark/encode/offset.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/encode/offset'>; -} -declare module 'vega-lite/build/src/compile/mark/encode/position-align.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/encode/position-align'>; -} -declare module 'vega-lite/build/src/compile/mark/encode/position-point.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/encode/position-point'>; -} -declare module 'vega-lite/build/src/compile/mark/encode/position-range.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/encode/position-range'>; -} -declare module 'vega-lite/build/src/compile/mark/encode/position-rect.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/encode/position-rect'>; -} -declare module 'vega-lite/build/src/compile/mark/encode/text.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/encode/text'>; -} -declare module 'vega-lite/build/src/compile/mark/encode/tooltip.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/encode/tooltip'>; -} -declare module 'vega-lite/build/src/compile/mark/encode/valueref.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/encode/valueref'>; -} -declare module 'vega-lite/build/src/compile/mark/encode/zindex.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/encode/zindex'>; -} -declare module 'vega-lite/build/src/compile/mark/geoshape.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/geoshape'>; -} -declare module 'vega-lite/build/src/compile/mark/image.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/image'>; -} -declare module 'vega-lite/build/src/compile/mark/init.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/init'>; -} -declare module 'vega-lite/build/src/compile/mark/line.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/line'>; -} -declare module 'vega-lite/build/src/compile/mark/mark.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/mark'>; -} -declare module 'vega-lite/build/src/compile/mark/point.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/point'>; -} -declare module 'vega-lite/build/src/compile/mark/rect.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/rect'>; -} -declare module 'vega-lite/build/src/compile/mark/rule.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/rule'>; -} -declare module 'vega-lite/build/src/compile/mark/text.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/text'>; -} -declare module 'vega-lite/build/src/compile/mark/tick.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/mark/tick'>; -} -declare module 'vega-lite/build/src/compile/model.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/model'>; -} -declare module 'vega-lite/build/src/compile/predicate.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/predicate'>; -} -declare module 'vega-lite/build/src/compile/projection/assemble.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/projection/assemble'>; -} -declare module 'vega-lite/build/src/compile/projection/component.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/projection/component'>; -} -declare module 'vega-lite/build/src/compile/projection/parse.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/projection/parse'>; -} -declare module 'vega-lite/build/src/compile/resolve.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/resolve'>; -} -declare module 'vega-lite/build/src/compile/scale/assemble.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/scale/assemble'>; -} -declare module 'vega-lite/build/src/compile/scale/component.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/scale/component'>; -} -declare module 'vega-lite/build/src/compile/scale/domain.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/scale/domain'>; -} -declare module 'vega-lite/build/src/compile/scale/parse.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/scale/parse'>; -} -declare module 'vega-lite/build/src/compile/scale/properties.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/scale/properties'>; -} -declare module 'vega-lite/build/src/compile/scale/range.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/scale/range'>; -} -declare module 'vega-lite/build/src/compile/scale/type.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/scale/type'>; -} -declare module 'vega-lite/build/src/compile/selection/assemble.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/selection/assemble'>; -} -declare module 'vega-lite/build/src/compile/selection/index' { - declare module.exports: $Exports<'vega-lite/build/src/compile/selection'>; -} -declare module 'vega-lite/build/src/compile/selection/index.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/selection'>; -} -declare module 'vega-lite/build/src/compile/selection/interval.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/selection/interval'>; -} -declare module 'vega-lite/build/src/compile/selection/multi.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/selection/multi'>; -} -declare module 'vega-lite/build/src/compile/selection/parse.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/selection/parse'>; -} -declare module 'vega-lite/build/src/compile/selection/single.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/selection/single'>; -} -declare module 'vega-lite/build/src/compile/selection/transforms/clear.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/selection/transforms/clear'>; -} -declare module 'vega-lite/build/src/compile/selection/transforms/inputs.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/selection/transforms/inputs'>; -} -declare module 'vega-lite/build/src/compile/selection/transforms/legends.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/selection/transforms/legends'>; -} -declare module 'vega-lite/build/src/compile/selection/transforms/nearest.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/selection/transforms/nearest'>; -} -declare module 'vega-lite/build/src/compile/selection/transforms/project.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/selection/transforms/project'>; -} -declare module 'vega-lite/build/src/compile/selection/transforms/scales.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/selection/transforms/scales'>; -} -declare module 'vega-lite/build/src/compile/selection/transforms/toggle.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/selection/transforms/toggle'>; -} -declare module 'vega-lite/build/src/compile/selection/transforms/transforms.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/selection/transforms/transforms'>; -} -declare module 'vega-lite/build/src/compile/selection/transforms/translate.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/selection/transforms/translate'>; -} -declare module 'vega-lite/build/src/compile/selection/transforms/zoom.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/selection/transforms/zoom'>; -} -declare module 'vega-lite/build/src/compile/signal.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/signal'>; -} -declare module 'vega-lite/build/src/compile/split.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/split'>; -} -declare module 'vega-lite/build/src/compile/unit.js' { - declare module.exports: $Exports<'vega-lite/build/src/compile/unit'>; -} -declare module 'vega-lite/build/src/compositemark/base.js' { - declare module.exports: $Exports<'vega-lite/build/src/compositemark/base'>; -} -declare module 'vega-lite/build/src/compositemark/boxplot.js' { - declare module.exports: $Exports<'vega-lite/build/src/compositemark/boxplot'>; -} -declare module 'vega-lite/build/src/compositemark/common.js' { - declare module.exports: $Exports<'vega-lite/build/src/compositemark/common'>; -} -declare module 'vega-lite/build/src/compositemark/errorband.js' { - declare module.exports: $Exports<'vega-lite/build/src/compositemark/errorband'>; -} -declare module 'vega-lite/build/src/compositemark/errorbar.js' { - declare module.exports: $Exports<'vega-lite/build/src/compositemark/errorbar'>; -} -declare module 'vega-lite/build/src/compositemark/index' { - declare module.exports: $Exports<'vega-lite/build/src/compositemark'>; -} -declare module 'vega-lite/build/src/compositemark/index.js' { - declare module.exports: $Exports<'vega-lite/build/src/compositemark'>; -} -declare module 'vega-lite/build/src/config.js' { - declare module.exports: $Exports<'vega-lite/build/src/config'>; -} -declare module 'vega-lite/build/src/data.js' { - declare module.exports: $Exports<'vega-lite/build/src/data'>; -} -declare module 'vega-lite/build/src/datetime.js' { - declare module.exports: $Exports<'vega-lite/build/src/datetime'>; -} -declare module 'vega-lite/build/src/encoding.js' { - declare module.exports: $Exports<'vega-lite/build/src/encoding'>; -} -declare module 'vega-lite/build/src/guide.js' { - declare module.exports: $Exports<'vega-lite/build/src/guide'>; -} -declare module 'vega-lite/build/src/header.js' { - declare module.exports: $Exports<'vega-lite/build/src/header'>; -} -declare module 'vega-lite/build/src/impute.js' { - declare module.exports: $Exports<'vega-lite/build/src/impute'>; -} -declare module 'vega-lite/build/src/index' { - declare module.exports: $Exports<'vega-lite/build/src'>; -} -declare module 'vega-lite/build/src/index.js' { - declare module.exports: $Exports<'vega-lite/build/src'>; -} -declare module 'vega-lite/build/src/legend.js' { - declare module.exports: $Exports<'vega-lite/build/src/legend'>; -} -declare module 'vega-lite/build/src/log/index' { - declare module.exports: $Exports<'vega-lite/build/src/log'>; -} -declare module 'vega-lite/build/src/log/index.js' { - declare module.exports: $Exports<'vega-lite/build/src/log'>; -} -declare module 'vega-lite/build/src/log/message.js' { - declare module.exports: $Exports<'vega-lite/build/src/log/message'>; -} -declare module 'vega-lite/build/src/logical.js' { - declare module.exports: $Exports<'vega-lite/build/src/logical'>; -} -declare module 'vega-lite/build/src/mark.js' { - declare module.exports: $Exports<'vega-lite/build/src/mark'>; -} -declare module 'vega-lite/build/src/normalize/base.js' { - declare module.exports: $Exports<'vega-lite/build/src/normalize/base'>; -} -declare module 'vega-lite/build/src/normalize/core.js' { - declare module.exports: $Exports<'vega-lite/build/src/normalize/core'>; -} -declare module 'vega-lite/build/src/normalize/index' { - declare module.exports: $Exports<'vega-lite/build/src/normalize'>; -} -declare module 'vega-lite/build/src/normalize/index.js' { - declare module.exports: $Exports<'vega-lite/build/src/normalize'>; -} -declare module 'vega-lite/build/src/normalize/pathoverlay.js' { - declare module.exports: $Exports<'vega-lite/build/src/normalize/pathoverlay'>; -} -declare module 'vega-lite/build/src/normalize/rangestep.js' { - declare module.exports: $Exports<'vega-lite/build/src/normalize/rangestep'>; -} -declare module 'vega-lite/build/src/normalize/repeater.js' { - declare module.exports: $Exports<'vega-lite/build/src/normalize/repeater'>; -} -declare module 'vega-lite/build/src/normalize/ruleforrangedline.js' { - declare module.exports: $Exports<'vega-lite/build/src/normalize/ruleforrangedline'>; -} -declare module 'vega-lite/build/src/predicate.js' { - declare module.exports: $Exports<'vega-lite/build/src/predicate'>; -} -declare module 'vega-lite/build/src/projection.js' { - declare module.exports: $Exports<'vega-lite/build/src/projection'>; -} -declare module 'vega-lite/build/src/resolve.js' { - declare module.exports: $Exports<'vega-lite/build/src/resolve'>; -} -declare module 'vega-lite/build/src/scale.js' { - declare module.exports: $Exports<'vega-lite/build/src/scale'>; -} -declare module 'vega-lite/build/src/selection.js' { - declare module.exports: $Exports<'vega-lite/build/src/selection'>; -} -declare module 'vega-lite/build/src/sort.js' { - declare module.exports: $Exports<'vega-lite/build/src/sort'>; -} -declare module 'vega-lite/build/src/spec/base.js' { - declare module.exports: $Exports<'vega-lite/build/src/spec/base'>; -} -declare module 'vega-lite/build/src/spec/concat.js' { - declare module.exports: $Exports<'vega-lite/build/src/spec/concat'>; -} -declare module 'vega-lite/build/src/spec/facet.js' { - declare module.exports: $Exports<'vega-lite/build/src/spec/facet'>; -} -declare module 'vega-lite/build/src/spec/index' { - declare module.exports: $Exports<'vega-lite/build/src/spec'>; -} -declare module 'vega-lite/build/src/spec/index.js' { - declare module.exports: $Exports<'vega-lite/build/src/spec'>; -} -declare module 'vega-lite/build/src/spec/layer.js' { - declare module.exports: $Exports<'vega-lite/build/src/spec/layer'>; -} -declare module 'vega-lite/build/src/spec/map.js' { - declare module.exports: $Exports<'vega-lite/build/src/spec/map'>; -} -declare module 'vega-lite/build/src/spec/repeat.js' { - declare module.exports: $Exports<'vega-lite/build/src/spec/repeat'>; -} -declare module 'vega-lite/build/src/spec/toplevel.js' { - declare module.exports: $Exports<'vega-lite/build/src/spec/toplevel'>; -} -declare module 'vega-lite/build/src/spec/unit.js' { - declare module.exports: $Exports<'vega-lite/build/src/spec/unit'>; -} -declare module 'vega-lite/build/src/stack.js' { - declare module.exports: $Exports<'vega-lite/build/src/stack'>; -} -declare module 'vega-lite/build/src/timeunit.js' { - declare module.exports: $Exports<'vega-lite/build/src/timeunit'>; -} -declare module 'vega-lite/build/src/title.js' { - declare module.exports: $Exports<'vega-lite/build/src/title'>; -} -declare module 'vega-lite/build/src/transform.js' { - declare module.exports: $Exports<'vega-lite/build/src/transform'>; -} -declare module 'vega-lite/build/src/type.js' { - declare module.exports: $Exports<'vega-lite/build/src/type'>; -} -declare module 'vega-lite/build/src/util.js' { - declare module.exports: $Exports<'vega-lite/build/src/util'>; -} -declare module 'vega-lite/build/src/vega.schema.js' { - declare module.exports: $Exports<'vega-lite/build/src/vega.schema'>; -} -declare module 'vega-lite/build/vega-lite.js' { - declare module.exports: $Exports<'vega-lite/build/vega-lite'>; -} -declare module 'vega-lite/build/vega-lite.min.js' { - declare module.exports: $Exports<'vega-lite/build/vega-lite.min'>; -} diff --git a/flow-typed/npm/vega_vx.x.x.js b/flow-typed/npm/vega_vx.x.x.js deleted file mode 100644 index ea87affd4..000000000 --- a/flow-typed/npm/vega_vx.x.x.js +++ /dev/null @@ -1,115 +0,0 @@ -// flow-typed signature: e57516059de00206ff49e016df09f203 -// flow-typed version: <>/vega_v^5.7.3/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'vega' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'vega' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'vega/build-es5/vega-core' { - declare module.exports: any; -} - -declare module 'vega/build-es5/vega-core.min' { - declare module.exports: any; -} - -declare module 'vega/build-es5/vega-module' { - declare module.exports: any; -} - -declare module 'vega/build-es5/vega-node' { - declare module.exports: any; -} - -declare module 'vega/build-es5/vega' { - declare module.exports: any; -} - -declare module 'vega/build-es5/vega.min' { - declare module.exports: any; -} - -declare module 'vega/build/vega-core' { - declare module.exports: any; -} - -declare module 'vega/build/vega-core.min' { - declare module.exports: any; -} - -declare module 'vega/build/vega-module' { - declare module.exports: any; -} - -declare module 'vega/build/vega-node' { - declare module.exports: any; -} - -declare module 'vega/build/vega' { - declare module.exports: any; -} - -declare module 'vega/build/vega.min' { - declare module.exports: any; -} - -// Filename aliases -declare module 'vega/build-es5/vega-core.js' { - declare module.exports: $Exports<'vega/build-es5/vega-core'>; -} -declare module 'vega/build-es5/vega-core.min.js' { - declare module.exports: $Exports<'vega/build-es5/vega-core.min'>; -} -declare module 'vega/build-es5/vega-module.js' { - declare module.exports: $Exports<'vega/build-es5/vega-module'>; -} -declare module 'vega/build-es5/vega-node.js' { - declare module.exports: $Exports<'vega/build-es5/vega-node'>; -} -declare module 'vega/build-es5/vega.js' { - declare module.exports: $Exports<'vega/build-es5/vega'>; -} -declare module 'vega/build-es5/vega.min.js' { - declare module.exports: $Exports<'vega/build-es5/vega.min'>; -} -declare module 'vega/build/vega-core.js' { - declare module.exports: $Exports<'vega/build/vega-core'>; -} -declare module 'vega/build/vega-core.min.js' { - declare module.exports: $Exports<'vega/build/vega-core.min'>; -} -declare module 'vega/build/vega-module.js' { - declare module.exports: $Exports<'vega/build/vega-module'>; -} -declare module 'vega/build/vega-node.js' { - declare module.exports: $Exports<'vega/build/vega-node'>; -} -declare module 'vega/build/vega.js' { - declare module.exports: $Exports<'vega/build/vega'>; -} -declare module 'vega/build/vega.min.js' { - declare module.exports: $Exports<'vega/build/vega.min'>; -} -declare module 'vega/index' { - declare module.exports: $Exports<'vega'>; -} -declare module 'vega/index.js' { - declare module.exports: $Exports<'vega'>; -} diff --git a/flow-typed/npm/webpack-cli_vx.x.x.js b/flow-typed/npm/webpack-cli_vx.x.x.js deleted file mode 100644 index de3739bb4..000000000 --- a/flow-typed/npm/webpack-cli_vx.x.x.js +++ /dev/null @@ -1,81 +0,0 @@ -// flow-typed signature: 5a2ec996d3beb383cf6a94b7851846cc -// flow-typed version: <>/webpack-cli_v^3.3.10/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'webpack-cli' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'webpack-cli' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'webpack-cli/bin/cli' { - declare module.exports: any; -} - -declare module 'webpack-cli/bin/config/config-yargs' { - declare module.exports: any; -} - -declare module 'webpack-cli/bin/utils/constants' { - declare module.exports: any; -} - -declare module 'webpack-cli/bin/utils/convert-argv' { - declare module.exports: any; -} - -declare module 'webpack-cli/bin/utils/errorHelpers' { - declare module.exports: any; -} - -declare module 'webpack-cli/bin/utils/prepareOptions' { - declare module.exports: any; -} - -declare module 'webpack-cli/bin/utils/prompt-command' { - declare module.exports: any; -} - -declare module 'webpack-cli/bin/utils/validate-options' { - declare module.exports: any; -} - -// Filename aliases -declare module 'webpack-cli/bin/cli.js' { - declare module.exports: $Exports<'webpack-cli/bin/cli'>; -} -declare module 'webpack-cli/bin/config/config-yargs.js' { - declare module.exports: $Exports<'webpack-cli/bin/config/config-yargs'>; -} -declare module 'webpack-cli/bin/utils/constants.js' { - declare module.exports: $Exports<'webpack-cli/bin/utils/constants'>; -} -declare module 'webpack-cli/bin/utils/convert-argv.js' { - declare module.exports: $Exports<'webpack-cli/bin/utils/convert-argv'>; -} -declare module 'webpack-cli/bin/utils/errorHelpers.js' { - declare module.exports: $Exports<'webpack-cli/bin/utils/errorHelpers'>; -} -declare module 'webpack-cli/bin/utils/prepareOptions.js' { - declare module.exports: $Exports<'webpack-cli/bin/utils/prepareOptions'>; -} -declare module 'webpack-cli/bin/utils/prompt-command.js' { - declare module.exports: $Exports<'webpack-cli/bin/utils/prompt-command'>; -} -declare module 'webpack-cli/bin/utils/validate-options.js' { - declare module.exports: $Exports<'webpack-cli/bin/utils/validate-options'>; -} diff --git a/flow-typed/npm/webpack-dev-server_vx.x.x.js b/flow-typed/npm/webpack-dev-server_vx.x.x.js deleted file mode 100644 index 7b6eb2719..000000000 --- a/flow-typed/npm/webpack-dev-server_vx.x.x.js +++ /dev/null @@ -1,329 +0,0 @@ -// flow-typed signature: 2e7458abb60bc8bba512296162c3a3a2 -// flow-typed version: <>/webpack-dev-server_v^3.10.3/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'webpack-dev-server' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'webpack-dev-server' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'webpack-dev-server/bin/cli-flags' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/bin/options' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/bin/webpack-dev-server' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/client/clients/BaseClient' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/client/clients/SockJSClient' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/client/clients/WebsocketClient' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/client/index.bundle' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/client' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/client/live.bundle' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/client/overlay' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/client/socket' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/client/sockjs.bundle' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/client/utils/createSocketUrl' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/client/utils/getCurrentScriptSource' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/client/utils/log' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/client/utils/reloadApp' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/client/utils/sendMessage' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/Server' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/servers/BaseServer' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/servers/SockJSServer' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/servers/WebsocketServer' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/utils/addEntries' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/utils/colors' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/utils/createCertificate' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/utils/createConfig' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/utils/createDomain' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/utils/createLogger' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/utils/defaultPort' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/utils/defaultTo' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/utils/findPort' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/utils/getCertificate' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/utils/getSocketClientPath' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/utils/getSocketServerImplementation' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/utils/getVersions' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/utils/normalizeOptions' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/utils/processOptions' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/utils/routes' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/utils/runBonjour' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/utils/runOpen' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/utils/setupExitSignals' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/utils/status' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/utils/tryParseInt' { - declare module.exports: any; -} - -declare module 'webpack-dev-server/lib/utils/updateCompiler' { - declare module.exports: any; -} - -// Filename aliases -declare module 'webpack-dev-server/bin/cli-flags.js' { - declare module.exports: $Exports<'webpack-dev-server/bin/cli-flags'>; -} -declare module 'webpack-dev-server/bin/options.js' { - declare module.exports: $Exports<'webpack-dev-server/bin/options'>; -} -declare module 'webpack-dev-server/bin/webpack-dev-server.js' { - declare module.exports: $Exports<'webpack-dev-server/bin/webpack-dev-server'>; -} -declare module 'webpack-dev-server/client/clients/BaseClient.js' { - declare module.exports: $Exports<'webpack-dev-server/client/clients/BaseClient'>; -} -declare module 'webpack-dev-server/client/clients/SockJSClient.js' { - declare module.exports: $Exports<'webpack-dev-server/client/clients/SockJSClient'>; -} -declare module 'webpack-dev-server/client/clients/WebsocketClient.js' { - declare module.exports: $Exports<'webpack-dev-server/client/clients/WebsocketClient'>; -} -declare module 'webpack-dev-server/client/index.bundle.js' { - declare module.exports: $Exports<'webpack-dev-server/client/index.bundle'>; -} -declare module 'webpack-dev-server/client/index' { - declare module.exports: $Exports<'webpack-dev-server/client'>; -} -declare module 'webpack-dev-server/client/index.js' { - declare module.exports: $Exports<'webpack-dev-server/client'>; -} -declare module 'webpack-dev-server/client/live.bundle.js' { - declare module.exports: $Exports<'webpack-dev-server/client/live.bundle'>; -} -declare module 'webpack-dev-server/client/overlay.js' { - declare module.exports: $Exports<'webpack-dev-server/client/overlay'>; -} -declare module 'webpack-dev-server/client/socket.js' { - declare module.exports: $Exports<'webpack-dev-server/client/socket'>; -} -declare module 'webpack-dev-server/client/sockjs.bundle.js' { - declare module.exports: $Exports<'webpack-dev-server/client/sockjs.bundle'>; -} -declare module 'webpack-dev-server/client/utils/createSocketUrl.js' { - declare module.exports: $Exports<'webpack-dev-server/client/utils/createSocketUrl'>; -} -declare module 'webpack-dev-server/client/utils/getCurrentScriptSource.js' { - declare module.exports: $Exports<'webpack-dev-server/client/utils/getCurrentScriptSource'>; -} -declare module 'webpack-dev-server/client/utils/log.js' { - declare module.exports: $Exports<'webpack-dev-server/client/utils/log'>; -} -declare module 'webpack-dev-server/client/utils/reloadApp.js' { - declare module.exports: $Exports<'webpack-dev-server/client/utils/reloadApp'>; -} -declare module 'webpack-dev-server/client/utils/sendMessage.js' { - declare module.exports: $Exports<'webpack-dev-server/client/utils/sendMessage'>; -} -declare module 'webpack-dev-server/lib/Server.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/Server'>; -} -declare module 'webpack-dev-server/lib/servers/BaseServer.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/servers/BaseServer'>; -} -declare module 'webpack-dev-server/lib/servers/SockJSServer.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/servers/SockJSServer'>; -} -declare module 'webpack-dev-server/lib/servers/WebsocketServer.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/servers/WebsocketServer'>; -} -declare module 'webpack-dev-server/lib/utils/addEntries.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/utils/addEntries'>; -} -declare module 'webpack-dev-server/lib/utils/colors.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/utils/colors'>; -} -declare module 'webpack-dev-server/lib/utils/createCertificate.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/utils/createCertificate'>; -} -declare module 'webpack-dev-server/lib/utils/createConfig.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/utils/createConfig'>; -} -declare module 'webpack-dev-server/lib/utils/createDomain.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/utils/createDomain'>; -} -declare module 'webpack-dev-server/lib/utils/createLogger.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/utils/createLogger'>; -} -declare module 'webpack-dev-server/lib/utils/defaultPort.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/utils/defaultPort'>; -} -declare module 'webpack-dev-server/lib/utils/defaultTo.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/utils/defaultTo'>; -} -declare module 'webpack-dev-server/lib/utils/findPort.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/utils/findPort'>; -} -declare module 'webpack-dev-server/lib/utils/getCertificate.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/utils/getCertificate'>; -} -declare module 'webpack-dev-server/lib/utils/getSocketClientPath.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/utils/getSocketClientPath'>; -} -declare module 'webpack-dev-server/lib/utils/getSocketServerImplementation.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/utils/getSocketServerImplementation'>; -} -declare module 'webpack-dev-server/lib/utils/getVersions.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/utils/getVersions'>; -} -declare module 'webpack-dev-server/lib/utils/normalizeOptions.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/utils/normalizeOptions'>; -} -declare module 'webpack-dev-server/lib/utils/processOptions.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/utils/processOptions'>; -} -declare module 'webpack-dev-server/lib/utils/routes.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/utils/routes'>; -} -declare module 'webpack-dev-server/lib/utils/runBonjour.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/utils/runBonjour'>; -} -declare module 'webpack-dev-server/lib/utils/runOpen.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/utils/runOpen'>; -} -declare module 'webpack-dev-server/lib/utils/setupExitSignals.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/utils/setupExitSignals'>; -} -declare module 'webpack-dev-server/lib/utils/status.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/utils/status'>; -} -declare module 'webpack-dev-server/lib/utils/tryParseInt.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/utils/tryParseInt'>; -} -declare module 'webpack-dev-server/lib/utils/updateCompiler.js' { - declare module.exports: $Exports<'webpack-dev-server/lib/utils/updateCompiler'>; -} diff --git a/flow-typed/npm/webpack-merge_vx.x.x.js b/flow-typed/npm/webpack-merge_vx.x.x.js deleted file mode 100644 index 510f4b8aa..000000000 --- a/flow-typed/npm/webpack-merge_vx.x.x.js +++ /dev/null @@ -1,63 +0,0 @@ -// flow-typed signature: 63321cdcd312d2a641051b613e0438c9 -// flow-typed version: <>/webpack-merge_v^4.2.2/flow_v0.118.0 - -/** - * This is an autogenerated libdef stub for: - * - * 'webpack-merge' - * - * Fill this stub out by replacing all the `any` types. - * - * Once filled out, we encourage you to share your work with the - * community by sending a pull request to: - * https://github.com/flowtype/flow-typed - */ - -declare module 'webpack-merge' { - declare module.exports: any; -} - -/** - * We include stubs for each file inside this npm package in case you need to - * require those files directly. Feel free to delete any files that aren't - * needed. - */ -declare module 'webpack-merge/lib' { - declare module.exports: any; -} - -declare module 'webpack-merge/lib/join-arrays-smart' { - declare module.exports: any; -} - -declare module 'webpack-merge/lib/join-arrays' { - declare module.exports: any; -} - -declare module 'webpack-merge/lib/types' { - declare module.exports: any; -} - -declare module 'webpack-merge/lib/unique' { - declare module.exports: any; -} - -// Filename aliases -declare module 'webpack-merge/lib/index' { - declare module.exports: $Exports<'webpack-merge/lib'>; -} -declare module 'webpack-merge/lib/index.js' { - declare module.exports: $Exports<'webpack-merge/lib'>; -} -declare module 'webpack-merge/lib/join-arrays-smart.js' { - declare module.exports: $Exports<'webpack-merge/lib/join-arrays-smart'>; -} -declare module 'webpack-merge/lib/join-arrays.js' { - declare module.exports: $Exports<'webpack-merge/lib/join-arrays'>; -} -declare module 'webpack-merge/lib/types.js' { - declare module.exports: $Exports<'webpack-merge/lib/types'>; -} -declare module 'webpack-merge/lib/unique.js' { - declare module.exports: $Exports<'webpack-merge/lib/unique'>; -} diff --git a/flow-typed/npm/webpack_v4.x.x.js b/flow-typed/npm/webpack_v4.x.x.js deleted file mode 100644 index ab2f3db19..000000000 --- a/flow-typed/npm/webpack_v4.x.x.js +++ /dev/null @@ -1,692 +0,0 @@ -// flow-typed signature: a11323c6900f44e506402540d33781c2 -// flow-typed version: 7448070196/webpack_v4.x.x/flow_>=v0.104.x - -import * as http from 'http'; -import fs from 'fs'; - -declare module 'webpack' { - declare class $WebpackError extends Error { - constructor(message: string): WebpackError; - inspect(): string; - details: string; - } - - declare type WebpackError = $WebpackError; - - declare interface Stats { - hasErrors(): boolean; - hasWarnings(): boolean; - toJson(options?: StatsOptions): any; - toString(options?: { ...StatsOptions, colors?: boolean, ... }): string; - } - - declare type Callback = (error: WebpackError, stats: Stats) => void; - declare type WatchHandler = (error: WebpackError, stats: Stats) => void; - - declare type Watching = { - close(): void, - invalidate(): void, - ... - }; - - declare type WebpackCompiler = { - run(callback: Callback): void, - watch(options: WatchOptions, handler: WatchHandler): Watching, - ... - }; - - declare type WebpackMultiCompiler = { - run(callback: Callback): void, - watch(options: WatchOptions, handler: WatchHandler): Watching, - ... - }; - - declare class WebpackCompilation { - constructor(compiler: WebpackCompiler): WebpackCompilation; - // <...> - } - - declare class WebpackStats { - constructor(compilation: WebpackCompilation): WebpackStats; - // <...> - } - - declare type NonEmptyArrayOfUniqueStringValues = Array; - - declare type EntryObject = { [k: string]: string | NonEmptyArrayOfUniqueStringValues, ... }; - - declare type EntryItem = string | NonEmptyArrayOfUniqueStringValues; - - declare type EntryStatic = EntryObject | EntryItem; - - declare type EntryDynamic = () => EntryStatic | Promise; - - declare type Entry = EntryDynamic | EntryStatic; - - declare type ArrayOfStringValues = Array; - - declare type ExternalItem = - | string - | { [k: string]: - | string - | { [k: string]: any, ... } - | ArrayOfStringValues - | boolean, ... } - | RegExp; - - declare type Externals = - | (( - context: string, - request: string, - callback: (err?: Error, result?: string) => void - ) => void) - | ExternalItem - | Array< - | (( - context: string, - request: string, - callback: (err?: Error, result?: string) => void - ) => void) - | ExternalItem - >; - - declare type RuleSetCondition = - | RegExp - | string - | ((value: string) => boolean) - | RuleSetConditions - | { - and?: RuleSetConditions, - exclude?: RuleSetConditionOrConditions, - include?: RuleSetConditionOrConditions, - not?: RuleSetConditions, - or?: RuleSetConditions, - test?: RuleSetConditionOrConditions, - ... - }; - - declare type RuleSetConditions = Array; - - declare type RuleSetConditionOrConditions = - | RuleSetCondition - | RuleSetConditions; - - declare type RuleSetLoader = string; - - declare type RuleSetQuery = { [k: string]: any, ... } | string; - - declare type RuleSetUseItem = - | RuleSetLoader - | Function - | { - ident?: string, - loader?: RuleSetLoader, - options?: RuleSetQuery, - query?: RuleSetQuery, - ... - }; - - declare type RuleSetUse = RuleSetUseItem | Function | Array; - - declare type RuleSetRule = { - compiler?: RuleSetConditionOrConditions, - enforce?: 'pre' | 'post', - exclude?: RuleSetConditionOrConditions, - include?: RuleSetConditionOrConditions, - issuer?: RuleSetConditionOrConditions, - loader?: RuleSetLoader | RuleSetUse, - loaders?: RuleSetUse, - oneOf?: RuleSetRules, - options?: RuleSetQuery, - parser?: { [k: string]: any, ... }, - query?: RuleSetQuery, - resolve?: ResolveOptions, - resource?: RuleSetConditionOrConditions, - resourceQuery?: RuleSetConditionOrConditions, - rules?: RuleSetRules, - sideEffects?: boolean, - test?: RuleSetConditionOrConditions, - type?: - | 'javascript/auto' - | 'javascript/dynamic' - | 'javascript/esm' - | 'json' - | 'webassembly/experimental', - use?: RuleSetUse, - ... - }; - - declare type RuleSetRules = Array; - - declare type ModuleOptions = { - defaultRules?: RuleSetRules, - exprContextCritical?: boolean, - exprContextRecursive?: boolean, - exprContextRegExp?: boolean | RegExp, - exprContextRequest?: string, - noParse?: Array | RegExp | Function | Array | string, - rules?: RuleSetRules, - strictExportPresence?: boolean, - strictThisContextOnImports?: boolean, - unknownContextCritical?: boolean, - unknownContextRecursive?: boolean, - unknownContextRegExp?: boolean | RegExp, - unknownContextRequest?: string, - unsafeCache?: boolean | Function, - wrappedContextCritical?: boolean, - wrappedContextRecursive?: boolean, - wrappedContextRegExp?: RegExp, - ... - }; - - declare type NodeOptions = { - [k: string]: false | true | 'mock' | 'empty', - Buffer?: false | true | 'mock', - __dirname?: false | true | 'mock', - __filename?: false | true | 'mock', - console?: false | true | 'mock', - global?: boolean, - process?: false | true | 'mock', - ... - }; - - declare type WebpackPluginFunction = (compiler: WebpackCompiler) => void; - - declare type WebpackPluginInstance = { - [k: string]: any, - apply: WebpackPluginFunction, - ... - }; - - declare type OptimizationSplitChunksOptions = { - automaticNameDelimiter?: string, - cacheGroups?: { [k: string]: - | false - | Function - | string - | RegExp - | { - automaticNameDelimiter?: string, - automaticNamePrefix?: string, - chunks?: ('initial' | 'async' | 'all') | Function, - enforce?: boolean, - filename?: string, - maxAsyncRequests?: number, - maxInitialRequests?: number, - maxSize?: number, - minChunks?: number, - minSize?: number, - name?: boolean | Function | string, - priority?: number, - reuseExistingChunk?: boolean, - test?: Function | string | RegExp, - ... - }, ... }, - chunks?: ('initial' | 'async' | 'all') | Function, - fallbackCacheGroup?: { - automaticNameDelimiter?: string, - maxSize?: number, - minSize?: number, - ... - }, - filename?: string, - hidePathInfo?: boolean, - maxAsyncRequests?: number, - maxInitialRequests?: number, - maxSize?: number, - minChunks?: number, - minSize?: number, - name?: boolean | Function | string, - ... - }; - - declare type OptimizationOptions = { - checkWasmTypes?: boolean, - chunkIds?: 'natural' | 'named' | 'size' | 'total-size' | false, - concatenateModules?: boolean, - flagIncludedChunks?: boolean, - hashedModuleIds?: boolean, - mangleWasmImports?: boolean, - mergeDuplicateChunks?: boolean, - minimize?: boolean, - minimizer?: Array, - moduleIds?: 'natural' | 'named' | 'hashed' | 'size' | 'total-size' | false, - namedChunks?: boolean, - namedModules?: boolean, - noEmitOnErrors?: boolean, - nodeEnv?: false | string, - occurrenceOrder?: boolean, - portableRecords?: boolean, - providedExports?: boolean, - removeAvailableModules?: boolean, - removeEmptyChunks?: boolean, - runtimeChunk?: - | boolean - | ('single' | 'multiple') - | { name?: string | Function, ... }, - sideEffects?: boolean, - splitChunks?: false | OptimizationSplitChunksOptions, - usedExports?: boolean, - ... - }; - - declare type LibraryCustomUmdObject = { - amd?: string, - commonjs?: string, - root?: string | ArrayOfStringValues, - ... - }; - - declare type OutputOptions = { - auxiliaryComment?: - | string - | { - amd?: string, - commonjs?: string, - commonjs2?: string, - root?: string, - ... - }, - chunkCallbackName?: string, - chunkFilename?: string, - chunkLoadTimeout?: number, - crossOriginLoading?: false | 'anonymous' | 'use-credentials', - devtoolFallbackModuleFilenameTemplate?: string | Function, - devtoolLineToLine?: boolean | { [k: string]: any, ... }, - devtoolModuleFilenameTemplate?: string | Function, - devtoolNamespace?: string, - filename?: string | Function, - globalObject?: string, - hashDigest?: string, - hashDigestLength?: number, - hashFunction?: string | Function, - hashSalt?: string, - hotUpdateChunkFilename?: string | Function, - hotUpdateFunction?: string, - hotUpdateMainFilename?: string | Function, - jsonpFunction?: string, - jsonpScriptType?: false | 'text/javascript' | 'module', - library?: string | Array | LibraryCustomUmdObject, - libraryExport?: string | ArrayOfStringValues, - libraryTarget?: - | 'var' - | 'assign' - | 'this' - | 'window' - | 'self' - | 'global' - | 'commonjs' - | 'commonjs2' - | 'commonjs-module' - | 'amd' - | 'amd-require' - | 'umd' - | 'umd2' - | 'jsonp', - path?: string, - pathinfo?: boolean, - publicPath?: string | Function, - sourceMapFilename?: string, - sourcePrefix?: string, - strictModuleExceptionHandling?: boolean, - umdNamedDefine?: boolean, - webassemblyModuleFilename?: string, - ... - }; - - declare type PerformanceOptions = { - assetFilter?: Function, - hints?: false | 'warning' | 'error', - maxAssetSize?: number, - maxEntrypointSize?: number, - ... - }; - - declare type ArrayOfStringOrStringArrayValues = Array>; - - declare type ResolveOptions = { - alias?: - | { [k: string]: string, ... } - | Array<{ - alias?: string, - name?: string, - onlyModule?: boolean, - ... - }>, - aliasFields?: ArrayOfStringOrStringArrayValues, - cachePredicate?: Function, - cacheWithContext?: boolean, - concord?: boolean, - descriptionFiles?: ArrayOfStringValues, - enforceExtension?: boolean, - enforceModuleExtension?: boolean, - extensions?: ArrayOfStringValues, - fileSystem?: { [k: string]: any, ... }, - mainFields?: ArrayOfStringOrStringArrayValues, - mainFiles?: ArrayOfStringValues, - moduleExtensions?: ArrayOfStringValues, - modules?: ArrayOfStringValues, - plugins?: Array, - resolver?: { [k: string]: any, ... }, - symlinks?: boolean, - unsafeCache?: boolean | { [k: string]: any, ... }, - useSyncFileSystemCalls?: boolean, - ... - }; - - declare type FilterItemTypes = RegExp | string | Function; - - declare type FilterTypes = FilterItemTypes | Array; - - declare type StatsOptions = - | boolean - | ('none' | 'errors-only' | 'minimal' | 'normal' | 'detailed' | 'verbose') - | { - all?: boolean, - assets?: boolean, - assetsSort?: string, - builtAt?: boolean, - cached?: boolean, - cachedAssets?: boolean, - children?: boolean, - chunkGroups?: boolean, - chunkModules?: boolean, - chunkOrigins?: boolean, - chunks?: boolean, - chunksSort?: string, - colors?: - | boolean - | { - bold?: string, - cyan?: string, - green?: string, - magenta?: string, - red?: string, - yellow?: string, - ... - }, - context?: string, - depth?: boolean, - entrypoints?: boolean, - env?: boolean, - errorDetails?: boolean, - errors?: boolean, - exclude?: FilterTypes | boolean, - excludeAssets?: FilterTypes, - excludeModules?: FilterTypes | boolean, - hash?: boolean, - maxModules?: number, - moduleAssets?: boolean, - moduleTrace?: boolean, - modules?: boolean, - modulesSort?: string, - nestedModules?: boolean, - optimizationBailout?: boolean, - outputPath?: boolean, - performance?: boolean, - providedExports?: boolean, - publicPath?: boolean, - reasons?: boolean, - source?: boolean, - timings?: boolean, - usedExports?: boolean, - version?: boolean, - warnings?: boolean, - warningsFilter?: FilterTypes, - ... - }; - - declare type WatchOptions = { - aggregateTimeout?: number, - ignored?: { [k: string]: any, ... }, - poll?: boolean | number, - stdin?: boolean, - ... - }; - - declare type WebpackOptions = { - amd?: { [k: string]: any, ... }, - bail?: boolean, - cache?: boolean | { [k: string]: any, ... }, - context?: string, - dependencies?: Array, - devServer?: { - after?: (app: any, server: http.Server) => void, - allowedHosts?: string[], - before?: (app: any, server: http.Server) => void, - bonjour?: boolean, - clientLogLevel?: 'none' | 'info' | 'error' | 'warning', - compress?: boolean, - contentBase?: false | string | string[] | number, - disableHostCheck?: boolean, - filename?: string, - headers?: { [key: string]: string, ... }, - historyApiFallback?: - | boolean - | { - rewrites?: Array<{ - from: string, - to: string, - ... - }>, - disableDotRule?: boolean, - ... - }, - host?: string, - hot?: boolean, - hotOnly?: boolean, - https?: - | boolean - | { - key: string, - cert: string, - ca?: string, - ... - }, - index?: string, - inline?: boolean, - lazy?: boolean, - noInfo?: boolean, - open?: boolean | string, - openPage?: string, - overlay?: - | boolean - | { - errors?: boolean, - warnings?: boolean, - ... - }, - pfx?: string, - pfxPassphrase?: string, - port?: number, - proxy?: Object | Array, - public?: string, - publicPath?: string, - quiet?: boolean, - socket?: string, - staticOptions?: { - dotfiles?: string, - etag?: boolean, - extensions?: false | string[], - fallthrough?: boolean, - immutable?: boolean, - index?: false | string, - lastModified?: boolean, - maxAge?: number, - redirect?: boolean, - setHeaders?: ( - res: http.OutgoingMessage, - path: string, - stat: fs.Stat - ) => void, - ... - }, - stats?: StatsOptions, - useLocalIp?: boolean, - watchContentBase?: boolean, - watchOptions?: WatchOptions, - publicPath?: string, - ... - }, - devtool?: - | '@cheap-eval-source-map' - | '@cheap-module-eval-source-map' - | '@cheap-module-source-map' - | '@cheap-source-map' - | '@eval-source-map' - | '@eval' - | '@hidden-source-map' - | '@inline-source-map' - | '@nosources-source-map' - | '@source-map' - | '#@cheap-eval-source-map' - | '#@cheap-module-eval-source-map' - | '#@cheap-module-source-map' - | '#@cheap-source-map' - | '#@eval-source-map' - | '#@eval' - | '#@hidden-source-map' - | '#@inline-source-map' - | '#@nosources-source-map' - | '#@source-map' - | '#cheap-eval-source-map' - | '#cheap-module-eval-source-map' - | '#cheap-module-source-map' - | '#cheap-source-map' - | '#eval-source-map' - | '#eval' - | '#hidden-source-map' - | '#inline-source-map' - | '#nosources-source-map' - | '#source-map' - | 'cheap-eval-source-map' - | 'cheap-module-eval-source-map' - | 'cheap-module-source-map' - | 'cheap-source-map' - | 'eval-source-map' - | 'eval' - | 'hidden-source-map' - | 'inline-source-map' - | 'nosources-source-map' - | 'source-map' - | false, - entry?: Entry, - externals?: Externals, - loader?: { [k: string]: any, ... }, - mode?: 'development' | 'production' | 'none', - module?: ModuleOptions, - name?: string, - node?: false | NodeOptions, - optimization?: OptimizationOptions, - output?: OutputOptions, - parallelism?: number, - performance?: false | PerformanceOptions, - plugins?: Array, - profile?: boolean, - recordsInputPath?: string, - recordsOutputPath?: string, - recordsPath?: string, - resolve?: ResolveOptions, - resolveLoader?: ResolveOptions, - serve?: { [k: string]: any, ... }, - stats?: StatsOptions, - target?: - | 'web' - | 'webworker' - | 'node' - | 'async-node' - | 'node-webkit' - | 'electron-main' - | 'electron-renderer' - | ((compiler: WebpackCompiler) => void), - watch?: boolean, - watchOptions?: WatchOptions, - ... - }; - - declare class EnvironmentPlugin { - constructor(env: { [string]: mixed, ... } | string[]): $ElementType< - $NonMaybeType<$PropertyType>, - number - >; - } - - declare class DefinePlugin { - constructor({ [string]: string, ... }): $ElementType< - $NonMaybeType<$PropertyType>, - number - >; - } - - declare class IgnorePlugin { - constructor(RegExp | {| - resourceRegExp: RegExp, - contextRegExp?: RegExp, - |}, void | RegExp): $ElementType< - $NonMaybeType<$PropertyType>, - number - >; - } - - declare class SourceMapDevToolPlugin { - constructor({| - test?: ?(string | RegExp | Array), - include?: ?(string | RegExp | Array), - exclude?: ?(string | RegExp | Array), - filename?: ?string, - append?: ?(string | false), - moduleFilenameTemplate?: ?string, - fallbackModuleFilenameTemplate?: ?string, - namespace?: ?string, - module?: ?boolean, - columns?: ?boolean, - lineToLine?: ?(boolean | {| - test?: ?(string | RegExp | Array), - include?: ?(string | RegExp | Array), - exclude?: ?(string | RegExp | Array), - |}), - noSources?: ?boolean, - publicPath?: ?string, - fileContext?: ?string, - |}): $ElementType< - $NonMaybeType<$PropertyType>, - number - >; - } - - declare class HotModuleReplacementPlugin { - constructor(): $ElementType< - $NonMaybeType<$PropertyType>, - number - >; - } - - declare class ContextReplacementPlugin { - constructor( - resourceRegExp: RegExp, - newContentRegExp?: RegExp - ): $ElementType< - $NonMaybeType<$PropertyType>, - number - >; - } - - declare function builder( - options: WebpackOptions, - callback?: Callback - ): WebpackCompiler; - declare function builder( - options: WebpackOptions[], - callback?: Callback - ): WebpackMultiCompiler; - - declare module.exports: typeof builder & { - EnvironmentPlugin: typeof EnvironmentPlugin, - DefinePlugin: typeof DefinePlugin, - IgnorePlugin: typeof IgnorePlugin, - SourceMapDevToolPlugin: typeof SourceMapDevToolPlugin, - HotModuleReplacementPlugin: typeof HotModuleReplacementPlugin, - ContextReplacementPlugin: typeof ContextReplacementPlugin, - ... - }; -} diff --git a/jest.config.js b/jest.config.js index 631b569e7..35e57254a 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,9 +1,10 @@ module.exports = { - testMatch: [ '**/__tests__/?(*.)+(test).js?(x)'], - moduleNameMapper: { - '\\.(css|scss)$': 'identity-obj-proxy', - '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': '/assetsTransformer.js', - '\\.(css|less)$': '/assetsTransformer.js', - }, - setupFiles: ['/.jest-setup.js'], + testMatch: ['**/__tests__/?(*.)+(test).ts?(x)'], + moduleNameMapper: { + '\\.(css|scss)$': 'identity-obj-proxy', + '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': + '/assetsTransformer.js', + '\\.(css|less)$': '/assetsTransformer.js', + }, + setupFiles: ['/.jest-setup.js'], }; diff --git a/package-lock.json b/package-lock.json index b1648fc14..a88cb5586 100644 --- a/package-lock.json +++ b/package-lock.json @@ -60,9 +60,16 @@ "@babel/core": "^7.8.4", "@babel/plugin-proposal-class-properties": "^7.8.3", "@babel/preset-env": "^7.8.4", - "@babel/preset-flow": "^7.8.3", "@babel/preset-react": "^7.8.3", + "@babel/preset-typescript": "^7.16.7", "@testing-library/react-hooks": "^7.0.2", + "@types/react": "^17.0.39", + "@types/react-dom": "^17.0.13", + "@types/react-router": "^5.1.18", + "@types/react-router-dom": "^5.3.3", + "@types/styled-components": "^5.1.24", + "@typescript-eslint/eslint-plugin": "^5.13.0", + "@typescript-eslint/parser": "^5.13.0", "@welldone-software/why-did-you-render": "^4.0.5", "babel-eslint": "^10.0.3", "babel-loader": "^8.0.6", @@ -71,16 +78,7 @@ "cypress": "^6.5.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.2", - "eslint": "^6.8.0", - "eslint-plugin-cypress": "^2.11.1", - "eslint-plugin-flowtype": "^4.6.0", - "eslint-plugin-flowtype-errors": "^4.1.0", - "eslint-plugin-import": "^2.20.1", - "eslint-plugin-jest": "^23.7.0", - "eslint-plugin-react": "^7.18.3", - "eslint-plugin-react-hooks": "^3.0.0", - "flow-bin": "^0.118.0", - "flow-typed": "^2.6.2", + "eslint": "^8.10.0", "html-loader": "^1.0.0", "html-webpack-plugin": "^4.0.3", "identity-obj-proxy": "^3.0.0", @@ -88,6 +86,7 @@ "redux-logger": "^3.0.6", "redux-mock-store": "^1.5.4", "style-loader": "^1.1.3", + "typescript": "^4.6.2", "webpack": "^4.41.5", "webpack-bundle-analyzer": "^3.9.0", "webpack-cli": "^3.3.10", @@ -96,11 +95,14 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dependencies": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { @@ -164,21 +166,27 @@ } }, "node_modules/@babel/generator": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", - "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz", + "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", "dependencies": { - "@babel/types": "^7.12.13", + "@babel/types": "^7.17.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", - "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", "dependencies": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { @@ -216,16 +224,21 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.12.16", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.16.tgz", - "integrity": "sha512-KbSEj8l9zYkMVHpQqM3wJNxS1d9h3U9vm/uE5tpjMbaj3lTp+0noe3KPsV5dSD9jxKnf9jO9Ip9FX5PKNZCKow==", + "version": "7.17.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", + "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-member-expression-to-functions": "^7.12.16", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13" + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" @@ -244,6 +257,17 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-explode-assignable-expression": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.13.tgz", @@ -254,39 +278,50 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", "dependencies": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", "dependencies": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.12.13.tgz", - "integrity": "sha512-KSC5XSj5HreRhYQtZ3cnSnQwDzgnbdUDEFsxkN0m6Q3WrCRt72xrnZ8+h+pX7YxM7hr87zIO3a/v5p/H3TrnVw==", - "dev": true, + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", "dependencies": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.12.16", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.16.tgz", - "integrity": "sha512-zYoZC1uvebBFmj1wFAlXwt35JLEgecefATtKp20xalwEK8vHAixLBXTGxNrVGEmTT+gzOThUgr8UEdgtalc1BQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", + "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", "devOptional": true, "dependencies": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { @@ -315,19 +350,25 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", "devOptional": true, "dependencies": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", - "dev": true + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, "node_modules/@babel/helper-remap-async-to-generator": { "version": "7.12.13", @@ -341,15 +382,19 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", + "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", "devOptional": true, "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { @@ -371,23 +416,32 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", "dependencies": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "engines": { + "node": ">=6.9.0" + } }, "node_modules/@babel/helper-validator-option": { - "version": "7.12.16", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.16.tgz", - "integrity": "sha512-uCgsDBPUQDvzr11ePPo4TVEocxj8RXjUVSC/Y8N1YpVAI/XDdUwGJu78xmlGhTxj2ntaWM7n9LQdRtyhOzT2YQ==", - "dev": true + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, "node_modules/@babel/helper-wrap-function": { "version": "7.12.13", @@ -413,19 +467,22 @@ } }, "node_modules/@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", "dependencies": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.12.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz", - "integrity": "sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==", + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", + "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", "bin": { "parser": "bin/babel-parser.js" }, @@ -668,18 +725,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-flow": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.13.tgz", - "integrity": "sha512-J/RYxnlSLXZLVR7wTRsozxKT8qbsx1mNKJzXEEjQ0Kjx1ZACcyHgbanNWNCFtc36IzuWhYWPpvJFFoexoOWFmA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", @@ -800,6 +845,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", + "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-arrow-functions": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.13.tgz", @@ -930,19 +990,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.12.13.tgz", - "integrity": "sha512-39/t9HtN+Jlc7EEY6oCSCf3kRrKIl2JULOGPnHZiaRjoYZEFaDXDZI32uE2NosQRh8o6N9B+8iGvDK7ToJhJaw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/plugin-syntax-flow": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-transform-for-of": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.13.tgz", @@ -1249,6 +1296,23 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", + "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-typescript": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-unicode-escapes": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz", @@ -1274,25 +1338,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/polyfill": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.12.1.tgz", - "integrity": "sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==", - "deprecated": "🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.", - "dev": true, - "dependencies": { - "core-js": "^2.6.5", - "regenerator-runtime": "^0.13.4" - } - }, - "node_modules/@babel/polyfill/node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", - "dev": true, - "hasInstallScript": true - }, "node_modules/@babel/preset-env": { "version": "7.12.16", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.16.tgz", @@ -1379,19 +1424,6 @@ "semver": "bin/semver" } }, - "node_modules/@babel/preset-flow": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.12.13.tgz", - "integrity": "sha512-gcEjiwcGHa3bo9idURBp5fmJPcyFPOszPQjztXrOjUE2wWVqc6fIVJPgWPIQksaQ5XZ2HWiRsf2s1fRGVjUtVw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/plugin-transform-flow-strip-types": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/preset-modules": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", @@ -1424,6 +1456,23 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-typescript": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", + "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-typescript": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/runtime": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.13.tgz", @@ -1442,39 +1491,48 @@ } }, "node_modules/@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", + "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.3", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.3", + "@babel/types": "^7.17.0", "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", "dependencies": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@bcoe/v8-coverage": { @@ -1746,6 +1804,71 @@ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" }, + "node_modules/@eslint/eslintrc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.0.tgz", + "integrity": "sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.1", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.12.1", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", + "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@floating-ui/core": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-0.3.1.tgz", @@ -1888,6 +2011,26 @@ "react-hook-form": ">=6.6.0" } }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -2535,181 +2678,52 @@ "node": ">=8" } }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=10" - } - }, - "node_modules/@octokit/auth-token": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.5.tgz", - "integrity": "sha512-BpGYsPgJt05M7/L/5FoE1PiAbdxXFZkX/3kDYcsvd1v6UhlnE5e96dTDr0ezX/EFwciQxf3cNV0loipsURU+WA==", - "dev": true, - "dependencies": { - "@octokit/types": "^6.0.3" - } - }, - "node_modules/@octokit/endpoint": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.11.tgz", - "integrity": "sha512-fUIPpx+pZyoLW4GCs3yMnlj2LfoXTWDUVPTC4V3MUEKZm48W+XYpeWSZCv+vYF1ZABUm2CqnDVf1sFtIYrj7KQ==", - "dev": true, - "dependencies": { - "@octokit/types": "^6.0.3", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/endpoint/node_modules/universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", - "dev": true - }, - "node_modules/@octokit/openapi-types": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-4.0.4.tgz", - "integrity": "sha512-31zY8JIuz3h6RAFOnyA8FbOwhILILiBu1qD81RyZZWY7oMBhIdBn6MaAmnnptLhB4jk0g50nkQkUVP4kUzppcA==", - "dev": true - }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz", - "integrity": "sha512-jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q==", - "dev": true, - "dependencies": { - "@octokit/types": "^2.0.1" - } - }, - "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { - "version": "2.16.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz", - "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==", - "dev": true, - "dependencies": { - "@types/node": ">= 8" - } - }, - "node_modules/@octokit/plugin-request-log": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.3.tgz", - "integrity": "sha512-4RFU4li238jMJAzLgAwkBAw+4Loile5haQMQr+uhFq27BmyJXcXSKvoQKqh0agsZEiUlW6iSv3FAgvmGkur7OQ==", - "dev": true, - "peerDependencies": { - "@octokit/core": ">=3" - } - }, - "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz", - "integrity": "sha512-EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==", - "dev": true, - "dependencies": { - "@octokit/types": "^2.0.1", - "deprecation": "^2.3.1" - } - }, - "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { - "version": "2.16.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz", - "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==", - "dev": true, - "dependencies": { - "@types/node": ">= 8" - } - }, - "node_modules/@octokit/request": { - "version": "5.4.14", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.4.14.tgz", - "integrity": "sha512-VkmtacOIQp9daSnBmDI92xNIeLuSRDOIuplp/CJomkvzt7M18NXgG044Cx/LFKLgjKt9T2tZR6AtJayba9GTSA==", - "dev": true, - "dependencies": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.0.0", - "@octokit/types": "^6.7.1", - "deprecation": "^2.0.0", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.1", - "once": "^1.4.0", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/request-error": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.1.tgz", - "integrity": "sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA==", - "dev": true, - "dependencies": { - "@octokit/types": "^2.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - } - }, - "node_modules/@octokit/request-error/node_modules/@octokit/types": { - "version": "2.16.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz", - "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==", - "dev": true, - "dependencies": { - "@types/node": ">= 8" + "node": ">= 8" } }, - "node_modules/@octokit/request/node_modules/@octokit/request-error": { + "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.5.tgz", - "integrity": "sha512-T/2wcCFyM7SkXzNoyVNWjyVlUwBvW3igM3Btr/eKYiPmucXTtkxt2RBsf6gn3LTzaLSLTQtNmvg+dGsOxQrjZg==", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, - "dependencies": { - "@octokit/types": "^6.0.3", - "deprecation": "^2.0.0", - "once": "^1.4.0" + "engines": { + "node": ">= 8" } }, - "node_modules/@octokit/request/node_modules/universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", - "dev": true - }, - "node_modules/@octokit/rest": { - "version": "16.43.2", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.43.2.tgz", - "integrity": "sha512-ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "dependencies": { - "@octokit/auth-token": "^2.4.0", - "@octokit/plugin-paginate-rest": "^1.1.1", - "@octokit/plugin-request-log": "^1.0.0", - "@octokit/plugin-rest-endpoint-methods": "2.4.0", - "@octokit/request": "^5.2.0", - "@octokit/request-error": "^1.0.2", - "atob-lite": "^2.0.0", - "before-after-hook": "^2.0.0", - "btoa-lite": "^1.0.0", - "deprecation": "^2.0.0", - "lodash.get": "^4.4.2", - "lodash.set": "^4.3.2", - "lodash.uniq": "^4.5.0", - "octokit-pagination-methods": "^1.1.0", - "once": "^1.4.0", - "universal-user-agent": "^4.0.0" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/@octokit/types": { - "version": "6.8.5", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.8.5.tgz", - "integrity": "sha512-ZsQawftZoi0kSF2pCsdgLURbOjtVcHnBOXiSxBKSNF56CRjARt5rb/g8WJgqB8vv4lgUEHrv06EdDKYQ22vA9Q==", + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "dev": true, "dependencies": { - "@octokit/openapi-types": "^4.0.3" + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" } }, "node_modules/@samverschueren/stream-to-observable": { @@ -2766,15 +2780,6 @@ "vega-tooltip": "^0.27.0" } }, - "node_modules/@sindresorhus/is": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", - "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/@sinonjs/commons": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", @@ -2889,6 +2894,22 @@ "@types/node": "*" } }, + "node_modules/@types/history": { + "version": "4.7.11", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", + "dev": true + }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "dev": true, + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, "node_modules/@types/html-minifier-terser": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", @@ -2921,15 +2942,9 @@ } }, "node_modules/@types/json-schema": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", - "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" }, "node_modules/@types/minimatch": { "version": "3.0.3", @@ -2962,9 +2977,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "17.0.38", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.38.tgz", - "integrity": "sha512-SI92X1IA+FMnP3qM5m4QReluXzhcmovhZnLNm3pyeQlooi02qI7sLiepEYqT678uNiyc25XfCqxREFpy3W7YhQ==", + "version": "17.0.39", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.39.tgz", + "integrity": "sha512-UVavlfAxDd/AgAacMa60Azl7ygyQNRwC/DsHZmKgNvPmRR5p70AJ5Q9EAmL2NWOJmeV+vVUI4IAP7GZrN8h8Ug==", "dev": true, "dependencies": { "@types/prop-types": "*", @@ -2973,14 +2988,35 @@ } }, "node_modules/@types/react-dom": { - "version": "17.0.11", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.11.tgz", - "integrity": "sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q==", + "version": "17.0.13", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.13.tgz", + "integrity": "sha512-wEP+B8hzvy6ORDv1QBhcQia4j6ea4SFIBttHYpXKPFZRviBvknq0FRh3VrIxeXUmsPkwuXVZrVGG7KUVONmXCQ==", "dev": true, "dependencies": { "@types/react": "*" } }, + "node_modules/@types/react-router": { + "version": "5.1.18", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.18.tgz", + "integrity": "sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g==", + "dev": true, + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*" + } + }, + "node_modules/@types/react-router-dom": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "dev": true, + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, "node_modules/@types/react-test-renderer": { "version": "17.0.1", "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-17.0.1.tgz", @@ -3020,6 +3056,17 @@ "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==", "dev": true }, + "node_modules/@types/styled-components": { + "version": "5.1.24", + "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.24.tgz", + "integrity": "sha512-mz0fzq2nez+Lq5IuYammYwWgyLUE6OMAJTQL9D8hFLP4Pkh7gVYJii/VQWxq8/TK34g/OrkehXaFNdcEKcItug==", + "dev": true, + "dependencies": { + "@types/hoist-non-react-statics": "*", + "@types/react": "*", + "csstype": "^3.0.2" + } + }, "node_modules/@types/tapable": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz", @@ -3102,59 +3149,198 @@ "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", "dev": true }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz", - "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==", + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.13.0.tgz", + "integrity": "sha512-vLktb2Uec81fxm/cfz2Hd6QaWOs8qdmVAZXLdOBX6JFJDhf6oDZpMzZ4/LZ6SFM/5DgDcxIMIvy3F+O9yZBuiQ==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.34.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" + "@typescript-eslint/scope-manager": "5.13.0", + "@typescript-eslint/type-utils": "5.13.0", + "@typescript-eslint/utils": "5.13.0", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz", + "integrity": "sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/visitor-keys": "5.13.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, "engines": { - "node": ">=6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.13.0.tgz", + "integrity": "sha512-+9oHlPWYNl6AwwoEt5TQryEHwiKRVjz7Vk6kaBeD3/kwHE5YqTGHtm/JZY8Bo9ITOeKutFaXnBlMgSATMJALUQ==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.13.0", + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/typescript-estree": "5.13.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils/node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" }, "funding": { "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", - "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.13.0.tgz", + "integrity": "sha512-GdrU4GvBE29tm2RqWOM0P5QfCtgCyN4hXICj/X9ibKED16136l9ZpoJvCL5pSKtmJzA+NRDzQ312wWMejCVVfg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.13.0", + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/typescript-estree": "5.13.0", + "debug": "^4.3.2" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz", + "integrity": "sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/visitor-keys": "5.13.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", @@ -3166,6 +3352,242 @@ } } }, + "node_modules/@typescript-eslint/parser/node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz", + "integrity": "sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/visitor-keys": "5.13.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.13.0.tgz", + "integrity": "sha512-/nz7qFizaBM1SuqAKb7GLkcNn2buRdDgZraXlkhz+vUGiN1NZ9LzkA595tHHeduAiS2MsHqMNhE2zNzGdw43Yg==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "5.13.0", + "debug": "^4.3.2", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz", + "integrity": "sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/visitor-keys": "5.13.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.13.0.tgz", + "integrity": "sha512-+9oHlPWYNl6AwwoEt5TQryEHwiKRVjz7Vk6kaBeD3/kwHE5YqTGHtm/JZY8Bo9ITOeKutFaXnBlMgSATMJALUQ==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.13.0", + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/typescript-estree": "5.13.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils/node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.13.0.tgz", + "integrity": "sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.13.0.tgz", + "integrity": "sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.13.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", @@ -3398,9 +3820,9 @@ } }, "node_modules/acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" @@ -3521,9 +3943,9 @@ } }, "node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" } @@ -3644,25 +4066,6 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, - "node_modules/array-includes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz", - "integrity": "sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "get-intrinsic": "^1.0.1", - "is-string": "^1.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", @@ -3747,24 +4150,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", - "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -3880,12 +4265,6 @@ "node": ">= 4.5.0" } }, - "node_modules/atob-lite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz", - "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=", - "dev": true - }, "node_modules/attr-accept": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz", @@ -4276,12 +4655,6 @@ "tweetnacl": "^0.14.3" } }, - "node_modules/before-after-hook": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.1.tgz", - "integrity": "sha512-5ekuQOvO04MDj7kYZJaMab2S8SPjGJbotVNyv7QYFCOAwrGZs/YnoDNlh1U+m5hl7H2D/+n0taaAV/tfyd3KMA==", - "dev": true - }, "node_modules/bfj": { "version": "6.1.2", "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz", @@ -4313,19 +4686,6 @@ "node": "*" } }, - "node_modules/binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", - "dev": true, - "dependencies": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - }, - "engines": { - "node": "*" - } - }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -4621,12 +4981,6 @@ "node": ">= 0.4.0" } }, - "node_modules/btoa-lite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", - "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", - "dev": true - }, "node_modules/buffer": { "version": "4.9.2", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", @@ -4657,29 +5011,11 @@ "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", "dev": true }, - "node_modules/buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, - "node_modules/buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", - "dev": true, - "engines": { - "node": ">=0.2.0" - } - }, "node_modules/builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", @@ -4741,39 +5077,6 @@ "node": ">=0.10.0" } }, - "node_modules/cacheable-request": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", - "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", - "dev": true, - "dependencies": { - "clone-response": "1.0.2", - "get-stream": "3.0.0", - "http-cache-semantics": "3.8.1", - "keyv": "3.0.0", - "lowercase-keys": "1.0.0", - "normalize-url": "2.0.1", - "responselike": "1.0.2" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/cachedir": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", @@ -4853,27 +5156,6 @@ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, - "node_modules/chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", - "dev": true, - "dependencies": { - "traverse": ">=0.3.0 <0.4" - }, - "engines": { - "node": "*" - } - }, - "node_modules/chainsaw/node_modules/traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -4887,21 +5169,6 @@ "node": ">=4" } }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "node_modules/charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/check-more-types": { "version": "2.24.0", "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", @@ -5161,15 +5428,6 @@ "node": ">=0.10.0" } }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, "node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -5188,15 +5446,6 @@ "node": ">=0.8" } }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - } - }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -5258,6 +5507,7 @@ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true, + "optional": true, "engines": { "node": ">=0.1.90" } @@ -5475,15 +5725,6 @@ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" }, - "node_modules/contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", @@ -5703,15 +5944,6 @@ "semver": "bin/semver" } }, - "node_modules/crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", @@ -6364,9 +6596,9 @@ "dev": true }, "node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dependencies": { "ms": "2.1.2" }, @@ -6396,18 +6628,6 @@ "node": ">=0.10" } }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/deep-diff": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/deep-diff/-/deep-diff-0.3.8.tgz", @@ -6596,12 +6816,6 @@ "node": ">= 0.6" } }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true - }, "node_modules/des.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", @@ -6664,6 +6878,18 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/discontinuous-range": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", @@ -6818,21 +7044,6 @@ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, "node_modules/duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", @@ -7198,46 +7409,44 @@ } }, "node_modules/eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.10.0.tgz", + "integrity": "sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.0.0", + "@eslint/eslintrc": "^1.2.0", + "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, @@ -7245,485 +7454,383 @@ "eslint": "bin/eslint.js" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", - "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", - "dev": true, - "dependencies": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "dependencies": { - "debug": "^2.6.9", - "pkg-dir": "^2.0.0" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" + "node": ">=8.0.0" } }, - "node_modules/eslint-module-utils/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, "engines": { "node": ">=4" } }, - "node_modules/eslint-module-utils/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/eslint-module-utils/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/eslint-module-utils/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "p-try": "^1.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/eslint-module-utils/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "p-limit": "^1.1.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" + "node": ">=7.0.0" } }, - "node_modules/eslint-module-utils/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/eslint-module-utils/node_modules/pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "node_modules/eslint/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { - "find-up": "^2.1.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">= 8" } }, - "node_modules/eslint-plugin-cypress": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.11.2.tgz", - "integrity": "sha512-1SergF1sGbVhsf7MYfOLiBhdOg6wqyeV9pXUAIDIffYTGMN3dTBQS9nFAzhLsHhO+Bn0GaVM1Ecm71XUidQ7VA==", + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, - "dependencies": { - "globals": "^11.12.0" + "engines": { + "node": ">=10" }, - "peerDependencies": { - "eslint": ">= 3.2.1" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-flowtype": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.7.0.tgz", - "integrity": "sha512-M+hxhSCk5QBEValO5/UqrS4UunT+MgplIJK5wA1sCtXjzBcZkpTGRwxmLHhGpbHcrmQecgt6ZL/KDdXWqGB7VA==", + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "dependencies": { - "lodash": "^4.17.15" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": ">=6.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint-plugin-flowtype-errors": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype-errors/-/eslint-plugin-flowtype-errors-4.4.0.tgz", - "integrity": "sha512-vlDxFUaAWRtI1Koc2YOWLTdORV5dmvqChkKyySE6b5VXxiWH7C0Ax7RJ4s3yRdt8TOk968OU7jEwRKL2l8aTIQ==", + "node_modules/eslint/node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.12.5", - "core-js": "3.8.1", - "find-up": "^5.0.0", - "slash": "^3.0.0" + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": ">=4.x", - "npm": ">=5.x" + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" }, "peerDependencies": { - "eslint": ">=5.16.0", - "flow-bin": ">=0.93.0" + "eslint": ">=5" } }, - "node_modules/eslint-plugin-flowtype-errors/node_modules/core-js": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.1.tgz", - "integrity": "sha512-9Id2xHY1W7m8hCl8NkhQn5CufmF/WuR30BTRewvCXc1aZd3kMECwNZ69ndLbekKfakw9Rf2Xyc+QR6E7Gg+obg==", + "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "engines": { + "node": ">=10" } }, - "node_modules/eslint-plugin-flowtype-errors/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint-plugin-flowtype-errors/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4.0" } }, - "node_modules/eslint-plugin-flowtype-errors/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { - "yocto-queue": "^0.1.0" + "is-glob": "^4.0.3" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10.13.0" } }, - "node_modules/eslint-plugin-flowtype-errors/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/eslint/node_modules/globals": { + "version": "13.12.1", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", + "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", "dev": true, "dependencies": { - "p-limit": "^3.0.2" + "type-fest": "^0.20.2" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-import": { - "version": "2.22.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", - "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "array-includes": "^3.1.1", - "array.prototype.flat": "^1.2.3", - "contains-path": "^0.1.0", - "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.4", - "eslint-module-utils": "^2.6.0", - "has": "^1.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.1", - "read-pkg-up": "^2.0.0", - "resolve": "^1.17.0", - "tsconfig-paths": "^3.9.0" - }, "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0" + "node": ">=8" } }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/eslint/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true, - "dependencies": { - "ms": "2.0.0" + "engines": { + "node": ">= 4" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "argparse": "^2.0.1" }, - "engines": { - "node": ">=0.10.0" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/eslint-plugin-jest": { - "version": "23.20.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-23.20.0.tgz", - "integrity": "sha512-+6BGQt85OREevBDWCvhqj1yYA4+BFK4XnRZSGJionuEYmcglMZYLNNBBemwzbqUAckURaHdJSBcjHPyrtypZOw==", + "node_modules/eslint/node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "dependencies": { - "@typescript-eslint/experimental-utils": "^2.5.0" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { - "node": ">=8" - }, - "peerDependencies": { - "eslint": ">=5" + "node": ">= 0.8.0" } }, - "node_modules/eslint-plugin-react": { - "version": "7.22.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.22.0.tgz", - "integrity": "sha512-p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA==", + "node_modules/eslint/node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "dependencies": { - "array-includes": "^3.1.1", - "array.prototype.flatmap": "^1.2.3", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "object.entries": "^1.1.2", - "object.fromentries": "^2.0.2", - "object.values": "^1.1.1", - "prop-types": "^15.7.2", - "resolve": "^1.18.1", - "string.prototype.matchall": "^4.0.2" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" }, "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7" + "node": ">= 0.8.0" } }, - "node_modules/eslint-plugin-react-hooks": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-3.0.0.tgz", - "integrity": "sha512-EjxTHxjLKIBWFgDJdhKKzLh5q+vjTFrqNZX36uIxWS4OfyXe5DawqPj3U5qeJ1ngLwatjzQnmR0Lz0J0YH3kxw==", + "node_modules/eslint/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "engines": { - "node": ">=7" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" + "node": ">=8" } }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "node_modules/eslint/node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8.0" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/eslint/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "node_modules/eslint/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/eslint/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "node_modules/eslint/node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, "engines": { - "node": ">=6" + "node": ">= 0.8.0" } }, - "node_modules/eslint/node_modules/globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "dependencies": { - "type-fest": "^0.8.1" - }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "node_modules/eslint/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { - "minimist": "^1.2.5" + "isexe": "^2.0.0" }, "bin": { - "mkdirp": "bin/cmd.js" + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/eslint/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/espree": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "acorn": "^8.7.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "node_modules/espree/node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">=6" + "node": ">=0.4.0" } }, - "node_modules/espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - }, "engines": { - "node": ">=6.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/esprima": { @@ -8139,32 +8246,6 @@ "node": ">=0.10.0" } }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/external-editor/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", @@ -8296,6 +8377,22 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, "node_modules/fast-json-patch": { "version": "3.0.0-1", "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.0.0-1.tgz", @@ -8312,6 +8409,15 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/faye-websocket": { "version": "0.11.3", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", @@ -8361,15 +8467,15 @@ } }, "node_modules/file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "dependencies": { - "flat-cache": "^2.0.1" + "flat-cache": "^3.0.4" }, "engines": { - "node": ">=4" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/file-loader": { @@ -8629,366 +8735,24 @@ } }, "node_modules/flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "dependencies": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=4" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "node_modules/flow-bin": { - "version": "0.118.0", - "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.118.0.tgz", - "integrity": "sha512-jlbUu0XkbpXeXhan5xyTqVK1jmEKNxE8hpzznI3TThHTr76GiFwK0iRzhDo4KNy+S9h/KxHaqVhTP86vA6wHCg==", - "dev": true, - "bin": { - "flow": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/flow-typed": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/flow-typed/-/flow-typed-2.6.2.tgz", - "integrity": "sha512-brTh8SukLidVpR1u8hSR3OcZSvLtptpwLEGgEhK/qBhWCB7zxPZmnmChYi40JQH6vB448ck380+qbkDo3fJ6qA==", - "dev": true, - "dependencies": { - "@babel/polyfill": "^7.0.0", - "@octokit/rest": "^16.33.1", - "colors": "^1.3.2", - "flowgen": "^1.9.0", - "fs-extra": "^7.0.0", - "glob": "^7.1.3", - "got": "^8.3.2", - "md5": "^2.2.1", - "mkdirp": "^0.5.1", - "prettier": "^1.18.2", - "rimraf": "^2.6.2", - "semver": "^5.5.1", - "table": "^5.0.2", - "through": "^2.3.8", - "unzipper": "^0.9.3", - "which": "^1.3.1", - "yargs": "^12.0.2" - }, - "bin": { - "flow-typed": "dist/cli.js" - } - }, - "node_modules/flow-typed/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/flow-typed/node_modules/cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/flow-typed/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/flow-typed/node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/flow-typed/node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "node_modules/flow-typed/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/flow-typed/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/flow-typed/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/flow-typed/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/flow-typed/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/flow-typed/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/flow-typed/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/flow-typed/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/flow-typed/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/flow-typed/node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/flow-typed/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/flow-typed/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/flow-typed/node_modules/wrap-ansi/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/flow-typed/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/flow-typed/node_modules/y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, - "node_modules/flow-typed/node_modules/yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "dependencies": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "node_modules/flow-typed/node_modules/yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/flowgen": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/flowgen/-/flowgen-1.13.0.tgz", - "integrity": "sha512-xgdbeWfhY5yayQ3PUTaPn9a0tPK21m5SEJSFZDZf0A0TuoLKYVXU3fhhAN9pokjDcb0E0FGh7EO3t3YNf/iXTw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/highlight": "^7.10.4", - "commander": "^6.1.0", - "lodash": "^4.17.20", - "prettier": "^2.1.1", - "shelljs": "^0.8.4", - "typescript": "^4.0.2", - "typescript-compiler": "^1.4.1-2" - }, - "bin": { - "flowgen": "lib/cli/index.js" - } - }, - "node_modules/flowgen/node_modules/commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/flowgen/node_modules/prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/flush-write-stream": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", @@ -9163,45 +8927,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/fstream/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/fstream/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -9338,9 +9063,9 @@ } }, "node_modules/glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "devOptional": true, "dependencies": { "is-glob": "^4.0.1" @@ -9430,52 +9155,6 @@ "node": ">=0.10.0" } }, - "node_modules/got": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", - "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^0.7.0", - "cacheable-request": "^2.1.1", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "into-stream": "^3.1.0", - "is-retry-allowed": "^1.1.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "mimic-response": "^1.0.0", - "p-cancelable": "^0.4.0", - "p-timeout": "^2.0.1", - "pify": "^3.0.0", - "safe-buffer": "^5.1.1", - "timed-out": "^4.0.1", - "url-parse-lax": "^3.0.0", - "url-to-options": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/got/node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/got/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/graceful-fs": { "version": "4.2.6", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", @@ -9585,15 +9264,6 @@ "node": ">=4" } }, - "node_modules/has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", @@ -9606,18 +9276,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "dev": true, - "dependencies": { - "has-symbol-support-x": "^1.4.1" - }, - "engines": { - "node": "*" - } - }, "node_modules/has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -9992,12 +9650,6 @@ "entities": "^2.0.0" } }, - "node_modules/http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", - "dev": true - }, "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", @@ -10350,191 +10002,6 @@ "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", "dev": true }, - "node_modules/inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/inquirer/node_modules/ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "dependencies": { - "type-fest": "^0.11.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/inquirer/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/inquirer/node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inquirer/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/inquirer/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inquirer/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/internal-ip": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", @@ -10548,20 +10015,6 @@ "node": ">=6" } }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/internmap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.0.tgz", @@ -10576,28 +10029,6 @@ "node": ">= 0.10" } }, - "node_modules/into-stream": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", - "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", - "dev": true, - "dependencies": { - "from2": "^2.1.1", - "p-is-promise": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", @@ -10847,9 +10278,9 @@ } }, "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "devOptional": true, "dependencies": { "is-extglob": "^2.1.1" @@ -10907,15 +10338,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-observable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", @@ -10970,24 +10392,6 @@ "node": ">=8" } }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-promise": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", @@ -11010,15 +10414,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", @@ -11225,19 +10620,6 @@ "node": ">=8" } }, - "node_modules/isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "dev": true, - "dependencies": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - }, - "engines": { - "node": ">= 4" - } - }, "node_modules/jest": { "version": "25.5.4", "resolved": "https://registry.npmjs.org/jest/-/jest-25.5.4.tgz", @@ -13240,12 +12622,6 @@ "node": ">=4" } }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -13302,15 +12678,6 @@ "json5": "lib/cli.js" } }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -13326,28 +12693,6 @@ "verror": "1.10.0" } }, - "node_modules/jsx-ast-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", - "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.2", - "object.assign": "^4.1.2" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/keyv": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", - "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.0" - } - }, "node_modules/killable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", @@ -13380,18 +12725,6 @@ "node": "> 0.8" } }, - "node_modules/lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "dependencies": { - "invert-kv": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -13420,12 +12753,6 @@ "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", "dev": true }, - "node_modules/listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=", - "dev": true - }, "node_modules/listr": { "version": "0.14.3", "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", @@ -13635,33 +12962,6 @@ "node": ">=6" } }, - "node_modules/load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/loader-runner": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", @@ -13717,12 +13017,6 @@ "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", "dev": true }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, "node_modules/lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", @@ -13735,30 +13029,24 @@ "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", "dev": true }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "node_modules/lodash.once": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", "dev": true }, - "node_modules/lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", - "dev": true - }, "node_modules/lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", "dev": true }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, "node_modules/log-symbols": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", @@ -13999,15 +13287,6 @@ "tslib": "^2.0.3" } }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -14027,18 +13306,6 @@ "node": ">=12" } }, - "node_modules/macos-release": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.4.1.tgz", - "integrity": "sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -14072,18 +13339,6 @@ "tmpl": "1.0.x" } }, - "node_modules/map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "dependencies": { - "p-defer": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", @@ -14112,17 +13367,6 @@ "remove-accents": "0.4.2" } }, - "node_modules/md5": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", - "dev": true, - "dependencies": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "~1.1.6" - } - }, "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -14142,38 +13386,6 @@ "node": ">= 0.6" } }, - "node_modules/mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "dependencies": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mem/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mem/node_modules/p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/memoize-one": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz", @@ -14200,6 +13412,15 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -14210,16 +13431,16 @@ } }, "node_modules/micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "dependencies": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" }, "engines": { - "node": ">=8" + "node": ">=8.6" } }, "node_modules/microseconds": { @@ -14283,15 +13504,6 @@ "node": ">=6" } }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/mini-create-react-context": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", @@ -14531,12 +13743,6 @@ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "dev": true }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, "node_modules/nan": { "version": "2.14.2", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", @@ -14769,20 +13975,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-url": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", - "dev": true, - "dependencies": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -15027,12 +14219,6 @@ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, - "node_modules/octokit-pagination-methods": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz", - "integrity": "sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==", - "dev": true - }, "node_modules/oidc-client": { "version": "1.11.4", "resolved": "https://registry.npmjs.org/oidc-client/-/oidc-client-1.11.4.tgz", @@ -15144,66 +14330,12 @@ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" }, - "node_modules/os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "dependencies": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/os-name": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", - "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", - "dev": true, - "dependencies": { - "macos-release": "^2.2.0", - "windows-release": "^3.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/ospath": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=", "dev": true }, - "node_modules/p-cancelable": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", - "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/p-each-series": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", @@ -15225,15 +14357,6 @@ "node": ">=4" } }, - "node_modules/p-is-promise": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", - "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -15287,18 +14410,6 @@ "node": ">=6" } }, - "node_modules/p-timeout": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", - "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", - "dev": true, - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -15486,6 +14597,15 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/pbkdf2": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", @@ -15513,9 +14633,9 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "devOptional": true, "engines": { "node": ">=8.6" @@ -15762,27 +14882,6 @@ "node": ">= 0.8.0" } }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/pretty-bytes": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", @@ -15865,15 +14964,6 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", @@ -15999,20 +15089,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "dev": true, - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", @@ -16041,6 +15117,26 @@ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "dev": true }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/raf": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", @@ -16487,112 +15583,6 @@ "react-dom": "^15.3.0 || ^16.0.0-alpha || ^17.0.0" } }, - "node_modules/read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "dependencies": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "dependencies": { - "pify": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -16633,18 +15623,6 @@ "node": ">=8" } }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/redux": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz", @@ -16754,12 +15732,15 @@ } }, "node_modules/regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, "engines": { - "node": ">=6.5.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, "node_modules/regexpu-core": { @@ -17095,12 +16076,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -17187,15 +16162,6 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "deprecated": "https://github.com/lydell/resolve-url#deprecated" }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, "node_modules/restore-cursor": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", @@ -17226,6 +16192,16 @@ "node": ">= 4" } }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -17268,13 +16244,27 @@ "node": "6.* || >= 7.*" } }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, - "engines": { - "node": ">=0.12.0" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" } }, "node_modules/run-queue": { @@ -17566,9 +16556,9 @@ } }, "node_modules/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -17810,23 +16800,6 @@ "node": ">=0.10.0" } }, - "node_modules/shelljs": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", - "dev": true, - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/shellwords": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", @@ -17834,20 +16807,6 @@ "dev": true, "optional": true }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", @@ -18056,18 +17015,6 @@ "uuid": "bin/uuid" } }, - "node_modules/sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "dev": true, - "dependencies": { - "is-plain-obj": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -18343,15 +17290,6 @@ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -18412,24 +17350,6 @@ "node": ">=8" } }, - "node_modules/string.prototype.matchall": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.3.tgz", - "integrity": "sha512-OBxYDA2ifZQ2e13cP82dWFMaCV9CGF8GzmN4fljBVw5O5wep0lu4gacm1OL6MjROoUnB8VbkWRThqkV2YFLNxw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "has-symbols": "^1.0.1", - "internal-slot": "^1.0.2", - "regexp.prototype.flags": "^1.3.0", - "side-channel": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/string.prototype.trim": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.3.tgz", @@ -18474,25 +17394,16 @@ } }, "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", @@ -18737,85 +17648,6 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, - "node_modules/table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "dependencies": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/table/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/table/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/table/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/table/node_modules/slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/table/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/table/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/tapable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", @@ -19160,12 +17992,6 @@ "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", "dev": true }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, "node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", @@ -19181,15 +18007,6 @@ "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, - "node_modules/timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/timers-browserify": { "version": "2.0.12", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", @@ -19363,27 +18180,15 @@ "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", "dev": true }, - "node_modules/tsconfig-paths": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", - "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", - "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - } - }, "node_modules/tslib": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" }, "node_modules/tsutils": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", - "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "dependencies": { "tslib": "^1.8.1" @@ -19482,9 +18287,9 @@ } }, "node_modules/typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz", + "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -19494,12 +18299,6 @@ "node": ">=4.2.0" } }, - "node_modules/typescript-compiler": { - "version": "1.4.1-2", - "resolved": "https://registry.npmjs.org/typescript-compiler/-/typescript-compiler-1.4.1-2.tgz", - "integrity": "sha1-uk99si2RU0oZKdkACdzhYety/T8=", - "dev": true - }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -19576,24 +18375,6 @@ "imurmurhash": "^0.1.4" } }, - "node_modules/universal-user-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.1.tgz", - "integrity": "sha512-LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg==", - "dev": true, - "dependencies": { - "os-name": "^3.1.0" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/unload": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/unload/-/unload-2.2.0.tgz", @@ -19665,29 +18446,6 @@ "node": ">=8" } }, - "node_modules/unzipper": { - "version": "0.9.15", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.9.15.tgz", - "integrity": "sha512-2aaUvO4RAeHDvOCuEtth7jrHFaCKTSXPqUkXwADaLBzGbgZGzUDccoEdJ5lW+3RmfpOZYNx0Rw6F6PUzM6caIA==", - "dev": true, - "dependencies": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - } - }, - "node_modules/unzipper/node_modules/bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=", - "dev": true - }, "node_modules/upath": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", @@ -19765,27 +18523,6 @@ "requires-port": "^1.0.0" } }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -21918,21 +20655,6 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "node_modules/windows-release": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.3.3.tgz", - "integrity": "sha512-OSOGH1QYiW5yVor9TtmXKQvt2vjQqbYS+DqmsZw+r7xDwLXEeT3JGW0ZppFmHx4diyXmxt238KFR3N9jzevBRg==", - "dev": true, - "dependencies": { - "execa": "^1.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -22001,18 +20723,6 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "node_modules/write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "dependencies": { - "mkdirp": "^0.5.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", @@ -22025,18 +20735,6 @@ "typedarray-to-buffer": "^3.1.5" } }, - "node_modules/write/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/ws": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", @@ -22143,18 +20841,6 @@ "fd-slicer": "~1.1.0" } }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/zenkoclient": { "version": "1.0.0", "resolved": "git+ssh://git@github.com/scality/zenkoclient.git#6799f895e47c04d1c8940bba3f74309c35bf0090", @@ -22167,11 +20853,11 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.16.7" } }, "@babel/compat-data": { @@ -22221,21 +20907,21 @@ } }, "@babel/generator": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", - "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz", + "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", "requires": { - "@babel/types": "^7.12.13", + "@babel/types": "^7.17.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-annotate-as-pure": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", - "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.16.7" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { @@ -22269,16 +20955,18 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.12.16", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.16.tgz", - "integrity": "sha512-KbSEj8l9zYkMVHpQqM3wJNxS1d9h3U9vm/uE5tpjMbaj3lTp+0noe3KPsV5dSD9jxKnf9jO9Ip9FX5PKNZCKow==", + "version": "7.17.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", + "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-member-expression-to-functions": "^7.12.16", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13" + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" } }, "@babel/helper-create-regexp-features-plugin": { @@ -22291,6 +20979,14 @@ "regexpu-core": "^4.7.1" } }, + "@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "requires": { + "@babel/types": "^7.16.7" + } + }, "@babel/helper-explode-assignable-expression": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.13.tgz", @@ -22301,39 +20997,38 @@ } }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.16.7" } }, "@babel/helper-hoist-variables": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.12.13.tgz", - "integrity": "sha512-KSC5XSj5HreRhYQtZ3cnSnQwDzgnbdUDEFsxkN0m6Q3WrCRt72xrnZ8+h+pX7YxM7hr87zIO3a/v5p/H3TrnVw==", - "dev": true, + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.16.7" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.12.16", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.16.tgz", - "integrity": "sha512-zYoZC1uvebBFmj1wFAlXwt35JLEgecefATtKp20xalwEK8vHAixLBXTGxNrVGEmTT+gzOThUgr8UEdgtalc1BQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", + "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", "devOptional": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.16.7" } }, "@babel/helper-module-imports": { @@ -22362,18 +21057,18 @@ } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", "devOptional": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.16.7" } }, "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", "dev": true }, "@babel/helper-remap-async-to-generator": { @@ -22388,15 +21083,16 @@ } }, "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", + "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", "devOptional": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/helper-simple-access": { @@ -22418,22 +21114,22 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.16.7" } }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" }, "@babel/helper-validator-option": { - "version": "7.12.16", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.16.tgz", - "integrity": "sha512-uCgsDBPUQDvzr11ePPo4TVEocxj8RXjUVSC/Y8N1YpVAI/XDdUwGJu78xmlGhTxj2ntaWM7n9LQdRtyhOzT2YQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", "dev": true }, "@babel/helper-wrap-function": { @@ -22460,19 +21156,19 @@ } }, "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.12.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz", - "integrity": "sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==" + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", + "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==" }, "@babel/plugin-proposal-async-generator-functions": { "version": "7.12.13", @@ -22652,15 +21348,6 @@ "@babel/helper-plugin-utils": "^7.8.3" } }, - "@babel/plugin-syntax-flow": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.13.tgz", - "integrity": "sha512-J/RYxnlSLXZLVR7wTRsozxKT8qbsx1mNKJzXEEjQ0Kjx1ZACcyHgbanNWNCFtc36IzuWhYWPpvJFFoexoOWFmA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, "@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", @@ -22751,6 +21438,15 @@ "@babel/helper-plugin-utils": "^7.12.13" } }, + "@babel/plugin-syntax-typescript": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", + "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, "@babel/plugin-transform-arrow-functions": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.13.tgz", @@ -22851,16 +21547,6 @@ "@babel/helper-plugin-utils": "^7.12.13" } }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.12.13.tgz", - "integrity": "sha512-39/t9HtN+Jlc7EEY6oCSCf3kRrKIl2JULOGPnHZiaRjoYZEFaDXDZI32uE2NosQRh8o6N9B+8iGvDK7ToJhJaw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/plugin-syntax-flow": "^7.12.13" - } - }, "@babel/plugin-transform-for-of": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.13.tgz", @@ -23095,6 +21781,17 @@ "@babel/helper-plugin-utils": "^7.12.13" } }, + "@babel/plugin-transform-typescript": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", + "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-typescript": "^7.16.7" + } + }, "@babel/plugin-transform-unicode-escapes": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz", @@ -23114,24 +21811,6 @@ "@babel/helper-plugin-utils": "^7.12.13" } }, - "@babel/polyfill": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.12.1.tgz", - "integrity": "sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==", - "dev": true, - "requires": { - "core-js": "^2.6.5", - "regenerator-runtime": "^0.13.4" - }, - "dependencies": { - "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "dev": true - } - } - }, "@babel/preset-env": { "version": "7.12.16", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.16.tgz", @@ -23214,16 +21893,6 @@ } } }, - "@babel/preset-flow": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.12.13.tgz", - "integrity": "sha512-gcEjiwcGHa3bo9idURBp5fmJPcyFPOszPQjztXrOjUE2wWVqc6fIVJPgWPIQksaQ5XZ2HWiRsf2s1fRGVjUtVw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/plugin-transform-flow-strip-types": "^7.12.13" - } - }, "@babel/preset-modules": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", @@ -23250,6 +21919,17 @@ "@babel/plugin-transform-react-pure-annotations": "^7.12.1" } }, + "@babel/preset-typescript": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", + "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-typescript": "^7.16.7" + } + }, "@babel/runtime": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.13.tgz", @@ -23268,38 +21948,38 @@ } }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", + "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.3", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.3", + "@babel/types": "^7.17.0", "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" } }, @@ -23532,6 +22212,55 @@ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" }, + "@eslint/eslintrc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.0.tgz", + "integrity": "sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.1", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "globals": { + "version": "13.12.1", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", + "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, "@floating-ui/core": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-0.3.1.tgz", @@ -23644,6 +22373,23 @@ "integrity": "sha512-IKWcvDG82D0N+3ZjMSbdHul6TgL2Dd68aXyijLvc1mUCzBChvQwS6YDsXRrc9WuIjUPb9nluaVIIrmg3V1JMGQ==", "requires": {} }, + "@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -24150,186 +22896,40 @@ } } }, - "@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "dev": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, - "@octokit/auth-token": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.5.tgz", - "integrity": "sha512-BpGYsPgJt05M7/L/5FoE1PiAbdxXFZkX/3kDYcsvd1v6UhlnE5e96dTDr0ezX/EFwciQxf3cNV0loipsURU+WA==", - "dev": true, - "requires": { - "@octokit/types": "^6.0.3" - } - }, - "@octokit/endpoint": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.11.tgz", - "integrity": "sha512-fUIPpx+pZyoLW4GCs3yMnlj2LfoXTWDUVPTC4V3MUEKZm48W+XYpeWSZCv+vYF1ZABUm2CqnDVf1sFtIYrj7KQ==", + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "requires": { - "@octokit/types": "^6.0.3", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - }, - "dependencies": { - "universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", - "dev": true - } + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" } }, - "@octokit/openapi-types": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-4.0.4.tgz", - "integrity": "sha512-31zY8JIuz3h6RAFOnyA8FbOwhILILiBu1qD81RyZZWY7oMBhIdBn6MaAmnnptLhB4jk0g50nkQkUVP4kUzppcA==", + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true }, - "@octokit/plugin-paginate-rest": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz", - "integrity": "sha512-jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q==", - "dev": true, - "requires": { - "@octokit/types": "^2.0.1" - }, - "dependencies": { - "@octokit/types": { - "version": "2.16.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz", - "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==", - "dev": true, - "requires": { - "@types/node": ">= 8" - } - } - } - }, - "@octokit/plugin-request-log": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.3.tgz", - "integrity": "sha512-4RFU4li238jMJAzLgAwkBAw+4Loile5haQMQr+uhFq27BmyJXcXSKvoQKqh0agsZEiUlW6iSv3FAgvmGkur7OQ==", - "dev": true, - "requires": {} - }, - "@octokit/plugin-rest-endpoint-methods": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz", - "integrity": "sha512-EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==", + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "requires": { - "@octokit/types": "^2.0.1", - "deprecation": "^2.3.1" - }, - "dependencies": { - "@octokit/types": { - "version": "2.16.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz", - "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==", - "dev": true, - "requires": { - "@types/node": ">= 8" - } - } + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" } }, - "@octokit/request": { - "version": "5.4.14", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.4.14.tgz", - "integrity": "sha512-VkmtacOIQp9daSnBmDI92xNIeLuSRDOIuplp/CJomkvzt7M18NXgG044Cx/LFKLgjKt9T2tZR6AtJayba9GTSA==", - "dev": true, - "requires": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.0.0", - "@octokit/types": "^6.7.1", - "deprecation": "^2.0.0", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.1", - "once": "^1.4.0", - "universal-user-agent": "^6.0.0" - }, - "dependencies": { - "@octokit/request-error": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.5.tgz", - "integrity": "sha512-T/2wcCFyM7SkXzNoyVNWjyVlUwBvW3igM3Btr/eKYiPmucXTtkxt2RBsf6gn3LTzaLSLTQtNmvg+dGsOxQrjZg==", - "dev": true, - "requires": { - "@octokit/types": "^6.0.3", - "deprecation": "^2.0.0", - "once": "^1.4.0" - } - }, - "universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", - "dev": true - } - } - }, - "@octokit/request-error": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.1.tgz", - "integrity": "sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA==", - "dev": true, - "requires": { - "@octokit/types": "^2.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - }, - "dependencies": { - "@octokit/types": { - "version": "2.16.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz", - "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==", - "dev": true, - "requires": { - "@types/node": ">= 8" - } - } - } - }, - "@octokit/rest": { - "version": "16.43.2", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.43.2.tgz", - "integrity": "sha512-ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ==", - "dev": true, - "requires": { - "@octokit/auth-token": "^2.4.0", - "@octokit/plugin-paginate-rest": "^1.1.1", - "@octokit/plugin-request-log": "^1.0.0", - "@octokit/plugin-rest-endpoint-methods": "2.4.0", - "@octokit/request": "^5.2.0", - "@octokit/request-error": "^1.0.2", - "atob-lite": "^2.0.0", - "before-after-hook": "^2.0.0", - "btoa-lite": "^1.0.0", - "deprecation": "^2.0.0", - "lodash.get": "^4.4.2", - "lodash.set": "^4.3.2", - "lodash.uniq": "^4.5.0", - "octokit-pagination-methods": "^1.1.0", - "once": "^1.4.0", - "universal-user-agent": "^4.0.0" - } - }, - "@octokit/types": { - "version": "6.8.5", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.8.5.tgz", - "integrity": "sha512-ZsQawftZoi0kSF2pCsdgLURbOjtVcHnBOXiSxBKSNF56CRjARt5rb/g8WJgqB8vv4lgUEHrv06EdDKYQ22vA9Q==", + "@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "dev": true, "requires": { - "@octokit/openapi-types": "^4.0.3" + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" } }, "@samverschueren/stream-to-observable": { @@ -24349,12 +22949,6 @@ "@floating-ui/dom": "^0.1.10" } }, - "@sindresorhus/is": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", - "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", - "dev": true - }, "@sinonjs/commons": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", @@ -24453,6 +23047,22 @@ "@types/node": "*" } }, + "@types/history": { + "version": "4.7.11", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", + "dev": true + }, + "@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "dev": true, + "requires": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, "@types/html-minifier-terser": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", @@ -24485,15 +23095,9 @@ } }, "@types/json-schema": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", - "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==" - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" }, "@types/minimatch": { "version": "3.0.3", @@ -24526,9 +23130,9 @@ "dev": true }, "@types/react": { - "version": "17.0.38", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.38.tgz", - "integrity": "sha512-SI92X1IA+FMnP3qM5m4QReluXzhcmovhZnLNm3pyeQlooi02qI7sLiepEYqT678uNiyc25XfCqxREFpy3W7YhQ==", + "version": "17.0.39", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.39.tgz", + "integrity": "sha512-UVavlfAxDd/AgAacMa60Azl7ygyQNRwC/DsHZmKgNvPmRR5p70AJ5Q9EAmL2NWOJmeV+vVUI4IAP7GZrN8h8Ug==", "dev": true, "requires": { "@types/prop-types": "*", @@ -24537,14 +23141,35 @@ } }, "@types/react-dom": { - "version": "17.0.11", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.11.tgz", - "integrity": "sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q==", + "version": "17.0.13", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.13.tgz", + "integrity": "sha512-wEP+B8hzvy6ORDv1QBhcQia4j6ea4SFIBttHYpXKPFZRviBvknq0FRh3VrIxeXUmsPkwuXVZrVGG7KUVONmXCQ==", "dev": true, "requires": { "@types/react": "*" } }, + "@types/react-router": { + "version": "5.1.18", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.18.tgz", + "integrity": "sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g==", + "dev": true, + "requires": { + "@types/history": "^4.7.11", + "@types/react": "*" + } + }, + "@types/react-router-dom": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "dev": true, + "requires": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, "@types/react-test-renderer": { "version": "17.0.1", "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-17.0.1.tgz", @@ -24584,6 +23209,17 @@ "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==", "dev": true }, + "@types/styled-components": { + "version": "5.1.24", + "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.24.tgz", + "integrity": "sha512-mz0fzq2nez+Lq5IuYammYwWgyLUE6OMAJTQL9D8hFLP4Pkh7gVYJii/VQWxq8/TK34g/OrkehXaFNdcEKcItug==", + "dev": true, + "requires": { + "@types/hoist-non-react-statics": "*", + "@types/react": "*", + "csstype": "^3.0.2" + } + }, "@types/tapable": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz", @@ -24663,42 +23299,269 @@ "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", "dev": true }, - "@typescript-eslint/experimental-utils": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz", - "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==", + "@typescript-eslint/eslint-plugin": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.13.0.tgz", + "integrity": "sha512-vLktb2Uec81fxm/cfz2Hd6QaWOs8qdmVAZXLdOBX6JFJDhf6oDZpMzZ4/LZ6SFM/5DgDcxIMIvy3F+O9yZBuiQ==", "dev": true, "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.34.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" + "@typescript-eslint/scope-manager": "5.13.0", + "@typescript-eslint/type-utils": "5.13.0", + "@typescript-eslint/utils": "5.13.0", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, "dependencies": { - "eslint-utils": { + "@typescript-eslint/typescript-estree": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz", + "integrity": "sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/visitor-keys": "5.13.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.13.0.tgz", + "integrity": "sha512-+9oHlPWYNl6AwwoEt5TQryEHwiKRVjz7Vk6kaBeD3/kwHE5YqTGHtm/JZY8Bo9ITOeKutFaXnBlMgSATMJALUQ==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.13.0", + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/typescript-estree": "5.13.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "dependencies": { + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + } + } + }, + "array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true } } }, - "@typescript-eslint/typescript-estree": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", - "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", + "@typescript-eslint/parser": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.13.0.tgz", + "integrity": "sha512-GdrU4GvBE29tm2RqWOM0P5QfCtgCyN4hXICj/X9ibKED16136l9ZpoJvCL5pSKtmJzA+NRDzQ312wWMejCVVfg==", "dev": true, "requires": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "@typescript-eslint/scope-manager": "5.13.0", + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/typescript-estree": "5.13.0", + "debug": "^4.3.2" + }, + "dependencies": { + "@typescript-eslint/typescript-estree": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz", + "integrity": "sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/visitor-keys": "5.13.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + } + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz", + "integrity": "sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/visitor-keys": "5.13.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.13.0.tgz", + "integrity": "sha512-/nz7qFizaBM1SuqAKb7GLkcNn2buRdDgZraXlkhz+vUGiN1NZ9LzkA595tHHeduAiS2MsHqMNhE2zNzGdw43Yg==", + "dev": true, + "requires": { + "@typescript-eslint/utils": "5.13.0", + "debug": "^4.3.2", + "tsutils": "^3.21.0" + }, + "dependencies": { + "@typescript-eslint/typescript-estree": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz", + "integrity": "sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/visitor-keys": "5.13.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.13.0.tgz", + "integrity": "sha512-+9oHlPWYNl6AwwoEt5TQryEHwiKRVjz7Vk6kaBeD3/kwHE5YqTGHtm/JZY8Bo9ITOeKutFaXnBlMgSATMJALUQ==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.13.0", + "@typescript-eslint/types": "5.13.0", + "@typescript-eslint/typescript-estree": "5.13.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "dependencies": { + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + } + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + } + } + }, + "@typescript-eslint/types": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.13.0.tgz", + "integrity": "sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg==", + "dev": true + }, + "@typescript-eslint/visitor-keys": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.13.0.tgz", + "integrity": "sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.13.0", + "eslint-visitor-keys": "^3.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + } } }, "@webassemblyjs/ast": { @@ -24917,9 +23780,9 @@ } }, "acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "requires": {} }, @@ -25006,9 +23869,9 @@ "dev": true }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "3.2.1", @@ -25091,19 +23954,6 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, - "array-includes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz", - "integrity": "sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "get-intrinsic": "^1.0.1", - "is-string": "^1.0.5" - } - }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", @@ -25166,18 +24016,6 @@ "es-abstract": "^1.18.0-next.1" } }, - "array.prototype.flatmap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", - "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "function-bind": "^1.1.1" - } - }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -25279,12 +24117,6 @@ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, - "atob-lite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz", - "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=", - "dev": true - }, "attr-accept": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz", @@ -25585,12 +24417,6 @@ "tweetnacl": "^0.14.3" } }, - "before-after-hook": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.1.tgz", - "integrity": "sha512-5ekuQOvO04MDj7kYZJaMab2S8SPjGJbotVNyv7QYFCOAwrGZs/YnoDNlh1U+m5hl7H2D/+n0taaAV/tfyd3KMA==", - "dev": true - }, "bfj": { "version": "6.1.2", "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz", @@ -25613,16 +24439,6 @@ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" }, - "binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", - "dev": true, - "requires": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - } - }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -25897,12 +24713,6 @@ "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==" }, - "btoa-lite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", - "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", - "dev": true - }, "buffer": { "version": "4.9.2", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", @@ -25930,23 +24740,11 @@ "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", "dev": true }, - "buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "dev": true - }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, - "buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", - "dev": true - }, "builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", @@ -25999,35 +24797,6 @@ "unset-value": "^1.0.0" } }, - "cacheable-request": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", - "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", - "dev": true, - "requires": { - "clone-response": "1.0.2", - "get-stream": "3.0.0", - "http-cache-semantics": "3.8.1", - "keyv": "3.0.0", - "lowercase-keys": "1.0.0", - "normalize-url": "2.0.1", - "responselike": "1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "lowercase-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", - "dev": true - } - } - }, "cachedir": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", @@ -26092,23 +24861,6 @@ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, - "chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", - "dev": true, - "requires": { - "traverse": ">=0.3.0 <0.4" - }, - "dependencies": { - "traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", - "dev": true - } - } - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -26119,18 +24871,6 @@ "supports-color": "^5.3.0" } }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", - "dev": true - }, "check-more-types": { "version": "2.24.0", "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", @@ -26339,12 +25079,6 @@ } } }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true - }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -26360,15 +25094,6 @@ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -26419,7 +25144,8 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true + "dev": true, + "optional": true }, "combined-stream": { "version": "1.0.8", @@ -26591,12 +25317,6 @@ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true - }, "content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", @@ -26787,12 +25507,6 @@ } } }, - "crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", - "dev": true - }, "crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", @@ -27312,9 +26026,9 @@ "dev": true }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "requires": { "ms": "2.1.2" } @@ -27330,15 +26044,6 @@ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, "deep-diff": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/deep-diff/-/deep-diff-0.3.8.tgz", @@ -27486,12 +26191,6 @@ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "dev": true }, - "deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true - }, "des.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", @@ -27547,6 +26246,15 @@ } } }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, "discontinuous-range": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", @@ -27676,21 +26384,6 @@ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, "duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", @@ -27985,372 +26678,269 @@ } }, "eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.10.0.tgz", + "integrity": "sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", + "@eslint/eslintrc": "^1.2.0", + "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "minimist": "^1.2.5" + "color-convert": "^2.0.1" } }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } - } - } - }, - "eslint-import-resolver-node": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", - "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", - "dev": true, - "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "ms": "2.0.0" + "color-name": "~1.1.4" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true - } - } - }, - "eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", - "dev": true, - "requires": { - "debug": "^2.6.9", - "pkg-dir": "^2.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { - "ms": "2.0.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "requires": { - "locate-path": "^2.0.0" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" } }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "requires": { - "p-try": "^1.0.0" + "is-glob": "^4.0.3" } }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "globals": { + "version": "13.12.1", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", + "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", "dev": true, "requires": { - "p-limit": "^1.1.0" + "type-fest": "^0.20.2" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "requires": { - "find-up": "^2.1.0" + "argparse": "^2.0.1" } - } - } - }, - "eslint-plugin-cypress": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.11.2.tgz", - "integrity": "sha512-1SergF1sGbVhsf7MYfOLiBhdOg6wqyeV9pXUAIDIffYTGMN3dTBQS9nFAzhLsHhO+Bn0GaVM1Ecm71XUidQ7VA==", - "dev": true, - "requires": { - "globals": "^11.12.0" - } - }, - "eslint-plugin-flowtype": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.7.0.tgz", - "integrity": "sha512-M+hxhSCk5QBEValO5/UqrS4UunT+MgplIJK5wA1sCtXjzBcZkpTGRwxmLHhGpbHcrmQecgt6ZL/KDdXWqGB7VA==", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } - }, - "eslint-plugin-flowtype-errors": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype-errors/-/eslint-plugin-flowtype-errors-4.4.0.tgz", - "integrity": "sha512-vlDxFUaAWRtI1Koc2YOWLTdORV5dmvqChkKyySE6b5VXxiWH7C0Ax7RJ4s3yRdt8TOk968OU7jEwRKL2l8aTIQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.12.5", - "core-js": "3.8.1", - "find-up": "^5.0.0", - "slash": "^3.0.0" - }, - "dependencies": { - "core-js": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.1.tgz", - "integrity": "sha512-9Id2xHY1W7m8hCl8NkhQn5CufmF/WuR30BTRewvCXc1aZd3kMECwNZ69ndLbekKfakw9Rf2Xyc+QR6E7Gg+obg==", - "dev": true }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" } }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "requires": { - "p-locate": "^5.0.0" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" } }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { - "p-limit": "^3.0.2" + "shebang-regex": "^3.0.0" } - } - } - }, - "eslint-plugin-import": { - "version": "2.22.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", - "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", - "dev": true, - "requires": { - "array-includes": "^3.1.1", - "array.prototype.flat": "^1.2.3", - "contains-path": "^0.1.0", - "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.4", - "eslint-module-utils": "^2.6.0", - "has": "^1.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.1", - "read-pkg-up": "^2.0.0", - "resolve": "^1.17.0", - "tsconfig-paths": "^3.9.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "ms": "2.0.0" + "has-flag": "^4.0.0" } }, - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "prelude-ls": "^1.2.1" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true - } - } - }, - "eslint-plugin-jest": { - "version": "23.20.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-23.20.0.tgz", - "integrity": "sha512-+6BGQt85OREevBDWCvhqj1yYA4+BFK4XnRZSGJionuEYmcglMZYLNNBBemwzbqUAckURaHdJSBcjHPyrtypZOw==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "^2.5.0" - } - }, - "eslint-plugin-react": { - "version": "7.22.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.22.0.tgz", - "integrity": "sha512-p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA==", - "dev": true, - "requires": { - "array-includes": "^3.1.1", - "array.prototype.flatmap": "^1.2.3", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "object.entries": "^1.1.2", - "object.fromentries": "^2.0.2", - "object.values": "^1.1.1", - "prop-types": "^15.7.2", - "resolve": "^1.18.1", - "string.prototype.matchall": "^4.0.2" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { - "esutils": "^2.0.2" + "isexe": "^2.0.0" } } } }, - "eslint-plugin-react-hooks": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-3.0.0.tgz", - "integrity": "sha512-EjxTHxjLKIBWFgDJdhKKzLh5q+vjTFrqNZX36uIxWS4OfyXe5DawqPj3U5qeJ1ngLwatjzQnmR0Lz0J0YH3kxw==", - "dev": true, - "requires": {} - }, "eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -28361,15 +26951,6 @@ "estraverse": "^4.1.1" } }, - "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, "eslint-visitor-keys": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", @@ -28377,14 +26958,28 @@ "dev": true }, "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", "dev": true, "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" + "acorn": "^8.7.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.3.0" + }, + "dependencies": { + "acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + } } }, "esprima": { @@ -28724,28 +27319,6 @@ } } }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "dependencies": { - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - } - } - }, "extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", @@ -28854,6 +27427,19 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, "fast-json-patch": { "version": "3.0.0-1", "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.0.0-1.tgz", @@ -28870,6 +27456,15 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, "faye-websocket": { "version": "0.11.3", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", @@ -28913,12 +27508,12 @@ } }, "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "requires": { - "flat-cache": "^2.0.1" + "flat-cache": "^3.0.4" } }, "file-loader": { @@ -29130,296 +27725,21 @@ } }, "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } + "flatted": "^3.1.0", + "rimraf": "^3.0.2" } }, "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "flow-bin": { - "version": "0.118.0", - "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.118.0.tgz", - "integrity": "sha512-jlbUu0XkbpXeXhan5xyTqVK1jmEKNxE8hpzznI3TThHTr76GiFwK0iRzhDo4KNy+S9h/KxHaqVhTP86vA6wHCg==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, - "flow-typed": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/flow-typed/-/flow-typed-2.6.2.tgz", - "integrity": "sha512-brTh8SukLidVpR1u8hSR3OcZSvLtptpwLEGgEhK/qBhWCB7zxPZmnmChYi40JQH6vB448ck380+qbkDo3fJ6qA==", - "dev": true, - "requires": { - "@babel/polyfill": "^7.0.0", - "@octokit/rest": "^16.33.1", - "colors": "^1.3.2", - "flowgen": "^1.9.0", - "fs-extra": "^7.0.0", - "glob": "^7.1.3", - "got": "^8.3.2", - "md5": "^2.2.1", - "mkdirp": "^0.5.1", - "prettier": "^1.18.2", - "rimraf": "^2.6.2", - "semver": "^5.5.1", - "table": "^5.0.2", - "through": "^2.3.8", - "unzipper": "^0.9.3", - "which": "^1.3.1", - "yargs": "^12.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "flowgen": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/flowgen/-/flowgen-1.13.0.tgz", - "integrity": "sha512-xgdbeWfhY5yayQ3PUTaPn9a0tPK21m5SEJSFZDZf0A0TuoLKYVXU3fhhAN9pokjDcb0E0FGh7EO3t3YNf/iXTw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/highlight": "^7.10.4", - "commander": "^6.1.0", - "lodash": "^4.17.20", - "prettier": "^2.1.1", - "shelljs": "^0.8.4", - "typescript": "^4.0.2", - "typescript-compiler": "^1.4.1-2" - }, - "dependencies": { - "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true - }, - "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", - "dev": true - } - } - }, "flush-write-stream": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", @@ -29546,38 +27866,6 @@ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "optional": true }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -29681,9 +27969,9 @@ } }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "devOptional": true, "requires": { "is-glob": "^4.0.1" @@ -29751,45 +28039,6 @@ "pinkie-promise": "^2.0.0" } }, - "got": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", - "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", - "dev": true, - "requires": { - "@sindresorhus/is": "^0.7.0", - "cacheable-request": "^2.1.1", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "into-stream": "^3.1.0", - "is-retry-allowed": "^1.1.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "mimic-response": "^1.0.0", - "p-cancelable": "^0.4.0", - "p-timeout": "^2.0.1", - "pify": "^3.0.0", - "safe-buffer": "^5.1.1", - "timed-out": "^4.0.1", - "url-parse-lax": "^3.0.0", - "url-to-options": "^1.0.1" - }, - "dependencies": { - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, "graceful-fs": { "version": "4.2.6", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", @@ -29878,27 +28127,12 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, - "has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", - "dev": true - }, "has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true }, - "has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "dev": true, - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -30196,12 +28430,6 @@ "entities": "^2.0.0" } }, - "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", - "dev": true - }, "http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", @@ -30494,136 +28722,6 @@ "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", "dev": true }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - } - } - }, "internal-ip": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", @@ -30634,17 +28732,6 @@ "ipaddr.js": "^1.9.0" } }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, "internmap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.0.tgz", @@ -30656,22 +28743,6 @@ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true }, - "into-stream": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", - "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", - "dev": true, - "requires": { - "from2": "^2.1.1", - "p-is-promise": "^1.1.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, "ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", @@ -30846,9 +28917,9 @@ "dev": true }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "devOptional": true, "requires": { "is-extglob": "^2.1.1" @@ -30882,12 +28953,6 @@ "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", "dev": true }, - "is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", - "dev": true - }, "is-observable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", @@ -30929,18 +28994,6 @@ "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", "dev": true }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true - }, "is-promise": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", @@ -30957,12 +29010,6 @@ "has-symbols": "^1.0.1" } }, - "is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", - "dev": true - }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", @@ -31124,16 +29171,6 @@ "istanbul-lib-report": "^3.0.0" } }, - "isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "dev": true, - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - } - }, "jest": { "version": "25.5.4", "resolved": "https://registry.npmjs.org/jest/-/jest-25.5.4.tgz", @@ -32685,12 +30722,6 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -32744,15 +30775,6 @@ "minimist": "^1.2.0" } }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -32765,25 +30787,6 @@ "verror": "1.10.0" } }, - "jsx-ast-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", - "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", - "dev": true, - "requires": { - "array-includes": "^3.1.2", - "object.assign": "^4.1.2" - } - }, - "keyv": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", - "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", - "dev": true, - "requires": { - "json-buffer": "3.0.0" - } - }, "killable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", @@ -32807,15 +30810,6 @@ "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", "dev": true }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -32838,12 +30832,6 @@ "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", "dev": true }, - "listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=", - "dev": true - }, "listr": { "version": "0.14.3", "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", @@ -33005,29 +30993,6 @@ } } }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - } - } - }, "loader-runner": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", @@ -33074,12 +31039,6 @@ "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", "dev": true }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, "lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", @@ -33092,30 +31051,24 @@ "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", "dev": true }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "lodash.once": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", "dev": true }, - "lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", - "dev": true - }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", "dev": true }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, "log-symbols": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", @@ -33296,12 +31249,6 @@ "tslib": "^2.0.3" } }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -33315,12 +31262,6 @@ "resolved": "https://registry.npmjs.org/luxon/-/luxon-2.3.0.tgz", "integrity": "sha512-gv6jZCV+gGIrVKhO90yrsn8qXPKD8HYZJtrUDSfEbow8Tkw84T9OnCyJhWvnJIaIF/tBuiAjZuQHUt1LddX2mg==" }, - "macos-release": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.4.1.tgz", - "integrity": "sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg==", - "dev": true - }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -33347,15 +31288,6 @@ "tmpl": "1.0.x" } }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", @@ -33378,17 +31310,6 @@ "remove-accents": "0.4.2" } }, - "md5": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", - "dev": true, - "requires": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "~1.1.6" - } - }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -33405,31 +31326,6 @@ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - }, - "dependencies": { - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true - } - } - }, "memoize-one": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz", @@ -33456,6 +31352,12 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -33463,13 +31365,13 @@ "dev": true }, "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "requires": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" } }, "microseconds": { @@ -33517,12 +31419,6 @@ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true - }, "mini-create-react-context": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", @@ -33714,12 +31610,6 @@ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "dev": true }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, "nan": { "version": "2.14.2", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", @@ -33921,17 +31811,6 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "devOptional": true }, - "normalize-url": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", - "dev": true, - "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" - } - }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -34109,12 +31988,6 @@ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, - "octokit-pagination-methods": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz", - "integrity": "sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==", - "dev": true - }, "oidc-client": { "version": "1.11.4", "resolved": "https://registry.npmjs.org/oidc-client/-/oidc-client-1.11.4.tgz", @@ -34207,51 +32080,12 @@ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "os-name": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", - "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", - "dev": true, - "requires": { - "macos-release": "^2.2.0", - "windows-release": "^3.1.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, "ospath": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=", "dev": true }, - "p-cancelable": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", - "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", - "dev": true - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, "p-each-series": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", @@ -34264,12 +32098,6 @@ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, - "p-is-promise": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", - "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", - "dev": true - }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -34305,15 +32133,6 @@ "retry": "^0.12.0" } }, - "p-timeout": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", - "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", - "dev": true, - "requires": { - "p-finally": "^1.0.0" - } - }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -34473,6 +32292,12 @@ } } }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, "pbkdf2": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", @@ -34497,9 +32322,9 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "devOptional": true }, "pify": { @@ -34692,18 +32517,6 @@ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true - }, - "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", - "dev": true - }, "pretty-bytes": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", @@ -34767,12 +32580,6 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, "promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", @@ -34890,17 +32697,6 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "dev": true, - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", @@ -34922,6 +32718,12 @@ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "dev": true }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, "raf": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", @@ -35261,89 +33063,6 @@ "integrity": "sha512-wg3LWkUpG21lhv+cZvNy+p0+vtclZw+9nP2vO6T9PKT50EN1cUq37Dq6FzcM38h/c2domE0gsUhb6jHXtGogAA==", "requires": {} }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - }, - "dependencies": { - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - } - } - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -35380,15 +33099,6 @@ "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==", "dev": true }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, "redux": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz", @@ -35482,9 +33192,9 @@ } }, "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, "regexpu-core": { @@ -35765,12 +33475,6 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -35842,15 +33546,6 @@ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "requires": { - "lowercase-keys": "^1.0.0" - } - }, "restore-cursor": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", @@ -35872,6 +33567,12 @@ "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", "dev": true }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -35905,11 +33606,14 @@ "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", "dev": true }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } }, "run-queue": { "version": "1.0.3", @@ -36149,9 +33853,9 @@ } }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "requires": { "lru-cache": "^6.0.0" } @@ -36359,17 +34063,6 @@ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, - "shelljs": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", - "dev": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, "shellwords": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", @@ -36377,17 +34070,6 @@ "dev": true, "optional": true }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", @@ -36566,15 +34248,6 @@ } } }, - "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "dev": true, - "requires": { - "is-plain-obj": "^1.0.0" - } - }, "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -36812,12 +34485,6 @@ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true - }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -36870,21 +34537,6 @@ "strip-ansi": "^6.0.0" } }, - "string.prototype.matchall": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.3.tgz", - "integrity": "sha512-OBxYDA2ifZQ2e13cP82dWFMaCV9CGF8GzmN4fljBVw5O5wep0lu4gacm1OL6MjROoUnB8VbkWRThqkV2YFLNxw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "has-symbols": "^1.0.1", - "internal-slot": "^1.0.2", - "regexp.prototype.flags": "^1.3.0", - "side-channel": "^1.0.3" - } - }, "string.prototype.trim": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.3.tgz", @@ -36917,19 +34569,13 @@ } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", @@ -37094,69 +34740,6 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, "tapable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", @@ -37423,12 +35006,6 @@ "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", "dev": true }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, "through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", @@ -37444,12 +35021,6 @@ "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true - }, "timers-browserify": { "version": "2.0.12", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", @@ -37591,27 +35162,15 @@ "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", "dev": true }, - "tsconfig-paths": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", - "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - } - }, "tslib": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" }, "tsutils": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", - "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "requires": { "tslib": "^1.8.1" @@ -37691,15 +35250,9 @@ } }, "typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", - "dev": true - }, - "typescript-compiler": { - "version": "1.4.1-2", - "resolved": "https://registry.npmjs.org/typescript-compiler/-/typescript-compiler-1.4.1-2.tgz", - "integrity": "sha1-uk99si2RU0oZKdkACdzhYety/T8=", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz", + "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==", "dev": true }, "unicode-canonical-property-names-ecmascript": { @@ -37763,21 +35316,6 @@ "imurmurhash": "^0.1.4" } }, - "universal-user-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.1.tgz", - "integrity": "sha512-LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg==", - "dev": true, - "requires": { - "os-name": "^3.1.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, "unload": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/unload/-/unload-2.2.0.tgz", @@ -37835,31 +35373,6 @@ "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", "dev": true }, - "unzipper": { - "version": "0.9.15", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.9.15.tgz", - "integrity": "sha512-2aaUvO4RAeHDvOCuEtth7jrHFaCKTSXPqUkXwADaLBzGbgZGzUDccoEdJ5lW+3RmfpOZYNx0Rw6F6PUzM6caIA==", - "dev": true, - "requires": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - }, - "dependencies": { - "bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=", - "dev": true - } - } - }, "upath": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", @@ -37915,21 +35428,6 @@ "requires-port": "^1.0.0" } }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "requires": { - "prepend-http": "^2.0.0" - } - }, - "url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", - "dev": true - }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -39744,15 +37242,6 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "windows-release": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.3.3.tgz", - "integrity": "sha512-OSOGH1QYiW5yVor9TtmXKQvt2vjQqbYS+DqmsZw+r7xDwLXEeT3JGW0ZppFmHx4diyXmxt238KFR3N9jzevBRg==", - "dev": true, - "requires": { - "execa": "^1.0.0" - } - }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -39805,26 +37294,6 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } - } - }, "write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", @@ -39914,12 +37383,6 @@ "fd-slicer": "~1.1.0" } }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - }, "zenkoclient": { "version": "git+ssh://git@github.com/scality/zenkoclient.git#6799f895e47c04d1c8940bba3f74309c35bf0090", "integrity": "sha512-qFFoetQ/ENJrXrUqT1kDrWSqNaFZ4Bat4LSvb0v5+XDi2L6iWiGM8mqYSFax85KXXpz8JLhqmn+be3uh1LciUg==", diff --git a/package.json b/package.json index b5b9c65a9..5f66038f3 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "test": "jest", "test:coverage": "jest --coverage --ci", - "test:lint": "eslint --ext js --ext jsx src", + "test:lint": "eslint src", "start:dev": "webpack-dev-server --config webpack.dev.js", "build": "webpack -p --progress --config webpack.prod.js", "cypress:run": "cypress run", @@ -19,9 +19,16 @@ "@babel/core": "^7.8.4", "@babel/plugin-proposal-class-properties": "^7.8.3", "@babel/preset-env": "^7.8.4", - "@babel/preset-flow": "^7.8.3", "@babel/preset-react": "^7.8.3", + "@babel/preset-typescript": "^7.16.7", "@testing-library/react-hooks": "^7.0.2", + "@types/react": "^17.0.39", + "@types/react-dom": "^17.0.13", + "@types/react-router": "^5.1.18", + "@types/react-router-dom": "^5.3.3", + "@types/styled-components": "^5.1.24", + "@typescript-eslint/eslint-plugin": "^5.13.0", + "@typescript-eslint/parser": "^5.13.0", "@welldone-software/why-did-you-render": "^4.0.5", "babel-eslint": "^10.0.3", "babel-loader": "^8.0.6", @@ -30,16 +37,7 @@ "cypress": "^6.5.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.2", - "eslint": "^6.8.0", - "eslint-plugin-cypress": "^2.11.1", - "eslint-plugin-flowtype": "^4.6.0", - "eslint-plugin-flowtype-errors": "^4.1.0", - "eslint-plugin-import": "^2.20.1", - "eslint-plugin-jest": "^23.7.0", - "eslint-plugin-react": "^7.18.3", - "eslint-plugin-react-hooks": "^3.0.0", - "flow-bin": "^0.118.0", - "flow-typed": "^2.6.2", + "eslint": "^8.10.0", "html-loader": "^1.0.0", "html-webpack-plugin": "^4.0.3", "identity-obj-proxy": "^3.0.0", @@ -47,6 +45,7 @@ "redux-logger": "^3.0.6", "redux-mock-store": "^1.5.4", "style-loader": "^1.1.3", + "typescript": "^4.6.2", "webpack": "^4.41.5", "webpack-bundle-analyzer": "^3.9.0", "webpack-cli": "^3.3.10", diff --git a/src/js/IAMClient.js b/src/js/IAMClient.ts similarity index 97% rename from src/js/IAMClient.js rename to src/js/IAMClient.ts index cf224797e..03063f18a 100644 --- a/src/js/IAMClient.js +++ b/src/js/IAMClient.ts @@ -1,13 +1,9 @@ -// @noflow - import type { AppState, AssumeRoleParams, OIDCState } from '../types/state'; import type { Credentials } from '../types/zenko'; import IAM from 'aws-sdk/clients/iam'; import type { IAMClient as IAMClientInterface } from '../types/iam'; import { getClients } from '../react/utils/actions'; - export const rolePathName = 'scality-internal/storage-manager-role'; - export function getAssumeRoleWithWebIdentityParams( oidc: OIDCState, accountID: string, @@ -18,7 +14,6 @@ export function getAssumeRoleWithWebIdentityParams( RoleSessionName: oidc.user.profile.sub, }; } - export function getAssumeRoleWithWebIdentityIAM( state: AppState, accountName: string, @@ -26,11 +21,10 @@ export function getAssumeRoleWithWebIdentityIAM( const { oidc, auth, configuration } = state; const { stsClient } = getClients(state); const accounts = configuration.latest.users; - const account = accounts.find(a => a.userName === accountName); - + const account = accounts.find((a) => a.userName === accountName); if (!account || !oidc || !oidc.user) return Promise.reject(); const assumeRoleParams = getAssumeRoleWithWebIdentityParams(oidc, account.id); - return stsClient.assumeRoleWithWebIdentity(assumeRoleParams).then(creds => { + return stsClient.assumeRoleWithWebIdentity(assumeRoleParams).then((creds) => { const params = { accessKey: creds.Credentials.AccessKeyId, secretKey: creds.Credentials.SecretAccessKey, @@ -41,7 +35,6 @@ export function getAssumeRoleWithWebIdentityIAM( return iamClient; }); } - export default class IAMClient implements IAMClientInterface { constructor(endpoint) { this.endpoint = endpoint; @@ -125,7 +118,6 @@ export default class IAMClient implements IAMClientInterface { UserName: userName, Marker: marker, }); - return req.promise(); } @@ -153,9 +145,7 @@ export default class IAMClient implements IAMClientInterface { }) .promise(); } -} - -// OFFLILE +} // OFFLILE // export default class IAMClient { // constructor() { // this.users = [{ diff --git a/src/js/S3Client.js b/src/js/S3Client.ts similarity index 95% rename from src/js/S3Client.js rename to src/js/S3Client.ts index 787599b0c..19cf8322b 100644 --- a/src/js/S3Client.js +++ b/src/js/S3Client.ts @@ -1,15 +1,11 @@ -// @noflow import S3 from 'aws-sdk/clients/s3'; import { chunkArray } from './utils'; import { isVersioning } from '../react/utils'; - const MULTIPART_UPLOAD = { partSize: 1024 * 1024 * 6, queueSize: 1, }; - const publicAclIndicator = 'http://acs.amazonaws.com/groups/global/AllUsers'; - export default class S3Client { client: S3; @@ -41,9 +37,15 @@ export default class S3Client { return Promise.all( list.Buckets.map((bucket, key) => { return Promise.all([ - this.client.getBucketLocation({ Bucket: bucket.Name }).promise(), this.client - .getBucketVersioning({ Bucket: bucket.Name }) + .getBucketLocation({ + Bucket: bucket.Name, + }) + .promise(), + this.client + .getBucketVersioning({ + Bucket: bucket.Name, + }) .promise(), ]).then(([loc, ver]) => { list.Buckets[key].LocationConstraint = loc.LocationConstraint; @@ -154,6 +156,7 @@ export default class S3Client { if (folders.length < 1) { return resolve(); } + return Promise.all( folders.map(folder => { return this.listObjectVersions({ @@ -163,6 +166,7 @@ export default class S3Client { const { Versions, DeleteMarkers, CommonPrefixes } = res; const filteredVersions = Versions.filter(v => v.Key === folder.Key); const filteredDM = DeleteMarkers.filter(v => v.Key === folder.Key); + // only delete "empty folders" if ( CommonPrefixes.length > 0 || @@ -175,6 +179,7 @@ export default class S3Client { ], }; } + const versions = filteredVersions.map(v => { return { Key: v.Key, @@ -201,9 +206,11 @@ export default class S3Client { ) .then(results => { const error = results.find(result => result.Errors.length > 0); + if (error) { return reject(error.Errors[0]); } + return resolve(); }) .catch(error => reject(error)); @@ -215,6 +222,7 @@ export default class S3Client { if (objects.length < 1) { return resolve(); } + // NOTE: AWS S3 deleteObjects can not delete more than 1000 objects. if (objects.length > 1000) { const chunks = chunkArray(objects, 1000); @@ -232,6 +240,7 @@ export default class S3Client { .then(() => resolve()) .catch(error => reject(error)); } + const params = { Bucket: bucketName, Delete: { @@ -244,6 +253,7 @@ export default class S3Client { data && data.Errors && data.Errors.some(error => error.Code === 'AccessDenied'); + if (error || hasAccessDeniedError) { reject(error || data); } @@ -268,7 +278,6 @@ export default class S3Client { Key: objectName, VersionId: versionId, }; - return new Promise((resolve, reject) => { this.client.getObjectRetention(params, (error, data) => { if (error) { @@ -278,8 +287,10 @@ export default class S3Client { ) { return resolve(undefined); } + return reject(error); } + return resolve(data); }); }); @@ -291,7 +302,6 @@ export default class S3Client { Key: objectKey, VersionId: versionId, }; - return new Promise((resolve, reject) => { this.client.getObjectLegalHold(params, (error, data) => { if (error) { @@ -301,11 +311,14 @@ export default class S3Client { ) { return resolve(false); } + return reject(error); } + if (data.Status) { return resolve(data.Status === 'ON'); } + return resolve(false); }); }); @@ -321,7 +334,10 @@ export default class S3Client { const params = { Bucket: bucketName, Key: objectName, - Retention: { Mode: retentionMode, RetainUntilDate: retentionUntilDate }, + Retention: { + Mode: retentionMode, + RetainUntilDate: retentionUntilDate, + }, VersionId: versionId, // TODO: Once DATA CONSUMER ROLE is implemented, checking `s3:BypassGovernanceRetention` permission will be needed BypassGovernanceRetention: true, @@ -403,8 +419,10 @@ export default class S3Client { if (error.code === 'NoSuchCORSConfiguration') { return resolve(false); } + return reject(error); } + return resolve(true); }); }); @@ -424,6 +442,7 @@ export default class S3Client { if (error) { return reject(error); } + return resolve(data); }); }); @@ -435,9 +454,11 @@ export default class S3Client { if (error) { return reject(error); } + if (data.Status) { return resolve(data.Status); } + return resolve('Disabled'); }); }); @@ -450,8 +471,10 @@ export default class S3Client { if (error.code === 'ReplicationConfigurationNotFoundError') { return resolve(false); } + return reject(error); } + return resolve(true); }); }); @@ -462,14 +485,21 @@ export default class S3Client { this.client.getObjectLockConfiguration(params, (error, data) => { if (error) { if (error.code === 'ObjectLockConfigurationNotFoundError') { - return resolve({ ObjectLockEnabled: 'Disabled' }); + return resolve({ + ObjectLockEnabled: 'Disabled', + }); } + return reject(error); } + if (data) { return resolve(data); } - return resolve({ ObjectLockEnabled: 'Disabled' }); + + return resolve({ + ObjectLockEnabled: 'Disabled', + }); }); }); } @@ -478,7 +508,6 @@ export default class S3Client { const params = { Bucket: bucketName, }; - const bucketInfo = { name: bucketName, policy: false, @@ -490,7 +519,6 @@ export default class S3Client { public: false, locationConstraint: '', }; - return new Promise((resolve, reject) => { return Promise.all([ this._getBucketCors(params), @@ -530,7 +558,9 @@ export default class S3Client { Bucket: bucketName, Key: objectKey, VersionId: versionId, - LegalHold: { Status: isLegalHold ? 'ON' : 'OFF' }, + LegalHold: { + Status: isLegalHold ? 'ON' : 'OFF', + }, }; return this.client.putObjectLegalHold(params).promise(); } diff --git a/src/js/STSClient.js b/src/js/STSClient.ts similarity index 86% rename from src/js/STSClient.js rename to src/js/STSClient.ts index d3eaf2531..ae55650ea 100644 --- a/src/js/STSClient.js +++ b/src/js/STSClient.ts @@ -1,5 +1,4 @@ import STS from 'aws-sdk/clients/sts'; - export default class STSClient { constructor(conf) { this.client = new STS({ @@ -11,16 +10,15 @@ export default class STSClient { assumeRoleWithWebIdentity(params) { const { idToken, roleArn, RoleSessionName } = params; const p = { - DurationSeconds: 900, // 15 minutes + DurationSeconds: 900, + // 15 minutes RoleArn: roleArn, RoleSessionName, WebIdentityToken: idToken, }; return this.client.assumeRoleWithWebIdentity(p).promise(); } -} - -// TODO: Testing only, remove it once STS.assumeRoleWithWebIdentity is implemented in Vault. +} // TODO: Testing only, remove it once STS.assumeRoleWithWebIdentity is implemented in Vault. // export default class STSClient { // constructor(conf) { // this.client = new AWS.STS({ @@ -38,4 +36,4 @@ export default class STSClient { // }); // } // -// } +// } \ No newline at end of file diff --git a/src/js/ZenkoClient.js b/src/js/ZenkoClient.ts similarity index 80% rename from src/js/ZenkoClient.js rename to src/js/ZenkoClient.ts index 4f99280cb..8e07ee6da 100644 --- a/src/js/ZenkoClient.js +++ b/src/js/ZenkoClient.ts @@ -1,5 +1,3 @@ -// @noflow - import type { Credentials, SearchBucketResp, @@ -19,6 +17,7 @@ class ZenkoClient extends S3Client implements ZenkoClientInterface { constructor(endpoint) { super(endpoint); this.endpoint = endpoint; + this._init(); } @@ -37,16 +36,15 @@ class ZenkoClient extends S3Client implements ZenkoClientInterface { signatureVersion: 'v4', maxRetries: 0, }); - this._jsonClient = new ZenkoClientBase({ - accessKeyId: accessKey, - secretAccessKey: secretKey, - sessionToken, - apiVersion: '2018-07-08-json', - endpoint: this.endpoint, - s3ForcePathStyle: true, - signatureVersion: 'v4', - maxRetries: 0, + accessKeyId: accessKey, + secretAccessKey: secretKey, + sessionToken, + apiVersion: '2018-07-08-json', + endpoint: this.endpoint, + s3ForcePathStyle: true, + signatureVersion: 'v4', + maxRetries: 0, }); } @@ -56,11 +54,13 @@ class ZenkoClient extends S3Client implements ZenkoClientInterface { secretAccessKey: '', sessionToken: '', }); + this.client.config.update({ accessKeyId: '', secretAccessKey: '', sessionToken: '', }); + this._jsonClient.config.update({ accessKeyId: '', secretAccessKey: '', @@ -70,6 +70,7 @@ class ZenkoClient extends S3Client implements ZenkoClientInterface { login(params: Credentials): void { const { accessKey, secretKey, sessionToken } = params; + this._xmlClient.config.update({ accessKeyId: accessKey, secretAccessKey: secretKey, @@ -83,8 +84,7 @@ class ZenkoClient extends S3Client implements ZenkoClientInterface { }); // TODO: use this.client.config.update instead of creating a new instance of S3. - this.auth(this.endpoint, params); - // updating credentials not working for AWS.S3.upload() call returning + this.auth(this.endpoint, params); // updating credentials not working for AWS.S3.upload() call returning // "Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1" // but seems to work for all the other S3 calls. // this.client.config.update({ @@ -103,13 +103,17 @@ class ZenkoClient extends S3Client implements ZenkoClientInterface { } pauseIngestionSite(site: Site): Promise { - const params = { Site: site }; - return this._jsonClient.pauseIngestionSite(params).promise(); + const params = { + Site: site, + }; + return this._jsonClient.pauseIngestionSite(params).promise(); } resumeIngestionSite(site: Site): Promise { - const params = { Site: site }; - return this._jsonClient.resumeIngestionSite(params).promise(); + const params = { + Site: site, + }; + return this._jsonClient.resumeIngestionSite(params).promise(); } } diff --git a/src/js/config.js b/src/js/config.ts similarity index 87% rename from src/js/config.js rename to src/js/config.ts index 530b4a7cf..8644f3802 100644 --- a/src/js/config.js +++ b/src/js/config.ts @@ -1,11 +1,12 @@ export const XDM_FEATURE = 'XDM'; - export function getAppConfig() { - return fetch('/config.json', { credentials: 'same-origin' }) - .then(response => { + return fetch('/config.json', { + credentials: 'same-origin', + }) + .then((response) => { return response.json(); }) - .then(config => { + .then((config) => { const { managementEndpoint, navbarConfigUrl, @@ -14,6 +15,7 @@ export function getAppConfig() { zenkoEndpoint, iamEndpoint, } = config; + if ( !navbarEndpoint || !managementEndpoint || @@ -25,6 +27,7 @@ export function getAppConfig() { 'incorrect or missing mandatory configuration information(s). (i.e. managementEndpoint, navbarEndpoint, stsEndpoint, iamEndpoint and zenkoEndpoint)', ); } + return { managementEndpoint, navbarConfigUrl, @@ -35,4 +38,4 @@ export function getAppConfig() { features: config.features || [], }; }); -} +} \ No newline at end of file diff --git a/src/js/managementClient.js b/src/js/managementClient.ts similarity index 57% rename from src/js/managementClient.js rename to src/js/managementClient.ts index 612bcfda1..16bdcb7fd 100644 --- a/src/js/managementClient.js +++ b/src/js/managementClient.ts @@ -2,19 +2,22 @@ import Swagger from 'swagger-client'; function makeMgtClient(endpoint, token) { return Swagger(endpoint + '/swagger.json', { - authorizations: { 'public-api': token }, + authorizations: { + 'public-api': token, + }, }) - .then(client => { + .then((client) => { client.spec.schemes = [endpoint.split(':')[0]]; const managementClient = client.apis['ui-facing']; return managementClient; }) - .catch(error => { + .catch((error) => { throw new Error( - `Unable to fetch OpenAPI descriptor: ${error.message || - '(unknown reason)'}`, + `Unable to fetch OpenAPI descriptor: ${ + error.message || '(unknown reason)' + }`, ); }); } -export default makeMgtClient; +export default makeMgtClient; \ No newline at end of file diff --git a/src/js/mock/IAMClient.js b/src/js/mock/IAMClient.ts similarity index 98% rename from src/js/mock/IAMClient.js rename to src/js/mock/IAMClient.ts index 45f0c11cf..32e8ca2e6 100644 --- a/src/js/mock/IAMClient.js +++ b/src/js/mock/IAMClient.ts @@ -1,7 +1,5 @@ -// @flow import type { IamAccessKey, ListAccessKeysResponse } from '../../types/user'; import type { AWSError } from '../../types/aws'; - export const accountAccessKeys: Array = [ { AccessKeyId: 'LEAST_RECENT_KEY_BBB', @@ -14,18 +12,17 @@ export const accountAccessKeys: Array = [ CreateDate: '2021-04-19T16:15:26+00:00', }, ]; - export class MockIAMClient { listOwnAccessKeys(): Promise { return Promise.resolve({ AccessKeyMetadata: accountAccessKeys, }); } + deleteAccessKey(): Promise { return Promise.resolve(); } } - export class ErrorMockIAMClient { _error: AWSError; @@ -36,7 +33,8 @@ export class ErrorMockIAMClient { listOwnAccessKeys(): Promise { return Promise.reject(this._error); } + deleteAccessKey(): Promise { return Promise.reject(this._error); } -} +} \ No newline at end of file diff --git a/src/js/mock/S3Client.js b/src/js/mock/S3Client.ts similarity index 98% rename from src/js/mock/S3Client.js rename to src/js/mock/S3Client.ts index 67c447b25..85e78cb3e 100644 --- a/src/js/mock/S3Client.js +++ b/src/js/mock/S3Client.ts @@ -1,5 +1,3 @@ -// @flow - import type { BucketInfo, CreateBucketResponse, @@ -12,7 +10,6 @@ import type { } from '../../types/s3'; import type { AWSError } from '../../types/aws'; import { addTrailingSlash } from '../../react/utils'; - export const ownerName = 'bart'; export const bucketName = 'bucket'; export const fileName = 'file'; @@ -28,7 +25,6 @@ export const objectRetention = { Mode: 'GOVERNANCE', RetainUntilDate: '', }; - export const s3Object = { Key: addTrailingSlash(folderName), LastModified: 'Wed Oct 07 2020 16:35:57', @@ -36,7 +32,6 @@ export const s3Object = { SignedUrl: '', ObjectRetention: objectRetention, }; - export const objectMetadata = { bucketName: bucketName, contentLength: 4529171, @@ -51,9 +46,12 @@ export const objectMetadata = { tags: [], lockStatus: 'NONE', }; - -export const tags = [{ Key: 'key1', Value: 'value1' }]; - +export const tags = [ + { + Key: 'key1', + Value: 'value1', + }, +]; export const createBucketResponse: CreateBucketResponse = { Location: '', }; @@ -61,9 +59,7 @@ export const file = { path: '', size: 0, }; - export const getSignedUrlResponse: GetSignedUrlResponse = ''; - export const listObjectsResponse = ( prefixWithSlash: string, ): ListObjectsResponse => ({ @@ -80,15 +76,12 @@ export const listObjectsResponse = ( Prefix: prefixWithSlash, StartAfter: '', }); - export const userMetadata = { color: 'green', }; - export const systemMetadata = { ContentType: 'application/octet-stream; charset=UTF-8', }; - export const info = { LastModified: 'Wed Oct 14 2020 15:58:52', ContentLength: 1400, @@ -97,11 +90,9 @@ export const info = { VersionId: '1', Metadata: userMetadata, }; - export const putObjectTaggingResponse: PutObjectTaggingResponse = { VersionId: '1', }; - export const bucketInfoResponseNoVersioning: BucketInfo = { name: bucketName, policy: false, @@ -116,7 +107,6 @@ export const bucketInfoResponseNoVersioning: BucketInfo = { ObjectLockEnabled: 'Disabled', }, }; - export const bucketInfoResponseVersioning: BucketInfo = { name: bucketName, policy: false, @@ -131,7 +121,6 @@ export const bucketInfoResponseVersioning: BucketInfo = { ObjectLockEnabled: 'Disabled', }, }; - export const bucketInfoResponseObjectLockNoDefaultRetention: BucketInfo = { name: bucketName, policy: false, @@ -146,7 +135,6 @@ export const bucketInfoResponseObjectLockNoDefaultRetention: BucketInfo = { ObjectLockEnabled: 'Enabled', }, }; - export const bucketInfoResponseObjectLockDefaultRetention: BucketInfo = { name: bucketName, policy: false, @@ -167,7 +155,6 @@ export const bucketInfoResponseObjectLockDefaultRetention: BucketInfo = { }, }, }; - export class MockS3Client implements S3ClientInterface { listBucketsWithLocation() { return Promise.resolve({ @@ -251,7 +238,6 @@ export class MockS3Client implements S3ClientInterface { return Promise.resolve(); } } - export class ErrorMockS3Client implements S3ClientInterface { _error: AWSError; @@ -330,4 +316,4 @@ export class ErrorMockS3Client implements S3ClientInterface { getObjectLegalHold(): Promise { return Promise.reject(this._error); } -} +} \ No newline at end of file diff --git a/src/js/mock/STSClient.js b/src/js/mock/STSClient.ts similarity index 96% rename from src/js/mock/STSClient.js rename to src/js/mock/STSClient.ts index d1cabae58..29c775e43 100644 --- a/src/js/mock/STSClient.js +++ b/src/js/mock/STSClient.ts @@ -1,7 +1,4 @@ -// @flow - import type { STSClient as STSClientInterface } from '../../types/sts'; - export class MockSTSClient implements STSClientInterface { assumeRoleWithWebIdentity() { return Promise.resolve({ @@ -12,4 +9,4 @@ export class MockSTSClient implements STSClientInterface { }, }); } -} +} \ No newline at end of file diff --git a/src/js/mock/ZenkoClient.js b/src/js/mock/ZenkoClient.ts similarity index 81% rename from src/js/mock/ZenkoClient.js rename to src/js/mock/ZenkoClient.ts index 2f510cbfa..5aa560fe2 100644 --- a/src/js/mock/ZenkoClient.js +++ b/src/js/mock/ZenkoClient.ts @@ -1,4 +1,4 @@ -// @noflow +/* eslint-disable */ import { ErrorMockS3Client, MockS3Client } from './S3Client'; import type { SearchBucketResp, @@ -6,15 +6,20 @@ import type { ZenkoClient as ZenkoClientInterface, } from '../../types/zenko'; import { AWSError } from '../../types/aws'; - -export class MockZenkoClient extends MockS3Client +export class MockZenkoClient + extends MockS3Client implements ZenkoClientInterface { _init(): void {} + logout(): void {} + login(): void {} searchBucket(): Promise { - return Promise.resolve({ IsTruncated: false, Contents: [] }); + return Promise.resolve({ + IsTruncated: false, + Contents: [], + }); } pauseIngestionSite(): Promise { @@ -25,8 +30,8 @@ export class MockZenkoClient extends MockS3Client return Promise.resolve(); } } - -export class ErrorMockZenkoClient extends ErrorMockS3Client +export class ErrorMockZenkoClient + extends ErrorMockS3Client implements ZenkoClientInterface { _error: AWSError; diff --git a/src/js/mock/error.js b/src/js/mock/error.ts similarity index 93% rename from src/js/mock/error.js rename to src/js/mock/error.ts index 77e3513a2..58f519ea5 100644 --- a/src/js/mock/error.js +++ b/src/js/mock/error.ts @@ -1,11 +1,9 @@ -// @flow import type { AWSError } from '../../types/aws'; - export class ApiErrorObject extends Error { code: number | string; status: number | string; message: string; - response: Object; + response: Record; constructor(message: string, status: string | number) { super(message); @@ -17,10 +15,9 @@ export class ApiErrorObject extends Error { this.status = status === undefined ? 500 : status; } } - export function awsErrorObject(message: string, code: string): AWSError { return { code, message, }; -} +} \ No newline at end of file diff --git a/src/js/mock/managementClient.js b/src/js/mock/managementClient.ts similarity index 92% rename from src/js/mock/managementClient.js rename to src/js/mock/managementClient.ts index b047a16a4..3388f99ef 100644 --- a/src/js/mock/managementClient.js +++ b/src/js/mock/managementClient.ts @@ -1,5 +1,3 @@ -// @flow - import type { AccessKey, Account, SecretKey } from '../../types/account'; import type { ApiAccountKeyResponse, @@ -17,7 +15,6 @@ import type { APIWorkflows } from '../../types/workflow'; import { ApiErrorObject } from './error'; import type { InstanceStatus } from '../../types/stats'; import { toLocationType } from '../../types/config'; - export const location: Location = { name: 'location1', locationType: toLocationType('location-file-v1'), @@ -27,7 +24,6 @@ export const location: Location = { isTransient: false, sizeLimitGB: 10, }; - export const account: Account = { arn: 'arn:aws:iam::538641674554:/bart/', canonicalId: @@ -38,14 +34,14 @@ export const account: Account = { quotaMax: 12, userName: 'bart', }; - export const latestOverlay: ConfigurationOverlay = { version: 2, users: [account], - locations: { location1: location }, + locations: { + location1: location, + }, endpoints: [], }; - export const replicationWorkflow: Replication = { streamId: '123e4567-e89b-12d3-a456-426614174001', name: 'replication', @@ -56,17 +52,19 @@ export const replicationWorkflow: Replication = { bucketName: 'mybucket', }, destination: { - locations: [{ name: 'location-name' }], + locations: [ + { + name: 'location-name', + }, + ], preferredReadLocation: 'location-name', }, }; - export const workflows: APIWorkflows = [ { replication: replicationWorkflow, }, ]; - export const accountAccessKey: AccessKey = 'ak1'; export const accountSecretKey: SecretKey = 'sk1'; export const accountName = 'bart'; @@ -77,7 +75,6 @@ export const key = { secretKey: accountSecretKey, userName: accountName, }; - export const instanceStatus: InstanceStatus = { metrics: {}, state: { @@ -90,13 +87,11 @@ export const instanceStatus: InstanceStatus = { serverVersion: 'version', }, }; - export const endpoint: Endpoint = { hostname: 's3.example.com', locationName: 'us-east-1', isBuiltin: false, }; - export class MockManagementClient implements ManagementClientInterface { createConfigurationOverlayUser(): Promise { return Promise.resolve({ @@ -126,7 +121,9 @@ export class MockManagementClient implements ManagementClientInterface { }); } - searchWorkflows(): Promise<{ body: APIWorkflows }> { + searchWorkflows(): Promise<{ + body: APIWorkflows; + }> { return Promise.resolve({ body: workflows, }); @@ -136,13 +133,17 @@ export class MockManagementClient implements ManagementClientInterface { return Promise.resolve(); } - updateBucketWorkflowReplication(): Promise<{ body: Replication }> { + updateBucketWorkflowReplication(): Promise<{ + body: Replication; + }> { return Promise.resolve({ body: replicationWorkflow, }); } - saveBucketWorkflowReplication(): Promise<{ body: Replication }> { + saveBucketWorkflowReplication(): Promise<{ + body: Replication; + }> { return Promise.resolve({ body: replicationWorkflow, }); @@ -154,13 +155,17 @@ export class MockManagementClient implements ManagementClientInterface { }); } - getLatestInstanceStatus(): Promise<{ body: InstanceStatus }> { + getLatestInstanceStatus(): Promise<{ + body: InstanceStatus; + }> { return Promise.resolve({ body: instanceStatus, }); } - createConfigurationOverlayEndpoint(): Promise<{ body: Endpoint }> { + createConfigurationOverlayEndpoint(): Promise<{ + body: Endpoint; + }> { return Promise.resolve({ body: endpoint, }); @@ -170,7 +175,6 @@ export class MockManagementClient implements ManagementClientInterface { return Promise.resolve(); } } - export class ErrorMockManagementClient implements ManagementClientInterface { _error: ApiErrorObject; @@ -230,7 +234,6 @@ export class ErrorMockManagementClient implements ManagementClientInterface { return Promise.reject(this._error); } } - export class MockManagementClientWithConfigurationVersions extends MockManagementClient { getStatusCallCounter: number; runningVersions: Array; @@ -239,10 +242,8 @@ export class MockManagementClientWithConfigurationVersions extends MockManagemen constructor(runningVersions: Array, overlayVersions: Array) { super(); - this.getStatusCallCounter = 0; this.runningVersions = runningVersions; - this.getOverlayCounter = 0; this.overlayVersions = overlayVersions; } @@ -269,4 +270,4 @@ export class MockManagementClientWithConfigurationVersions extends MockManagemen }, })); } -} +} \ No newline at end of file diff --git a/src/js/utils.js b/src/js/utils.ts similarity index 97% rename from src/js/utils.js rename to src/js/utils.ts index 3c7e3f6f6..05afc9729 100644 --- a/src/js/utils.js +++ b/src/js/utils.ts @@ -1,4 +1,3 @@ -// @flow export function chunkArray( myArray: Array, chunk_size: number, @@ -12,11 +11,10 @@ export function chunkArray( return tempArray; } - export function removeTrailingSlash(prefix: string): string { if (prefix.slice(-1) === '/') { return prefix.slice(0, -1); } else { return prefix; } -} +} \ No newline at end of file diff --git a/src/react/App.js b/src/react/App.tsx similarity index 99% rename from src/react/App.js rename to src/react/App.tsx index f0a30dc13..8bf037e31 100644 --- a/src/react/App.js +++ b/src/react/App.tsx @@ -1,5 +1,4 @@ import '../css/index.css'; - import { history, store } from './store'; import { ConnectedRouter } from 'connected-react-router'; import { Provider } from 'react-redux'; @@ -8,7 +7,6 @@ import ReactDOM from 'react-dom'; import { QueryClient, QueryClientProvider } from 'react-query'; import { ReactQueryDevtools } from 'react-query/devtools'; import ZenkoUI from './ZenkoUI'; - // const whyDidYouRender = require('@welldone-software/why-did-you-render'); // whyDidYouRender(React, { // trackAllPureComponents: true, @@ -16,9 +14,7 @@ import ZenkoUI from './ZenkoUI'; // [require('react-redux/lib'), 'useSelector'], // ], // }); - export const queryClient = new QueryClient(); - ReactDOM.render( diff --git a/src/react/IAMProvider.jsx b/src/react/IAMProvider.tsx similarity index 73% rename from src/react/IAMProvider.jsx rename to src/react/IAMProvider.tsx index 996d9208c..6727075a3 100644 --- a/src/react/IAMProvider.jsx +++ b/src/react/IAMProvider.tsx @@ -1,13 +1,10 @@ -//@flow import React, { createContext, useContext } from 'react'; -import type { Node } from 'react'; import { useSelector } from 'react-redux'; import { useParams } from 'react-router-dom'; import IAMClient, { getAssumeRoleWithWebIdentityIAM } from '../js/IAMClient'; import { useQuery } from 'react-query'; -const IAMContext = createContext(null); - +const IAMContext = createContext(null); export const useIAMClient = () => { const IAMCtxt = useContext(IAMContext); @@ -20,18 +17,20 @@ export const useIAMClient = () => { return IAMCtxt.iamClient; }; -const IAMProvider = ({ children }: { children: Node }) => { - const { accountName } = useParams(); +const IAMProvider = ({ children }: { children: JSX.Element }) => { + const { accountName } = useParams<{ accountName: string }>(); const state = useSelector(state => state); - const { data: IAMClientResult } = useQuery({ queryKey: ['IAMClient', accountName], queryFn: () => getAssumeRoleWithWebIdentityIAM(state, accountName), enabled: accountName && accountName !== '', }); - return ( - + {children} ); diff --git a/src/react/Navbar.js b/src/react/Navbar.tsx similarity index 80% rename from src/react/Navbar.js rename to src/react/Navbar.tsx index 7bd60b9be..d0055891d 100644 --- a/src/react/Navbar.js +++ b/src/react/Navbar.tsx @@ -1,4 +1,3 @@ -//@flow import React, { useEffect, useLayoutEffect, useRef, useState } from 'react'; import { addOIDCUser, setOIDCLogout, setTheme } from './actions'; import { useDispatch, useSelector } from 'react-redux'; @@ -11,20 +10,23 @@ function useWebComponent(src?: string, customElementName: string) { useLayoutEffect(() => { const body = document.body; const element = [...(body?.querySelectorAll('script') || [])].find( - // eslint-disable-next-line flowtype-errors/show-errors - scriptElement => scriptElement.attributes.src?.value === src, + (scriptElement) => scriptElement.attributes.src?.value === src, ); + if (!element && body && src) { const scriptElement = document.createElement('script'); scriptElement.src = src; + scriptElement.onload = () => { customElements.whenDefined(customElementName).catch(() => { setHasFailed(true); }); }; + scriptElement.onerror = () => { setHasFailed(true); }; + body.appendChild(scriptElement); } }, [src, customElementName]); @@ -34,11 +36,12 @@ function useWebComponent(src?: string, customElementName: string) { } } -type NavbarWebComponent = HTMLElement & { logOut: OidcLogoutFunction }; +type NavbarWebComponent = HTMLElement & { + logOut: OidcLogoutFunction; +}; function useLoginEffect(navbarRef: { current: NavbarWebComponent | null }) { const dispatch = useDispatch(); - useEffect(() => { if (!navbarRef.current) { return; @@ -47,7 +50,6 @@ function useLoginEffect(navbarRef: { current: NavbarWebComponent | null }) { const navbarElement = navbarRef.current; const onAuthenticated = (evt: Event) => { - // eslint-disable-next-line flowtype-errors/show-errors if (evt.detail && evt.detail.profile) { dispatch(addOIDCUser(evt.detail)); dispatch(setOIDCLogout(navbarElement.logOut || null)); @@ -58,7 +60,6 @@ function useLoginEffect(navbarRef: { current: NavbarWebComponent | null }) { 'solutions-navbar--authenticated', onAuthenticated, ); - return () => { navbarElement.removeEventListener( 'solutions-navbar--authenticated', @@ -70,7 +71,6 @@ function useLoginEffect(navbarRef: { current: NavbarWebComponent | null }) { function useThemeEffect(navbarRef: { current: NavbarWebComponent | null }) { const dispatch = useDispatch(); - useEffect(() => { if (!navbarRef.current) { return; @@ -79,8 +79,6 @@ function useThemeEffect(navbarRef: { current: NavbarWebComponent | null }) { const navbarElement = navbarRef.current; const onThemeChanged = (evt: Event) => { - // flow is not accepting CustomEvent type for listener arguments of {add,remove}EventListener https://github.com/facebook/flow/issues/7179 - // eslint-disable-next-line flowtype-errors/show-errors if (evt.detail) { dispatch(setTheme(evt.detail)); } @@ -90,7 +88,6 @@ function useThemeEffect(navbarRef: { current: NavbarWebComponent | null }) { 'solutions-navbar--theme-changed', onThemeChanged, ); - return () => { navbarElement.removeEventListener( 'solutions-navbar--theme-changed', @@ -125,19 +122,17 @@ function InternalNavbar() { (state: AppState) => state.auth.config.navbarConfigUrl, ); useWebComponent(navbarEndpoint, 'solutions-navbar'); - - const navbarRef = useRef(null); - + const navbarRef = useRef(null); useLoginEffect(navbarRef); useThemeEffect(navbarRef); - return ( diff --git a/src/react/NoMatch.jsx b/src/react/NoMatch.tsx similarity index 91% rename from src/react/NoMatch.jsx rename to src/react/NoMatch.tsx index 7954dadef..07865a71a 100644 --- a/src/react/NoMatch.jsx +++ b/src/react/NoMatch.tsx @@ -1,4 +1,3 @@ -// @flow import React from 'react'; import { Warning } from './ui-elements/Warning'; import { useLocation } from 'react-router-dom'; @@ -6,7 +5,6 @@ import { useLocation } from 'react-router-dom'; function NoMatch() { const { pathname } = useLocation(); const title = `No match for "${pathname}"`; - return ( { const location = useLocation(); @@ -38,21 +36,20 @@ export const RemoveTrailingSlash = ({ ...rest }) => { function PrivateRoutes() { const dispatch = useDispatch(); - const isClientsLoaded = useSelector( (state: AppState) => state.auth.isClientsLoaded, ); const user = useSelector((state: AppState) => state.oidc.user); - useEffect(() => { const isAuthenticated = !!user && !user.expired; + if (isAuthenticated) { // TODO: forbid loading clients when authorization server redirects the user back to ui.zenko.local with an authorization code. // That will fix management API request being canceled during autentication. dispatch(loadClients()); - const refreshIntervalStatsUnit = setInterval(() => { const currentTime = Math.floor(Date.now() / 1000); + if (user.expires_at >= currentTime) { dispatch(loadInstanceLatestStatus()); } @@ -66,6 +63,7 @@ function PrivateRoutes() { if (!isClientsLoaded) { return Loading clients ; } + return ( } /> diff --git a/src/react/ZenkoUI.js b/src/react/ZenkoUI.tsx similarity index 98% rename from src/react/ZenkoUI.js rename to src/react/ZenkoUI.tsx index 575e5dae8..6406a4a3b 100644 --- a/src/react/ZenkoUI.js +++ b/src/react/ZenkoUI.tsx @@ -1,4 +1,3 @@ -// @flow import { Container, MainContainer, @@ -21,7 +20,6 @@ function ZenkoUI() { const isConfigLoaded = useSelector( (state: AppState) => state.auth.isConfigLoaded, ); - const configFailure = useSelector( (state: AppState) => state.auth.configFailure, ); @@ -29,9 +27,7 @@ function ZenkoUI() { state.uiErrors.errorType === 'byComponent' ? state.uiErrors.errorMsg : '', ); const theme = useSelector((state: AppState) => state.uiConfig.theme); - const dispatch = useDispatch(); - useEffect(() => { dispatch(loadAppConfig()); }, [dispatch]); @@ -78,4 +74,4 @@ function ZenkoUI() { ); } -export default ZenkoUI; +export default ZenkoUI; \ No newline at end of file diff --git a/src/react/account/AccountContent.jsx b/src/react/account/AccountContent.tsx similarity index 93% rename from src/react/account/AccountContent.jsx rename to src/react/account/AccountContent.tsx index a37793c45..d9fff872b 100644 --- a/src/react/account/AccountContent.jsx +++ b/src/react/account/AccountContent.tsx @@ -1,4 +1,3 @@ -// @flow import React, { useMemo } from 'react'; import { Route, @@ -23,12 +22,10 @@ function AccountContent() { const accounts = useSelector( (state: AppState) => state.configuration.latest.users, ); - const account = useMemo( - () => accounts.find(a => a.userName === accountNameParam), + () => accounts.find((a) => a.userName === accountNameParam), [accounts, accountNameParam], ); - return ( @@ -52,4 +49,4 @@ function AccountContent() { ); } -export default AccountContent; +export default AccountContent; \ No newline at end of file diff --git a/src/react/account/AccountCreate.jsx b/src/react/account/AccountCreate.tsx similarity index 97% rename from src/react/account/AccountCreate.jsx rename to src/react/account/AccountCreate.tsx index f56db615f..c2ce49d75 100644 --- a/src/react/account/AccountCreate.jsx +++ b/src/react/account/AccountCreate.tsx @@ -1,4 +1,3 @@ -// @flow import FormContainer, * as F from '../ui-elements/FormLayout'; import React, { useRef } from 'react'; import { clearError, createAccount } from '../actions'; @@ -11,10 +10,8 @@ import { goBack } from 'connected-react-router'; import { joiResolver } from '@hookform/resolvers'; import { useForm } from 'react-hook-form'; import { useOutsideClick } from '../utils/hooks'; - const regexpEmailAddress = /^\S+@\S+.\S+$/; const regexpName = /^[\w+=,.@ -]+$/; - const schema = Joi.object({ name: Joi.string() .label('Name') @@ -35,7 +32,6 @@ function AccountCreate() { const { register, handleSubmit, errors } = useForm({ resolver: joiResolver(schema), }); - const hasError = useSelector( (state: AppState) => !!state.uiErrors.errorMsg && state.uiErrors.errorType === 'byComponent', @@ -46,16 +42,18 @@ function AccountCreate() { const loading = useSelector( (state: AppState) => state.networkActivity.counter > 0, ); - const dispatch = useDispatch(); const onSubmit = ({ email, name }) => { clearServerError(); - const payload = { userName: name, email }; + const payload = { + userName: name, + email, + }; dispatch(createAccount(payload)); }; - const handleCancel = e => { + const handleCancel = (e) => { if (e) { e.preventDefault(); } @@ -73,7 +71,6 @@ function AccountCreate() { // clear server errors if clicked on outside of element. const formRef = useRef(null); useOutsideClick(formRef, clearServerError); - return ( { }); const { accountName } = useParams(); const createAccessKeyMutation = useMutation( - userName => { + (userName) => { dispatch(networkStart('Creating User')); return IAMClient.createUser(userName) - .then(newUser => { - queryClient.setQueryData(['listIAMUsers', accountName], old => { + .then((newUser) => { + queryClient.setQueryData(['listIAMUsers', accountName], (old) => { if (old) { const pages = old.pages; pages[pages.length - 1].Users.push({ ...newUser.User, CreateDate: new Date(), }); - return { - ...old, - pages, - }; + return { ...old, pages }; } }); }) @@ -95,7 +88,7 @@ const AccountCreateUser = () => { createAccessKeyMutation.mutate(name); }; - const handleCancel = e => { + const handleCancel = (e) => { if (e) { e.preventDefault(); } @@ -113,7 +106,6 @@ const AccountCreateUser = () => { // clear server errors if clicked on outside of element. const formRef = useRef(null); useOutsideClick(formRef, clearServerError); - return ( { ); }; -export default AccountCreateUser; +export default AccountCreateUser; \ No newline at end of file diff --git a/src/react/account/AccountDetails.jsx b/src/react/account/AccountDetails.tsx similarity index 84% rename from src/react/account/AccountDetails.jsx rename to src/react/account/AccountDetails.tsx index 171ff0b7b..fec363ef1 100644 --- a/src/react/account/AccountDetails.jsx +++ b/src/react/account/AccountDetails.tsx @@ -1,17 +1,14 @@ -// @flow import { useTheme } from 'styled-components'; import React from 'react'; import type { Account } from '../../types/account'; import { CustomTabs } from '../ui-elements/Tabs'; import Locations from '../backend/location/Locations'; import Properties from './details/Properties'; - import { Warning } from '../ui-elements/Warning'; import { useRouteMatch, useParams } from 'react-router-dom'; import AccountUserList from './AccountUserList'; - type Props = { - account: ?Account, + account: Account | null | undefined; }; const NotFound = () => ( @@ -23,23 +20,25 @@ const NotFound = () => ( function AccountDetails({ account }: Props) { const theme = useTheme(); - // $FlowFixMe - useParams is typed using typescript, hence we can't pass it accountName typing - const { accountName }: { accountName?: string } = useParams(); + const { accountName } = useParams<{accountName: string }>(); + const { url } = useRouteMatch(); if (!account) { return ; } + const customTabStyle = { inactiveTabColor: theme.brand.backgroundLevel2, activeTabColor: theme.brand.backgroundLevel3, tabContentColor: theme.brand.backgroundLevel3, }; - return ( diff --git a/src/react/account/AccountHead.jsx b/src/react/account/AccountHead.tsx similarity index 93% rename from src/react/account/AccountHead.jsx rename to src/react/account/AccountHead.tsx index 60195813b..433497551 100644 --- a/src/react/account/AccountHead.jsx +++ b/src/react/account/AccountHead.tsx @@ -1,4 +1,3 @@ -// @flow import { Head, HeadCenter, @@ -11,7 +10,6 @@ import { useParams } from 'react-router-dom'; function AccountHead() { const { accountName: accountNameParam } = useParams(); - return ( @@ -25,4 +23,4 @@ function AccountHead() { ); } -export default AccountHead; +export default AccountHead; \ No newline at end of file diff --git a/src/react/account/AccountList.jsx b/src/react/account/AccountList.tsx similarity index 83% rename from src/react/account/AccountList.jsx rename to src/react/account/AccountList.tsx index 8e4a35984..5b546b36e 100644 --- a/src/react/account/AccountList.jsx +++ b/src/react/account/AccountList.tsx @@ -1,4 +1,3 @@ -// @flow import React from 'react'; import { useDispatch } from 'react-redux'; import { push } from 'connected-react-router'; @@ -8,7 +7,6 @@ import { Button } from '@scality/core-ui/dist/next'; import Table from '@scality/core-ui/dist/components/tablev2/Tablev2.component'; import type { Account } from '../../types/account'; import { formatSimpleDate } from '../utils'; - const NameLinkContaner = styled.div` text-decoration: none; cursor: pointer; @@ -16,18 +14,17 @@ const NameLinkContaner = styled.div` text-decoration: underline; } padding-right: ${padding.small}; - color: ${props => props.theme.brand.selectedActive}; + color: ${(props) => props.theme.brand.selectedActive}; `; - const TableAction = styled.div` display: flex; justify-content: space-between; margin-bottom: ${spacing.sp16}; `; - type Props = { - accounts: Array, + accounts: Array; }; + function AccountList({ accounts }: Props) { const dispatch = useDispatch(); @@ -51,7 +48,7 @@ function AccountList({ accounts }: Props) { cellStyle: { minWidth: '20rem', }, - Cell: value => nameCell(value), + Cell: (value) => nameCell(value), }, { Header: 'Created on', @@ -60,17 +57,24 @@ function AccountList({ accounts }: Props) { textAlign: 'right', minWidth: '7rem', }, - Cell: value => createDateCell(value), + Cell: (value) => createDateCell(value), }, ]; }, [nameCell]); - return ( -
+
{
- {/* eslint-disable-next-line flowtype-errors/show-errors */}
diff --git a/src/react/account/AccountUserList.jsx b/src/react/account/AccountUserList.tsx similarity index 87% rename from src/react/account/AccountUserList.jsx rename to src/react/account/AccountUserList.tsx index 37b69c208..ddfcc01b7 100644 --- a/src/react/account/AccountUserList.jsx +++ b/src/react/account/AccountUserList.tsx @@ -1,4 +1,3 @@ -//@flow import type { Node } from 'react'; import React, { useMemo } from 'react'; import styled from 'styled-components'; @@ -15,7 +14,6 @@ import { useQueryParams } from '../utils/hooks'; import SearchInputComponent from '@scality/core-ui/dist/components/searchinput/SearchInput.component'; import { Tooltip } from '@scality/core-ui'; import SpacedBox from '@scality/core-ui/dist/components/spacedbox/SpacedBox'; - const InlineButton = styled(Button)` height: ${spacing.sp24}; margin-left: ${spacing.sp16}; @@ -24,7 +22,6 @@ const InlineButton = styled(Button)` const AsyncRenderAccessKey = ({ userName }: { userName: string }) => { const IAMClient = useIAMClient(); const history = useHistory(); - const { data: accessKeysResult, status: userAccessKeyStatus, @@ -34,27 +31,40 @@ const AsyncRenderAccessKey = ({ userName }: { userName: string }) => { queryFn: (_ctx, marker) => IAMClient.listAccessKeys(userName, marker), enabled: IAMClient !== null, }, - data => data.AccessKeyMetadata, + (data) => data.AccessKeyMetadata, ); - const accessKeys = useMemo(() => { if (userAccessKeyStatus === 'success') { - // $FlowFixMe return accessKeysResult.length; } + return 0; }, [userAccessKeyStatus]); - // display a hyphen if there is an error occurs return userAccessKeyStatus === 'error' ? null : ( -
+
{userAccessKeyStatus === 'loading' && ( - + loading... )} {userAccessKeyStatus === 'success' ? ( - + {accessKeys > 2 ? ( ) : ( @@ -68,7 +78,9 @@ const AsyncRenderAccessKey = ({ userName }: { userName: string }) => { onClick={() => history.push(`users/${userName}/access-keys`)} type="button" tooltip={{ - overlayStyle: { width: '14rem' }, + overlayStyle: { + width: '14rem', + }, overlay: 'Checking or creating access keys', }} disabled={userAccessKeyStatus === 'loading'} @@ -81,19 +93,19 @@ const renderAccessKeyComponent = ({ row }) => ( ); -const renderActionButtons = rowValues => { +const renderActionButtons = (rowValues) => { const { arn } = rowValues; - return ; }; + const WithTooltipWhileLoading = ({ children, isLoading, tooltipOverlay, }: { - tooltipOverlay: string, - isLoading?: boolean, - children: Node, + tooltipOverlay: string; + isLoading?: boolean; + children: Node; }) => ( <> {isLoading ? ( @@ -113,7 +125,7 @@ const AccountUserList = ({ accountName }: { accountName?: string }) => { const match = useRouteMatch(); const search = queryParams.get(SEARCH_QUERY_PARAM); - const setSearch = newSearch => { + const setSearch = (newSearch) => { queryParams.set(SEARCH_QUERY_PARAM, newSearch); history.replace(`${match.url}?${queryParams.toString()}`); }; @@ -129,6 +141,7 @@ const AccountUserList = ({ accountName }: { accountName?: string }) => { if (!IAMClient) { return Promise.reject('IAMClient is not defined'); } + return IAMClient.listUsers(1000, marker); }, staleTime: Infinity, @@ -136,13 +149,11 @@ const AccountUserList = ({ accountName }: { accountName?: string }) => { refetchOnMount: false, refetchOnWindowFocus: false, }, - page => page.Users, + (page) => page.Users, ); - const iamUsers = useMemo(() => { if (listUsersFirstPageStatus === 'success') { - // $FlowFixMe - const iamUsers = listUsersResult.map(user => { + const iamUsers = listUsersResult.map((user) => { return { userName: user.UserName, createdOn: formatSimpleDate(user.CreateDate), @@ -153,15 +164,16 @@ const AccountUserList = ({ accountName }: { accountName?: string }) => { }); if (search) { - return iamUsers.filter(user => + return iamUsers.filter((user) => user.userName.toLowerCase().startsWith(search.toLowerCase()), ); } + return iamUsers; } + return []; }, [listUsersFirstPageStatus, listUsersResult, search]); - const columns = [ { Header: 'User Name', @@ -186,8 +198,7 @@ const AccountUserList = ({ accountName }: { accountName?: string }) => { textAlign: 'right', minWidth: '7rem', }, - }, - // Table cell for all the actions (Copy ARN, Edit and Delete) + }, // Table cell for all the actions (Copy ARN, Edit and Delete) { Header: '', accessor: 'actions', @@ -196,15 +207,23 @@ const AccountUserList = ({ accountName }: { accountName?: string }) => { minWidth: '25rem', }, disableSortBy: true, - Cell: value => renderActionButtons(value.row.original), + Cell: (value) => renderActionButtons(value.row.original), }, ]; - return ( -
+
-
+
{listUsersFirstPageStatus !== 'loading' && listUsersFirstPageStatus !== 'error' ? ( @@ -222,7 +241,7 @@ const AccountUserList = ({ accountName }: { accountName?: string }) => { value={search} placeholder={'Search'} disableToggle - onChange={evt => { + onChange={(evt) => { setSearch(evt.target.value); }} /> @@ -257,7 +276,7 @@ const AccountUserList = ({ accountName }: { accountName?: string }) => { return iamUsers[index].Arn; }} > - {Rows => ( + {(Rows) => ( <> {listUsersFirstPageStatus === 'loading' || listUsersFirstPageStatus === 'idle' diff --git a/src/react/account/AccountUserSecretKeyModal.jsx b/src/react/account/AccountUserSecretKeyModal.tsx similarity index 93% rename from src/react/account/AccountUserSecretKeyModal.jsx rename to src/react/account/AccountUserSecretKeyModal.tsx index fcc930b82..bb9167c89 100644 --- a/src/react/account/AccountUserSecretKeyModal.jsx +++ b/src/react/account/AccountUserSecretKeyModal.tsx @@ -1,4 +1,3 @@ -// @flow import type { AccountKey } from '../../types/account'; import { CustomModal as Modal, ModalBody } from '../ui-elements/Modal'; import Table, * as T from '../ui-elements/TableKeyValue'; @@ -12,19 +11,17 @@ import { useHistory } from 'react-router-dom'; import { useIAMClient } from '../IAMProvider'; import { useMutation } from 'react-query'; import { queryClient } from '../App'; - type Props = { - IAMUserName: string, + IAMUserName: string; }; function AccountUserSecretKeyModal({ IAMUserName }: Props) { const history = useHistory(); const IAMClient = useIAMClient(); const [newKey, setNewKey] = useState(null); - const createAccessKeyMutation = useMutation( - userName => { - return IAMClient.createAccessKey(userName).then(res => { + (userName) => { + return IAMClient.createAccessKey(userName).then((res) => { const newKey = { accountName: res.AccessKey.UserName, accessKey: res.AccessKey.AccessKeyId, @@ -49,6 +46,7 @@ function AccountUserSecretKeyModal({ IAMUserName }: Props) { const modalFooter = (key: AccountKey | null) => { const isFirstModal = key === null; + if (isFirstModal) { return (
@@ -62,6 +60,7 @@ function AccountUserSecretKeyModal({ IAMUserName }: Props) {
); } + return
+
User @@ -128,4 +132,4 @@ const modalBody = (key: AccountKey | null) => { ); }; -export default AccountUserSecretKeyModal; +export default AccountUserSecretKeyModal; \ No newline at end of file diff --git a/src/react/account/Accounts.jsx b/src/react/account/Accounts.tsx similarity index 96% rename from src/react/account/Accounts.jsx rename to src/react/account/Accounts.tsx index dddedfeb4..716bf7544 100644 --- a/src/react/account/Accounts.jsx +++ b/src/react/account/Accounts.tsx @@ -1,4 +1,3 @@ -// @flow import React from 'react'; import { useLocation } from 'react-router-dom'; import { useSelector } from 'react-redux'; @@ -14,7 +13,6 @@ const Accounts = () => { const accounts = useSelector( (state: AppState) => state.configuration.latest.users, ); - return ( @@ -32,4 +30,4 @@ const Accounts = () => { ); }; -export default Accounts; +export default Accounts; \ No newline at end of file diff --git a/src/react/account/__tests__/AccountCreate.test.jsx b/src/react/account/__tests__/AccountCreate.test.tsx similarity index 99% rename from src/react/account/__tests__/AccountCreate.test.jsx rename to src/react/account/__tests__/AccountCreate.test.tsx index 27f05050d..fb2c756d5 100644 --- a/src/react/account/__tests__/AccountCreate.test.jsx +++ b/src/react/account/__tests__/AccountCreate.test.tsx @@ -2,15 +2,12 @@ import AccountCreate from '../AccountCreate'; import React from 'react'; import { act } from 'react-dom/test-utils'; import { reduxMountAct } from '../../utils/test'; - describe('AccountCreate', () => { it('should render AccountCreate component with no error banner', async () => { const component = await reduxMountAct(); - expect(component.find('#zk-error-banner')).toHaveLength(0); component.unmount(); }); - it('should render AccountCreate component with error banner', async () => { const errorMessage = 'error message test'; const component = await reduxMountAct(, { @@ -19,15 +16,12 @@ describe('AccountCreate', () => { errorType: 'byComponent', }, }); - expect(component.find('#zk-error-banner')).toHaveLength(1); expect(component.find('#zk-error-banner').text()).toContain(errorMessage); component.unmount(); }); - // * error input // * button click - const tests = [ { description: 'should render no error if both name and email are valid', @@ -116,8 +110,7 @@ describe('AccountCreate', () => { expectedEmailError: '', }, ]; - - tests.forEach(t => { + tests.forEach((t) => { it(`Simulate click: ${t.description}`, async () => { const component = await reduxMountAct(); // NOTE: All validation methods in React Hook Form are treated @@ -126,11 +119,9 @@ describe('AccountCreate', () => { const elementName = component.find('input#name'); elementName.getDOMNode().value = t.name; elementName.getDOMNode().dispatchEvent(new Event('input')); - const elementEmail = component.find('input#email'); elementEmail.getDOMNode().value = t.email; elementEmail.getDOMNode().dispatchEvent(new Event('input')); - await act(async () => { component.find('form').simulate('submit'); }); @@ -143,6 +134,7 @@ describe('AccountCreate', () => { } else { expect(component.find('ErrorInput#error-name').text()).toBeFalsy(); } + if (t.expectedEmailError) { expect(component.find('ErrorInput#error-email').text()).toContain( t.expectedEmailError, @@ -150,7 +142,8 @@ describe('AccountCreate', () => { } else { expect(component.find('ErrorInput#error-email').text()).toBeFalsy(); } + component.unmount(); }); }); -}); +}); \ No newline at end of file diff --git a/src/react/account/__tests__/AccountDetails.test.jsx b/src/react/account/__tests__/AccountDetails.test.tsx similarity index 94% rename from src/react/account/__tests__/AccountDetails.test.jsx rename to src/react/account/__tests__/AccountDetails.test.tsx index 28ef166d8..cfc8477b7 100644 --- a/src/react/account/__tests__/AccountDetails.test.jsx +++ b/src/react/account/__tests__/AccountDetails.test.tsx @@ -4,7 +4,6 @@ import { CustomTabs } from '../../ui-elements/Tabs'; import React from 'react'; import { Warning } from '../../ui-elements/Warning'; import { reduxMount } from '../../utils/test'; - const account1 = { arn: 'arn1', canonicalId: 'canonicalId1', @@ -14,13 +13,13 @@ const account1 = { quotaMax: 1, userName: 'bart', }; - describe('AccountDetails', () => { beforeEach(() => { jest.spyOn(router, 'useParams').mockReturnValue({}); - jest.spyOn(router, 'useRouteMatch').mockReturnValue({ url: '/' }); + jest.spyOn(router, 'useRouteMatch').mockReturnValue({ + url: '/', + }); }); - it('should render empty AccountDetails component if no account props', () => { const { component } = reduxMount( @@ -34,12 +33,10 @@ describe('AccountDetails', () => { }, }, ); - expect(component.find(CustomTabs)).toHaveLength(0); expect(component.find(Warning)).toHaveLength(1); expect(component.find(Warning).text()).toContain('Account not found.'); }); - it('should render AccountDetails component', () => { const { component } = reduxMount( @@ -53,9 +50,8 @@ describe('AccountDetails', () => { }, }, ); - expect(component.find(CustomTabs)).toHaveLength(1); // warning of account access key table expect(component.find(Warning)).toHaveLength(1); }); -}); +}); \ No newline at end of file diff --git a/src/react/account/__tests__/AccountHead.test.jsx b/src/react/account/__tests__/AccountHead.test.tsx similarity index 87% rename from src/react/account/__tests__/AccountHead.test.jsx rename to src/react/account/__tests__/AccountHead.test.tsx index 4e990ebfe..3090726f0 100644 --- a/src/react/account/__tests__/AccountHead.test.jsx +++ b/src/react/account/__tests__/AccountHead.test.tsx @@ -3,7 +3,6 @@ import AccountHead from '../AccountHead'; import React from 'react'; import { reduxMount } from '../../utils/test'; import router from 'react-router'; - const account1 = { arn: 'arn1', canonicalId: 'canonicalId1', @@ -13,16 +12,14 @@ const account1 = { quotaMax: 1, userName: 'bart', }; - describe('AccountHead', () => { it('should render AccountHead component', () => { - jest - .spyOn(router, 'useParams') - .mockReturnValue({ accountName: account1.userName }); + jest.spyOn(router, 'useParams').mockReturnValue({ + accountName: account1.userName, + }); const { component } = reduxMount(); - expect(component.find(HeadCenter)).toHaveLength(1); expect(component.find(HeadTitle).text()).toContain(account1.userName); expect(component.find(HeadCenter)).toHaveLength(1); }); -}); +}); \ No newline at end of file diff --git a/src/react/account/details/Properties.jsx b/src/react/account/details/Properties.tsx similarity index 83% rename from src/react/account/details/Properties.jsx rename to src/react/account/details/Properties.tsx index 4aa3c731d..dc48d2c2e 100644 --- a/src/react/account/details/Properties.jsx +++ b/src/react/account/details/Properties.tsx @@ -1,20 +1,17 @@ -// @flow import type { Account } from '../../../types/account'; import AccountInfo from './properties/AccountInfo'; import AccountKeys from './properties/AccountKeys'; import { AutoSizer } from 'react-virtualized'; import React from 'react'; import styled from 'styled-components'; - type Props = { - account: Account, + account: Account; }; - const Container = styled.div` display: flex; flex-direction: column; - height: ${props => props.height}px; - width: ${props => props.width}px; + height: ${(props) => props.height}px; + width: ${(props) => props.width}px; `; function Properties({ account }: Props) { @@ -30,4 +27,4 @@ function Properties({ account }: Props) { ); } -export default Properties; +export default Properties; \ No newline at end of file diff --git a/src/react/account/details/properties/AccountInfo.jsx b/src/react/account/details/properties/AccountInfo.tsx similarity index 98% rename from src/react/account/details/properties/AccountInfo.jsx rename to src/react/account/details/properties/AccountInfo.tsx index bca9514e7..59bc29d5d 100644 --- a/src/react/account/details/properties/AccountInfo.jsx +++ b/src/react/account/details/properties/AccountInfo.tsx @@ -17,14 +17,12 @@ import SecretKeyModal from './SecretKeyModal'; import { TitleRow } from '../../../ui-elements/TableKeyValue'; import { formatDate } from '../../../utils'; import styled from 'styled-components'; - const TableContainer = styled.div` display: flex; flex-direction: column; `; - type Props = { - account: Account, + account: Account; }; function AccountInfo({ account }: Props) { @@ -41,6 +39,7 @@ function AccountInfo({ account }: Props) { if (!account) { return; } + dispatch(deleteAccount(account.userName)); }; @@ -114,4 +113,4 @@ function AccountInfo({ account }: Props) { ); } -export default AccountInfo; +export default AccountInfo; \ No newline at end of file diff --git a/src/react/account/details/properties/AccountKeys.jsx b/src/react/account/details/properties/AccountKeys.tsx similarity index 87% rename from src/react/account/details/properties/AccountKeys.jsx rename to src/react/account/details/properties/AccountKeys.tsx index 5738182a8..f618d7c8d 100644 --- a/src/react/account/details/properties/AccountKeys.jsx +++ b/src/react/account/details/properties/AccountKeys.tsx @@ -1,4 +1,3 @@ -// @flow import { HideMe, TextAligner } from '../../../ui-elements/Utility'; import React, { useEffect, useMemo } from 'react'; import Table, * as T from '../../../ui-elements/Table'; @@ -18,12 +17,10 @@ import { Warning } from '../../../ui-elements/Warning'; import { formatShortDate } from '../../../utils'; import { spacing } from '@scality/core-ui/dist/style/theme'; import styled from 'styled-components'; - const TableContainer = styled.div` display: block; margin-top: ${spacing.sp20}; `; - const EllipsisCell = styled.div` overflow: hidden; overflow-wrap: break-word; @@ -31,16 +28,14 @@ const EllipsisCell = styled.div` white-space: nowrap; word-break: break-all; `; - const initialSortBy = [ { id: 'created_at', desc: true, }, ]; - type Props = { - account: Account, + account: Account; }; function AccountKeys({ account }: Props) { @@ -48,7 +43,6 @@ function AccountKeys({ account }: Props) { const accessKeysInfo = useSelector( (state: AppState) => state.account.accessKeyList, ); - useEffect(() => { dispatch(listAccountAccessKeys(account.userName)); }, [dispatch, account.userName]); @@ -62,11 +56,21 @@ function AccountKeys({ account }: Props) { { Header: 'Access key ID', accessor: 'access_key', + Cell({ value: access_key }: { value: string }) { return ( - + {access_key} -
+
@@ -76,7 +80,10 @@ function AccountKeys({ account }: Props) { { Header: 'Created On', accessor: 'created_at', - headerStyle: { textAlign: 'right' }, + headerStyle: { + textAlign: 'right', + }, + Cell({ value: created_at }: { value: Date }) { return ( @@ -84,6 +91,7 @@ function AccountKeys({ account }: Props) { ); }, + width: 80, }, { @@ -91,6 +99,7 @@ function AccountKeys({ account }: Props) { Header: '', accessor: 'access_key', disableSortBy: true, + Cell({ value: access_key }: { value: string }) { return (
+
Account name @@ -125,4 +130,4 @@ const modalBody = (key: AccountKey | null) => { ); }; -export default SecretKeyModal; +export default SecretKeyModal; \ No newline at end of file diff --git a/src/react/account/details/properties/__tests__/AccountInfo.test.jsx b/src/react/account/details/properties/__tests__/AccountInfo.test.tsx similarity index 95% rename from src/react/account/details/properties/__tests__/AccountInfo.test.jsx rename to src/react/account/details/properties/__tests__/AccountInfo.test.tsx index 297418576..c35fff1b3 100644 --- a/src/react/account/details/properties/__tests__/AccountInfo.test.jsx +++ b/src/react/account/details/properties/__tests__/AccountInfo.test.tsx @@ -4,7 +4,6 @@ import AccountInfo from '../AccountInfo'; import React from 'react'; import Table from '../../../../ui-elements/TableKeyValue'; import { formatDate } from '../../../../utils'; - const account1 = { arn: 'arn1', canonicalId: 'canonicalId1', @@ -16,49 +15,45 @@ const account1 = { }; function testRow(rowWrapper, { key, value, extraCellComponent }) { - testTableRow(T, rowWrapper, { key, value, extraCellComponent }); + testTableRow(T, rowWrapper, { + key, + value, + extraCellComponent, + }); } describe('AccountInfo', () => { it('should render AccountInfo component', () => { const { component } = reduxMount(); - const button = component.find('button#delete-account-btn'); expect(button).toHaveLength(1); expect(button.text()).toContain('Delete Account'); - expect(component.find(Table)).toHaveLength(1); - const rows = component.find(T.Row); expect(rows).toHaveLength(5); - const firstRow = rows.first(); testRow(firstRow, { key: 'Account ID', value: account1.id, extraCellComponent: 'Clipboard', }); - const secondRow = rows.at(1); testRow(secondRow, { key: 'Name', value: account1.userName, extraCellComponent: 'Clipboard', }); - const thirdRow = rows.at(2); testRow(thirdRow, { key: 'Creation Date', value: formatDate(new Date(account1.createDate)), }); - const fifthRow = rows.at(3); testRow(fifthRow, { key: 'Root User Email', value: account1.email, extraCellComponent: 'Clipboard', }); - const sixthRow = rows.at(4); testRow(sixthRow, { key: 'Root User ARN', @@ -66,4 +61,4 @@ describe('AccountInfo', () => { extraCellComponent: 'Clipboard', }); }); -}); +}); \ No newline at end of file diff --git a/src/react/account/details/properties/__tests__/AccountKeys.test.jsx b/src/react/account/details/properties/__tests__/AccountKeys.test.tsx similarity index 93% rename from src/react/account/details/properties/__tests__/AccountKeys.test.jsx rename to src/react/account/details/properties/__tests__/AccountKeys.test.tsx index a064e9fd4..8e2cc7094 100644 --- a/src/react/account/details/properties/__tests__/AccountKeys.test.jsx +++ b/src/react/account/details/properties/__tests__/AccountKeys.test.tsx @@ -6,7 +6,6 @@ import { Warning } from '../../../../ui-elements/Warning'; import { accountAccessKeys } from '../../../../../js/mock/IAMClient'; import { formatShortDate } from '../../../../utils'; import { reduxMount } from '../../../../utils/test'; - const account1 = { arn: 'arn1', canonicalId: 'canonicalId1', @@ -16,7 +15,6 @@ const account1 = { quotaMax: 1, userName: 'bart', }; - describe('AccountKeys', () => { it('should render AccountKeys component', () => { const { component } = reduxMount(, { @@ -32,25 +30,22 @@ describe('AccountKeys', () => { expect(component.find(Table)).toHaveLength(1); const rows = component.find(T.Row); expect(rows).toHaveLength(accountAccessKeys.length); - // Check if accessKeys are sorted by creation date (most recent being on the top) const firstRow = rows.first(); - const firstColumns = firstRow.find(T.Cell).map(column => column.text()); + const firstColumns = firstRow.find(T.Cell).map((column) => column.text()); expect(firstColumns.length).toEqual(3); expect(firstColumns[0]).toEqual(accountAccessKeys[1].AccessKeyId); expect(firstColumns[1]).toEqual( formatShortDate(new Date(accountAccessKeys[1].CreateDate)), ); - const secondRow = rows.at(1); - const secondColumns = secondRow.find(T.Cell).map(column => column.text()); + const secondColumns = secondRow.find(T.Cell).map((column) => column.text()); expect(secondColumns.length).toEqual(3); expect(secondColumns[0]).toEqual(accountAccessKeys[0].AccessKeyId); expect(secondColumns[1]).toEqual( formatShortDate(new Date(accountAccessKeys[0].CreateDate)), ); }); - it('should render notification whenever there is at least 1 Root Access Key', () => { const accessKey = accountAccessKeys[0]; const { component } = reduxMount(, { @@ -66,17 +61,14 @@ describe('AccountKeys', () => { expect(component.find(Table)).toHaveLength(1); const rows = component.find(T.Row); expect(rows).toHaveLength(1); - const row = rows.first(); - const columns = row.find(T.Cell).map(column => column.text()); + const columns = row.find(T.Cell).map((column) => column.text()); expect(columns.length).toEqual(3); expect(columns[0]).toEqual(accessKey.AccessKeyId); expect(columns[1]).toEqual(formatShortDate(new Date(accessKey.CreateDate))); - // Check if there is the notification expect(component.find(HideMe).prop('isHidden')).toBeFalsy(); }); - it('should render Warning/Banner accordingly to number of Access Key', () => { const { component } = reduxMount(, { configuration: { @@ -91,10 +83,9 @@ describe('AccountKeys', () => { expect(component.find(Table)).toHaveLength(1); const rows = component.find(T.Row); expect(rows).toHaveLength(0); - // Check if there is the notification expect(component.find(HideMe).prop('isHidden')).toBeTruthy(); // Check if there is the Warning in the table expect(component.find(Warning)).toHaveLength(1); }); -}); +}); \ No newline at end of file diff --git a/src/react/account/details/properties/__tests__/SecretKeyModal.test.jsx b/src/react/account/details/properties/__tests__/SecretKeyModal.test.tsx similarity index 91% rename from src/react/account/details/properties/__tests__/SecretKeyModal.test.jsx rename to src/react/account/details/properties/__tests__/SecretKeyModal.test.tsx index 29f2a1c4b..cd0ac3f27 100644 --- a/src/react/account/details/properties/__tests__/SecretKeyModal.test.jsx +++ b/src/react/account/details/properties/__tests__/SecretKeyModal.test.tsx @@ -2,7 +2,6 @@ import Table, * as T from '../../../../ui-elements/TableKeyValue'; import { reduxMount, testTableRow } from '../../../../utils/test'; import React from 'react'; import SecretKeyModal from '../SecretKeyModal'; - const account = { arn: 'arn1', canonicalId: 'canonicalId1', @@ -12,17 +11,19 @@ const account = { quotaMax: 1, userName: 'bart', }; - const accountKey = { accountName: 'bart', accessKey: 'ak1', secretKey: 'sk1', }; - const hiddenValue = '*********'; function testRow(rowWrapper, { key, value, extraCellComponent }) { - testTableRow(T, rowWrapper, { key, value, extraCellComponent }); + testTableRow(T, rowWrapper, { + key, + value, + extraCellComponent, + }); } describe('SecretKeyModal', () => { @@ -32,16 +33,12 @@ describe('SecretKeyModal', () => { showKeyCreate: true, }, }); - expect(component.find(SecretKeyModal).isEmptyRender()).toBe(false); }); - it('should not render SecretKeyModal if closed', async () => { const { component } = reduxMount(); - expect(component.find(SecretKeyModal).isEmptyRender()).toBe(true); }); - it('should render SecretKeyModal component with key informations', () => { const { component } = reduxMount(, { uiAccounts: { @@ -51,22 +48,20 @@ describe('SecretKeyModal', () => { accountKey, }, }); - expect(component.find(Table)).toHaveLength(1); - const rows = component.find(T.Row); expect(rows).toHaveLength(3); - const firstRow = rows.first(); - testRow(firstRow, { key: 'Account name', value: accountKey.accountName }); - + testRow(firstRow, { + key: 'Account name', + value: accountKey.accountName, + }); const secondRow = rows.at(1); testRow(secondRow, { key: 'Access key ID', value: accountKey.accessKey, extraCellComponent: 'Clipboard', }); - const thirdRow = rows.at(2); testRow(thirdRow, { key: 'Secret Access key', @@ -74,4 +69,4 @@ describe('SecretKeyModal', () => { extraCellComponent: 'Clipboard', }); }); -}); +}); \ No newline at end of file diff --git a/src/react/actions/__tests__/account.test.jsx b/src/react/actions/__tests__/account.test.ts similarity index 97% rename from src/react/actions/__tests__/account.test.jsx rename to src/react/actions/__tests__/account.test.ts index 6380d489b..fbaac8a02 100644 --- a/src/react/actions/__tests__/account.test.jsx +++ b/src/react/actions/__tests__/account.test.ts @@ -16,7 +16,6 @@ import { } from './utils/testUtil'; import { ErrorMockIAMClient, MockIAMClient } from '../../../js/mock/IAMClient'; import { getAssumeRoleWithWebIdentityIAM } from '../../../js/IAMClient'; - const createAccountNetworkAction = dispatchAction.NETWORK_START_ACTION( 'Creating account', ); @@ -37,13 +36,11 @@ const listAccountAccessKeysActions = [ dispatchAction.LIST_ACCOUNT_ACCESS_KEY_SUCCESS_ACTION, dispatchAction.NETWORK_END_ACTION, ]; - jest.mock('../../../js/IAMClient', () => { return { getAssumeRoleWithWebIdentityIAM: jest.fn(), }; }); - describe('account actions', () => { const syncTests = [ { @@ -81,13 +78,14 @@ describe('account actions', () => { expectedActions: [dispatchAction.DELETE_ACCOUNT_SECRET_ACTION], }, ]; - syncTests.forEach(testActionFunction); - const asyncTests = [ { it: 'createAccount: should return expected actions', - fn: actions.createAccount({ userName: 'bart', email: 'test@test.com' }), + fn: actions.createAccount({ + userName: 'bart', + email: 'test@test.com', + }), storeState: authenticatedUserState(), expectedActions: [ createAccountNetworkAction, @@ -98,7 +96,10 @@ describe('account actions', () => { }, { it: 'createAccount: should handle error', - fn: actions.createAccount({ userName: 'bart', email: 'test@test.com' }), + fn: actions.createAccount({ + userName: 'bart', + email: 'test@test.com', + }), storeState: errorManagementState(), expectedActions: [ createAccountNetworkAction, @@ -146,10 +147,8 @@ describe('account actions', () => { ], }, ]; - asyncTests.forEach(testDispatchFunction); }); - describe('account actions with mocked IAM client', () => { beforeEach(() => { getAssumeRoleWithWebIdentityIAM.mockImplementation(() => @@ -159,7 +158,6 @@ describe('account actions with mocked IAM client', () => { afterEach(() => { jest.clearAllMocks(); }); - const asyncTests = [ { it: 'listAccountAccessKeys: should return expected actions', @@ -191,7 +189,6 @@ describe('account actions with mocked IAM client', () => { ]; asyncTests.forEach(testDispatchFunction); }); - describe('account actions with mocked failing IAM client', () => { beforeEach(() => { getAssumeRoleWithWebIdentityIAM.mockImplementation(() => @@ -201,7 +198,6 @@ describe('account actions with mocked failing IAM client', () => { afterEach(() => { jest.clearAllMocks(); }); - const asyncTests = [ { it: 'listAccountAccessKeys: should handle error', @@ -225,4 +221,4 @@ describe('account actions with mocked failing IAM client', () => { }, ]; asyncTests.forEach(testDispatchFunction); -}); +}); \ No newline at end of file diff --git a/src/react/actions/__tests__/auth.test.js b/src/react/actions/__tests__/auth.test.ts similarity index 99% rename from src/react/actions/__tests__/auth.test.js rename to src/react/actions/__tests__/auth.test.ts index bd2b180fd..9f20ab9f8 100644 --- a/src/react/actions/__tests__/auth.test.js +++ b/src/react/actions/__tests__/auth.test.ts @@ -1,6 +1,5 @@ import * as actions from '../auth'; import * as dispatchAction from './utils/dispatchActionsList'; - import { APP_CONFIG, INSTANCE_ID, @@ -10,10 +9,8 @@ import { testActionFunction, testDispatchFunction, } from './utils/testUtil'; - import { MockManagementClient } from '../../../js/mock/managementClient'; import { MockSTSClient } from '../../../js/mock/STSClient'; - describe('auth actions', () => { const syncTests = [ { @@ -62,9 +59,7 @@ describe('auth actions', () => { expectedActions: [dispatchAction.SET_OIDC_LOGOUT_ACTION], }, ]; - syncTests.forEach(testActionFunction); - const asyncTests = [ { it: 'loadClients: should handle error if user is not authenticated', @@ -78,6 +73,5 @@ describe('auth actions', () => { ], }, ]; - asyncTests.forEach(testDispatchFunction); -}); +}); \ No newline at end of file diff --git a/src/react/actions/__tests__/configuration.test.js b/src/react/actions/__tests__/configuration.test.ts similarity index 99% rename from src/react/actions/__tests__/configuration.test.js rename to src/react/actions/__tests__/configuration.test.ts index 0d71a8bea..faae4882c 100644 --- a/src/react/actions/__tests__/configuration.test.js +++ b/src/react/actions/__tests__/configuration.test.ts @@ -6,7 +6,6 @@ import { testActionFunction, testDispatchFunction, } from './utils/testUtil'; - describe('configuration actions', () => { const syncTests = [ { @@ -15,9 +14,7 @@ describe('configuration actions', () => { expectedActions: [dispatchAction.CONFIGURATION_VERSION_ACTION], }, ]; - syncTests.forEach(testActionFunction); - const asyncTests = [ { it: 'updateConfiguration: should return expected action', @@ -26,6 +23,5 @@ describe('configuration actions', () => { expectedActions: [dispatchAction.CONFIGURATION_VERSION_ACTION], }, ]; - asyncTests.forEach(testDispatchFunction); -}); +}); \ No newline at end of file diff --git a/src/react/actions/__tests__/endpoint.test.js b/src/react/actions/__tests__/endpoint.test.ts similarity index 99% rename from src/react/actions/__tests__/endpoint.test.js rename to src/react/actions/__tests__/endpoint.test.ts index c56ccdc28..7e2b19eca 100644 --- a/src/react/actions/__tests__/endpoint.test.js +++ b/src/react/actions/__tests__/endpoint.test.ts @@ -10,14 +10,12 @@ import { testDispatchFunctionWithFullStore, } from './utils/testUtil'; import { MockManagementClientWithConfigurationVersions } from '../../../js/mock/managementClient'; - const createEndpointNetworkStart = dispatchAction.NETWORK_START_ACTION( 'Deploying Data Service', ); const deleteEndpointNetworkAction = dispatchAction.NETWORK_START_ACTION( 'Deleting Data Service', ); - describe('endpoint actions', () => { const hostname = 's3.exemple.com'; const locationName = 'loc1'; @@ -35,9 +33,7 @@ describe('endpoint actions', () => { expectedActions: [dispatchAction.CLOSE_ENDPOINT_DELETE_DIALOG_ACTION], }, ]; - syncTests.forEach(testActionFunction); - const asyncTests = [ { it: 'createEndpoint: should return expected actions', @@ -87,9 +83,7 @@ describe('endpoint actions', () => { ], }, ]; - asyncTests.forEach(testDispatchFunction); - const asyncFullStoreTests = [ { it: 'createEndpoint: should wait for new configuration version', @@ -124,6 +118,5 @@ describe('endpoint actions', () => { ], }, ]; - asyncFullStoreTests.forEach(testDispatchFunctionWithFullStore); -}); +}); \ No newline at end of file diff --git a/src/react/actions/__tests__/location.test.jsx b/src/react/actions/__tests__/location.test.ts similarity index 99% rename from src/react/actions/__tests__/location.test.jsx rename to src/react/actions/__tests__/location.test.ts index 6708bd0be..83d299d26 100644 --- a/src/react/actions/__tests__/location.test.jsx +++ b/src/react/actions/__tests__/location.test.ts @@ -11,7 +11,6 @@ import { testDispatchFunctionWithFullStore, } from './utils/testUtil'; import { MockManagementClientWithConfigurationVersions } from '../../../js/mock/managementClient'; - const locationObj = LOCATION; const saveLocationNetworkStart = dispatchAction.NETWORK_START_ACTION( 'Deploying location', @@ -19,7 +18,6 @@ const saveLocationNetworkStart = dispatchAction.NETWORK_START_ACTION( const deleteLocationNetworkAction = dispatchAction.NETWORK_START_ACTION( 'Deleting location', ); - describe('location actions', () => { const locationName = 'loc1'; const syncTests = [ @@ -36,9 +34,7 @@ describe('location actions', () => { expectedActions: [dispatchAction.CLOSE_LOCATION_DELETE_DIALOG_ACTION], }, ]; - syncTests.forEach(testActionFunction); - const asyncTests = [ { it: 'saveLocation: should return expected actions', @@ -74,7 +70,6 @@ describe('location actions', () => { dispatchAction.NETWORK_END_ACTION, ], }, - { it: 'deleteLocation: should return expected actions', fn: actions.deleteLocation('loc1'), @@ -100,9 +95,7 @@ describe('location actions', () => { ], }, ]; - asyncTests.forEach(testDispatchFunction); - const asyncFullStoreTests = [ { it: 'saveLocation: should wait for new configuration version', @@ -137,6 +130,5 @@ describe('location actions', () => { ], }, ]; - asyncFullStoreTests.forEach(testDispatchFunctionWithFullStore); -}); +}); \ No newline at end of file diff --git a/src/react/actions/__tests__/replication.test.js b/src/react/actions/__tests__/replication.test.ts similarity index 97% rename from src/react/actions/__tests__/replication.test.js rename to src/react/actions/__tests__/replication.test.ts index 103a6ff1f..3fdb8a666 100644 --- a/src/react/actions/__tests__/replication.test.js +++ b/src/react/actions/__tests__/replication.test.ts @@ -6,15 +6,13 @@ import { initState, testDispatchFunction, } from './utils/testUtil'; -import { searchWorkflowsActions } from './workflow.test.js'; - +import { searchWorkflowsActions } from './workflow.test'; const deleteReplicationNetworkAction = dispatchAction.NETWORK_START_ACTION( 'Deleting replication', ); const createReplicationNetworkAction = dispatchAction.NETWORK_START_ACTION( 'Creating replication', ); - describe('replication actions', () => { const asyncTests = [ { @@ -70,6 +68,5 @@ describe('replication actions', () => { ], }, ]; - asyncTests.forEach(testDispatchFunction); -}); +}); \ No newline at end of file diff --git a/src/react/actions/__tests__/s3bucket.test.jsx b/src/react/actions/__tests__/s3bucket.test.ts similarity index 98% rename from src/react/actions/__tests__/s3bucket.test.jsx rename to src/react/actions/__tests__/s3bucket.test.ts index 818628b15..d8909f700 100644 --- a/src/react/actions/__tests__/s3bucket.test.jsx +++ b/src/react/actions/__tests__/s3bucket.test.ts @@ -11,7 +11,6 @@ import { testDispatchAWSErrorTestFn, testDispatchFunction, } from './utils/testUtil'; - const createBucketNetworkAction = dispatchAction.NETWORK_START_ACTION( 'Creating bucket', ); @@ -30,13 +29,11 @@ const toggleBucketVersioningNetworkAction = dispatchAction.NETWORK_START_ACTION( const editDefaultRetentionNetworkAction = dispatchAction.NETWORK_START_ACTION( 'Editing bucket default retention', ); - const listBucketsActions = [ listBucketsNetworkAction, dispatchAction.LIST_BUCKETS_SUCCESS_ACTION([], OWNER_NAME), dispatchAction.NETWORK_END_ACTION, ]; - describe('s3bucket actions', () => { const syncTests = [ { @@ -64,9 +61,7 @@ describe('s3bucket actions', () => { expectedActions: [dispatchAction.GET_BUCKET_INFO_SUCCESS_ACTION], }, ]; - syncTests.forEach(testActionFunction); - const asyncTests = [ { it: 'createBucket: should return expected actions', @@ -78,7 +73,9 @@ describe('s3bucket actions', () => { }, isObjectLockEnabled: false, }, - { isVersioning: false }, + { + isVersioning: false, + }, ), storeState: initState, expectedActions: [ @@ -98,7 +95,9 @@ describe('s3bucket actions', () => { }, isObjectLockEnabled: false, }, - { isVersioning: false }, + { + isVersioning: false, + }, ), storeState: errorZenkoState(), expectedActions: [ @@ -205,9 +204,7 @@ describe('s3bucket actions', () => { ], }, ]; - asyncTests.forEach(testDispatchFunction); - testDispatchAWSErrorTestFn( { message: AWS_CLIENT_ERROR_MSG, @@ -222,4 +219,4 @@ describe('s3bucket actions', () => { ], }, ); -}); +}); \ No newline at end of file diff --git a/src/react/actions/__tests__/s3object.test.jsx b/src/react/actions/__tests__/s3object.test.ts similarity index 99% rename from src/react/actions/__tests__/s3object.test.jsx rename to src/react/actions/__tests__/s3object.test.ts index b74f4cd86..af7353811 100644 --- a/src/react/actions/__tests__/s3object.test.jsx +++ b/src/react/actions/__tests__/s3object.test.ts @@ -22,7 +22,6 @@ import { testActionFunction, testDispatchFunction, } from './utils/testUtil'; - const createFolderNetworkAction = dispatchAction.NETWORK_START_ACTION( 'Creating folder', ); @@ -41,7 +40,6 @@ const gettingObjectMetadataNetworkAction = dispatchAction.NETWORK_START_ACTION( const gettingObjectTagsNetworkAction = dispatchAction.NETWORK_START_ACTION( 'Getting object tags', ); - describe('s3object actions', () => { const syncTests = [ { @@ -151,9 +149,7 @@ describe('s3object actions', () => { ], }, ]; - syncTests.forEach(testActionFunction); - const asyncTests = [ { it: @@ -517,6 +513,5 @@ describe('s3object actions', () => { ], }, ]; - asyncTests.forEach(testDispatchFunction); -}); +}); \ No newline at end of file diff --git a/src/react/actions/__tests__/utils/dispatchActionsList.js b/src/react/actions/__tests__/utils/dispatchActionsList.ts similarity index 94% rename from src/react/actions/__tests__/utils/dispatchActionsList.js rename to src/react/actions/__tests__/utils/dispatchActionsList.ts index d7d906788..428df6604 100644 --- a/src/react/actions/__tests__/utils/dispatchActionsList.js +++ b/src/react/actions/__tests__/utils/dispatchActionsList.ts @@ -1,5 +1,3 @@ -// @flow - import { ACCOUNT, ACCOUNT_ACCESS_KEY, @@ -16,7 +14,6 @@ import { THEME, WORKFLOWS, } from './testUtil'; - import type { AddAccountSecretAction, CloseAccountDeleteDialogAction, @@ -87,80 +84,79 @@ import type { import { CALL_HISTORY_METHOD } from 'connected-react-router'; import { MockManagementClient } from '../../../../js/mock/managementClient'; import { MockSTSClient } from '../../../../js/mock/STSClient'; - // auth actions export const SET_MANAGEMENT_CLIENT_ACTION: SetManagementClientAction = { type: 'SET_MANAGEMENT_CLIENT', managementClient: new MockManagementClient(), }; - export function SET_ZENKO_CLIENT_ACTION( zenkoClient: ZenkoClientInterface, ): SetZenkoClientAction { - return { type: 'SET_ZENKO_CLIENT', zenkoClient }; + return { + type: 'SET_ZENKO_CLIENT', + zenkoClient, + }; } - export const SET_STS_CLIENT_ACTION: SetSTSClientAction = { type: 'SET_STS_CLIENT', stsClient: new MockSTSClient(), }; - export const SET_APP_CONFIG_ACTION: SetAppConfigAction = { type: 'SET_APP_CONFIG', config: APP_CONFIG, }; - export const SELECT_INSTANCE_ACTION: SelectInstanceAction = { type: 'SELECT_INSTANCE', selectedId: INSTANCE_ID, }; - export const LOAD_CONFIG_SUCCESS_ACTION: LoadConfigSuccessAction = { type: 'LOAD_CONFIG_SUCCESS', }; - export const LOAD_CLIENTS_SUCCESS_ACTION: LoadClientsSuccessAction = { type: 'LOAD_CLIENTS_SUCCESS', }; - export const CONFIG_AUTH_FAILURE_ACTION: ConfigAuthFailureAction = { type: 'CONFIG_AUTH_FAILURE', }; - export const SELECT_ACCOUNT_ACTION: SelectAccountAction = { type: 'SELECT_ACCOUNT', account: ACCOUNT, }; - export const SET_THEME_ACTION: SetThemeAction = { type: 'SET_THEME', theme: THEME, }; - export const SET_OIDC_LOGOUT_ACTION: SetOIDCLogoutAction = { type: 'SET_OIDC_LOGOUT', logout: LOGOUT_MOCK, }; // * account action - export const LIST_ACCOUNT_ACCESS_KEY_SUCCESS_ACTION: ListAccountAccessKeySuccessAction = { type: 'LIST_ACCOUNT_ACCESS_KEY_SUCCESS', accessKeys: ACCOUNT_ACCESS_KEYS, }; - // * error action export function HANDLE_ERROR_MODAL_ACTION(errorMsg: string): HandleErrorAction { - return { type: 'HANDLE_ERROR', errorMsg, errorType: 'byModal' }; + return { + type: 'HANDLE_ERROR', + errorMsg, + errorType: 'byModal', + }; } - export function HANDLE_ERROR_AUTH_ACTION(errorMsg: string): HandleErrorAction { - return { type: 'HANDLE_ERROR', errorMsg, errorType: 'byAuth' }; + return { + type: 'HANDLE_ERROR', + errorMsg, + errorType: 'byAuth', + }; } - export function HANDLE_ERROR_SPEC_ACTION(errorMsg: string): HandleErrorAction { - return { type: 'HANDLE_ERROR', errorMsg, errorType: 'byComponent' }; + return { + type: 'HANDLE_ERROR', + errorMsg, + errorType: 'byComponent', + }; } - export const ZENKO_HANDLE_ERROR_ACTION = ( error: ZenkoClientError, target: string | null, @@ -172,56 +168,54 @@ export const ZENKO_HANDLE_ERROR_ACTION = ( errorType: type, errorTarget: target, }); - export const LOCATION_PUSH_ACTION = (path: string) => ({ type: CALL_HISTORY_METHOD, - payload: { args: [path], method: 'push' }, + payload: { + args: [path], + method: 'push', + }, }); - export const LOCATION_BACK_ACTION = { type: CALL_HISTORY_METHOD, - payload: { args: [], method: 'goBack' }, + payload: { + args: [], + method: 'goBack', + }, }; - // * config actions export const CONFIGURATION_VERSION_ACTION: ConfigurationVersionAction = { type: 'CONFIGURATION_VERSION', configuration: LATEST_OVERLAY, }; - // * network actions export const NETWORK_START_ACTION = ( msg: string, -): NetworkActivityStartAction => ({ type: 'NETWORK_START', message: msg }); - +): NetworkActivityStartAction => ({ + type: 'NETWORK_START', + message: msg, +}); export const NETWORK_END_ACTION: NetworkActivityEndAction = { type: 'NETWORK_END', }; - export const NETWORK_AUTH_FAILURE_ACTION: NetworkActivityAuthFailureAction = { type: 'NETWORK_AUTH_FAILURE', }; - // * account actions export const OPEN_ACCOUNT_DELETE_DIALOG_ACTION: OpenAccountDeleteDialogAction = { type: 'OPEN_ACCOUNT_DELETE_DIALOG', }; - export const CLOSE_ACCOUNT_DELETE_DIALOG_ACTION: CloseAccountDeleteDialogAction = { type: 'CLOSE_ACCOUNT_DELETE_DIALOG', }; - export const ADD_ACCOUNT_SECRET_ACTION: AddAccountSecretAction = { type: 'ADD_ACCOUNT_SECRET', accountName: ACCOUNT_NAME, accessKey: ACCOUNT_ACCESS_KEY, secretKey: ACCOUNT_SECRET_KEY, }; - export const DELETE_ACCOUNT_SECRET_ACTION: DeleteAccountSecretAction = { type: 'DELETE_ACCOUNT_SECRET', }; - // * location actions export const OPEN_LOCATION_DELETE_DIALOG_ACTION = ( locationName: LocationName, @@ -229,11 +223,9 @@ export const OPEN_LOCATION_DELETE_DIALOG_ACTION = ( type: 'OPEN_LOCATION_DELETE_DIALOG', locationName, }); - export const CLOSE_LOCATION_DELETE_DIALOG_ACTION: CloseLocationDeleteDialogAction = { type: 'CLOSE_LOCATION_DELETE_DIALOG', }; - // * endpoint actions export const OPEN_ENDPOINT_DELETE_DIALOG_ACTION = ( hostname: Hostname, @@ -241,11 +233,9 @@ export const OPEN_ENDPOINT_DELETE_DIALOG_ACTION = ( type: 'OPEN_ENDPOINT_DELETE_DIALOG', hostname, }); - export const CLOSE_ENDPOINT_DELETE_DIALOG_ACTION: CloseEndpointDeleteDialogAction = { type: 'CLOSE_ENDPOINT_DELETE_DIALOG', }; - // * buckets actions export const LIST_BUCKETS_SUCCESS_ACTION = ( list: Array, @@ -255,23 +245,19 @@ export const LIST_BUCKETS_SUCCESS_ACTION = ( list: [], ownerName, }); - export const OPEN_BUCKET_DELETE_DIALOG_ACTION = ( bucketName: string, ): OpenBucketDeleteDialogAction => ({ type: 'OPEN_BUCKET_DELETE_DIALOG', bucketName, }); - export const CLOSE_BUCKET_DELETE_DIALOG_ACTION: CloseBucketDeleteDialogAction = { type: 'CLOSE_BUCKET_DELETE_DIALOG', }; - export const GET_BUCKET_INFO_SUCCESS_ACTION: GetBucketInfoSuccessAction = { type: 'GET_BUCKET_INFO_SUCCESS', info: BUCKET_INFO_RESPONSE, }; - // * objects actions export const LIST_OBJECTS_SUCCESS_ACTION = ( contents: Array, @@ -287,50 +273,42 @@ export const LIST_OBJECTS_SUCCESS_ACTION = ( nextMarker: nextContinuationToken, }; }; - export const OPEN_FOLDER_CREATE_MODAL_ACTION = (): OpenFolderCreateModalAction => { return { type: 'OPEN_FOLDER_CREATE_MODAL', }; }; - export const CLOSE_FOLDER_CREATE_MODAL_ACTION = (): CloseFolderCreateModalAction => { return { type: 'CLOSE_FOLDER_CREATE_MODAL', }; }; - export const OPEN_OBJECT_UPLOAD_MODAL_ACTION = (): OpenObjectUploadModalAction => { return { type: 'OPEN_OBJECT_UPLOAD_MODAL', }; }; - export const CLOSE_OBJECT_UPLOAD_MODAL_ACTION = (): CloseObjectUploadModalAction => { return { type: 'CLOSE_OBJECT_UPLOAD_MODAL', }; }; - export const OPEN_OBJECT_DELETE_MODAL_ACTION = (): OpenObjectDeleteModalAction => { return { type: 'OPEN_OBJECT_DELETE_MODAL', }; }; - export const CLOSE_OBJECT_DELETE_MODAL_ACTION = (): CloseObjectDeleteModalAction => { return { type: 'CLOSE_OBJECT_DELETE_MODAL', }; }; - export const TOGGLE_OBJECT_ACTION = (objectKey: string): ToggleObjectAction => { return { type: 'TOGGLE_OBJECT', objectKey, }; }; - export const TOGGLE_ALL_OBJECTS_ACTION = ( toggled: boolean, ): ToggleAllObjectsAction => { @@ -339,22 +317,20 @@ export const TOGGLE_ALL_OBJECTS_ACTION = ( toggled, }; }; - export const RESET_OBJECT_METADATA_ACTION = (): ResetObjectMetadataAction => { return { type: 'RESET_OBJECT_METADATA', }; }; - export const GET_OBJECT_METADATA_SUCCESS_ACTION = ( bucketName: string, objectKey: string, info: HeadObjectResponse, tags: TagSet, - ObjectRetention: {| - Mode: RetentionMode, - RetainUntilDate: Date, - |}, + ObjectRetention: { + Mode: RetentionMode; + RetainUntilDate: Date; + }, isLegalHoldEnabled: boolean, ): GetObjectMetadataSuccessAction => { return { @@ -367,14 +343,12 @@ export const GET_OBJECT_METADATA_SUCCESS_ACTION = ( isLegalHoldEnabled, }; }; - // * zenko actions export const ZENKO_CLEAR_ERROR_ACTION = (): ZenkoClearAction => { return { type: 'ZENKO_CLEAR_ERROR', }; }; - export const ZENKO_CLIENT_WRITE_SEARCH_LIST_ACTION = ( nextMarker: Marker, list: SearchResultList, @@ -385,7 +359,6 @@ export const ZENKO_CLIENT_WRITE_SEARCH_LIST_ACTION = ( list, }; }; - export const ZENKO_CLIENT_APPEND_SEARCH_LIST_ACTION = ( nextMarker: Marker, list: SearchResultList, @@ -396,46 +369,39 @@ export const ZENKO_CLIENT_APPEND_SEARCH_LIST_ACTION = ( list, }; }; - // workflow actions export const OPEN_WORKFLOW_EDIT_NOTIFICATION_ACTION = (): OpenWorkflowEditNotificationAction => { return { type: 'OPEN_WORKFLOW_EDIT_NOTIFICATION', }; }; - export const CLOSE_WORKFLOW_EDIT_NOTIFICATION_ACTION = (): CloseWorkflowEditNotificationAction => { return { type: 'CLOSE_WORKFLOW_EDIT_NOTIFICATION', }; }; - export const OPEN_WORKFLOW_DELETE_MODAL_ACTION = (): OpenWorkflowDeleteModalAction => { return { type: 'OPEN_WORKFLOW_DELETE_MODAL', }; }; - export const CLOSE_WORKFLOW_DELETE_MODAL_ACTION = (): CloseWorkflowDeleteModalAction => { return { type: 'CLOSE_WORKFLOW_DELETE_MODAL', }; }; - export const SEARCH_WORKFLOWS_SUCCESS_ACTION = (): SearchWorkflowsSuccessAction => { return { type: 'SEARCH_WORKFLOWS_SUCCESS', workflows: WORKFLOWS, }; }; - // instance status actions export const INSTANCE_STATUS_ACTION_RUNNINGv1: InstanceStatusAction = { type: 'INSTANCE_STATUS', status: INSTANCE_STATUS_RUNNINGv1, }; - export const INSTANCE_STATUS_ACTION_RUNNINGv2: InstanceStatusAction = { type: 'INSTANCE_STATUS', status: INSTANCE_STATUS_RUNNINGv2, -}; +}; \ No newline at end of file diff --git a/src/react/actions/__tests__/utils/testUtil.js b/src/react/actions/__tests__/utils/testUtil.ts similarity index 93% rename from src/react/actions/__tests__/utils/testUtil.js rename to src/react/actions/__tests__/utils/testUtil.ts index a0e78c099..bb80d76fe 100644 --- a/src/react/actions/__tests__/utils/testUtil.js +++ b/src/react/actions/__tests__/utils/testUtil.ts @@ -1,4 +1,4 @@ -// @flow +/* eslint-disable */ import { ApiErrorObject, awsErrorObject } from '../../../../js/mock/error'; import { ErrorMockManagementClient, @@ -44,24 +44,24 @@ import thunk from 'redux-thunk'; import zenkoUIReducer from '../../../reducers'; import type { EnabledState } from '../../../../types/stats'; import { XDM_FEATURE } from '../../../../js/config'; - -type ActionTestObject = {| - skip?: boolean, - it: string, - fn: Function, - expectedActions: Array<{ type: string }>, -|}; - -type DispatchTestObject = {| - skip?: boolean, - it: string, - fn: Function, - storeState: AppState, - expectedActions: Array<{ type: string }>, -|}; - +type ActionTestObject = { + skip?: boolean; + it: string; + fn: (...args: Array) => any; + expectedActions: Array<{ + type: string; + }>; +}; +type DispatchTestObject = { + skip?: boolean; + it: string; + fn: (...args: Array) => any; + storeState: AppState; + expectedActions: Array<{ + type: string; + }>; +}; export const mockStore = () => configureStore([thunk]); - export const APP_CONFIG = { managementEndpoint: 'https://managementEndpoint', stsEndpoint: 'https://stsEndpoint', @@ -72,13 +72,10 @@ export const APP_CONFIG = { features: [XDM_FEATURE], }; export const INSTANCE_ID = '3d49e1f9-fa2f-40aa-b2d4-c7a8b04c6cde'; - export const initState: AppState = initialFullState; - export const USER_MANAGER_ERROR_MSG = 'User Manager Error Response'; export const MANAGEMENT_ERROR_MSG = 'Management API Error Response'; export const AWS_CLIENT_ERROR_MSG = 'AWS Client Api Error Response'; - export const USER_MANAGER_ERROR = new ApiErrorObject( USER_MANAGER_ERROR_MSG, 500, @@ -88,7 +85,6 @@ export const AWS_CLIENT_ERROR = awsErrorObject( AWS_CLIENT_ERROR_MSG, 'InternalError', ); - export const SITE = 'ring-s3-loc'; export const LATEST_OVERLAY = latestOverlay; export const ACCOUNT = account; @@ -120,19 +116,12 @@ export const ACCOUNT_SECRET_KEY = accountSecretKey; export const LOGOUT_MOCK = () => {}; export const INSTANCE_STATUS_RUNNINGv1 = { ...instanceStatus, - state: { - ...instanceStatus.state, - runningConfigurationVersion: 1, - }, + state: { ...instanceStatus.state, runningConfigurationVersion: 1 }, }; export const INSTANCE_STATUS_RUNNINGv2 = { ...instanceStatus, - state: { - ...instanceStatus.state, - runningConfigurationVersion: 2, - }, + state: { ...instanceStatus.state, runningConfigurationVersion: 2 }, }; - export const THEME = { brand: { statusHealthy: '#0AADA6', @@ -176,7 +165,6 @@ export const THEME = { info: '#434343', }, }; - export function errorManagementState(): AppState { const state = initState; return { @@ -187,7 +175,6 @@ export function errorManagementState(): AppState { }, }; } - export function errorZenkoState(): AppState { return { ...initState, @@ -197,7 +184,6 @@ export function errorZenkoState(): AppState { }, }; } - export function addNextMarkerToState(state: AppState): AppState { return { ...state, @@ -210,7 +196,6 @@ export function addNextMarkerToState(state: AppState): AppState { }, }; } - export function authenticatedUserState(): AppState { const state = initState; return { @@ -249,7 +234,6 @@ export function authenticatedUserState(): AppState { }, }; } - export function storeStateWithRunningConfigurationVersion2(): AppState { return { ...initState, @@ -265,20 +249,12 @@ export function storeStateWithRunningConfigurationVersion2(): AppState { }, }; } - export function storeStateWithManagementClient( state: AppState, client: ManagementClient, ): AppState { - return { - ...state, - auth: { - ...state.auth, - managementClient: client, - }, - }; + return { ...state, auth: { ...state.auth, managementClient: client } }; } - export function storeStateWithIngestion(state: EnabledState): AppState { return { ...initState, @@ -323,24 +299,22 @@ export const testActionFunction = (test: ActionTestObject) => { * @param (function) test.fn - test action * @param (object[]) test.expectedActions - list of expected dispatch actions */ - export const testDispatchFunction = (test: DispatchTestObject) => { (test.skip ? it.skip : it)(test.it, () => { const store = mockStore()(test.storeState); return store .dispatch(test.fn) .then(() => expect(store.getActions()).toEqual(test.expectedActions)) - .catch(error => { + .catch((error) => { throw new Error(`Expected success, but got error ${error.message}`); }); }); }; - export const testDispatchFunctionWithFullStore = (test: DispatchTestObject) => { - (test.skip ? it.skip : it)(test.it, done => { + (test.skip ? it.skip : it)(test.it, (done) => { const actions = []; - const captureActionsMiddleware = () => next => action => { + const captureActionsMiddleware = () => (next) => (action) => { actions.push(action); return next(action); }; @@ -350,17 +324,15 @@ export const testDispatchFunctionWithFullStore = (test: DispatchTestObject) => { test.storeState, compose(applyMiddleware(thunk, captureActionsMiddleware)), ); - return store .dispatch(test.fn) .then(() => expect(actions).toEqual(test.expectedActions)) .then(done) - .catch(error => + .catch((error) => done(new Error(`Expected success, but got error ${error.message}`)), ); }); }; - export const testDispatchAWSErrorTestFn = ( error: ApiErrorObject, test: DispatchTestObject, @@ -368,17 +340,18 @@ export const testDispatchAWSErrorTestFn = ( (test.skip ? it.skip : it)(test.it, async () => { const store = mockStore()(test.storeState); let testError = null; + try { await store.dispatch(test.fn); } catch (e) { const { message } = e; testError = message; } + expect(store.getActions()).toEqual(test.expectedActions); expect(testError).toEqual(error.message); }); }; - export const testDispatchErrorTestFn = ( error: ApiErrorObject, test: DispatchTestObject, @@ -386,12 +359,14 @@ export const testDispatchErrorTestFn = ( (test.skip ? it.skip : it)(test.it, async () => { const store = mockStore()(test.storeState); let testError = null; + try { await store.dispatch(test.fn); } catch (e) { const { message } = e.response.body; testError = message; } + expect(store.getActions()).toEqual(test.expectedActions); expect(testError).toEqual(error.message); }); diff --git a/src/react/actions/__tests__/workflow.test.js b/src/react/actions/__tests__/workflow.test.ts similarity index 99% rename from src/react/actions/__tests__/workflow.test.js rename to src/react/actions/__tests__/workflow.test.ts index 31ba65afd..e92f975ea 100644 --- a/src/react/actions/__tests__/workflow.test.js +++ b/src/react/actions/__tests__/workflow.test.ts @@ -1,6 +1,5 @@ import * as actions from '../workflow'; import * as dispatchAction from './utils/dispatchActionsList'; - import { WORKFLOWS, authenticatedUserState, @@ -9,17 +8,14 @@ import { testDispatchErrorTestFn, testDispatchFunction, } from './utils/testUtil'; - const searchWorkflowsNetworkAction = dispatchAction.NETWORK_START_ACTION( 'Searching for worflows', ); - export const searchWorkflowsActions = [ searchWorkflowsNetworkAction, dispatchAction.SEARCH_WORKFLOWS_SUCCESS_ACTION(), dispatchAction.NETWORK_END_ACTION, ]; - describe('workflow actions', () => { const syncTests = [ { @@ -52,9 +48,7 @@ describe('workflow actions', () => { expectedActions: [dispatchAction.SEARCH_WORKFLOWS_SUCCESS_ACTION()], }, ]; - syncTests.forEach(testActionFunction); - const asyncTests = [ { it: 'searchWorkflows: should return expected actions', @@ -67,9 +61,7 @@ describe('workflow actions', () => { ], }, ]; - asyncTests.forEach(testDispatchFunction); - testDispatchErrorTestFn( { message: 'Management API Error Response', @@ -84,4 +76,4 @@ describe('workflow actions', () => { ], }, ); -}); +}); \ No newline at end of file diff --git a/src/react/actions/__tests__/zenko.test.js b/src/react/actions/__tests__/zenko.test.ts similarity index 99% rename from src/react/actions/__tests__/zenko.test.js rename to src/react/actions/__tests__/zenko.test.ts index 5435c9891..02acb6e3e 100644 --- a/src/react/actions/__tests__/zenko.test.js +++ b/src/react/actions/__tests__/zenko.test.ts @@ -18,7 +18,6 @@ import { NETWORK_START_ACTION_STARTING_SEARCH, } from '../zenko'; import { MockZenkoClient } from '../../../js/mock/ZenkoClient'; - const startingSearchNetworkAction = dispatchAction.NETWORK_START_ACTION( NETWORK_START_ACTION_STARTING_SEARCH, ); @@ -31,7 +30,6 @@ const continueSearchNetworkAction = dispatchAction.NETWORK_START_ACTION( const pauseIngestionSiteNetworkAction = dispatchAction.NETWORK_START_ACTION( 'Pausing Async Metadata updates', ); - describe('zenko actions', () => { const QUERYSTRING = 'querystring'; const LIST = [ @@ -132,9 +130,7 @@ describe('zenko actions', () => { ], }, ]; - syncTests.forEach(testActionFunction); - const asyncTests = [ { it: 'newSearchListing: should return expected actions', @@ -211,6 +207,5 @@ describe('zenko actions', () => { ], }, ]; - asyncTests.forEach(testDispatchFunction); -}); +}); \ No newline at end of file diff --git a/src/react/actions/account.js b/src/react/actions/account.ts similarity index 84% rename from src/react/actions/account.js rename to src/react/actions/account.ts index bb7657a29..4ed44e32b 100644 --- a/src/react/actions/account.js +++ b/src/react/actions/account.ts @@ -1,4 +1,3 @@ -// @flow import type { AccessKey, Account, @@ -36,38 +35,32 @@ import { getAssumeRoleWithWebIdentityIAM } from '../../js/IAMClient'; import { getClients } from '../utils/actions'; import { push } from 'connected-react-router'; import { updateConfiguration } from './configuration'; - export function openAccountDeleteDialog(): OpenAccountDeleteDialogAction { return { type: 'OPEN_ACCOUNT_DELETE_DIALOG', }; } - export function closeAccountDeleteDialog(): CloseAccountDeleteDialogAction { return { type: 'CLOSE_ACCOUNT_DELETE_DIALOG', }; } - export function openAccountKeyCreateModal(): OpenAccountKeyCreateModalAction { return { type: 'OPEN_ACCOUNT_KEY_CREATE_MODAL', }; } - export function closeAccountKeyCreateModal(): CloseAccountKeyCreateModalAction { return { type: 'CLOSE_ACCOUNT_KEY_CREATE_MODAL', }; } - export function selectAccount(account: Account): SelectAccountAction { return { type: 'SELECT_ACCOUNT', account, }; } - export function listAccountAccessKeySuccess( accessKeys: Array, ): ListAccountAccessKeySuccessAction { @@ -76,7 +69,6 @@ export function listAccountAccessKeySuccess( accessKeys, }; } - export function addAccountSecret( accountName: string, accessKey: AccessKey, @@ -89,19 +81,18 @@ export function addAccountSecret( secretKey, }; } - export function deleteAccountSecret(): DeleteAccountSecretAction { return { type: 'DELETE_ACCOUNT_SECRET', }; } - export function selectAccountID(accountID?: string): ThunkStatePromisedAction { return (dispatch: DispatchFunction, getState: GetStateFunction) => { const { zenkoClient } = getClients(getState()); const { configuration } = getState(); const accounts = configuration.latest.users; - let account = accounts.find(a => a.id === accountID); + let account = accounts.find((a) => a.id === accountID); + if (!accountID || !account) { if (accounts.length === 0) { // clean S3 client and buckets' list if no account. @@ -109,45 +100,53 @@ export function selectAccountID(accountID?: string): ThunkStatePromisedAction { removeAccountIDStored(); return Promise.resolve(); } + account = accounts[0]; const accountIDStored = getAccountIDStored(); + if (accountIDStored) { - const accountStored = accounts.find(a => a.id === accountIDStored); + const accountStored = accounts.find((a) => a.id === accountIDStored); + if (accountStored) { account = accountStored; } } } + setAccountIDStored(account.id); dispatch(selectAccount(account)); return dispatch(assumeRoleWithWebIdentity(account.id)); }; } - export function createAccount( user: CreateAccountRequest, ): ThunkStatePromisedAction { return (dispatch: DispatchFunction, getState: GetStateFunction) => { const { managementClient, instanceId } = getClients(getState()); - const params = { uuid: instanceId, user }; + const params = { + uuid: instanceId, + user, + }; dispatch(networkStart('Creating account')); return managementClient .createConfigurationOverlayUser(params) - .then(resp => + .then((resp) => Promise.all([resp.body.id, dispatch(updateConfiguration())]), ) .then(([id]) => dispatch(selectAccountID(id))) .then(() => dispatch(push(`/accounts/${user.userName}`))) - .catch(error => dispatch(handleClientError(error))) - .catch(error => dispatch(handleApiError(error, 'byComponent'))) + .catch((error) => dispatch(handleClientError(error))) + .catch((error) => dispatch(handleApiError(error, 'byComponent'))) .finally(() => dispatch(networkEnd())); }; } - export function deleteAccount(accountName: string): ThunkStatePromisedAction { return (dispatch: DispatchFunction, getState: GetStateFunction) => { const { managementClient, instanceId } = getClients(getState()); - const params = { uuid: instanceId, accountName }; + const params = { + uuid: instanceId, + accountName, + }; dispatch(networkStart('Deleting account')); return managementClient .deleteConfigurationOverlayUser(params) @@ -158,35 +157,33 @@ export function deleteAccount(accountName: string): ThunkStatePromisedAction { removeAccountIDStored(); return dispatch(selectAccountID()); }) - .catch(error => { + .catch((error) => { // TODO: fix closeAccountDeleteDialog that might happen twice // if selectAccountID() fails dispatch(closeAccountDeleteDialog()); return dispatch(handleClientError(error)); }) - .catch(error => dispatch(handleApiError(error, 'byModal'))) + .catch((error) => dispatch(handleApiError(error, 'byModal'))) .finally(() => { dispatch(networkEnd()); }); }; } - export function listAccountAccessKeys( accountName: string, ): ThunkStatePromisedAction { return (dispatch: DispatchFunction, getState: GetStateFunction) => { dispatch(networkStart('Listing Root user Access keys')); return getAssumeRoleWithWebIdentityIAM(getState(), accountName) - .then(iamClient => iamClient.listOwnAccessKeys()) - .then(resp => + .then((iamClient) => iamClient.listOwnAccessKeys()) + .then((resp) => dispatch(listAccountAccessKeySuccess(resp.AccessKeyMetadata)), ) - .catch(error => dispatch(handleAWSClientError(error))) - .catch(error => dispatch(handleAWSError(error, 'byModal'))) + .catch((error) => dispatch(handleAWSClientError(error))) + .catch((error) => dispatch(handleAWSError(error, 'byModal'))) .finally(() => dispatch(networkEnd())); }; } - export function deleteAccountAccessKey( accountName: string, accessKey: string, @@ -194,24 +191,26 @@ export function deleteAccountAccessKey( return (dispatch: DispatchFunction, getState: GetStateFunction) => { dispatch(networkStart('Deleting Root user Access keys')); return getAssumeRoleWithWebIdentityIAM(getState(), accountName) - .then(iamClient => iamClient.deleteAccessKey(accessKey)) + .then((iamClient) => iamClient.deleteAccessKey(accessKey)) .then(() => dispatch(listAccountAccessKeys(accountName))) - .catch(error => dispatch(handleAWSClientError(error))) - .catch(error => dispatch(handleAWSError(error, 'byModal'))) + .catch((error) => dispatch(handleAWSClientError(error))) + .catch((error) => dispatch(handleAWSError(error, 'byModal'))) .finally(() => dispatch(networkEnd())); }; } - export function createAccountAccessKey( accountName: string, ): ThunkStatePromisedAction { return (dispatch, getState) => { const { managementClient, instanceId } = getClients(getState()); - const params = { uuid: instanceId, accountName }; + const params = { + uuid: instanceId, + accountName, + }; dispatch(networkStart('Creating Root user Access keys')); return managementClient .generateKeyConfigurationOverlayUser(params) - .then(resp => { + .then((resp) => { dispatch( addAccountSecret( resp.body.userName, @@ -221,8 +220,8 @@ export function createAccountAccessKey( ); return dispatch(listAccountAccessKeys(accountName)); }) - .catch(error => dispatch(handleClientError(error))) - .catch(error => dispatch(handleApiError(error, 'byModal'))) + .catch((error) => dispatch(handleClientError(error))) + .catch((error) => dispatch(handleApiError(error, 'byModal'))) .finally(() => dispatch(networkEnd())); }; -} +} \ No newline at end of file diff --git a/src/react/actions/auth.js b/src/react/actions/auth.ts similarity index 89% rename from src/react/actions/auth.js rename to src/react/actions/auth.ts index 1b08aa87a..e604883bf 100644 --- a/src/react/actions/auth.js +++ b/src/react/actions/auth.ts @@ -1,5 +1,3 @@ -// @flow - import type { AppConfig, InstanceId, Theme } from '../../types/entities'; import type { ConfigAuthFailureAction, @@ -28,14 +26,12 @@ import type { STSClient as STSClientInterface } from '../../types/sts'; import ZenkoClient from '../../js/ZenkoClient'; import { getAppConfig } from '../../js/config'; import makeMgtClient from '../../js/managementClient'; - export function setOIDCLogout(logout: OidcLogoutFunction): SetOIDCLogoutAction { return { type: 'SET_OIDC_LOGOUT', logout, }; } - export function setManagementClient( managementClient: ManagementClientInterface, ): SetManagementClientAction { @@ -44,7 +40,6 @@ export function setManagementClient( managementClient, }; } - export function setSTSClient( stsClient: STSClientInterface, ): SetSTSClientAction { @@ -53,73 +48,72 @@ export function setSTSClient( stsClient, }; } - export function setAppConfig(config: AppConfig): SetAppConfigAction { return { type: 'SET_APP_CONFIG', config, }; } - export function selectInstance(selectedId: InstanceId) { return { type: 'SELECT_INSTANCE', selectedId, }; } - export function loadConfigSuccess(): LoadConfigSuccessAction { return { type: 'LOAD_CONFIG_SUCCESS', }; } - export function loadClientsSuccess(): LoadClientsSuccessAction { return { type: 'LOAD_CLIENTS_SUCCESS', }; } - export function configAuthFailure(): ConfigAuthFailureAction { return { type: 'CONFIG_AUTH_FAILURE', }; } - export function setTheme(theme: Theme): SetThemeAction { return { type: 'SET_THEME', theme, }; } - export function loadAppConfig(): ThunkNonStateAction { - return dispatch => { + return (dispatch) => { return getAppConfig() - .then(config => { + .then((config) => { dispatch(setAppConfig(config)); - dispatch(setSTSClient(new STSClient({ endpoint: config.stsEndpoint }))); + dispatch( + setSTSClient( + new STSClient({ + endpoint: config.stsEndpoint, + }), + ), + ); dispatch(setZenkoClient(new ZenkoClient(config.zenkoEndpoint))); dispatch(loadConfigSuccess()); }) - .catch(error => { - const message = `Invalid application configuration: ${error.message || - '(unknown reason)'}`; + .catch((error) => { + const message = `Invalid application configuration: ${ + error.message || '(unknown reason)' + }`; dispatch(handleErrorMessage(message, 'byComponent')); dispatch(configAuthFailure()); }); }; } - export function loadClients(): ThunkStatePromisedAction { return (dispatch, getState) => { const { oidc, auth: { config }, } = getState(); - const instanceIds = oidc.user && oidc.user.profile && oidc.user.profile.instanceIds; + if (!instanceIds || instanceIds.length === 0) { dispatch( handleErrorMessage( @@ -130,11 +124,11 @@ export function loadClients(): ThunkStatePromisedAction { dispatch(networkAuthFailure()); return Promise.resolve(); } + // TODO: Give the user the ability to select an instance. dispatch(selectInstance(instanceIds[0])); - return makeMgtClient(config.managementEndpoint, oidc.user.id_token) - .then(managementClient => { + .then((managementClient) => { dispatch(setManagementClient(managementClient)); return Promise.all([ dispatch(updateConfiguration()), @@ -143,11 +137,12 @@ export function loadClients(): ThunkStatePromisedAction { }) .then(() => dispatch(selectAccountID())) .then(() => dispatch(loadClientsSuccess())) - .catch(error => { + .catch((error) => { if (error.message) { dispatch(handleErrorMessage(error.message, 'byAuth')); } + dispatch(networkAuthFailure()); }); }; -} +} \ No newline at end of file diff --git a/src/react/actions/configuration.js b/src/react/actions/configuration.ts similarity index 82% rename from src/react/actions/configuration.js rename to src/react/actions/configuration.ts index ca233abf4..cfce8fd71 100644 --- a/src/react/actions/configuration.js +++ b/src/react/actions/configuration.ts @@ -1,5 +1,3 @@ -// @flow - import type { ConfigurationVersionAction, ThunkStatePromisedAction, @@ -8,7 +6,6 @@ import type { ConfigurationOverlay } from '../../types/config'; import { getClients } from '../utils/actions'; import { loadInstanceLatestStatus } from './stats'; import { until } from 'async'; - export function newConfiguration( configuration: ConfigurationOverlay, ): ConfigurationVersionAction { @@ -17,26 +14,25 @@ export function newConfiguration( configuration, }; } - export function updateConfiguration(): ThunkStatePromisedAction { return (dispatch, getState) => { const { managementClient, instanceId } = getClients(getState()); return managementClient - .getConfigurationOverlayView({ uuid: instanceId }) - .then(res => { + .getConfigurationOverlayView({ + uuid: instanceId, + }) + .then((res) => { dispatch(newConfiguration(res.body)); }) - .catch(error => { + .catch((error) => { throw error; - }); - //! errors will be handled by caller + }); //! errors will be handled by caller }; } - export function waitForRunningConfigurationVersionUpdate(): ThunkStatePromisedAction { return (dispatch, getState) => until( - cb => { + (cb) => { const { configuration, instanceStatus } = getState(); const runningVersion = instanceStatus.latest.state.runningConfigurationVersion; @@ -47,6 +43,6 @@ export function waitForRunningConfigurationVersionUpdate(): ThunkStatePromisedAc runningVersion >= configuration.latest.version, ); }, - next => dispatch(loadInstanceLatestStatus()).then(next), + (next) => dispatch(loadInstanceLatestStatus()).then(next), ); -} +} \ No newline at end of file diff --git a/src/react/actions/endpoint.js b/src/react/actions/endpoint.ts similarity index 82% rename from src/react/actions/endpoint.js rename to src/react/actions/endpoint.ts index 3dd479241..093f027b1 100644 --- a/src/react/actions/endpoint.js +++ b/src/react/actions/endpoint.ts @@ -1,4 +1,3 @@ -// @flow import type { CloseEndpointDeleteDialogAction, OpenEndpointDeleteDialogAction, @@ -13,7 +12,6 @@ import { } from './configuration'; import { getClients } from '../utils/actions'; import { push } from 'connected-react-router'; - export function openEndpointDeleteDialog( hostname: Hostname, ): OpenEndpointDeleteDialogAction { @@ -22,11 +20,11 @@ export function openEndpointDeleteDialog( hostname, }; } - export function closeEndpointDeleteDialog(): CloseEndpointDeleteDialogAction { - return { type: 'CLOSE_ENDPOINT_DELETE_DIALOG' }; + return { + type: 'CLOSE_ENDPOINT_DELETE_DIALOG', + }; } - export function createEndpoint( hostname: Hostname, locationName: LocationName, @@ -36,19 +34,22 @@ export function createEndpoint( dispatch(networkStart('Deploying Data Service')); const params = { uuid: instanceId, - endpoint: { hostname, locationName, isBuiltin: false }, + endpoint: { + hostname, + locationName, + isBuiltin: false, + }, }; return managementClient .createConfigurationOverlayEndpoint(params) .then(() => dispatch(updateConfiguration())) .then(() => dispatch(waitForRunningConfigurationVersionUpdate())) .then(() => dispatch(push('/dataservices'))) - .catch(error => dispatch(handleClientError(error))) - .catch(error => dispatch(handleApiError(error, 'byComponent'))) + .catch((error) => dispatch(handleClientError(error))) + .catch((error) => dispatch(handleApiError(error, 'byComponent'))) .finally(() => dispatch(networkEnd())); }; } - export function deleteEndpoint(hostname: Hostname): ThunkStatePromisedAction { return (dispatch, getState) => { const { managementClient, instanceId } = getClients(getState()); @@ -62,8 +63,8 @@ export function deleteEndpoint(hostname: Hostname): ThunkStatePromisedAction { .deleteConfigurationOverlayEndpoint(params) .then(() => dispatch(updateConfiguration())) .then(() => dispatch(waitForRunningConfigurationVersionUpdate())) - .catch(error => dispatch(handleClientError(error))) - .catch(error => dispatch(handleApiError(error, 'byModal'))) + .catch((error) => dispatch(handleClientError(error))) + .catch((error) => dispatch(handleApiError(error, 'byModal'))) .finally(() => dispatch(networkEnd())); }; -} +} \ No newline at end of file diff --git a/src/react/actions/error.js b/src/react/actions/error.ts similarity index 97% rename from src/react/actions/error.js rename to src/react/actions/error.ts index 84f46e6ed..d510c913f 100644 --- a/src/react/actions/error.js +++ b/src/react/actions/error.ts @@ -1,5 +1,3 @@ -// @flow - import type { ApiError, ClearErrorAction, @@ -11,7 +9,6 @@ import type { AWSError } from '../../types/aws'; import type { ErrorViewType } from '../../types/ui'; import { errorParser } from '../utils'; import { networkAuthFailure } from './network'; - export function handleApiError( error: ApiError, errorType: ErrorViewType, @@ -22,20 +19,17 @@ export function handleApiError( errorType, }; } - export function handleAWSError( error: AWSError, errorType: ErrorViewType, ): HandleErrorAction { const errorMsg = `${error.message} Prefixes, objects or orphan delete markers are still present.`; - return { type: 'HANDLE_ERROR', errorMsg: error.code === 'BucketNotEmpty' ? errorMsg : error.message, errorType, }; } - export function handleErrorMessage( error: string, errorType: ErrorViewType, @@ -46,11 +40,11 @@ export function handleErrorMessage( errorType, }; } - export function clearError(): ClearErrorAction { - return { type: 'CLEAR_ERROR' }; + return { + type: 'CLEAR_ERROR', + }; } - export function handleClientError(error: ApiError): ThunkNonStateAction { return (dispatch: DispatchFunction) => { switch (error.status) { @@ -58,12 +52,12 @@ export function handleClientError(error: ApiError): ThunkNonStateAction { case 403: dispatch(networkAuthFailure()); break; + default: throw error; } }; } - export function handleAWSClientError(error: AWSError): ThunkNonStateAction { return (dispatch: DispatchFunction) => { switch (error.statusCode) { @@ -72,8 +66,9 @@ export function handleAWSClientError(error: AWSError): ThunkNonStateAction { dispatch(handleErrorMessage(error.message, 'byAuth')); dispatch(networkAuthFailure()); break; + default: throw error; } }; -} +} \ No newline at end of file diff --git a/src/react/actions/index.js b/src/react/actions/index.ts similarity index 94% rename from src/react/actions/index.js rename to src/react/actions/index.ts index 82a9b233c..827ceb196 100644 --- a/src/react/actions/index.js +++ b/src/react/actions/index.ts @@ -14,4 +14,4 @@ export * from './stats'; export * from './sts'; export * from './user'; export * from './workflow'; -export * from './zenko'; +export * from './zenko'; \ No newline at end of file diff --git a/src/react/actions/location.js b/src/react/actions/location.ts similarity index 89% rename from src/react/actions/location.js rename to src/react/actions/location.ts index f8f1a018e..fd0530267 100644 --- a/src/react/actions/location.js +++ b/src/react/actions/location.ts @@ -1,4 +1,3 @@ -// @flow import type { CloseLocationDeleteDialogAction, OpenLocationDeleteDialogAction, @@ -13,7 +12,6 @@ import { } from './configuration'; import { getClients } from '../utils/actions'; import { goBack } from 'connected-react-router'; - export function openLocationDeleteDialog( locationName: LocationName, ): OpenLocationDeleteDialogAction { @@ -22,13 +20,11 @@ export function openLocationDeleteDialog( locationName, }; } - export function closeLocationDeleteDialog(): CloseLocationDeleteDialogAction { return { type: 'CLOSE_LOCATION_DELETE_DIALOG', }; } - export function saveLocation(location: Location): ThunkStatePromisedAction { return (dispatch, getState) => { const { managementClient, instanceId } = getClients(getState()); @@ -37,7 +33,6 @@ export function saveLocation(location: Location): ThunkStatePromisedAction { location, locationName: location.name, }; - dispatch(networkStart('Deploying location')); const op = location.objectId ? managementClient.updateConfigurationOverlayLocation(params) @@ -46,12 +41,11 @@ export function saveLocation(location: Location): ThunkStatePromisedAction { .then(() => dispatch(updateConfiguration())) .then(() => dispatch(waitForRunningConfigurationVersionUpdate())) .then(() => dispatch(goBack())) - .catch(error => dispatch(handleClientError(error))) - .catch(error => dispatch(handleApiError(error, 'byComponent'))) + .catch((error) => dispatch(handleClientError(error))) + .catch((error) => dispatch(handleApiError(error, 'byComponent'))) .finally(() => dispatch(networkEnd())); }; } - export function deleteLocation( locationName: LocationName, ): ThunkStatePromisedAction { @@ -66,11 +60,11 @@ export function deleteLocation( .deleteConfigurationOverlayLocation(params) .then(() => dispatch(updateConfiguration())) .then(() => dispatch(waitForRunningConfigurationVersionUpdate())) - .catch(error => dispatch(handleClientError(error))) - .catch(error => dispatch(handleApiError(error, 'byModal'))) + .catch((error) => dispatch(handleClientError(error))) + .catch((error) => dispatch(handleApiError(error, 'byModal'))) .finally(() => { dispatch(networkEnd()); dispatch(closeLocationDeleteDialog()); }); }; -} +} \ No newline at end of file diff --git a/src/react/actions/network.js b/src/react/actions/network.ts similarity index 97% rename from src/react/actions/network.js rename to src/react/actions/network.ts index 519c4beb1..8f055b516 100644 --- a/src/react/actions/network.js +++ b/src/react/actions/network.ts @@ -1,33 +1,27 @@ -// @flow - import type { NetworkActivityAuthFailureAction, NetworkActivityAuthResetAction, NetworkActivityEndAction, NetworkActivityStartAction, } from '../../types/actions'; - export function networkAuthReset(): NetworkActivityAuthResetAction { return { type: 'NETWORK_AUTH_RESET', }; } - export function networkAuthFailure(): NetworkActivityAuthFailureAction { return { type: 'NETWORK_AUTH_FAILURE', }; } - export function networkStart(message: string): NetworkActivityStartAction { return { type: 'NETWORK_START', message, }; } - export function networkEnd(): NetworkActivityEndAction { return { type: 'NETWORK_END', }; -} +} \ No newline at end of file diff --git a/src/react/actions/oidc.js b/src/react/actions/oidc.ts similarity index 94% rename from src/react/actions/oidc.js rename to src/react/actions/oidc.ts index 0e3e1d020..9045c297a 100644 --- a/src/react/actions/oidc.js +++ b/src/react/actions/oidc.ts @@ -1,11 +1,8 @@ -// @flow - import type { AuthUser } from '../../types/auth'; import type { OIDCAction } from '../../types/actions'; - export function addOIDCUser(user: AuthUser): OIDCAction { return { type: 'ADD_OIDC_USER', user, }; -} +} \ No newline at end of file diff --git a/src/react/actions/replication.js b/src/react/actions/replication.ts similarity index 89% rename from src/react/actions/replication.js rename to src/react/actions/replication.ts index fcdcd09e9..d105c87e8 100644 --- a/src/react/actions/replication.js +++ b/src/react/actions/replication.ts @@ -11,7 +11,6 @@ import type { Replication } from '../../types/config'; import type { ThunkStatePromisedAction } from '../../types/actions'; import { push } from 'connected-react-router'; import { rolePathName } from '../../js/IAMClient'; - // TODO: Add delete approval process export function deleteReplication( replication: Replication, @@ -35,15 +34,14 @@ export function deleteReplication( return dispatch(searchWorkflows()); }) .then(() => dispatch(push('/workflows'))) - .catch(error => dispatch(handleClientError(error))) - .catch(error => dispatch(handleApiError(error, 'byModal'))) + .catch((error) => dispatch(handleClientError(error))) + .catch((error) => dispatch(handleApiError(error, 'byModal'))) .finally(() => { dispatch(networkEnd()); dispatch(closeWorkflowDeleteModal()); }); }; } - export function saveReplication( replication: Replication, ): ThunkStatePromisedAction { @@ -66,7 +64,7 @@ export function saveReplication( }) : managementClient.createBucketWorkflowReplication(params); return op - .then(resp => { + .then((resp) => { return Promise.all([ resp, dispatch(closeWorkflowEditNotification()), @@ -76,8 +74,8 @@ export function saveReplication( .then(([resp]) => dispatch(push(`/workflows/replication-${resp.body.streamId}`)), ) - .catch(error => dispatch(handleClientError(error))) - .catch(error => dispatch(handleApiError(error, 'byModal'))) + .catch((error) => dispatch(handleClientError(error))) + .catch((error) => dispatch(handleApiError(error, 'byModal'))) .finally(() => dispatch(networkEnd())); }; -} +} \ No newline at end of file diff --git a/src/react/actions/s3bucket.js b/src/react/actions/s3bucket.ts similarity index 88% rename from src/react/actions/s3bucket.js rename to src/react/actions/s3bucket.ts index 9e84ff8c0..6ac7e34c1 100644 --- a/src/react/actions/s3bucket.js +++ b/src/react/actions/s3bucket.ts @@ -1,4 +1,3 @@ -// @flow import type { BucketInfo, BucketVersioning, @@ -17,7 +16,6 @@ import { handleAWSClientError, handleAWSError } from './error'; import { networkEnd, networkStart } from './network'; import { getClients } from '../utils/actions'; import { push } from 'connected-react-router'; - export function listBucketsSuccess( list: Array, ownerName: string, @@ -28,7 +26,6 @@ export function listBucketsSuccess( ownerName, }; } - export function getBucketInfoSuccess( info: BucketInfo, ): GetBucketInfoSuccessAction { @@ -37,7 +34,6 @@ export function getBucketInfoSuccess( info, }; } - export function openBucketDeleteDialog( bucketName: string, ): OpenBucketDeleteDialogAction { @@ -46,32 +42,26 @@ export function openBucketDeleteDialog( bucketName, }; } - export function closeBucketDeleteDialog(): CloseBucketDeleteDialogAction { return { type: 'CLOSE_BUCKET_DELETE_DIALOG', }; } - export function listBuckets(): ThunkStatePromisedAction { return (dispatch, getState) => { const { zenkoClient } = getClients(getState()); dispatch(networkStart('Listing buckets')); - return ( - zenkoClient - .listBucketsWithLocation() - .then(res => - dispatch(listBucketsSuccess(res.Buckets, res.Owner.DisplayName)), - ) - //!\ errors will have to be handled by caller - .catch(error => { - throw error; - }) - .finally(() => dispatch(networkEnd())) - ); + return zenkoClient + .listBucketsWithLocation() + .then((res) => + dispatch(listBucketsSuccess(res.Buckets, res.Owner.DisplayName)), + ) //!\ errors will have to be handled by caller + .catch((error) => { + throw error; + }) + .finally(() => dispatch(networkEnd())); }; } - export function createBucket( bucket: CreateBucketRequest, versioning: BucketVersioning, @@ -81,6 +71,7 @@ export function createBucket( // TODO: credentials expired => zenkoClient out of date => zenkoClient.createBucket error. const { zenkoClient } = getClients(getState()); dispatch(networkStart('Creating bucket')); + try { await zenkoClient.createBucket(bucket); } catch (maybeAuthError) { @@ -89,6 +80,7 @@ export function createBucket( } catch (originalError) { dispatch(handleAWSError(originalError, 'byComponent')); } + dispatch(networkEnd()); return; } @@ -134,15 +126,15 @@ export function createBucket( } catch (originalError) { dispatch(handleAWSError(originalError, 'byComponent')); } + dispatch(networkEnd()); return; } - await dispatch(push('/buckets')); + await dispatch(push('/buckets')); await dispatch(networkEnd()); }; } - export function deleteBucket(bucketName: string): ThunkStatePromisedAction { return (dispatch, getState) => { const { zenkoClient } = getClients(getState()); @@ -151,28 +143,26 @@ export function deleteBucket(bucketName: string): ThunkStatePromisedAction { .deleteBucket(bucketName) .then(() => dispatch(listBuckets())) .then(() => dispatch(push('/buckets'))) - .catch(error => dispatch(handleAWSClientError(error))) - .catch(error => dispatch(handleAWSError(error, 'byModal'))) + .catch((error) => dispatch(handleAWSClientError(error))) + .catch((error) => dispatch(handleAWSError(error, 'byModal'))) .finally(() => { dispatch(networkEnd()); dispatch(closeBucketDeleteDialog()); }); }; } - export function getBucketInfo(bucketName: string): ThunkStatePromisedAction { return (dispatch, getState) => { const { zenkoClient } = getClients(getState()); dispatch(networkStart('Getting bucket information')); return zenkoClient .getBucketInfo(bucketName) - .then(info => dispatch(getBucketInfoSuccess(info))) - .catch(error => dispatch(handleAWSClientError(error))) - .catch(error => dispatch(handleAWSError(error, 'byComponent'))) + .then((info) => dispatch(getBucketInfoSuccess(info))) + .catch((error) => dispatch(handleAWSClientError(error))) + .catch((error) => dispatch(handleAWSError(error, 'byComponent'))) .finally(() => dispatch(networkEnd())); }; } - export function toggleBucketVersioning( bucketName: string, isVersioning: boolean, @@ -184,12 +174,11 @@ export function toggleBucketVersioning( .toggleVersioning(bucketName, isVersioning) .then(() => dispatch(listBuckets())) .then(() => dispatch(getBucketInfo(bucketName))) - .catch(error => dispatch(handleAWSClientError(error))) - .catch(error => dispatch(handleAWSError(error, 'byModal'))) + .catch((error) => dispatch(handleAWSClientError(error))) + .catch((error) => dispatch(handleAWSError(error, 'byModal'))) .finally(() => dispatch(networkEnd())); }; } - export function editDefaultRetention( bucketName: string, objectLockRetentionSettings: ObjectLockRetentionSettings, @@ -198,6 +187,7 @@ export function editDefaultRetention( // TODO: credentials expired => zenkoClient out of date => zenkoClient.createBucket error. const { zenkoClient } = getClients(getState()); dispatch(networkStart('Editing bucket default retention')); + try { await zenkoClient.putObjectLockConfiguration({ ...objectLockRetentionSettings, @@ -209,6 +199,7 @@ export function editDefaultRetention( } catch (originalError) { dispatch(handleAWSError(originalError, 'byComponent')); } + dispatch(networkEnd()); return; } @@ -221,11 +212,12 @@ export function editDefaultRetention( } catch (originalError) { dispatch(handleAWSError(originalError, 'byComponent')); } + dispatch(networkEnd()); return; } - await dispatch(push('/buckets')); + await dispatch(push('/buckets')); await dispatch(networkEnd()); }; -} +} \ No newline at end of file diff --git a/src/react/actions/s3object.js b/src/react/actions/s3object.ts similarity index 88% rename from src/react/actions/s3object.js rename to src/react/actions/s3object.ts index 1900eb163..4d5c6a1cc 100644 --- a/src/react/actions/s3object.js +++ b/src/react/actions/s3object.ts @@ -1,4 +1,3 @@ -// @flow import type { CloseFolderCreateModalAction, CloseObjectDeleteModalAction, @@ -42,9 +41,7 @@ import type { Marker, ZenkoClient } from '../../types/zenko'; import { getClients } from '../utils/actions'; import { newSearchListing } from '.'; import { push } from 'connected-react-router'; - export const UPLOADING_OBJECT = 'Uploading object(s)'; - export function listObjectsSuccess( contents: Array, commonPrefixes: Array, @@ -59,7 +56,6 @@ export function listObjectsSuccess( nextMarker: nextContinuationToken, }; } - export function continueListObjectsSuccess( contents: Array, commonPrefixes: Array, @@ -74,7 +70,6 @@ export function continueListObjectsSuccess( nextMarker: nextContinuationToken, }; } - export function listObjectVersionsSuccess( versions: Array, deleteMarkers: Array, @@ -93,7 +88,6 @@ export function listObjectVersionsSuccess( nextVersionIdMarker: nextVersionIdMarker, }; } - export function continueListObjectVersionsSuccess( versions: Array, deleteMarkers: Array, @@ -112,16 +106,15 @@ export function continueListObjectVersionsSuccess( nextVersionIdMarker: nextVersionIdMarker, }; } - export function getObjectMetadataSuccess( bucketName: string, objectKey: string, info: HeadObjectResponse, tags: TagSet, - ObjectRetention: {| - Mode: RetentionMode, - RetainUntilDate: Date, - |}, + ObjectRetention: { + Mode: RetentionMode; + RetainUntilDate: Date; + }, isLegalHoldEnabled: boolean, ): GetObjectMetadataSuccessAction { return { @@ -134,43 +127,36 @@ export function getObjectMetadataSuccess( isLegalHoldEnabled, }; } - export function openFolderCreateModal(): OpenFolderCreateModalAction { return { type: 'OPEN_FOLDER_CREATE_MODAL', }; } - export function closeFolderCreateModal(): CloseFolderCreateModalAction { return { type: 'CLOSE_FOLDER_CREATE_MODAL', }; } - export function openObjectUploadModal(): OpenObjectUploadModalAction { return { type: 'OPEN_OBJECT_UPLOAD_MODAL', }; } - export function closeObjectUploadModal(): CloseObjectUploadModalAction { return { type: 'CLOSE_OBJECT_UPLOAD_MODAL', }; } - export function openObjectDeleteModal(): OpenObjectDeleteModalAction { return { type: 'OPEN_OBJECT_DELETE_MODAL', }; } - export function closeObjectDeleteModal(): CloseObjectDeleteModalAction { return { type: 'CLOSE_OBJECT_DELETE_MODAL', }; } - export function toggleObject( objectKey: string, versionId?: string, @@ -181,20 +167,17 @@ export function toggleObject( versionId, }; } - export function toggleAllObjects(toggled: boolean): ToggleAllObjectsAction { return { type: 'TOGGLE_ALL_OBJECTS', toggled, }; } - export function resetObjectMetadata(): ResetObjectMetadataAction { return { type: 'RESET_OBJECT_METADATA', }; } - export function createFolder( bucketName: string, prefixWithSlash: string, @@ -206,8 +189,8 @@ export function createFolder( return zenkoClient .createFolder(bucketName, prefixWithSlash, folderName) .then(() => dispatch(listObjects(bucketName, prefixWithSlash))) - .catch(error => dispatch(handleAWSClientError(error))) - .catch(error => dispatch(handleAWSError(error, 'byComponent'))) + .catch((error) => dispatch(handleAWSClientError(error))) + .catch((error) => dispatch(handleAWSError(error, 'byComponent'))) .finally(() => { dispatch(networkEnd()); dispatch(closeFolderCreateModal()); @@ -216,23 +199,25 @@ export function createFolder( } function _getObjectListWithSignedUrlAndLockStatus< - T: {| +Key: string, +VersionId?: string |}, + T extends { + readonly Key: string; + readonly VersionId?: string; + } >( zenkoClient: ZenkoClient, bucketName: string, list: T[], ): Promise< - (T & {| - +SignedUrl: string, - +ObjectRetention?: {| - +Mode: RetentionMode, - +RetainUntilDate: string, - |}, - |})[], + (T & { + readonly SignedUrl: string; + readonly ObjectRetention?: { + readonly Mode: RetentionMode; + readonly RetainUntilDate: string; + }; + })[] > { - // $FlowFixMe - flow is not able to understand this type return Promise.all( - list.map(async object => { + list.map(async (object) => { return { ...object, SignedUrl: await zenkoClient.getObjectSignedUrl( @@ -270,13 +255,13 @@ function _getListObjectNoVersion( }; return zenkoClient .listObjects(params) - .then(async res => { - // $FlowFixMe - flow is not able to understand await resulting type + .then(async (res) => { const list: S3Object[] = await _getObjectListWithSignedUrlAndLockStatus( zenkoClient, bucketName, res.Contents, ); + if (marker) { return dispatch( continueListObjectsSuccess( @@ -287,6 +272,7 @@ function _getListObjectNoVersion( ), ); } + return dispatch( listObjectsSuccess( list, @@ -296,8 +282,8 @@ function _getListObjectNoVersion( ), ); }) - .catch(error => dispatch(handleAWSClientError(error))) - .catch(error => dispatch(handleAWSError(error, 'byComponent'))) + .catch((error) => dispatch(handleAWSClientError(error))) + .catch((error) => dispatch(handleAWSError(error, 'byComponent'))) .finally(() => dispatch(networkEnd())); }; } @@ -306,7 +292,7 @@ function _listObjectNoVersion( bucketName: string, prefixWithSlash: string, ): ThunkNonStatePromisedAction { - return dispatch => { + return (dispatch) => { return dispatch(_getListObjectNoVersion(bucketName, prefixWithSlash)); }; } @@ -322,6 +308,7 @@ function _continueListObjectNoVersion( if (!marker) { return Promise.resolve(); } + return dispatch( _getListObjectNoVersion(bucketName, prefixWithSlash, marker), ); @@ -336,9 +323,11 @@ export function listObjects( return (dispatch, getState) => { const { s3 } = getState(); const listType = type || s3.listObjectsType; + if (listType === LIST_OBJECT_VERSIONS_S3_TYPE) { return dispatch(_listObjectVersions(bucketName, prefixWithSlash)); } + return dispatch(_listObjectNoVersion(bucketName, prefixWithSlash)); }; } @@ -360,13 +349,13 @@ function _getListObjectVersion( }; return zenkoClient .listObjectVersions(params) - .then(async res => { - // $FlowFixMe - flow is not able to understand await resulting type + .then(async (res) => { const list = await _getObjectListWithSignedUrlAndLockStatus( zenkoClient, bucketName, res.Versions, ); + if (marker) { return dispatch( continueListObjectVersionsSuccess( @@ -379,6 +368,7 @@ function _getListObjectVersion( ), ); } + return dispatch( listObjectVersionsSuccess( list, @@ -390,8 +380,8 @@ function _getListObjectVersion( ), ); }) - .catch(error => dispatch(handleAWSClientError(error))) - .catch(error => dispatch(handleAWSError(error, 'byComponent'))) + .catch((error) => dispatch(handleAWSClientError(error))) + .catch((error) => dispatch(handleAWSError(error, 'byComponent'))) .finally(() => dispatch(networkEnd())); }; } @@ -400,7 +390,7 @@ function _listObjectVersions( bucketName: string, prefixWithSlash: string, ): ThunkNonStatePromisedAction { - return dispatch => { + return (dispatch) => { return dispatch(_getListObjectVersion(bucketName, prefixWithSlash)); }; } @@ -417,6 +407,7 @@ function _continueListObjectVersions( if (!marker || !versionIdMarker) { return Promise.resolve(); } + return dispatch( _getListObjectVersion( bucketName, @@ -436,13 +427,14 @@ export function continueListObjects( return (dispatch, getState) => { const { s3 } = getState(); const listType = type || s3.listObjectsType; + if (listType === LIST_OBJECT_VERSIONS_S3_TYPE) { return dispatch(_continueListObjectVersions(bucketName, prefixWithSlash)); } + return dispatch(_continueListObjectNoVersion(bucketName, prefixWithSlash)); }; } - export function uploadFiles( bucketName: string, prefixWithSlash: string, @@ -455,12 +447,11 @@ export function uploadFiles( return zenkoClient .uploadObject(bucketName, prefixWithSlash, files) .then(() => dispatch(listObjects(bucketName, prefixWithSlash))) - .catch(error => dispatch(handleAWSClientError(error))) - .catch(error => dispatch(handleAWSError(error, 'byComponent'))) + .catch((error) => dispatch(handleAWSClientError(error))) + .catch((error) => dispatch(handleAWSError(error, 'byComponent'))) .finally(() => dispatch(networkEnd())); }; } - export function deleteFiles( bucketName: string, prefixWithSlash: string, @@ -473,12 +464,12 @@ export function deleteFiles( dispatch(networkStart('Deleting object(s)')); return zenkoClient .deleteObjects(bucketName, objects, folders) - .catch(error => { + .catch((error) => { // S3 API return 200 response code with Access Denied Error if ( error && error.Errors && - error.Errors.some(error => error.Code === 'AccessDenied') + error.Errors.some((error) => error.Code === 'AccessDenied') ) { const str = 'You do not have the permission to perform this action.'; dispatch(handleErrorMessage(str, 'byModal')); @@ -486,7 +477,7 @@ export function deleteFiles( dispatch(handleAWSClientError(error)); } }) - .catch(error => dispatch(handleAWSError(error, 'byModal'))) + .catch((error) => dispatch(handleAWSError(error, 'byModal'))) .finally(() => { dispatch(networkEnd()); // make sure to list objects even if delete fails. @@ -494,7 +485,6 @@ export function deleteFiles( }); }; } - export function getObjectMetadata( bucketName: string, objectKey: string, @@ -521,12 +511,11 @@ export function getObjectMetadata( ), ), ) - .catch(error => dispatch(handleAWSClientError(error))) - .catch(error => dispatch(handleAWSError(error, 'byComponent'))) + .catch((error) => dispatch(handleAWSClientError(error))) + .catch((error) => dispatch(handleAWSError(error, 'byComponent'))) .finally(() => dispatch(networkEnd())); }; } - export function putObjectMetadata( bucketName: string, objectKey: string, @@ -539,12 +528,11 @@ export function putObjectMetadata( return zenkoClient .putObjectMetadata(bucketName, objectKey, systemMetadata, userMetadata) .then(() => dispatch(getObjectMetadata(bucketName, objectKey))) - .catch(error => dispatch(handleAWSClientError(error))) - .catch(error => dispatch(handleAWSError(error, 'byModal'))) + .catch((error) => dispatch(handleAWSClientError(error))) + .catch((error) => dispatch(handleAWSError(error, 'byModal'))) .finally(() => dispatch(networkEnd())); }; } - export function putObjectTagging( bucketName: string, objectKey: string, @@ -557,12 +545,11 @@ export function putObjectTagging( return zenkoClient .putObjectTagging(bucketName, objectKey, tags, versionId) .then(() => dispatch(getObjectMetadata(bucketName, objectKey, versionId))) - .catch(error => dispatch(handleAWSClientError(error))) - .catch(error => dispatch(handleAWSError(error, 'byModal'))) + .catch((error) => dispatch(handleAWSClientError(error))) + .catch((error) => dispatch(handleAWSError(error, 'byModal'))) .finally(() => dispatch(networkEnd())); }; } - export function putObjectLegalHold( bucketName: string, objectKey: string, @@ -584,12 +571,11 @@ export function putObjectLegalHold( } }) .then(() => dispatch(getObjectMetadata(bucketName, objectKey, versionId))) - .catch(error => dispatch(handleAWSClientError(error))) - .catch(error => dispatch(handleAWSError(error, 'byModal'))) + .catch((error) => dispatch(handleAWSClientError(error))) + .catch((error) => dispatch(handleAWSError(error, 'byModal'))) .finally(() => dispatch(networkEnd())); }; } - export function putObjectRetention( bucketName: string, objectName: string, @@ -611,8 +597,8 @@ export function putObjectRetention( .then(() => dispatch(push(`/buckets/${bucketName}/objects?prefix=${objectName}`)), ) - .catch(error => dispatch(handleAWSClientError(error))) - .catch(error => dispatch(handleAWSError(error, 'byModal'))) + .catch((error) => dispatch(handleAWSClientError(error))) + .catch((error) => dispatch(handleAWSError(error, 'byModal'))) .finally(() => dispatch(networkEnd())); }; } diff --git a/src/react/actions/secrets.js b/src/react/actions/secrets.ts similarity index 98% rename from src/react/actions/secrets.js rename to src/react/actions/secrets.ts index a97077c11..062352bbb 100644 --- a/src/react/actions/secrets.js +++ b/src/react/actions/secrets.ts @@ -4,10 +4,9 @@ export function addSecret(keys) { keys, }; } - export function deleteSecret(accessKey) { return { type: 'DELETE_SECRET', accessKey, }; -} +} \ No newline at end of file diff --git a/src/react/actions/stats.js b/src/react/actions/stats.ts similarity index 72% rename from src/react/actions/stats.js rename to src/react/actions/stats.ts index 860e5ea8f..db039eedc 100644 --- a/src/react/actions/stats.js +++ b/src/react/actions/stats.ts @@ -2,23 +2,22 @@ import type { InstanceStatus, InstanceStatusAction } from '../../types/stats'; import { getClients } from '../utils/actions'; import { handleClientError } from './error'; - export function instanceStatus(status: InstanceStatus): InstanceStatusAction { return { type: 'INSTANCE_STATUS', status, }; } - export function loadInstanceLatestStatus() { return (dispatch, getState) => { const { managementClient, instanceId } = getClients(getState()); return managementClient - .getLatestInstanceStatus({ uuid: instanceId }) - .then(res => { + .getLatestInstanceStatus({ + uuid: instanceId, + }) + .then((res) => { dispatch(instanceStatus(res.body)); }) - .catch(error => dispatch(handleClientError(error))) - .catch(() => {}); //? silence handleClientError if not an auth error + .catch((error) => dispatch(handleClientError(error))); }; } diff --git a/src/react/actions/sts.js b/src/react/actions/sts.ts similarity index 81% rename from src/react/actions/sts.js rename to src/react/actions/sts.ts index 857eefa1a..9fe441068 100644 --- a/src/react/actions/sts.js +++ b/src/react/actions/sts.ts @@ -1,4 +1,3 @@ -// @flow import { handleErrorMessage, listBuckets, @@ -8,17 +7,19 @@ import { import type { ThunkStatePromisedAction } from '../../types/actions'; import { getClients } from '../utils/actions'; import { getAssumeRoleWithWebIdentityParams } from '../../js/IAMClient'; - export function assumeRoleWithWebIdentity( accountID: string, ): ThunkStatePromisedAction { return (dispatch, getState) => { const { zenkoClient, stsClient } = getClients(getState()); const { oidc } = getState(); - const assumeRoleParams = getAssumeRoleWithWebIdentityParams(oidc, accountID); + const assumeRoleParams = getAssumeRoleWithWebIdentityParams( + oidc, + accountID, + ); return stsClient .assumeRoleWithWebIdentity(assumeRoleParams) - .then(creds => { + .then((creds) => { const params = { accessKey: creds.Credentials.AccessKeyId, secretKey: creds.Credentials.SecretAccessKey, @@ -30,15 +31,19 @@ export function assumeRoleWithWebIdentity( dispatch(listBuckets()), ]); }) - .catch(error => { - let message = `Failed to return a valid set of temporary security credentials: ${error.message || - '(unknown reason)'}`; + .catch((error) => { + let message = `Failed to return a valid set of temporary security credentials: ${ + error.message || '(unknown reason)' + }`; + if (error.statusCode >= 500 && error.statusCode < 600) { - message = `A server error occurred: ${error.message || - '(unknown reason)'}`; + message = `A server error occurred: ${ + error.message || '(unknown reason)' + }`; } + dispatch(handleErrorMessage(message, 'byAuth')); dispatch(networkAuthFailure()); }); }; -} +} \ No newline at end of file diff --git a/src/react/actions/user.js b/src/react/actions/user.ts similarity index 79% rename from src/react/actions/user.js rename to src/react/actions/user.ts index d07583866..90bddf8ed 100644 --- a/src/react/actions/user.js +++ b/src/react/actions/user.ts @@ -4,96 +4,83 @@ import { addSecret } from './secrets'; import { batch } from 'react-redux'; import { getClients } from '../utils/actions'; import { push } from 'connected-react-router'; - export function updateUserList(list) { return { type: 'UPDATE_USER_LIST', list, }; } - export function updateAccessKeysList(list) { return { type: 'UPDATE_ACCESS_KEY_LIST', list, }; } - export function updateAttachedUserPoliciesList(list) { return { type: 'UPDATE_ATTACHED_USER_POLICIES_LIST', list, }; } - export function updateGroupsForUserList(list) { return { type: 'UPDATE_GROUPS_FOR_USER_LIST', list, }; } - export function displayUser(user) { return { type: 'DISPLAY_USER', user: user, }; } - export function openUserDeleteDialog() { return { type: 'OPEN_USER_DELETE_DIALOG', }; } - export function closeUserDeleteDialog() { return { type: 'CLOSE_USER_DELETE_DIALOG', }; } - export function openKeyDeleteDialog(accessKey) { return { type: 'OPEN_KEY_DELETE_DIALOG', accessKey, }; } - export function closeKeyDeleteDialog() { return { type: 'CLOSE_KEY_DELETE_DIALOG', }; } - export function openSecretDialog(accessKey) { return { type: 'OPEN_SECRET_DIALOG', accessKey, }; } - export function closeSecretDialog() { return { type: 'CLOSE_SECRET_DIALOG', }; } - export function hideUser() { - return dispatch => { + return (dispatch) => { dispatch(displayUser({})); dispatch(updateAccessKeysList([])); dispatch(updateAttachedUserPoliciesList([])); dispatch(updateGroupsForUserList([])); }; } - export function createAccessKey(userName) { return (dispatch, getState) => { const { iamClient } = getClients(getState()); dispatch(networkStart('Saving access key')); iamClient .createAccessKey(userName) - .then(resp => { + .then((resp) => { dispatch( addSecret({ accessKey: resp.AccessKey.AccessKeyId, @@ -102,12 +89,11 @@ export function createAccessKey(userName) { ); dispatch(listAccessKeys(userName)); }) - .catch(error => dispatch(handleClientError(error))) - .catch(error => dispatch(handleApiError(error, 'byModal'))) + .catch((error) => dispatch(handleClientError(error))) + .catch((error) => dispatch(handleApiError(error, 'byModal'))) .finally(() => dispatch(networkEnd())); }; } - export function createUser(userName) { return (dispatch, getState) => { const { iamClient } = getClients(getState()); @@ -122,12 +108,11 @@ export function createUser(userName) { dispatch(getUser(userName)); }); }) - .catch(error => dispatch(handleClientError(error))) - .catch(error => dispatch(handleApiError(error, 'byModal'))) + .catch((error) => dispatch(handleClientError(error))) + .catch((error) => dispatch(handleApiError(error, 'byModal'))) .finally(() => dispatch(networkEnd())); }; } - export function deleteAccessKey(accessKey, userName) { return (dispatch, getState) => { const { iamClient } = getClients(getState()); @@ -138,12 +123,11 @@ export function deleteAccessKey(accessKey, userName) { .then(() => { dispatch(listAccessKeys(userName)); }) - .catch(error => dispatch(handleClientError(error))) - .catch(error => dispatch(handleApiError(error, 'byModal'))) + .catch((error) => dispatch(handleClientError(error))) + .catch((error) => dispatch(handleApiError(error, 'byModal'))) .finally(() => dispatch(networkEnd())); }; } - export function deleteUser(userName) { return (dispatch, getState) => { const { iamClient } = getClients(getState()); @@ -155,85 +139,80 @@ export function deleteUser(userName) { .then(() => { dispatch(listUsers()); }) - .catch(error => dispatch(handleClientError(error))) - .catch(error => dispatch(handleApiError(error, 'byModal'))) + .catch((error) => dispatch(handleClientError(error))) + .catch((error) => dispatch(handleApiError(error, 'byModal'))) .finally(() => dispatch(networkEnd())); }; } - export function listUsers() { return (dispatch, getState) => { const { iamClient } = getClients(getState()); dispatch(networkStart('Listing users')); iamClient .listUsers() - .then(resp => { + .then((resp) => { dispatch(updateUserList(resp.Users)); }) - .catch(error => dispatch(handleClientError(error))) - .catch(error => dispatch(handleApiError(error, 'byModal'))) + .catch((error) => dispatch(handleClientError(error))) + .catch((error) => dispatch(handleApiError(error, 'byModal'))) .finally(() => dispatch(networkEnd())); }; } - export function listAccessKeys(userName) { return (dispatch, getState) => { const { iamClient } = getClients(getState()); dispatch(networkStart('Listing access keys')); iamClient .listAccessKeys(userName) - .then(resp => { + .then((resp) => { dispatch(updateAccessKeysList(resp.AccessKeyMetadata)); }) - .catch(error => dispatch(handleClientError(error))) - .catch(error => dispatch(handleApiError(error, 'byModal'))) + .catch((error) => dispatch(handleClientError(error))) + .catch((error) => dispatch(handleApiError(error, 'byModal'))) .finally(() => dispatch(networkEnd())); }; } - export function listAttachedUserPolicies(userName) { return (dispatch, getState) => { const { iamClient } = getClients(getState()); dispatch(networkStart('Listing attached user policies')); iamClient .listAttachedUserPolicies(userName) - .then(resp => { + .then((resp) => { dispatch(updateAttachedUserPoliciesList(resp.AttachedPolicies)); }) - .catch(error => dispatch(handleClientError(error))) - .catch(error => dispatch(handleApiError(error, 'byModal'))) + .catch((error) => dispatch(handleClientError(error))) + .catch((error) => dispatch(handleApiError(error, 'byModal'))) .finally(() => dispatch(networkEnd())); }; } - export function listGroupsForUser(userName) { return (dispatch, getState) => { const { iamClient } = getClients(getState()); dispatch(networkStart('Listing user groups')); iamClient .listGroupsForUser(userName) - .then(resp => { + .then((resp) => { dispatch(updateGroupsForUserList(resp.Groups)); }) - .catch(error => dispatch(handleClientError(error))) - .catch(error => dispatch(handleApiError(error, 'byModal'))) + .catch((error) => dispatch(handleClientError(error))) + .catch((error) => dispatch(handleApiError(error, 'byModal'))) .finally(() => dispatch(networkEnd())); }; } - export function getUser(userName) { return (dispatch, getState) => { const { iamClient } = getClients(getState()); dispatch(networkStart('Retrieving user')); iamClient .getUser(userName) - .then(resp => { + .then((resp) => { dispatch(displayUser(resp.User)); dispatch(listAccessKeys(userName)); dispatch(listAttachedUserPolicies(userName)); }) - .catch(error => dispatch(handleClientError(error))) - .catch(error => dispatch(handleApiError(error, 'byModal'))) + .catch((error) => dispatch(handleClientError(error))) + .catch((error) => dispatch(handleApiError(error, 'byModal'))) .finally(() => dispatch(networkEnd())); }; -} +} \ No newline at end of file diff --git a/src/react/actions/workflow.js b/src/react/actions/workflow.ts similarity index 81% rename from src/react/actions/workflow.js rename to src/react/actions/workflow.ts index 612279e2a..940ebe946 100644 --- a/src/react/actions/workflow.js +++ b/src/react/actions/workflow.ts @@ -1,4 +1,3 @@ -// @flow import type { CloseWorkflowDeleteModalAction, CloseWorkflowEditNotificationAction, @@ -11,31 +10,26 @@ import { getAccountId, getClients } from '../utils/actions'; import { networkEnd, networkStart } from './network'; import type { APIWorkflows } from '../../types/workflow'; import { rolePathName } from '../../js/IAMClient'; - export function openWorkflowEditNotification(): OpenWorkflowEditNotificationAction { return { type: 'OPEN_WORKFLOW_EDIT_NOTIFICATION', }; } - export function closeWorkflowEditNotification(): CloseWorkflowEditNotificationAction { return { type: 'CLOSE_WORKFLOW_EDIT_NOTIFICATION', }; } - export function openWorkflowDeleteModal(): OpenWorkflowDeleteModalAction { return { type: 'OPEN_WORKFLOW_DELETE_MODAL', }; } - export function closeWorkflowDeleteModal(): CloseWorkflowDeleteModalAction { return { type: 'CLOSE_WORKFLOW_DELETE_MODAL', }; } - export function searchWorkflowsSuccess( workflows: APIWorkflows, ): SearchWorkflowsSuccessAction { @@ -44,7 +38,6 @@ export function searchWorkflowsSuccess( workflows, }; } - export function searchWorkflows(): ThunkStatePromisedAction { return (dispatch, getState) => { const state = getState(); @@ -56,16 +49,12 @@ export function searchWorkflows(): ThunkStatePromisedAction { accountId, rolePathName, }; - return ( - managementClient - .searchWorkflows(params) - // return MOCK_SEARCH_WORKFLOWS() - .then(res => dispatch(searchWorkflowsSuccess(res.body))) - //!\ errors will have to be handled by caller - .catch(error => { - throw error; - }) - .finally(() => dispatch(networkEnd())) - ); + return managementClient + .searchWorkflows(params) // return MOCK_SEARCH_WORKFLOWS() + .then((res) => dispatch(searchWorkflowsSuccess(res.body))) //!\ errors will have to be handled by caller + .catch((error) => { + throw error; + }) + .finally(() => dispatch(networkEnd())); }; -} +} \ No newline at end of file diff --git a/src/react/actions/zenko.js b/src/react/actions/zenko.ts similarity index 92% rename from src/react/actions/zenko.js rename to src/react/actions/zenko.ts index ca6229abc..4a9d151f6 100644 --- a/src/react/actions/zenko.js +++ b/src/react/actions/zenko.ts @@ -1,5 +1,3 @@ -// @flow - import type { DispatchFunction, GetStateFunction, @@ -24,17 +22,14 @@ import { networkEnd, networkStart } from './network'; import { getClients } from '../utils/actions'; import { until } from 'async'; import { loadInstanceLatestStatus } from './stats'; - export const NETWORK_START_ACTION_STARTING_SEARCH = 'Starting search'; export const NETWORK_START_ACTION_SEARCHING_OBJECTS = 'Searching objects'; export const NETWORK_START_ACTION_CONTINUE_SEARCH = 'Continue search'; - export function zenkoClearError(): ZenkoClearAction { return { type: 'ZENKO_CLEAR_ERROR', }; } - export function zenkoHandleError( error: ZenkoClientError, target: string | null, @@ -48,7 +43,6 @@ export function zenkoHandleError( errorTarget: target, }; } - export function writeSearchListing( nextMarker: Marker, list: SearchResultList, @@ -59,7 +53,6 @@ export function writeSearchListing( list, }; } - export function appendSearchListing( nextMarker: Marker, list: SearchResultList, @@ -70,7 +63,6 @@ export function appendSearchListing( list, }; } - export function setZenkoClient( zenkoClient: ZenkoClientInterface, ): SetZenkoClientAction { @@ -103,8 +95,9 @@ function _getSearchObjects( .then(async ({ IsTruncated, NextMarker, Contents }: SearchBucketResp) => { const nextMarker = (IsTruncated && NextMarker) || null; const list = await Promise.all( - Contents.map(async object => { + Contents.map(async (object) => { object.IsFolder = _isFolder(object.Key); + if (!object.IsFolder) { object.SignedUrl = zenkoClient.getObjectSignedUrl( bucketName, @@ -119,16 +112,18 @@ function _getSearchObjects( object.Key, ); } + return object; }), ); + if (marker) { dispatch(appendSearchListing(nextMarker, list)); } else { dispatch(writeSearchListing(nextMarker, list)); } }) - .catch(err => dispatch(zenkoHandleError(err, null, null))) + .catch((err) => dispatch(zenkoHandleError(err, null, null))) .finally(() => dispatch(networkEnd())); }; } @@ -144,7 +139,6 @@ export function newSearchListing( ); }; } - export function continueSearchListing( bucketName: string, query: string, @@ -163,14 +157,13 @@ export function continueSearchListing( ); }; } - export function waitForIngestionUpdate( locationName: string, expectedState: string, ): ThunkStatePromisedAction { return (dispatch, getState) => until( - cb => { + (cb) => { const { instanceStatus } = getState(); const actualState = instanceStatus.latest.metrics?.['ingest-schedule']?.states[ @@ -178,34 +171,30 @@ export function waitForIngestionUpdate( ]; setTimeout(cb, 500, null, actualState === expectedState); }, - next => dispatch(loadInstanceLatestStatus()).then(next), + (next) => dispatch(loadInstanceLatestStatus()).then(next), ); } - export function pauseIngestionSite(site: Site): ThunkStatePromisedAction { return (dispatch: DispatchFunction, getState: GetStateFunction) => { const { zenkoClient } = getClients(getState()); - dispatch(networkStart('Pausing Async Metadata updates')); return zenkoClient .pauseIngestionSite(site) .then(() => dispatch(waitForIngestionUpdate(site, 'disabled'))) - .catch(error => dispatch(handleAWSClientError(error))) - .catch(error => dispatch(handleAWSError(error, 'byModal'))) + .catch((error) => dispatch(handleAWSClientError(error))) + .catch((error) => dispatch(handleAWSError(error, 'byModal'))) .finally(() => dispatch(networkEnd())); }; } - export function resumeIngestionSite(site: Site): ThunkStatePromisedAction { return (dispatch: DispatchFunction, getState: GetStateFunction) => { const { zenkoClient } = getClients(getState()); - dispatch(networkStart('Resuming Async Metadata updates')); return zenkoClient .resumeIngestionSite(site) .then(() => dispatch(waitForIngestionUpdate(site, 'enabled'))) - .catch(error => dispatch(handleAWSClientError(error))) - .catch(error => dispatch(handleAWSError(error, 'byModal'))) + .catch((error) => dispatch(handleAWSClientError(error))) + .catch((error) => dispatch(handleAWSError(error, 'byModal'))) .finally(() => dispatch(networkEnd())); }; -} +} \ No newline at end of file diff --git a/src/react/backend/StorageMonitor.jsx b/src/react/backend/StorageMonitor.tsx similarity index 99% rename from src/react/backend/StorageMonitor.jsx rename to src/react/backend/StorageMonitor.tsx index 52968cc72..7035012a8 100644 --- a/src/react/backend/StorageMonitor.jsx +++ b/src/react/backend/StorageMonitor.tsx @@ -13,13 +13,11 @@ import { getLocationName } from '../utils/storageOptions'; import { push } from 'connected-react-router'; import styled from 'styled-components'; import { fontSize, spacing } from '@scality/core-ui/dist/style/theme'; - const Sections = styled.div` display: flex; flex-direction: column; height: 210px; `; - const Section = styled.div` display: flex; height: 100%; @@ -28,7 +26,6 @@ const Section = styled.div` background-color: ${props => props.theme.brand.primary}; /* background-color: blue; */ `; - const SectionLeft = styled.div` display: flex; flex-direction: column; @@ -56,12 +53,10 @@ const SectionLeft = styled.div` } } `; - const SectionRight = styled.div` display: flex; overflow-x: auto; `; - // horizontal scrolling: https://www.freecodecamp.org/news/horizontal-scrolling-using-flexbox-f9d16817f742/ const LocationContainer = styled.div` display: flex; @@ -116,35 +111,44 @@ function StorageMonitor(props) { if (!locationName) { return false; } + const isBuiltin = props.locations[locationName] && props.locations[locationName].isBuiltin; + if (isBuiltin) { return false; } + const checkStreamLocations = props.replicationStreams.every(r => { - // legacy $FlowFixMe if (r.destination.location) { return r.destination.location !== locationName; } + return r.destination.locations.every(destLocation => { return destLocation.name !== locationName; }); }); + if (!checkStreamLocations) { return false; } + const checkBucketLocations = props.buckets.every( bucket => bucket.location !== locationName, ); + if (!checkBucketLocations) { return false; } + const checkEndpointLocations = props.endpoints.every( e => e.locationName !== locationName, ); + if (!checkEndpointLocations) { return false; } + return true; }; @@ -152,11 +156,14 @@ function StorageMonitor(props) { if (!locationName) { return false; } + const isBuiltin = props.locations[locationName] && props.locations[locationName].isBuiltin; + if (isBuiltin) { return false; } + return true; }; diff --git a/src/react/backend/location/LocationDetails/LocationDetails.jsx b/src/react/backend/location/LocationDetails/LocationDetails.tsx similarity index 87% rename from src/react/backend/location/LocationDetails/LocationDetails.jsx rename to src/react/backend/location/LocationDetails/LocationDetails.tsx index 1c4bdaa47..37de4b4b3 100644 --- a/src/react/backend/location/LocationDetails/LocationDetails.jsx +++ b/src/react/backend/location/LocationDetails/LocationDetails.tsx @@ -1,5 +1,3 @@ -// @flow - import type { EnabledState, InstanceStateSnapshot, @@ -13,24 +11,24 @@ import { Tooltip } from '@scality/core-ui'; // import { TextWithTooltip } from '../../../ui-elements/TooltipComponents'; // import { calculateTimeDiffInHours } from '../../../utils'; import { storageOptions } from './storageOptions'; - type Props = { - edit: boolean, - locationType: LocationType, - details: LocationFormDetails, - editingExisting: boolean, - repStatus?: EnabledState, - repSchedule?: string, - capabilities?: $PropertyType, - onChange: (v: LocationFormDetails) => void, + edit: boolean; + locationType: LocationType; + details: LocationFormDetails; + editingExisting: boolean; + repStatus?: EnabledState; + repSchedule?: string; + capabilities?: Pick; + onChange: (v: LocationFormDetails) => void; }; - export default class LocationDetails extends React.Component { render() { if (this.props.edit) { const loc = storageOptions[this.props.locationType]; + if (loc) { const Details = loc.formDetails; + if (Details) { return ( Details && ( @@ -47,6 +45,7 @@ export default class LocationDetails extends React.Component { ); } } + return null; } @@ -57,6 +56,7 @@ export default class LocationDetails extends React.Component { if (this.props.repSchedule) { // const diff = calculateTimeDiffInHours(this.props.repSchedule); const diff = 'TODO'; + if (diff && this.props.repSchedule) { const overlay = new Date(this.props.repSchedule).toString(); msg = ( @@ -85,7 +85,12 @@ export default class LocationDetails extends React.Component {
Location Type:  - + {storageOptions[this.props.locationType].name}
diff --git a/src/react/backend/location/LocationDetails/LocationDetailsAws.jsx b/src/react/backend/location/LocationDetails/LocationDetailsAws.tsx similarity index 89% rename from src/react/backend/location/LocationDetails/LocationDetailsAws.jsx rename to src/react/backend/location/LocationDetails/LocationDetailsAws.tsx index e9f2db67a..47b097f7e 100644 --- a/src/react/backend/location/LocationDetails/LocationDetailsAws.jsx +++ b/src/react/backend/location/LocationDetails/LocationDetailsAws.tsx @@ -1,4 +1,3 @@ -// @flow import { Checkbox, CheckboxContainer, @@ -9,21 +8,18 @@ import { } from '../../../ui-elements/FormLayout'; import type { LocationDetails } from '../../../../types/config'; import React from 'react'; - type Props = { - details: LocationDetails, - onChange: (details: LocationDetails) => void, - editingExisting: boolean, + details: LocationDetails; + onChange: (details: LocationDetails) => void; + editingExisting: boolean; }; - type State = { - serverSideEncryption: boolean, - bucketMatch: boolean, - accessKey: string, - secretKey: string, - bucketName: string, + serverSideEncryption: boolean; + bucketMatch: boolean; + accessKey: string; + secretKey: string; + bucketName: string; }; - const INIT_STATE: State = { serverSideEncryption: false, bucketMatch: false, @@ -31,7 +27,6 @@ const INIT_STATE: State = { secretKey: '', bucketName: '', }; - export default class LocationDetailsAws extends React.Component { constructor(props: Props) { super(props); @@ -40,12 +35,13 @@ export default class LocationDetailsAws extends React.Component { this.state.secretKey = ''; } - onChange = (e: SyntheticInputEvent) => { + onChange = (e: React.SyntheticEvent) => { const target = e.target; const value = target.type === 'checkbox' ? target.checked : target.value; - this.setState({ [target.name]: value }); + this.setState({ + [target.name]: value, + }); }; - updateForm = () => { if (this.props.onChange) { this.props.onChange(this.state); @@ -128,7 +124,11 @@ export default class LocationDetailsAws extends React.Component { -
+
{
); } -} +} \ No newline at end of file diff --git a/src/react/backend/location/LocationDetails/LocationDetailsAwsCustom.jsx b/src/react/backend/location/LocationDetails/LocationDetailsAwsCustom.tsx similarity index 67% rename from src/react/backend/location/LocationDetails/LocationDetailsAwsCustom.jsx rename to src/react/backend/location/LocationDetails/LocationDetailsAwsCustom.tsx index 59d3aad68..e29ac7c65 100644 --- a/src/react/backend/location/LocationDetails/LocationDetailsAwsCustom.jsx +++ b/src/react/backend/location/LocationDetails/LocationDetailsAwsCustom.tsx @@ -1,4 +1,3 @@ -// @flow import { Checkbox, CheckboxContainer, @@ -17,23 +16,20 @@ import { useSelector } from 'react-redux'; import type { AppState } from '../../../../types/state'; import { XDM_FEATURE } from '../../../../js/config'; import SpacedBox from '@scality/core-ui/dist/components/spacedbox/SpacedBox'; - type Props = { - editingExisting: boolean, - details: LocationDetails, - onChange: (details: LocationDetails) => void, - locationType: string, - capabilities: $PropertyType, + editingExisting: boolean; + details: LocationDetails; + onChange: (details: LocationDetails) => void; + locationType: string; + capabilities: Pick; }; - type State = { - bucketMatch: boolean, - accessKey: string, - secretKey: string, - bucketName: string, - endpoint: string, + bucketMatch: boolean; + accessKey: string; + secretKey: string; + bucketName: string; + endpoint: string; }; - const INIT_STATE: State = { bucketMatch: false, accessKey: '', @@ -41,7 +37,6 @@ const INIT_STATE: State = { bucketName: '', endpoint: '', }; - export default function LocationDetailsAwsCustom({ capabilities, details, @@ -54,18 +49,13 @@ export default function LocationDetailsAwsCustom({ secretKey: '', })); - const onFormItemChange = (e: SyntheticInputEvent) => { + const onFormItemChange = (e: React.SyntheticEvent) => { const target = e.target; const value = target.type === 'checkbox' ? target.checked : target.value; - setFormState({ - ...formState, - [target.name]: value, - }); + setFormState({ ...formState, [target.name]: value }); + if (onChange) { - onChange({ - ...formState, - [target.name]: value, - }); + onChange({ ...formState, [target.name]: value }); } }; @@ -73,10 +63,8 @@ export default function LocationDetailsAwsCustom({ useEffect(() => { onChange(formState); }, []); - const isIngest = isIngestSource(storageOptions, locationType, capabilities); const features = useSelector((state: AppState) => state.auth.config.features); - return (
@@ -135,38 +123,42 @@ export default function LocationDetailsAwsCustom({ buckets will have a path-style access.
- {((isIngest && features.includes(XDM_FEATURE)) || !isIngest) ?
- - - - {isIngest ? ( - <> - {' '} - Async Metadata updates Ready{' '} - {' '} - - ) : ( - 'Write objects without prefix' - )} - - - - Your objects will be stored in the target bucket without a - source-bucket prefix. - - + {(isIngest && features.includes(XDM_FEATURE)) || !isIngest ? ( +
+ + + + {isIngest ? ( + <> + {' '} + Async Metadata updates Ready{' '} + {' '} + + ) : ( + 'Write objects without prefix' + )} + + - Storing multiple buckets in a location with this option enabled can - lead to data loss. + Your objects will be stored in the target bucket without a + source-bucket prefix. - -
: } + + + Storing multiple buckets in a location with this option enabled + can lead to data loss. + + +
+ ) : ( + + )}
); } diff --git a/src/react/backend/location/LocationDetails/LocationDetailsAzure.jsx b/src/react/backend/location/LocationDetails/LocationDetailsAzure.tsx similarity index 89% rename from src/react/backend/location/LocationDetails/LocationDetailsAzure.jsx rename to src/react/backend/location/LocationDetails/LocationDetailsAzure.tsx index 916c3fae6..98111ec4f 100644 --- a/src/react/backend/location/LocationDetails/LocationDetailsAzure.jsx +++ b/src/react/backend/location/LocationDetails/LocationDetailsAzure.tsx @@ -1,4 +1,3 @@ -// @flow import { Checkbox, CheckboxContainer, @@ -8,20 +7,17 @@ import { } from '../../../ui-elements/FormLayout'; import type { LocationDetails } from '../../../../types/config'; import React from 'react'; - type Props = { - details: LocationDetails, - onChange: (details: LocationDetails) => void, + details: LocationDetails; + onChange: (details: LocationDetails) => void; }; - type State = { - bucketMatch: boolean, - accessKey: string, - secretKey: string, - bucketName: string, - endpoint: string, + bucketMatch: boolean; + accessKey: string; + secretKey: string; + bucketName: string; + endpoint: string; }; - const INIT_STATE: State = { bucketMatch: false, accessKey: '', @@ -29,10 +25,9 @@ const INIT_STATE: State = { bucketName: '', endpoint: '', }; - export default class LocationDetailsAzure extends React.Component< Props, - State, + State > { constructor(props: Props) { super(props); @@ -40,12 +35,13 @@ export default class LocationDetailsAzure extends React.Component< this.state.secretKey = ''; } - onChange = (e: SyntheticInputEvent) => { + onChange = (e: React.SyntheticEvent) => { const target = e.target; const value = target.type === 'checkbox' ? target.checked : target.value; - this.setState({ [target.name]: value }); + this.setState({ + [target.name]: value, + }); }; - updateForm = () => { if (this.props.onChange) { this.props.onChange(this.state); @@ -119,7 +115,11 @@ export default class LocationDetailsAzure extends React.Component< onChange={this.onChange} /> -
+
); } -} +} \ No newline at end of file diff --git a/src/react/backend/location/LocationDetails/LocationDetailsDOSpaces.jsx b/src/react/backend/location/LocationDetails/LocationDetailsDOSpaces.tsx similarity index 89% rename from src/react/backend/location/LocationDetails/LocationDetailsDOSpaces.jsx rename to src/react/backend/location/LocationDetails/LocationDetailsDOSpaces.tsx index 37ce3ba83..f76ca659f 100644 --- a/src/react/backend/location/LocationDetails/LocationDetailsDOSpaces.jsx +++ b/src/react/backend/location/LocationDetails/LocationDetailsDOSpaces.tsx @@ -1,4 +1,3 @@ -// @flow import { Checkbox, CheckboxContainer, @@ -8,20 +7,17 @@ import { } from '../../../ui-elements/FormLayout'; import type { LocationDetails } from '../../../../types/config'; import React from 'react'; - type Props = { - details: LocationDetails, - onChange: (details: LocationDetails) => void, + details: LocationDetails; + onChange: (details: LocationDetails) => void; }; - type State = { - bucketMatch: boolean, - accessKey: string, - secretKey: string, - bucketName: string, - endpoint: string, + bucketMatch: boolean; + accessKey: string; + secretKey: string; + bucketName: string; + endpoint: string; }; - const INIT_STATE: State = { bucketMatch: false, accessKey: '', @@ -29,10 +25,9 @@ const INIT_STATE: State = { bucketName: '', endpoint: '', }; - export default class LocationDetailsDOSpaces extends React.Component< Props, - State, + State > { constructor(props: Props) { super(props); @@ -41,12 +36,13 @@ export default class LocationDetailsDOSpaces extends React.Component< this.state.secretKey = ''; } - onChange = (e: SyntheticInputEvent) => { + onChange = (e: React.SyntheticEvent) => { const target = e.target; const value = target.type === 'checkbox' ? target.checked : target.value; - this.setState({ [target.name]: value }); + this.setState({ + [target.name]: value, + }); }; - updateForm = () => { if (this.props.onChange) { this.props.onChange(this.state); @@ -120,7 +116,11 @@ export default class LocationDetailsDOSpaces extends React.Component< /> As shown in the Settings page for this space
-
+
); } -} +} \ No newline at end of file diff --git a/src/react/backend/location/LocationDetails/LocationDetailsGcp.jsx b/src/react/backend/location/LocationDetails/LocationDetailsGcp.tsx similarity index 89% rename from src/react/backend/location/LocationDetails/LocationDetailsGcp.jsx rename to src/react/backend/location/LocationDetails/LocationDetailsGcp.tsx index 427df96d9..9709d4709 100644 --- a/src/react/backend/location/LocationDetails/LocationDetailsGcp.jsx +++ b/src/react/backend/location/LocationDetails/LocationDetailsGcp.tsx @@ -1,4 +1,3 @@ -// @flow import { Checkbox, CheckboxContainer, @@ -8,20 +7,17 @@ import { } from '../../../ui-elements/FormLayout'; import type { LocationDetails } from '../../../../types/config'; import React from 'react'; - type Props = { - details: LocationDetails, - onChange: (details: LocationDetails) => void, + details: LocationDetails; + onChange: (details: LocationDetails) => void; }; - type State = { - bucketMatch: boolean, - accessKey: string, - secretKey: string, - bucketName: string, - mpuBucketName: string, + bucketMatch: boolean; + accessKey: string; + secretKey: string; + bucketName: string; + mpuBucketName: string; }; - const INIT_STATE: State = { bucketMatch: false, accessKey: '', @@ -29,7 +25,6 @@ const INIT_STATE: State = { bucketName: '', mpuBucketName: '', }; - export default class LocationDetailsGcp extends React.Component { constructor(props: Props) { super(props); @@ -37,12 +32,13 @@ export default class LocationDetailsGcp extends React.Component { this.state.secretKey = ''; } - onChange = (e: SyntheticInputEvent) => { + onChange = (e: React.SyntheticEvent) => { const target = e.target; const value = target.type === 'checkbox' ? target.checked : target.value; - this.setState({ [target.name]: value }); + this.setState({ + [target.name]: value, + }); }; - updateForm = () => { if (this.props.onChange) { this.props.onChange(this.state); @@ -123,7 +119,11 @@ export default class LocationDetailsGcp extends React.Component { methods.
-
+
{
); } -} +} \ No newline at end of file diff --git a/src/react/backend/location/LocationDetails/LocationDetailsHyperdriveV2.jsx b/src/react/backend/location/LocationDetails/LocationDetailsHyperdriveV2.tsx similarity index 89% rename from src/react/backend/location/LocationDetails/LocationDetailsHyperdriveV2.jsx rename to src/react/backend/location/LocationDetails/LocationDetailsHyperdriveV2.tsx index 6026e3256..f86e48ac3 100644 --- a/src/react/backend/location/LocationDetails/LocationDetailsHyperdriveV2.jsx +++ b/src/react/backend/location/LocationDetails/LocationDetailsHyperdriveV2.tsx @@ -1,26 +1,20 @@ -// @flow import { Fieldset, InputList, Label } from '../../../ui-elements/FormLayout'; import type { LocationDetails } from '../../../../types/config'; import React from 'react'; - type Props = { - details: LocationDetails, - onChange: (details: LocationDetails) => void, + details: LocationDetails; + onChange: (details: LocationDetails) => void; }; - type State = { - bootstrapList: Array, + bootstrapList: Array; }; - const INIT_STATE = { bootstrapList: [], }; - const MAX_HYPERDRIVE = 10; - export default class LocationDetailsHyperdriveV2 extends React.Component< Props, - State, + State > { constructor(props: Props) { super(props); @@ -55,4 +49,4 @@ export default class LocationDetailsHyperdriveV2 extends React.Component< ); } -} +} \ No newline at end of file diff --git a/src/react/backend/location/LocationDetails/LocationDetailsNFS.jsx b/src/react/backend/location/LocationDetails/LocationDetailsNFS.tsx similarity index 90% rename from src/react/backend/location/LocationDetails/LocationDetailsNFS.jsx rename to src/react/backend/location/LocationDetails/LocationDetailsNFS.tsx index 75f99c2be..9ba61ec3a 100644 --- a/src/react/backend/location/LocationDetails/LocationDetailsNFS.jsx +++ b/src/react/backend/location/LocationDetails/LocationDetailsNFS.tsx @@ -1,4 +1,3 @@ -// @flow import { Fieldset, Input, @@ -8,21 +7,18 @@ import { import type { LocationDetails } from '../../../../types/config'; import React from 'react'; import urlParse from 'url-parse'; - type Props = { - editingExisting: boolean, - details: LocationDetails, - onChange: (details: LocationDetails) => void, + editingExisting: boolean; + details: LocationDetails; + onChange: (details: LocationDetails) => void; }; - type State = { - protocol: 'tcp' | 'udp', - version: 'v3' | 'v4', - server: string, - path: string, - options: string, + protocol: 'tcp' | 'udp'; + version: 'v3' | 'v4'; + server: string; + path: string; + options: string; }; - const INIT_STATE = { protocol: 'tcp', version: 'v3', @@ -40,7 +36,6 @@ function _convertToState(details: LocationDetails): State { options: '', }; - // todo: add stricter details ($FlowFixMe) if (!details.endpoint) { return retState; } @@ -51,9 +46,7 @@ function _convertToState(details: LocationDetails): State { pathname: path, query: options, } = urlParse(details.endpoint); - const [protocol, version] = scheme.slice(0, -1).split('+'); - return { protocol, version, @@ -78,23 +71,21 @@ function _convertToDetails({ } type Options = { - value: string, - label: string, + value: string; + label: string; }; - -const NFS_PROTOCOLS: Array = ['udp', 'tcp'].map(p => { +const NFS_PROTOCOLS: Array = ['udp', 'tcp'].map((p) => { return { value: p, label: p.toUpperCase(), }; }); -const NFS_VERSIONS: Array = ['v3', 'v4'].map(ver => { +const NFS_VERSIONS: Array = ['v3', 'v4'].map((ver) => { return { value: ver, label: ver.toUpperCase(), }; }); - export default class LocationDetailsNFS extends React.Component { constructor(props: Props) { super(props); @@ -105,39 +96,40 @@ export default class LocationDetailsNFS extends React.Component { ); } - onChange = (e: SyntheticInputEvent) => { + onChange = (e: React.SyntheticEvent) => { const target = e.target; let value; + switch (target.name) { case 'server': value = target.value.split('/')[0]; value = value.split('?')[0]; break; + case 'path': value = target.value.split('?')[0]; value = !value.startsWith('/') && value ? `/${value}` : value; break; + default: value = target.value; break; } + this.setState({ [target.name]: value, }); }; - onProtocolChange = (p: any) => { this.setState({ protocol: p, }); }; - onVersionChange = (v: any) => { this.setState({ version: v, }); }; - updateForm = () => { if (this.props.onChange) { this.props.onChange(_convertToDetails(this.state)); diff --git a/src/react/backend/location/LocationDetails/LocationDetailsSproxyd.jsx b/src/react/backend/location/LocationDetails/LocationDetailsSproxyd.tsx similarity index 91% rename from src/react/backend/location/LocationDetails/LocationDetailsSproxyd.jsx rename to src/react/backend/location/LocationDetails/LocationDetailsSproxyd.tsx index 350c9b0ab..ce1b433f3 100644 --- a/src/react/backend/location/LocationDetails/LocationDetailsSproxyd.jsx +++ b/src/react/backend/location/LocationDetails/LocationDetailsSproxyd.tsx @@ -1,4 +1,3 @@ -// @flow import { Fieldset, Input, @@ -7,29 +6,24 @@ import { } from '../../../ui-elements/FormLayout'; import type { LocationDetails } from '../../../../types/config'; import React from 'react'; - type Props = { - details: LocationDetails, - onChange: (details: LocationDetails) => void, + details: LocationDetails; + onChange: (details: LocationDetails) => void; }; - type State = { - bootstrapList: Array, - proxyPath: string, - chordCos: number, + bootstrapList: Array; + proxyPath: string; + chordCos: number; }; - const INIT_STATE = { bootstrapList: [], proxyPath: '', chordCos: 0, }; - const SPROXYD_LIMIT = 6; - export default class LocationDetailsSproxyd extends React.Component< Props, - State, + State > { constructor(props: Props) { super(props); @@ -41,10 +35,10 @@ export default class LocationDetailsSproxyd extends React.Component< bootstrapList: newList, }); }; - - onChange = (e: SyntheticInputEvent) => { + onChange = (e: React.SyntheticEvent) => { const target = e.target; let value; + switch (target.name) { case 'chordCos': value = @@ -52,14 +46,15 @@ export default class LocationDetailsSproxyd extends React.Component< ? '' : parseInt(target.value, 10); break; + default: value = target.value; } + this.setState({ [target.name]: value, }); }; - updateForm = () => { if (this.props.onChange) { this.props.onChange(this.state); @@ -123,4 +118,4 @@ export default class LocationDetailsSproxyd extends React.Component< ); } -} +} \ No newline at end of file diff --git a/src/react/backend/location/LocationDetails/LocationDetailsWasabi.jsx b/src/react/backend/location/LocationDetails/LocationDetailsWasabi.tsx similarity index 91% rename from src/react/backend/location/LocationDetails/LocationDetailsWasabi.jsx rename to src/react/backend/location/LocationDetails/LocationDetailsWasabi.tsx index 6e839a6e3..0b8e0345c 100644 --- a/src/react/backend/location/LocationDetails/LocationDetailsWasabi.jsx +++ b/src/react/backend/location/LocationDetails/LocationDetailsWasabi.tsx @@ -1,4 +1,3 @@ -// @flow import { Checkbox, CheckboxContainer, @@ -9,21 +8,18 @@ import { } from '../../../ui-elements/FormLayout'; import type { LocationDetails } from '../../../../types/config'; import React from 'react'; - type Props = { - details: LocationDetails, - onChange: (details: LocationDetails) => void, - editingExisting: boolean, + details: LocationDetails; + onChange: (details: LocationDetails) => void; + editingExisting: boolean; }; - type State = { - bucketMatch: boolean, - accessKey: string, - secretKey: string, - bucketName: string, - endpoint: string, + bucketMatch: boolean; + accessKey: string; + secretKey: string; + bucketName: string; + endpoint: string; }; - const INIT_STATE: State = { bucketMatch: false, accessKey: '', @@ -31,10 +27,9 @@ const INIT_STATE: State = { bucketName: '', endpoint: '', }; - export default class LocationDetailsWasabi extends React.Component< Props, - State, + State > { constructor(props: Props) { super(props); @@ -49,8 +44,7 @@ export default class LocationDetailsWasabi extends React.Component< this.props.onChange(this.state); } }; - - onChange = (e: SyntheticInputEvent) => { + onChange = (e: React.SyntheticEvent) => { const target = e.target; const value = target.type === 'checkbox' ? target.checked : target.value; this.setState({ @@ -116,7 +110,11 @@ export default class LocationDetailsWasabi extends React.Component< Your Wasabi target bucket can be in any available Wasabi region. -
+
); } -} +} \ No newline at end of file diff --git a/src/react/backend/location/LocationDetails/__tests__/LocationDetailsAws.test.jsx b/src/react/backend/location/LocationDetails/__tests__/LocationDetailsAws.test.tsx similarity index 97% rename from src/react/backend/location/LocationDetails/__tests__/LocationDetailsAws.test.jsx rename to src/react/backend/location/LocationDetails/__tests__/LocationDetailsAws.test.tsx index 6ff7de2f4..c54f8b207 100644 --- a/src/react/backend/location/LocationDetails/__tests__/LocationDetailsAws.test.jsx +++ b/src/react/backend/location/LocationDetails/__tests__/LocationDetailsAws.test.tsx @@ -1,3 +1,4 @@ +/* eslint-disable */ import { checkBox, themeMount as mount, @@ -5,12 +6,10 @@ import { } from '../../../../utils/test'; import LocationDetailsAws from '../LocationDetailsAws'; import React from 'react'; - const props = { details: {}, onChange: () => {}, }; - describe('class ', () => { it('should call onChange on mount', () => { const onChangeFn = jest.fn(); @@ -23,7 +22,6 @@ describe('class ', () => { bucketName: '', }); }); - it('should call onChange on state update', () => { const refLocation = { secretKey: 'sk', @@ -40,25 +38,20 @@ describe('class ', () => { expect(onChangeFn).toHaveBeenCalledWith(refLocation); }); }); - it('should show aws details for empty details', () => { const component = mount(); expect(component.find('input[name="accessKey"]')).toHaveLength(1); expect(component.find('input[name="accessKey"]').props().value).toEqual(''); - expect(component.find('input[name="secretKey"]')).toHaveLength(1); expect(component.find('input[name="secretKey"]').props().value).toEqual(''); - expect(component.find('input[name="bucketName"]')).toHaveLength(1); expect(component.find('input[name="bucketName"]').props().value).toEqual( '', ); - expect(component.find('input[name="bucketMatch"]')).toHaveLength(1); expect(component.find('input[name="bucketMatch"]').props().value).toEqual( false, ); - expect(component.find('input[name="serverSideEncryption"]')).toHaveLength( 1, ); @@ -66,7 +59,6 @@ describe('class ', () => { component.find('input[name="serverSideEncryption"]').props().value, ).toEqual(false); }); - it('should show aws details when editing an existing location', () => { const locationDetails = { secretKey: 'sk', @@ -82,21 +74,17 @@ describe('class ', () => { expect(component.find('input[name="accessKey"]').props().value).toEqual( 'ak', ); - expect(component.find('input[name="secretKey"]')).toHaveLength(1); // for now we just set it as empty since it's encrypted expect(component.find('input[name="secretKey"]').props().value).toEqual(''); - expect(component.find('input[name="bucketName"]')).toHaveLength(1); expect(component.find('input[name="bucketName"]').props().value).toEqual( 'bn', ); - expect(component.find('input[name="bucketMatch"]')).toHaveLength(1); expect(component.find('input[name="bucketMatch"]').props().value).toEqual( true, ); - expect(component.find('input[name="serverSideEncryption"]')).toHaveLength( 1, ); @@ -104,7 +92,6 @@ describe('class ', () => { component.find('input[name="serverSideEncryption"]').props().value, ).toEqual(true); }); - it('should call onChange on location details updates', () => { const refLocation = { secretKey: 'sk', @@ -115,14 +102,13 @@ describe('class ', () => { }; let location = {}; const component = mount( - (location = l)} />, + (location = l)} />, ); checkBox(component, 'bucketMatch', true); checkBox(component, 'serverSideEncryption', true); updateInputText(component, 'accessKey', 'ak'); updateInputText(component, 'secretKey', 'sk'); updateInputText(component, 'bucketName', 'bn'); - expect(location).toEqual(refLocation); }); }); diff --git a/src/react/backend/location/LocationDetails/__tests__/LocationDetailsAwsCustom.test.jsx b/src/react/backend/location/LocationDetails/__tests__/LocationDetailsAwsCustom.test.tsx similarity index 92% rename from src/react/backend/location/LocationDetails/__tests__/LocationDetailsAwsCustom.test.jsx rename to src/react/backend/location/LocationDetails/__tests__/LocationDetailsAwsCustom.test.tsx index 24166d0f3..f02c843a4 100644 --- a/src/react/backend/location/LocationDetails/__tests__/LocationDetailsAwsCustom.test.jsx +++ b/src/react/backend/location/LocationDetails/__tests__/LocationDetailsAwsCustom.test.tsx @@ -1,3 +1,4 @@ +/* eslint-disable */ import { checkBox, reduxMountAct, @@ -5,7 +6,6 @@ import { } from '../../../../utils/test'; import LocationDetailsAwsCustom from '../LocationDetailsAwsCustom'; import React from 'react'; - const props = { details: {}, onChange: () => {}, @@ -20,11 +20,12 @@ const props = { locationTypeNFS: true, }, }; - describe('class ', () => { it('should call onChange on mount', async () => { const onChangeFn = jest.fn(); - await reduxMountAct(); + await reduxMountAct( + , + ); expect(onChangeFn).toHaveBeenCalledWith({ bucketMatch: false, accessKey: '', @@ -33,29 +34,25 @@ describe('class ', () => { endpoint: '', }); }); - it('should show custom details for empty details', async () => { - const component = await reduxMountAct(); + const component = await reduxMountAct( + , + ); expect(component.find('input[name="accessKey"]')).toHaveLength(1); expect(component.find('input[name="accessKey"]').props().value).toEqual(''); - expect(component.find('input[name="secretKey"]')).toHaveLength(1); expect(component.find('input[name="secretKey"]').props().value).toEqual(''); - expect(component.find('input[name="bucketName"]')).toHaveLength(1); expect(component.find('input[name="bucketName"]').props().value).toEqual( '', ); - expect(component.find('input[name="endpoint"]')).toHaveLength(1); expect(component.find('input[name="endpoint"]').props().value).toEqual(''); - expect(component.find('input[name="bucketMatch"]')).toHaveLength(1); expect(component.find('input[name="bucketMatch"]').props().value).toEqual( false, ); }); - it('should show custom details when editing an existing location', async () => { const locationDetails = { endpoint: 'https://ep', @@ -71,27 +68,22 @@ describe('class ', () => { expect(component.find('input[name="accessKey"]').props().value).toEqual( 'ak', ); - expect(component.find('input[name="secretKey"]')).toHaveLength(1); // for now we just set it as empty since it's encrypted expect(component.find('input[name="secretKey"]').props().value).toEqual(''); - expect(component.find('input[name="bucketName"]')).toHaveLength(1); expect(component.find('input[name="bucketName"]').props().value).toEqual( 'bn', ); - expect(component.find('input[name="endpoint"]')).toHaveLength(1); expect(component.find('input[name="endpoint"]').props().value).toEqual( 'https://ep', ); - expect(component.find('input[name="bucketMatch"]')).toHaveLength(1); expect(component.find('input[name="bucketMatch"]').props().value).toEqual( true, ); }); - it('should call onChange on location details updates', async () => { const refLocation = { endpoint: 'https://ep', @@ -102,14 +94,13 @@ describe('class ', () => { }; let location = {}; const component = await reduxMountAct( - (location = l)} />, + (location = l)} />, ); checkBox(component, 'bucketMatch', true); updateInputText(component, 'accessKey', 'ak'); updateInputText(component, 'secretKey', 'sk'); updateInputText(component, 'bucketName', 'bn'); updateInputText(component, 'endpoint', 'https://ep'); - expect(location).toEqual(refLocation); }); }); diff --git a/src/react/backend/location/LocationDetails/__tests__/LocationDetailsAzure.test.jsx b/src/react/backend/location/LocationDetails/__tests__/LocationDetailsAzure.test.tsx similarity index 97% rename from src/react/backend/location/LocationDetails/__tests__/LocationDetailsAzure.test.jsx rename to src/react/backend/location/LocationDetails/__tests__/LocationDetailsAzure.test.tsx index 7efd5efd0..ae1e10ee7 100644 --- a/src/react/backend/location/LocationDetails/__tests__/LocationDetailsAzure.test.jsx +++ b/src/react/backend/location/LocationDetails/__tests__/LocationDetailsAzure.test.tsx @@ -1,3 +1,4 @@ +/* eslint-disable */ import { checkBox, themeMount as mount, @@ -5,12 +6,10 @@ import { } from '../../../../utils/test'; import LocationDetailsAzure from '../LocationDetailsAzure'; import React from 'react'; - const props = { details: {}, onChange: () => {}, }; - describe('class ', () => { it('should call onChange on mount', () => { const onChangeFn = jest.fn(); @@ -23,7 +22,6 @@ describe('class ', () => { endpoint: '', }); }); - it('should call onChange on state update', () => { const refLocation = { bucketMatch: false, @@ -40,29 +38,23 @@ describe('class ', () => { expect(onChangeFn).toHaveBeenCalledWith(refLocation); }); }); - it('should show azure details for empty details', () => { const component = mount(); expect(component.find('input[name="accessKey"]')).toHaveLength(1); expect(component.find('input[name="accessKey"]').props().value).toEqual(''); - expect(component.find('input[name="secretKey"]')).toHaveLength(1); expect(component.find('input[name="secretKey"]').props().value).toEqual(''); - expect(component.find('input[name="bucketName"]')).toHaveLength(1); expect(component.find('input[name="bucketName"]').props().value).toEqual( '', ); - expect(component.find('input[name="bucketMatch"]')).toHaveLength(1); expect(component.find('input[name="bucketMatch"]').props().value).toEqual( false, ); - expect(component.find('input[name="endpoint"]')).toHaveLength(1); expect(component.find('input[name="endpoint"]').props().value).toEqual(''); }); - it('should show azure details when editing an existing location', () => { const locationDetails = { secretKey: 'sk', @@ -78,27 +70,22 @@ describe('class ', () => { expect(component.find('input[name="accessKey"]').props().value).toEqual( 'ak', ); - expect(component.find('input[name="endpoint"]')).toHaveLength(1); expect(component.find('input[name="endpoint"]').props().value).toEqual( 'https://ep', ); - expect(component.find('input[name="secretKey"]')).toHaveLength(1); // for now we just set it as empty since it's encrypted expect(component.find('input[name="secretKey"]').props().value).toEqual(''); - expect(component.find('input[name="bucketName"]')).toHaveLength(1); expect(component.find('input[name="bucketName"]').props().value).toEqual( 'bn', ); - expect(component.find('input[name="bucketMatch"]')).toHaveLength(1); expect(component.find('input[name="bucketMatch"]').props().value).toEqual( true, ); }); - it('should call onChange on location details updates', () => { const refLocation = { secretKey: 'sk', @@ -109,14 +96,13 @@ describe('class ', () => { }; let location = {}; const component = mount( - (location = l)} />, + (location = l)} />, ); checkBox(component, 'bucketMatch', true); updateInputText(component, 'accessKey', 'ak'); updateInputText(component, 'secretKey', 'sk'); updateInputText(component, 'bucketName', 'bn'); updateInputText(component, 'endpoint', 'https://ep'); - expect(location).toEqual(refLocation); }); }); diff --git a/src/react/backend/location/LocationDetails/__tests__/LocationDetailsDOSpaces.test.jsx b/src/react/backend/location/LocationDetails/__tests__/LocationDetailsDOSpaces.test.tsx similarity index 97% rename from src/react/backend/location/LocationDetails/__tests__/LocationDetailsDOSpaces.test.jsx rename to src/react/backend/location/LocationDetails/__tests__/LocationDetailsDOSpaces.test.tsx index 249ff3787..ab8b8a4de 100644 --- a/src/react/backend/location/LocationDetails/__tests__/LocationDetailsDOSpaces.test.jsx +++ b/src/react/backend/location/LocationDetails/__tests__/LocationDetailsDOSpaces.test.tsx @@ -1,3 +1,4 @@ +/* eslint-disable */ import { checkBox, themeMount as mount, @@ -5,12 +6,10 @@ import { } from '../../../../utils/test'; import LocationDetailsDOSpaces from '../LocationDetailsDOSpaces'; import React from 'react'; - const props = { details: {}, onChange: () => {}, }; - describe('class ', () => { it('should call onChange on mount', () => { const onChangeFn = jest.fn(); @@ -23,7 +22,6 @@ describe('class ', () => { endpoint: '', }); }); - it('should call onChange on state update', () => { const refLocation = { endpoint: 'https://ep', @@ -40,29 +38,23 @@ describe('class ', () => { expect(onChangeFn).toHaveBeenCalledWith(refLocation); }); }); - it('should show spaces details for empty details', () => { const component = mount(); expect(component.find('input[name="accessKey"]')).toHaveLength(1); expect(component.find('input[name="accessKey"]').props().value).toEqual(''); - expect(component.find('input[name="secretKey"]')).toHaveLength(1); expect(component.find('input[name="secretKey"]').props().value).toEqual(''); - expect(component.find('input[name="bucketName"]')).toHaveLength(1); expect(component.find('input[name="bucketName"]').props().value).toEqual( '', ); - expect(component.find('input[name="endpoint"]')).toHaveLength(1); expect(component.find('input[name="endpoint"]').props().value).toEqual(''); - expect(component.find('input[name="bucketMatch"]')).toHaveLength(1); expect(component.find('input[name="bucketMatch"]').props().value).toEqual( false, ); }); - it('should show spaces details when editing an existing location', () => { const locationDetails = { endpoint: 'https://ep', @@ -78,27 +70,22 @@ describe('class ', () => { expect(component.find('input[name="accessKey"]').props().value).toEqual( 'ak', ); - expect(component.find('input[name="secretKey"]')).toHaveLength(1); // for now we just set it as empty since it's encrypted expect(component.find('input[name="secretKey"]').props().value).toEqual(''); - expect(component.find('input[name="bucketName"]')).toHaveLength(1); expect(component.find('input[name="bucketName"]').props().value).toEqual( 'bn', ); - expect(component.find('input[name="endpoint"]')).toHaveLength(1); expect(component.find('input[name="endpoint"]').props().value).toEqual( 'https://ep', ); - expect(component.find('input[name="bucketMatch"]')).toHaveLength(1); expect(component.find('input[name="bucketMatch"]').props().value).toEqual( true, ); }); - it('should call onChange on location details updates', () => { const refLocation = { endpoint: 'https://ep', @@ -109,14 +96,13 @@ describe('class ', () => { }; let location = {}; const component = mount( - (location = l)} />, + (location = l)} />, ); checkBox(component, 'bucketMatch', true); updateInputText(component, 'accessKey', 'ak'); updateInputText(component, 'secretKey', 'sk'); updateInputText(component, 'bucketName', 'bn'); updateInputText(component, 'endpoint', 'https://ep'); - expect(location).toEqual(refLocation); }); }); diff --git a/src/react/backend/location/LocationDetails/__tests__/LocationDetailsGcp.test.jsx b/src/react/backend/location/LocationDetails/__tests__/LocationDetailsGcp.test.tsx similarity index 97% rename from src/react/backend/location/LocationDetails/__tests__/LocationDetailsGcp.test.jsx rename to src/react/backend/location/LocationDetails/__tests__/LocationDetailsGcp.test.tsx index dc13f080a..6e55c9ed9 100644 --- a/src/react/backend/location/LocationDetails/__tests__/LocationDetailsGcp.test.jsx +++ b/src/react/backend/location/LocationDetails/__tests__/LocationDetailsGcp.test.tsx @@ -1,3 +1,4 @@ +/* eslint-disable */ import { checkBox, themeMount as mount, @@ -5,12 +6,10 @@ import { } from '../../../../utils/test'; import LocationDetailsGcp from '../LocationDetailsGcp'; import React from 'react'; - const props = { details: {}, onChange: () => {}, }; - describe('class ', () => { it('should call onChange on mount', () => { const onChangeFn = jest.fn(); @@ -23,7 +22,6 @@ describe('class ', () => { mpuBucketName: '', }); }); - it('should call onChange on state update', () => { const refLocation = { bucketMatch: true, @@ -40,31 +38,25 @@ describe('class ', () => { expect(onChangeFn).toHaveBeenCalledWith(refLocation); }); }); - it('should show gcp details for empty details', () => { const component = mount(); expect(component.find('input[name="accessKey"]')).toHaveLength(1); expect(component.find('input[name="accessKey"]').props().value).toEqual(''); - expect(component.find('input[name="secretKey"]')).toHaveLength(1); expect(component.find('input[name="secretKey"]').props().value).toEqual(''); - expect(component.find('input[name="bucketName"]')).toHaveLength(1); expect(component.find('input[name="bucketName"]').props().value).toEqual( '', ); - expect(component.find('input[name="mpuBucketName"]')).toHaveLength(1); expect(component.find('input[name="mpuBucketName"]').props().value).toEqual( '', ); - expect(component.find('input[name="bucketMatch"]')).toHaveLength(1); expect(component.find('input[name="bucketMatch"]').props().value).toEqual( false, ); }); - it('should show gcp details when editing an existing location', () => { const locationDetails = { secretKey: 'sk', @@ -80,27 +72,22 @@ describe('class ', () => { expect(component.find('input[name="accessKey"]').props().value).toEqual( 'ak', ); - expect(component.find('input[name="secretKey"]')).toHaveLength(1); // for now we just set it as empty since it's encrypted expect(component.find('input[name="secretKey"]').props().value).toEqual(''); - expect(component.find('input[name="bucketName"]')).toHaveLength(1); expect(component.find('input[name="bucketName"]').props().value).toEqual( 'bn', ); - expect(component.find('input[name="mpuBucketName"]')).toHaveLength(1); expect(component.find('input[name="mpuBucketName"]').props().value).toEqual( 'mbn', ); - expect(component.find('input[name="bucketMatch"]')).toHaveLength(1); expect(component.find('input[name="bucketMatch"]').props().value).toEqual( true, ); }); - it('should call onChange on location details updates', () => { const refLocation = { secretKey: 'sk', @@ -111,14 +98,13 @@ describe('class ', () => { }; let location = {}; const component = mount( - (location = l)} />, + (location = l)} />, ); checkBox(component, 'bucketMatch', true); updateInputText(component, 'accessKey', 'ak'); updateInputText(component, 'secretKey', 'sk'); updateInputText(component, 'bucketName', 'bn'); updateInputText(component, 'mpuBucketName', 'mbn'); - expect(location).toEqual(refLocation); }); }); diff --git a/src/react/backend/location/LocationDetails/__tests__/LocationDetailsHyperdriveV2.test.jsx b/src/react/backend/location/LocationDetails/__tests__/LocationDetailsHyperdriveV2.test.tsx similarity index 90% rename from src/react/backend/location/LocationDetails/__tests__/LocationDetailsHyperdriveV2.test.jsx rename to src/react/backend/location/LocationDetails/__tests__/LocationDetailsHyperdriveV2.test.tsx index 5e2db7321..1e2dbb43b 100644 --- a/src/react/backend/location/LocationDetails/__tests__/LocationDetailsHyperdriveV2.test.jsx +++ b/src/react/backend/location/LocationDetails/__tests__/LocationDetailsHyperdriveV2.test.tsx @@ -1,3 +1,4 @@ +/* eslint-disable */ import { addListEntry, delListEntry, @@ -6,12 +7,10 @@ import { } from '../../../../utils/test'; import LocationDetailsHyperdriveV2 from '../LocationDetailsHyperdriveV2'; import React from 'react'; - const props = { details: {}, onChange: () => {}, }; - describe('class ', () => { it('should call onChange on mount', () => { const onChangeFn = jest.fn(); @@ -20,7 +19,6 @@ describe('class ', () => { bootstrapList: [''], }); }); - it('should call onChange on state update', () => { const refLocation = { bootstrapList: ['localhost:83'], @@ -35,12 +33,10 @@ describe('class ', () => { expect(onChangeFn).toHaveBeenCalledWith(refLocation); }); }); - it('should show empty bootstrap list', () => { const component = mount(); expect(component.find('InputList').props().entries).toEqual(['']); }); - it('should show three items in the bootstrap list', () => { const locationDetails = { bootstrapList: ['localhost:83', 'localhost:84', 'localhost:85'], @@ -54,7 +50,6 @@ describe('class ', () => { 'localhost:85', ]); }); - it('should disable add button if ten items in the bootstrap list', () => { const bootstrapList = [ 'localhost:80', @@ -75,19 +70,12 @@ describe('class ', () => { , ); expect( - component - .find('InputList #addbtn') - .last() - .hasClass('visible'), - ).toEqual(true); - expect( - component - .find('InputList #addbtn') - .last() - .props().disabled, + component.find('InputList #addbtn').last().hasClass('visible'), ).toEqual(true); + expect(component.find('InputList #addbtn').last().props().disabled).toEqual( + true, + ); }); - it('should add entry and save hyperdrive location details', () => { const refLocation = { bootstrapList: ['localhost:83', ''], @@ -99,13 +87,12 @@ describe('class ', () => { (location = l)} + onChange={(l) => (location = l)} />, ); addListEntry(component); expect(location).toEqual(refLocation); }); - it('should edit entry and save hyperdrive location details', () => { const refLocation = { bootstrapList: ['localhost:83'], @@ -117,13 +104,12 @@ describe('class ', () => { (location = l)} + onChange={(l) => (location = l)} />, ); editListEntry(component, 'localhost:83', 0); expect(location).toEqual(refLocation); }); - it('should delete entry and save hyperdrive location details', () => { const refLocation = { bootstrapList: ['localhost:84'], @@ -135,7 +121,7 @@ describe('class ', () => { (location = l)} + onChange={(l) => (location = l)} />, ); delListEntry(component, 0); diff --git a/src/react/backend/location/LocationDetails/__tests__/LocationDetailsNFS.test.jsx b/src/react/backend/location/LocationDetails/__tests__/LocationDetailsNFS.test.tsx similarity index 94% rename from src/react/backend/location/LocationDetails/__tests__/LocationDetailsNFS.test.jsx rename to src/react/backend/location/LocationDetails/__tests__/LocationDetailsNFS.test.tsx index 0cb8d3a6b..55b721136 100644 --- a/src/react/backend/location/LocationDetails/__tests__/LocationDetailsNFS.test.jsx +++ b/src/react/backend/location/LocationDetails/__tests__/LocationDetailsNFS.test.tsx @@ -1,13 +1,12 @@ +/* eslint-disable */ import { themeMount as mount, updateInputText } from '../../../../utils/test'; import LocationDetailsNFS from '../LocationDetailsNFS'; import React from 'react'; import { shallow } from 'enzyme'; - const props = { details: {}, onChange: () => {}, }; - describe('class ', () => { it('should correctly translate location details to state values', () => { const component = shallow( @@ -26,13 +25,12 @@ describe('class ', () => { options: 'hard&async', }); }); - it('should correctly translate state values to location details', () => { const onChangeFn = jest.fn(); const component = shallow( , ); - return new Promise(done => { + return new Promise((done) => { component.setState( { protocol: 'udp', @@ -50,7 +48,6 @@ describe('class ', () => { ); }); }); - it('should call onChange on mount', () => { const onChangeFn = jest.fn(); mount(); @@ -58,7 +55,6 @@ describe('class ', () => { endpoint: 'tcp+v3://', }); }); - it('should call onChange on state update', () => { const refLocation = { endpoint: 'tcp+v3://ep/export/path?hard&async', @@ -78,7 +74,6 @@ describe('class ', () => { expect(onChangeFn).toHaveBeenCalledWith(refLocation); }); }); - it('should show NFS details for empty details', () => { const component = mount(); expect(component.find('SelectBox#nfs-protocol')).toHaveLength(1); @@ -89,38 +84,32 @@ describe('class ', () => { expect( component.find('SelectBox#nfs-protocol').props().disabled, ).toBeFalsy(); - expect(component.find('SelectBox#nfs-version')).toHaveLength(1); expect(component.find('SelectBox#nfs-version').text()).toEqual('V3'); expect(component.find('SelectBox#nfs-version').props().value).toEqual('v3'); expect( component.find('SelectBox#nfs-version').props().disabled, ).toBeFalsy(); - expect(component.find('input[name="server"]')).toHaveLength(1); expect(component.find('input[name="server"]').props().value).toEqual(''); expect( component.find('input[name="protocol"]').props().disabled, ).toBeFalsy(); - expect(component.find('input[name="path"]')).toHaveLength(1); expect(component.find('input[name="path"]').props().value).toEqual(''); expect( component.find('input[name="protocol"]').props().disabled, ).toBeFalsy(); - expect(component.find('input[name="options"]')).toHaveLength(1); expect(component.find('input[name="options"]').props().value).toEqual(''); expect( component.find('input[name="protocol"]').props().disabled, ).toBeFalsy(); }); - it('should show NFS details when editing an existing location', () => { const locationDetails = { endpoint: 'tcp+v3://ep/export/path?hard&async', }; - const component = mount( ', () => { expect( component.find('SelectBox#nfs-protocol').props().disabled, ).toBeFalsy(); - expect(component.find('SelectBox#nfs-version')).toHaveLength(1); expect(component.find('SelectBox#nfs-version').text()).toEqual('V3'); expect(component.find('SelectBox#nfs-version').props().value).toEqual('v3'); expect( component.find('SelectBox#nfs-version').props().disabled, ).toBeFalsy(); - expect(component.find('input[name="server"]')).toHaveLength(1); expect(component.find('input[name="server"]').props().value).toEqual('ep'); expect(component.find('input[name="server"]').props().disabled).toBe(true); - expect(component.find('input[name="path"]')).toHaveLength(1); expect(component.find('input[name="path"]').props().value).toEqual( '/export/path', ); expect(component.find('input[name="path"]').props().disabled).toBe(true); - expect(component.find('input[name="options"]')).toHaveLength(1); expect(component.find('input[name="options"]').props().value).toEqual( 'hard&async', ); expect(component.find('input[name="options"]').props().disabled).toBe(true); }); - it('should call onChange on location details updates', () => { const refLocation = { endpoint: 'udp+v4://ep/export/path?hard&async', }; let location = {}; const component = mount( - (location = l)} />, + (location = l)} />, ); - component - .find('Select#nfs-protocol') - .props() - .onChange({ value: 'udp' }); - component - .find('Select#nfs-version') - .props() - .onChange({ value: 'v4' }); + component.find('Select#nfs-protocol').props().onChange({ + value: 'udp', + }); + component.find('Select#nfs-version').props().onChange({ + value: 'v4', + }); updateInputText(component, 'server', 'ep'); updateInputText(component, 'path', '/export/path'); updateInputText(component, 'options', 'hard&async'); - expect(location).toEqual(refLocation); }); }); diff --git a/src/react/backend/location/LocationDetails/__tests__/LocationDetailsSproxyd.test.jsx b/src/react/backend/location/LocationDetails/__tests__/LocationDetailsSproxyd.test.tsx similarity index 96% rename from src/react/backend/location/LocationDetails/__tests__/LocationDetailsSproxyd.test.jsx rename to src/react/backend/location/LocationDetails/__tests__/LocationDetailsSproxyd.test.tsx index 97f1f224c..ab45665ef 100644 --- a/src/react/backend/location/LocationDetails/__tests__/LocationDetailsSproxyd.test.jsx +++ b/src/react/backend/location/LocationDetails/__tests__/LocationDetailsSproxyd.test.tsx @@ -1,3 +1,4 @@ +/* eslint-disable */ import { addListEntry, delListEntry, @@ -7,12 +8,10 @@ import { } from '../../../../utils/test'; import LocationDetailsSproxyd from '../LocationDetailsSproxyd'; import React from 'react'; - const props = { details: {}, onChange: () => {}, }; - describe('class ', () => { it('should call onChange on mount', () => { const onChangeFn = jest.fn(); @@ -23,7 +22,6 @@ describe('class ', () => { chordCos: 0, }); }); - it('should call onChange on state update', () => { const refLocation = { bootstrapList: ['localhost:42'], @@ -38,18 +36,14 @@ describe('class ', () => { expect(onChangeFn).toHaveBeenCalledWith(refLocation); }); }); - it('should show sproxyd details for empty details', () => { const component = mount(); expect(component.find('input[name="proxyPath"]')).toHaveLength(1); expect(component.find('input[name="proxyPath"]').props().value).toEqual(''); - expect(component.find('input[name="chordCos"]')).toHaveLength(1); expect(component.find('input[name="chordCos"]').props().value).toEqual(0); - expect(component.find('InputList').props().entries).toEqual(['']); }); - it('should show sproxyd details when editing an existing location', () => { const locationDetails = { bootstrapList: ['localhost:42', 'localhost:43', 'localhost:44'], @@ -63,17 +57,14 @@ describe('class ', () => { expect(component.find('input[name="proxyPath"]').props().value).toEqual( '/proxy/path/', ); - expect(component.find('input[name="chordCos"]')).toHaveLength(1); expect(component.find('input[name="chordCos"]').props().value).toEqual(3); - expect(component.find('InputList').props().entries).toEqual([ 'localhost:42', 'localhost:43', 'localhost:44', ]); }); - it('should call onChange on location details updates', () => { const refLocation = { bootstrapList: ['localhost:42'], @@ -89,15 +80,13 @@ describe('class ', () => { (location = l)} + onChange={(l) => (location = l)} />, ); updateInputText(component, 'proxyPath', '/proxy/path/'); updateInputText(component, 'chordCos', 3); - expect(location).toEqual(refLocation); }); - it('should add entry and save sproxyd location details', () => { const refLocation = { bootstrapList: ['localhost:42', ''], @@ -113,13 +102,12 @@ describe('class ', () => { (location = l)} + onChange={(l) => (location = l)} />, ); addListEntry(component); expect(location).toEqual(refLocation); }); - it('should edit entry and save sproxyd location details', () => { const refLocation = { bootstrapList: ['localhost:42'], @@ -135,13 +123,12 @@ describe('class ', () => { (location = l)} + onChange={(l) => (location = l)} />, ); editListEntry(component, 'localhost:42', 0); expect(location).toEqual(refLocation); }); - it('should delete entry and save sproxyd location details', () => { const refLocation = { bootstrapList: ['localhost:42'], @@ -157,7 +144,7 @@ describe('class ', () => { (location = l)} + onChange={(l) => (location = l)} />, ); delListEntry(component, 0); diff --git a/src/react/backend/location/LocationDetails/__tests__/LocationDetailsWasabi.test.jsx b/src/react/backend/location/LocationDetails/__tests__/LocationDetailsWasabi.test.tsx similarity index 97% rename from src/react/backend/location/LocationDetails/__tests__/LocationDetailsWasabi.test.jsx rename to src/react/backend/location/LocationDetails/__tests__/LocationDetailsWasabi.test.tsx index 64fbb01cd..916ff9e6f 100644 --- a/src/react/backend/location/LocationDetails/__tests__/LocationDetailsWasabi.test.jsx +++ b/src/react/backend/location/LocationDetails/__tests__/LocationDetailsWasabi.test.tsx @@ -1,3 +1,4 @@ +/* eslint-disable */ import { checkBox, themeMount as mount, @@ -5,12 +6,10 @@ import { } from '../../../../utils/test'; import LocationDetailsWasabi from '../LocationDetailsWasabi'; import React from 'react'; - const props = { details: {}, onChange: () => {}, }; - describe('class ', () => { it('should call onChange on mount', () => { const onChangeFn = jest.fn(); @@ -23,7 +22,6 @@ describe('class ', () => { endpoint: 'https://s3.wasabisys.com', }); }); - it('should call onChange on state update', () => { const refLocation = { bucketMatch: true, @@ -40,31 +38,25 @@ describe('class ', () => { expect(onChangeFn).toHaveBeenCalledWith(refLocation); }); }); - it('should show wasabi details for empty details', () => { const component = mount(); expect(component.find('input[name="accessKey"]')).toHaveLength(1); expect(component.find('input[name="accessKey"]').props().value).toEqual(''); - expect(component.find('input[name="secretKey"]')).toHaveLength(1); expect(component.find('input[name="secretKey"]').props().value).toEqual(''); - expect(component.find('input[name="bucketName"]')).toHaveLength(1); expect(component.find('input[name="bucketName"]').props().value).toEqual( '', ); - expect(component.find('input[name="endpoint"]')).toHaveLength(1); expect(component.find('input[name="endpoint"]').props().value).toEqual( 'https://s3.wasabisys.com', ); - expect(component.find('input[name="bucketMatch"]')).toHaveLength(1); expect(component.find('input[name="bucketMatch"]').props().value).toEqual( false, ); }); - it('should show custom details when editing an existing location', () => { const locationDetails = { endpoint: 'https://s3.wasabisys.com', @@ -80,27 +72,22 @@ describe('class ', () => { expect(component.find('input[name="accessKey"]').props().value).toEqual( 'ak', ); - expect(component.find('input[name="secretKey"]')).toHaveLength(1); // for now we just set it as empty since it's encrypted expect(component.find('input[name="secretKey"]').props().value).toEqual(''); - expect(component.find('input[name="bucketName"]')).toHaveLength(1); expect(component.find('input[name="bucketName"]').props().value).toEqual( 'bn', ); - expect(component.find('input[name="endpoint"]')).toHaveLength(1); expect(component.find('input[name="endpoint"]').props().value).toEqual( 'https://s3.wasabisys.com', ); - expect(component.find('input[name="bucketMatch"]')).toHaveLength(1); expect(component.find('input[name="bucketMatch"]').props().value).toEqual( true, ); }); - it('should call onChange on location details updates', () => { const refLocation = { endpoint: 'https://s3.wasabisys.com', @@ -111,14 +98,13 @@ describe('class ', () => { }; let location = {}; const component = mount( - (location = l)} />, + (location = l)} />, ); checkBox(component, 'bucketMatch', true); updateInputText(component, 'accessKey', 'ak'); updateInputText(component, 'secretKey', 'sk'); updateInputText(component, 'bucketName', 'bn'); updateInputText(component, 'endpoint', 'https://ep'); - expect(location).toEqual(refLocation); }); }); diff --git a/src/react/backend/location/LocationDetails/index.js b/src/react/backend/location/LocationDetails/index.js deleted file mode 100644 index 93cd71e72..000000000 --- a/src/react/backend/location/LocationDetails/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export * from './storageOptions'; -export { default as LocationDetails } from './LocationDetails'; diff --git a/src/react/backend/location/LocationDetails/index.ts b/src/react/backend/location/LocationDetails/index.ts new file mode 100644 index 000000000..78a1d6305 --- /dev/null +++ b/src/react/backend/location/LocationDetails/index.ts @@ -0,0 +1,2 @@ +export * from './storageOptions'; +export { default as LocationDetails } from './LocationDetails'; \ No newline at end of file diff --git a/src/react/backend/location/LocationDetails/storageOptions.js b/src/react/backend/location/LocationDetails/storageOptions.ts similarity index 98% rename from src/react/backend/location/LocationDetails/storageOptions.js rename to src/react/backend/location/LocationDetails/storageOptions.ts index eda403b51..e76d5d2cb 100644 --- a/src/react/backend/location/LocationDetails/storageOptions.js +++ b/src/react/backend/location/LocationDetails/storageOptions.ts @@ -1,5 +1,3 @@ -// @flow - import LocationDetailsAws from './LocationDetailsAws'; import LocationDetailsAwsCustom from './LocationDetailsAwsCustom'; import LocationDetailsAzure from './LocationDetailsAzure'; @@ -9,8 +7,7 @@ import LocationDetailsHyperdriveV2 from './LocationDetailsHyperdriveV2'; import LocationDetailsNFS from './LocationDetailsNFS'; import LocationDetailsSproxyd from './LocationDetailsSproxyd'; import LocationDetailsWasabi from './LocationDetailsWasabi'; - -export const storageOptions: { [name: string]: any } = { +export const storageOptions: Record = { 'location-scality-hdclient-v2': { name: 'Storage Service for ARTESCA', short: 'Storage Service', @@ -70,7 +67,6 @@ export const storageOptions: { [name: string]: any } = { supportsReplicationSource: false, hasIcon: false, }, - 'location-file-v1': { name: 'Local Filesystem', short: 'Local Filesystem', @@ -141,4 +137,4 @@ export const storageOptions: { [name: string]: any } = { hasIcon: false, hidden: true, }, -}; +}; \ No newline at end of file diff --git a/src/react/backend/location/LocationEditor.jsx b/src/react/backend/location/LocationEditor.tsx similarity index 92% rename from src/react/backend/location/LocationEditor.jsx rename to src/react/backend/location/LocationEditor.tsx index 2e97f24c5..6b221c4e9 100644 --- a/src/react/backend/location/LocationEditor.jsx +++ b/src/react/backend/location/LocationEditor.tsx @@ -1,4 +1,3 @@ -// @flow import FormContainer, * as F from '../../ui-elements/FormLayout'; import { LocationDetails, storageOptions } from './LocationDetails'; import React, { useMemo, useRef, useState } from 'react'; @@ -22,7 +21,7 @@ import { selectStorageOptions } from '../../utils/storageOptions'; import { useOutsideClick } from '../../utils/hooks'; import { useParams } from 'react-router-dom'; -const makeLabel = locationType => { +const makeLabel = (locationType) => { const details = storageOptions[locationType]; return details.name; }; @@ -47,13 +46,10 @@ function LocationEditor() { const loading = useSelector( (state: AppState) => state.networkActivity.counter > 0, ); - const editingExisting = !!(locationEditing && locationEditing.objectId); - const [location, setLocation] = useState( convertToForm({ ...newLocationDetails(), ...locationEditing }), ); - const selectOptions = useMemo(() => { return selectStorageOptions(capabilities, makeLabel, !editingExisting); }, [capabilities, editingExisting]); @@ -63,22 +59,20 @@ function LocationEditor() { dispatch(clearError()); } }; + // clear server errors if clicked on outside of element. const formRef = useRef(null); useOutsideClick(formRef, clearServerError); - const onChange = e => { + const onChange = (e) => { const value = e.target.type === 'checkbox' ? e.target.checked : e.target.value; - const l = { - ...location, - [e.target.name]: value, - }; + const l = { ...location, [e.target.name]: value }; clearServerError(); setLocation(l); }; - const save = e => { + const save = (e) => { if (e) { e.preventDefault(); } @@ -87,7 +81,7 @@ function LocationEditor() { dispatch(saveLocation(convertToLocation(location))); }; - const cancel = e => { + const cancel = (e) => { if (e) { e.preventDefault(); } @@ -100,6 +94,7 @@ function LocationEditor() { const onTypeChange = (v: LocationName) => { clearServerError(); + if (location.locationType !== v) { const l = { ...newLocationForm(), @@ -111,25 +106,19 @@ function LocationEditor() { } }; - const onDetailsChange = details => { + const onDetailsChange = (details) => { clearServerError(); - const l = { - ...location, - details, - }; + const l = { ...location, details }; setLocation(l); }; - const onOptionsChange = (e: SyntheticInputEvent) => { + const onOptionsChange = (e: React.SyntheticEvent) => { clearServerError(); const value = e.target.type === 'checkbox' ? e.target.checked : e.target.value; const l = { ...location, - options: { - ...location.options, - [e.target.name]: value, - }, + options: { ...location.options, [e.target.name]: value }, }; setLocation(l); }; @@ -138,6 +127,7 @@ function LocationEditor() { if (location.locationType === 'location-file-v1') { return null; } + return (
) => void, + locationType: LocationName; + locationOptions: LocationFormOptions; + onChange: (e: React.SyntheticEvent) => void; }; + function LocationOptions(props: Props) { const { isTransient } = props.locationOptions; const showTransientOption = isTransientEnabled(props.locationType); @@ -40,7 +38,9 @@ function LocationOptions(props: Props) {
(props.height ? `${props.height}px` : '300px')}; + height: ${(props) => (props.height ? `${props.height}px` : '300px')}; width: 100%; `; - const Container = styled.div` display: flex; flex-direction: column; @@ -50,7 +45,6 @@ const Container = styled.div` function Locations() { const dispatch = useDispatch(); - const locations = useSelector( (state: AppState) => state.configuration.latest.locations, ); @@ -62,7 +56,6 @@ function Locations() { (state: AppState) => state.configuration.latest.endpoints, ); const data = useMemo(() => Object.values(locations), [locations]); - const showDeleteLocationName = useSelector( (state: AppState) => state.uiLocations.showDeleteLocation, ); @@ -76,17 +69,13 @@ function Locations() { const capabilities = useSelector( (state: AppState) => state.instanceStatus.latest.state.capabilities, ); - const handleDeleteClick = useCallback( - locationName => dispatch(openLocationDeleteDialog(locationName)), + (locationName) => dispatch(openLocationDeleteDialog(locationName)), [dispatch], ); - const features = useSelector((state: AppState) => state.auth.config.features); - - const resizerRef = useRef | null>(null); + const resizerRef = useRef(null); const height = useHeight(resizerRef); - const columns = useMemo(() => { const columns = [ { @@ -96,6 +85,7 @@ function Locations() { { Header: 'Location Type', accessor: 'locationType', + Cell({ value: locationType }: { value: LocationType }) { return storageOptions[locationType]?.name || 'N/A'; }, @@ -117,7 +107,9 @@ function Locations() { Header: 'Async Metadata updates', accessor: 'name', disableSortBy: true, - cellStyle: { overflow: 'visible' }, + cellStyle: { + overflow: 'visible', + }, Cell: IngestionCell(ingestionStates, capabilities, loading, dispatch), }); } @@ -126,15 +118,21 @@ function Locations() { id: 'actions', Header: '', accessor: 'name', - cellStyle: { overflow: 'visible' }, + cellStyle: { + overflow: 'visible', + }, disableSortBy: true, + Cell({ value: locationName }: { value: LocationName }) { return ( } - tooltip={{ overlay: 'Edit Location', placement: 'top' }} + tooltip={{ + overlay: 'Edit Location', + placement: 'top', + }} onClick={() => dispatch(push(`/locations/${locationName}/edit`))} variant="secondary" /> @@ -149,7 +147,10 @@ function Locations() { ) } icon={} - tooltip={{ overlay: 'Delete Location', placement: 'top' }} + tooltip={{ + overlay: 'Delete Location', + placement: 'top', + }} onClick={() => handleDeleteClick(locationName)} variant="danger" /> @@ -170,7 +171,6 @@ function Locations() { capabilities, features, ]); - const { getTableProps, getTableBodyProps, @@ -182,7 +182,9 @@ function Locations() { { columns, data, - initialState: { sortBy: initialSortBy }, + initialState: { + sortBy: initialSortBy, + }, disableSortRemove: true, autoResetFilters: false, autoResetSortBy: false, @@ -211,7 +213,7 @@ function Locations() { setFilter('name', e.target.value)} + onChange={(e) => setFilter('name', e.target.value)} />{' '}
- {headerGroups.map(headerGroup => ( + {headerGroups.map((headerGroup) => ( - {headerGroup.headers.map(column => ( + {headerGroup.headers.map((column) => ( {column.render('Header')} @@ -257,7 +261,7 @@ function Locations() { - {rows.map(row => { + {rows.map((row) => { prepareRow(row); const locationName = row.original.name; return ( @@ -271,7 +275,7 @@ function Locations() { approve={() => dispatch(deleteLocation(locationName))} titleText={`Are you sure you want to delete location: ${locationName} ?`} /> - {row.cells.map(cell => { + {row.cells.map((cell) => { const cellProps = cell.getCellProps(); return ( { - it('should display storageOptions expect hidden options', () => { - const { component } = reduxMount( - - - , - ); - - const selectInput = component.find('input[name="locationType"]'); - // open select - selectInput.simulate('keyDown', { key: 'ArrowDown', keyCode: 40 }); - - const options = component.find('div.sc-select__option'); - expect(options.length).toBe(6); - expect( - options - .first() - .find('span') - .text(), - ).toBe('Storage Service for ARTESCA'); - expect( - options - .at(1) - .find('span') - .text(), - ).toBe('Scality Artesca S3'); - expect( - options - .at(2) - .find('span') - .text(), - ).toBe('Scality RING with S3 Connector'); - expect( - options - .at(3) - .find('span') - .text(), - ).toBe('Amazon S3'); - expect( - options - .at(4) - .find('span') - .text(), - ).toBe('Google Cloud Storage'); - expect( - options - .at(5) - .find('span') - .text(), - ).toBe('Microsoft Azure Blob Storage'); - }); -}); diff --git a/src/react/backend/location/__tests__/LocationEditor.test.tsx b/src/react/backend/location/__tests__/LocationEditor.test.tsx new file mode 100644 index 000000000..d795c2ef3 --- /dev/null +++ b/src/react/backend/location/__tests__/LocationEditor.test.tsx @@ -0,0 +1,33 @@ +import LocationEditor from '../LocationEditor'; +import { MemoryRouter } from 'react-router-dom'; +import React from 'react'; +import { reduxMount } from '../../../utils/test'; +describe('LocationEditor', () => { + it('should display storageOptions expect hidden options', () => { + const { component } = reduxMount( + + + , + ); + const selectInput = component.find('input[name="locationType"]'); + // open select + selectInput.simulate('keyDown', { + key: 'ArrowDown', + keyCode: 40, + }); + const options = component.find('div.sc-select__option'); + expect(options.length).toBe(6); + expect(options.first().find('span').text()).toBe( + 'Storage Service for ARTESCA', + ); + expect(options.at(1).find('span').text()).toBe('Scality Artesca S3'); + expect(options.at(2).find('span').text()).toBe( + 'Scality RING with S3 Connector', + ); + expect(options.at(3).find('span').text()).toBe('Amazon S3'); + expect(options.at(4).find('span').text()).toBe('Google Cloud Storage'); + expect(options.at(5).find('span').text()).toBe( + 'Microsoft Azure Blob Storage', + ); + }); +}); \ No newline at end of file diff --git a/src/react/backend/location/__tests__/Locations.test.jsx b/src/react/backend/location/__tests__/Locations.test.tsx similarity index 73% rename from src/react/backend/location/__tests__/Locations.test.jsx rename to src/react/backend/location/__tests__/Locations.test.tsx index 3d886c36d..06ccc2ec3 100644 --- a/src/react/backend/location/__tests__/Locations.test.jsx +++ b/src/react/backend/location/__tests__/Locations.test.tsx @@ -3,7 +3,6 @@ import Locations from '../Locations'; import React from 'react'; import { reduxMount } from '../../../utils/test'; import { XDM_FEATURE } from '../../../../js/config'; - const locationFile = { details: { bootstrapList: [], @@ -13,7 +12,6 @@ const locationFile = { objectId: '0', isBuiltin: true, }; - const locationAwsS3 = { details: { accessKey: 'accessKey1', @@ -28,7 +26,6 @@ const locationAwsS3 = { objectId: '1', sizeLimitGB: 123, }; - const locationCeph = { details: { accessKey: 'accessKey2', @@ -43,7 +40,6 @@ const locationCeph = { objectId: '2', sizeLimitGB: 123, }; - const locationNFS = { details: { bootstrapList: [], @@ -53,7 +49,6 @@ const locationNFS = { name: 'location-nfs', objectId: '3', }; - const locationHD = { details: { bootstrapList: ['localhost:123', 'localhost:456'], @@ -62,7 +57,6 @@ const locationHD = { name: 'location-hd', objectId: '4', }; - const locationRing = { details: { accessKey: 'accessKey3', @@ -77,7 +71,6 @@ const locationRing = { objectId: '5', sizeLimitGB: 123, }; - const locationSproxyd = { details: { bootstrapList: ['localhost:123', 'localhost:456'], @@ -88,7 +81,6 @@ const locationSproxyd = { name: 'location-sproxyd', objectId: '6', }; - const locations = { 'location-file': locationFile, 'location-aws-s3': locationAwsS3, @@ -98,10 +90,8 @@ const locations = { 'location-ring': locationRing, 'location-sproxyd': locationSproxyd, }; - const nbrOfColumnsExpected = 5; const nbrOfColumnsExpectedWithoutXDM = 4; - describe('Locations', () => { it('should render Locations component alphabetically sorted', () => { const { component } = reduxMount(, { @@ -115,184 +105,129 @@ describe('Locations', () => { replications: [], }, }); - expect(component.find('div#location-list')).toHaveLength(1); const rows = component.find(T.Row); expect(rows).toHaveLength(7); - const firstRow = rows.first(); - const firstRowColumns = firstRow.find(T.Cell).map(column => column.text()); + const firstRowColumns = firstRow + .find(T.Cell) + .map((column) => column.text()); expect(firstRowColumns.length).toEqual(nbrOfColumnsExpectedWithoutXDM); expect(firstRowColumns[0]).toEqual('location-aws-s3'); expect(firstRowColumns[1]).toEqual('Amazon S3'); expect(firstRowColumns[2]).toEqual('bucketName1'); // edit button expect( - firstRow - .find(T.Cell) - .find(T.ActionButton) - .first() - .prop('disabled'), + firstRow.find(T.Cell).find(T.ActionButton).first().prop('disabled'), ).toBeFalsy(); // delete button expect( - firstRow - .find(T.Cell) - .find(T.ActionButton) - .at(1) - .prop('disabled'), + firstRow.find(T.Cell).find(T.ActionButton).at(1).prop('disabled'), ).toBeFalsy(); - const secondRow = rows.at(1); const secondRowColumns = secondRow .find(T.Cell) - .map(column => column.text()); + .map((column) => column.text()); expect(secondRowColumns.length).toEqual(nbrOfColumnsExpectedWithoutXDM); expect(secondRowColumns[0]).toEqual('location-ceph'); expect(secondRowColumns[1]).toEqual('Ceph RADOS Gateway'); expect(secondRowColumns[2]).toEqual('bucketName2'); // edit button expect( - secondRow - .find(T.Cell) - .find(T.ActionButton) - .first() - .prop('disabled'), + secondRow.find(T.Cell).find(T.ActionButton).first().prop('disabled'), ).toBeFalsy(); // delete button expect( - secondRow - .find(T.Cell) - .find(T.ActionButton) - .at(1) - .prop('disabled'), + secondRow.find(T.Cell).find(T.ActionButton).at(1).prop('disabled'), ).toBeFalsy(); - const thirdRow = rows.at(2); - const thirdRowColumns = thirdRow.find(T.Cell).map(column => column.text()); + const thirdRowColumns = thirdRow + .find(T.Cell) + .map((column) => column.text()); expect(thirdRowColumns.length).toEqual(nbrOfColumnsExpectedWithoutXDM); expect(thirdRowColumns[0]).toEqual('location-file'); expect(thirdRowColumns[1]).toEqual('Local Filesystem'); expect(thirdRowColumns[2]).toEqual(''); // edit button expect( - thirdRow - .find(T.Cell) - .find(T.ActionButton) - .first() - .prop('disabled'), + thirdRow.find(T.Cell).find(T.ActionButton).first().prop('disabled'), ).toBeTruthy(); // delete button expect( - thirdRow - .find(T.Cell) - .find(T.ActionButton) - .at(1) - .prop('disabled'), + thirdRow.find(T.Cell).find(T.ActionButton).at(1).prop('disabled'), ).toBeTruthy(); - const fourthRow = rows.at(3); const fourthRowColumns = fourthRow .find(T.Cell) - .map(column => column.text()); + .map((column) => column.text()); expect(fourthRowColumns.length).toEqual(nbrOfColumnsExpectedWithoutXDM); expect(fourthRowColumns[0]).toEqual('location-hd'); expect(fourthRowColumns[1]).toEqual('Storage Service for ARTESCA'); expect(fourthRowColumns[2]).toEqual(''); // edit button expect( - fourthRow - .find(T.Cell) - .find(T.ActionButton) - .first() - .prop('disabled'), + fourthRow.find(T.Cell).find(T.ActionButton).first().prop('disabled'), ).toBeFalsy(); // delete button expect( - fourthRow - .find(T.Cell) - .find(T.ActionButton) - .at(1) - .prop('disabled'), + fourthRow.find(T.Cell).find(T.ActionButton).at(1).prop('disabled'), ).toBeFalsy(); - const fifthRow = rows.at(4); - const fifthRowColumns = fifthRow.find(T.Cell).map(column => column.text()); + const fifthRowColumns = fifthRow + .find(T.Cell) + .map((column) => column.text()); expect(fifthRowColumns.length).toEqual(nbrOfColumnsExpectedWithoutXDM); expect(fifthRowColumns[0]).toEqual('location-nfs'); expect(fifthRowColumns[1]).toEqual('NFS Mount'); expect(fifthRowColumns[2]).toEqual(''); // edit button expect( - fifthRow - .find(T.Cell) - .find(T.ActionButton) - .first() - .prop('disabled'), + fifthRow.find(T.Cell).find(T.ActionButton).first().prop('disabled'), ).toBeFalsy(); // delete button expect( - fifthRow - .find(T.Cell) - .find(T.ActionButton) - .at(1) - .prop('disabled'), + fifthRow.find(T.Cell).find(T.ActionButton).at(1).prop('disabled'), ).toBeFalsy(); - const sixthRow = rows.at(5); - const sixthRowColumns = sixthRow.find(T.Cell).map(column => column.text()); + const sixthRowColumns = sixthRow + .find(T.Cell) + .map((column) => column.text()); expect(sixthRowColumns.length).toEqual(nbrOfColumnsExpectedWithoutXDM); expect(sixthRowColumns[0]).toEqual('location-ring'); expect(sixthRowColumns[1]).toEqual('Scality RING with S3 Connector'); expect(sixthRowColumns[2]).toEqual('bucketName3'); // edit button expect( - sixthRow - .find(T.Cell) - .find(T.ActionButton) - .first() - .prop('disabled'), + sixthRow.find(T.Cell).find(T.ActionButton).first().prop('disabled'), ).toBeFalsy(); // delete button expect( - sixthRow - .find(T.Cell) - .find(T.ActionButton) - .at(1) - .prop('disabled'), + sixthRow.find(T.Cell).find(T.ActionButton).at(1).prop('disabled'), ).toBeFalsy(); - const seventhRow = rows.at(6); const seventhRowColumns = seventhRow .find(T.Cell) - .map(column => column.text()); + .map((column) => column.text()); expect(seventhRowColumns.length).toEqual(nbrOfColumnsExpectedWithoutXDM); expect(seventhRowColumns[0]).toEqual('location-sproxyd'); expect(seventhRowColumns[1]).toEqual('Scality RING with Sproxyd Connector'); expect(seventhRowColumns[2]).toEqual(''); // edit button expect( - seventhRow - .find(T.Cell) - .find(T.ActionButton) - .first() - .prop('disabled'), + seventhRow.find(T.Cell).find(T.ActionButton).first().prop('disabled'), ).toBeFalsy(); // delete button expect( - seventhRow - .find(T.Cell) - .find(T.ActionButton) - .at(1) - .prop('disabled'), + seventhRow.find(T.Cell).find(T.ActionButton).at(1).prop('disabled'), ).toBeFalsy(); }); - it('should disable delete location button if location is being used for replication when XDM feature is disabled', () => { const { component } = reduxMount(, { configuration: { latest: { - locations: { 'location-aws-s3': locationAwsS3 }, + locations: { + 'location-aws-s3': locationAwsS3, + }, endpoints: [], }, }, @@ -310,35 +245,26 @@ describe('Locations', () => { ], }, }); - expect(component.find('div#location-list')).toHaveLength(1); const rows = component.find(T.Row); expect(rows).toHaveLength(1); - const firstRow = rows.first(); - const firstRowColumns = firstRow.find(T.Cell).map(column => column.text()); + const firstRowColumns = firstRow + .find(T.Cell) + .map((column) => column.text()); expect(firstRowColumns.length).toEqual(nbrOfColumnsExpectedWithoutXDM); expect(firstRowColumns[0]).toEqual('location-aws-s3'); expect(firstRowColumns[1]).toEqual('Amazon S3'); expect(firstRowColumns[2]).toEqual('bucketName1'); // edit button expect( - firstRow - .find(T.Cell) - .find(T.ActionButton) - .first() - .prop('disabled'), + firstRow.find(T.Cell).find(T.ActionButton).first().prop('disabled'), ).toBeFalsy(); // delete button expect( - firstRow - .find(T.Cell) - .find(T.ActionButton) - .at(1) - .prop('disabled'), + firstRow.find(T.Cell).find(T.ActionButton).at(1).prop('disabled'), ).toBeTruthy(); }); - it('should disable delete location button if location is being used for replication when XDM feature is enabled', () => { const { component } = reduxMount(, { auth: { @@ -348,7 +274,9 @@ describe('Locations', () => { }, configuration: { latest: { - locations: { 'location-aws-s3': locationAwsS3 }, + locations: { + 'location-aws-s3': locationAwsS3, + }, endpoints: [], }, }, @@ -366,40 +294,33 @@ describe('Locations', () => { ], }, }); - expect(component.find('div#location-list')).toHaveLength(1); const rows = component.find(T.Row); expect(rows).toHaveLength(1); - const firstRow = rows.first(); - const firstRowColumns = firstRow.find(T.Cell).map(column => column.text()); + const firstRowColumns = firstRow + .find(T.Cell) + .map((column) => column.text()); expect(firstRowColumns.length).toEqual(nbrOfColumnsExpected); expect(firstRowColumns[0]).toEqual('location-aws-s3'); expect(firstRowColumns[1]).toEqual('Amazon S3'); expect(firstRowColumns[2]).toEqual('bucketName1'); // edit button expect( - firstRow - .find(T.Cell) - .find(T.ActionButton) - .first() - .prop('disabled'), + firstRow.find(T.Cell).find(T.ActionButton).first().prop('disabled'), ).toBeFalsy(); // delete button expect( - firstRow - .find(T.Cell) - .find(T.ActionButton) - .at(1) - .prop('disabled'), + firstRow.find(T.Cell).find(T.ActionButton).at(1).prop('disabled'), ).toBeTruthy(); }); - it('should disable delete location button if location is attached to a bucket', () => { const { component } = reduxMount(, { configuration: { latest: { - locations: { 'location-aws-s3': locationAwsS3 }, + locations: { + 'location-aws-s3': locationAwsS3, + }, endpoints: [], }, }, @@ -415,40 +336,33 @@ describe('Locations', () => { replications: [], }, }); - expect(component.find('div#location-list')).toHaveLength(1); const rows = component.find(T.Row); expect(rows).toHaveLength(1); - const firstRow = rows.first(); - const firstRowColumns = firstRow.find(T.Cell).map(column => column.text()); + const firstRowColumns = firstRow + .find(T.Cell) + .map((column) => column.text()); expect(firstRowColumns.length).toEqual(nbrOfColumnsExpectedWithoutXDM); expect(firstRowColumns[0]).toEqual('location-aws-s3'); expect(firstRowColumns[1]).toEqual('Amazon S3'); expect(firstRowColumns[2]).toEqual('bucketName1'); // edit button expect( - firstRow - .find(T.Cell) - .find(T.ActionButton) - .first() - .prop('disabled'), + firstRow.find(T.Cell).find(T.ActionButton).first().prop('disabled'), ).toBeFalsy(); // delete button expect( - firstRow - .find(T.Cell) - .find(T.ActionButton) - .at(1) - .prop('disabled'), + firstRow.find(T.Cell).find(T.ActionButton).at(1).prop('disabled'), ).toBeTruthy(); }); - it('should disable delete location button if location is being used for endpoint', () => { const { component } = reduxMount(, { configuration: { latest: { - locations: { 'location-aws-s3': locationAwsS3 }, + locations: { + 'location-aws-s3': locationAwsS3, + }, endpoints: [ { hostname: 'host1', @@ -461,32 +375,24 @@ describe('Locations', () => { replications: [], }, }); - expect(component.find('div#location-list')).toHaveLength(1); const rows = component.find(T.Row); expect(rows).toHaveLength(1); - const firstRow = rows.first(); - const firstRowColumns = firstRow.find(T.Cell).map(column => column.text()); + const firstRowColumns = firstRow + .find(T.Cell) + .map((column) => column.text()); expect(firstRowColumns.length).toEqual(nbrOfColumnsExpectedWithoutXDM); expect(firstRowColumns[0]).toEqual('location-aws-s3'); expect(firstRowColumns[1]).toEqual('Amazon S3'); expect(firstRowColumns[2]).toEqual('bucketName1'); // edit button expect( - firstRow - .find(T.Cell) - .find(T.ActionButton) - .first() - .prop('disabled'), + firstRow.find(T.Cell).find(T.ActionButton).first().prop('disabled'), ).toBeFalsy(); // delete button expect( - firstRow - .find(T.Cell) - .find(T.ActionButton) - .at(1) - .prop('disabled'), + firstRow.find(T.Cell).find(T.ActionButton).at(1).prop('disabled'), ).toBeTruthy(); }); -}); +}); \ No newline at end of file diff --git a/src/react/backend/location/constants.js b/src/react/backend/location/constants.ts similarity index 98% rename from src/react/backend/location/constants.js rename to src/react/backend/location/constants.ts index a8a044fda..640e82eee 100644 --- a/src/react/backend/location/constants.js +++ b/src/react/backend/location/constants.ts @@ -1,5 +1,3 @@ -// @flow - export const NFS_OPT_CONFLICT = { soft: 'hard', hard: 'soft', @@ -22,7 +20,6 @@ export const NFS_OPT_CONFLICT = { rw: 'ro', ro: 'rw', }; - const NFS_OPTIONS = { sync: true, async: true, @@ -59,7 +56,6 @@ const NFS_OPTIONS = { fsc: true, nofsc: true, }; - export const NFS_V3_OPTIONS = Object.assign({}, NFS_OPTIONS, { proto: true, udp: true, @@ -79,7 +75,6 @@ export const NFS_V3_OPTIONS = Object.assign({}, NFS_OPTIONS, { noacl: true, local_lock: true, }); - export const NFS_V3_CONFLICTS = { lock: 'nolock', nolock: 'lock', @@ -88,7 +83,6 @@ export const NFS_V3_CONFLICTS = { acl: 'noacl', noacl: 'acl', }; - export const NFS_V4_OPTIONS = Object.assign({}, NFS_OPTIONS, { proto: true, prot: true, @@ -98,8 +92,7 @@ export const NFS_V4_OPTIONS = Object.assign({}, NFS_OPTIONS, { migration: true, nomigration: true, }); - export const NFS_V4_CONFLICTS = { migration: 'nomigration', nomigration: 'migration', -}; +}; \ No newline at end of file diff --git a/src/react/backend/location/locationFormCheck.js b/src/react/backend/location/locationFormCheck.ts similarity index 75% rename from src/react/backend/location/locationFormCheck.js rename to src/react/backend/location/locationFormCheck.ts index 587a84ee5..1febea162 100644 --- a/src/react/backend/location/locationFormCheck.js +++ b/src/react/backend/location/locationFormCheck.ts @@ -6,28 +6,38 @@ import { NFS_V4_OPTIONS, } from './constants'; import urlParse from 'url-parse'; - const v3ConflictOpts = Object.assign({}, NFS_OPT_CONFLICT, NFS_V3_CONFLICTS); const v4ConflictOpts = Object.assign({}, NFS_OPT_CONFLICT, NFS_V4_CONFLICTS); function _getNFSTestOptions(version) { if (version === 'v3') { - return { conflictMap: v3ConflictOpts, optionsMap: NFS_V3_OPTIONS }; + return { + conflictMap: v3ConflictOpts, + optionsMap: NFS_V3_OPTIONS, + }; } + if (version === 'v4') { - return { conflictMap: v4ConflictOpts, optionsMap: NFS_V4_OPTIONS }; + return { + conflictMap: v4ConflictOpts, + optionsMap: NFS_V4_OPTIONS, + }; } } function _checkNFSDetails(details) { if (!details.endpoint) { - return { disable: true }; + return { + disable: true, + }; } - const { protocol: scheme, host, pathname: path, query } = urlParse( - details.endpoint, - ); - + const { + protocol: scheme, + host, + pathname: path, + query, + } = urlParse(details.endpoint); const [protocol, version] = scheme.slice(0, -1).split('+'); if (protocol !== 'udp' && protocol !== 'tcp') { @@ -45,11 +55,17 @@ function _checkNFSDetails(details) { } if (!host) { - return { disable: true, errorMessage: '' }; // return no error, incomplete form + return { + disable: true, + errorMessage: '', + }; // return no error, incomplete form } if (!path) { - return { disable: true, errorMessage: 'Error: Invalid path' }; + return { + disable: true, + errorMessage: 'Error: Invalid path', + }; } if (!query) { @@ -57,26 +73,32 @@ function _checkNFSDetails(details) { } const options = query.slice(1); - const optMap = {}; + const { conflictMap, optionsMap } = _getNFSTestOptions(version); - for (let o of options.split(',')) { + + for (const o of options.split(',')) { const [opt] = o.split('='); + if (!optionsMap[opt]) { return { disable: true, errorMessage: `Error: Invalid NFS ${version} option "${opt}"`, }; } + const antiOpt = conflictMap[opt]; + if (optMap[antiOpt]) { return { disable: true, errorMessage: `Error: "${opt}" and "${antiOpt}" cannot be set together`, }; } + optMap[opt] = true; } + return null; } @@ -84,6 +106,7 @@ function _checkLocationDetails(type, details) { switch (type) { case 'location-nfs-mount-v1': return _checkNFSDetails(details); + default: return null; } @@ -91,28 +114,44 @@ function _checkLocationDetails(type, details) { function _checkAdvancedOptions(options) { const { isSizeLimitChecked, sizeLimitGB } = options; + if (!isSizeLimitChecked) { return null; } + if (!sizeLimitGB) { - return { disable: true, errorMessage: '' }; + return { + disable: true, + errorMessage: '', + }; } + const val = parseInt(sizeLimitGB, 10); + if (val <= 0 || isNaN(val)) { return { disable: true, errorMessage: 'Error: Size limit must be greater than 0.', }; } + return null; } function locationFormCheck(location) { const optionsError = _checkAdvancedOptions(location.options); + const type = location.locationType; + const locationError = _checkLocationDetails(type, location.details || {}); - return locationError || optionsError || { disable: false, errorMessage: '' }; + return ( + locationError || + optionsError || { + disable: false, + errorMessage: '', + } + ); } export default locationFormCheck; diff --git a/src/react/backend/location/utils.js b/src/react/backend/location/utils.tsx similarity index 92% rename from src/react/backend/location/utils.js rename to src/react/backend/location/utils.tsx index 7ae8d8fd3..510a1aae1 100644 --- a/src/react/backend/location/utils.js +++ b/src/react/backend/location/utils.tsx @@ -1,5 +1,4 @@ -// @flow - +import { $PropertyType } from 'utility-types'; import React from 'react'; import { HelpAsyncNotifPending } from '../../ui-elements/Help'; import type { @@ -21,7 +20,7 @@ import { pauseIngestionSite, resumeIngestionSite } from '../../actions/zenko'; import { ActionButton } from '../../ui-elements/Table'; import type { BucketInfo } from '../../../types/s3'; type RowProps = { - original: Location, + original: Location; }; function newLocationDetails(): Location { @@ -108,59 +107,69 @@ function canDeleteLocation( if (!locationName) { return false; } + const isBuiltin = locations[locationName] && locations[locationName].isBuiltin; + if (isBuiltin) { return false; } - const checkStreamLocations = replicationStreams.every(r => { - // legacy $FlowFixMe + + const checkStreamLocations = replicationStreams.every((r) => { if (r.destination.location) { return r.destination.location !== locationName; } - return r.destination.locations.every(destLocation => { + + return r.destination.locations.every((destLocation) => { return destLocation.name !== locationName; }); }); + if (!checkStreamLocations) { return false; } + const checkBucketLocations = buckets.every( - bucket => bucket.location !== locationName, + (bucket) => bucket.location !== locationName, ); + if (!checkBucketLocations) { return false; } + const checkEndpointLocations = endpoints.every( - e => e.locationName !== locationName, + (e) => e.locationName !== locationName, ); + if (!checkEndpointLocations) { return false; } + return true; } function isLocationExists(location: string): boolean { - return Object.keys(storageOptions).some(opt => opt === location); + return Object.keys(storageOptions).some((opt) => opt === location); } const IngestionCell = ( - ingestionStates: ?WorkflowScheduleUnitState, + ingestionStates: WorkflowScheduleUnitState | null | undefined, capabilities: $PropertyType, loading: boolean, - dispatch: function, + dispatch: any, ) => ({ value: locationName, row: { original }, }: { - value: LocationName, - row: RowProps, + value: LocationName; + row: RowProps; }) => { const ingestion = ingestionStates && ingestionStates[locationName] && ingestionStates[locationName]; const isIngestionPending = isIngestLocation(original, capabilities); + if (isIngestionPending) { if (ingestion) { if (ingestion === 'enabled') { @@ -180,6 +189,7 @@ const IngestionCell = ( ); } + if (ingestion === 'disabled') { return ( <> @@ -198,19 +208,20 @@ const IngestionCell = ( ); } } + return ( <> Pending ); } + return '-'; }; function convertToBucketInfo(bucketInfo: BucketInfo | null) { const objectLockEnabled = bucketInfo?.objectLockConfiguration.ObjectLockEnabled; - const isDefaultRetentionEnabled = bucketInfo?.objectLockConfiguration.Rule ?.DefaultRetention ? true @@ -226,7 +237,6 @@ function convertToBucketInfo(bucketInfo: BucketInfo | null) { .Rule?.DefaultRetention?.Years ? 'YEARS' : 'DAYS'; - return { objectLockEnabled, isDefaultRetentionEnabled, diff --git a/src/react/databrowser/DataBrowser.jsx b/src/react/databrowser/DataBrowser.tsx similarity index 99% rename from src/react/databrowser/DataBrowser.jsx rename to src/react/databrowser/DataBrowser.tsx index 34b890c8c..c1078ebdf 100644 --- a/src/react/databrowser/DataBrowser.jsx +++ b/src/react/databrowser/DataBrowser.tsx @@ -1,4 +1,3 @@ -// @flow import * as L from '../ui-elements/ListLayout2'; import { Route, Switch, useLocation } from 'react-router-dom'; import { useDispatch, useSelector } from 'react-redux'; @@ -15,7 +14,6 @@ import { clearError } from '../actions'; import { push } from 'connected-react-router'; import ObjectLockSetting from './buckets/ObjectLockSetting'; import ObjectLockSettingOnObject from './objects/ObjectLockSetting'; - export default function DataBrowser() { const dispatch = useDispatch(); const accountName = useSelector( @@ -65,6 +63,7 @@ export default function DataBrowser() { ); } + return ( @@ -101,4 +100,4 @@ export default function DataBrowser() { ); -} +} \ No newline at end of file diff --git a/src/react/databrowser/HeaderButtons.jsx b/src/react/databrowser/HeaderButtons.jsx deleted file mode 100644 index d60736568..000000000 --- a/src/react/databrowser/HeaderButtons.jsx +++ /dev/null @@ -1,39 +0,0 @@ -import React, { useMemo } from 'react'; -import { matchPath, useLocation, useParams } from 'react-router-dom'; -import { Button } from '@scality/core-ui/dist/next'; -import { ButtonsContainer } from '../ui-elements/Container'; -import { listBuckets } from '../actions/s3bucket'; -import { listObjects } from '../actions/s3object'; -import { useDispatch } from 'react-redux'; - -export function RefreshButton() { - const { bucketName } = useParams(); - const { pathname } = useLocation(); - const dispatch = useDispatch(); - const isBrowsingObjects = !!matchPath(pathname, '/buckets/:bucketName/objects'); - const prefixWithSlash = useMemo(() => { - const splittedPath = pathname.split('objects/'); - if (splittedPath.length < 2 || splittedPath[1].length === 0) { - return ''; - } else { - const prefix = splittedPath[1].slice(-1) === '/' ? splittedPath[1] : `${splittedPath[1]}/`; - return prefix; - } - }, [ pathname ]); - - const handleRefreshClick = () => { - if (isBrowsingObjects) { - dispatch(listObjects(bucketName, prefixWithSlash)); - } else { - dispatch(listBuckets()); - } - }; - - return
- {headerGroups.map(headerGroup => ( + {headerGroups.map((headerGroup) => ( - {headerGroup.headers.map(column => { + {headerGroup.headers.map((column) => { const headerProps = column.getHeaderProps( - column.getSortByToggleProps({ title: '' }), + column.getSortByToggleProps({ + title: '', + }), ); return ( - {({ height, width }) => ( - // ISSUE: https://github.com/bvaughn/react-window/issues/504 - // eslint-disable-next-line flowtype-errors/show-errors + {( + { height, width }, // ISSUE: https://github.com/bvaughn/react-window/issues/504 + ) => ( void; - +type PrepareRow = (arg0: RowType) => void; type RowType = { - id: number, - original: S3Bucket, - cells: any, - getRowProps: any => void, + id: number; + original: S3Bucket; + cells: any; + getRowProps: (arg0: any) => void; }; - type RowsType = Array; - type Data = { - rows: RowsType, - prepareRow: PrepareRow, - selectedBucketName: ?string, - dispatch: DispatchAPI, + rows: RowsType; + prepareRow: PrepareRow; + selectedBucketName: string | null | undefined; + dispatch: DispatchAPI; }; - type RowProps = { - data: Data, - index: number, - style: Object, + data: Data; + index: number; + style: Record; }; - // createItemData: This helper function memoizes incoming props, // To avoid causing unnecessary re-renders pure MemoRow components. // This is only needed since we are passing multiple props with a wrapper object. @@ -41,7 +33,7 @@ export const createItemData = memoize( ( rows: RowsType, prepareRow: PrepareRow, - selectedBucketName: ?string, + selectedBucketName: string | null | undefined, dispatch: DispatchAPI, ): Data => ({ rows, @@ -70,9 +62,11 @@ const Row = ({ dispatch(push(`/buckets/${bucketName}`)); } }} - {...row.getRowProps({ style })} + {...row.getRowProps({ + style, + })} > - {row.cells.map(cell => { + {row.cells.map((cell) => { const cellProps = cell.getCellProps(); return ( state.s3.listBucketsResults.list, ); @@ -27,7 +24,7 @@ export default function Buckets() { ); const { bucketName: bucketNameParam } = useParams(); const bucketIndex = useMemo( - () => buckets.findIndex(b => b.Name === bucketNameParam), + () => buckets.findIndex((b) => b.Name === bucketNameParam), [buckets, bucketNameParam], ); const bucket = bucketIndex >= 0 ? buckets.get(bucketIndex) : null; @@ -70,4 +67,4 @@ export default function Buckets() { ); -} +} \ No newline at end of file diff --git a/src/react/databrowser/buckets/ObjectLockRetentionSettings.test.jsx b/src/react/databrowser/buckets/ObjectLockRetentionSettings.test.tsx similarity index 89% rename from src/react/databrowser/buckets/ObjectLockRetentionSettings.test.jsx rename to src/react/databrowser/buckets/ObjectLockRetentionSettings.test.tsx index af46aa00e..1600ec1be 100644 --- a/src/react/databrowser/buckets/ObjectLockRetentionSettings.test.jsx +++ b/src/react/databrowser/buckets/ObjectLockRetentionSettings.test.tsx @@ -3,12 +3,10 @@ import { FormProvider, useForm } from 'react-hook-form'; import ObjectLockRetentionSettings from './ObjectLockRetentionSettings'; import { reduxMountAct } from '../../../utils/test'; import { act } from 'react-dom/test-utils'; - describe('ObjectLockRetentionSettings', () => { it('should enable retention settings when default retention is checked', async () => { const Form = () => { const methods = useForm(); - return ( @@ -17,17 +15,16 @@ describe('ObjectLockRetentionSettings', () => { }; const component = await reduxMountAct(
); - await act(async () => { const objectLockDefaultRetentionEnabled = component.find( 'input[placeholder="isDefaultRetentionEnabled"]', ); - objectLockDefaultRetentionEnabled.simulate('change', { - target: { checked: true }, + target: { + checked: true, + }, }); }); - expect( component.find('input[value="GOVERNANCE"]').getDOMNode().disabled, ).toBe(false); @@ -43,16 +40,18 @@ describe('ObjectLockRetentionSettings', () => { .getDOMNode().disabled, ).toBe(false); }); - it('should display retention period error message', async () => { const Form = () => { const methods = useForm(); - return ( @@ -61,19 +60,18 @@ describe('ObjectLockRetentionSettings', () => { }; const component = await reduxMountAct(); - await act(async () => { const objectLockDefaultRetentionEnabled = component.find( 'input[placeholder="isDefaultRetentionEnabled"]', ); - objectLockDefaultRetentionEnabled.simulate('change', { - target: { checked: true }, + target: { + checked: true, + }, }); }); - expect(component.find('#error-retentionPeriod').text()).toContain( 'Expected error', ); }); -}); +}); \ No newline at end of file diff --git a/src/react/databrowser/buckets/ObjectLockRetentionSettings.jsx b/src/react/databrowser/buckets/ObjectLockRetentionSettings.tsx similarity index 88% rename from src/react/databrowser/buckets/ObjectLockRetentionSettings.jsx rename to src/react/databrowser/buckets/ObjectLockRetentionSettings.tsx index 729f60463..2b2c3d3be 100644 --- a/src/react/databrowser/buckets/ObjectLockRetentionSettings.jsx +++ b/src/react/databrowser/buckets/ObjectLockRetentionSettings.tsx @@ -7,7 +7,6 @@ import { spacing } from '@scality/core-ui/dist/style/theme'; import * as F from '../../ui-elements/FormLayout'; import React from 'react'; import Joi from '@hapi/joi'; - export const objectLockRetentionSettingsValidationRules = { isDefaultRetentionEnabled: Joi.boolean().default(false), retentionMode: Joi.when('isDefaultRetentionEnabled', { @@ -26,15 +25,12 @@ export const objectLockRetentionSettingsValidationRules = { otherwise: Joi.valid(), }), }; - export default function ObjectLockRetentionSettings(props: { - isEditRetentionSetting?: boolean, + isEditRetentionSetting?: boolean; }) { const { isEditRetentionSetting } = props; const { control, register, watch, errors } = useFormContext(); - const isDefaultRetentionEnabled = watch('isDefaultRetentionEnabled'); - return ( <> @@ -61,7 +57,7 @@ export default function ObjectLockRetentionSettings(props: { render={({ onChange, value: isDefaultRetentionEnabled }) => { return ( onChange(e.target.checked)} + onChange={(e) => onChange(e.target.checked)} placeholder="isDefaultRetentionEnabled" label={isDefaultRetentionEnabled ? 'Active' : 'Inactive'} toggle={isDefaultRetentionEnabled} @@ -76,7 +72,11 @@ export default function ObjectLockRetentionSettings(props: { or overwritten. -
+
Retention mode - + - + onChange(e.target.value)} + onChange={(e) => onChange(e.target.value)} type="number" - style={{ width: spacing.sp40 }} + style={{ + width: spacing.sp40, + }} min={1} disabled={!isDefaultRetentionEnabled} /> @@ -149,7 +161,12 @@ export default function ObjectLockRetentionSettings(props: { />
- + ); -} +} \ No newline at end of file diff --git a/src/react/databrowser/buckets/ObjectLockSetting.jsx b/src/react/databrowser/buckets/ObjectLockSetting.tsx similarity index 97% rename from src/react/databrowser/buckets/ObjectLockSetting.jsx rename to src/react/databrowser/buckets/ObjectLockSetting.tsx index 83b64bde4..7db9a97a2 100644 --- a/src/react/databrowser/buckets/ObjectLockSetting.jsx +++ b/src/react/databrowser/buckets/ObjectLockSetting.tsx @@ -1,4 +1,3 @@ -//@flow import React, { useEffect } from 'react'; import { FormProvider, useForm } from 'react-hook-form'; import { Button } from '@scality/core-ui/dist/next'; @@ -15,9 +14,7 @@ import { push } from 'connected-react-router'; import type { AppState } from '../../../types/state'; import { Banner } from '@scality/core-ui'; import { convertToBucketInfo } from '../../backend/location/utils'; - const schema = Joi.object(objectLockRetentionSettingsValidationRules); - export default function ObjectLockSetting() { const bucketInfo = useSelector((state: AppState) => state.s3.bucketInfo); const hasError = useSelector( @@ -27,7 +24,6 @@ export default function ObjectLockSetting() { const errorMessage = useSelector( (state: AppState) => state.uiErrors.errorMsg, ); - const { objectLockEnabled, isDefaultRetentionEnabled, @@ -35,7 +31,6 @@ export default function ObjectLockSetting() { retentionPeriod, retentionPeriodFrequencyChoice, } = convertToBucketInfo(bucketInfo); - const isObjectLockEnabled = objectLockEnabled === 'Enabled'; const useFormMethods = useForm({ mode: 'all', @@ -53,6 +48,7 @@ export default function ObjectLockSetting() { dispatch(clearError()); } }; + const handleCancel = () => { clearServerError(); dispatch(push('/buckets')); @@ -69,8 +65,12 @@ export default function ObjectLockSetting() { clearServerError(); const retentionPeriodToSubmit = retentionPeriodFrequencyChoice === 'DAYS' - ? { days: retentionPeriod } - : { years: retentionPeriod }; + ? { + days: retentionPeriod, + } + : { + years: retentionPeriod, + }; dispatch( editDefaultRetention(bucketName, { isDefaultRetentionEnabled, @@ -79,9 +79,9 @@ export default function ObjectLockSetting() { }), ); }; + const { handleSubmit, setValue, formState } = useFormMethods; const { isValid } = formState; - const dispatch = useDispatch(); useEffect(() => { if (bucketInfo?.name !== bucketName) dispatch(getBucketInfo(bucketName)); @@ -95,7 +95,6 @@ export default function ObjectLockSetting() { ); } }, [dispatch, bucketName, bucketInfo?.name]); - return ( @@ -155,4 +154,4 @@ export default function ObjectLockSetting() { ); -} +} \ No newline at end of file diff --git a/src/react/databrowser/buckets/__tests__/BucketCreate.test.jsx b/src/react/databrowser/buckets/__tests__/BucketCreate.test.tsx similarity index 94% rename from src/react/databrowser/buckets/__tests__/BucketCreate.test.jsx rename to src/react/databrowser/buckets/__tests__/BucketCreate.test.tsx index 1a2a23db6..a896e3123 100644 --- a/src/react/databrowser/buckets/__tests__/BucketCreate.test.jsx +++ b/src/react/databrowser/buckets/__tests__/BucketCreate.test.tsx @@ -3,13 +3,10 @@ import React from 'react'; import { act } from 'react-dom/test-utils'; import { reduxMountAct } from '../../../utils/test'; import { XDM_FEATURE } from '../../../../js/config'; - describe('BucketCreate', () => { const errorMessage = 'This is an error test message'; - it('should render BucketCreate component with no error banner', async () => { const component = await reduxMountAct(); - expect(component.find('#zk-error-banner')).toHaveLength(0); // react-hook-form is set to validate on change. // UseForm hook will update state multiple time and component @@ -20,7 +17,6 @@ describe('BucketCreate', () => { // The hook will clean up properly if unmounted component.unmount(); }); - it('should render BucketCreate component with an error banner', async () => { const component = await reduxMountAct(, { uiErrors: { @@ -28,17 +24,14 @@ describe('BucketCreate', () => { errorType: 'byComponent', }, }); - expect(component.find('#zk-error-banner')).toHaveLength(1); expect(component.find('#zk-error-banner').text()).toContain(errorMessage); component.unmount(); }); - // TESTING INPUT NAME: // 1) empty name input // 2) name input < 3 characters // 3) name input > 63 characters - const tests = [ { description: @@ -89,16 +82,13 @@ describe('BucketCreate', () => { expectedMaxLengthNameError: null, }, ]; - - tests.forEach(t => { + tests.forEach((t) => { it(t.description, async () => { const component = await reduxMountAct(); - await act(async () => { const input = component.find('input#name'); input.getDOMNode().value = t.testValue; input.getDOMNode().dispatchEvent(new Event('input')); - component.find('form').simulate('submit'); }); @@ -119,59 +109,60 @@ describe('BucketCreate', () => { t.expectedPAtternNameError, ); } + component.unmount(); }); }); - it('should toggle versioning and disable it when enabling object lock', async () => { const component = await reduxMountAct(); - await act(async () => { const input = component.find('input#name'); input.getDOMNode().value = 'test'; input.getDOMNode().dispatchEvent(new Event('input')); - const objectLockEnabled = component.find( 'input[placeholder="isObjectLockEnabled"]', ); - - objectLockEnabled.simulate('change', { target: { checked: true } }); + objectLockEnabled.simulate('change', { + target: { + checked: true, + }, + }); }); - expect( component.find('input[placeholder="Versioning"]').getDOMNode().checked, ).toBe(true); expect( component.find('input[placeholder="Versioning"]').getDOMNode().disabled, ).toBe(true); - component.unmount(); }); - it('should toggle versioning and disable it when enabling Async Metadata updates', async () => { const component = await reduxMountAct(, { - auth: { config: { features: [XDM_FEATURE] } }, + auth: { + config: { + features: [XDM_FEATURE], + }, + }, }); - await act(async () => { const input = component.find('input#name'); input.getDOMNode().value = 'test'; input.getDOMNode().dispatchEvent(new Event('input')); - const isAsyncNotification = component.find( 'input[placeholder="isAsyncNotification"]', ); - - isAsyncNotification.simulate('change', { target: { checked: true } }); + isAsyncNotification.simulate('change', { + target: { + checked: true, + }, + }); }); - expect( component.find('input[placeholder="Versioning"]').getDOMNode().checked, ).toBe(true); expect( component.find('input[placeholder="Versioning"]').getDOMNode().disabled, ).toBe(true); - component.unmount(); }); -}); +}); \ No newline at end of file diff --git a/src/react/databrowser/buckets/__tests__/BucketList.test.jsx b/src/react/databrowser/buckets/__tests__/BucketList.test.tsx similarity index 97% rename from src/react/databrowser/buckets/__tests__/BucketList.test.jsx rename to src/react/databrowser/buckets/__tests__/BucketList.test.tsx index c9c645a48..865667949 100644 --- a/src/react/databrowser/buckets/__tests__/BucketList.test.jsx +++ b/src/react/databrowser/buckets/__tests__/BucketList.test.tsx @@ -6,7 +6,6 @@ import { Row } from '../../../ui-elements/Table'; import { formatShortDate } from '../../../utils'; import { reduxMount } from '../../../utils/test'; import { XDM_FEATURE } from '../../../../js/config'; - describe('BucketList', () => { const buckets = List([ { @@ -21,11 +20,9 @@ describe('BucketList', () => { }, ]); const selectedBucketName = 'bucket2'; - const ingestionStates = { 's3c-ring': 'enabled', }; - it('should list buckets with the data associated when XDM feature is enabled', () => { const { component } = reduxMount( @@ -49,7 +46,14 @@ describe('BucketList', () => { ingestionStates={ingestionStates} /> , - { auth: { config: { features: [XDM_FEATURE] } } }); + { + auth: { + config: { + features: [XDM_FEATURE], + }, + }, + }, + ); const rows = component.find(Row); const firstRow = rows.first(); const firstBucketCellLink = firstRow.find('Cell').at(0); @@ -62,7 +66,6 @@ describe('BucketList', () => { expect(firstBucketCellDate.text()).toBe( formatShortDate(new Date(buckets.get(0).CreationDate)), ); - const secondRow = rows.at(1); const secondBucketCellLink = secondRow.find('Cell').at(0); const secondBucketCellLocation = secondRow.find('Cell').at(1); @@ -77,7 +80,6 @@ describe('BucketList', () => { formatShortDate(new Date(buckets.get(1).CreationDate)), ); }); - it('should list buckets with the data associated when XDM feature is disabled', () => { const { component } = reduxMount( @@ -112,7 +114,6 @@ describe('BucketList', () => { expect(firstBucketCellDate.text()).toBe( formatShortDate(new Date(buckets.get(0).CreationDate)), ); - const secondRow = rows.at(1); const secondBucketCellLink = secondRow.find('Cell').at(0); const secondBucketCellLocation = secondRow.find('Cell').at(1); @@ -125,7 +126,6 @@ describe('BucketList', () => { formatShortDate(new Date(buckets.get(1).CreationDate)), ); }); - it('should select row if the bucket name specified in the parameter matches one of the bucket names listed', () => { const { component } = reduxMount( @@ -136,27 +136,22 @@ describe('BucketList', () => { /> , ); - const rows = component.find(Row); const firstRow = rows.first(); expect(firstRow.prop('isSelected')).toBe(false); - const secondRow = rows.at(1); expect(secondRow.prop('isSelected')).toBe(true); }); - it('should select no row if there is no bucket name specified in the parameter', () => { const { component } = reduxMount( , ); - const rows = component.find(Row); const firstRow = rows.first(); expect(firstRow.prop('isSelected')).toBe(false); - const secondRow = rows.at(1); expect(secondRow.prop('isSelected')).toBe(false); }); -}); +}); \ No newline at end of file diff --git a/src/react/databrowser/buckets/__tests__/Buckets.test.jsx b/src/react/databrowser/buckets/__tests__/Buckets.test.tsx similarity index 87% rename from src/react/databrowser/buckets/__tests__/Buckets.test.jsx rename to src/react/databrowser/buckets/__tests__/Buckets.test.tsx index 2d63844ea..a23e58a97 100644 --- a/src/react/databrowser/buckets/__tests__/Buckets.test.jsx +++ b/src/react/databrowser/buckets/__tests__/Buckets.test.tsx @@ -8,7 +8,6 @@ import { MemoryRouter } from 'react-router-dom'; import { OWNER_NAME } from '../../../actions/__tests__/utils/testUtil'; import React from 'react'; import { reduxMount } from '../../../utils/test'; - describe('Buckets', () => { const buckets = [ { @@ -22,18 +21,19 @@ describe('Buckets', () => { Name: 'bucket2', }, ]; - it('should display EmptyStateContainer if no bucket is present', () => { - jest.spyOn(router, 'useParams').mockReturnValue({ bucketName: '' }); + jest.spyOn(router, 'useParams').mockReturnValue({ + bucketName: '', + }); const { component } = reduxMount(); - expect(component.find('Warning').prop('title')).toBe( 'Create your first bucket.', ); }); - it('should redirect to the first bucket if no bucket is selected', () => { - jest.spyOn(router, 'useParams').mockReturnValue({ bucketName: '' }); + jest.spyOn(router, 'useParams').mockReturnValue({ + bucketName: '', + }); const { component } = reduxMount( @@ -47,12 +47,12 @@ describe('Buckets', () => { }, }, ); - expect(component.find(Redirect)).toHaveLength(1); }); - it('should render the component', () => { - jest.spyOn(router, 'useParams').mockReturnValue({ bucketName: 'bucket1' }); + jest.spyOn(router, 'useParams').mockReturnValue({ + bucketName: 'bucket1', + }); const { component } = reduxMount( @@ -65,9 +65,8 @@ describe('Buckets', () => { }, }, ); - expect(component.find(Header)).toHaveLength(1); expect(component.find(BucketList)).toHaveLength(1); expect(component.find(BucketDetails)).toHaveLength(1); }); -}); +}); \ No newline at end of file diff --git a/src/react/databrowser/buckets/__tests__/ObjectLockSetting.test.jsx b/src/react/databrowser/buckets/__tests__/ObjectLockSetting.test.tsx similarity index 99% rename from src/react/databrowser/buckets/__tests__/ObjectLockSetting.test.jsx rename to src/react/databrowser/buckets/__tests__/ObjectLockSetting.test.tsx index b54905308..392c7778f 100644 --- a/src/react/databrowser/buckets/__tests__/ObjectLockSetting.test.jsx +++ b/src/react/databrowser/buckets/__tests__/ObjectLockSetting.test.tsx @@ -2,17 +2,14 @@ import React from 'react'; import { MemoryRouter, Route, Switch } from 'react-router'; import { reduxMountAct } from '../../../utils/test'; import ObjectLockSetting from '../ObjectLockSetting'; - describe('ObjectLockSetting', () => { const errorMessage = 'This is an error test message'; - it('should render ObjectLockSetting component with no error banner', async () => { const component = await reduxMountAct( , ); - expect(component.find('#zk-error-banner')).toHaveLength(0); // react-hook-form is set to validate on change. // UseForm hook will update state multiple time and component @@ -23,7 +20,6 @@ describe('ObjectLockSetting', () => { // The hook will clean up properly if unmounted component.unmount(); }); - it('should render ObjectLockSetting component with an error banner', async () => { const component = await reduxMountAct( @@ -36,12 +32,10 @@ describe('ObjectLockSetting', () => { }, }, ); - expect(component.find('#zk-error-banner')).toHaveLength(1); expect(component.find('#zk-error-banner').text()).toContain(errorMessage); component.unmount(); }); - it('should render ObjectLockSetting component with current data filled', async () => { const component = await reduxMountAct( @@ -68,22 +62,18 @@ describe('ObjectLockSetting', () => { }, }, ); - expect(component.find('[data-test-id="object-lock-enabled"]').text()).toBe( 'Enabled', ); - expect( component.find('input[value="GOVERNANCE"]').getDOMNode().checked, ).toBe(true); - expect( component.find('input[name="retentionPeriod"]').getDOMNode().value, ).toBe('1'); expect(component.find('input[name="sc-select"]').getDOMNode().value).toBe( 'DAYS', ); - component.unmount(); }); -}); +}); \ No newline at end of file diff --git a/src/react/databrowser/buckets/details/Overview.jsx b/src/react/databrowser/buckets/details/Overview.tsx similarity index 91% rename from src/react/databrowser/buckets/details/Overview.jsx rename to src/react/databrowser/buckets/details/Overview.tsx index f1faf4cb1..69672cbba 100644 --- a/src/react/databrowser/buckets/details/Overview.jsx +++ b/src/react/databrowser/buckets/details/Overview.tsx @@ -1,4 +1,3 @@ -// @flow import React, { useEffect } from 'react'; import Table, * as T from '../../../ui-elements/TableKeyValue2'; import { @@ -30,7 +29,7 @@ import { push } from 'connected-react-router'; import { XDM_FEATURE } from '../../../../js/config'; function capitalize(string) { - return string.toLowerCase().replace(/^\w/, c => { + return string.toLowerCase().replace(/^\w/, (c) => { return c.toUpperCase(); }); } @@ -51,6 +50,7 @@ function getDefaultBucketRetention(bucketInfo: BucketInfo): string { bucketInfo.objectLockConfiguration.Rule.DefaultRetention.Mode, )} - ${retentionPeriod}`; } + return 'Inactive'; } @@ -62,18 +62,21 @@ function canDeleteBucket( if (loading) { return false; } - const checkBucketStream = replicationStreams.find(r => { + + const checkBucketStream = replicationStreams.find((r) => { return r.source.bucketName === bucketName; }); + if (checkBucketStream) { return false; } + return true; } type Props = { - bucket: S3Bucket, - ingestionStates: ?WorkflowScheduleUnitState, + bucket: S3Bucket; + ingestionStates: WorkflowScheduleUnitState | null | undefined; }; function Overview({ bucket, ingestionStates }: Props) { @@ -93,7 +96,6 @@ function Overview({ bucket, ingestionStates }: Props) { (state: AppState) => state.workflow.replications, ); const features = useSelector((state: AppState) => state.auth.config.features); - useEffect(() => { dispatch(getBucketInfo(bucket.Name)); }, [dispatch, bucket.Name]); @@ -102,6 +104,7 @@ function Overview({ bucket, ingestionStates }: Props) { if (!bucket) { return; } + dispatch(openBucketDeleteDialog(bucket.Name)); }; @@ -109,6 +112,7 @@ function Overview({ bucket, ingestionStates }: Props) { if (!bucket) { return; } + dispatch(deleteBucket(bucket.Name)); }; @@ -124,7 +128,6 @@ function Overview({ bucket, ingestionStates }: Props) { ingestionStates, bucketInfo.locationConstraint || 'us-east-1', ); - return ( Enabled
- + Versioning cannot be suspended because Object-lock is enabled for this bucket. @@ -229,13 +236,15 @@ function Overview({ bucket, ingestionStates }: Props) { - {features.includes(XDM_FEATURE) && - Async Metadata updates - - {ingestionValue} - {isIngestion && } - - } + {features.includes(XDM_FEATURE) && ( + + Async Metadata updates + + {ingestionValue} + {isIngestion && } + + + )} @@ -267,4 +276,4 @@ function Overview({ bucket, ingestionStates }: Props) { ); } -export default Overview; +export default Overview; \ No newline at end of file diff --git a/src/react/databrowser/buckets/details/__tests__/Overview.test.jsx b/src/react/databrowser/buckets/details/__tests__/Overview.test.tsx similarity index 98% rename from src/react/databrowser/buckets/details/__tests__/Overview.test.jsx rename to src/react/databrowser/buckets/details/__tests__/Overview.test.tsx index f8f6b5c13..db9da7d15 100644 --- a/src/react/databrowser/buckets/details/__tests__/Overview.test.jsx +++ b/src/react/databrowser/buckets/details/__tests__/Overview.test.tsx @@ -11,13 +11,11 @@ import Overview from '../Overview'; import React from 'react'; import { Toggle } from '@scality/core-ui'; import { reduxMount } from '../../../../utils/test'; - const BUCKET = { CreationDate: 'Tue Oct 12 2020 18:38:56', LocationConstraint: '', Name: bucketName, }; - const TEST_STATE = { uiBuckets: { showDelete: '', @@ -43,7 +41,6 @@ const TEST_STATE = { counter: 0, }, }; - //TODO: Those tests are testing implementation details based on child component names. We should refactor them. describe('Overview', () => { it('should render Overview component', () => { @@ -53,10 +50,8 @@ describe('Overview', () => { bucketInfo: bucketInfoResponseNoVersioning, }, }); - expect(component.find(Overview).isEmptyRender()).toBe(false); }); - it('should render Overview component with given infos', () => { const { component } = reduxMount(, { ...TEST_STATE, @@ -64,14 +59,11 @@ describe('Overview', () => { bucketInfo: bucketInfoResponseNoVersioning, }, }); - const groupInfos = component.find(T.Group); expect(groupInfos).toHaveLength(2); - // FIRST GROUP ITEMS TITLE const firstGroupInfos = groupInfos.first(); expect(firstGroupInfos.find(T.GroupName).text()).toContain('General'); - // FIRST GROUP ITEMS const firstGroupInfosContentItems = firstGroupInfos .find(T.GroupContent) @@ -79,23 +71,18 @@ describe('Overview', () => { const firstItemFirstGroup = firstGroupInfosContentItems.first(); expect(firstItemFirstGroup.find(T.Key).text()).toContain('Name'); expect(firstItemFirstGroup.find(T.Value).text()).toContain('bucket'); - const secondItemFirstGroup = firstGroupInfosContentItems.at(1); expect(secondItemFirstGroup.find(T.Key).text()).toContain('Versioning'); expect(secondItemFirstGroup.find(Toggle).text()).toContain('Suspended'); - const thirdItemFirstGroup = firstGroupInfosContentItems.at(2); expect(thirdItemFirstGroup.find(T.Key).text()).toContain('Object-lock'); expect(thirdItemFirstGroup.find(T.Value).text()).toContain('Disabled'); - const fourthItemFirstGroup = firstGroupInfosContentItems.at(3); expect(fourthItemFirstGroup.find(T.Key).text()).toContain('Location'); expect(fourthItemFirstGroup.find(T.Value).text()).toContain('us-east-1'); - // SECOND GROUP ITEMS TITLE const secondGroupInfos = groupInfos.at(1); expect(secondGroupInfos.find(T.GroupName).text()).toContain('Permissions'); - // SECOND GROUP ITEMS const secondGroupInfosContentItems = secondGroupInfos .find(T.GroupContent) @@ -103,20 +90,16 @@ describe('Overview', () => { const firstItemSecondGroup = secondGroupInfosContentItems.first(); expect(firstItemSecondGroup.find(T.Key).text()).toContain('Owner'); expect(firstItemSecondGroup.find(T.Value).text()).toContain('bart'); - const secondItemSecondGroup = secondGroupInfosContentItems.at(1); expect(secondItemSecondGroup.find(T.Key).text()).toContain('ACL'); expect(secondItemSecondGroup.find(T.Value).text()).toContain('0 Grantee'); - const thirdItemSecondGroup = secondGroupInfosContentItems.at(2); expect(thirdItemSecondGroup.find(T.Key).text()).toContain('CORS'); expect(thirdItemSecondGroup.find(T.Value).text()).toContain('No'); - const fourthItemSecondGroup = secondGroupInfosContentItems.at(3); expect(fourthItemSecondGroup.find(T.Key).text()).toContain('Public'); expect(fourthItemSecondGroup.find(T.Value).text()).toContain('No'); }); - it('should render toggle versioning in Enable mode', () => { const { component } = reduxMount(, { ...TEST_STATE, @@ -124,14 +107,11 @@ describe('Overview', () => { bucketInfo: bucketInfoResponseVersioning, }, }); - const groupInfos = component.find(T.Group); const firstGroupInfos = groupInfos.first(); - - let versioningToggleItem = firstGroupInfos.find(Toggle); + const versioningToggleItem = firstGroupInfos.find(Toggle); expect(versioningToggleItem.text()).toContain('Active'); }); - it('should render object lock information in Enabled mode without default retention', () => { const { component } = reduxMount(, { ...TEST_STATE, @@ -139,18 +119,14 @@ describe('Overview', () => { bucketInfo: bucketInfoResponseObjectLockNoDefaultRetention, }, }); - const groupInfos = component.find(T.Group); const firstGroupInfos = groupInfos.first(); - const firstGroupInfosContentItems = firstGroupInfos .find(T.GroupContent) .find(T.Row); - const secondItemFirstGroup = firstGroupInfosContentItems.at(1); expect(secondItemFirstGroup.find(T.Key).text()).toContain('Versioning'); expect(secondItemFirstGroup.find(T.Value).text()).toContain('Enabled'); - const thirdItemFirstGroup = firstGroupInfosContentItems.at(2); expect(thirdItemFirstGroup.find(T.Key).text()).toContain( 'Default Object-lock Retention', @@ -159,7 +135,6 @@ describe('Overview', () => { 'Inactive', ); }); - it('should render object lock information in Enabled mode with default retention', () => { const { component } = reduxMount(, { ...TEST_STATE, @@ -167,18 +142,14 @@ describe('Overview', () => { bucketInfo: bucketInfoResponseObjectLockDefaultRetention, }, }); - const groupInfos = component.find(T.Group); const firstGroupInfos = groupInfos.first(); - const firstGroupInfosContentItems = firstGroupInfos .find(T.GroupContent) .find(T.Row); - const secondItemFirstGroup = firstGroupInfosContentItems.at(1); expect(secondItemFirstGroup.find(T.Key).text()).toContain('Versioning'); expect(secondItemFirstGroup.find(T.Value).text()).toContain('Enabled'); - const thirdItemFirstGroup = firstGroupInfosContentItems.at(2); expect(thirdItemFirstGroup.find(T.Key).text()).toContain( 'Default Object-lock Retention', @@ -187,10 +158,8 @@ describe('Overview', () => { 'Governance - 5 days', ); }); - it('should trigger deleteBucket function when approving clicking on delete button when modal popup', () => { const deleteBucketMock = jest.spyOn(actions, 'deleteBucket'); - const { component } = reduxMount(, { ...TEST_STATE, ...{ @@ -202,11 +171,9 @@ describe('Overview', () => { }, }, }); - const deleteButton = component.find( 'button.delete-confirmation-delete-button', ); - deleteButton.simulate('click'); expect(deleteBucketMock).toHaveBeenCalledTimes(1); }); diff --git a/src/react/databrowser/objects/FolderCreate.jsx b/src/react/databrowser/objects/FolderCreate.tsx similarity index 95% rename from src/react/databrowser/objects/FolderCreate.jsx rename to src/react/databrowser/objects/FolderCreate.tsx index 15575a0fd..f81a2127a 100644 --- a/src/react/databrowser/objects/FolderCreate.jsx +++ b/src/react/databrowser/objects/FolderCreate.tsx @@ -1,4 +1,3 @@ -// @flow import React, { useState } from 'react'; import { closeFolderCreateModal, createFolder } from '../../actions'; import { useDispatch, useSelector } from 'react-redux'; @@ -11,31 +10,26 @@ import { CustomModal as Modal } from '../../ui-elements/Modal'; import { addTrailingSlash } from '../../utils'; import { spacing } from '@scality/core-ui/dist/style/theme'; import styled from 'styled-components'; - export const Description = styled.div` margin-top: ${spacing.sp16}; width: 400px; `; - export const Icon = styled.i` margin-right: ${spacing.sp4}; `; - type Props = { - bucketName: string, - prefixWithSlash: string, + bucketName: string; + prefixWithSlash: string; }; + const FolderCreate = ({ bucketName, prefixWithSlash }: Props) => { const [folderName, setFolderName] = useState(''); - const loading = useSelector( (state: AppState) => state.networkActivity.counter > 0, ); - const show = useSelector( (state: AppState) => state.uiObjects.showFolderCreate, ); - const dispatch: DispatchAPI = useDispatch(); if (!show) { @@ -51,13 +45,14 @@ const FolderCreate = ({ bucketName, prefixWithSlash }: Props) => { if (!folderName) { return; } + setFolderName(''); dispatch( createFolder(bucketName, prefixWithSlash, addTrailingSlash(folderName)), ); }; - const handleChange = e => { + const handleChange = (e) => { setFolderName(e.target.value); }; @@ -103,4 +98,4 @@ const FolderCreate = ({ bucketName, prefixWithSlash }: Props) => { ); }; -export default FolderCreate; +export default FolderCreate; \ No newline at end of file diff --git a/src/react/databrowser/objects/MetadataSearch.jsx b/src/react/databrowser/objects/MetadataSearch.tsx similarity index 85% rename from src/react/databrowser/objects/MetadataSearch.jsx rename to src/react/databrowser/objects/MetadataSearch.tsx index 18d58c760..d5bf8db8b 100644 --- a/src/react/databrowser/objects/MetadataSearch.jsx +++ b/src/react/databrowser/objects/MetadataSearch.tsx @@ -1,4 +1,3 @@ -// @flow import { Hint, Hints, HintsTitle } from '../../ui-elements/Input'; import React, { useRef, useState } from 'react'; import { @@ -19,10 +18,15 @@ import { } from '../../utils/hooks'; import { useLocation } from 'react-router'; import { push } from 'connected-react-router'; - export const METADATA_SEARCH_HINT_ITEMS = [ - { descr: 'files with extension ".pdf"', q: 'key like /pdf$/' }, - { descr: 'files bigger than 1MB', q: 'content-length > 1000000' }, + { + descr: 'files with extension ".pdf"', + q: 'key like /pdf$/', + }, + { + descr: 'files bigger than 1MB', + q: 'content-length > 1000000', + }, { descr: 'file names that contain scality (case insensitive)', q: 'key like /scality/i', @@ -31,8 +35,14 @@ export const METADATA_SEARCH_HINT_ITEMS = [ descr: 'files with metadata field color set to green', q: 'x-amz-meta-color="green"', }, - { descr: 'files tagged with color blue', q: 'tags.color=blue' }, - { descr: 'PDF files (from content-type)', q: 'content-type=application/pdf' }, + { + descr: 'files tagged with color blue', + q: 'tags.color=blue', + }, + { + descr: 'PDF files (from content-type)', + q: 'content-type=application/pdf', + }, { descr: 'file names that contain the word Report (case sensitive)', q: 'key like Report', @@ -42,40 +52,41 @@ export const METADATA_SEARCH_HINT_ITEMS = [ q: 'replication-status="PENDING"', }, ]; - type Props = { - isMetadataType: boolean, - errorZenkoMsg: ?string, + isMetadataType: boolean; + errorZenkoMsg: string | null | undefined; }; + const MetadataSearch = ({ isMetadataType, errorZenkoMsg }: Props) => { const [hintsShown, setHintsShown] = useState(false); - const dispatch: DispatchAPI = useDispatch(); const query = useQueryParams(); const { pathname } = useLocation(); const prefixWithSlash = usePrefixWithSlash(); // hide hints if clicked on outside of element. const suggestionsRef = useRef(null); - const inputRef = useRef | null>(null); + const inputRef = useRef(null); useOutsideClick(suggestionsRef, () => setHintsShown(false)); const searchInput = query.get('metadatasearch'); const [inputText, setInputText] = useState(searchInput || ''); - const handleChange = e => { + const handleChange = (e) => { setInputText(e.target.value); }; - const handleSubmit = e => { + const handleSubmit = (e) => { e.preventDefault(); + if (!inputText || prefixWithSlash) { return; } + // Add metadatasearch in the query params query.set('metadatasearch', inputText); dispatch(push(`${pathname}?${query.toString()}`)); }; - const reset = e => { + const reset = (e) => { e.stopPropagation(); setHintsShown(false); setInputText(''); @@ -84,9 +95,10 @@ const MetadataSearch = ({ isMetadataType, errorZenkoMsg }: Props) => { dispatch(push(`${pathname}?${query.toString()}`)); }; - const handleHintClicked = q => { + const handleHintClicked = (q) => { setInputText(q); setHintsShown(false); + if (inputRef.current) { inputRef.current.focus(); } @@ -96,6 +108,7 @@ const MetadataSearch = ({ isMetadataType, errorZenkoMsg }: Props) => { if (inputText || hintsShown) { return; } + setHintsShown(true); }; @@ -126,7 +139,7 @@ const MetadataSearch = ({ isMetadataType, errorZenkoMsg }: Props) => { {hintsShown && !inputText && ( Suggestions - {METADATA_SEARCH_HINT_ITEMS.map(h => { + {METADATA_SEARCH_HINT_ITEMS.map((h) => { return ( handleHintClicked(h.q)}> {' '} diff --git a/src/react/databrowser/objects/ObjectDelete.jsx b/src/react/databrowser/objects/ObjectDelete.tsx similarity index 88% rename from src/react/databrowser/objects/ObjectDelete.jsx rename to src/react/databrowser/objects/ObjectDelete.tsx index eb8cce54d..abc8e7491 100644 --- a/src/react/databrowser/objects/ObjectDelete.jsx +++ b/src/react/databrowser/objects/ObjectDelete.tsx @@ -1,4 +1,3 @@ -// @flow import React, { useMemo } from 'react'; import Table, * as T from '../../ui-elements/Table'; import { @@ -18,29 +17,26 @@ import { CustomModal as Modal } from '../../ui-elements/Modal'; import { PrettyBytes } from '@scality/core-ui'; import { maybePluralize } from '../../utils'; import styled from 'styled-components'; - const Files = styled.div` height: 250px; width: 500px; overflow-y: scroll; margin: ${spacing.sp8} 0px; - border: ${spacing.sp1} solid ${props => props.theme.brand.border}; + border: ${spacing.sp1} solid ${(props) => props.theme.brand.border}; `; - const Description = styled.div` margin-top: ${spacing.sp4}; `; - const VersionId = styled.div` font-size: ${fontSize.small}; margin-top: ${spacing.sp4}; `; const title = (files, isVersioning) => { - const foldersSize = files.filter(f => f.isFolder).size; + const foldersSize = files.filter((f) => f.isFolder).size; const objectsSize = files.size - foldersSize; const permanently = isVersioning - ? files.some(f => !!f.versionId) + ? files.some((f) => !!f.versionId) ? 'permanently' : '' : 'permanently'; @@ -56,7 +52,7 @@ const title = (files, isVersioning) => { ); }; -const fileSizer = files => { +const fileSizer = (files) => { const total = files.reduce( (accumulator, file) => (file.size ? accumulator + file.size : accumulator), 0, @@ -65,11 +61,12 @@ const fileSizer = files => { }; type Props = { - toggled: List, - prefixWithSlash: string, - bucketName: string, - bucketInfo: BucketInfo, + toggled: List>; + prefixWithSlash: string; + bucketName: string; + bucketInfo: BucketInfo; }; + const ObjectDelete = ({ bucketName, toggled, @@ -95,9 +92,10 @@ const ObjectDelete = ({ if (toggled.size === 0) { return; } + const objects = toggled - .filter(s => !s.isFolder) - .map(s => { + .filter((s) => !s.isFolder) + .map((s) => { return { Key: s.key, VersionId: s.versionId, @@ -105,8 +103,8 @@ const ObjectDelete = ({ }) .toArray(); const folders = toggled - .filter(s => s.isFolder) - .map(s => { + .filter((s) => s.isFolder) + .map((s) => { return { Key: s.key, }; @@ -143,7 +141,7 @@ const ObjectDelete = ({
- {toggled.map(s => ( + {toggled.map((s) => ( {' '} @@ -166,4 +164,4 @@ const ObjectDelete = ({ ); }; -export default ObjectDelete; +export default ObjectDelete; \ No newline at end of file diff --git a/src/react/databrowser/objects/ObjectDetails.jsx b/src/react/databrowser/objects/ObjectDetails.tsx similarity index 94% rename from src/react/databrowser/objects/ObjectDetails.jsx rename to src/react/databrowser/objects/ObjectDetails.tsx index df2aebfa6..3d075eb25 100644 --- a/src/react/databrowser/objects/ObjectDetails.jsx +++ b/src/react/databrowser/objects/ObjectDetails.tsx @@ -1,4 +1,3 @@ -// @flow import React from 'react'; import type { Node } from 'react'; import type { AppState } from '../../../types/state'; @@ -13,30 +12,30 @@ import { Warning } from '../../ui-elements/Warning'; import { useLocation } from 'react-router-dom'; import { useQueryParams } from '../../utils/hooks'; import { useSelector } from 'react-redux'; - export const MULTIPLE_ITEMS_SELECTED_MESSAGE = 'Multiple items selected'; export const SELECT_AN_OBJECT_MESSAGE = 'Select an object'; - type Props = { - toggled: List, - listType: ListObjectsType, + toggled: List>; + listType: ListObjectsType; }; - export const InfoWarning = ({ title }: { title: Node }) => ( ); -const warningTitle = (toggled: List): Node => { +const warningTitle = (toggled: List>): Node => { if (toggled.size === 1) { const firstObject = toggled.first(); const { isDeleteMarker, isFolder } = firstObject; + if (isDeleteMarker) { return 'A "Delete Marker" is selected'; } + if (isFolder) { return 'A "Folder" is selected'; } } + return SELECT_AN_OBJECT_MESSAGE; }; @@ -53,18 +52,23 @@ function ObjectDetails({ toggled, listType }: Props) { if (toggled.size > 1) { return ; } + if (!objectMetadata) { return ; } + if (!tabName) { return ; } + if (tabName === 'metadata') { return ; } + if (tabName === 'tags') { return ; } + return null; }; @@ -97,4 +101,4 @@ function ObjectDetails({ toggled, listType }: Props) { ); } -export default ObjectDetails; +export default ObjectDetails; \ No newline at end of file diff --git a/src/react/databrowser/objects/ObjectHead.jsx b/src/react/databrowser/objects/ObjectHead.tsx similarity index 94% rename from src/react/databrowser/objects/ObjectHead.jsx rename to src/react/databrowser/objects/ObjectHead.tsx index 772217c8d..f03978201 100644 --- a/src/react/databrowser/objects/ObjectHead.jsx +++ b/src/react/databrowser/objects/ObjectHead.tsx @@ -1,9 +1,8 @@ // @noflow import * as L from '../../ui-elements/ListLayout2'; import React from 'react'; - type Props = { - bucketName?: string, + bucketName?: string; }; export default function ObjectHead({ bucketName }: Props) { return ( @@ -18,4 +17,4 @@ export default function ObjectHead({ bucketName }: Props) { ); -} +} \ No newline at end of file diff --git a/src/react/databrowser/objects/ObjectList.jsx b/src/react/databrowser/objects/ObjectList.tsx similarity index 95% rename from src/react/databrowser/objects/ObjectList.jsx rename to src/react/databrowser/objects/ObjectList.tsx index cefbb9893..18cfe3e68 100644 --- a/src/react/databrowser/objects/ObjectList.jsx +++ b/src/react/databrowser/objects/ObjectList.tsx @@ -1,5 +1,3 @@ -// @flow - import * as L from '../../ui-elements/ListLayout2'; import * as T from '../../ui-elements/Table'; import type { @@ -28,16 +26,14 @@ import { WarningMetadata } from '../../ui-elements/Warning'; import { push } from 'connected-react-router'; import { useQueryParams } from '../../utils/hooks'; import { useLocation } from 'react-router'; - type Props = { - objects: List, - bucketName: string, - prefixWithSlash: string, - toggled: List, - listType: ListObjectsType, - bucketInfo: BucketInfo, + objects: List; + bucketName: string; + prefixWithSlash: string; + toggled: List; + listType: ListObjectsType; + bucketInfo: BucketInfo; }; - export default function ObjectList({ objects, bucketName, @@ -49,7 +45,6 @@ export default function ObjectList({ const dispatch = useDispatch(); const { pathname } = useLocation(); const query = useQueryParams(); - const errorZenkoMsg = useSelector( (state: AppState) => state.zenko.error.message, ); @@ -58,7 +53,6 @@ export default function ObjectList({ ); const isMetadataType = listType === LIST_OBJECTS_METADATA_TYPE; const isVersioningType = listType === LIST_OBJECT_VERSIONS_S3_TYPE; - const isToggledEmpty = toggled.size === 0; const maybeListTable = () => { @@ -70,6 +64,7 @@ export default function ObjectList({ /> ); } + return ( ); }; + return ( @@ -117,9 +113,11 @@ export default function ObjectList({ label="List Versions" onChange={() => { query.set('showversions', !isVersioningType ? 'true' : 'false'); + if (isVersioningType) { query.delete('versionId'); } + dispatch(push(`${pathname}?${query.toString()}`)); }} /> @@ -134,4 +132,4 @@ export default function ObjectList({ {maybeListTable()} ); -} +} \ No newline at end of file diff --git a/src/react/databrowser/objects/ObjectListTable.jsx b/src/react/databrowser/objects/ObjectListTable.tsx similarity index 87% rename from src/react/databrowser/objects/ObjectListTable.jsx rename to src/react/databrowser/objects/ObjectListTable.tsx index aaa164b0c..09dc486f8 100644 --- a/src/react/databrowser/objects/ObjectListTable.jsx +++ b/src/react/databrowser/objects/ObjectListTable.tsx @@ -1,4 +1,3 @@ -// @flow import MemoRow, { createItemData } from './ObjectRow'; import React, { useCallback, useEffect, useMemo, useState } from 'react'; import Table, * as T from '../../ui-elements/Table'; @@ -24,24 +23,21 @@ import { push } from 'connected-react-router'; import { spacing } from '@scality/core-ui/dist/style/theme'; import styled from 'styled-components'; import { useQueryParams } from '../../utils/hooks'; - export const Icon = styled.i` margin-right: ${spacing.sp4}; - margin-left: ${props => (props.isMargin ? spacing.sp16 : '0px')}; + margin-left: ${(props) => (props.isMargin ? spacing.sp16 : '0px')}; `; - type CellProps = { row: { - original: ObjectEntity, - }, + original: ObjectEntity; + }; }; - type Props = { - objects: List, - bucketName: string, - toggled: List, - isVersioningType: boolean, - prefixWithSlash: string, + objects: List; + bucketName: string; + toggled: List; + isVersioningType: boolean; + prefixWithSlash: string; }; export default function ObjectListTable({ objects, @@ -61,31 +57,27 @@ export default function ObjectListTable({ ); const objectsLength = objects.size; const isToggledFull = toggled.size > 0 && toggled.size === objectsLength; - const isItemLoaded = useCallback( - index => { + (index) => { const shouldRefetch = !loading && nextMarker && index === objectsLength - 1; return !shouldRefetch; }, [nextMarker, objectsLength, loading], ); - const handleCellClicked = useCallback( - (bucketName, key) => e => { + (bucketName, key) => (e) => { e.stopPropagation(); query.set('prefix', key); dispatch(push(`/buckets/${bucketName}/objects?${query.toString()}`)); }, [dispatch], ); - const query = useQueryParams(); const objectKey = query.get('prefix'); const versionId = query.get('versionId'); const isListVersion = query.get('showversions') === 'true'; const isFolder = query.get('isFolder') === 'true'; - const versionIdOrUndefined = isListVersion && versionId ? versionId : undefined; useEffect(() => { @@ -105,7 +97,6 @@ export default function ObjectListTable({ isFolder, versionIdOrUndefined, ]); - // TODO: // Current row selection should be seperated from multiple selections. // The issue we have right now is once we trigger the listObject action, we lose the current selection. Because we use `toggled` flag to store the selection. @@ -115,14 +106,21 @@ export default function ObjectListTable({ { id: 'checkbox', accessor: '', - headerStyle: { display: 'flex' }, + headerStyle: { + display: 'flex', + }, + Cell({ row: { original } }: CellProps) { return ( -
+
e.stopPropagation()} // Prevent checkbox and clickable table row conflict. + onClick={(e) => e.stopPropagation()} // Prevent checkbox and clickable table row conflict. onChange={() => dispatch(toggleObject(original.key, original.versionId)) } @@ -130,6 +128,7 @@ export default function ObjectListTable({
); }, + Header: ( ); } + if (original.isDeleteMarker) { return ( @@ -168,6 +169,7 @@ export default function ObjectListTable({ ); } + return ( ); }, + width: isVersioningType ? 44 : 59, }, { Header: 'Version ID', accessor: 'versionId', - cellStyle: { overflow: 'visible' }, + cellStyle: { + overflow: 'visible', + }, + Cell({ value: versionId }: { value: string }) { return ; }, + width: 20, }, { Header: 'Modified on', accessor: 'lastModified', - headerStyle: { textAlign: 'right' }, - cellStyle: { textAlign: 'right' }, + headerStyle: { + textAlign: 'right', + }, + cellStyle: { + textAlign: 'right', + }, width: 25, }, { id: 'size', Header: 'Size', - headerStyle: { textAlign: 'right', marginRight: spacing.sp16 }, + headerStyle: { + textAlign: 'right', + marginRight: spacing.sp16, + }, cellStyle: { marginRight: isTableScrollbarVisible ? spacing.sp8 : spacing.sp16, }, - accessor: row => (row.size ? row.size : ''), + accessor: (row) => (row.size ? row.size : ''), + Cell({ value: size }: { value: string }) { return ( @@ -225,6 +240,7 @@ export default function ObjectListTable({ ); }, + width: 10, }, ], @@ -238,9 +254,7 @@ export default function ObjectListTable({ tableWidth, ], ); - const hiddenColumns = isVersioningType ? [] : ['versionId']; - const { getTableProps, getTableBodyProps, @@ -254,35 +268,36 @@ export default function ObjectListTable({ disableSortRemove: true, autoResetFilters: false, autoResetSortBy: false, - initialState: { hiddenColumns }, + initialState: { + hiddenColumns, + }, }, useFilters, useSortBy, useFlexLayout, ); - // NOTE: Calculates the size of the scrollbar to apply margin // on the "Size" column so that it can be aligned to the right even if the scrollbar is displayed - const refList = useCallback(ref => { + const refList = useCallback((ref) => { if (ref) { setTableWidth(parseInt(ref.props.width)); + if (ref._outerRef) { const { scrollHeight, clientHeight } = ref._outerRef; setIsTableScrollbarVisible(scrollHeight > clientHeight); } } }, []); - return (
- {headerGroups.map(headerGroup => ( + {headerGroups.map((headerGroup) => ( - {headerGroup.headers.map(column => { + {headerGroup.headers.map((column) => { const headerProps = column.getHeaderProps( column.getSortByToggleProps(), ); @@ -314,9 +329,9 @@ export default function ObjectListTable({ - {({ height, width }) => ( - // ISSUE: https://github.com/bvaughn/react-window/issues/504 - // eslint-disable-next-line flowtype-errors/show-errors + {( + { height, width }, // ISSUE: https://github.com/bvaughn/react-window/issues/504 + ) => ( - {({ onItemsRendered, ref }) => ( - // eslint-disable-next-line flowtype-errors/show-errors + {( + { onItemsRendered, ref }, + ) => ( { + ref={(list) => { refList(list); ref(list); }} diff --git a/src/react/databrowser/objects/ObjectLockSetting.jsx b/src/react/databrowser/objects/ObjectLockSetting.tsx similarity index 91% rename from src/react/databrowser/objects/ObjectLockSetting.jsx rename to src/react/databrowser/objects/ObjectLockSetting.tsx index 46e3ebf35..923eb947b 100644 --- a/src/react/databrowser/objects/ObjectLockSetting.jsx +++ b/src/react/databrowser/objects/ObjectLockSetting.tsx @@ -1,4 +1,3 @@ -//@flow import React, { useEffect } from 'react'; import { useParams } from 'react-router'; import { useDispatch, useSelector } from 'react-redux'; @@ -25,9 +24,7 @@ import { getRetainUntilDateHint, } from './utils'; import type { AppState } from '../../../types/state'; - const Joi = JoiImport.extend(DateExtension); - const objectLockRetentionSettingsValidationRules = { isRetentionEnabled: Joi.boolean().default(false), retentionMode: Joi.when('isRetentionEnabled', { @@ -35,17 +32,13 @@ const objectLockRetentionSettingsValidationRules = { then: Joi.string().required(), otherwise: Joi.valid(), }), - retentionUntilDate: Joi.date() - .format('YYYY-MM-DD') - .raw(), + retentionUntilDate: Joi.date().format('YYYY-MM-DD').raw(), }; - -const schema = Joi.object(objectLockRetentionSettingsValidationRules); - -// Since IAM role permission hasn't been implemented, we only provide the minimum ability to edit the retention from the UI +const schema = Joi.object(objectLockRetentionSettingsValidationRules); // Since IAM role permission hasn't been implemented, we only provide the minimum ability to edit the retention from the UI // and limit the following actions: // 1. When the retention is disabled by default, it's not allowed to enable it. // 2. The default retention mode is COMPLIANCE, it's not allowed to switch to the GOVERNANCE mode. + export default function ObjectLockSetting() { const dispatch = useDispatch(); const query = useQueryParams(); @@ -67,7 +60,6 @@ export default function ObjectLockSetting() { defaultRetentionMode, defaultRetentionUntilDate, } = getDefaultRetention(objectMetadata); - useEffect(() => { dispatch(getObjectMetadata(bucketNameParam, objectKey, versionId)); }, [dispatch, bucketNameParam, objectKey, versionId]); @@ -90,6 +82,7 @@ export default function ObjectLockSetting() { dispatch(clearError()); } }; + const handleCancel = () => { clearServerError(); dispatch( @@ -133,7 +126,6 @@ export default function ObjectLockSetting() { defaultRetentionMode, defaultRetentionUntilDate, ]); - return ( @@ -156,7 +148,7 @@ export default function ObjectLockSetting() { onChange(e.target.checked)} + onChange={(e) => onChange(e.target.checked)} placeholder="isRetentionEnabled" label={isRetentionEnabled ? 'Active' : 'Inactive'} toggle={isRetentionEnabled} @@ -178,7 +170,12 @@ export default function ObjectLockSetting() { Retention mode - + - + onChange(e.target.value)} + onChange={(e) => onChange(e.target.value)} value={retentionUntilDate} min={minRetainUtilDate} /> {retentionUntilDate >= minRetainUtilDate && ( - + {getRetainUntilDateHint(retentionUntilDate)} )} @@ -301,4 +307,4 @@ export default function ObjectLockSetting() { ); -} +} \ No newline at end of file diff --git a/src/react/databrowser/objects/ObjectRow.jsx b/src/react/databrowser/objects/ObjectRow.tsx similarity index 86% rename from src/react/databrowser/objects/ObjectRow.jsx rename to src/react/databrowser/objects/ObjectRow.tsx index d95ffa26b..9185097b8 100644 --- a/src/react/databrowser/objects/ObjectRow.jsx +++ b/src/react/databrowser/objects/ObjectRow.tsx @@ -1,5 +1,3 @@ -// @flow - import * as T from '../../ui-elements/Table'; import React, { memo } from 'react'; import { toggleAllObjects } from '../../actions'; @@ -13,30 +11,24 @@ import { useLocation } from 'react-router'; import { useQueryParams } from '../../utils/hooks'; import { push } from 'connected-react-router'; import { removeTrailingSlash } from '../../../js/utils'; - -type PrepareRow = RowType => void; - +type PrepareRow = (arg0: RowType) => void; type RowType = { - id: number, - original: ObjectEntity, - cells: any, - getRowProps: any => void, + id: number; + original: ObjectEntity; + cells: any; + getRowProps: (arg0: any) => void; }; - type RowsType = Array; - type Data = { - rows: RowsType, - prepareRow: PrepareRow, - dispatch: DispatchAPI, + rows: RowsType; + prepareRow: PrepareRow; + dispatch: DispatchAPI; }; - type RowProps = { - data: Data, - index: number, - style: Object, + data: Data; + index: number; + style: Record; }; - // createItemData: This helper function memoizes incoming props, // To avoid causing unnecessary re-renders pure MemoRow components. // This is only needed since we are passing multiple props with a wrapper object. @@ -61,7 +53,6 @@ const Row = ({ }: RowProps) => { const row = rows[index]; prepareRow(row); - const { pathname } = useLocation(); const query = useQueryParams(); const versionId = query.get('versionId'); @@ -71,18 +62,22 @@ const Row = ({ const handleClick = () => { dispatch(toggleAllObjects(false)); query.set('prefix', removeTrailingSlash(row.original.key)); + if (row.original.key.slice(-1) === '/') { query.set('isFolder', true); } else { query.delete('isFolder'); } + if (row.original.versionId) { query.set('versionId', row.original.versionId); } else { query.delete('versionId'); } + dispatch(push(`${pathname}?${query.toString()}`)); }; + const isRowSelected = isListVersions ? row.original.versionId === versionId && objectKey === row.original.key : objectKey === row.original.key; @@ -90,9 +85,11 @@ const Row = ({ - {row.cells.map(cell => { + {row.cells.map((cell) => { const cellProps = cell.getCellProps(); return ( (Row, areEqual); +export default memo(Row, areEqual); \ No newline at end of file diff --git a/src/react/databrowser/objects/ObjectUpload.jsx b/src/react/databrowser/objects/ObjectUpload.tsx similarity index 91% rename from src/react/databrowser/objects/ObjectUpload.jsx rename to src/react/databrowser/objects/ObjectUpload.tsx index 72970110c..67b28c575 100644 --- a/src/react/databrowser/objects/ObjectUpload.jsx +++ b/src/react/databrowser/objects/ObjectUpload.tsx @@ -1,4 +1,3 @@ -// @flow import React, { useState } from 'react'; import Table, * as T from '../../ui-elements/Table'; import { closeObjectUploadModal, uploadFiles } from '../../actions'; @@ -15,7 +14,6 @@ import { spacing } from '@scality/core-ui/dist/style/theme'; import styled from 'styled-components'; import { useDropzone } from 'react-dropzone'; import { usePrefixWithSlash } from '../../utils/hooks'; - const DropZone = styled.div` flex: 1; display: flex; @@ -26,20 +24,17 @@ const DropZone = styled.div` padding: ${spacing.sp20}; border-width: ${spacing.sp2}; border-radius: ${spacing.sp2}; - border-color: ${props => props.theme.brand.border}; + border-color: ${(props) => props.theme.brand.border}; border-style: dashed; `; - const RemoveCell = styled(T.Cell)` width: 10px; `; - const Files = styled.div` height: 250px; overflow-y: scroll; margin: ${spacing.sp8} 0px; `; - const EmptyFile = styled.div` text-align: center; margin-top: 60px; @@ -48,14 +43,14 @@ const EmptyFile = styled.div` } `; -const title = size => +const title = (size) => !size ? 'Upload' : `Upload ${maybePluralize(size, 'file')}`; type FileListProps = { - acceptedFiles: Array, - fileRejections: Array, - open: () => void, - removeFile: string => void, + acceptedFiles: Array; + fileRejections: Array; + open: () => void; + removeFile: (arg0: string) => void; }; // NOTE: If accept, multiple, minSize or maxSize are added to useDropzone parameters, // files might be rejected (fileRejections) and we will have to show them in . @@ -74,7 +69,7 @@ export const FileList = ({
- {acceptedFiles.map(file => ( + {acceptedFiles.map((file) => ( {' '} @@ -99,9 +94,8 @@ export const FileList = ({ ); - type NoFileProps = { - open: () => void, + open: () => void; }; export const NoFile = ({ open }: NoFileProps) => ( @@ -116,10 +110,10 @@ export const NoFile = ({ open }: NoFileProps) => ( /> ); - type Props = { - bucketName: string, + bucketName: string; }; + const ObjectUpload = ({ bucketName }: Props) => { const [acceptedFiles, setAcceptedFiles] = useState([]); const [fileRejections, setFileRejections] = useState([]); @@ -127,17 +121,19 @@ const ObjectUpload = ({ bucketName }: Props) => { (state: AppState) => state.uiObjects.showObjectUpload, ); const dispatch: DispatchAPI = useDispatch(); - const prefixWithSlash = usePrefixWithSlash(); + const onDrop = (accepted, rejections) => { if (accepted.length > 0) { const filtered = accepted.filter( - a => !acceptedFiles.find(f => f.path === a.path), + (a) => !acceptedFiles.find((f) => f.path === a.path), ); + if (filtered.length > 0) { setAcceptedFiles([...acceptedFiles, ...filtered]); } } + if (rejections.length > 0) { setFileRejections([...fileRejections, ...rejections]); } @@ -159,8 +155,8 @@ const ObjectUpload = ({ bucketName }: Props) => { dispatch(closeObjectUploadModal()); }; - const removeFile = filePath => - setAcceptedFiles(acceptedFiles.filter(f => f.path !== filePath)); + const removeFile = (filePath) => + setAcceptedFiles(acceptedFiles.filter((f) => f.path !== filePath)); const upload = () => { cleanFiles(); @@ -212,4 +208,4 @@ const ObjectUpload = ({ bucketName }: Props) => { ); }; -export default ObjectUpload; +export default ObjectUpload; \ No newline at end of file diff --git a/src/react/databrowser/objects/Objects.jsx b/src/react/databrowser/objects/Objects.tsx similarity index 98% rename from src/react/databrowser/objects/Objects.jsx rename to src/react/databrowser/objects/Objects.tsx index b98cc2deb..d632a9e64 100644 --- a/src/react/databrowser/objects/Objects.jsx +++ b/src/react/databrowser/objects/Objects.tsx @@ -1,4 +1,3 @@ -// @flow import * as L from '../../ui-elements/ListLayout2'; import React, { useEffect, useMemo, useState } from 'react'; import { Redirect, useParams } from 'react-router-dom'; @@ -25,9 +24,7 @@ import ObjectUpload from './ObjectUpload'; import { usePrefixWithSlash, useQueryParams } from '../../utils/hooks'; export default function Objects() { const dispatch = useDispatch(); - const [loaded, setLoaded] = useState(false); - const objects = useSelector( (state: AppState) => state.s3.listObjectsResults.list, ); @@ -40,10 +37,11 @@ export default function Objects() { /* this depends on onbeforeunload https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload#browser_compatibility it can't run custom modal or alert, and will display a generic message in all major up to date browser, that can't be customize the string is mandatory to display the popup but will likely not be displayed */ - window.onbeforeunload = function() { + window.onbeforeunload = function () { if (isUploading) { return 'If you quit the Data Browser, the current upload process will abort'; } + return; }; @@ -52,11 +50,10 @@ export default function Objects() { const searchInput = query.get('metadatasearch'); const objectKey = query.get('prefix'); const versionId = query.get('versionId'); - const toggled = useMemo( () => objects.filter( - o => + (o) => o.toggled || (!isShowVersions && o.key === objectKey) || (isShowVersions && o.key === objectKey && o.versionId === versionId), @@ -65,7 +62,6 @@ export default function Objects() { ); const { bucketName: bucketNameParam } = useParams(); const prefixWithSlash = usePrefixWithSlash(); - useEffect(() => { if (searchInput) { dispatch(newSearchListing(bucketNameParam, searchInput)).finally(() => @@ -81,11 +77,9 @@ export default function Objects() { ).finally(() => setLoaded(true)); } }, [bucketNameParam, prefixWithSlash, dispatch, isShowVersions, searchInput]); - useEffect(() => { dispatch(getBucketInfo(bucketNameParam)); }, [dispatch, bucketNameParam]); - // NOTE: If only one unique object (not folder) is selected, we show its metadata. // Otherwise, we clear object metadata. useEffect(() => { @@ -93,7 +87,9 @@ export default function Objects() { if (!loaded) { return; } + const firstToggledItem = toggled.first(); + if ( toggled.size === 1 && !firstToggledItem.isFolder && @@ -129,7 +125,6 @@ export default function Objects() { // btnAction={() => dispatch(push(`/buckets/${bucketNameParam}/upload-object`))} /> // ; // } - return ( ); -} +} \ No newline at end of file diff --git a/src/react/databrowser/objects/__tests__/FolderCreate.test.jsx b/src/react/databrowser/objects/__tests__/FolderCreate.test.tsx similarity index 96% rename from src/react/databrowser/objects/__tests__/FolderCreate.test.jsx rename to src/react/databrowser/objects/__tests__/FolderCreate.test.tsx index 0de74aa88..77a4af020 100644 --- a/src/react/databrowser/objects/__tests__/FolderCreate.test.jsx +++ b/src/react/databrowser/objects/__tests__/FolderCreate.test.tsx @@ -6,7 +6,6 @@ import { import FolderCreate from '../FolderCreate'; import React from 'react'; import { reduxMount } from '../../../utils/test'; - describe('FolderCreate', () => { it('should render FolderCreate component', () => { const { component } = reduxMount( @@ -17,10 +16,8 @@ describe('FolderCreate', () => { }, }, ); - expect(component.find(FolderCreate).isEmptyRender()).toBe(false); }); - it('should render an empty FolderCreate component if showFolderCreate equals to false', () => { const { component } = reduxMount( , @@ -30,16 +27,13 @@ describe('FolderCreate', () => { }, }, ); - expect(component.find(FolderCreate).isEmptyRender()).toBe(true); }); - it('should call closeFolderCreateModal if cancel button is pressed', async () => { const closeFolderCreateModalMock = jest.spyOn( s3object, 'closeFolderCreateModal', ); - const { component } = reduxMount( , { @@ -48,15 +42,12 @@ describe('FolderCreate', () => { }, }, ); - expect(closeFolderCreateModalMock).toHaveBeenCalledTimes(0); component.find('button#folder-create-cancel-button').simulate('click'); expect(closeFolderCreateModalMock).toHaveBeenCalledTimes(1); }); - it('should not createFolder if save button is pressed and folderName is empty', () => { const createFolderMock = jest.spyOn(s3object, 'createFolder'); - const { component } = reduxMount( , { @@ -65,15 +56,12 @@ describe('FolderCreate', () => { }, }, ); - expect(createFolderMock).toHaveBeenCalledTimes(0); component.find('button#folder-create-save-button').simulate('click'); expect(createFolderMock).toHaveBeenCalledTimes(0); }); - it('should call createFolder if save button is pressed and folderName is not empty', () => { const createFolderMock = jest.spyOn(s3object, 'createFolder'); - const { component } = reduxMount( , { @@ -82,12 +70,14 @@ describe('FolderCreate', () => { }, }, ); - const elementInput = component.find('input.folder-create-input'); - expect(createFolderMock).toHaveBeenCalledTimes(0); - elementInput.simulate('change', { target: { value: FILE_NAME } }); + elementInput.simulate('change', { + target: { + value: FILE_NAME, + }, + }); component.find('button#folder-create-save-button').simulate('click'); expect(createFolderMock).toHaveBeenCalledTimes(1); }); -}); +}); \ No newline at end of file diff --git a/src/react/databrowser/objects/__tests__/MetadataSearch.test.jsx b/src/react/databrowser/objects/__tests__/MetadataSearch.test.tsx similarity index 96% rename from src/react/databrowser/objects/__tests__/MetadataSearch.test.jsx rename to src/react/databrowser/objects/__tests__/MetadataSearch.test.tsx index 6b1eb311a..8c73bf8a5 100644 --- a/src/react/databrowser/objects/__tests__/MetadataSearch.test.jsx +++ b/src/react/databrowser/objects/__tests__/MetadataSearch.test.tsx @@ -6,58 +6,46 @@ import { SearchButton } from '../../../ui-elements/Table'; import { reduxMount } from '../../../utils/test'; import router from 'react-router'; import * as redux from 'react-redux'; - describe('Metadata Search', () => { const useDispatchSpy = jest.spyOn(redux, 'useDispatch'); const mockDispatchFn = jest.fn(); useDispatchSpy.mockReturnValue(mockDispatchFn); - beforeAll(() => { - jest - .spyOn(router, 'useLocation') - .mockReturnValue({ pathname: `/buckets/${BUCKET_NAME}/objects` }); + jest.spyOn(router, 'useLocation').mockReturnValue({ + pathname: `/buckets/${BUCKET_NAME}/objects`, + }); }); afterEach(() => { jest.clearAllMocks(); }); - it('should render MetadataSearch component', () => { const { component } = reduxMount( , ); - expect(component.find(MetadataSearch).isEmptyRender()).toBe(false); }); - it('should render search button disabled by default', () => { const { component } = reduxMount( , ); - const button = component.find(SearchButton); expect(button).toHaveLength(1); expect(button.prop('disabled')).toBe(true); }); - it('should render dropdown menu correctly', () => { const { component } = reduxMount( , ); - const input = component.find('input'); expect(input).toHaveLength(1); - // check are not rendered yet expect(component.find(Hints)).toHaveLength(0); - // open dropdown menu input.simulate('click'); - // check and items are now rendered expect(component.find(Hints)).toHaveLength(1); expect(component.find(HintsTitle)).toHaveLength(1); expect(component.find(HintsTitle).text()).toContain('Suggestions'); - // check description of each item const hintsItems = component.find(Hint); expect(hintsItems).toHaveLength(8); @@ -65,35 +53,27 @@ describe('Metadata Search', () => { expect(hintsItems.at(index).text()).toContain(h.descr), ); }); - it('should render the right item and the right text in the input bar; button should also be clickable and call newSearchListing function', () => { const { component } = reduxMount( , ); - // open dropdown menu let input = component.find('input'); input.simulate('click'); - // check input value is empty expect(input.prop('value')).toBe(''); - // pick first item const firstItem = component.find(Hint).first(); firstItem.simulate('click'); - // check dropdown menu disappear expect(component.find(Hints)).toHaveLength(0); - // check input value is the first item we choose input = component.find('input'); expect(input.prop('value')).toBe(METADATA_SEARCH_HINT_ITEMS[0].q); - // check if button is now clickable const button = component.find(SearchButton); expect(button).toHaveLength(1); expect(button.prop('disabled')).toBe(false); - // check the dispatch action is with the correct URL button.simulate('submit'); const expectedAction = { @@ -107,4 +87,4 @@ describe('Metadata Search', () => { }; expect(mockDispatchFn).toHaveBeenCalledWith(expectedAction); }); -}); +}); \ No newline at end of file diff --git a/src/react/databrowser/objects/__tests__/ObjectDelete.test.jsx b/src/react/databrowser/objects/__tests__/ObjectDelete.test.tsx similarity index 97% rename from src/react/databrowser/objects/__tests__/ObjectDelete.test.jsx rename to src/react/databrowser/objects/__tests__/ObjectDelete.test.tsx index a3220cae3..885ba5d74 100644 --- a/src/react/databrowser/objects/__tests__/ObjectDelete.test.jsx +++ b/src/react/databrowser/objects/__tests__/ObjectDelete.test.tsx @@ -3,17 +3,15 @@ import { BUCKET_NAME, S3_OBJECT, } from '../../../actions/__tests__/utils/testUtil'; -import { BUCKET_INFO } from './utils/testUtil.js'; +import { BUCKET_INFO } from './utils/testUtil'; import { List } from 'immutable'; import ObjectDelete from '../ObjectDelete'; import React from 'react'; import { reduxMount } from '../../../utils/test'; - describe('ObjectDelete', () => { afterEach(() => { jest.clearAllMocks(); }); - it('should render ObjectDelete component', () => { const { component } = reduxMount( { }, }, ); - expect(component.find(ObjectDelete).isEmptyRender()).toBe(false); }); - it('should render an empty ObjectDelete component if showObjectDelete equals to false', () => { const { component } = reduxMount( { }, }, ); - expect(component.find(ObjectDelete).isEmptyRender()).toBe(true); }); - it('should call closeObjectDeleteModal and toggleAllObjects if cancel button is pressed', () => { const closeObjectDeleteModalSpy = jest.spyOn( s3object, 'closeObjectDeleteModal', ); const toggleAllObjectsSpy = jest.spyOn(s3object, 'toggleAllObjects'); - const { component } = reduxMount( { }, }, ); - expect(closeObjectDeleteModalSpy).toHaveBeenCalledTimes(0); expect(toggleAllObjectsSpy).toHaveBeenCalledTimes(0); component.find('button#object-delete-cancel-button').simulate('click'); expect(closeObjectDeleteModalSpy).toHaveBeenCalledTimes(1); expect(toggleAllObjectsSpy).toHaveBeenCalledTimes(1); }); - it('should call deleteFiles if delete button is pressed', () => { const deleteFilesSpy = jest.spyOn(s3object, 'deleteFiles'); - const { component } = reduxMount( { }, }, ); - expect(deleteFilesSpy).toHaveBeenCalledTimes(0); component.find('button#object-delete-delete-button').simulate('click'); expect(deleteFilesSpy).toHaveBeenCalledTimes(1); }); -}); +}); \ No newline at end of file diff --git a/src/react/databrowser/objects/__tests__/ObjectDetails.test.jsx b/src/react/databrowser/objects/__tests__/ObjectDetails.test.tsx similarity index 97% rename from src/react/databrowser/objects/__tests__/ObjectDetails.test.jsx rename to src/react/databrowser/objects/__tests__/ObjectDetails.test.tsx index ad34cf099..c8423318d 100644 --- a/src/react/databrowser/objects/__tests__/ObjectDetails.test.jsx +++ b/src/react/databrowser/objects/__tests__/ObjectDetails.test.tsx @@ -15,18 +15,15 @@ import Properties from '../details/Properties'; import React from 'react'; import { reduxMount } from '../../../utils/test'; import router from 'react-router'; - describe('ObjectDetails', () => { beforeAll(() => { - jest - .spyOn(router, 'useLocation') - .mockReturnValue({ pathname: '/buckets/test/objects' }); + jest.spyOn(router, 'useLocation').mockReturnValue({ + pathname: '/buckets/test/objects', + }); }); - afterEach(() => { jest.clearAllMocks(); }); - it('should display "Summary" tab when there is one toggled object', async () => { const { component } = reduxMount( @@ -38,15 +35,12 @@ describe('ObjectDetails', () => { }, }, ); - expect(component.find(Properties)).toHaveLength(1); }); - it('should display nothing in "Tags" tab when there is one toggled object', () => { jest .spyOn(hooks, 'useQueryParams') .mockReturnValue(new URLSearchParams('?tab=tags')); - const { component } = reduxMount( @@ -57,16 +51,13 @@ describe('ObjectDetails', () => { }, }, ); - expect(component.find(Properties)).toHaveLength(0); expect(component.find(InfoWarning)).toHaveLength(0); }); - it('should display nothing in "Metadata" tab when there is one toggled object', () => { jest .spyOn(hooks, 'useQueryParams') .mockReturnValue(new URLSearchParams('?tab=metadata')); - const { component } = reduxMount( @@ -77,11 +68,9 @@ describe('ObjectDetails', () => { }, }, ); - expect(component.find(Properties)).toHaveLength(0); expect(component.find(InfoWarning)).toHaveLength(0); }); - it(`should display "${MULTIPLE_ITEMS_SELECTED_MESSAGE}" message in "Summary" tab when there are more than one toggled object`, async () => { const { component } = reduxMount( @@ -90,18 +79,15 @@ describe('ObjectDetails', () => { /> , ); - expect(component.find(InfoWarning)).toHaveLength(1); expect(component.find(InfoWarning).prop('title')).toBe( MULTIPLE_ITEMS_SELECTED_MESSAGE, ); }); - it(`should display "${MULTIPLE_ITEMS_SELECTED_MESSAGE}" message in "Tabs" tab when there are more than one toggled object`, () => { jest .spyOn(hooks, 'useQueryParams') .mockReturnValue(new URLSearchParams('?tab=tags')); - const { component } = reduxMount( { /> , ); - expect(component.find(InfoWarning)).toHaveLength(1); expect(component.find(InfoWarning).prop('title')).toBe( MULTIPLE_ITEMS_SELECTED_MESSAGE, ); }); - it(`should display "${MULTIPLE_ITEMS_SELECTED_MESSAGE}" message in "Metadata" tab when there are more than one toggled object`, () => { jest .spyOn(hooks, 'useQueryParams') .mockReturnValue(new URLSearchParams('?tab=metadata')); - const { component } = reduxMount( { /> , ); - expect(component.find(InfoWarning)).toHaveLength(1); expect(component.find(InfoWarning).prop('title')).toBe( MULTIPLE_ITEMS_SELECTED_MESSAGE, ); }); - it(`should display "${SELECT_AN_OBJECT_MESSAGE}" message in "Summary" tab if no object has been toggled`, async () => { const { component } = reduxMount( , ); - expect(component.find(InfoWarning)).toHaveLength(1); expect(component.find(InfoWarning).prop('title')).toBe( SELECT_AN_OBJECT_MESSAGE, ); }); - it(`should display "${SELECT_AN_OBJECT_MESSAGE}" message in "Tabs" tab if no object has been toggled`, () => { jest .spyOn(hooks, 'useQueryParams') .mockReturnValue(new URLSearchParams('?tab=tags')); - const { component } = reduxMount( , ); - expect(component.find(InfoWarning)).toHaveLength(1); expect(component.find(InfoWarning).prop('title')).toBe( SELECT_AN_OBJECT_MESSAGE, ); }); - it(`should display "${SELECT_AN_OBJECT_MESSAGE}" message in "Metadata" tab if no object has been toggled`, () => { jest .spyOn(hooks, 'useQueryParams') .mockReturnValue(new URLSearchParams('?tab=metadata')); - const { component } = reduxMount( , ); - expect(component.find(InfoWarning)).toHaveLength(1); expect(component.find(InfoWarning).prop('title')).toBe( SELECT_AN_OBJECT_MESSAGE, ); }); -}); +}); \ No newline at end of file diff --git a/src/react/databrowser/objects/__tests__/ObjectList.test.jsx b/src/react/databrowser/objects/__tests__/ObjectList.test.tsx similarity index 92% rename from src/react/databrowser/objects/__tests__/ObjectList.test.jsx rename to src/react/databrowser/objects/__tests__/ObjectList.test.tsx index 0a858702f..8a4b650f5 100644 --- a/src/react/databrowser/objects/__tests__/ObjectList.test.jsx +++ b/src/react/databrowser/objects/__tests__/ObjectList.test.tsx @@ -14,18 +14,15 @@ import { List } from 'immutable'; import ObjectList from '../ObjectList'; import React from 'react'; import router from 'react-router'; - describe('ObjectList', () => { beforeAll(() => { - jest - .spyOn(router, 'useLocation') - .mockReturnValue({ pathname: '/buckets/test/objects' }); + jest.spyOn(router, 'useLocation').mockReturnValue({ + pathname: '/buckets/test/objects', + }); }); - afterEach(() => { jest.clearAllMocks(); }); - it('should render ObjectList with no object', () => { const { component } = reduxMount( { bucketInfo={BUCKET_INFO} />, ); - expect(component.find('Row')).toHaveLength(0); }); - it('should render ObjectList with objects', () => { const { component } = reduxMount( { bucketInfo={BUCKET_INFO} />, ); - const rows = component.find('Row'); expect(rows).toHaveLength(1); const cells = rows.find('td').children(); - expect( - cells - .at(0) - .find('input') - .prop('checked'), - ).toBe(false); + expect(cells.at(0).find('input').prop('checked')).toBe(false); expect(cells.at(1).prop('value')).toBe('object1'); expect(cells.at(2).prop('value')).toBe('Wed Oct 17 2020 10:35:57'); - expect( - cells - .at(3) - .find('PrettyBytes') - .text(), - ).toBe('213 B'); + expect(cells.at(3).find('PrettyBytes').text()).toBe('213 B'); }); - it('should call openObjectUploadModal by clicking on upload button', () => { const openObjectUploadModalSpy = jest.spyOn( s3object, 'openObjectUploadModal', ); - const { component } = reduxMount( { bucketInfo={BUCKET_INFO} />, ); - component.find('button#object-list-upload-button').simulate('click'); expect(openObjectUploadModalSpy).toHaveBeenCalledTimes(1); }); - it('should call openFolderCreateModal by clicking on createFolder button', () => { const openFolderCreateModalSpy = jest.spyOn( s3object, 'openFolderCreateModal', ); - const { component } = reduxMount( { bucketInfo={BUCKET_INFO} />, ); - component.find('button#object-list-create-folder-button').simulate('click'); expect(openFolderCreateModalSpy).toHaveBeenCalledTimes(1); }); - it('Delete button should be disable if no object has been toggled', () => { const { component } = reduxMount( { bucketInfo={BUCKET_INFO} />, ); - expect( component.find('button#object-list-delete-button').prop('disabled'), ).toBe(true); }); - it('Delete button should be enable and should call openObjectDeleteModal when is pressed', () => { const openObjectDeleteModalSpy = jest.spyOn( s3object, 'openObjectDeleteModal', ); - const { component } = reduxMount( { bucketInfo={BUCKET_INFO} />, ); - const deleteButton = component.find('button#object-list-delete-button'); expect(deleteButton.prop('disabled')).toBe(false); deleteButton.simulate('click'); expect(openObjectDeleteModalSpy).toHaveBeenCalledTimes(1); }); - it('should select all objects when ticking checkbox square', () => { const toggleAllObjectsSpy = jest.spyOn(s3object, 'toggleAllObjects'); - const { component } = reduxMount( { bucketInfo={BUCKET_INFO} />, ); - checkBox(component, 'objectsHeaderCheckbox', true); expect(toggleAllObjectsSpy).toHaveBeenCalledTimes(1); }); - it('one object should be selected and the other one not and should render all the details of each objects', () => { const { component } = reduxMount( { bucketInfo={BUCKET_INFO} />, ); - const rows = component.find('Row'); expect(rows).toHaveLength(2); rows.forEach((row, index) => { const cells = row.find('td').children(); - expect( - cells - .at(0) - .find('input') - .prop('checked'), - ).toBe(index !== 0); + expect(cells.at(0).find('input').prop('checked')).toBe(index !== 0); expect(cells.at(1).prop('value')).toBe( index === 0 ? 'object1' : 'object2', ); expect(cells.at(2).prop('value')).toBe( index === 0 ? 'Wed Oct 17 2020 10:35:57' : 'Wed Oct 17 2020 16:35:57', ); - expect( - cells - .at(3) - .find('PrettyBytes') - .text(), - ).toBe(index === 0 ? '213 B' : '120 KiB'); + expect(cells.at(3).find('PrettyBytes').text()).toBe( + index === 0 ? '213 B' : '120 KiB', + ); }); }); - it('should enable versioning toggle if versioning enabled', () => { const bucketInfo = { ...BUCKET_INFO, @@ -217,11 +176,9 @@ describe('ObjectList', () => { bucketInfo={bucketInfo} />, ); - const toggle = component.find('ToggleSwitch#list-versions-toggle'); expect(toggle.prop('disabled')).toBe(false); }); - it('should enable versioning toggle if versioning suspended', () => { const bucketInfo = { ...BUCKET_INFO, @@ -238,11 +195,9 @@ describe('ObjectList', () => { bucketInfo={bucketInfo} />, ); - const toggle = component.find('ToggleSwitch#list-versions-toggle'); expect(toggle.prop('disabled')).toBe(false); }); - it('should disable versioning toggle if listing metadata', () => { const bucketInfo = { ...BUCKET_INFO, @@ -259,11 +214,9 @@ describe('ObjectList', () => { bucketInfo={bucketInfo} />, ); - const toggle = component.find('ToggleSwitch#list-versions-toggle'); expect(toggle.prop('disabled')).toBe(true); }); - it('should disable versioning toggle if bucket versioning disabled', () => { const { component } = reduxMount( { bucketInfo={BUCKET_INFO} />, ); - const toggle = component.find('ToggleSwitch#list-versions-toggle'); expect(toggle.prop('disabled')).toBe(true); }); -}); +}); \ No newline at end of file diff --git a/src/react/databrowser/objects/__tests__/ObjectLockSetting.test.jsx b/src/react/databrowser/objects/__tests__/ObjectLockSetting.test.tsx similarity index 99% rename from src/react/databrowser/objects/__tests__/ObjectLockSetting.test.jsx rename to src/react/databrowser/objects/__tests__/ObjectLockSetting.test.tsx index 7001f8d01..39b6ec85b 100644 --- a/src/react/databrowser/objects/__tests__/ObjectLockSetting.test.jsx +++ b/src/react/databrowser/objects/__tests__/ObjectLockSetting.test.tsx @@ -2,17 +2,14 @@ import React from 'react'; import { MemoryRouter, Route, Switch } from 'react-router'; import { reduxMountAct } from '../../../utils/test'; import ObjectLockSetting from '../ObjectLockSetting'; - describe('ObjectLockSetting', () => { const errorMessage = 'This is an error test message'; - it('should render ObjectLockSetting component with no error banner', async () => { const component = await reduxMountAct( , ); - expect(component.find('#zk-error-banner')).toHaveLength(0); // react-hook-form is set to validate on change. // UseForm hook will update state multiple time and component @@ -23,7 +20,6 @@ describe('ObjectLockSetting', () => { // The hook will clean up properly if unmounted component.unmount(); }); - it('should render ObjectLockSetting component with an error banner', async () => { const component = await reduxMountAct( @@ -36,12 +32,10 @@ describe('ObjectLockSetting', () => { }, }, ); - expect(component.find('#zk-error-banner')).toHaveLength(1); expect(component.find('#zk-error-banner').text()).toContain(errorMessage); component.unmount(); }); - it('should render ObjectLockSetting component with current data filled', async () => { const component = await reduxMountAct( { }, }, ); - expect(component.find('ToggleSwitch#edit-retention').prop('disabled')).toBe( true, ); @@ -84,10 +77,8 @@ describe('ObjectLockSetting', () => { expect( component.find('input[name="retention-until-date"]').getDOMNode().value, ).toBe('2022-01-31'); - component.unmount(); }); - it('should disable the governance option for ObjectLockSetting component ', async () => { const component = await reduxMountAct( { }, }, ); - expect(component.find('ToggleSwitch#edit-retention').prop('disabled')).toBe( true, ); @@ -133,7 +123,6 @@ describe('ObjectLockSetting', () => { expect( component.find('input[name="retention-until-date"]').getDOMNode().value, ).toBe('2022-01-31'); - component.unmount(); }); -}); +}); \ No newline at end of file diff --git a/src/react/databrowser/objects/__tests__/ObjectUpload.test.jsx b/src/react/databrowser/objects/__tests__/ObjectUpload.test.tsx similarity index 86% rename from src/react/databrowser/objects/__tests__/ObjectUpload.test.jsx rename to src/react/databrowser/objects/__tests__/ObjectUpload.test.tsx index 3f43ee4fc..2f8dd61e8 100644 --- a/src/react/databrowser/objects/__tests__/ObjectUpload.test.jsx +++ b/src/react/databrowser/objects/__tests__/ObjectUpload.test.tsx @@ -5,7 +5,6 @@ import React from 'react'; import { act } from 'react-dom/test-utils'; import { reduxMount } from '../../../utils/test'; import router from 'react-router'; - describe('ObjectUpload', () => { beforeAll(() => { jest.spyOn(router, 'useLocation').mockReturnValue({ @@ -17,11 +16,9 @@ describe('ObjectUpload', () => { 'closeObjectUploadModal', ); const uploadFilesMock = jest.spyOn(s3object, 'uploadFiles'); - afterEach(() => { jest.clearAllMocks(); }); - it('should render ObjectUpload component', () => { const { component } = reduxMount( , @@ -31,10 +28,8 @@ describe('ObjectUpload', () => { }, }, ); - expect(component.find(ObjectUpload).isEmptyRender()).toBe(false); }); - it('should render an empty ObjectUpload component if showFolderCreate equals to false', () => { const { component } = reduxMount( , @@ -44,16 +39,13 @@ describe('ObjectUpload', () => { }, }, ); - expect(component.find(ObjectUpload).isEmptyRender()).toBe(true); }); - it('should call closeObjectUploadModal if cancel button is pressed when NoFile component is rendered', () => { const closeObjectUploadModalMock = jest.spyOn( s3object, 'closeObjectUploadModal', ); - const { component } = reduxMount( , { @@ -62,18 +54,14 @@ describe('ObjectUpload', () => { }, }, ); - expect(component.find(NoFile)).toHaveLength(1); expect(component.find(FileList)).toHaveLength(0); - expect(closeObjectUploadModalMock).toHaveBeenCalledTimes(0); component.find('button#object-upload-cancel-button').simulate('click'); expect(closeObjectUploadModalMock).toHaveBeenCalledTimes(1); }); - it('should not call uploadFiles if upload button is pressed when no file is present', () => { const uploadFilesMock = jest.spyOn(s3object, 'uploadFiles'); - const { component } = reduxMount( , { @@ -82,14 +70,12 @@ describe('ObjectUpload', () => { }, }, ); - const uploadButton = component.find('button#object-upload-upload-button'); expect(uploadFilesMock).toHaveBeenCalledTimes(0); expect(uploadButton.prop('disabled')).toBe(true); uploadButton.simulate('click'); expect(uploadFilesMock).toHaveBeenCalledTimes(0); }); - it('should render NoFile component', () => { const { component } = reduxMount( , @@ -99,18 +85,15 @@ describe('ObjectUpload', () => { }, }, ); - expect(component.find(NoFile)).toHaveLength(1); expect(component.find(FileList)).toHaveLength(0); }); - const tests = [ 'should render FileList component', 'should call closeObjectUploadModal if cancel button is pressed when FileList component is rendered', 'should call uploadFile if upload button is pressed when FileList component is rendered', 'should remove file when pressing the cross and render NoFile when no file is present', ]; - tests.forEach((t, index) => { it(t, async () => { const { component } = reduxMount( @@ -121,15 +104,18 @@ describe('ObjectUpload', () => { }, }, ); - - const file = new File(['test'], 'test.txt', { type: 'text/plain' }); + const file = new File(['test'], 'test.txt', { + type: 'text/plain', + }); const dropZone = component.find('input.object-upload-drop-zone-input'); expect(component.find(FileList)).toHaveLength(0); - await act(async () => { - dropZone.simulate('change', { target: { files: [file] } }); + dropZone.simulate('change', { + target: { + files: [file], + }, + }); }); - component.update(); switch (index) { @@ -137,6 +123,7 @@ describe('ObjectUpload', () => { expect(component.find(NoFile)).toHaveLength(0); expect(component.find(FileList)).toHaveLength(1); break; + case 1: expect(component.find(NoFile)).toHaveLength(0); expect(component.find(FileList)).toHaveLength(1); @@ -146,28 +133,15 @@ describe('ObjectUpload', () => { .simulate('click'); expect(closeObjectUploadModalMock).toHaveBeenCalledTimes(1); break; + case 2: expect(component.find(FileList)).toHaveLength(1); + expect(component.find('td').at(0).find('div').childAt(0).text()).toBe( + 'test.txt', + ); + expect(component.find('td').at(0).find('small').text()).toBe('4 B'); expect( - component - .find('td') - .at(0) - .find('div') - .childAt(0) - .text(), - ).toBe('test.txt'); - expect( - component - .find('td') - .at(0) - .find('small') - .text(), - ).toBe('4 B'); - expect( - component - .find('div.sc-modal-header') - .find('span') - .text(), + component.find('div.sc-modal-header').find('span').text(), ).toBe('Upload 1 file'); expect(uploadFilesMock).toHaveBeenCalledTimes(0); component @@ -175,17 +149,14 @@ describe('ObjectUpload', () => { .simulate('click'); expect(uploadFilesMock).toHaveBeenCalledTimes(1); break; + case 3: expect(component.find(FileList)).toHaveLength(1); - component - .find('td') - .at(1) - .find('div') - .simulate('click'); + component.find('td').at(1).find('div').simulate('click'); expect(component.find(FileList)).toHaveLength(0); expect(component.find(NoFile)).toHaveLength(1); break; } }); }); -}); +}); \ No newline at end of file diff --git a/src/react/databrowser/objects/__tests__/utils/testUtil.js b/src/react/databrowser/objects/__tests__/utils/testUtil.ts similarity index 99% rename from src/react/databrowser/objects/__tests__/utils/testUtil.js rename to src/react/databrowser/objects/__tests__/utils/testUtil.ts index 682ad2878..cb00d9d96 100644 --- a/src/react/databrowser/objects/__tests__/utils/testUtil.js +++ b/src/react/databrowser/objects/__tests__/utils/testUtil.ts @@ -7,7 +7,6 @@ export const FIRST_FORMATTED_OBJECT = { signedUrl: '', toggled: false, }; - export const SECOND_FORMATTED_OBJECT = { key: 'toto/object2', isFolder: false, @@ -17,7 +16,6 @@ export const SECOND_FORMATTED_OBJECT = { signedUrl: '', toggled: true, }; - export const BUCKET_INFO = { name: 'bucket1', policy: false, @@ -28,4 +26,4 @@ export const BUCKET_INFO = { versioning: 'Disabled', public: false, locationConstraint: 'us-east-1', -}; +}; \ No newline at end of file diff --git a/src/react/databrowser/objects/details/Metadata.jsx b/src/react/databrowser/objects/details/Metadata.tsx similarity index 86% rename from src/react/databrowser/objects/details/Metadata.jsx rename to src/react/databrowser/objects/details/Metadata.tsx index eabb2078d..9197c6bde 100644 --- a/src/react/databrowser/objects/details/Metadata.jsx +++ b/src/react/databrowser/objects/details/Metadata.tsx @@ -1,4 +1,3 @@ -// @flow import { AMZ_META, METADATA_SYSTEM_TYPE, @@ -35,58 +34,66 @@ import { putObjectMetadata } from '../../../actions'; import { spacing } from '@scality/core-ui/dist/style/theme'; import styled from 'styled-components'; import { useDispatch } from 'react-redux'; - -const EMPTY_ITEM = { key: '', value: '', type: '' }; - +const EMPTY_ITEM = { + key: '', + value: '', + type: '', +}; const TableContainer = styled.div` overflow-y: auto; overflow: visible; height: calc(100vh - 410px); margin-bottom: ${spacing.sp4}; `; - const userMetadataOption = { value: AMZ_META, label: AMZ_META, }; - const selectOptions = systemMetadata - .map(o => ({ + .map((o) => ({ value: o.key, label: o.header, })) .concat([userMetadataOption]); -const isUserType = type => type === METADATA_USER_TYPE; -const isSystemType = type => type === METADATA_SYSTEM_TYPE; +const isUserType = (type) => type === METADATA_USER_TYPE; + +const isSystemType = (type) => type === METADATA_SYSTEM_TYPE; const convertToAWSMetadata = (items: MetadataItems) => { const userMetadata = {}; const systemMetadata = {}; + for (const item of items) { const { type, key, value } = item; + if (isEmptyItem(item)) { continue; } + if (isUserType(type)) { userMetadata[key] = value; } else if (isSystemType(type)) { systemMetadata[key] = value; } } - return { systemMetadata, userMetadata }; + + return { + systemMetadata, + userMetadata, + }; }; type Props = { - objectMetadata: ObjectMetadata, - listType: ListObjectsType, + objectMetadata: ObjectMetadata; + listType: ListObjectsType; }; + function Metadata({ objectMetadata, listType }: Props) { const dispatch = useDispatch(); const { bucketName, objectKey, metadata } = objectMetadata; const [items, setItems] = useState([EMPTY_ITEM]); const isVersioningType = listType === LIST_OBJECT_VERSIONS_S3_TYPE; - useEffect(() => { if (metadata.length > 0) { setItems(metadata); @@ -94,48 +101,59 @@ function Metadata({ objectMetadata, listType }: Props) { setItems([EMPTY_ITEM]); } }, [metadata]); - const remainingOptions = useMemo( () => selectOptions.filter( - option => + (option) => !items.find( - item => item.key === option.value && isSystemType(item.type), + (item) => item.key === option.value && isSystemType(item.type), ), ), [items], ); - // NOTE: invalid if at least one items is missing key or value but not both. const isValidItems = useMemo(() => { return !items.find( - i => (i.key === '' && i.value !== '') || (i.value === '' && i.key !== ''), + (i) => + (i.key === '' && i.value !== '') || (i.value === '' && i.key !== ''), ); }, [items]); - const handleSelectChange = (index: number) => v => { + const handleSelectChange = (index: number) => (v) => { const temp = [...items]; + if (v === AMZ_META) { - temp[index] = { key: '', value: '', type: METADATA_USER_TYPE }; + temp[index] = { + key: '', + value: '', + type: METADATA_USER_TYPE, + }; } else { - temp[index] = { key: v, value: '', type: METADATA_SYSTEM_TYPE }; + temp[index] = { + key: v, + value: '', + type: METADATA_SYSTEM_TYPE, + }; } + setItems(temp); }; const handleKeyChange = (index: number) => ( - e: SyntheticInputEvent, + e: React.SyntheticEvent, ) => { const temp = [...items]; + if (!isUserType(temp[index].type)) { return; } + temp[index] = { ...temp[index], key: e.target.value }; setItems(temp); }; const handleValueChange = (index: number) => ( - e: SyntheticInputEvent, + e: React.SyntheticEvent, ) => { const temp = [...items]; temp[index] = { ...temp[index], value: e.target.value }; @@ -150,10 +168,12 @@ function Metadata({ objectMetadata, listType }: Props) { const deleteEntry = (index: number) => { let temp = [EMPTY_ITEM]; + if (items.length > 1) { temp = [...items]; temp.splice(index, 1); } + setItems(temp); }; @@ -161,6 +181,7 @@ function Metadata({ objectMetadata, listType }: Props) { if (!isValidItems) { return; } + const { systemMetadata, userMetadata } = convertToAWSMetadata(items); dispatch( putObjectMetadata(bucketName, objectKey, systemMetadata, userMetadata), @@ -169,12 +190,15 @@ function Metadata({ objectMetadata, listType }: Props) { const selectValue = (metadata: MetadataItem) => { const { key, type } = metadata; + if (isSystemType(type) && key) { - return selectOptions.find(l => l.value === key); + return selectOptions.find((l) => l.value === key); } + if (isUserType(type)) { return userMetadataOption; } + return ''; }; @@ -258,4 +282,4 @@ function Metadata({ objectMetadata, listType }: Props) { ); } -export default Metadata; +export default Metadata; \ No newline at end of file diff --git a/src/react/databrowser/objects/details/Properties.jsx b/src/react/databrowser/objects/details/Properties.tsx similarity index 96% rename from src/react/databrowser/objects/details/Properties.jsx rename to src/react/databrowser/objects/details/Properties.tsx index d2f386f33..31b5fcbcc 100644 --- a/src/react/databrowser/objects/details/Properties.jsx +++ b/src/react/databrowser/objects/details/Properties.tsx @@ -16,13 +16,11 @@ import { push } from 'connected-react-router'; import { useLocation } from 'react-router'; import { Button } from '@scality/core-ui/dist/next'; type Props = { - objectMetadata: ObjectMetadata, + objectMetadata: ObjectMetadata; }; - const TruncatedValue = styled.div` max-width: 18rem; `; - const Icon = styled.i` margin-left: ${spacing.sp4}; `; @@ -30,7 +28,6 @@ const Icon = styled.i` function Properties({ objectMetadata }: Props) { const dispatch = useDispatch(); const { pathname } = useLocation(); - const loading = useSelector( (state: AppState) => state.networkActivity.counter > 0, ); @@ -46,7 +43,6 @@ function Properties({ objectMetadata }: Props) { dispatch(push(`${pathname}?${query.toString()}`)); } }, [objectMetadata.versionId]); - return (
@@ -143,7 +139,12 @@ function Properties({ objectMetadata }: Props) { Legal Hold -
+
+const convertToAWSTags = (tags) => tags - .filter(tag => tag.key !== '' && tag.value !== '') - .map(tag => ({ Key: tag.key, Value: tag.value })); + .filter((tag) => tag.key !== '' && tag.value !== '') + .map((tag) => ({ + Key: tag.key, + Value: tag.value, + })); type Props = { - objectMetadata: ObjectMetadata, + objectMetadata: ObjectMetadata; }; + function Properties({ objectMetadata }: Props) { const dispatch = useDispatch(); const { bucketName, objectKey, tags, versionId } = objectMetadata; const [items, setItems] = useState([EMPTY_ITEM]); - useEffect(() => { if (tags.length > 0) { setItems(tags); @@ -49,16 +52,16 @@ function Properties({ objectMetadata }: Props) { setItems([EMPTY_ITEM]); } }, [tags]); - // NOTE: invalid if at least one items is missing key or value but not both. const isValidItems = useMemo(() => { return !items.find( - i => (i.key === '' && i.value !== '') || (i.value === '' && i.key !== ''), + (i) => + (i.key === '' && i.value !== '') || (i.value === '' && i.key !== ''), ); }, [items]); const handleChange = (index: number) => ( - e: SyntheticInputEvent, + e: React.SyntheticEvent, ) => { const temp = [...items]; temp[index] = { ...temp[index], [e.target.name]: e.target.value }; @@ -73,10 +76,12 @@ function Properties({ objectMetadata }: Props) { const deleteEntry = (index: number) => { let temp = [EMPTY_ITEM]; + if (items.length > 1) { temp = [...items]; temp.splice(index, 1); } + setItems(temp); }; @@ -84,6 +89,7 @@ function Properties({ objectMetadata }: Props) { if (!isValidItems) { return; } + const tags = convertToAWSTags(items); dispatch(putObjectTagging(bucketName, objectKey, tags, versionId)); }; @@ -146,4 +152,4 @@ function Properties({ objectMetadata }: Props) { ); } -export default Properties; +export default Properties; \ No newline at end of file diff --git a/src/react/databrowser/objects/details/__tests__/Metadata.test.jsx b/src/react/databrowser/objects/details/__tests__/Metadata.test.tsx similarity index 94% rename from src/react/databrowser/objects/details/__tests__/Metadata.test.jsx rename to src/react/databrowser/objects/details/__tests__/Metadata.test.tsx index 1e63c1441..f65fab794 100644 --- a/src/react/databrowser/objects/details/__tests__/Metadata.test.jsx +++ b/src/react/databrowser/objects/details/__tests__/Metadata.test.tsx @@ -6,11 +6,12 @@ import Metadata from '../Metadata'; import { OBJECT_METADATA } from '../../../../actions/__tests__/utils/testUtil'; import React from 'react'; import { reduxMount } from '../../../../utils/test'; - describe('Metadata', () => { const putObjectMetadataMock = jest .spyOn(s3objects, 'putObjectMetadata') - .mockReturnValue({ type: '' }); + .mockReturnValue({ + type: '', + }); const optionLabels = [ 'cache-control', 'content-disposition', @@ -21,102 +22,84 @@ describe('Metadata', () => { 'content-language', 'expires', ]; - afterEach(() => { jest.clearAllMocks(); }); - it('Metadata should render', () => { const { component } = reduxMount( , ); - expect(component.find(Metadata).isEmptyRender()).toBe(false); }); - it('should render by default a SelectBox with empty values in each input when there are no key/value present', () => { const { component } = reduxMount( , ); - // check if only one item row is rendered const items = component.find(Item); expect(items).toHaveLength(1); - // check if item row values are rendered const firstItem = items.first(); expect(firstItem.find('input[name="mdKeyType"]').prop('value')).toBe(''); expect(firstItem.find('input.metadata-input-value').prop('value')).toBe(''); }); - it('should add new key/value metadata and should trigger function if save button is pressed', () => { const { component } = reduxMount( , ); - // check if only one item row is rendered let items = component.find(Item); expect(items).toHaveLength(1); - // open dropdown menu let firstItem = items.first(); const inputComponent = firstItem.find('input').first(); - inputComponent.simulate('keyDown', { key: 'ArrowDown', keyCode: 40 }); - + inputComponent.simulate('keyDown', { + key: 'ArrowDown', + keyCode: 40, + }); // check all options are present items = component.find(Item); firstItem = items.first(); const optionsComponents = firstItem.find('Option'); optionsComponents.forEach((optionComponent, index) => { - expect( - optionComponent - .find('.sc-select__option') - .first() - .text(), - ).toBe(optionLabels[index]); + expect(optionComponent.find('.sc-select__option').first().text()).toBe( + optionLabels[index], + ); }); - // select a key const firstOption = optionsComponents.first(); firstOption.simulate('click'); - // check dropdown menu disappear items = component.find(Item); firstItem = items.first(); expect(firstItem.find('Option')).toHaveLength(0); - // add a value to the key - firstItem - .find('input.metadata-input-value') - .simulate('change', { target: { value: 'value1' } }); - + firstItem.find('input.metadata-input-value').simulate('change', { + target: { + value: 'value1', + }, + }); // click on add button firstItem.find('button#addbtn0').simulate('click'); - // check if new item row added expect(component.find(Item)).toHaveLength(2); - // check if function when pressing save button is triggered expect(putObjectMetadataMock).toHaveBeenCalledTimes(0); component.find('button#metadata-button-save').simulate('click'); expect(putObjectMetadataMock).toHaveBeenCalledTimes(1); }); - it('remove button and add button should be disabled', () => { const { component } = reduxMount( , ); - // check if only one item row is rendered const items = component.find(Item); expect(items).toHaveLength(1); - // check if item row values are rendered const firstItem = items.first(); expect(firstItem.find('Button#addbtn0').prop('disabled')).toBe(true); expect(firstItem.find('Button#delbtn0').prop('disabled')).toBe(true); }); - it('should render SelectBox with key/value pass in props', () => { const { component } = reduxMount( { }} />, ); - // check if only one item row is rendered const items = component.find(Item); expect(items).toHaveLength(1); - // check if item row values are rendered const firstItem = items.first(); expect(firstItem.find('SelectBox[name="mdKeyType"]').prop('value')).toBe( @@ -145,22 +126,18 @@ describe('Metadata', () => { expect( firstItem.find('SelectBox[name="mdKeyType"]').prop('isDisabled'), ).toBe(false); - expect(firstItem.find('input.metadata-input-value').prop('value')).toBe( 'no-cache', ); expect(firstItem.find('input.metadata-input-value').prop('disabled')).toBe( false, ); - expect(firstItem.find('Button#addbtn0').prop('disabled')).toBe(false); expect(firstItem.find('Button#delbtn0').prop('disabled')).toBe(false); - expect(component.find('Button#metadata-button-save').prop('disabled')).toBe( false, ); }); - it('should disable inputs and buttons if versioning mode', () => { const { component } = reduxMount( { }} />, ); - // check if only one item row is rendered const items = component.find(Item); expect(items).toHaveLength(1); - // check if item row values are rendered const firstItem = items.first(); expect(firstItem.find('SelectBox[name="mdKeyType"]').prop('value')).toBe( @@ -190,22 +165,18 @@ describe('Metadata', () => { expect( firstItem.find('SelectBox[name="mdKeyType"]').prop('isDisabled'), ).toBe(true); - expect(firstItem.find('input.metadata-input-value').prop('value')).toBe( 'no-cache', ); expect(firstItem.find('input.metadata-input-value').prop('disabled')).toBe( true, ); - expect(firstItem.find('Button#addbtn0').prop('disabled')).toBe(true); expect(firstItem.find('Button#delbtn0').prop('disabled')).toBe(true); - expect(component.find('Button#metadata-button-save').prop('disabled')).toBe( true, ); }); - it('should delete key/value if remove button is pressed', () => { const { component } = reduxMount( { }} />, ); - // check if two item rows are rendered let items = component.find(Item); expect(items).toHaveLength(2); - // check if first item row values are rendered let firstItem = items.first(); expect(firstItem.find('SelectBox[name="mdKeyType"]').prop('value')).toBe( @@ -239,9 +208,8 @@ describe('Metadata', () => { expect(firstItem.find('input.metadata-input-value').prop('value')).toBe( 'no-cache', ); - // check if second item row values are rendered - let secondItem = items.at(1); + const secondItem = items.at(1); expect(secondItem.find('SelectBox[name="mdKeyType"]').prop('value')).toBe( 'x-amz-meta', ); @@ -251,18 +219,14 @@ describe('Metadata', () => { expect(secondItem.find('input.metadata-input-value').prop('value')).toBe( '1', ); - // check if first AddButton is hidden and second one is visible expect(firstItem.find('Button#addbtn0').prop('isVisible')).toBe(false); expect(secondItem.find('Button#addbtn1').prop('isVisible')).toBe(true); - // check if there is only one key/value left after triggered remove button firstItem.find('button#delbtn0').simulate('click'); - // check if only one item row is rendered items = component.find(Item); expect(items).toHaveLength(1); - // check if item row values are rendered firstItem = items.first(); expect(firstItem.find('SelectBox[name="mdKeyType"]').prop('value')).toBe( diff --git a/src/react/databrowser/objects/details/__tests__/Properties.test.jsx b/src/react/databrowser/objects/details/__tests__/Properties.test.tsx similarity index 98% rename from src/react/databrowser/objects/details/__tests__/Properties.test.jsx rename to src/react/databrowser/objects/details/__tests__/Properties.test.tsx index cabfb7574..951dc3286 100644 --- a/src/react/databrowser/objects/details/__tests__/Properties.test.jsx +++ b/src/react/databrowser/objects/details/__tests__/Properties.test.tsx @@ -5,69 +5,58 @@ import MiddleEllipsis from '../../../../ui-elements/MiddleEllipsis'; import React from 'react'; import Properties from '../Properties'; import router from 'react-router'; - describe('Properties', () => { beforeAll(() => { jest.spyOn(router, 'useLocation').mockReturnValue({ pathname: `/buckets/test/objects?prefix=${OBJECT_METADATA.objectKey}`, }); }); - it('Properties should render', () => { - jest.spyOn(router, 'useParams').mockReturnValue({ '0': undefined }); - + jest.spyOn(router, 'useParams').mockReturnValue({ + '0': undefined, + }); const { component } = reduxMount( , ); - expect(component.find(Properties).isEmptyRender()).toBe(false); }); - it('Properties should render expected values', () => { const { component } = reduxMount( , ); const groupInfos = component.find(T.Group); expect(groupInfos).toHaveLength(2); - // FIRST GROUP ITEMS TITLE const firstGroupInfos = groupInfos.first(); expect(firstGroupInfos.find(T.GroupName).text()).toContain('Information'); - // FIRST GROUP ITEMS const firstGroupInfosContentItems = firstGroupInfos .find(T.GroupContent) .find(T.Row); - const firstItemFirstGroup = firstGroupInfosContentItems.first(); expect(firstItemFirstGroup.find(T.Key).text()).toContain('Name'); expect(firstItemFirstGroup.find(T.Value).text()).toContain( OBJECT_METADATA.objectKey, ); - const secondItemFirstGroup = firstGroupInfosContentItems.at(1); expect(secondItemFirstGroup.find(T.Key).text()).toContain('Version ID'); expect(secondItemFirstGroup.find(MiddleEllipsis).text()).toContain( OBJECT_METADATA.versionId, ); - const thirdItemFirstGroup = firstGroupInfosContentItems.at(2); expect(thirdItemFirstGroup.find(T.Key).text()).toContain('Size'); expect(thirdItemFirstGroup.find(T.Value).text()).toContain('4 MiB'); - const fourthItemFirstGroup = firstGroupInfosContentItems.at(3); expect(fourthItemFirstGroup.find(T.Key).text()).toContain('Modified On'); expect(fourthItemFirstGroup.find(T.Value).text()).toContain( '2020-10-16 10:06:54', ); - const fifthItemFirstGroup = firstGroupInfosContentItems.at(4); expect(fifthItemFirstGroup.find(T.Key).text()).toContain('ETag'); expect(fifthItemFirstGroup.find(T.GroupValues).text()).toContain( OBJECT_METADATA.eTag, ); }); - it('Properties should render expected values when object is locked', () => { const { component } = reduxMount( { }, }, ); - const tableItems = component.find(T.Row); - const sixth = tableItems.at(5); expect(sixth.find(T.Key).text()).toContain('Lock'); expect(sixth.find(T.GroupValues).text()).toContain('Locked (governance)'); @@ -103,7 +90,6 @@ describe('Properties', () => { sixth.find('button#edit-object-retention-setting-btn').prop('label'), ).toBe('Edit'); }); - it('Properties should render expected values when lock is released', () => { const { component } = reduxMount( { }, }, ); - const tableItems = component.find(T.Row); - const sixth = tableItems.at(5); expect(sixth.find(T.Key).text()).toContain('Lock'); expect(sixth.find(T.GroupValues).text()).toContain( @@ -139,7 +123,6 @@ describe('Properties', () => { sixth.find('button#edit-object-retention-setting-btn').prop('label'), ).toBe('Edit'); }); - it('Properties should render expected legal hold value when the object lock is set', () => { const { component } = reduxMount( { }} />, ); - const tableItems = component.find(T.Row); - const seventh = tableItems.at(6); expect(seventh.find(T.Key).text()).toContain('Legal Hold'); expect(seventh.find(T.Value).text()).toContain('Active'); }); -}); +}); \ No newline at end of file diff --git a/src/react/databrowser/objects/details/__tests__/Tags.test.jsx b/src/react/databrowser/objects/details/__tests__/Tags.test.tsx similarity index 90% rename from src/react/databrowser/objects/details/__tests__/Tags.test.jsx rename to src/react/databrowser/objects/details/__tests__/Tags.test.tsx index 98d3e7eca..a830b5160 100644 --- a/src/react/databrowser/objects/details/__tests__/Tags.test.jsx +++ b/src/react/databrowser/objects/details/__tests__/Tags.test.tsx @@ -4,94 +4,85 @@ import { OBJECT_METADATA } from '../../../../actions/__tests__/utils/testUtil'; import React from 'react'; import Tags from '../Tags'; import { reduxMount } from '../../../../utils/test'; - describe('Tags', () => { const putObjectTaggingMock = jest .spyOn(s3objects, 'putObjectTagging') - .mockReturnValue({ type: '' }); - + .mockReturnValue({ + type: '', + }); afterEach(() => { jest.clearAllMocks(); }); - it('Tags should render', async () => { const { component } = reduxMount(); - expect(component.find(Tags).isEmptyRender()).toBe(false); }); - it('should render by default an Item with empty values in each input when there are no key/value present', () => { const { component } = reduxMount(); - // check if only one item row is rendered const items = component.find(Item); expect(items).toHaveLength(1); - // check if item row values are rendered const firstItem = items.first(); expect(firstItem.find('input.tags-input-key').prop('value')).toBe(''); expect(firstItem.find('input.tags-input-value').prop('value')).toBe(''); }); - it('should add new key/value tag and should trigger function if save button is pressed', () => { const { component } = reduxMount(); - // check if only one item row is rendered let items = component.find(Item); expect(items).toHaveLength(1); - // fill input key and input value const firstItem = items.first(); - firstItem - .find('input.tags-input-key') - .simulate('change', { target: { name: 'key', value: 'key1' } }); + firstItem.find('input.tags-input-key').simulate('change', { + target: { + name: 'key', + value: 'key1', + }, + }); firstItem.find('input.tags-input-value').simulate('change', { target: { name: 'value', value: 'value1', }, }); - // click on add button firstItem.find('button#addbtn0').simulate('click'); - // check if new item row added items = component.find(Item); expect(items).toHaveLength(2); - // check if function when pressing save button is triggered expect(putObjectTaggingMock).toHaveBeenCalledTimes(0); component.find('button#tags-button-save').simulate('click'); expect(putObjectTaggingMock).toHaveBeenCalledTimes(1); }); - it('remove button and add button should be disabled', () => { const { component } = reduxMount(); - // check if only one item row is rendered const items = component.find(Item); expect(items).toHaveLength(1); - // check if item row values are rendered const firstItem = items.first(); expect(firstItem.find('button#addbtn0').prop('disabled')).toBe(true); expect(firstItem.find('button#delbtn0').prop('disabled')).toBe(true); }); - it('should render an Item with key/value pass in props', () => { const { component } = reduxMount( , ); - // check if only one item row is rendered const items = component.find(Item); expect(items).toHaveLength(1); - // check if item row values are rendered const firstItem = items.first(); expect(firstItem.find('input.tags-input-key').prop('value')).toBe('key1'); @@ -99,49 +90,47 @@ describe('Tags', () => { 'value1', ); }); - it('should delete key/value if remove button is pressed', () => { const { component } = reduxMount( , ); - // check if two item rows are rendered let items = component.find(Item); expect(items).toHaveLength(2); - // check if first item row values are rendered let firstItem = items.first(); expect(firstItem.find('input.tags-input-key').prop('value')).toBe('key1'); expect(firstItem.find('input.tags-input-value').prop('value')).toBe( 'value1', ); - // check if second item row values are rendered - let secondItem = items.at(1); + const secondItem = items.at(1); expect(secondItem.find('input.tags-input-key').prop('value')).toBe('key2'); expect(secondItem.find('input.tags-input-value').prop('value')).toBe( 'value2', ); - // check if first AddButton is hidden and second one is visible expect(firstItem.find('Button#addbtn0').prop('isVisible')).toBe(false); expect(secondItem.find('Button#addbtn1').prop('isVisible')).toBe(true); - // check if there is only one key/value left after triggered remove button firstItem.find('button#delbtn0').simulate('click'); - // check if only one item row is rendered items = component.find(Item); expect(items).toHaveLength(1); - // check if item row values are rendered firstItem = items.first(); expect(firstItem.find('input.tags-input-key').prop('value')).toBe('key2'); diff --git a/src/react/databrowser/objects/utils.js b/src/react/databrowser/objects/utils.ts similarity index 90% rename from src/react/databrowser/objects/utils.js rename to src/react/databrowser/objects/utils.ts index abdd87bd2..3f1d78a59 100644 --- a/src/react/databrowser/objects/utils.js +++ b/src/react/databrowser/objects/utils.ts @@ -1,4 +1,3 @@ -// @flow import { DateTime, Duration } from 'luxon'; import type { ObjectMetadata } from '../../../types/s3'; @@ -20,7 +19,11 @@ function getDefaultRetention(objectMetadata: ObjectMetadata | null) { // get the min value for calendar picker in object retention setting, with yyyy-mm-dd as format function getDefaultMinRetainUntilDate(d: string, mode: string): string { const futureDate = DateTime.now() - .plus(Duration.fromObject({ days: 1 })) + .plus( + Duration.fromObject({ + days: 1, + }), + ) .toISODate(); if (!d) { @@ -32,7 +35,11 @@ function getDefaultMinRetainUntilDate(d: string, mode: string): string { mode === 'GOVERNANCE' ? DateTime.fromSQL(d).toISODate() : DateTime.fromSQL(d) - .plus(Duration.fromObject({ days: 1 })) + .plus( + Duration.fromObject({ + days: 1, + }), + ) .toISODate(); return previousRetainUntilDate.valueOf() > futureDate.valueOf() ? previousRetainUntilDate @@ -42,18 +49,21 @@ function getDefaultMinRetainUntilDate(d: string, mode: string): string { function getRetainUntilDateHint(d: string): string { const now = DateTime.now(); const retainUntilDate = DateTime.fromISO(d); - const diffInDays = retainUntilDate.diff(now, 'days'); const days = Math.floor(diffInDays.toObject().days); + if (days < 1) { return '(within 24 hours from now)'; } + if (days === 1) { return '(1 day from now)'; } + if (days >= 2) { return `(${days} days from now)`; } + return ''; } @@ -61,4 +71,4 @@ export { getDefaultRetention, getDefaultMinRetainUntilDate, getRetainUntilDateHint, -}; +}; \ No newline at end of file diff --git a/src/react/endpoint/EndpointCreate.jsx b/src/react/endpoint/EndpointCreate.tsx similarity index 97% rename from src/react/endpoint/EndpointCreate.jsx rename to src/react/endpoint/EndpointCreate.tsx index 0a1aac99f..68353ebb9 100644 --- a/src/react/endpoint/EndpointCreate.jsx +++ b/src/react/endpoint/EndpointCreate.tsx @@ -1,4 +1,3 @@ -// @flow import { Controller, useForm } from 'react-hook-form'; import FormContainer, * as F from '../ui-elements/FormLayout'; import React, { useRef } from 'react'; @@ -13,12 +12,8 @@ import { joiResolver } from '@hookform/resolvers'; import { push } from 'connected-react-router'; import { storageOptions } from '../backend/location/LocationDetails'; import { useOutsideClick } from '../utils/hooks'; - const schema = Joi.object({ - hostname: Joi.string() - .label('Host Name') - .required() - .min(3), + hostname: Joi.string().label('Host Name').required().min(3), locationName: Joi.string().required(), }); @@ -26,9 +21,7 @@ function EndpointCreate() { const { register, handleSubmit, errors, control } = useForm({ resolver: joiResolver(schema), }); - const dispatch = useDispatch(); - const hasError = useSelector( (state: AppState) => !!state.uiErrors.errorMsg && state.uiErrors.errorType === 'byComponent', @@ -39,7 +32,6 @@ function EndpointCreate() { const loading = useSelector( (state: AppState) => state.networkActivity.counter > 0, ); - const locations = useSelector( (state: AppState) => state.configuration.latest.locations, ); @@ -49,6 +41,7 @@ function EndpointCreate() { dispatch(clearError()); } }; + // clear server errors if clicked on outside of element. const formRef = useRef(null); useOutsideClick(formRef, clearServerError); @@ -154,4 +147,4 @@ function EndpointCreate() { ); } -export default EndpointCreate; +export default EndpointCreate; \ No newline at end of file diff --git a/src/react/endpoint/EndpointList.jsx b/src/react/endpoint/EndpointList.tsx similarity index 89% rename from src/react/endpoint/EndpointList.jsx rename to src/react/endpoint/EndpointList.tsx index da7cae9e6..388f15100 100644 --- a/src/react/endpoint/EndpointList.jsx +++ b/src/react/endpoint/EndpointList.tsx @@ -1,4 +1,3 @@ -// @flow import type { Endpoint, LocationName, Locations } from '../../types/config'; import MemoRow, { createItemData } from './EndpointRow'; import React, { useMemo, useRef } from 'react'; @@ -19,22 +18,19 @@ import { convertRemToPixels } from '@scality/core-ui/dist/utils'; import { getLocationTypeFromName } from '../utils/storageOptions'; import { push } from 'connected-react-router'; import { spacing } from '@scality/core-ui/dist/style/theme'; - type CellProps = { row: { - original: Endpoint, - }, + original: Endpoint; + }; }; - type Props = { - endpoints: Array, - locations: Locations, + endpoints: Array; + locations: Locations; }; function EndpointList({ endpoints, locations }: Props) { const dispatch = useDispatch(); - const listRef = useRef | null>(null); - + const listRef = useRef(null); const showDelete = useSelector( (state: AppState) => state.uiEndpoints.showDelete, ); @@ -43,6 +39,7 @@ function EndpointList({ endpoints, locations }: Props) { if (!showDelete) { return; } + dispatch(deleteEndpoint(showDelete)); }; @@ -59,6 +56,7 @@ function EndpointList({ endpoints, locations }: Props) { { Header: 'Location name', accessor: 'locationName', + Cell({ value: locationName }: { value: LocationName }) { const locationType = getLocationTypeFromName(locationName, locations); return ( @@ -74,13 +72,17 @@ function EndpointList({ endpoints, locations }: Props) { Header: '', accessor: 'isBuiltin', disableSortBy: true, + Cell({ row: { original } }: CellProps) { return ( } - tooltip={{ overlay: 'Delete Data Service', placement: 'top' }} + tooltip={{ + overlay: 'Delete Data Service', + placement: 'top', + }} onClick={() => dispatch(openEndpointDeleteDialog(original.hostname)) } @@ -93,7 +95,6 @@ function EndpointList({ endpoints, locations }: Props) { ], [locations, dispatch], ); - const { getTableProps, getTableBodyProps, @@ -112,7 +113,6 @@ function EndpointList({ endpoints, locations }: Props) { useFilters, useSortBy, ); - return ( setFilter('hostname', e.target.value)} + onChange={(e) => setFilter('hostname', e.target.value)} />
- {headerGroups.map(headerGroup => ( + {headerGroups.map((headerGroup) => ( - {headerGroup.headers.map(column => ( + {headerGroup.headers.map((column) => ( - {({ height, width }) => ( - // ISSUE: https://github.com/bvaughn/react-window/issues/504 - // eslint-disable-next-line flowtype-errors/show-errors + {( + { height, width }, // ISSUE: https://github.com/bvaughn/react-window/issues/504 + ) => ( void; - +type PrepareRow = (arg0: RowType) => void; type RowType = { - id: number, - original: Endpoint, - cells: any, - getRowProps: any => void, + id: number; + original: Endpoint; + cells: any; + getRowProps: (arg0: any) => void; }; - type RowsType = Array; - type Data = { - rows: RowsType, - prepareRow: PrepareRow, + rows: RowsType; + prepareRow: PrepareRow; }; - type RowProps = { - data: Data, - index: number, - style: Object, + data: Data; + index: number; + style: Record; }; - // createItemData: This helper function memoizes incoming props, // To avoid causing unnecessary re-renders pure MemoRow components. // This is only needed since we are passing multiple props with a wrapper object. @@ -45,8 +37,12 @@ const Row = ({ data: { rows, prepareRow }, index, style }: RowProps) => { const row = rows[index]; prepareRow(row); return ( - - {row.cells.map(cell => { + + {row.cells.map((cell) => { const cellProps = cell.getCellProps(); return ( { ); }; -export default memo(Row, areEqual); +export default memo(Row, areEqual); \ No newline at end of file diff --git a/src/react/endpoint/Endpoints.jsx b/src/react/endpoint/Endpoints.tsx similarity index 97% rename from src/react/endpoint/Endpoints.jsx rename to src/react/endpoint/Endpoints.tsx index f019ab302..f5b733b4e 100644 --- a/src/react/endpoint/Endpoints.jsx +++ b/src/react/endpoint/Endpoints.tsx @@ -1,4 +1,3 @@ -// @flow import * as L from '../ui-elements/ListLayout'; import { useDispatch, useSelector } from 'react-redux'; import type { AppState } from '../../types/state'; @@ -39,4 +38,4 @@ const Endpoints = () => { ); }; -export default Endpoints; +export default Endpoints; \ No newline at end of file diff --git a/src/react/reducers/account.js b/src/react/reducers/account.ts similarity index 80% rename from src/react/reducers/account.js rename to src/react/reducers/account.ts index ce993abaa..a609af32d 100644 --- a/src/react/reducers/account.js +++ b/src/react/reducers/account.ts @@ -1,20 +1,16 @@ -// @flow import type { AccountAction } from '../../types/actions'; import type { AccountState } from '../../types/state'; import { initialAccountState } from './initialConstants'; - export default function account( state: AccountState = initialAccountState, action: AccountAction, ) { switch (action.type) { case 'LIST_ACCOUNT_ACCESS_KEY_SUCCESS': { - return { - ...state, - accessKeyList: action.accessKeys, - }; + return { ...state, accessKeyList: action.accessKeys }; } + default: return state; } -} +} \ No newline at end of file diff --git a/src/react/reducers/auth.js b/src/react/reducers/auth.js deleted file mode 100644 index 929798caf..000000000 --- a/src/react/reducers/auth.js +++ /dev/null @@ -1,54 +0,0 @@ -// @flow -import type { AuthAction } from '../../types/actions'; -import type { AuthState } from '../../types/state'; -import { initialAuthState } from './initialConstants'; - -export default function auth( - state: AuthState = initialAuthState, - action: AuthAction, -) { - switch (action.type) { - case 'SET_STS_CLIENT': - return { - ...state, - stsClient: action.stsClient, - }; - case 'SET_OIDC_LOGOUT': - return { - ...state, - oidcLogout: action.logout, - }; - case 'SET_MANAGEMENT_CLIENT': - return { - ...state, - managementClient: action.managementClient, - }; - case 'SET_APP_CONFIG': - return { - ...state, - config: action.config, - }; - case 'CONFIG_AUTH_FAILURE': - return { - ...state, - configFailure: true, - }; - case 'LOAD_CONFIG_SUCCESS': - return { - ...state, - isConfigLoaded: true, - }; - case 'LOAD_CLIENTS_SUCCESS': - return { - ...state, - isClientsLoaded: true, - }; - case 'SELECT_ACCOUNT': - return { - ...state, - selectedAccount: action.account, - }; - default: - return state; - } -} diff --git a/src/react/reducers/auth.ts b/src/react/reducers/auth.ts new file mode 100644 index 000000000..01de719af --- /dev/null +++ b/src/react/reducers/auth.ts @@ -0,0 +1,36 @@ +import type { AuthAction } from '../../types/actions'; +import type { AuthState } from '../../types/state'; +import { initialAuthState } from './initialConstants'; +export default function auth( + state: AuthState = initialAuthState, + action: AuthAction, +) { + switch (action.type) { + case 'SET_STS_CLIENT': + return { ...state, stsClient: action.stsClient }; + + case 'SET_OIDC_LOGOUT': + return { ...state, oidcLogout: action.logout }; + + case 'SET_MANAGEMENT_CLIENT': + return { ...state, managementClient: action.managementClient }; + + case 'SET_APP_CONFIG': + return { ...state, config: action.config }; + + case 'CONFIG_AUTH_FAILURE': + return { ...state, configFailure: true }; + + case 'LOAD_CONFIG_SUCCESS': + return { ...state, isConfigLoaded: true }; + + case 'LOAD_CLIENTS_SUCCESS': + return { ...state, isClientsLoaded: true }; + + case 'SELECT_ACCOUNT': + return { ...state, selectedAccount: action.account }; + + default: + return state; + } +} \ No newline at end of file diff --git a/src/react/reducers/bucket.js b/src/react/reducers/bucket.ts similarity index 75% rename from src/react/reducers/bucket.js rename to src/react/reducers/bucket.ts index c4fe8a24a..a02885a45 100644 --- a/src/react/reducers/bucket.js +++ b/src/react/reducers/bucket.ts @@ -1,13 +1,10 @@ import { initialBucketState } from './initialConstants'; - export default function bucket(state = initialBucketState, action) { switch (action.type) { case 'UPDATE_BUCKET_LIST': - return { - ...state, - list: action.list, - }; + return { ...state, list: action.list }; + default: return state; } -} +} \ No newline at end of file diff --git a/src/react/reducers/configuration.js b/src/react/reducers/configuration.ts similarity index 88% rename from src/react/reducers/configuration.js rename to src/react/reducers/configuration.ts index 8b839233a..8318b8ec4 100644 --- a/src/react/reducers/configuration.js +++ b/src/react/reducers/configuration.ts @@ -1,8 +1,6 @@ -// @flow import type { ConfigurationAction } from '../../types/actions'; import type { ConfigurationState } from '../../types/state'; import { initialConfiguration } from './initialConstants'; - export default function configuration( state: ConfigurationState = initialConfiguration, action: ConfigurationAction, @@ -17,11 +15,9 @@ export default function configuration( // }; // } case 'CONFIGURATION_VERSION': - return { - ...state, - latest: action.configuration, - }; + return { ...state, latest: action.configuration }; + default: return state; } -} +} \ No newline at end of file diff --git a/src/react/reducers/index.js b/src/react/reducers/index.ts similarity index 95% rename from src/react/reducers/index.js rename to src/react/reducers/index.ts index 348831326..8bfbde3b3 100644 --- a/src/react/reducers/index.js +++ b/src/react/reducers/index.ts @@ -24,7 +24,7 @@ import user from './user'; import workflow from './workflow'; import zenko from './zenko'; -const zenkoUIReducer = history => +const zenkoUIReducer = (history) => combineReducers({ account, auth, @@ -52,4 +52,4 @@ const zenkoUIReducer = history => zenko: zenko, }); -export default zenkoUIReducer; +export default zenkoUIReducer; \ No newline at end of file diff --git a/src/react/reducers/initialConstants.js b/src/react/reducers/initialConstants.ts similarity index 94% rename from src/react/reducers/initialConstants.js rename to src/react/reducers/initialConstants.ts index 90a8be1e9..058483bea 100644 --- a/src/react/reducers/initialConstants.js +++ b/src/react/reducers/initialConstants.ts @@ -1,5 +1,4 @@ // @noflow - import type { AccountState, AccountsUIState, @@ -21,17 +20,14 @@ import { MockManagementClient } from '../../js/mock/managementClient'; import { MockSTSClient } from '../../js/mock/STSClient'; import { MockZenkoClient } from '../../js/mock/ZenkoClient'; import { defaultTheme } from '@scality/core-ui/dist/style/theme'; - export const initialAccountState: AccountState = { display: {}, accessKeyList: [], }; - export const initialAccountsUIState: AccountsUIState = { showDelete: false, showKeyCreate: false, }; - export const initialAuthState: AuthState = { isConfigLoaded: false, isClientsLoaded: false, @@ -43,13 +39,11 @@ export const initialAuthState: AuthState = { }, oidcLogout: null, }; - export const initialConfigUIState = { theme: { brand: defaultTheme.darkRebrand, }, }; - export const initialS3State: S3State = { listBucketsResults: { list: List(), @@ -63,10 +57,12 @@ export const initialS3State: S3State = { }, objectMetadata: null, }; - -export const initialBucketState = { list: [] }; -export const initialBucketUIState: BucketsUIState = { showDelete: '' }; - +export const initialBucketState = { + list: [], +}; +export const initialBucketUIState: BucketsUIState = { + showDelete: '', +}; export const initialConfiguration: ConfigurationState = { latest: { version: 1, @@ -82,7 +78,6 @@ export const initialConfiguration: ConfigurationState = { }, }, }; - export const initialErrorsUIState: ErrorsUIState = { errorMsg: null, errorType: null, @@ -148,7 +143,9 @@ export const initialInstanceStatus: InstanceStatusState = { count: 0, size: 0, }, - stalled: { count: 0 }, + stalled: { + count: 0, + }, byLocation: {}, }, 'crr-schedule': { @@ -162,8 +159,12 @@ export const initialInstanceStatus: InstanceStatusState = { }, }, }; -export const initialLocationsUIState = { showDeleteLocation: '' }; -export const initialEndpointsUIState = { showDelete: '' }; +export const initialLocationsUIState = { + showDeleteLocation: '', +}; +export const initialEndpointsUIState = { + showDelete: '', +}; export const initialNetworkActivityState: NetworkActivityState = { counter: 0, messages: List(), @@ -171,13 +172,11 @@ export const initialNetworkActivityState: NetworkActivityState = { export const initialOidc: OIDCState = { user: null, }; - export const initialObjectUIState: ObjectsUIState = { showFolderCreate: false, showObjectUpload: false, showObjectDelete: false, }; - export const initialSecretsState = { accountKey: null, }; @@ -196,7 +195,6 @@ export const initialUserState = { groupList: [], displayedUser: {}, }; - export const initialZenkoState = { zenkoClient: new MockZenkoClient(), error: { @@ -206,17 +204,14 @@ export const initialZenkoState = { type: null, }, }; - export const initialWorkflowsUIState: WorkflowsUIState = { showEditWorkflowNotification: false, showWorkflowDeleteModal: false, }; - export const initialWorkflowState: WorkflowState = { list: [], replications: [], }; - export const initialFullState = { account: initialAccountState, auth: initialAuthState, @@ -240,4 +235,4 @@ export const initialFullState = { oidc: initialOidc, workflow: initialWorkflowState, zenko: initialZenkoState, -}; +}; \ No newline at end of file diff --git a/src/react/reducers/instanceStatus.js b/src/react/reducers/instanceStatus.ts similarity index 92% rename from src/react/reducers/instanceStatus.js rename to src/react/reducers/instanceStatus.ts index 34673cba9..6cc46aee9 100644 --- a/src/react/reducers/instanceStatus.js +++ b/src/react/reducers/instanceStatus.ts @@ -1,9 +1,7 @@ -// @flow import type { InstanceStatusAction } from '../../types/actions'; import type { InstanceStatusState } from '../../types/state'; import { initialInstanceStatus } from './initialConstants'; - -export default function( +export default function ( state: InstanceStatusState = initialInstanceStatus, action: InstanceStatusAction, ) { @@ -13,7 +11,8 @@ export default function( ...state, latest: action.status || initialInstanceStatus.latest, }; + default: return state; } -} +} \ No newline at end of file diff --git a/src/react/reducers/instances.js b/src/react/reducers/instances.ts similarity index 81% rename from src/react/reducers/instances.js rename to src/react/reducers/instances.ts index bd8c8c2ec..a079a49c9 100644 --- a/src/react/reducers/instances.js +++ b/src/react/reducers/instances.ts @@ -1,19 +1,15 @@ -// @flow import type { InstancesState } from '../../types/state'; import type { SelectInstanceAction } from '../../types/actions'; import { initialInstancesState } from './initialConstants'; - export default function instances( state: InstancesState = initialInstancesState, action: SelectInstanceAction, ) { switch (action.type) { case 'SELECT_INSTANCE': - return { - ...state, - selectedId: action.selectedId, - }; + return { ...state, selectedId: action.selectedId }; + default: return state; } -} +} \ No newline at end of file diff --git a/src/react/reducers/networkActivity.js b/src/react/reducers/networkActivity.ts similarity index 84% rename from src/react/reducers/networkActivity.js rename to src/react/reducers/networkActivity.ts index d63ea73c2..254752d3c 100644 --- a/src/react/reducers/networkActivity.js +++ b/src/react/reducers/networkActivity.ts @@ -1,8 +1,6 @@ -// @flow import type { NetworkActivityAction } from '../../types/actions'; import type { NetworkActivityState } from '../../types/state'; import { initialNetworkActivityState } from './initialConstants'; - export default function networkActivity( state: NetworkActivityState = initialNetworkActivityState, action: NetworkActivityAction, @@ -14,25 +12,23 @@ export default function networkActivity( counter: state.counter + 1, messages: state.messages.unshift(action.message), }; + case 'NETWORK_END': return { ...state, counter: Math.max(state.counter - 1, 0), messages: state.messages.shift(), }; + case 'NETWORK_AUTH_FAILURE': - return { - ...state, - authFailure: true, - }; + return { ...state, authFailure: true }; + case 'NETWORK_AUTH_RESET': case 'ADD_OIDC_USER': case 'LOAD_CLIENTS_SUCCESS': - return { - ...state, - authFailure: false, - }; + return { ...state, authFailure: false }; + default: return state; } -} +} \ No newline at end of file diff --git a/src/react/reducers/oidc.js b/src/react/reducers/oidc.ts similarity index 81% rename from src/react/reducers/oidc.js rename to src/react/reducers/oidc.ts index a4196db05..9364d0813 100644 --- a/src/react/reducers/oidc.js +++ b/src/react/reducers/oidc.ts @@ -1,20 +1,15 @@ -// @flow import type { OIDCAction } from '../../types/actions'; import type { OIDCState } from '../../types/state'; - import { initialNetworkActivityState } from './initialConstants'; - export default function oidc( state: OIDCState = initialNetworkActivityState, action: OIDCAction, ) { switch (action.type) { case 'ADD_OIDC_USER': - return { - ...state, - user: action.user, - }; + return { ...state, user: action.user }; + default: return state; } -} +} \ No newline at end of file diff --git a/src/react/reducers/s3.js b/src/react/reducers/s3.ts similarity index 92% rename from src/react/reducers/s3.js rename to src/react/reducers/s3.ts index 0909c68f4..cf366a30e 100644 --- a/src/react/reducers/s3.js +++ b/src/react/reducers/s3.ts @@ -1,4 +1,3 @@ -// @flow import { LIST_OBJECTS_METADATA_TYPE, LIST_OBJECTS_S3_TYPE, @@ -30,13 +29,13 @@ import { List } from 'immutable'; import type { S3State } from '../../types/state'; import { initialS3State } from './initialConstants'; -const sortByDate = objs => +const sortByDate = (objs) => objs.sort((a, b) => new Date(b.CreationDate) - new Date(a.CreationDate)); const objects = (objs, prefix): Array => objs - .filter(o => o.Key !== prefix) - .map(o => { + .filter((o) => o.Key !== prefix) + .map((o) => { return { name: o.Key.replace(prefix, ''), key: o.Key, @@ -52,7 +51,7 @@ const objects = (objs, prefix): Array => }); const folder = (objs, prefix): Array => - objs.map(o => { + objs.map((o) => { return { name: o.Prefix.replace(prefix, ''), key: o.Prefix, @@ -64,7 +63,8 @@ const folder = (objs, prefix): Array => }); const _getObjectLockInformation = ( - o: | S3Object + o: + | S3Object | S3Version | SearchResult | S3DeleteMarker @@ -91,7 +91,7 @@ const _getObjectLockInformation = ( }; const search = (objs): Array => { - return objs.map(o => { + return objs.map((o) => { return { name: o.Key, key: o.Key, @@ -114,8 +114,8 @@ const versioning = ( ) => { const results = mergeSortedVersionsAndDeleteMarkers(versions, deleteMarkers); return results - .filter(o => o.Key !== prefix) - .map(o => { + .filter((o) => o.Key !== prefix) + .map((o) => { return { name: o.Key.replace(prefix, ''), key: o.Key, @@ -135,26 +135,31 @@ const versioning = ( const convertToFormMetadata = (info): MetadataPairs => { const pairs = systemMetadataKeys - .filter(key => info[key]) - .map(key => { + .filter((key) => info[key]) + .map((key) => { return { key: key, value: info[key], type: METADATA_SYSTEM_TYPE, }; }); - for (let key in info.Metadata) { + + for (const key in info.Metadata) { pairs.push({ key: key, value: info.Metadata[key], type: METADATA_USER_TYPE, }); } + return pairs; }; const convertToFormTags = (tags: TagSet): Tags => - tags.map(t => ({ key: t.Key, value: t.Value })); + tags.map((t) => ({ + key: t.Key, + value: t.Value, + })); export default function s3(state: S3State = initialS3State, action: S3Action) { switch (action.type) { @@ -166,11 +171,10 @@ export default function s3(state: S3State = initialS3State, action: S3Action) { ownerName: action.ownerName, }, }; + case 'GET_BUCKET_INFO_SUCCESS': - return { - ...state, - bucketInfo: action.info, - }; + return { ...state, bucketInfo: action.info }; + case 'LIST_OBJECTS_SUCCESS': return { ...state, @@ -183,6 +187,7 @@ export default function s3(state: S3State = initialS3State, action: S3Action) { nextMarker: action.nextMarker, }, }; + case 'CONTINUE_LIST_OBJECTS_SUCCESS': return { ...state, @@ -195,6 +200,7 @@ export default function s3(state: S3State = initialS3State, action: S3Action) { nextMarker: action.nextMarker, }, }; + case 'LIST_OBJECT_VERSIONS_SUCCESS': return { ...state, @@ -208,6 +214,7 @@ export default function s3(state: S3State = initialS3State, action: S3Action) { nextVersionIdMarker: action.nextVersionIdMarker, }, }; + case 'CONTINUE_LIST_OBJECT_VERSIONS_SUCCESS': return { ...state, @@ -221,6 +228,7 @@ export default function s3(state: S3State = initialS3State, action: S3Action) { nextVersionIdMarker: action.nextVersionIdMarker, }, }; + case 'ZENKO_CLIENT_WRITE_SEARCH_LIST': return { ...state, @@ -230,29 +238,32 @@ export default function s3(state: S3State = initialS3State, action: S3Action) { nextMarker: action.nextMarker, }, }; + case 'TOGGLE_OBJECT': return { ...state, listObjectsResults: { ...state.listObjectsResults, - list: state.listObjectsResults.list.map(o => + list: state.listObjectsResults.list.map((o) => o.key === action.objectKey && o.versionId === action.versionId ? { ...o, toggled: !o.toggled } : o, ), }, }; + case 'TOGGLE_ALL_OBJECTS': return { ...state, listObjectsResults: { ...state.listObjectsResults, - list: state.listObjectsResults.list.map(o => ({ + list: state.listObjectsResults.list.map((o) => ({ ...o, toggled: action.toggled, })), }, }; + case 'GET_OBJECT_METADATA_SUCCESS': return { ...state, @@ -269,11 +280,10 @@ export default function s3(state: S3State = initialS3State, action: S3Action) { isLegalHoldEnabled: action.isLegalHoldEnabled, }, }; + case 'RESET_OBJECT_METADATA': - return { - ...state, - objectMetadata: null, - }; + return { ...state, objectMetadata: null }; + default: return state; } diff --git a/src/react/reducers/secrets.js b/src/react/reducers/secrets.ts similarity index 88% rename from src/react/reducers/secrets.js rename to src/react/reducers/secrets.ts index 1c49f7255..da8dc6d54 100644 --- a/src/react/reducers/secrets.js +++ b/src/react/reducers/secrets.ts @@ -1,9 +1,6 @@ -// @flow - import type { SecretsAction } from '../../types/actions'; import type { SecretsState } from '../../types/state'; import { initialSecretsState } from './initialConstants'; - export default function secrets( state: SecretsState = initialSecretsState, action: SecretsAction, @@ -18,12 +15,11 @@ export default function secrets( secretKey: action.secretKey, }, }; + case 'DELETE_ACCOUNT_SECRET': - return { - ...state, - accountKey: null, - }; + return { ...state, accountKey: null }; + default: return state; } -} +} \ No newline at end of file diff --git a/src/react/reducers/stats.js b/src/react/reducers/stats.ts similarity index 86% rename from src/react/reducers/stats.js rename to src/react/reducers/stats.ts index 44bbc531f..b6eb9350d 100644 --- a/src/react/reducers/stats.js +++ b/src/react/reducers/stats.ts @@ -1,9 +1,6 @@ -// @flow - import type { StatsAction } from '../../types/actions'; import type { StatsState } from '../../types/state'; import { initialStatsState } from './initialConstants'; - export default function stats( state: StatsState = initialStatsState, action: StatsAction, @@ -12,12 +9,10 @@ export default function stats( case 'INSTANCE_STATUS': { const bucketList = action.status?.metrics?.['item-counts']?.bucketList || []; - return { - ...state, - bucketList, - }; + return { ...state, bucketList }; } + default: return state; } -} +} \ No newline at end of file diff --git a/src/react/reducers/uiAccounts.js b/src/react/reducers/uiAccounts.ts similarity index 65% rename from src/react/reducers/uiAccounts.js rename to src/react/reducers/uiAccounts.ts index 6393ec1b7..6391d5afe 100644 --- a/src/react/reducers/uiAccounts.js +++ b/src/react/reducers/uiAccounts.ts @@ -1,35 +1,24 @@ -// @flow - import type { AccountUIAction } from '../../types/actions'; import type { AccountsUIState } from '../../types/state'; import { initialAccountsUIState } from './initialConstants'; - export default function uiAccounts( state: AccountsUIState = initialAccountsUIState, action: AccountUIAction, ): AccountsUIState { switch (action.type) { case 'OPEN_ACCOUNT_DELETE_DIALOG': - return { - ...state, - showDelete: true, - }; + return { ...state, showDelete: true }; + case 'CLOSE_ACCOUNT_DELETE_DIALOG': - return { - ...state, - showDelete: false, - }; + return { ...state, showDelete: false }; + case 'OPEN_ACCOUNT_KEY_CREATE_MODAL': - return { - ...state, - showKeyCreate: true, - }; + return { ...state, showKeyCreate: true }; + case 'CLOSE_ACCOUNT_KEY_CREATE_MODAL': - return { - ...state, - showKeyCreate: false, - }; + return { ...state, showKeyCreate: false }; + default: return state; } -} +} \ No newline at end of file diff --git a/src/react/reducers/uiBuckets.js b/src/react/reducers/uiBuckets.ts similarity index 73% rename from src/react/reducers/uiBuckets.js rename to src/react/reducers/uiBuckets.ts index 83f25f4d1..0d161f02b 100644 --- a/src/react/reducers/uiBuckets.js +++ b/src/react/reducers/uiBuckets.ts @@ -1,26 +1,18 @@ -// @flow - import type { BucketsUIAction } from '../../types/actions'; import type { BucketsUIState } from '../../types/state'; - import { initialBucketUIState } from './initialConstants'; - export default function uiBuckets( state: BucketsUIState = initialBucketUIState, action: BucketsUIAction, ) { switch (action.type) { case 'OPEN_BUCKET_DELETE_DIALOG': - return { - ...state, - showDelete: action.bucketName, - }; + return { ...state, showDelete: action.bucketName }; + case 'CLOSE_BUCKET_DELETE_DIALOG': - return { - ...state, - showDelete: '', - }; + return { ...state, showDelete: '' }; + default: return state; } -} +} \ No newline at end of file diff --git a/src/react/reducers/uiConfig.js b/src/react/reducers/uiConfig.ts similarity index 81% rename from src/react/reducers/uiConfig.js rename to src/react/reducers/uiConfig.ts index d79b091c5..eed6f27ed 100644 --- a/src/react/reducers/uiConfig.js +++ b/src/react/reducers/uiConfig.ts @@ -1,19 +1,15 @@ -// @flow import type { ConfigUIState } from '../../types/state'; import type { SetThemeAction } from '../../types/actions'; import { initialConfigUIState } from './initialConstants'; - export default function uiConfig( state: ConfigUIState = initialConfigUIState, action: SetThemeAction, ) { switch (action.type) { case 'SET_THEME': - return { - ...state, - theme: action.theme, - }; + return { ...state, theme: action.theme }; + default: return state; } -} +} \ No newline at end of file diff --git a/src/react/reducers/uiEndpoints.js b/src/react/reducers/uiEndpoints.ts similarity index 75% rename from src/react/reducers/uiEndpoints.js rename to src/react/reducers/uiEndpoints.ts index 2285273f0..5c4187dec 100644 --- a/src/react/reducers/uiEndpoints.js +++ b/src/react/reducers/uiEndpoints.ts @@ -1,25 +1,18 @@ -// @flow - import type { EndpointsUIAction } from '../../types/actions'; import type { EndpointsUIState } from '../../types/state'; import { initialEndpointsUIState } from './initialConstants'; - export default function uiEndpoints( state: EndpointsUIState = initialEndpointsUIState, action: EndpointsUIAction, ): EndpointsUIState { switch (action.type) { case 'OPEN_ENDPOINT_DELETE_DIALOG': - return { - ...state, - showDelete: action.hostname, - }; + return { ...state, showDelete: action.hostname }; + case 'CLOSE_ENDPOINT_DELETE_DIALOG': - return { - ...state, - showDelete: '', - }; + return { ...state, showDelete: '' }; + default: return state; } -} +} \ No newline at end of file diff --git a/src/react/reducers/uiErrors.js b/src/react/reducers/uiErrors.ts similarity index 84% rename from src/react/reducers/uiErrors.js rename to src/react/reducers/uiErrors.ts index 267b6a07d..51a54ddd0 100644 --- a/src/react/reducers/uiErrors.js +++ b/src/react/reducers/uiErrors.ts @@ -1,8 +1,6 @@ -// @flow import type { ErrorsUIAction } from '../../types/actions'; import type { ErrorsUIState } from '../../types/state'; import { initialErrorsUIState } from './initialConstants'; - export default function uiErrors( state: ErrorsUIState = initialErrorsUIState, action: ErrorsUIAction, @@ -14,14 +12,12 @@ export default function uiErrors( errorMsg: action.errorMsg, errorType: action.errorType, }; + case 'NETWORK_AUTH_RESET': case 'CLEAR_ERROR': - return { - ...state, - errorMsg: null, - errorType: null, - }; + return { ...state, errorMsg: null, errorType: null }; + default: return state; } -} +} \ No newline at end of file diff --git a/src/react/reducers/uiLocations.js b/src/react/reducers/uiLocations.ts similarity index 63% rename from src/react/reducers/uiLocations.js rename to src/react/reducers/uiLocations.ts index 08fc3b2ff..e39a56ca2 100644 --- a/src/react/reducers/uiLocations.js +++ b/src/react/reducers/uiLocations.ts @@ -1,18 +1,13 @@ import { initialLocationsUIState } from './initialConstants'; - export default function uiLocations(state = initialLocationsUIState, action) { switch (action.type) { case 'OPEN_LOCATION_DELETE_DIALOG': - return { - ...state, - showDeleteLocation: action.locationName, - }; + return { ...state, showDeleteLocation: action.locationName }; + case 'CLOSE_LOCATION_DELETE_DIALOG': - return { - ...state, - showDeleteLocation: '', - }; + return { ...state, showDeleteLocation: '' }; + default: return state; } -} +} \ No newline at end of file diff --git a/src/react/reducers/uiObjects.js b/src/react/reducers/uiObjects.ts similarity index 55% rename from src/react/reducers/uiObjects.js rename to src/react/reducers/uiObjects.ts index e6f6a0ebb..c469baca0 100644 --- a/src/react/reducers/uiObjects.js +++ b/src/react/reducers/uiObjects.ts @@ -1,46 +1,30 @@ -// @flow - import type { ObjectsUIAction } from '../../types/actions'; import type { ObjectsUIState } from '../../types/state'; - import { initialObjectUIState } from './initialConstants'; - export default function uiObjects( state: ObjectsUIState = initialObjectUIState, action: ObjectsUIAction, ) { switch (action.type) { case 'OPEN_FOLDER_CREATE_MODAL': - return { - ...state, - showFolderCreate: true, - }; + return { ...state, showFolderCreate: true }; + case 'CLOSE_FOLDER_CREATE_MODAL': - return { - ...state, - showFolderCreate: false, - }; + return { ...state, showFolderCreate: false }; + case 'OPEN_OBJECT_UPLOAD_MODAL': - return { - ...state, - showObjectUpload: true, - }; + return { ...state, showObjectUpload: true }; + case 'CLOSE_OBJECT_UPLOAD_MODAL': - return { - ...state, - showObjectUpload: false, - }; + return { ...state, showObjectUpload: false }; + case 'OPEN_OBJECT_DELETE_MODAL': - return { - ...state, - showObjectDelete: true, - }; + return { ...state, showObjectDelete: true }; + case 'CLOSE_OBJECT_DELETE_MODAL': - return { - ...state, - showObjectDelete: false, - }; + return { ...state, showObjectDelete: false }; + default: return state; } -} +} \ No newline at end of file diff --git a/src/react/reducers/uiUser.js b/src/react/reducers/uiUser.js deleted file mode 100644 index b38101d98..000000000 --- a/src/react/reducers/uiUser.js +++ /dev/null @@ -1,39 +0,0 @@ -import { initialUserUIState } from './initialConstants'; - -export default function uiUser(state = initialUserUIState, action) { - switch (action.type) { - case 'OPEN_USER_DELETE_DIALOG': - return { - ...state, - showDelete: true, - }; - case 'CLOSE_USER_DELETE_DIALOG': - return { - ...state, - showDelete: false, - }; - - case 'OPEN_KEY_DELETE_DIALOG': - return { - ...state, - showDeleteKey: action.accessKey, - }; - case 'CLOSE_KEY_DELETE_DIALOG': - return { - ...state, - showDeleteKey: null, - }; - case 'OPEN_SECRET_DIALOG': - return { - ...state, - showSecret: action.accessKey, - }; - case 'CLOSE_SECRET_DIALOG': - return { - ...state, - showSecret: null, - }; - default: - return state; - } -} diff --git a/src/react/reducers/uiUser.ts b/src/react/reducers/uiUser.ts new file mode 100644 index 000000000..c3d568a6d --- /dev/null +++ b/src/react/reducers/uiUser.ts @@ -0,0 +1,25 @@ +import { initialUserUIState } from './initialConstants'; +export default function uiUser(state = initialUserUIState, action) { + switch (action.type) { + case 'OPEN_USER_DELETE_DIALOG': + return { ...state, showDelete: true }; + + case 'CLOSE_USER_DELETE_DIALOG': + return { ...state, showDelete: false }; + + case 'OPEN_KEY_DELETE_DIALOG': + return { ...state, showDeleteKey: action.accessKey }; + + case 'CLOSE_KEY_DELETE_DIALOG': + return { ...state, showDeleteKey: null }; + + case 'OPEN_SECRET_DIALOG': + return { ...state, showSecret: action.accessKey }; + + case 'CLOSE_SECRET_DIALOG': + return { ...state, showSecret: null }; + + default: + return state; + } +} \ No newline at end of file diff --git a/src/react/reducers/uiWorkflows.js b/src/react/reducers/uiWorkflows.ts similarity index 64% rename from src/react/reducers/uiWorkflows.js rename to src/react/reducers/uiWorkflows.ts index 66345256c..56a4ca444 100644 --- a/src/react/reducers/uiWorkflows.js +++ b/src/react/reducers/uiWorkflows.ts @@ -1,37 +1,26 @@ -// @flow - import { LOCATION_CHANGE } from 'connected-react-router'; import type { WorkflowUIAction } from '../../types/actions'; import type { WorkflowsUIState } from '../../types/state'; import { initialWorkflowsUIState } from './initialConstants'; - export default function uiWorkflows( state: WorkflowsUIState = initialWorkflowsUIState, action: WorkflowUIAction, ) { switch (action.type) { case 'OPEN_WORKFLOW_EDIT_NOTIFICATION': - return { - ...state, - showEditWorkflowNotification: true, - }; + return { ...state, showEditWorkflowNotification: true }; + case LOCATION_CHANGE: case 'CLOSE_WORKFLOW_EDIT_NOTIFICATION': - return { - ...state, - showEditWorkflowNotification: false, - }; + return { ...state, showEditWorkflowNotification: false }; + case 'OPEN_WORKFLOW_DELETE_MODAL': - return { - ...state, - showWorkflowDeleteModal: true, - }; + return { ...state, showWorkflowDeleteModal: true }; + case 'CLOSE_WORKFLOW_DELETE_MODAL': - return { - ...state, - showWorkflowDeleteModal: false, - }; + return { ...state, showWorkflowDeleteModal: false }; + default: return state; } -} +} \ No newline at end of file diff --git a/src/react/reducers/user.js b/src/react/reducers/user.ts similarity index 62% rename from src/react/reducers/user.js rename to src/react/reducers/user.ts index b1af02e01..b7214be27 100644 --- a/src/react/reducers/user.js +++ b/src/react/reducers/user.ts @@ -1,12 +1,9 @@ import { initialUserState } from './initialConstants'; - export default function user(state = initialUserState, action) { switch (action.type) { case 'UPDATE_USER_LIST': - return { - ...state, - list: action.list, - }; + return { ...state, list: action.list }; + case 'UPDATE_ACCESS_KEY_LIST': if ( state.accessKeyList.length === action.list.length && @@ -14,10 +11,9 @@ export default function user(state = initialUserState, action) { ) { return state; } - return { - ...state, - accessKeyList: action.list, - }; + + return { ...state, accessKeyList: action.list }; + case 'UPDATE_ATTACHED_USER_POLICIES_LIST': if ( state.attachedPoliciesList.length === action.list.length && @@ -25,21 +21,16 @@ export default function user(state = initialUserState, action) { ) { return state; } - return { - ...state, - attachedPoliciesList: action.list, - }; + + return { ...state, attachedPoliciesList: action.list }; + case 'UPDATE_GROUPS_FOR_USER_LIST': - return { - ...state, - groupList: action.list, - }; + return { ...state, groupList: action.list }; + case 'DISPLAY_USER': - return { - ...state, - displayedUser: action.user, - }; + return { ...state, displayedUser: action.user }; + default: return state; } -} +} \ No newline at end of file diff --git a/src/react/reducers/workflow.js b/src/react/reducers/workflow.ts similarity index 85% rename from src/react/reducers/workflow.js rename to src/react/reducers/workflow.ts index ef3e6c2b6..2117a66af 100644 --- a/src/react/reducers/workflow.js +++ b/src/react/reducers/workflow.ts @@ -1,4 +1,3 @@ -// @flow import type { APIWorkflows, Workflows } from '../../types/workflow'; import type { ReplicationStreams } from '../../types/config'; import type { WorkflowAction } from '../../types/actions'; @@ -8,13 +7,14 @@ import { initialWorkflowState } from './initialConstants'; const makeWorkflows = (apiWorkflows: APIWorkflows): Workflows => { const workflows = apiWorkflows - .filter(w => !!w.replication) - .map(w => { + .filter((w) => !!w.replication) + .map((w) => { const r = w.replication; return { id: `replication-${r.streamId}`, type: 'replication', - name: generateStreamName(r), // Until name get saved on the backend side. + name: generateStreamName(r), + // Until name get saved on the backend side. state: r.enabled, workflowId: r.streamId, }; @@ -25,8 +25,8 @@ const makeWorkflows = (apiWorkflows: APIWorkflows): Workflows => { const makeReplication = (apiWorkflows: APIWorkflows): ReplicationStreams => { const workflows = apiWorkflows - .filter(w => !!w.replication) - .map(w => w.replication); + .filter((w) => !!w.replication) + .map((w) => w.replication); return workflows; }; @@ -41,7 +41,8 @@ export default function workflow( list: makeWorkflows(action.workflows), replications: makeReplication(action.workflows), }; + default: return state; } -} +} \ No newline at end of file diff --git a/src/react/reducers/zenko.js b/src/react/reducers/zenko.ts similarity index 87% rename from src/react/reducers/zenko.js rename to src/react/reducers/zenko.ts index 4eb5d22e3..fc95a3f41 100644 --- a/src/react/reducers/zenko.js +++ b/src/react/reducers/zenko.ts @@ -1,18 +1,14 @@ -// @flow import type { ZenkoAction } from '../../types/actions'; import type { ZenkoState } from '../../types/state'; import { initialZenkoState } from './initialConstants'; - -export default function( +export default function ( state: ZenkoState = initialZenkoState, action: ZenkoAction, ): ZenkoState { switch (action.type) { case 'SET_ZENKO_CLIENT': - return { - ...state, - zenkoClient: action.zenkoClient, - }; + return { ...state, zenkoClient: action.zenkoClient }; + case 'ZENKO_CLIENT_WRITE_SEARCH_LIST': case 'LIST_OBJECTS_SUCCESS': case 'ZENKO_CLEAR_ERROR': @@ -25,6 +21,7 @@ export default function( target: null, }, }; + case 'ZENKO_HANDLE_ERROR': return { ...state, @@ -35,7 +32,8 @@ export default function( target: action.errorTarget, }, }; + default: return state; } -} +} \ No newline at end of file diff --git a/src/react/store.js b/src/react/store.ts similarity index 98% rename from src/react/store.js rename to src/react/store.ts index 09fea6bda..2a6a46def 100644 --- a/src/react/store.js +++ b/src/react/store.ts @@ -3,12 +3,9 @@ import { createBrowserHistory as createHistory } from 'history'; import { routerMiddleware } from 'connected-react-router'; import thunk from 'redux-thunk'; import zenkoUIReducer from './reducers'; - const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; - export const history = createHistory(); - export const store = createStore( zenkoUIReducer(history), composeEnhancers(applyMiddleware(thunk, routerMiddleware(history))), -); +); \ No newline at end of file diff --git a/src/react/ui-elements/Activity.jsx b/src/react/ui-elements/Activity.tsx similarity index 88% rename from src/react/ui-elements/Activity.jsx rename to src/react/ui-elements/Activity.tsx index 565dcdac8..df2ed3398 100644 --- a/src/react/ui-elements/Activity.jsx +++ b/src/react/ui-elements/Activity.tsx @@ -5,16 +5,14 @@ import React from 'react'; import { spacing } from '@scality/core-ui/dist/style/theme'; import styled from 'styled-components'; import { useSelector } from 'react-redux'; - export const DEFAULT_MESSAGE = 'Working...'; - const ActivityContainer = styled.div` position: fixed; bottom: 0px; right: 0px; padding: 1em; margin: 2em; - background-color: ${props => props.theme.brand.highlight}; + background-color: ${(props) => props.theme.brand.highlight}; border-radius: ${spacing.sp8}; vertical-align: 50%; z-index: 1100; @@ -25,7 +23,7 @@ const ActivityContainer = styled.div` } svg { - fill: ${props => props.theme.brand.text}; + fill: ${(props) => props.theme.brand.text}; } `; @@ -36,9 +34,11 @@ const Activity = () => { const message = useSelector((state: AppState) => state.networkActivity.messages.first(), ); + if (!working) { return null; } + return ( @@ -47,4 +47,4 @@ const Activity = () => { ); }; -export default Activity; +export default Activity; \ No newline at end of file diff --git a/src/react/ui-elements/Breadcrumb.jsx b/src/react/ui-elements/Breadcrumb.tsx similarity index 81% rename from src/react/ui-elements/Breadcrumb.jsx rename to src/react/ui-elements/Breadcrumb.tsx index dc7368656..6f2226435 100644 --- a/src/react/ui-elements/Breadcrumb.jsx +++ b/src/react/ui-elements/Breadcrumb.tsx @@ -1,4 +1,3 @@ -// @flow import { Link, matchPath } from 'react-router-dom'; import type { Account } from '../../types/account'; import { Breadcrumb as CoreUIBreadcrumb } from '@scality/core-ui'; @@ -11,7 +10,6 @@ import styled from 'styled-components'; import { useDispatch } from 'react-redux'; import { useQueryParams } from '../utils/hooks'; import { ellipsis } from 'polished'; - const CustomBreadCrumb = styled(CoreUIBreadcrumb)` .sc-breadcrumb_item { display: flex; @@ -23,14 +21,13 @@ const CustomBreadCrumb = styled(CoreUIBreadcrumb)` text-decoration: none; overflow: visible; * { - color: ${props => props.theme.brand.textPrimary}; + color: ${(props) => props.theme.brand.textPrimary}; } border-bottom: 0 !important; } ${ellipsis('16rem')} } `; - const BaseBreadCrumb = styled(CoreUIBreadcrumb)` .sc-breadcrumb_item { display: flex; @@ -46,6 +43,7 @@ const breadcrumbPaths = ( const matchCreateBucketRoute = matchPath(pathname, { path: '/create-bucket', }); + if (matchCreateBucketRoute) { return []; } @@ -53,8 +51,10 @@ const breadcrumbPaths = ( const matchObjectRoutes = matchPath(pathname, { path: '/buckets/:bucketName/objects*', }); + if (matchObjectRoutes) { const bucketName = matchObjectRoutes.params.bucketName; + if (!bucketName) { return []; } @@ -62,6 +62,7 @@ const breadcrumbPaths = ( // When browsing inside a folder, display the folder name as the last breadcrumb path const isInFolder = prefixPath && prefixPath.slice(-1) === '/'; let splits = []; + if ( matchPath(pathname, { path: '/buckets/:bucketName/objects/retention-setting', @@ -76,12 +77,13 @@ const breadcrumbPaths = ( let prefix = ''; const splitLabels = splits - .filter(s => !!s) + .filter((s) => !!s) .map((s, i, arr) => { // NOTE: last label does not need a link if (i === arr.length - 1) { return ; } + prefix = prefix ? `${prefix}/${s}` : s; return ( ,
@@ -28,20 +26,17 @@ import styled from 'styled-components'; // // //
- export const Container = styled.div` display: flex; flex: 1; margin-top: ${spacing.sp20}; width: 100%; `; - // * table head export const Head = styled.thead` border-bottom: ${spacing.sp1} solid - ${props => props.theme.brand.backgroundLevel1}; + ${(props) => props.theme.brand.backgroundLevel1}; `; - export const HeadRow = styled.tr` align-items: center; width: 100%; @@ -51,35 +46,30 @@ export const HeadRow = styled.tr` display: table; table-layout: fixed; `; - export const HeadCell = styled.th` text-align: left; padding: ${spacing.sp16}; `; - export const Icon = styled.i` margin-left: ${spacing.sp4}; `; - // * table body export const Body = styled.tbody` // following is needed to display scroll bar onto the table display: block; overflow: auto; `; - export const BodyWindowing = styled.tbody` flex: 1; `; - export const Row = styled(HeadRow)` // it's better to use 1px instead of spacing.sp1, otherwise the border of some rows // can look different cause of subpixel positioning - border-bottom: 1px solid ${props => props.theme.brand.backgroundLevel1}; + border-bottom: 1px solid ${(props) => props.theme.brand.backgroundLevel1}; &:hover { - background-color: ${props => props.theme.brand.secondaryDark1}; + background-color: ${(props) => props.theme.brand.secondaryDark1}; } - cursor: ${props => (props.onClick ? 'pointer' : 'default')}; + cursor: ${(props) => (props.onClick ? 'pointer' : 'default')}; box-sizing: border-box; border-right: ${spacing.sp4} solid transparent; @@ -90,41 +80,36 @@ export const Row = styled(HeadRow)` border-right: ${spacing.sp4} solid ${theme.brand.selectedActive}; `} `; - export const Cell = styled.td` vertical-align: middle; - color: ${props => + color: ${(props) => props.shade ? props.theme.brand.base : props.theme.brand.text}; padding: ${spacing.sp4} ${spacing.sp16} ${spacing.sp4} ${spacing.sp16}; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; `; - export const CellLink = styled(Link)` - color: ${props => props.theme.brand.textLink}; + color: ${(props) => props.theme.brand.textLink}; text-decoration: none; &:hover { text-decoration: underline; } `; - export const CellClick = styled.span` - color: ${props => props.theme.brand.textLink}; + color: ${(props) => props.theme.brand.textLink}; text-decoration: none; &:hover { text-decoration: underline; } `; - export const CellA = styled.a` - color: ${props => props.theme.brand.textLink}; + color: ${(props) => props.theme.brand.textLink}; text-decoration: none; &:hover { text-decoration: underline; } `; - // * table search export const SearchContainer = styled.div` display: flex; @@ -136,24 +121,20 @@ export const SearchContainer = styled.div` margin-left: auto; } `; - export const Search = styled.div` display: flex; flex: 0 0 220px; `; - export const SearchInput = styled(SearchInputCore)` width: 100%; `; - export const SearchMetadataContainer = styled.form` flex: 1 0 auto; display: flex; max-width: 600px; margin-right: ${spacing.sp20}; - visibility: ${props => (props.isHidden ? 'hidden' : 'visible')}; + visibility: ${(props) => (props.isHidden ? 'hidden' : 'visible')}; `; - export const SearchMetadataInputAndIcon = styled.div` position: relative; display: flex; @@ -162,73 +143,61 @@ export const SearchMetadataInputAndIcon = styled.div` margin-right: ${spacing.sp4}; align-items: center; `; - export const ExtraButton = styled(Button)` flex: 0 0 auto; `; - export const Resizer = styled.div` height: 100%; `; - export const Actions = styled.div` text-align: right; `; - export const ActionButton = styled(Button)` margin-left: ${spacing.sp4}; `; - export const Title = styled.div` font-size: ${fontSize.larger}; font-weight: bold; margin: ${spacing.sp20} 0 ${spacing.sp20} 0; `; - const Table = styled.table` display: flex; flex-direction: column; width: 100%; border-collapse: collapse; `; - // specific to listobject/md search - export const SearchMetadataInput = styled(Input)` - background-color: ${props => props.theme.brand.background}; + background-color: ${(props) => props.theme.brand.background}; padding: 0px ${spacing.sp32}; max-height: ${spacing.sp32}; box-sizing: border-box; `; - export const ContainerWithSubHeader = styled(Container)` margin-top: 0px; `; - export const SearchInputIcon = styled.i` position: absolute; - visibility: ${props => (props.isHidden ? 'hidden' : 'visible')}; + visibility: ${(props) => (props.isHidden ? 'hidden' : 'visible')}; right: 10px; cursor: pointer; &:hover { - color: ${props => props.theme.brand.base}; + color: ${(props) => props.theme.brand.base}; } `; - const ValidationIcon = styled.i` position: absolute; left: 10px; - color: ${props => + color: ${(props) => props.className === 'fa fa-times' ? props.theme.brand.danger : props.className === 'fas fa-check' ? props.theme.brand.success : props.theme.brand.base}; `; - type Props = { - isMetadataType: boolean, - isError: boolean, + isMetadataType: boolean; + isError: boolean; }; export const SearchValidationIcon = ({ isMetadataType, isError }: Props) => { const className = isError @@ -238,18 +207,15 @@ export const SearchValidationIcon = ({ isMetadataType, isError }: Props) => { : 'fas fa-search'; return ; }; - export const SearchButton = styled(Button)` flex: 0 0 auto; `; - export const HeaderContainer = styled.div` display: flex; justify-content: space-between; padding-left: ${spacing.sp16}; padding-right: ${spacing.sp16}; `; - export const ButtonContainer = styled.div` display: flex; flex: 0 0 auto; @@ -258,16 +224,13 @@ export const ButtonContainer = styled.div` margin-left: ${spacing.sp4}; } `; - export const SubHeaderContainer = styled.div` - visibility: ${props => (props.isHidden ? 'hidden' : 'visible')}; + visibility: ${(props) => (props.isHidden ? 'hidden' : 'visible')}; margin-left: ${spacing.sp4}; `; - export const TableContainer = styled.div` display: flex; flex: 1; flex-direction: column; `; - -export default Table; +export default Table; \ No newline at end of file diff --git a/src/react/ui-elements/TableKeyValue.jsx b/src/react/ui-elements/TableKeyValue.ts similarity index 93% rename from src/react/ui-elements/TableKeyValue.jsx rename to src/react/ui-elements/TableKeyValue.ts index fea394274..8d0c7a68a 100644 --- a/src/react/ui-elements/TableKeyValue.jsx +++ b/src/react/ui-elements/TableKeyValue.ts @@ -1,6 +1,5 @@ import { fontSize, spacing } from '@scality/core-ui/dist/style/theme'; import styled from 'styled-components'; - // TEMPLATE // // @@ -16,17 +15,13 @@ import styled from 'styled-components'; // // //
- export const Body = styled.tbody``; - export const Row = styled.tr``; - export const Key = styled.td` white-space: nowrap; padding: ${spacing.sp8} 0px; - color: ${props => props.theme.brand.textSecondary}; + color: ${(props) => props.theme.brand.textSecondary}; `; - export const Value = styled.td` padding-left: 40px; max-width: 420px; @@ -34,38 +29,32 @@ export const Value = styled.td` min-width: 220px; word-break: break-word; - ${props => + ${(props) => props.copiable ? `color: ${props.theme.brand.textSecondary};` : ''} `; - export const Title = styled.div` font-size: ${fontSize.larger}; font-weight: bold; margin: ${spacing.sp20} 0 ${spacing.sp20} 0; `; - export const ExtraCell = styled.td` padding-left: ${spacing.sp20}; min-width: 40px; `; - export const Container = styled.div` display: block; width: fit-content; margin: ${spacing.sp16} 0 0 30px; `; - const Table = styled.table` max-width: 600px; border-spacing: 0px; width: 100%; `; - export const TitleRow = styled.div` display: flex; justify-content: space-between; align-items: center; margin-bottom: ${spacing.sp16}; `; - -export default Table; +export default Table; \ No newline at end of file diff --git a/src/react/ui-elements/TableKeyValue2.jsx b/src/react/ui-elements/TableKeyValue2.tsx similarity index 89% rename from src/react/ui-elements/TableKeyValue2.jsx rename to src/react/ui-elements/TableKeyValue2.tsx index 16069ecdd..0e22c5449 100644 --- a/src/react/ui-elements/TableKeyValue2.jsx +++ b/src/react/ui-elements/TableKeyValue2.tsx @@ -1,10 +1,8 @@ // @noflow - import { fontSize, spacing } from '@scality/core-ui/dist/style/theme'; import styled from 'styled-components'; import React from 'react'; import { Tooltip } from '@scality/core-ui'; - // TEMPLATE // // @@ -38,7 +36,6 @@ import { Tooltip } from '@scality/core-ui'; // // //
- export const Title = styled.div` display: flex; @@ -46,37 +43,30 @@ export const Title = styled.div` margin-bottom: ${spacing.sp24}; font-size: ${fontSize.larger}; `; - export const Subtitle = styled(Title)` font-size: ${fontSize.large}; `; - export const Body = styled.form` display: flex; flex-direction: column; `; - export const Groups = styled.div` display: flex; flex-direction: column; max-width: 450px; `; - export const Group = styled.div` margin-bottom: ${spacing.sp8}; `; - export const GroupName = styled.div` font-weight: bold; margin-bottom: ${spacing.sp8}; `; - export const GroupContent = styled.div` display: flex; flex-direction: column; `; - export const Row = styled.div` position: relative; display: flex; @@ -85,12 +75,11 @@ export const Row = styled.div` margin-bottom: ${spacing.sp4}; min-height: ${spacing.sp24}; `; - const RawKey = styled.div` - color: ${props => + color: ${(props) => props.principal ? props.theme.brand.text : props.theme.brand.textSecondary}; - font-weight: ${props => (props.principal ? 'bold' : 'normal')}; - ${props => + font-weight: ${(props) => (props.principal ? 'bold' : 'normal')}; + ${(props) => props.required ? ` &:after { @@ -99,13 +88,11 @@ const RawKey = styled.div` ` : ''} `; - export const Key = styled(RawKey)` && { flex: 1 1 35%; } `; - const KeyContainer = styled.div` display: flex; flex: 1 1 35%; @@ -114,15 +101,13 @@ const KeyContainer = styled.div` color: #434343; } `; - type KeyTooltipProps = { - children: Node, - tooltipMessage: string, - tooltipWidth: string, - required?: boolean, - principal?: boolean, + children: Node; + tooltipMessage: string; + tooltipWidth: string; + required?: boolean; + principal?: boolean; }; - export const KeyTooltip = ({ children, tooltipMessage, @@ -135,14 +120,15 @@ export const KeyTooltip = ({ )} ); - export const Value = styled.div` flex: 1 1 65%; flex-direction: column; @@ -150,44 +136,36 @@ export const Value = styled.div` margin-right: ${spacing.sp8}; } `; - export const GroupValues = styled.div` display: flex; flex: 1 1 65%; justify-content: space-between; align-items: center; `; - export const ErrorContainer = styled.div` position: absolute; `; - const Table = styled.div` width: 100%; `; - export const Header = styled.div` - display: ${props => (props.isRemoved ? 'none' : 'flex')}; + display: ${(props) => (props.isRemoved ? 'none' : 'flex')}; flex-direction: row; justify-content: space-between; `; - export const BannerContainer = styled.div` flex: 1; margin-right: ${spacing.sp8}; width: 200px; - visibility: ${props => (props.isHidden ? 'hidden' : 'visible')}; + visibility: ${(props) => (props.isHidden ? 'hidden' : 'visible')}; `; - export const Footer = styled.div` display: flex; justify-content: flex-end; margin: ${spacing.sp8}; `; - export const ExtraCell = styled.div` margin-left: ${spacing.sp20}; `; - -export default Table; +export default Table; \ No newline at end of file diff --git a/src/react/ui-elements/Tabs.jsx b/src/react/ui-elements/Tabs.ts similarity index 98% rename from src/react/ui-elements/Tabs.jsx rename to src/react/ui-elements/Tabs.ts index 053ffefad..61bcdb3ce 100644 --- a/src/react/ui-elements/Tabs.jsx +++ b/src/react/ui-elements/Tabs.ts @@ -1,7 +1,6 @@ import { Tabs } from '@scality/core-ui/dist/next'; import { spacing } from '@scality/core-ui/dist/style/theme'; import styled from 'styled-components'; - export const CustomTabs = styled(Tabs)` display: flex; flex: 1; @@ -9,4 +8,4 @@ export const CustomTabs = styled(Tabs)` padding: ${spacing.sp16}; overflow-y: auto; } -`; +`; \ No newline at end of file diff --git a/src/react/ui-elements/TextBadge.jsx b/src/react/ui-elements/TextBadge.ts similarity index 98% rename from src/react/ui-elements/TextBadge.jsx rename to src/react/ui-elements/TextBadge.ts index 514b08e09..dd1371d1d 100644 --- a/src/react/ui-elements/TextBadge.jsx +++ b/src/react/ui-elements/TextBadge.ts @@ -1,9 +1,8 @@ import { fontSize, spacing } from '@scality/core-ui/dist/style/theme'; import { TextBadge as BasicTextBadge } from '@scality/core-ui'; import styled from 'styled-components'; - export const TextBadge = styled(BasicTextBadge)` padding: ${spacing.sp4} ${spacing.sp4}; margin: 0 ${spacing.sp8} 0 ${spacing.sp8}; font-size: ${fontSize.small}; -`; +`; \ No newline at end of file diff --git a/src/react/ui-elements/Utility.jsx b/src/react/ui-elements/Utility.jsx deleted file mode 100644 index 9a6abb549..000000000 --- a/src/react/ui-elements/Utility.jsx +++ /dev/null @@ -1,13 +0,0 @@ -import styled from 'styled-components'; - -export const TextTransformer = styled.span` - text-transform: ${props => props.transform}; -`; - -export const TextAligner = styled.div` - text-align: ${props => props.alignment}; -`; - -export const HideMe = styled.div` - visibility: ${props => (props.isHidden ? 'hidden' : 'visible')}; -`; diff --git a/src/react/ui-elements/Utility.ts b/src/react/ui-elements/Utility.ts new file mode 100644 index 000000000..27f872e52 --- /dev/null +++ b/src/react/ui-elements/Utility.ts @@ -0,0 +1,10 @@ +import styled from 'styled-components'; +export const TextTransformer = styled.span` + text-transform: ${(props) => props.transform}; +`; +export const TextAligner = styled.div` + text-align: ${(props) => props.alignment}; +`; +export const HideMe = styled.div` + visibility: ${(props) => (props.isHidden ? 'hidden' : 'visible')}; +`; \ No newline at end of file diff --git a/src/react/ui-elements/Warning.jsx b/src/react/ui-elements/Warning.tsx similarity index 89% rename from src/react/ui-elements/Warning.jsx rename to src/react/ui-elements/Warning.tsx index 039ebfe99..c4c71c911 100644 --- a/src/react/ui-elements/Warning.jsx +++ b/src/react/ui-elements/Warning.tsx @@ -1,55 +1,48 @@ -// @flow import styled, { css } from 'styled-components'; import { Button } from '@scality/core-ui/dist/next'; import type { Node } from 'react'; import React from 'react'; import { spacing } from '@scality/core-ui/dist/style/theme'; - const Container = styled.div` display: flex; flex: 1; flex-direction: column; text-align: center; margin-top: ${spacing.sp20}; - color: ${props => props.theme.brand.textPrimary}; - ${props => { + color: ${(props) => props.theme.brand.textPrimary}; + ${(props) => { if (props.centered) { return css` justify-content: center; `; } + return css` margin-top: ${spacing.sp20}; `; }} `; - const Container2 = styled.div` text-align: center; margin: ${spacing.sp32} 0px; - color: ${props => props.theme.brand.textPrimary}; + color: ${(props) => props.theme.brand.textPrimary}; `; - const Title = styled.div` margin-top: ${spacing.sp8}; `; - const Description = styled.div` margin-top: ${spacing.sp8}; `; - const ButtonSection = styled.div` margin-top: ${spacing.sp16}; `; - type WarningProps = { - iconClass?: string, - title: Node, - btnTitle?: string, - btnAction?: () => void, - centered?: boolean, + iconClass?: string; + title: Node; + btnTitle?: string; + btnAction?: () => void; + centered?: boolean; }; - export const Warning = ({ iconClass, title, @@ -68,9 +61,8 @@ export const Warning = ({ )} ); - type WarningMetadataProps = { - description: string, + description: string; }; export const WarningMetadata = ({ description }: WarningMetadataProps) => ( @@ -79,7 +71,6 @@ export const WarningMetadata = ({ description }: WarningMetadataProps) => ( {description} ); - export const NoBucketWarning = () => ( @@ -91,7 +82,6 @@ export const NoBucketWarning = () => ( ); - export const NoLocationWarning = () => ( @@ -102,4 +92,4 @@ export const NoLocationWarning = () => ( locations that will be used as replication targets.{' '} -); +); \ No newline at end of file diff --git a/src/react/ui-elements/__tests__/Activity.test.jsx b/src/react/ui-elements/__tests__/Activity.test.tsx similarity index 62% rename from src/react/ui-elements/__tests__/Activity.test.jsx rename to src/react/ui-elements/__tests__/Activity.test.tsx index d93e7d3fc..09e54e2c6 100644 --- a/src/react/ui-elements/__tests__/Activity.test.jsx +++ b/src/react/ui-elements/__tests__/Activity.test.tsx @@ -2,45 +2,39 @@ import Activity, { DEFAULT_MESSAGE } from '../Activity'; import { List } from 'immutable'; import React from 'react'; import { reduxMount } from '../../utils/test'; - describe('Activity', () => { const TEST_MESSAGE = 'This is a test message'; - it('Activity should render with a custom message', () => { const { component } = reduxMount(, { - networkActivity: { counter: 1, messages: List([TEST_MESSAGE]) }, + networkActivity: { + counter: 1, + messages: List([TEST_MESSAGE]), + }, }); - expect(component.find(Activity).isEmptyRender()).toBe(false); - expect( - component - .find('#activity-message') - .children() - .at(2) - .text(), - ).toBe(TEST_MESSAGE); + expect(component.find('#activity-message').children().at(2).text()).toBe( + TEST_MESSAGE, + ); }); - it('Activity should render with a default message', () => { const { component } = reduxMount(, { - networkActivity: { counter: 2, messages: List() }, + networkActivity: { + counter: 2, + messages: List(), + }, }); - expect(component.find(Activity).isEmptyRender()).toBe(false); - expect( - component - .find('#activity-message') - .children() - .at(2) - .text(), - ).toBe(DEFAULT_MESSAGE); + expect(component.find('#activity-message').children().at(2).text()).toBe( + DEFAULT_MESSAGE, + ); }); - it('Activity should not render', () => { const { component } = reduxMount(, { - networkActivity: { counter: 0, messages: List() }, + networkActivity: { + counter: 0, + messages: List(), + }, }); - expect(component.find(Activity).isEmptyRender()).toBe(true); }); -}); +}); \ No newline at end of file diff --git a/src/react/ui-elements/__tests__/Clipboard.test.jsx b/src/react/ui-elements/__tests__/Clipboard.test.tsx similarity index 92% rename from src/react/ui-elements/__tests__/Clipboard.test.jsx rename to src/react/ui-elements/__tests__/Clipboard.test.tsx index c33f6bf50..7ff209065 100644 --- a/src/react/ui-elements/__tests__/Clipboard.test.jsx +++ b/src/react/ui-elements/__tests__/Clipboard.test.tsx @@ -2,22 +2,18 @@ import { Clipboard, IconCopy, IconSuccess } from '../Clipboard'; import { OWNER_NAME } from '../../actions/__tests__/utils/testUtil'; import React from 'react'; import { reduxMount } from '../../utils/test'; - describe('Clipboard', () => { it('Clipboard should render with copy icon', () => { const { component } = reduxMount(); - expect(component.find(Clipboard)).toHaveLength(1); expect(component.find(IconCopy)).toHaveLength(1); }); - it('Clipboard should render with success icon', () => { const writeTextFn = jest.fn(); - - global.navigator.clipboard = { writeText: writeTextFn }; - + global.navigator.clipboard = { + writeText: writeTextFn, + }; const { component } = reduxMount(); - expect(component.find(Clipboard)).toHaveLength(1); expect(component.find(IconCopy)).toHaveLength(1); component.find(IconCopy).simulate('click'); @@ -25,4 +21,4 @@ describe('Clipboard', () => { expect(component.find(IconSuccess)).toHaveLength(1); expect(component.find(IconCopy)).toHaveLength(0); }); -}); +}); \ No newline at end of file diff --git a/src/react/ui-elements/__tests__/DeleteConfirmation.test.jsx b/src/react/ui-elements/__tests__/DeleteConfirmation.test.tsx similarity index 99% rename from src/react/ui-elements/__tests__/DeleteConfirmation.test.jsx rename to src/react/ui-elements/__tests__/DeleteConfirmation.test.tsx index b0102e960..f6806d6e4 100644 --- a/src/react/ui-elements/__tests__/DeleteConfirmation.test.jsx +++ b/src/react/ui-elements/__tests__/DeleteConfirmation.test.tsx @@ -1,12 +1,10 @@ import DeleteConfirmation from '../DeleteConfirmation'; import React from 'react'; import { reduxMount } from '../../utils/test'; - describe('DeleteConfirmation', () => { const TITLE_TEXT = 'Are you sure you want to delete bucket: test ?'; const approveFn = jest.fn(); const cancelFn = jest.fn(); - it('DeleteConfirmation should render', () => { const { component } = reduxMount( { titleText={TITLE_TEXT} />, ); - expect(component.find(DeleteConfirmation).isEmptyRender()).toBe(false); expect(component.find('div.sc-modal-body').text()).toBe(TITLE_TEXT); }); - it('DeleteConfirmation should not render', () => { const { component } = reduxMount( { titleText={TITLE_TEXT} />, ); - expect(component.find(DeleteConfirmation).isEmptyRender()).toBe(true); }); - it('should call approve function after clicking on delete button', () => { const { component } = reduxMount( { titleText={TITLE_TEXT} />, ); - expect(component.find(DeleteConfirmation).isEmptyRender()).toBe(false); component.find('button[label="Delete"]').simulate('click'); expect(approveFn).toHaveBeenCalledTimes(1); }); - it('should call cancel function after clicking on cancel button', () => { const { component } = reduxMount( { titleText={TITLE_TEXT} />, ); - expect(component.find(DeleteConfirmation).isEmptyRender()).toBe(false); component.find('button[label="Cancel"]').simulate('click'); expect(cancelFn).toHaveBeenCalledTimes(1); }); -}); +}); \ No newline at end of file diff --git a/src/react/ui-elements/__tests__/ErrorHandlerModal.test.jsx b/src/react/ui-elements/__tests__/ErrorHandlerModal.test.tsx similarity index 99% rename from src/react/ui-elements/__tests__/ErrorHandlerModal.test.jsx rename to src/react/ui-elements/__tests__/ErrorHandlerModal.test.tsx index 9a732a1a8..9f3c0c238 100644 --- a/src/react/ui-elements/__tests__/ErrorHandlerModal.test.jsx +++ b/src/react/ui-elements/__tests__/ErrorHandlerModal.test.tsx @@ -1,10 +1,8 @@ import ErrorHandlerModal from '../ErrorHandlerModal'; import React from 'react'; import { reduxMount } from '../../utils/test'; - describe('ErrorHandlerModal', () => { const errorMessage = 'test error message'; - it('ErrorHandlerModal should render', () => { const { component } = reduxMount(, { uiErrors: { @@ -12,11 +10,9 @@ describe('ErrorHandlerModal', () => { errorType: 'byModal', }, }); - expect(component.find(ErrorHandlerModal).isEmptyRender()).toBe(false); expect(component.find('div.sc-modal-body').text()).toBe(errorMessage); }); - it('ErrorHandlerModal should not render if errorType is set to "byAuth"', () => { const { component } = reduxMount(, { uiErrors: { @@ -24,10 +20,8 @@ describe('ErrorHandlerModal', () => { errorType: 'byAuth', }, }); - expect(component.find(ErrorHandlerModal).isEmptyRender()).toBe(true); }); - it('ErrorHandlerModal should not render if children errorType and errorMessage are set to null', () => { const { component } = reduxMount(, { uiErrors: { @@ -35,7 +29,6 @@ describe('ErrorHandlerModal', () => { errorType: null, }, }); - expect(component.find(ErrorHandlerModal).isEmptyRender()).toBe(true); }); -}); +}); \ No newline at end of file diff --git a/src/react/ui-elements/__tests__/MiddleEllipsis.test.jsx b/src/react/ui-elements/__tests__/MiddleEllipsis.test.tsx similarity index 95% rename from src/react/ui-elements/__tests__/MiddleEllipsis.test.jsx rename to src/react/ui-elements/__tests__/MiddleEllipsis.test.tsx index 06e26241f..a255ed3e7 100644 --- a/src/react/ui-elements/__tests__/MiddleEllipsis.test.jsx +++ b/src/react/ui-elements/__tests__/MiddleEllipsis.test.tsx @@ -1,31 +1,31 @@ +/* eslint-disable */ import MiddleEllipsis, { ellipseNode } from '../MiddleEllipsis'; import React from 'react'; import { reduxMount } from '../../utils/test'; - describe('MiddleEllipsis', () => { - const container = { offsetWidth: 50 }; + const container = { + offsetWidth: 50, + }; const sentence = 'My long long long long sentence'; - let txtNode = document.createTextNode(sentence); + const txtNode = document.createTextNode(sentence); txtNode.offsetWidth = 100; + txtNode.setAttribute = () => {}; it('middle ellipsis event listener add/remove', () => { jest.spyOn(window, 'addEventListener'); jest.spyOn(window, 'removeEventListener'); const { component } = reduxMount(); - expect(window.addEventListener).toHaveBeenCalled(); component.unmount(); expect(window.removeEventListener).toHaveBeenCalled(); }); - it('ellipseNode should middle truncate TextNode', () => { txtNode.textContent = sentence; const isEllipsized = ellipseNode(container, txtNode, sentence); expect(isEllipsized).toBeTruthy(); expect(txtNode.textContent).toBe('My lon...entence'); }); - it('ellipseNode with ellipsisText should display correctly', () => { txtNode.textContent = sentence; const ellipsisText = '&&&&'; @@ -36,14 +36,11 @@ describe('MiddleEllipsis', () => { ellipsisText, ); expect(isEllipsized).toBeTruthy(); - // search if ellipsisText is in textContent expect(txtNode.textContent.search(ellipsisText) === -1).toBeFalsy(); }); - it('ellipseNode with trailingCharCount should display correctly', () => { txtNode.textContent = sentence; - const ellipsisText = '...'; const trailingCharCount = 3; const isEllipsized = ellipseNode( @@ -54,25 +51,21 @@ describe('MiddleEllipsis', () => { trailingCharCount, ); expect(isEllipsized).toBeTruthy(); - const ellipsizedText = txtNode.textContent; const lengthAfterEllipsis = ellipsizedText.substr( ellipsizedText.indexOf(ellipsisText) + ellipsisText.length, ).length; expect(lengthAfterEllipsis).toBe(trailingCharCount); }); - it('should return false if passing null node', () => { expect(ellipseNode(null, null, null)).toBeFalsy(); }); - it('ellipseNode should return false if text is empty', () => { const sentence = ''; txtNode.textContent = sentence; const isEllipsized = ellipseNode(container, txtNode, sentence); expect(isEllipsized).toBe(false); }); - it('ellipseNode should return false if text is undefined', () => { const sentence = undefined; txtNode.textContent = sentence; diff --git a/src/react/ui-elements/__tests__/ReauthDialog.test.jsx b/src/react/ui-elements/__tests__/ReauthDialog.test.tsx similarity index 99% rename from src/react/ui-elements/__tests__/ReauthDialog.test.jsx rename to src/react/ui-elements/__tests__/ReauthDialog.test.tsx index 6ae4a20fe..6d3ee023b 100644 --- a/src/react/ui-elements/__tests__/ReauthDialog.test.jsx +++ b/src/react/ui-elements/__tests__/ReauthDialog.test.tsx @@ -1,9 +1,7 @@ import React from 'react'; import ReauthDialog from '../ReauthDialog'; import { reduxMount } from '../../utils/test'; - const defaultMessage = 'We need to log you in.'; - describe('class ', () => { it('should not render the ReauthDialog component if the network activity authFailure is false', () => { const { component } = reduxMount(, { @@ -18,7 +16,6 @@ describe('class ', () => { }); expect(component.find('Modal#reauth-dialog-modal')).toHaveLength(0); }); - it('should not render the ReauthDialog component if the network activity authFailure is false even if error is of type byAuth', () => { const { component } = reduxMount(, { networkActivity: { @@ -36,7 +33,6 @@ describe('class ', () => { }); expect(component.find('Modal#reauth-dialog-modal')).toHaveLength(0); }); - it('should render the ReauthDialog component with default message if the network activity authFailure is true', () => { const { component } = reduxMount(, { networkActivity: { @@ -53,7 +49,6 @@ describe('class ', () => { defaultMessage, ); }); - it('should render the ReauthDialog component with provided error message if the network activity authFailure is true and error is of type byAuth', () => { const errorMessage = 'test error message'; const { component } = reduxMount(, { @@ -73,7 +68,6 @@ describe('class ', () => { expect(component.find('Modal#reauth-dialog-modal')).toHaveLength(1); expect(component.find('div.sc-modal-body').text()).toContain(errorMessage); }); - it('should render the ReauthDialog component with default message if the network activity authFailure is true and error is of type byModal', () => { const errorMessage = 'test error message'; const { component } = reduxMount(, { @@ -95,4 +89,4 @@ describe('class ', () => { defaultMessage, ); }); -}); +}); \ No newline at end of file diff --git a/src/react/utils/IAMhooks.js b/src/react/utils/IAMhooks.ts similarity index 79% rename from src/react/utils/IAMhooks.js rename to src/react/utils/IAMhooks.ts index 08ad6931e..1381f1b4f 100644 --- a/src/react/utils/IAMhooks.js +++ b/src/react/utils/IAMhooks.ts @@ -1,35 +1,33 @@ -//@flow import { useState, useMemo } from 'react'; import { useInfiniteQuery } from 'react-query'; -// $FlowFixMe import type { QueryOptions, QueryFunctionContext } from 'react-query'; import { DateTime } from 'luxon'; - export const useAwsPaginatedEntities = < - API_RESPONSE: { Marker?: string }, - ENTITY, + API_RESPONSE extends { + Marker?: string; + }, + ENTITY >( reactQueryOptions: QueryOptions & { queryFn: ( context: QueryFunctionContext, marker?: string, - ) => Promise, + ) => Promise; }, getEntitiesFromResult: (data: API_RESPONSE) => ENTITY[], ): | { - data: null, - status: 'idle' | 'loading' | 'error', - firstPageStatus: 'idle' | 'loading' | 'error', + data: null; + status: 'idle' | 'loading' | 'error'; + firstPageStatus: 'idle' | 'loading' | 'error'; } | { - data: ENTITY[], - status: 'loading' | 'error' | 'success', - firstPageStatus: 'success', + data: ENTITY[]; + status: 'loading' | 'error' | 'success'; + firstPageStatus: 'success'; } => { const [status, setStatus] = useState('idle'); const [firstPageStatus, setFirstPageStatus] = useState('idle'); - const { data, status: internalStatus, @@ -39,21 +37,20 @@ export const useAwsPaginatedEntities = < } = useInfiniteQuery({ ...reactQueryOptions, queryKey: [...reactQueryOptions.queryKey], - queryFn: ctx => reactQueryOptions.queryFn(ctx, ctx.pageParam), - getNextPageParam: lastPage => lastPage.Marker, + queryFn: (ctx) => reactQueryOptions.queryFn(ctx, ctx.pageParam), + getNextPageParam: (lastPage) => lastPage.Marker, }); - const pageIndex = data?.pageParams?.length || 0; useMemo(() => { if (pageIndex === 0 || (pageIndex === 1 && internalStatus === 'success')) { setFirstPageStatus(internalStatus); } }, [internalStatus, pageIndex]); - useMemo(() => { if (internalStatus === 'loading' || internalStatus === 'error') { setStatus(internalStatus); } + if (internalStatus === 'success' && !hasNextPage && !isFetchingNextPage) { setStatus('success'); setFirstPageStatus('success'); //ensure firstPageStatus is success when loading data from the cache @@ -61,24 +58,20 @@ export const useAwsPaginatedEntities = < fetchNextPage(); } }, [internalStatus, hasNextPage, fetchNextPage, isFetchingNextPage]); - - //$FlowFixMe return { data: data && data.pages && - data.pages.flatMap(page => getEntitiesFromResult(page)), + data.pages.flatMap((page) => getEntitiesFromResult(page)), status, firstPageStatus, }; }; - type AccessKeyObject = { - accessKey: string, - createdOn: string, - status: string, + accessKey: string; + createdOn: string; + status: string; }; - export const useAccessKeyOutdatedStatus = ( accessKeyObject: AccessKeyObject, ) => { @@ -87,10 +80,8 @@ export const useAccessKeyOutdatedStatus = ( const outDatedAccessMsg = 'This access key has been generated more than 300 days ago. Please consider change it'; const OUTDATED_DAYS = 300; - const createdDate = DateTime.fromISO(accessKeyObject.createdOn); const currentDate = DateTime.now(); - const diffInDays = currentDate.diff(createdDate, 'days'); const days = Math.floor(diffInDays.toObject().days); diff --git a/src/react/utils/__tests__/hooks.test.jsx b/src/react/utils/__tests__/hooks.test.tsx similarity index 94% rename from src/react/utils/__tests__/hooks.test.jsx rename to src/react/utils/__tests__/hooks.test.tsx index 2dfbd8b44..94d88fc91 100644 --- a/src/react/utils/__tests__/hooks.test.jsx +++ b/src/react/utils/__tests__/hooks.test.tsx @@ -1,3 +1,4 @@ +/* eslint-disable */ import * as hooks from '../hooks'; import React, { useRef } from 'react'; import { useHeight, useOutsideClick, usePrefixWithSlash } from '../hooks'; @@ -5,7 +6,6 @@ import { act } from 'react-dom/test-utils'; import { mount } from 'enzyme'; import router from 'react-router'; import { renderHook } from '@testing-library/react-hooks'; - const originalOffsetHeight = Object.getOwnPropertyDescriptor( HTMLElement.prototype, 'offsetHeight', @@ -18,11 +18,14 @@ const originalOffsetWidth = Object.getOwnPropertyDescriptor( const Component = () => { const ref = useRef(null); const height = useHeight(ref); - useOutsideClick(ref, () => {}); - return ( -
+
{height}
); @@ -51,7 +54,6 @@ describe('hooks', () => { value: 500, }); }); - afterAll(() => { Object.defineProperty( HTMLElement.prototype, @@ -64,77 +66,60 @@ describe('hooks', () => { originalOffsetWidth, ); }); - it('should return an height if a window resize event is catch', async () => { const useHeightMock = jest.spyOn(hooks, 'useHeight'); - const component = mount(); - expect(component.find('div').text()).toBe('500'); - await act(async () => { fireResizeEvent(300, 300); component.update(); }); - expect(useHeightMock).toHaveBeenCalled(); expect(component.find('div').text()).toBe('300'); }); - it('should trigger if a click occurs outside the component', async () => { const useOutsideClickMock = jest .spyOn(hooks, 'useOutsideClick') .mockImplementation(() => {}); - const component = mount(
, ); - component.find('button').simulate('click'); - expect(useOutsideClickMock).toHaveBeenCalled(); }); }); - describe('usePrefixWithSlash', () => { test('should return empty string in root path of the bucket', () => { - jest - .spyOn(router, 'useLocation') - .mockReturnValue({ pathname: '/buckets/test/objects' }); - + jest.spyOn(router, 'useLocation').mockReturnValue({ + pathname: '/buckets/test/objects', + }); const { result } = renderHook(() => usePrefixWithSlash()); expect(result.current).toBe(''); }); - test('should return empty string when an object is select in the root of bucket', () => { jest.spyOn(router, 'useLocation').mockReturnValue({ pathname: '/buckets/test/objects', search: 'prefix=object1', }); - const { result } = renderHook(() => usePrefixWithSlash()); expect(result.current).toBe(''); }); - test('should return foldername with trailing slash when inside a folder', () => { jest.spyOn(router, 'useLocation').mockReturnValue({ pathname: '/buckets/test/objects', search: 'prefix=folder/', }); - const { result } = renderHook(() => usePrefixWithSlash()); expect(result.current).toBe('folder/'); }); - test('should return foldername with trailing slash when inside a folder and select an object', () => { jest.spyOn(router, 'useLocation').mockReturnValue({ pathname: '/buckets/test/objects', search: 'prefix=folder/object', }); - const { result } = renderHook(() => usePrefixWithSlash()); expect(result.current).toBe('folder/'); }); diff --git a/src/react/utils/__tests__/index.test.jsx b/src/react/utils/__tests__/index.test.ts similarity index 97% rename from src/react/utils/__tests__/index.test.jsx rename to src/react/utils/__tests__/index.test.ts index 18bb43917..7f9988900 100644 --- a/src/react/utils/__tests__/index.test.jsx +++ b/src/react/utils/__tests__/index.test.ts @@ -6,7 +6,6 @@ import { stripQuotes, stripTrailingSlash, } from '../index'; - describe('functions utils', () => { const errorMessages = [ 'This is an error message #1', @@ -17,7 +16,6 @@ describe('functions utils', () => { 'The server is temporarily unavailable.', 'This is an error message #2', ]; - const tests = [ { it: @@ -89,19 +87,15 @@ describe('functions utils', () => { expectedErrorMessage: 'Failed with error status: 501', }, ]; - - tests.forEach(t => { + tests.forEach((t) => { it(`${t.it}`, () => { expect(errorParser(t.error).message).toBe(t.expectedErrorMessage); }); }); - it('should return a formatted date', () => { const date = 'Mon Oct 12 2020 17:28:03'; - expect(formatDate(new Date(date))).toBe(date); }); - const urls = [ '', '/buckets/', @@ -109,30 +103,25 @@ describe('functions utils', () => { '/buckets/bucket1', '/buckets/bucket1/test/', ]; - it('should return a string with a trailing slash removed at the end if exists', () => { - urls.forEach(url => { + urls.forEach((url) => { expect(stripTrailingSlash(url).slice(-1)).not.toBe('/'); }); }); - it('should return a string with a trailing slash added at the end if no exists', () => { - urls.forEach(url => { + urls.forEach((url) => { expect(addTrailingSlash(url).slice(-1)).toBe(url === '' ? '' : '/'); }); }); - it('should return a string which pluralize the noun taken in params in count > 1', () => { const nounFile = 'file'; const nounBox = 'box'; - expect(maybePluralize(1, nounFile)).toBe(`1 ${nounFile}`); expect(maybePluralize(2, nounFile)).toBe(`2 ${nounFile}s`); expect(maybePluralize(2, nounBox, 'es')).toBe(`2 ${nounBox}es`); }); - it('should return a string without quotes if exists at the beginning and the end of the string else return string', () => { expect(stripQuotes('"test with quotes"')).toBe('test with quotes'); expect(stripQuotes('test without quotes')).toBe('test without quotes'); }); -}); +}); \ No newline at end of file diff --git a/src/react/utils/actions.js b/src/react/utils/actions.ts similarity index 81% rename from src/react/utils/actions.js rename to src/react/utils/actions.ts index 57de117e1..780c1e4e5 100644 --- a/src/react/utils/actions.js +++ b/src/react/utils/actions.ts @@ -1,6 +1,4 @@ -// @flow import type { AppState } from '../../types/state'; - export function getClients(state: AppState) { return { instanceId: state.instances.selectedId, @@ -9,7 +7,6 @@ export function getClients(state: AppState) { stsClient: state.auth.stsClient, }; } - -export function getAccountId(state: AppState): ?string { +export function getAccountId(state: AppState): string | null | undefined { return state.auth.selectedAccount?.id; -} +} \ No newline at end of file diff --git a/src/react/utils/hooks.js b/src/react/utils/hooks.ts similarity index 96% rename from src/react/utils/hooks.js rename to src/react/utils/hooks.ts index b9d89fac1..564ac686c 100644 --- a/src/react/utils/hooks.js +++ b/src/react/utils/hooks.ts @@ -1,10 +1,8 @@ import { useEffect, useState } from 'react'; import { useLocation } from 'react-router-dom'; import { addTrailingSlash } from '.'; - -export const useHeight = myRef => { +export const useHeight = (myRef) => { const [height, setHeight] = useState(0); - useEffect(() => { const handleResize = () => { setHeight(myRef.current.offsetHeight); @@ -15,15 +13,12 @@ export const useHeight = myRef => { } window.addEventListener('resize', handleResize); - return () => { window.removeEventListener('resize', handleResize); }; }, [myRef]); - return height; }; - export const useOutsideClick = (ref, actionFn) => { useEffect(() => { function handleClickOutside(event) { @@ -33,17 +28,14 @@ export const useOutsideClick = (ref, actionFn) => { } document.addEventListener('mousedown', handleClickOutside); - return () => { document.removeEventListener('mousedown', handleClickOutside); }; }, [ref, actionFn]); }; - export const useQueryParams = () => { return new URLSearchParams(useLocation().search); }; - export const usePrefixWithSlash = () => { const query = useQueryParams(); const prefix = query.get('prefix'); @@ -51,23 +43,24 @@ export const usePrefixWithSlash = () => { if (!prefix) { return ''; } + // If the prefix includes both folder and object, we have to remove the last part of the path which is the object key if (prefix && prefix.slice(-1) !== '/') { const prefixArr = prefix.split('/'); prefixArr.pop(); + if (!prefixArr.length) { return ''; } + return addTrailingSlash(prefixArr.join('/')); } else { return prefix; } }; - export const COPY_STATE_IDLE = 'idle'; export const COPY_STATE_SUCCESS = 'success'; export const COPY_STATE_UNSUPPORTED = 'unsupported'; - export const useClipboard = () => { const [copyStatus, setCopyStatus] = useState(COPY_STATE_IDLE); useEffect(() => { @@ -77,11 +70,12 @@ export const useClipboard = () => { return () => clearTimeout(timer); }, [copyStatus]); - const copyToClipboard = text => { + const copyToClipboard = (text) => { if (!navigator || !navigator.clipboard) { setCopyStatus(COPY_STATE_UNSUPPORTED); return; } + navigator.clipboard.writeText(text); setCopyStatus(COPY_STATE_SUCCESS); }; @@ -90,4 +84,4 @@ export const useClipboard = () => { copy: copyToClipboard, copyStatus: copyStatus, }; -}; +}; \ No newline at end of file diff --git a/src/react/utils/index.js b/src/react/utils/index.ts similarity index 84% rename from src/react/utils/index.js rename to src/react/utils/index.ts index fe3efbc51..38e6c1fe3 100644 --- a/src/react/utils/index.js +++ b/src/react/utils/index.ts @@ -1,25 +1,35 @@ import { DateTime } from 'luxon'; - export const systemMetadata = [ - { key: 'CacheControl', header: 'cache-control' }, - { key: 'ContentDisposition', header: 'content-disposition' }, - { key: 'ContentEncoding', header: 'content-encoding' }, - { key: 'ContentType', header: 'content-type' }, - { key: 'WebsiteRedirectLocation', header: 'website-redirect-location' }, + { + key: 'CacheControl', + header: 'cache-control', + }, + { + key: 'ContentDisposition', + header: 'content-disposition', + }, + { + key: 'ContentEncoding', + header: 'content-encoding', + }, + { + key: 'ContentType', + header: 'content-type', + }, + { + key: 'WebsiteRedirectLocation', + header: 'website-redirect-location', + }, ]; - export const systemMetadataKeys = systemMetadata.map(m => m.key); - export const AMZ_META = 'x-amz-meta'; export const METADATA_USER_TYPE = 'user'; export const METADATA_SYSTEM_TYPE = 'system'; - export function errorParser(error) { let message = ''; - //! $FlowFixMe + if (error.response && error.response.body && error.response.body.message) { message = error.response.body.message; - //! $FlowFixMe } else if (error.status === 401) { message = 'The request is missing valid authentication credentials.'; } else if (error.status === 403) { @@ -35,39 +45,35 @@ export function errorParser(error) { } else { message = `Failed with error status: ${String(error.status)}`; } - return { message }; -} + return { + message, + }; +} export function formatDate(d) { return `${d.toDateString()} ${d.toTimeString().split(' ')[0]}`; } - export function formatShortDate(d) { const date = DateTime.fromISO(d.toISOString()).toISODate(); const time = DateTime.fromISO(d.toISOString()).toFormat('TT'); return `${date} ${time}`; } - export function formatSimpleDate(d) { return d.toISOString().split('T')[0]; } - export const stripTrailingSlash = name => name.slice(-1) === '/' ? name.slice(0, -1) : name; export const addTrailingSlash = name => name ? (name.slice(-1) !== '/' ? `${name}/` : name) : ''; - export const maybePluralize = (count, noun, suffix = 's') => `${count} ${noun}${count > 1 ? suffix : ''}`; - export function stripQuotes(s) { if (s.startsWith('"') && s.endsWith('"')) { return s.slice(1, -1); } + return s; } - export const isEmptyItem = item => item.key === '' && item.value === ''; - export const isVersioning = type => type === 'Enabled'; export const isVersioningDisabled = type => type === 'Disabled'; diff --git a/src/react/utils/localStorage.js b/src/react/utils/localStorage.ts similarity index 95% rename from src/react/utils/localStorage.js rename to src/react/utils/localStorage.ts index f481425eb..0ee528fb3 100644 --- a/src/react/utils/localStorage.js +++ b/src/react/utils/localStorage.ts @@ -1,15 +1,10 @@ -// @flow - const ACCOUNT_ID_KEY = 'account-id'; - export function getAccountIDStored(): string { return localStorage.getItem(ACCOUNT_ID_KEY) || ''; } - export function setAccountIDStored(accountID: string): void { localStorage.setItem(ACCOUNT_ID_KEY, accountID); } - export function removeAccountIDStored(): void { localStorage.removeItem(ACCOUNT_ID_KEY); -} +} \ No newline at end of file diff --git a/src/react/utils/s3.js b/src/react/utils/s3.ts similarity index 99% rename from src/react/utils/s3.js rename to src/react/utils/s3.ts index e743f2d8c..fd9859db8 100644 --- a/src/react/utils/s3.js +++ b/src/react/utils/s3.ts @@ -1,10 +1,7 @@ -// @flow import type { S3DeleteMarker, S3Version } from '../../types/s3'; - export const LIST_OBJECTS_S3_TYPE = 's3'; export const LIST_OBJECTS_METADATA_TYPE = 'md'; export const LIST_OBJECT_VERSIONS_S3_TYPE = 'ver'; - export const mergeSortedVersionsAndDeleteMarkers = ( versions: Array, deleteMarkers: Array, @@ -25,6 +22,7 @@ export const mergeSortedVersionsAndDeleteMarkers = ( } else if (versions[vIdx].Key !== deleteMarkers[dmIdx].Key) { // 1. by Key name, alphabetical order sorted by ascii values const isVKeyNewer = versions[vIdx].Key < deleteMarkers[dmIdx].Key; + if (isVKeyNewer) { sortedList.push(versions[vIdx++]); } else { @@ -46,6 +44,7 @@ export const mergeSortedVersionsAndDeleteMarkers = ( const isDMLastModifiedNewer = new Date(deleteMarkers[dmIdx].LastModified) > new Date(versions[vIdx].LastModified); + // 2. by LastModified, find newer if (isVersionLastModifiedNewer) { sortedList.push(versions[vIdx++]); @@ -66,5 +65,6 @@ export const mergeSortedVersionsAndDeleteMarkers = ( } } } + return sortedList; -}; +}; \ No newline at end of file diff --git a/src/react/utils/storageOptions.js b/src/react/utils/storageOptions.ts similarity index 85% rename from src/react/utils/storageOptions.js rename to src/react/utils/storageOptions.ts index 1d1430976..59993928f 100644 --- a/src/react/utils/storageOptions.js +++ b/src/react/utils/storageOptions.ts @@ -6,39 +6,36 @@ import type { } from '../../types/storageOptionsHelper'; import { storageOptions } from '../backend/location/LocationDetails'; import type { Locations } from '../../types/config'; - export function checkSupportsReplicationTarget(locations: Locations): boolean { return Object.keys(locations).some( - l => + (l) => storageOptions[locations[l].locationType].supportsReplicationTarget === true, ); } - export function checkIfExternalLocation(locations: Locations): boolean { return Object.keys(locations).some( - l => locations[l].locationType !== 'location-file-v1', + (l) => locations[l].locationType !== 'location-file-v1', ); } - export function getLocationName(locationType) { const locationTypeName = storageOptions[locationType] ? storageOptions[locationType].name : ''; return locationTypeName; } - export function getLocationType(locationConstraint, locations) { const constraint = locationConstraint || 'us-east-1'; // defaults to empty + const locationType = locations && locations[constraint] ? locations[constraint].locationType : ''; return locationType; } - export function getLocationTypeFromName(locationConstraint, locations) { const constraint = locationConstraint || 'us-east-1'; // defaults to empty + const locationType = locations && locations[constraint] ? locations[constraint].locationType @@ -48,9 +45,9 @@ export function getLocationTypeFromName(locationConstraint, locations) { : ''; return locationTypeName; } - export function getLocationTypeShort(locationConstraint, locations) { const constraint = locationConstraint || 'us-east-1'; // defaults to empty + const locationType = locations && locations[constraint] ? locations[constraint].locationType @@ -60,32 +57,33 @@ export function getLocationTypeShort(locationConstraint, locations) { : ''; return locationTypeName; } - export function getLocationBucketName(locationConstraint, locations) { const constraint = locationConstraint || 'us-east-1'; // defaults to empty + const bucketName = locations && locations[constraint] && locations[constraint].details ? locations[constraint].details.bucketName : ''; return bucketName; } - export function selectStorageOptions( - capabilities: $PropertyType, + capabilities: Pick, labelFn?: LabelFunction, exceptHidden: boolean = true, ): Array { return Object.keys(storageOptions) - .filter(o => { + .filter((o) => { if (exceptHidden) { const hidden = !!storageOptions[o].hidden; + if (hidden) { return false; } } + return true; }) - .map(o => { + .map((o) => { const check = storageOptions[o].checkCapability; return { value: o, @@ -94,22 +92,31 @@ export function selectStorageOptions( }; }); } - export function locationWithIngestion(locations, capabilities) { return Object.keys(locations).reduce((r, key) => { const locationType = locations[key].locationType; - r.push({ value: key, locationType, mirrorMode: false }); + r.push({ + value: key, + locationType, + mirrorMode: false, + }); const isIngest = isIngestLocation(locations[key], capabilities); + if (isIngest) { - r.push({ value: `${key}:ingest`, locationType, mirrorMode: true }); + r.push({ + value: `${key}:ingest`, + locationType, + mirrorMode: true, + }); } + return r; }, []); } - export function isIngestLocation(location, capabilities) { const locationType = location.locationType; const ingestCapability = storageOptions[locationType].ingestCapability; + if (!!ingestCapability && !!capabilities[ingestCapability]) { if ( locationType === 'location-nfs-mount-v1' || @@ -118,28 +125,38 @@ export function isIngestLocation(location, capabilities) { return true; } } + return false; } - export function isIngestSource( - storageOptions: { [name: string]: any }, + storageOptions: Record, locationType: string, - capabilities: $PropertyType, + capabilities: Pick, ): boolean { return ( !!storageOptions[locationType].ingestCapability && !!capabilities[storageOptions[locationType].ingestCapability] ); } - export function getLocationIngestionState(ingestionStates, locationName) { if (ingestionStates) { if (ingestionStates?.[locationName] === 'enabled') { - return { value: 'Active', isIngestion: true }; + return { + value: 'Active', + isIngestion: true, + }; } + if (ingestionStates?.[locationName] === 'disabled') { - return { value: 'Paused', isIngestion: true }; + return { + value: 'Paused', + isIngestion: true, + }; } } - return { value: '-', isIngestion: false }; -} + + return { + value: '-', + isIngestion: false, + }; +} \ No newline at end of file diff --git a/src/react/utils/test.js b/src/react/utils/test.tsx similarity index 93% rename from src/react/utils/test.js rename to src/react/utils/test.tsx index 1c9dd4165..7c5db015f 100644 --- a/src/react/utils/test.js +++ b/src/react/utils/test.tsx @@ -6,7 +6,6 @@ import configureStore from 'redux-mock-store'; import { initialFullState } from '../reducers/initialConstants'; import { mount } from 'enzyme'; import thunk from 'redux-thunk'; - const theme = { name: 'Dark Rebrand Theme', brand: { @@ -52,13 +51,8 @@ const theme = { info: '#434343', }, }; - -export const newTestStore = state => - configureStore([thunk])({ - ...initialFullState, - ...(state || {}), - }); - +export const newTestStore = (state) => + configureStore([thunk])({ ...initialFullState, ...(state || {}) }); export const reduxMount = (component, testState) => { const store = newTestStore(testState); return { @@ -69,11 +63,9 @@ export const reduxMount = (component, testState) => { ), }; }; - export async function reduxMountAct(component, testState) { const store = newTestStore(testState); let wrapper = null; - await act(async () => { wrapper = mount( @@ -81,14 +73,11 @@ export async function reduxMountAct(component, testState) { , ); }); - return wrapper; } - -export const themeMount = component => { +export const themeMount = (component) => { return mount({component}); }; - export function updateInputText(component, name, value) { component.find(`input[name="${name}"]`).simulate('change', { target: { @@ -97,7 +86,6 @@ export function updateInputText(component, name, value) { }, }); } - export function checkBox(component, name, checked) { component.find(`input[name="${name}"]`).simulate('change', { target: { @@ -107,24 +95,24 @@ export function checkBox(component, name, checked) { }, }); } - export function editListEntry(component, value, index) { const wrapper = component .find('InputList') .find(`input[name="entry${index}"]`); - wrapper.simulate('change', { target: { value } }); + wrapper.simulate('change', { + target: { + value, + }, + }); } - export function addListEntry(component) { const btnWrapper = component.find('InputList').find('button[name="addbtn"]'); btnWrapper.simulate('click'); } - export function delListEntry(component, index) { const btnWrapper = component.find('InputList').find(`button#delbtn${index}`); btnWrapper.simulate('click'); } - export function testTableRow( T, rowWrapper, @@ -132,6 +120,7 @@ export function testTableRow( ) { expect(rowWrapper.find(T.Key).text()).toContain(key); expect(rowWrapper.find(T.Value).text()).toContain(value); + if (extraCellComponent) { expect(rowWrapper.find(T.ExtraCell).find(extraCellComponent)).toHaveLength( 1, @@ -139,4 +128,4 @@ export function testTableRow( } else { expect(rowWrapper.find(T.ExtraCell)).toHaveLength(0); } -} +} \ No newline at end of file diff --git a/src/react/workflow/WorkflowContent.jsx b/src/react/workflow/WorkflowContent.tsx similarity index 95% rename from src/react/workflow/WorkflowContent.jsx rename to src/react/workflow/WorkflowContent.tsx index 9e2ebb581..18a51f3d8 100644 --- a/src/react/workflow/WorkflowContent.jsx +++ b/src/react/workflow/WorkflowContent.tsx @@ -1,4 +1,3 @@ -// @flow import { ContentSection, CreationSection } from '../ui-elements/ListLayout3'; import Table, * as T from '../ui-elements/TableKeyValue2'; import type { AppState } from '../../types/state'; @@ -12,15 +11,12 @@ import type { Workflow } from '../../types/workflow'; import { useLocation } from 'react-router-dom'; import { useQueryParams } from '../utils/hooks'; import { useSelector } from 'react-redux'; - export const SELECT_A_WORKFLOW_MESSAGE = 'Select a workflow.'; - type Props = { - wfSelected: ?Workflow, - createMode: boolean, - bucketList: S3BucketList, + wfSelected: Workflow | null | undefined; + createMode: boolean; + bucketList: S3BucketList; }; - export const InfoWarning = ({ title }: { title: string }) => ( ); @@ -40,7 +36,6 @@ function WorkflowContent({ createMode, wfSelected, bucketList }: Props) { const loading = useSelector( (state: AppState) => state.networkActivity.counter > 0, ); - const tabName = query.get('tab'); if (createMode) { @@ -71,6 +66,7 @@ function WorkflowContent({ createMode, wfSelected, bucketList }: Props) { if (!wfSelected) { return ; } + if (!tabName) { return ( ); } + return null; }; @@ -97,4 +94,4 @@ function WorkflowContent({ createMode, wfSelected, bucketList }: Props) { ); } -export default WorkflowContent; +export default WorkflowContent; \ No newline at end of file diff --git a/src/react/workflow/WorkflowList.jsx b/src/react/workflow/WorkflowList.tsx similarity index 87% rename from src/react/workflow/WorkflowList.jsx rename to src/react/workflow/WorkflowList.tsx index 33ee10022..1b29a6a9e 100644 --- a/src/react/workflow/WorkflowList.jsx +++ b/src/react/workflow/WorkflowList.tsx @@ -1,4 +1,3 @@ -// @flow import MemoRow, { createItemData } from './WorkflowRow'; import Table, * as T from '../ui-elements/Table'; import { useFilters, useFlexLayout, useSortBy, useTable } from 'react-table'; @@ -10,7 +9,6 @@ import { TextTransformer } from '../ui-elements/Utility'; import type { Workflows } from '../../types/workflow'; import { push } from 'connected-react-router'; import { useDispatch } from 'react-redux'; - const columns = [ { Header: 'Workflow Description', @@ -20,9 +18,11 @@ const columns = [ { Header: 'Workflow Type', accessor: 'type', + Cell({ value: type }: { value: string }) { return {type}; }, + width: 25, }, { @@ -34,15 +34,14 @@ const columns = [ width: 15, }, ]; - type Props = { - workflows: Workflows, - workflowId: ?string, - createMode: boolean, + workflows: Workflows; + workflowId: string | null | undefined; + createMode: boolean; }; + function WorkflowList({ createMode, workflows, workflowId }: Props) { const dispatch = useDispatch(); - const { getTableProps, getTableBodyProps, @@ -62,7 +61,6 @@ function WorkflowList({ createMode, workflows, workflowId }: Props) { useSortBy, useFlexLayout, ); - return ( @@ -70,7 +68,7 @@ function WorkflowList({ createMode, workflows, workflowId }: Props) { setFilter('name', e.target.value)} + onChange={(e) => setFilter('name', e.target.value)} /> - {headerGroups.map(headerGroup => ( + {headerGroups.map((headerGroup) => ( - {headerGroup.headers.map(column => ( + {headerGroup.headers.map((column) => ( {column.render('Header')} @@ -115,9 +115,9 @@ function WorkflowList({ createMode, workflows, workflowId }: Props) { - {({ height, width }) => ( - // ISSUE: https://github.com/bvaughn/react-window/issues/504 - // eslint-disable-next-line flowtype-errors/show-errors + {( + { height, width }, // ISSUE: https://github.com/bvaughn/react-window/issues/504 + ) => ( void; - +type PrepareRow = (arg0: RowType) => void; type RowType = { - id: number, - original: Workflow, - cells: any, - getRowProps: any => void, + id: number; + original: Workflow; + cells: any; + getRowProps: (arg0: any) => void; }; - type RowsType = Array; - type Data = { - rows: RowsType, - prepareRow: PrepareRow, - selectedWorkflowId: ?string, - dispatch: DispatchAPI, + rows: RowsType; + prepareRow: PrepareRow; + selectedWorkflowId: string | null | undefined; + dispatch: DispatchAPI; }; - type RowProps = { - data: Data, - index: number, - style: Object, + data: Data; + index: number; + style: Record; }; - // createItemData: This helper function memoizes incoming props, // To avoid causing unnecessary re-renders pure MemoRow components. // This is only needed since we are passing multiple props with a wrapper object. @@ -41,7 +33,7 @@ export const createItemData = memoize( ( rows: RowsType, prepareRow: PrepareRow, - selectedWorkflowId: ?string, + selectedWorkflowId: string | null | undefined, dispatch: DispatchAPI, ): Data => ({ rows, @@ -70,9 +62,11 @@ const Row = ({ dispatch(push(`/workflows/${workflowId}`)); } }} - {...row.getRowProps({ style })} + {...row.getRowProps({ + style, + })} > - {row.cells.map(cell => ( + {row.cells.map((cell) => ( {cell.render('Cell')} @@ -81,4 +75,4 @@ const Row = ({ ); }; -export default memo(Row, areEqual); +export default memo(Row, areEqual); \ No newline at end of file diff --git a/src/react/workflow/Workflows.jsx b/src/react/workflow/Workflows.tsx similarity index 97% rename from src/react/workflow/Workflows.jsx rename to src/react/workflow/Workflows.tsx index 39b149b4e..2ca95b26c 100644 --- a/src/react/workflow/Workflows.jsx +++ b/src/react/workflow/Workflows.tsx @@ -1,4 +1,3 @@ -// @flow import * as L from '../ui-elements/ListLayout3'; import { Redirect, useLocation, useParams } from 'react-router-dom'; import { useDispatch, useSelector } from 'react-redux'; @@ -10,7 +9,6 @@ import { Warning } from '../ui-elements/Warning'; import WorkflowContent from './WorkflowContent'; import WorkflowList from './WorkflowList'; import { push } from 'connected-react-router'; - export default function Workflows() { const dispatch = useDispatch(); const { workflowId } = useParams(); @@ -56,6 +54,7 @@ export default function Workflows() { ); } + if (!createMode && workflows.length === 0) { return ( @@ -69,10 +68,12 @@ export default function Workflows() { ); } + // redirect to the first workflow. if (!createMode && workflows.length > 0 && !workflowId) { return ; } + return ( w.id === workflowId)} + wfSelected={workflows.find((w) => w.id === workflowId)} /> ); @@ -97,4 +98,4 @@ export default function Workflows() { {content()} ); -} +} \ No newline at end of file diff --git a/src/react/workflow/details/Configuration.jsx b/src/react/workflow/details/Configuration.tsx similarity index 91% rename from src/react/workflow/details/Configuration.jsx rename to src/react/workflow/details/Configuration.tsx index 18905794a..1dd9e251d 100644 --- a/src/react/workflow/details/Configuration.jsx +++ b/src/react/workflow/details/Configuration.tsx @@ -1,4 +1,3 @@ -// @flow import type { Locations, ReplicationStreams } from '../../../types/config'; import React, { useMemo } from 'react'; import Table, * as T from '../../ui-elements/TableKeyValue2'; @@ -16,20 +15,19 @@ import Replication from '../replication/Replication'; import type { S3BucketList } from '../../../types/s3'; import type { Workflow } from '../../../types/workflow'; import styled from 'styled-components'; - const TableContainer = styled.div` display: flex; width: 100%; `; - type Props = { - wfSelected: Workflow, - replications: ReplicationStreams, - bucketList: S3BucketList, - locations: Locations, - showEditWorkflowNotification: boolean, - loading: boolean, + wfSelected: Workflow; + replications: ReplicationStreams; + bucketList: S3BucketList; + locations: Locations; + showEditWorkflowNotification: boolean; + loading: boolean; }; + function Configuration({ wfSelected, replications, @@ -44,7 +42,7 @@ function Configuration({ (state: AppState) => state.uiWorkflows.showWorkflowDeleteModal, ); const replication = useMemo(() => { - return replications.find(r => r.streamId === workflowId); + return replications.find((r) => r.streamId === workflowId); }, [replications, workflowId]); const handleOpenDeleteModal = () => { @@ -103,4 +101,4 @@ function Configuration({ ); } -export default Configuration; +export default Configuration; \ No newline at end of file diff --git a/src/react/workflow/replication/Replication.jsx b/src/react/workflow/replication/Replication.tsx similarity index 82% rename from src/react/workflow/replication/Replication.jsx rename to src/react/workflow/replication/Replication.tsx index 785da5c5b..a92b583d6 100644 --- a/src/react/workflow/replication/Replication.jsx +++ b/src/react/workflow/replication/Replication.tsx @@ -1,4 +1,3 @@ -// @flow import * as T from '../../ui-elements/TableKeyValue2'; import { Controller, useForm } from 'react-hook-form'; import { ErrorInput } from '../../ui-elements/FormLayout'; @@ -34,7 +33,6 @@ import { push } from 'connected-react-router'; import { spacing } from '@scality/core-ui/dist/style/theme'; import styled from 'styled-components'; import { useDispatch } from 'react-redux'; - const ReplicationContainer = styled.div` display: flex; flex-direction: column; @@ -44,48 +42,35 @@ const ReplicationContainer = styled.div` min-height: 42px; } `; - const schema = Joi.object({ - streamId: Joi.string() - .label('Id') - .allow(''), - streamVersion: Joi.number() - .label('Version') - .optional(), + streamId: Joi.string().label('Id').allow(''), + streamVersion: Joi.number().label('Version').optional(), // streamName: Joi.string().label('Name').min(4).allow('').messages({ // 'string.min': '"Name" should have a minimum length of {#limit}', // }), - enabled: Joi.boolean() - .label('State') - .required(), + enabled: Joi.boolean().label('State').required(), sourceBucket: Joi.object({ - value: Joi.string() - .label('Bucket Name') - .required(), + value: Joi.string().label('Bucket Name').required(), label: Joi.string(), disabled: Joi.boolean(), location: Joi.string(), }), - sourcePrefix: Joi.string() - .label('Prefix') - .allow(''), + sourcePrefix: Joi.string().label('Prefix').allow(''), destinationLocation: Joi.object({ - value: Joi.string() - .label('Destination Location Name') - .required(), + value: Joi.string().label('Destination Location Name').required(), label: Joi.string(), }), }); - type Props = { - replications: ReplicationStreams, - bucketList: S3BucketList, - locations: Locations, - workflow: ?ReplicationStream, - showEditWorkflowNotification: boolean, - createMode: boolean, - loading: boolean, + replications: ReplicationStreams; + bucketList: S3BucketList; + locations: Locations; + workflow: ReplicationStream | null | undefined; + showEditWorkflowNotification: boolean; + createMode: boolean; + loading: boolean; }; + function Replication({ replications, bucketList, @@ -96,24 +81,24 @@ function Replication({ loading, }: Props) { const dispatch = useDispatch(); - const { register, handleSubmit, errors, control, reset, getValues } = useForm( { resolver: joiResolver(schema), defaultValues: newReplicationForm(), }, ); - useEffect(() => { reset(convertToReplicationForm(workflow)); // asynchronously reset form values }, [reset, workflow]); - const onSubmit = values => { - let stream = values; + const onSubmit = (values) => { + const stream = values; let s = convertToReplicationStream(stream); + if (!s.name) { s = { ...s, name: generateStreamName(s) }; } + dispatch(saveReplication(s)); }; @@ -121,10 +106,11 @@ function Replication({ dispatch(push('/workflows')); }; - const handleChange = onChange => e => { + const handleChange = (onChange) => (e) => { if (!showEditWorkflowNotification) { dispatch(openWorkflowEditNotification()); } + onChange(e); }; @@ -168,25 +154,25 @@ function Replication({ General {/* - Rule Name - - { - return ; - }} - /> - - {errors.streamName?.message} - - - */} + Rule Name + + { + return ; + }} + /> + + {errors.streamName?.message} + + + */} State @@ -235,8 +221,9 @@ function Replication({ ); const isEditing = !!getValues('streamId'); const result = options.find( - l => l.value === sourceBucket.value, + (l) => l.value === sourceBucket.value, ); + if (isEditing) { // TODO: To be removed once retrieving workflows per account: if (!result) { @@ -250,15 +237,17 @@ function Replication({ ); } + return renderSource(locations)(result); } + return (