From a4c73858eff7e8c86465d14f562230eb2d29cda9 Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Wed, 25 Jan 2023 08:14:25 -0600 Subject: [PATCH 01/32] chore: Adding airbnb typescript defaults and enforce return types --- src/main/webapp/.eslintrc.js | 20 +- src/main/webapp/package.json | 7 +- src/main/webapp/pnpm-lock.yaml | 608 +++++++++++++++--- src/main/webapp/resources/js/apis/requests.ts | 9 +- 4 files changed, 528 insertions(+), 116 deletions(-) diff --git a/src/main/webapp/.eslintrc.js b/src/main/webapp/.eslintrc.js index bd380cf9cc2..29a8d3b68d5 100644 --- a/src/main/webapp/.eslintrc.js +++ b/src/main/webapp/.eslintrc.js @@ -9,15 +9,18 @@ module.exports = { i18n: true, __webpack_public_path__: true, }, - extends: [ - "eslint:recommended", - "plugin:react/recommended", - "plugin:react-hooks/recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended", - "plugin:prettier/recommended", - ], + extends: ["airbnb", "airbnb-typescript", "plugin:prettier/recommended"], + // [ + // "airbnb-typescript", + // "eslint:recommended", + // "plugin:react/recommended", + // "plugin:react-hooks/recommended", + // "plugin:@typescript-eslint/eslint-recommended", + // "plugin:@typescript-eslint/recommended", + // "plugin:prettier/recommended", + // ], parserOptions: { + project: "./tsconfig.json", ecmaFeatures: { jsx: true, }, @@ -31,6 +34,7 @@ module.exports = { }, }, rules: { + "@typescript-eslint/explicit-function-return-type": "warn", "react/prop-types": 0, "prefer-destructuring": [ "error", diff --git a/src/main/webapp/package.json b/src/main/webapp/package.json index b767cd50193..ffc13adc7db 100644 --- a/src/main/webapp/package.json +++ b/src/main/webapp/package.json @@ -90,8 +90,8 @@ "@types/react-virtualized-auto-sizer": "^1.0.1", "@types/react-window": "^1.8.5", "@types/styled-components": "^5.1.25", - "@typescript-eslint/eslint-plugin": "^5.27.0", - "@typescript-eslint/parser": "^5.27.0", + "@typescript-eslint/eslint-plugin": "^5.49.0", + "@typescript-eslint/parser": "^5.49.0", "autoprefixer": "^10.4.4", "babel-loader": "^8.2.4", "babel-plugin-import": "^1.13.5", @@ -99,7 +99,10 @@ "css-loader": "^6.7.1", "css-minimizer-webpack-plugin": "^3.4.1", "eslint": "^8.13.0", + "eslint-config-airbnb": "^19.0.4", + "eslint-config-airbnb-typescript": "^17.0.0", "eslint-config-prettier": "^8.5.0", + "eslint-plugin-import": "^2.27.5", "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-prettier": "^4.0.0", "eslint-plugin-react": "^7.29.4", diff --git a/src/main/webapp/pnpm-lock.yaml b/src/main/webapp/pnpm-lock.yaml index 9866f5b46ae..6a20420f94a 100644 --- a/src/main/webapp/pnpm-lock.yaml +++ b/src/main/webapp/pnpm-lock.yaml @@ -43,8 +43,8 @@ specifiers: '@types/react-virtualized-auto-sizer': ^1.0.1 '@types/react-window': ^1.8.5 '@types/styled-components': ^5.1.25 - '@typescript-eslint/eslint-plugin': ^5.27.0 - '@typescript-eslint/parser': ^5.27.0 + '@typescript-eslint/eslint-plugin': ^5.49.0 + '@typescript-eslint/parser': ^5.49.0 ag-grid-community: ^27.1.0 ag-grid-react: ^27.1.0 antd: 4.19.5 @@ -59,7 +59,10 @@ specifiers: dayjs: ^1.11.1 deck.gl: ^8.7.12 eslint: ^8.13.0 + eslint-config-airbnb: ^19.0.4 + eslint-config-airbnb-typescript: ^17.0.0 eslint-config-prettier: ^8.5.0 + eslint-plugin-import: ^2.27.5 eslint-plugin-jsx-a11y: ^6.5.1 eslint-plugin-prettier: ^4.0.0 eslint-plugin-react: ^7.29.4 @@ -188,8 +191,8 @@ devDependencies: '@types/react-virtualized-auto-sizer': 1.0.1 '@types/react-window': 1.8.5 '@types/styled-components': 5.1.25 - '@typescript-eslint/eslint-plugin': 5.27.0_ljfpvv7dypng7yyhsvie2ogdeu - '@typescript-eslint/parser': 5.27.0_6hvhxfirl4y3p6nuemvvvbadcu + '@typescript-eslint/eslint-plugin': 5.49.0_tb5wi7ky2cdde6yaetigfnj6ki + '@typescript-eslint/parser': 5.49.0_6hvhxfirl4y3p6nuemvvvbadcu autoprefixer: 10.4.4_postcss@8.4.12 babel-loader: 8.2.4_h3kngfo6sqnotbut4nntjyiezm babel-plugin-import: 1.13.5 @@ -197,7 +200,10 @@ devDependencies: css-loader: 6.7.1_webpack@5.72.0 css-minimizer-webpack-plugin: 3.4.1_webpack@5.72.0 eslint: 8.13.0 + eslint-config-airbnb: 19.0.4_7ibkosttvl3eyhiqio5y5nakhe + eslint-config-airbnb-typescript: 17.0.0_nyk3sczlqurdrr2ekqobbgwazy eslint-config-prettier: 8.5.0_eslint@8.13.0 + eslint-plugin-import: 2.27.5_dapjolpbu26g22dnqmyhntpyxy eslint-plugin-jsx-a11y: 6.5.1_eslint@8.13.0 eslint-plugin-prettier: 4.0.0_vyq77qlfwyijisbn35utc2xrra eslint-plugin-react: 7.29.4_eslint@8.13.0 @@ -2932,6 +2938,10 @@ packages: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} dev: true + /@types/json5/0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true + /@types/lodash.uniqby/4.7.7: resolution: {integrity: sha512-sv2g6vkCIvEUsK5/Vq17haoZaisfj2EWW8mP7QWlnKi6dByoNmeuHDDXHR7sabuDqwO4gvU7ModIL22MmnOocg==} dependencies: @@ -3014,6 +3024,10 @@ packages: /@types/scheduler/0.16.1: resolution: {integrity: sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==} + /@types/semver/7.3.13: + resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} + dev: true + /@types/stack-utils/2.0.0: resolution: {integrity: sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==} dev: true @@ -3044,8 +3058,8 @@ packages: '@types/yargs-parser': 20.2.0 dev: true - /@typescript-eslint/eslint-plugin/5.27.0_ljfpvv7dypng7yyhsvie2ogdeu: - resolution: {integrity: sha512-DDrIA7GXtmHXr1VCcx9HivA39eprYBIFxbQEHI6NyraRDxCGpxAFiYQAT/1Y0vh1C+o2vfBiy4IuPoXxtTZCAQ==} + /@typescript-eslint/eslint-plugin/5.49.0_tb5wi7ky2cdde6yaetigfnj6ki: + resolution: {integrity: sha512-IhxabIpcf++TBaBa1h7jtOWyon80SXPRLDq0dVz5SLFC/eW6tofkw/O7Ar3lkx5z5U6wzbKDrl2larprp5kk5Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -3055,14 +3069,14 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.27.0_6hvhxfirl4y3p6nuemvvvbadcu - '@typescript-eslint/scope-manager': 5.27.0 - '@typescript-eslint/type-utils': 5.27.0_6hvhxfirl4y3p6nuemvvvbadcu - '@typescript-eslint/utils': 5.27.0_6hvhxfirl4y3p6nuemvvvbadcu + '@typescript-eslint/parser': 5.49.0_6hvhxfirl4y3p6nuemvvvbadcu + '@typescript-eslint/scope-manager': 5.49.0 + '@typescript-eslint/type-utils': 5.49.0_6hvhxfirl4y3p6nuemvvvbadcu + '@typescript-eslint/utils': 5.49.0_6hvhxfirl4y3p6nuemvvvbadcu debug: 4.3.4 eslint: 8.13.0 - functional-red-black-tree: 1.0.1 ignore: 5.2.0 + natural-compare-lite: 1.4.0 regexpp: 3.2.0 semver: 7.3.7 tsutils: 3.21.0_typescript@4.7.2 @@ -3071,8 +3085,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.27.0_6hvhxfirl4y3p6nuemvvvbadcu: - resolution: {integrity: sha512-8oGjQF46c52l7fMiPPvX4It3u3V3JipssqDfHQ2hcR0AeR8Zge+OYyKUCm5b70X72N1qXt0qgHenwN6Gc2SXZA==} + /@typescript-eslint/parser/5.49.0_6hvhxfirl4y3p6nuemvvvbadcu: + resolution: {integrity: sha512-veDlZN9mUhGqU31Qiv2qEp+XrJj5fgZpJ8PW30sHU+j/8/e5ruAhLaVDAeznS7A7i4ucb/s8IozpDtt9NqCkZg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -3081,9 +3095,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.27.0 - '@typescript-eslint/types': 5.27.0 - '@typescript-eslint/typescript-estree': 5.27.0_typescript@4.7.2 + '@typescript-eslint/scope-manager': 5.49.0 + '@typescript-eslint/types': 5.49.0 + '@typescript-eslint/typescript-estree': 5.49.0_typescript@4.7.2 debug: 4.3.4 eslint: 8.13.0 typescript: 4.7.2 @@ -3091,16 +3105,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager/5.27.0: - resolution: {integrity: sha512-VnykheBQ/sHd1Vt0LJ1JLrMH1GzHO+SzX6VTXuStISIsvRiurue/eRkTqSrG0CexHQgKG8shyJfR4o5VYioB9g==} + /@typescript-eslint/scope-manager/5.49.0: + resolution: {integrity: sha512-clpROBOiMIzpbWNxCe1xDK14uPZh35u4QaZO1GddilEzoCLAEz4szb51rBpdgurs5k2YzPtJeTEN3qVbG+LRUQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.27.0 - '@typescript-eslint/visitor-keys': 5.27.0 + '@typescript-eslint/types': 5.49.0 + '@typescript-eslint/visitor-keys': 5.49.0 dev: true - /@typescript-eslint/type-utils/5.27.0_6hvhxfirl4y3p6nuemvvvbadcu: - resolution: {integrity: sha512-vpTvRRchaf628Hb/Xzfek+85o//zEUotr1SmexKvTfs7czXfYjXVT/a5yDbpzLBX1rhbqxjDdr1Gyo0x1Fc64g==} + /@typescript-eslint/type-utils/5.49.0_6hvhxfirl4y3p6nuemvvvbadcu: + resolution: {integrity: sha512-eUgLTYq0tR0FGU5g1YHm4rt5H/+V2IPVkP0cBmbhRyEmyGe4XvJ2YJ6sYTmONfjmdMqyMLad7SB8GvblbeESZA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -3109,7 +3123,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.27.0_6hvhxfirl4y3p6nuemvvvbadcu + '@typescript-eslint/typescript-estree': 5.49.0_typescript@4.7.2 + '@typescript-eslint/utils': 5.49.0_6hvhxfirl4y3p6nuemvvvbadcu debug: 4.3.4 eslint: 8.13.0 tsutils: 3.21.0_typescript@4.7.2 @@ -3118,13 +3133,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types/5.27.0: - resolution: {integrity: sha512-lY6C7oGm9a/GWhmUDOs3xAVRz4ty/XKlQ2fOLr8GAIryGn0+UBOoJDWyHer3UgrHkenorwvBnphhP+zPmzmw0A==} + /@typescript-eslint/types/5.49.0: + resolution: {integrity: sha512-7If46kusG+sSnEpu0yOz2xFv5nRz158nzEXnJFCGVEHWnuzolXKwrH5Bsf9zsNlOQkyZuk0BZKKoJQI+1JPBBg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.27.0_typescript@4.7.2: - resolution: {integrity: sha512-QywPMFvgZ+MHSLRofLI7BDL+UczFFHyj0vF5ibeChDAJgdTV8k4xgEwF0geFhVlPc1p8r70eYewzpo6ps+9LJQ==} + /@typescript-eslint/typescript-estree/5.49.0_typescript@4.7.2: + resolution: {integrity: sha512-PBdx+V7deZT/3GjNYPVQv1Nc0U46dAHbIuOG8AZ3on3vuEKiPDwFE/lG1snN2eUB9IhF7EyF7K1hmTcLztNIsA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -3132,8 +3147,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.27.0 - '@typescript-eslint/visitor-keys': 5.27.0 + '@typescript-eslint/types': 5.49.0 + '@typescript-eslint/visitor-keys': 5.49.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -3144,29 +3159,31 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.27.0_6hvhxfirl4y3p6nuemvvvbadcu: - resolution: {integrity: sha512-nZvCrkIJppym7cIbP3pOwIkAefXOmfGPnCM0LQfzNaKxJHI6VjI8NC662uoiPlaf5f6ymkTy9C3NQXev2mdXmA==} + /@typescript-eslint/utils/5.49.0_6hvhxfirl4y3p6nuemvvvbadcu: + resolution: {integrity: sha512-cPJue/4Si25FViIb74sHCLtM4nTSBXtLx1d3/QT6mirQ/c65bV8arBEebBJJizfq8W2YyMoPI/WWPFWitmNqnQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.27.0 - '@typescript-eslint/types': 5.27.0 - '@typescript-eslint/typescript-estree': 5.27.0_typescript@4.7.2 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.49.0 + '@typescript-eslint/types': 5.49.0 + '@typescript-eslint/typescript-estree': 5.49.0_typescript@4.7.2 eslint: 8.13.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.13.0 + semver: 7.3.7 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.27.0: - resolution: {integrity: sha512-46cYrteA2MrIAjv9ai44OQDUoCZyHeGIc4lsjCUX2WT6r4C+kidz1bNiR4017wHOPUythYeH+Sc7/cFP97KEAA==} + /@typescript-eslint/visitor-keys/5.49.0: + resolution: {integrity: sha512-v9jBMjpNWyn8B6k/Mjt6VbUS4J1GvUlR4x3Y+ibnP1z7y7V4n0WRz+50DY6+Myj0UaXVSuUlHohO+eZ8IJEnkg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.27.0 + '@typescript-eslint/types': 5.49.0 eslint-visitor-keys: 3.3.0 dev: true @@ -3590,9 +3607,20 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.1 - get-intrinsic: 1.1.1 + define-properties: 1.1.4 + es-abstract: 1.21.1 + get-intrinsic: 1.2.0 + is-string: 1.0.7 + dev: true + + /array-includes/3.1.6: + resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + get-intrinsic: 1.2.0 is-string: 1.0.7 dev: true @@ -3605,13 +3633,33 @@ packages: engines: {node: '>=8'} dev: true + /array.prototype.flat/1.3.1: + resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + es-shim-unscopables: 1.0.0 + dev: true + /array.prototype.flatmap/1.2.5: resolution: {integrity: sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.1 + define-properties: 1.1.4 + es-abstract: 1.21.1 + dev: true + + /array.prototype.flatmap/1.3.1: + resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + es-shim-unscopables: 1.0.0 dev: true /ast-types-flow/0.0.7: @@ -3642,6 +3690,11 @@ packages: postcss-value-parser: 4.2.0 dev: true + /available-typed-arrays/1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + /axe-core/4.4.1: resolution: {integrity: sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==} engines: {node: '>=4'} @@ -3877,7 +3930,7 @@ packages: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: function-bind: 1.1.1 - get-intrinsic: 1.1.1 + get-intrinsic: 1.2.0 /callsites/3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -4108,6 +4161,10 @@ packages: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true + /confusing-browser-globals/1.0.11: + resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} + dev: true + /convert-source-map/1.7.0: resolution: {integrity: sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==} dependencies: @@ -4486,7 +4543,6 @@ packages: dependencies: ms: 2.1.3 dev: true - optional: true /debug/4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} @@ -4574,6 +4630,14 @@ packages: object-keys: 1.1.1 dev: true + /define-properties/1.1.4: + resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + /delayed-stream/1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -4756,34 +4820,88 @@ packages: call-bind: 1.0.2 es-to-primitive: 1.2.1 function-bind: 1.1.1 - get-intrinsic: 1.1.1 + get-intrinsic: 1.2.0 get-symbol-description: 1.0.0 has: 1.0.3 - has-symbols: 1.0.2 - internal-slot: 1.0.3 - is-callable: 1.2.4 - is-negative-zero: 2.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.4 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 is-regex: 1.1.4 - is-shared-array-buffer: 1.0.1 + is-shared-array-buffer: 1.0.2 is-string: 1.0.7 is-weakref: 1.0.2 - object-inspect: 1.12.0 + object-inspect: 1.12.3 object-keys: 1.1.1 - object.assign: 4.1.2 - string.prototype.trimend: 1.0.4 - string.prototype.trimstart: 1.0.4 - unbox-primitive: 1.0.1 + object.assign: 4.1.4 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + unbox-primitive: 1.0.2 + dev: true + + /es-abstract/1.21.1: + resolution: {integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.2.0 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.4 + is-array-buffer: 3.0.1 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.10 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 + safe-regex-test: 1.0.0 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.9 dev: true /es-module-lexer/0.9.3: resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} dev: true + /es-set-tostringtag/2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.0 + has: 1.0.3 + has-tostringtag: 1.0.0 + dev: true + + /es-shim-unscopables/1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + dev: true + /es-to-primitive/1.2.1: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} dependencies: - is-callable: 1.2.4 + is-callable: 1.2.7 is-date-object: 1.0.2 is-symbol: 1.0.3 dev: true @@ -4820,6 +4938,56 @@ packages: source-map: 0.6.1 dev: true + /eslint-config-airbnb-base/15.0.0_lahxuspv775w45wkma5djds2ca: + resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.2 + dependencies: + confusing-browser-globals: 1.0.11 + eslint: 8.13.0 + eslint-plugin-import: 2.27.5_dapjolpbu26g22dnqmyhntpyxy + object.assign: 4.1.2 + object.entries: 1.1.5 + semver: 6.3.0 + dev: true + + /eslint-config-airbnb-typescript/17.0.0_nyk3sczlqurdrr2ekqobbgwazy: + resolution: {integrity: sha512-elNiuzD0kPAPTXjFWg+lE24nMdHMtuxgYoD30OyMD6yrW1AhFZPAg27VX7d3tzOErw+dgJTNWfRSDqEcXb4V0g==} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.13.0 + '@typescript-eslint/parser': ^5.0.0 + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.3 + dependencies: + '@typescript-eslint/eslint-plugin': 5.49.0_tb5wi7ky2cdde6yaetigfnj6ki + '@typescript-eslint/parser': 5.49.0_6hvhxfirl4y3p6nuemvvvbadcu + eslint: 8.13.0 + eslint-config-airbnb-base: 15.0.0_lahxuspv775w45wkma5djds2ca + eslint-plugin-import: 2.27.5_dapjolpbu26g22dnqmyhntpyxy + dev: true + + /eslint-config-airbnb/19.0.4_7ibkosttvl3eyhiqio5y5nakhe: + resolution: {integrity: sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==} + engines: {node: ^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.3 + eslint-plugin-jsx-a11y: ^6.5.1 + eslint-plugin-react: ^7.28.0 + eslint-plugin-react-hooks: ^4.3.0 + dependencies: + eslint: 8.13.0 + eslint-config-airbnb-base: 15.0.0_lahxuspv775w45wkma5djds2ca + eslint-plugin-import: 2.27.5_dapjolpbu26g22dnqmyhntpyxy + eslint-plugin-jsx-a11y: 6.5.1_eslint@8.13.0 + eslint-plugin-react: 7.29.4_eslint@8.13.0 + eslint-plugin-react-hooks: 4.4.0_eslint@8.13.0 + object.assign: 4.1.2 + object.entries: 1.1.5 + dev: true + /eslint-config-prettier/8.5.0_eslint@8.13.0: resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} hasBin: true @@ -4829,6 +4997,78 @@ packages: eslint: 8.13.0 dev: true + /eslint-import-resolver-node/0.3.7: + resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} + dependencies: + debug: 3.2.7 + is-core-module: 2.11.0 + resolve: 1.22.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils/2.7.4_vwkhuoeewwh3zqeuw3bceanpmm: + resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 5.49.0_6hvhxfirl4y3p6nuemvvvbadcu + debug: 3.2.7 + eslint: 8.13.0 + eslint-import-resolver-node: 0.3.7 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-import/2.27.5_dapjolpbu26g22dnqmyhntpyxy: + resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 5.49.0_6hvhxfirl4y3p6nuemvvvbadcu + array-includes: 3.1.6 + array.prototype.flat: 1.3.1 + array.prototype.flatmap: 1.3.1 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.13.0 + eslint-import-resolver-node: 0.3.7 + eslint-module-utils: 2.7.4_vwkhuoeewwh3zqeuw3bceanpmm + has: 1.0.3 + is-core-module: 2.11.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.6 + resolve: 1.22.0 + semver: 6.3.0 + tsconfig-paths: 3.14.1 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + /eslint-plugin-jsx-a11y/6.5.1_eslint@8.13.0: resolution: {integrity: sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==} engines: {node: '>=4.0'} @@ -5209,6 +5449,12 @@ packages: optional: true dev: false + /for-each/0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + /form-data/3.0.1: resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} engines: {node: '>= 6'} @@ -5242,10 +5488,24 @@ packages: /function-bind/1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /function.prototype.name/1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 + functions-have-names: 1.2.3 + dev: true + /functional-red-black-tree/1.0.1: resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} dev: true + /functions-have-names/1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + /gensync/1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -5256,12 +5516,12 @@ packages: engines: {node: 6.* || 8.* || >= 10.*} dev: true - /get-intrinsic/1.1.1: - resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} + /get-intrinsic/1.2.0: + resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} dependencies: function-bind: 1.1.1 has: 1.0.3 - has-symbols: 1.0.2 + has-symbols: 1.0.3 /get-package-type/0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} @@ -5278,7 +5538,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.1.1 + get-intrinsic: 1.2.0 dev: true /gl-matrix/3.4.3: @@ -5325,6 +5585,13 @@ packages: type-fest: 0.20.2 dev: true + /globalthis/1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.1.4 + dev: true + /globby/11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -5343,8 +5610,15 @@ packages: delegate: 3.2.0 dev: false + /gopd/1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.0 + dev: true + /graceful-fs/4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + requiresBuild: true dev: true optional: true @@ -5362,8 +5636,8 @@ packages: engines: {node: '>=0.8.0'} dev: false - /has-bigints/1.0.1: - resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==} + /has-bigints/1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: true /has-flag/3.0.0: @@ -5375,15 +5649,31 @@ packages: engines: {node: '>=8'} dev: true + /has-property-descriptors/1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.0 + dev: true + + /has-proto/1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: true + /has-symbols/1.0.2: resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==} engines: {node: '>= 0.4'} + dev: true + + /has-symbols/1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} /has-tostringtag/1.0.0: resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} engines: {node: '>= 0.4'} dependencies: - has-symbols: 1.0.2 + has-symbols: 1.0.3 dev: true /has/1.0.3: @@ -5530,7 +5820,16 @@ packages: resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.1.1 + get-intrinsic: 1.2.0 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + + /internal-slot/1.0.4: + resolution: {integrity: sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.0 has: 1.0.3 side-channel: 1.0.4 dev: true @@ -5544,6 +5843,14 @@ packages: engines: {node: '>= 0.10'} dev: true + /is-array-buffer/3.0.1: + resolution: {integrity: sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-typed-array: 1.1.10 + dev: true + /is-arrayish/0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true @@ -5564,13 +5871,13 @@ packages: engines: {node: '>=4'} dev: false - /is-callable/1.2.4: - resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} + /is-callable/1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} dev: true - /is-core-module/2.8.1: - resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==} + /is-core-module/2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} dependencies: has: 1.0.3 dev: true @@ -5607,8 +5914,8 @@ packages: is-extglob: 2.1.1 dev: true - /is-negative-zero/2.0.1: - resolution: {integrity: sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==} + /is-negative-zero/2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} dev: true @@ -5646,8 +5953,10 @@ packages: has-tostringtag: 1.0.0 dev: true - /is-shared-array-buffer/1.0.1: - resolution: {integrity: sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==} + /is-shared-array-buffer/1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 dev: true /is-stream/2.0.0: @@ -5666,7 +5975,18 @@ packages: resolution: {integrity: sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==} engines: {node: '>= 0.4'} dependencies: - has-symbols: 1.0.2 + has-symbols: 1.0.3 + dev: true + + /is-typed-array/1.1.10: + resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 dev: true /is-typedarray/1.0.0: @@ -6315,6 +6635,13 @@ packages: string-convert: 0.2.1 dev: false + /json5/1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.7 + dev: true + /json5/2.2.1: resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} engines: {node: '>=6'} @@ -6325,7 +6652,7 @@ packages: resolution: {integrity: sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==} engines: {node: '>=4.0'} dependencies: - array-includes: 3.1.4 + array-includes: 3.1.6 object.assign: 4.1.2 dev: true @@ -6837,6 +7164,10 @@ packages: brace-expansion: 1.1.11 dev: true + /minimist/1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + dev: true + /mjolnir.js/2.7.0: resolution: {integrity: sha512-XlK5OZ7d09eAIdYr+5VKOArYtkWB/f306s34yVij4pBk5wnaKxSrD7fVfP8/BL27nKVylNweqP1pxqh8h+hWKw==} engines: {node: '>= 4', npm: '>= 3'} @@ -6872,13 +7203,16 @@ packages: /ms/2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - optional: true /nanoid/3.3.2: resolution: {integrity: sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + /natural-compare-lite/1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: true + /natural-compare/1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -6956,8 +7290,8 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - /object-inspect/1.12.0: - resolution: {integrity: sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==} + /object-inspect/1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} /object-keys/1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} @@ -6974,6 +7308,16 @@ packages: object-keys: 1.1.1 dev: true + /object.assign/4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + /object.entries/1.1.5: resolution: {integrity: sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==} engines: {node: '>= 0.4'} @@ -6988,15 +7332,15 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.1 + define-properties: 1.1.4 + es-abstract: 1.21.1 dev: true /object.hasown/1.1.0: resolution: {integrity: sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==} dependencies: - define-properties: 1.1.3 - es-abstract: 1.19.1 + define-properties: 1.1.4 + es-abstract: 1.21.1 dev: true /object.values/1.1.5: @@ -7004,8 +7348,17 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.1 + define-properties: 1.1.4 + es-abstract: 1.21.1 + dev: true + + /object.values/1.1.6: + resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.21.1 dev: true /once/1.4.0: @@ -8775,7 +9128,16 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 + define-properties: 1.1.4 + dev: true + + /regexp.prototype.flags/1.4.3: + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + functions-have-names: 1.2.3 dev: true /regexpp/3.2.0: @@ -8880,7 +9242,7 @@ packages: resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} hasBin: true dependencies: - is-core-module: 2.8.1 + is-core-module: 2.11.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -8950,6 +9312,14 @@ packages: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true + /safe-regex-test/1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-regex: 1.1.4 + dev: true + /safer-buffer/2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -9074,8 +9444,8 @@ packages: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.1.1 - object-inspect: 1.12.0 + get-intrinsic: 1.2.0 + object-inspect: 1.12.3 /signal-exit/3.0.3: resolution: {integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==} @@ -9193,27 +9563,29 @@ packages: resolution: {integrity: sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.1 - get-intrinsic: 1.1.1 + define-properties: 1.1.4 + es-abstract: 1.21.1 + get-intrinsic: 1.2.0 has-symbols: 1.0.2 internal-slot: 1.0.3 regexp.prototype.flags: 1.3.1 side-channel: 1.0.4 dev: true - /string.prototype.trimend/1.0.4: - resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==} + /string.prototype.trimend/1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 + define-properties: 1.1.4 + es-abstract: 1.21.1 dev: true - /string.prototype.trimstart/1.0.4: - resolution: {integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==} + /string.prototype.trimstart/1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 + define-properties: 1.1.4 + es-abstract: 1.21.1 dev: true /strip-ansi/6.0.1: @@ -9230,6 +9602,11 @@ packages: ansi-regex: 6.0.1 dev: true + /strip-bom/3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: true + /strip-bom/4.0.0: resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} engines: {node: '>=8'} @@ -9475,6 +9852,15 @@ packages: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: false + /tsconfig-paths/3.14.1: + resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.7 + strip-bom: 3.0.0 + dev: true + /tslib/1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} @@ -9525,6 +9911,14 @@ packages: engines: {node: '>=10'} dev: true + /typed-array-length/1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.10 + dev: true + /typedarray-to-buffer/3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} dependencies: @@ -9563,12 +9957,12 @@ packages: engines: {node: '>=8'} dev: false - /unbox-primitive/1.0.1: - resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==} + /unbox-primitive/1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - function-bind: 1.1.1 - has-bigints: 1.0.1 - has-symbols: 1.0.2 + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 dev: true @@ -9933,6 +10327,18 @@ packages: is-symbol: 1.0.3 dev: true + /which-typed-array/1.1.9: + resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + is-typed-array: 1.1.10 + dev: true + /which/2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} diff --git a/src/main/webapp/resources/js/apis/requests.ts b/src/main/webapp/resources/js/apis/requests.ts index 7a5ba6ee72b..914e1bf236c 100644 --- a/src/main/webapp/resources/js/apis/requests.ts +++ b/src/main/webapp/resources/js/apis/requests.ts @@ -20,11 +20,10 @@ export async function get( } } -export async function post( - url: string, - params?: T, - config?: AxiosRequestConfig -): Promise { +export async function post< + T, + P = FormData | Record | undefined +>(url: string, params?: P, config?: AxiosRequestConfig): Promise { try { const { data } = await axios.post(url, params, config); return data; From 27eb3d5ad1fb19acc762c077ba20b439e70c5432 Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Wed, 25 Jan 2023 08:51:35 -0600 Subject: [PATCH 02/32] chore: Fixed file path --- src/main/webapp/.eslintrc.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/webapp/.eslintrc.js b/src/main/webapp/.eslintrc.js index 29a8d3b68d5..8446da96bc3 100644 --- a/src/main/webapp/.eslintrc.js +++ b/src/main/webapp/.eslintrc.js @@ -20,7 +20,7 @@ module.exports = { // "plugin:prettier/recommended", // ], parserOptions: { - project: "./tsconfig.json", + project: "../src/main/webapp/tsconfig.json", ecmaFeatures: { jsx: true, }, From 541813c7f6770e67f855a45c4fa6937f283a563b Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Wed, 25 Jan 2023 14:05:15 -0600 Subject: [PATCH 03/32] chore: Updated eslint --- src/main/webapp/package.json | 2 +- src/main/webapp/pnpm-lock.yaml | 244 ++++++++++++++++++++------------- 2 files changed, 150 insertions(+), 96 deletions(-) diff --git a/src/main/webapp/package.json b/src/main/webapp/package.json index ffc13adc7db..7198727e6ba 100644 --- a/src/main/webapp/package.json +++ b/src/main/webapp/package.json @@ -98,7 +98,7 @@ "browserslist": "^4.20.2", "css-loader": "^6.7.1", "css-minimizer-webpack-plugin": "^3.4.1", - "eslint": "^8.13.0", + "eslint": "^8.32.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^17.0.0", "eslint-config-prettier": "^8.5.0", diff --git a/src/main/webapp/pnpm-lock.yaml b/src/main/webapp/pnpm-lock.yaml index 6a20420f94a..8723007601f 100644 --- a/src/main/webapp/pnpm-lock.yaml +++ b/src/main/webapp/pnpm-lock.yaml @@ -58,7 +58,7 @@ specifiers: css-minimizer-webpack-plugin: ^3.4.1 dayjs: ^1.11.1 deck.gl: ^8.7.12 - eslint: ^8.13.0 + eslint: ^8.32.0 eslint-config-airbnb: ^19.0.4 eslint-config-airbnb-typescript: ^17.0.0 eslint-config-prettier: ^8.5.0 @@ -191,23 +191,23 @@ devDependencies: '@types/react-virtualized-auto-sizer': 1.0.1 '@types/react-window': 1.8.5 '@types/styled-components': 5.1.25 - '@typescript-eslint/eslint-plugin': 5.49.0_tb5wi7ky2cdde6yaetigfnj6ki - '@typescript-eslint/parser': 5.49.0_6hvhxfirl4y3p6nuemvvvbadcu + '@typescript-eslint/eslint-plugin': 5.49.0_yp7zhi6aulozdh56jexh6njdgm + '@typescript-eslint/parser': 5.49.0_xxxxlh5gp6rpyhwj2gzuzeb7o4 autoprefixer: 10.4.4_postcss@8.4.12 babel-loader: 8.2.4_h3kngfo6sqnotbut4nntjyiezm babel-plugin-import: 1.13.5 browserslist: 4.20.2 css-loader: 6.7.1_webpack@5.72.0 css-minimizer-webpack-plugin: 3.4.1_webpack@5.72.0 - eslint: 8.13.0 - eslint-config-airbnb: 19.0.4_7ibkosttvl3eyhiqio5y5nakhe - eslint-config-airbnb-typescript: 17.0.0_nyk3sczlqurdrr2ekqobbgwazy - eslint-config-prettier: 8.5.0_eslint@8.13.0 - eslint-plugin-import: 2.27.5_dapjolpbu26g22dnqmyhntpyxy - eslint-plugin-jsx-a11y: 6.5.1_eslint@8.13.0 - eslint-plugin-prettier: 4.0.0_vyq77qlfwyijisbn35utc2xrra - eslint-plugin-react: 7.29.4_eslint@8.13.0 - eslint-plugin-react-hooks: 4.4.0_eslint@8.13.0 + eslint: 8.32.0 + eslint-config-airbnb: 19.0.4_oryl4jl7vhg4a55ttxelhz4hei + eslint-config-airbnb-typescript: 17.0.0_zvmt5xh6vil4vpagx2utjxrocy + eslint-config-prettier: 8.5.0_eslint@8.32.0 + eslint-plugin-import: 2.27.5_6savw6y3b7jng6f64kgkyoij64 + eslint-plugin-jsx-a11y: 6.5.1_eslint@8.32.0 + eslint-plugin-prettier: 4.0.0_k25d2jwm4rzrn4xlrrqrahlrby + eslint-plugin-react: 7.29.4_eslint@8.32.0 + eslint-plugin-react-hooks: 4.4.0_eslint@8.32.0 expose-loader: 3.1.0_webpack@5.72.0 jest: 27.5.1 less: 4.1.2 @@ -2057,14 +2057,14 @@ packages: resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==} dev: false - /@eslint/eslintrc/1.2.1: - resolution: {integrity: sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==} + /@eslint/eslintrc/1.4.1: + resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 9.3.1 - globals: 13.12.1 + espree: 9.4.1 + globals: 13.19.0 ignore: 5.2.0 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -2074,8 +2074,8 @@ packages: - supports-color dev: true - /@humanwhocodes/config-array/0.9.3: - resolution: {integrity: sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==} + /@humanwhocodes/config-array/0.11.8: + resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -2085,6 +2085,11 @@ packages: - supports-color dev: true + /@humanwhocodes/module-importer/1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + /@humanwhocodes/object-schema/1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true @@ -3058,7 +3063,7 @@ packages: '@types/yargs-parser': 20.2.0 dev: true - /@typescript-eslint/eslint-plugin/5.49.0_tb5wi7ky2cdde6yaetigfnj6ki: + /@typescript-eslint/eslint-plugin/5.49.0_yp7zhi6aulozdh56jexh6njdgm: resolution: {integrity: sha512-IhxabIpcf++TBaBa1h7jtOWyon80SXPRLDq0dVz5SLFC/eW6tofkw/O7Ar3lkx5z5U6wzbKDrl2larprp5kk5Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3069,12 +3074,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.49.0_6hvhxfirl4y3p6nuemvvvbadcu + '@typescript-eslint/parser': 5.49.0_xxxxlh5gp6rpyhwj2gzuzeb7o4 '@typescript-eslint/scope-manager': 5.49.0 - '@typescript-eslint/type-utils': 5.49.0_6hvhxfirl4y3p6nuemvvvbadcu - '@typescript-eslint/utils': 5.49.0_6hvhxfirl4y3p6nuemvvvbadcu + '@typescript-eslint/type-utils': 5.49.0_xxxxlh5gp6rpyhwj2gzuzeb7o4 + '@typescript-eslint/utils': 5.49.0_xxxxlh5gp6rpyhwj2gzuzeb7o4 debug: 4.3.4 - eslint: 8.13.0 + eslint: 8.32.0 ignore: 5.2.0 natural-compare-lite: 1.4.0 regexpp: 3.2.0 @@ -3085,7 +3090,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.49.0_6hvhxfirl4y3p6nuemvvvbadcu: + /@typescript-eslint/parser/5.49.0_xxxxlh5gp6rpyhwj2gzuzeb7o4: resolution: {integrity: sha512-veDlZN9mUhGqU31Qiv2qEp+XrJj5fgZpJ8PW30sHU+j/8/e5ruAhLaVDAeznS7A7i4ucb/s8IozpDtt9NqCkZg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3099,7 +3104,7 @@ packages: '@typescript-eslint/types': 5.49.0 '@typescript-eslint/typescript-estree': 5.49.0_typescript@4.7.2 debug: 4.3.4 - eslint: 8.13.0 + eslint: 8.32.0 typescript: 4.7.2 transitivePeerDependencies: - supports-color @@ -3113,7 +3118,7 @@ packages: '@typescript-eslint/visitor-keys': 5.49.0 dev: true - /@typescript-eslint/type-utils/5.49.0_6hvhxfirl4y3p6nuemvvvbadcu: + /@typescript-eslint/type-utils/5.49.0_xxxxlh5gp6rpyhwj2gzuzeb7o4: resolution: {integrity: sha512-eUgLTYq0tR0FGU5g1YHm4rt5H/+V2IPVkP0cBmbhRyEmyGe4XvJ2YJ6sYTmONfjmdMqyMLad7SB8GvblbeESZA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3124,9 +3129,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 5.49.0_typescript@4.7.2 - '@typescript-eslint/utils': 5.49.0_6hvhxfirl4y3p6nuemvvvbadcu + '@typescript-eslint/utils': 5.49.0_xxxxlh5gp6rpyhwj2gzuzeb7o4 debug: 4.3.4 - eslint: 8.13.0 + eslint: 8.32.0 tsutils: 3.21.0_typescript@4.7.2 typescript: 4.7.2 transitivePeerDependencies: @@ -3159,7 +3164,7 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.49.0_6hvhxfirl4y3p6nuemvvvbadcu: + /@typescript-eslint/utils/5.49.0_xxxxlh5gp6rpyhwj2gzuzeb7o4: resolution: {integrity: sha512-cPJue/4Si25FViIb74sHCLtM4nTSBXtLx1d3/QT6mirQ/c65bV8arBEebBJJizfq8W2YyMoPI/WWPFWitmNqnQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3170,9 +3175,9 @@ packages: '@typescript-eslint/scope-manager': 5.49.0 '@typescript-eslint/types': 5.49.0 '@typescript-eslint/typescript-estree': 5.49.0_typescript@4.7.2 - eslint: 8.13.0 + eslint: 8.32.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.13.0 + eslint-utils: 3.0.0_eslint@8.32.0 semver: 7.3.7 transitivePeerDependencies: - supports-color @@ -3351,12 +3356,12 @@ packages: acorn: 8.7.1 dev: true - /acorn-jsx/5.3.1_acorn@8.7.1: - resolution: {integrity: sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==} + /acorn-jsx/5.3.2_acorn@8.8.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.7.1 + acorn: 8.8.2 dev: true /acorn-walk/7.2.0: @@ -3376,6 +3381,12 @@ packages: hasBin: true dev: true + /acorn/8.8.2: + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + /adler-32/1.3.1: resolution: {integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==} engines: {node: '>=0.8'} @@ -4938,7 +4949,7 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-airbnb-base/15.0.0_lahxuspv775w45wkma5djds2ca: + /eslint-config-airbnb-base/15.0.0_ps7hf4l2dvbuxvtusmrfhmzsba: resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: @@ -4946,14 +4957,14 @@ packages: eslint-plugin-import: ^2.25.2 dependencies: confusing-browser-globals: 1.0.11 - eslint: 8.13.0 - eslint-plugin-import: 2.27.5_dapjolpbu26g22dnqmyhntpyxy + eslint: 8.32.0 + eslint-plugin-import: 2.27.5_6savw6y3b7jng6f64kgkyoij64 object.assign: 4.1.2 object.entries: 1.1.5 semver: 6.3.0 dev: true - /eslint-config-airbnb-typescript/17.0.0_nyk3sczlqurdrr2ekqobbgwazy: + /eslint-config-airbnb-typescript/17.0.0_zvmt5xh6vil4vpagx2utjxrocy: resolution: {integrity: sha512-elNiuzD0kPAPTXjFWg+lE24nMdHMtuxgYoD30OyMD6yrW1AhFZPAg27VX7d3tzOErw+dgJTNWfRSDqEcXb4V0g==} peerDependencies: '@typescript-eslint/eslint-plugin': ^5.13.0 @@ -4961,14 +4972,14 @@ packages: eslint: ^7.32.0 || ^8.2.0 eslint-plugin-import: ^2.25.3 dependencies: - '@typescript-eslint/eslint-plugin': 5.49.0_tb5wi7ky2cdde6yaetigfnj6ki - '@typescript-eslint/parser': 5.49.0_6hvhxfirl4y3p6nuemvvvbadcu - eslint: 8.13.0 - eslint-config-airbnb-base: 15.0.0_lahxuspv775w45wkma5djds2ca - eslint-plugin-import: 2.27.5_dapjolpbu26g22dnqmyhntpyxy + '@typescript-eslint/eslint-plugin': 5.49.0_yp7zhi6aulozdh56jexh6njdgm + '@typescript-eslint/parser': 5.49.0_xxxxlh5gp6rpyhwj2gzuzeb7o4 + eslint: 8.32.0 + eslint-config-airbnb-base: 15.0.0_ps7hf4l2dvbuxvtusmrfhmzsba + eslint-plugin-import: 2.27.5_6savw6y3b7jng6f64kgkyoij64 dev: true - /eslint-config-airbnb/19.0.4_7ibkosttvl3eyhiqio5y5nakhe: + /eslint-config-airbnb/19.0.4_oryl4jl7vhg4a55ttxelhz4hei: resolution: {integrity: sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==} engines: {node: ^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -4978,23 +4989,23 @@ packages: eslint-plugin-react: ^7.28.0 eslint-plugin-react-hooks: ^4.3.0 dependencies: - eslint: 8.13.0 - eslint-config-airbnb-base: 15.0.0_lahxuspv775w45wkma5djds2ca - eslint-plugin-import: 2.27.5_dapjolpbu26g22dnqmyhntpyxy - eslint-plugin-jsx-a11y: 6.5.1_eslint@8.13.0 - eslint-plugin-react: 7.29.4_eslint@8.13.0 - eslint-plugin-react-hooks: 4.4.0_eslint@8.13.0 + eslint: 8.32.0 + eslint-config-airbnb-base: 15.0.0_ps7hf4l2dvbuxvtusmrfhmzsba + eslint-plugin-import: 2.27.5_6savw6y3b7jng6f64kgkyoij64 + eslint-plugin-jsx-a11y: 6.5.1_eslint@8.32.0 + eslint-plugin-react: 7.29.4_eslint@8.32.0 + eslint-plugin-react-hooks: 4.4.0_eslint@8.32.0 object.assign: 4.1.2 object.entries: 1.1.5 dev: true - /eslint-config-prettier/8.5.0_eslint@8.13.0: + /eslint-config-prettier/8.5.0_eslint@8.32.0: resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.13.0 + eslint: 8.32.0 dev: true /eslint-import-resolver-node/0.3.7: @@ -5007,7 +5018,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.4_vwkhuoeewwh3zqeuw3bceanpmm: + /eslint-module-utils/2.7.4_cnxxylyx37asr43xy64ejg3pwe: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -5028,15 +5039,15 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.49.0_6hvhxfirl4y3p6nuemvvvbadcu + '@typescript-eslint/parser': 5.49.0_xxxxlh5gp6rpyhwj2gzuzeb7o4 debug: 3.2.7 - eslint: 8.13.0 + eslint: 8.32.0 eslint-import-resolver-node: 0.3.7 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-import/2.27.5_dapjolpbu26g22dnqmyhntpyxy: + /eslint-plugin-import/2.27.5_6savw6y3b7jng6f64kgkyoij64: resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -5046,15 +5057,15 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.49.0_6hvhxfirl4y3p6nuemvvvbadcu + '@typescript-eslint/parser': 5.49.0_xxxxlh5gp6rpyhwj2gzuzeb7o4 array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.13.0 + eslint: 8.32.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4_vwkhuoeewwh3zqeuw3bceanpmm + eslint-module-utils: 2.7.4_cnxxylyx37asr43xy64ejg3pwe has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 @@ -5069,7 +5080,7 @@ packages: - supports-color dev: true - /eslint-plugin-jsx-a11y/6.5.1_eslint@8.13.0: + /eslint-plugin-jsx-a11y/6.5.1_eslint@8.32.0: resolution: {integrity: sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==} engines: {node: '>=4.0'} peerDependencies: @@ -5083,14 +5094,14 @@ packages: axobject-query: 2.2.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.13.0 + eslint: 8.32.0 has: 1.0.3 jsx-ast-utils: 3.2.1 language-tags: 1.0.5 minimatch: 3.1.2 dev: true - /eslint-plugin-prettier/4.0.0_vyq77qlfwyijisbn35utc2xrra: + /eslint-plugin-prettier/4.0.0_k25d2jwm4rzrn4xlrrqrahlrby: resolution: {integrity: sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==} engines: {node: '>=6.0.0'} peerDependencies: @@ -5101,22 +5112,22 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.13.0 - eslint-config-prettier: 8.5.0_eslint@8.13.0 + eslint: 8.32.0 + eslint-config-prettier: 8.5.0_eslint@8.32.0 prettier: 2.7.1 prettier-linter-helpers: 1.0.0 dev: true - /eslint-plugin-react-hooks/4.4.0_eslint@8.13.0: + /eslint-plugin-react-hooks/4.4.0_eslint@8.32.0: resolution: {integrity: sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.13.0 + eslint: 8.32.0 dev: true - /eslint-plugin-react/7.29.4_eslint@8.13.0: + /eslint-plugin-react/7.29.4_eslint@8.32.0: resolution: {integrity: sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==} engines: {node: '>=4'} peerDependencies: @@ -5125,7 +5136,7 @@ packages: array-includes: 3.1.4 array.prototype.flatmap: 1.2.5 doctrine: 2.1.0 - eslint: 8.13.0 + eslint: 8.32.0 estraverse: 5.3.0 jsx-ast-utils: 3.2.1 minimatch: 3.1.2 @@ -5155,13 +5166,13 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.13.0: + /eslint-utils/3.0.0_eslint@8.32.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.13.0 + eslint: 8.32.0 eslint-visitor-keys: 2.0.0 dev: true @@ -5175,13 +5186,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.13.0: - resolution: {integrity: sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==} + /eslint/8.32.0: + resolution: {integrity: sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.2.1 - '@humanwhocodes/config-array': 0.9.3 + '@eslint/eslintrc': 1.4.1 + '@humanwhocodes/config-array': 0.11.8 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -5189,20 +5202,23 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.13.0 + eslint-utils: 3.0.0_eslint@8.32.0 eslint-visitor-keys: 3.3.0 - espree: 9.3.1 + espree: 9.4.1 esquery: 1.4.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 - functional-red-black-tree: 1.0.1 + find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.12.1 + globals: 13.19.0 + grapheme-splitter: 1.0.4 ignore: 5.2.0 import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-sdsl: 4.3.0 js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 @@ -5214,17 +5230,16 @@ packages: strip-ansi: 6.0.1 strip-json-comments: 3.1.1 text-table: 0.2.0 - v8-compile-cache: 2.3.0 transitivePeerDependencies: - supports-color dev: true - /espree/9.3.1: - resolution: {integrity: sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==} + /espree/9.4.1: + resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.7.1 - acorn-jsx: 5.3.1_acorn@8.7.1 + acorn: 8.8.2 + acorn-jsx: 5.3.2_acorn@8.8.2 eslint-visitor-keys: 3.3.0 dev: true @@ -5401,6 +5416,14 @@ packages: path-exists: 4.0.0 dev: true + /find-up/5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + /flat-cache/3.0.4: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -5498,10 +5521,6 @@ packages: functions-have-names: 1.2.3 dev: true - /functional-red-black-tree/1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} - dev: true - /functions-have-names/1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true @@ -5578,8 +5597,8 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - /globals/13.12.1: - resolution: {integrity: sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==} + /globals/13.19.0: + resolution: {integrity: sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -5626,6 +5645,10 @@ packages: resolution: {integrity: sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==} dev: true + /grapheme-splitter/1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true + /h3-js/3.7.2: resolution: {integrity: sha512-LPjlHSwB9zQZrMqKloCZmmmt3yZzIK7nqPcXqwU93zT3TtYG6jP4tZBzAPouxut7lLjdFbMQ75wRBiKfpsnY7w==} engines: {node: '>=4', npm: '>=3', yarn: '>=1.3.0'} @@ -5929,6 +5952,11 @@ packages: engines: {node: '>=0.12.0'} dev: true + /is-path-inside/3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + /is-plain-obj/4.0.0: resolution: {integrity: sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==} engines: {node: '>=12'} @@ -6529,6 +6557,10 @@ packages: - utf-8-validate dev: true + /js-sdsl/4.3.0: + resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==} + dev: true + /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -6557,7 +6589,7 @@ packages: optional: true dependencies: abab: 2.0.5 - acorn: 8.7.1 + acorn: 8.8.2 acorn-globals: 6.0.0 cssom: 0.4.4 cssstyle: 2.3.0 @@ -6773,6 +6805,13 @@ packages: p-locate: 4.1.0 dev: true + /locate-path/6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + /lockfile/1.0.4: resolution: {integrity: sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==} dependencies: @@ -7405,6 +7444,13 @@ packages: p-try: 2.2.0 dev: true + /p-limit/3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + /p-locate/4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -7412,6 +7458,13 @@ packages: p-limit: 2.3.0 dev: true + /p-locate/5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + /p-try/2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -9769,7 +9822,7 @@ packages: acorn: optional: true dependencies: - acorn: 8.7.1 + acorn: 8.8.2 commander: 2.20.3 source-map: 0.7.3 source-map-support: 0.5.21 @@ -10127,10 +10180,6 @@ packages: sade: 1.8.1 dev: false - /v8-compile-cache/2.3.0: - resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} - dev: true - /v8-to-istanbul/8.1.1: resolution: {integrity: sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==} engines: {node: '>=10.12.0'} @@ -10471,3 +10520,8 @@ packages: y18n: 5.0.8 yargs-parser: 21.0.1 dev: true + + /yocto-queue/0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true From 4215d2242b866b1b23d36a3c20fef9bff63b3271 Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Wed, 25 Jan 2023 14:06:41 -0600 Subject: [PATCH 04/32] chore: Updated path to tsconfig.json --- src/main/webapp/.eslintrc.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/webapp/.eslintrc.js b/src/main/webapp/.eslintrc.js index 8446da96bc3..dcf1db2a79e 100644 --- a/src/main/webapp/.eslintrc.js +++ b/src/main/webapp/.eslintrc.js @@ -20,7 +20,7 @@ module.exports = { // "plugin:prettier/recommended", // ], parserOptions: { - project: "../src/main/webapp/tsconfig.json", + project: "src/main/webapp/tsconfig.json", ecmaFeatures: { jsx: true, }, From 9ad0d746f07bc629a0d5b5c4dc451677c160611a Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Wed, 25 Jan 2023 14:25:57 -0600 Subject: [PATCH 05/32] chore: Updated running paths --- .github/workflows/linting.yml | 11 ++++++----- build.gradle.kts | 5 +++++ src/main/webapp/.eslintrc.js | 2 +- src/main/webapp/package.json | 2 +- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 5ae929aadda..7e1392cc854 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -36,13 +36,14 @@ jobs: - name: Run eslint on changed files uses: tj-actions/eslint-changed-files@v18 with: - config_path: "src/main/webapp/.eslintrc.js" + config_path: ".eslintrc.js" extra_args: "--max-warnings=0" + path: "src/main/webapp/" file_extensions: | - src/main/webapp/resources/js/**/*.ts - src/main/webapp/resources/js/**/*.tsx - src/main/webapp/resources/js/**/*.js - src/main/webapp/resources/js/**/*.jsx + resources/js/**/*.ts + resources/js/**/*.tsx + resources/js/**/*.js + resources/js/**/*.jsx checkstyle: # Lint changed Java files runs-on: ubuntu-20.04 diff --git a/build.gradle.kts b/build.gradle.kts index 0e8305951a3..d62f7f58638 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -303,6 +303,11 @@ tasks.register("cleanWebapp") { pnpmCommand.set(listOf("clean")) } +tasks.register("lintWebapp") { + dependsOn(":pnpmInstall") + pnpmCommand.set(listOf("lint")) +} + tasks.register("buildWebapp") { inputs.files(fileTree("${project.projectDir}/src/main/webapp/resources")) inputs.file("${project.projectDir}/src/main/webapp/package.json") diff --git a/src/main/webapp/.eslintrc.js b/src/main/webapp/.eslintrc.js index dcf1db2a79e..29a8d3b68d5 100644 --- a/src/main/webapp/.eslintrc.js +++ b/src/main/webapp/.eslintrc.js @@ -20,7 +20,7 @@ module.exports = { // "plugin:prettier/recommended", // ], parserOptions: { - project: "src/main/webapp/tsconfig.json", + project: "./tsconfig.json", ecmaFeatures: { jsx: true, }, diff --git a/src/main/webapp/package.json b/src/main/webapp/package.json index 7198727e6ba..7bde92173a4 100644 --- a/src/main/webapp/package.json +++ b/src/main/webapp/package.json @@ -8,7 +8,7 @@ "clean": "run-z --then rm -rf dist/ pages/templates/i18n/", "test": "run-z --then jest resources/js/**/*.test.js", "test_watch": "run-z --then jest --watch resources/js/**/*.test.js", - "lint": "run-z --then eslint --ext resources/js/**/*.{js,jsx,ts,tsx}" + "lint": "run-z --then eslint --ext .js,.jsx,.ts,.tsx resources/js/ " }, "browserslist": [ "last 2 Chrome versions", From 9d0cd9b71612d17529dff90e6fe1d07b993a1e63 Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Wed, 25 Jan 2023 14:27:02 -0600 Subject: [PATCH 06/32] chore: Removed explicit function return type --- src/main/webapp/.eslintrc.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/webapp/.eslintrc.js b/src/main/webapp/.eslintrc.js index 29a8d3b68d5..232a6d0db12 100644 --- a/src/main/webapp/.eslintrc.js +++ b/src/main/webapp/.eslintrc.js @@ -34,7 +34,6 @@ module.exports = { }, }, rules: { - "@typescript-eslint/explicit-function-return-type": "warn", "react/prop-types": 0, "prefer-destructuring": [ "error", From 921556b9019224297d3f06aeeaa610d12df2a2ab Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Wed, 25 Jan 2023 14:30:12 -0600 Subject: [PATCH 07/32] chore: Reset paths --- .github/workflows/linting.yml | 11 +++++------ src/main/webapp/.eslintrc.js | 2 +- src/main/webapp/package.json | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 7e1392cc854..5ae929aadda 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -36,14 +36,13 @@ jobs: - name: Run eslint on changed files uses: tj-actions/eslint-changed-files@v18 with: - config_path: ".eslintrc.js" + config_path: "src/main/webapp/.eslintrc.js" extra_args: "--max-warnings=0" - path: "src/main/webapp/" file_extensions: | - resources/js/**/*.ts - resources/js/**/*.tsx - resources/js/**/*.js - resources/js/**/*.jsx + src/main/webapp/resources/js/**/*.ts + src/main/webapp/resources/js/**/*.tsx + src/main/webapp/resources/js/**/*.js + src/main/webapp/resources/js/**/*.jsx checkstyle: # Lint changed Java files runs-on: ubuntu-20.04 diff --git a/src/main/webapp/.eslintrc.js b/src/main/webapp/.eslintrc.js index 232a6d0db12..7a59122b973 100644 --- a/src/main/webapp/.eslintrc.js +++ b/src/main/webapp/.eslintrc.js @@ -20,7 +20,7 @@ module.exports = { // "plugin:prettier/recommended", // ], parserOptions: { - project: "./tsconfig.json", + project: "src/main/webapp/tsconfig.json", ecmaFeatures: { jsx: true, }, diff --git a/src/main/webapp/package.json b/src/main/webapp/package.json index 7bde92173a4..15b76ff25f1 100644 --- a/src/main/webapp/package.json +++ b/src/main/webapp/package.json @@ -8,7 +8,7 @@ "clean": "run-z --then rm -rf dist/ pages/templates/i18n/", "test": "run-z --then jest resources/js/**/*.test.js", "test_watch": "run-z --then jest --watch resources/js/**/*.test.js", - "lint": "run-z --then eslint --ext .js,.jsx,.ts,.tsx resources/js/ " + "lint": "run-z --then eslint --ext .js,.jsx,.ts,.tsx resources/js/ --parser-options project:./tsconfig.json" }, "browserslist": [ "last 2 Chrome versions", From c70de159da718386ae36a2c15c593c2a2553a605 Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Thu, 26 Jan 2023 05:25:45 -0600 Subject: [PATCH 08/32] fix: Linting does not require dependencies --- build.gradle.kts | 1 - src/main/webapp/.eslintrc.js | 9 --------- src/main/webapp/tsconfig.json | 4 ++-- 3 files changed, 2 insertions(+), 12 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index d62f7f58638..dfcb05925fb 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -304,7 +304,6 @@ tasks.register("cleanWebapp") { } tasks.register("lintWebapp") { - dependsOn(":pnpmInstall") pnpmCommand.set(listOf("lint")) } diff --git a/src/main/webapp/.eslintrc.js b/src/main/webapp/.eslintrc.js index 7a59122b973..3da79b66309 100644 --- a/src/main/webapp/.eslintrc.js +++ b/src/main/webapp/.eslintrc.js @@ -10,15 +10,6 @@ module.exports = { __webpack_public_path__: true, }, extends: ["airbnb", "airbnb-typescript", "plugin:prettier/recommended"], - // [ - // "airbnb-typescript", - // "eslint:recommended", - // "plugin:react/recommended", - // "plugin:react-hooks/recommended", - // "plugin:@typescript-eslint/eslint-recommended", - // "plugin:@typescript-eslint/recommended", - // "plugin:prettier/recommended", - // ], parserOptions: { project: "src/main/webapp/tsconfig.json", ecmaFeatures: { diff --git a/src/main/webapp/tsconfig.json b/src/main/webapp/tsconfig.json index 9a7a861dbbb..86cbf008203 100644 --- a/src/main/webapp/tsconfig.json +++ b/src/main/webapp/tsconfig.json @@ -10,8 +10,8 @@ "moduleResolution": "node", "target": "ES6", "allowJs": true, //remove when all js jsx files changed to ts tsx + "checkJs": false, "jsx": "react", "esModuleInterop": true - }, - "include": ["./resources/js/**/*.ts", "./resources/js/**/*.tsx"] + } } From b9b33aaec1823341206d5da5169565f61d8586a3 Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Thu, 26 Jan 2023 05:34:53 -0600 Subject: [PATCH 09/32] fix: Force error to by of type string --- build.gradle.kts | 2 +- src/main/webapp/.eslintrc.js | 2 +- src/main/webapp/package.json | 2 +- .../webapp/resources/js/components/DefaultErrorBoundary.tsx | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index dfcb05925fb..24bceba5629 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -304,7 +304,7 @@ tasks.register("cleanWebapp") { } tasks.register("lintWebapp") { - pnpmCommand.set(listOf("lint")) + pnpmCommand.set(listOf("lint --parser-options project:src/main/webapp/tsconfig.json")) } tasks.register("buildWebapp") { diff --git a/src/main/webapp/.eslintrc.js b/src/main/webapp/.eslintrc.js index 3da79b66309..d7d2bcefe63 100644 --- a/src/main/webapp/.eslintrc.js +++ b/src/main/webapp/.eslintrc.js @@ -11,7 +11,7 @@ module.exports = { }, extends: ["airbnb", "airbnb-typescript", "plugin:prettier/recommended"], parserOptions: { - project: "src/main/webapp/tsconfig.json", + project: "./tsconfig.json", ecmaFeatures: { jsx: true, }, diff --git a/src/main/webapp/package.json b/src/main/webapp/package.json index 15b76ff25f1..51f6f634b55 100644 --- a/src/main/webapp/package.json +++ b/src/main/webapp/package.json @@ -8,7 +8,7 @@ "clean": "run-z --then rm -rf dist/ pages/templates/i18n/", "test": "run-z --then jest resources/js/**/*.test.js", "test_watch": "run-z --then jest --watch resources/js/**/*.test.js", - "lint": "run-z --then eslint --ext .js,.jsx,.ts,.tsx resources/js/ --parser-options project:./tsconfig.json" + "lint": "run-z --then eslint --ext .js,.jsx,.ts,.tsx resources/js/" }, "browserslist": [ "last 2 Chrome versions", diff --git a/src/main/webapp/resources/js/components/DefaultErrorBoundary.tsx b/src/main/webapp/resources/js/components/DefaultErrorBoundary.tsx index f1a5e3b0a7b..68f0988cec3 100644 --- a/src/main/webapp/resources/js/components/DefaultErrorBoundary.tsx +++ b/src/main/webapp/resources/js/components/DefaultErrorBoundary.tsx @@ -7,7 +7,7 @@ import { useRouteError } from "react-router-dom"; * @constructor */ function DefaultErrorBoundary(): JSX.Element { - const error = useRouteError(); + const error = useRouteError() as string; return ( From 5d66bb9408522f89a41cadb790d242ddbc029992 Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Thu, 26 Jan 2023 05:43:14 -0600 Subject: [PATCH 10/32] fix: Should not have removed the include path --- src/main/webapp/tsconfig.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/webapp/tsconfig.json b/src/main/webapp/tsconfig.json index 86cbf008203..16cac626616 100644 --- a/src/main/webapp/tsconfig.json +++ b/src/main/webapp/tsconfig.json @@ -13,5 +13,6 @@ "checkJs": false, "jsx": "react", "esModuleInterop": true - } + }, + "include": ["./resources/js/**/*.ts", "./resources/js/**/*.tsx"] } From d6de9b85fe8be579ccebe12cbac0ae7b525cb3ae Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Thu, 26 Jan 2023 09:04:12 -0600 Subject: [PATCH 11/32] fix: Still trying to et path to tsconfig --- CHANGELOG.md | 1 + build.gradle.kts | 2 +- src/main/webapp/package.json | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dba9cc18638..fa95292645c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ * [UI]: Refreshed global search page to use Ant Design. See [PR 1409](https://github.com/phac-nml/irida/pull/1409) * [UI/Developer]: Removed old notification system hack and updated to use only Ant Design notifications. See [PR 1447](https://github.com/phac-nml/irida/pull/1447) * [UI]: Fixed bug where the `User` column was named `User Group` on the admin User Groups page. [See PR 1450](https://github.com/phac-nml/irida/pull/1450) +* [UI/Developer]: Updated Eslint config to use `airbnb` ## [22.09.7] - 2022/01/24 * [UI]: Fixed bugs on NCBI Export page preventing the NCBI `submission.xml` file from being properly written. See [PR 1451](https://github.com/phac-nml/irida/pull/1451) diff --git a/build.gradle.kts b/build.gradle.kts index 24bceba5629..1c9e681b2e0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -304,7 +304,7 @@ tasks.register("cleanWebapp") { } tasks.register("lintWebapp") { - pnpmCommand.set(listOf("lint --parser-options project:src/main/webapp/tsconfig.json")) + pnpmCommand.set(listOf("lintServer")) } tasks.register("buildWebapp") { diff --git a/src/main/webapp/package.json b/src/main/webapp/package.json index 51f6f634b55..7d93e6c8464 100644 --- a/src/main/webapp/package.json +++ b/src/main/webapp/package.json @@ -8,7 +8,8 @@ "clean": "run-z --then rm -rf dist/ pages/templates/i18n/", "test": "run-z --then jest resources/js/**/*.test.js", "test_watch": "run-z --then jest --watch resources/js/**/*.test.js", - "lint": "run-z --then eslint --ext .js,.jsx,.ts,.tsx resources/js/" + "lint": "run-z --then eslint --ext .js,.jsx,.ts,.tsx resources/js/", + "lintServer": "run-z --then eslint --ext .js,.jsx,.ts,.tsx resources/js/ --parser-options project:src/main/webapp/tsconfig.json", }, "browserslist": [ "last 2 Chrome versions", From e22dc35ed46059a83c0be12ea61c749902f6acbb Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Thu, 26 Jan 2023 09:05:32 -0600 Subject: [PATCH 12/32] fix: Removed dangling comma --- src/main/webapp/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/webapp/package.json b/src/main/webapp/package.json index 7d93e6c8464..7cf548ae9cc 100644 --- a/src/main/webapp/package.json +++ b/src/main/webapp/package.json @@ -9,7 +9,7 @@ "test": "run-z --then jest resources/js/**/*.test.js", "test_watch": "run-z --then jest --watch resources/js/**/*.test.js", "lint": "run-z --then eslint --ext .js,.jsx,.ts,.tsx resources/js/", - "lintServer": "run-z --then eslint --ext .js,.jsx,.ts,.tsx resources/js/ --parser-options project:src/main/webapp/tsconfig.json", + "lintServer": "run-z --then eslint --ext .js,.jsx,.ts,.tsx resources/js/ --parser-options project:src/main/webapp/tsconfig.json" }, "browserslist": [ "last 2 Chrome versions", From 9482a461204ac8764c3799987de81135856809c5 Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Thu, 26 Jan 2023 09:06:59 -0600 Subject: [PATCH 13/32] chore: Updated CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fa95292645c..7ffabd85fac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ * [UI]: Refreshed global search page to use Ant Design. See [PR 1409](https://github.com/phac-nml/irida/pull/1409) * [UI/Developer]: Removed old notification system hack and updated to use only Ant Design notifications. See [PR 1447](https://github.com/phac-nml/irida/pull/1447) * [UI]: Fixed bug where the `User` column was named `User Group` on the admin User Groups page. [See PR 1450](https://github.com/phac-nml/irida/pull/1450) -* [UI/Developer]: Updated Eslint config to use `airbnb` +* [UI/Developer]: Updated Eslint config to use `airbnb`. [See PR 1454](https://github.com/phac-nml/irida/pull/1454) ## [22.09.7] - 2022/01/24 * [UI]: Fixed bugs on NCBI Export page preventing the NCBI `submission.xml` file from being properly written. See [PR 1451](https://github.com/phac-nml/irida/pull/1451) From 336a7b8f4a426f7fdacfda06d14bbc757f041871 Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Thu, 26 Jan 2023 09:16:34 -0600 Subject: [PATCH 14/32] chore: Still sorting out the correct path for tslint --- src/main/webapp/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/webapp/package.json b/src/main/webapp/package.json index 7cf548ae9cc..b28e969b0be 100644 --- a/src/main/webapp/package.json +++ b/src/main/webapp/package.json @@ -9,7 +9,7 @@ "test": "run-z --then jest resources/js/**/*.test.js", "test_watch": "run-z --then jest --watch resources/js/**/*.test.js", "lint": "run-z --then eslint --ext .js,.jsx,.ts,.tsx resources/js/", - "lintServer": "run-z --then eslint --ext .js,.jsx,.ts,.tsx resources/js/ --parser-options project:src/main/webapp/tsconfig.json" + "lintServer": "run-z --then eslint --parser-options project:src/main/webapp/tsconfig.json --ext .js,.jsx,.ts,.tsx resources/js/" }, "browserslist": [ "last 2 Chrome versions", From a659322b4dc98007f21f3a99edfaa6e0a990ed65 Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Thu, 26 Jan 2023 09:38:01 -0600 Subject: [PATCH 15/32] chore: Still sorting out the correct path for tslint --- .github/workflows/linting.yml | 2 +- src/main/webapp/package.json | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 5ae929aadda..679f537a948 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -37,7 +37,7 @@ jobs: uses: tj-actions/eslint-changed-files@v18 with: config_path: "src/main/webapp/.eslintrc.js" - extra_args: "--max-warnings=0" + extra_args: "--max-warnings=0 --parser-options project:src/main/webapp/tsconfig.json" file_extensions: | src/main/webapp/resources/js/**/*.ts src/main/webapp/resources/js/**/*.tsx diff --git a/src/main/webapp/package.json b/src/main/webapp/package.json index b28e969b0be..831916b01eb 100644 --- a/src/main/webapp/package.json +++ b/src/main/webapp/package.json @@ -9,7 +9,6 @@ "test": "run-z --then jest resources/js/**/*.test.js", "test_watch": "run-z --then jest --watch resources/js/**/*.test.js", "lint": "run-z --then eslint --ext .js,.jsx,.ts,.tsx resources/js/", - "lintServer": "run-z --then eslint --parser-options project:src/main/webapp/tsconfig.json --ext .js,.jsx,.ts,.tsx resources/js/" }, "browserslist": [ "last 2 Chrome versions", From 055afeef380fd7bcd5f6e20b83338c68fb93436b Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Thu, 26 Jan 2023 09:41:13 -0600 Subject: [PATCH 16/32] fix: Removed dangling comma --- src/main/webapp/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/webapp/package.json b/src/main/webapp/package.json index 831916b01eb..51f6f634b55 100644 --- a/src/main/webapp/package.json +++ b/src/main/webapp/package.json @@ -8,7 +8,7 @@ "clean": "run-z --then rm -rf dist/ pages/templates/i18n/", "test": "run-z --then jest resources/js/**/*.test.js", "test_watch": "run-z --then jest --watch resources/js/**/*.test.js", - "lint": "run-z --then eslint --ext .js,.jsx,.ts,.tsx resources/js/", + "lint": "run-z --then eslint --ext .js,.jsx,.ts,.tsx resources/js/" }, "browserslist": [ "last 2 Chrome versions", From 88316518e58be93f2d3cd2dc535fe4b6a5f468fc Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Thu, 26 Jan 2023 09:54:51 -0600 Subject: [PATCH 17/32] fix: Fixed command to run lint --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 1c9e681b2e0..dfcb05925fb 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -304,7 +304,7 @@ tasks.register("cleanWebapp") { } tasks.register("lintWebapp") { - pnpmCommand.set(listOf("lintServer")) + pnpmCommand.set(listOf("lint")) } tasks.register("buildWebapp") { From 0748ddb7a285f1dd7c2b40d2b5c5e5dae78ed188 Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Thu, 26 Jan 2023 13:56:26 -0600 Subject: [PATCH 18/32] chore: Updated eslint dependencies --- src/main/webapp/package.json | 10 +- src/main/webapp/pnpm-lock.yaml | 450 ++++++++++++++++++--------------- 2 files changed, 251 insertions(+), 209 deletions(-) diff --git a/src/main/webapp/package.json b/src/main/webapp/package.json index 51f6f634b55..90f82e0a2af 100644 --- a/src/main/webapp/package.json +++ b/src/main/webapp/package.json @@ -101,12 +101,12 @@ "eslint": "^8.32.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^17.0.0", - "eslint-config-prettier": "^8.5.0", + "eslint-config-prettier": "^8.6.0", "eslint-plugin-import": "^2.27.5", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-prettier": "^4.0.0", - "eslint-plugin-react": "^7.29.4", - "eslint-plugin-react-hooks": "^4.4.0", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-react": "^7.32.1", + "eslint-plugin-react-hooks": "^4.6.0", "expose-loader": "^3.1.0", "jest": "^27.5.1", "less": "^4.1.2", diff --git a/src/main/webapp/pnpm-lock.yaml b/src/main/webapp/pnpm-lock.yaml index 8723007601f..cf40936bece 100644 --- a/src/main/webapp/pnpm-lock.yaml +++ b/src/main/webapp/pnpm-lock.yaml @@ -61,12 +61,12 @@ specifiers: eslint: ^8.32.0 eslint-config-airbnb: ^19.0.4 eslint-config-airbnb-typescript: ^17.0.0 - eslint-config-prettier: ^8.5.0 + eslint-config-prettier: ^8.6.0 eslint-plugin-import: ^2.27.5 - eslint-plugin-jsx-a11y: ^6.5.1 - eslint-plugin-prettier: ^4.0.0 - eslint-plugin-react: ^7.29.4 - eslint-plugin-react-hooks: ^4.4.0 + eslint-plugin-jsx-a11y: ^6.7.1 + eslint-plugin-prettier: ^4.2.1 + eslint-plugin-react: ^7.32.1 + eslint-plugin-react-hooks: ^4.6.0 expose-loader: ^3.1.0 flexlayout-react: ^0.7.4 gl-matrix: ^3.4.3 @@ -200,14 +200,14 @@ devDependencies: css-loader: 6.7.1_webpack@5.72.0 css-minimizer-webpack-plugin: 3.4.1_webpack@5.72.0 eslint: 8.32.0 - eslint-config-airbnb: 19.0.4_oryl4jl7vhg4a55ttxelhz4hei + eslint-config-airbnb: 19.0.4_td5yecidacttadzxcsbd5t7tli eslint-config-airbnb-typescript: 17.0.0_zvmt5xh6vil4vpagx2utjxrocy - eslint-config-prettier: 8.5.0_eslint@8.32.0 + eslint-config-prettier: 8.6.0_eslint@8.32.0 eslint-plugin-import: 2.27.5_6savw6y3b7jng6f64kgkyoij64 - eslint-plugin-jsx-a11y: 6.5.1_eslint@8.32.0 - eslint-plugin-prettier: 4.0.0_k25d2jwm4rzrn4xlrrqrahlrby - eslint-plugin-react: 7.29.4_eslint@8.32.0 - eslint-plugin-react-hooks: 4.4.0_eslint@8.32.0 + eslint-plugin-jsx-a11y: 6.7.1_eslint@8.32.0 + eslint-plugin-prettier: 4.2.1_bwiznj6mum4nx2xtr6b6ecukoq + eslint-plugin-react: 7.32.1_eslint@8.32.0 + eslint-plugin-react-hooks: 4.6.0_eslint@8.32.0 expose-loader: 3.1.0_webpack@5.72.0 jest: 27.5.1 less: 4.1.2 @@ -290,7 +290,7 @@ packages: peerDependencies: react: '>=16.0.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 json2mq: 0.2.0 lodash: 4.17.21 @@ -1701,19 +1701,18 @@ packages: - supports-color dev: true - /@babel/runtime-corejs3/7.13.10: - resolution: {integrity: sha512-x/XYVQ1h684pp1mJwOV4CyvqZXqbc8CMsMGUnAbuc82ZCdv1U63w5RSUzgDSXQHG5Rps/kiksH6g2D5BuaKyXg==} - dependencies: - core-js-pure: 3.9.1 - regenerator-runtime: 0.13.10 - dev: true - /@babel/runtime/7.20.1: resolution: {integrity: sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.13.10 + /@babel/runtime/7.20.13: + resolution: {integrity: sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + /@babel/template/7.18.10: resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==} engines: {node: '>=6.9.0'} @@ -2369,7 +2368,7 @@ packages: /@loaders.gl/draco/3.2.4: resolution: {integrity: sha512-cagaHY5I1TSBPOUyQS0ZWgLtMqd+Dnx9wUzduAxLXEVBNHIS2kuG/FXJa/vZFHI79++ZG48BnbmDo05ZVUd4GA==} dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 '@loaders.gl/loader-utils': 3.2.4 '@loaders.gl/schema': 3.2.4 '@loaders.gl/worker-utils': 3.2.4 @@ -2404,7 +2403,7 @@ packages: /@loaders.gl/loader-utils/3.2.4: resolution: {integrity: sha512-FwWgQztK5l0Gn7UaIq1LzSKo4751XY1SlQGxibczxRbkwfpbgyCn9yAyJy59HxcqZboYzXi+mrVr7yxLTYAIQg==} dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 '@loaders.gl/worker-utils': 3.2.4 '@probe.gl/stats': 3.5.0 dev: false @@ -2437,7 +2436,7 @@ packages: /@loaders.gl/terrain/3.2.4: resolution: {integrity: sha512-+41KWTn/wm62U+7Nx73tHn1PU8XHUIFK700Diq+VJaien+lbdhIRcqwgQV4NXRjxI/7p1yKn9+YNMGtN08diyA==} dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 '@loaders.gl/loader-utils': 3.2.4 '@loaders.gl/schema': 3.2.4 '@mapbox/martini': 0.2.0 @@ -2472,7 +2471,7 @@ packages: /@loaders.gl/worker-utils/3.2.4: resolution: {integrity: sha512-gGy8+LiyoxfahCgldYDCgXAUXsC3eBkVGqLrqU759+1y/sw3S+vJzZ2Vwpt8lB7+0LEaJ7gLNnGD+x2LekvO+A==} dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 dev: false /@luma.gl/constants/8.5.14: @@ -2482,7 +2481,7 @@ packages: /@luma.gl/core/8.5.14: resolution: {integrity: sha512-YgXxWzBNnoIuo6BTsJdK9tfFBWSzmhqeCGsbGMOVimSRXNMDBXATDL5c/J8pkVSbphjhk5aSOmhUC7C5WzKKYQ==} dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 '@luma.gl/constants': 8.5.14 '@luma.gl/engine': 8.5.14 '@luma.gl/gltools': 8.5.14 @@ -2573,7 +2572,7 @@ packages: /@math.gl/core/3.6.0: resolution: {integrity: sha512-ZDgNC8iuP2qnG84kjiNKszugKvNHdp5iiiTQUwRPNxOY3qQ7Tw0WfoppCdUfrUdGaa7HEOXbnbJoy9Qnf/M1uQ==} dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 '@math.gl/types': 3.6.0 gl-matrix: 3.4.3 dev: false @@ -2581,7 +2580,7 @@ packages: /@math.gl/culling/3.6.0: resolution: {integrity: sha512-IBDQV3k0D54q3vHdAyJkdiTsZJIaWiPczHF1hfykeM5Lj3jtPmpyyhZMsea8yQeeJeacZ7//ZuMMUeqrEuhdxA==} dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 '@math.gl/core': 3.6.0 gl-matrix: 3.4.3 dev: false @@ -2589,7 +2588,7 @@ packages: /@math.gl/geospatial/3.6.0: resolution: {integrity: sha512-YSTBOuRksW9lO0BrfFbdfwBbu5SXalfTVni28LLIYsD3u+DYhYnQ/27PYpyfsyTJ364un4zmCo6DLCyjFUpOzA==} dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 '@math.gl/core': 3.6.0 gl-matrix: 3.4.3 dev: false @@ -2607,7 +2606,7 @@ packages: /@math.gl/web-mercator/3.6.0: resolution: {integrity: sha512-C9X1NUd6pA3G2g8CFDhi2a1UzsjFNljHl6a1cZ0qQkGMCpjRctHYpjQA1fJ/A+r7vgAxXvMf3EcY5odDOHeS6A==} dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 gl-matrix: 3.4.3 dev: false @@ -2643,20 +2642,20 @@ packages: /@probe.gl/env/3.5.0: resolution: {integrity: sha512-YdlpZZshhyYxvWDBmZ5RIW2pTR14Pw4p9czMlt/v7F6HbFzWfAdmH7q6xVwFRYxUpQLwhWensWyv4aFysiWl4g==} dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 dev: false /@probe.gl/log/3.5.0: resolution: {integrity: sha512-nW/qz2X1xY08WU/TsmJP6/6IPNcaY5fS/vLjpC4ahJuE2Mezga4hGM/R2X5JWE/nkPc+BsC5GnAnD13rwAxS7g==} dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 '@probe.gl/env': 3.5.0 dev: false /@probe.gl/stats/3.5.0: resolution: {integrity: sha512-IH2M+F3c8HR1DTroBARePUFG7wIewumtKA0UFqx51Z7S4hKrD60wFbpMmg0AcF4FvHAXMBoC+kYi1UKW9XbAOw==} dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 dev: false /@proc7ts/context-values/7.0.1: @@ -2715,7 +2714,7 @@ packages: /@redux-saga/core/1.1.3: resolution: {integrity: sha512-8tInBftak8TPzE6X13ABmEtRJGjtK17w7VUs7qV17S8hCO5S3+aUTWZ/DBsBJPdE8Z5jOPwYALyvofgq1Ws+kg==} dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 '@redux-saga/deferred': 1.1.2 '@redux-saga/delay-p': 1.1.2 '@redux-saga/is': 1.1.2 @@ -3595,12 +3594,10 @@ packages: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true - /aria-query/4.2.2: - resolution: {integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==} - engines: {node: '>=6.0'} + /aria-query/5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} dependencies: - '@babel/runtime': 7.20.1 - '@babel/runtime-corejs3': 7.13.10 + deep-equal: 2.2.0 dev: true /array-back/3.1.0: @@ -3613,17 +3610,6 @@ packages: engines: {node: '>=8'} dev: false - /array-includes/3.1.4: - resolution: {integrity: sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.21.1 - get-intrinsic: 1.2.0 - is-string: 1.0.7 - dev: true - /array-includes/3.1.6: resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} engines: {node: '>= 0.4'} @@ -3654,23 +3640,24 @@ packages: es-shim-unscopables: 1.0.0 dev: true - /array.prototype.flatmap/1.2.5: - resolution: {integrity: sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==} + /array.prototype.flatmap/1.3.1: + resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.4 es-abstract: 1.21.1 + es-shim-unscopables: 1.0.0 dev: true - /array.prototype.flatmap/1.3.1: - resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} - engines: {node: '>= 0.4'} + /array.prototype.tosorted/1.1.1: + resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} dependencies: call-bind: 1.0.2 define-properties: 1.1.4 es-abstract: 1.21.1 es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.0 dev: true /ast-types-flow/0.0.7: @@ -3706,8 +3693,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /axe-core/4.4.1: - resolution: {integrity: sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==} + /axe-core/4.6.3: + resolution: {integrity: sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==} engines: {node: '>=4'} dev: true @@ -3719,8 +3706,10 @@ packages: - debug dev: false - /axobject-query/2.2.0: - resolution: {integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==} + /axobject-query/3.1.1: + resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} + dependencies: + deep-equal: 2.2.0 dev: true /babel-jest/27.5.1_@babel+core@7.19.6: @@ -4200,12 +4189,6 @@ packages: browserslist: 4.21.4 dev: true - /core-js-pure/3.9.1: - resolution: {integrity: sha512-laz3Zx0avrw9a4QEIdmIblnVuJz8W51leY9iLThatCsFawWxC3sE4guASC78JbCin+DkwMpCdp1AVAuzL/GN7A==} - deprecated: core-js-pure@<3.23.3 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. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. - requiresBuild: true - dev: true - /cosmiconfig/7.0.0: resolution: {integrity: sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==} engines: {node: '>=10'} @@ -4620,6 +4603,28 @@ packages: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} dev: true + /deep-equal/2.2.0: + resolution: {integrity: sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==} + dependencies: + call-bind: 1.0.2 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.0 + is-arguments: 1.1.1 + is-array-buffer: 3.0.1 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + isarray: 2.0.5 + object-is: 1.1.5 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 + side-channel: 1.0.4 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.9 + dev: true + /deep-extend/0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} @@ -4634,13 +4639,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /define-properties/1.1.3: - resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} - engines: {node: '>= 0.4'} - dependencies: - object-keys: 1.1.1 - dev: true - /define-properties/1.1.4: resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} engines: {node: '>= 0.4'} @@ -4824,32 +4822,6 @@ packages: is-arrayish: 0.2.1 dev: true - /es-abstract/1.19.1: - resolution: {integrity: sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - es-to-primitive: 1.2.1 - function-bind: 1.1.1 - get-intrinsic: 1.2.0 - get-symbol-description: 1.0.0 - has: 1.0.3 - has-symbols: 1.0.3 - internal-slot: 1.0.4 - is-callable: 1.2.7 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-weakref: 1.0.2 - object-inspect: 1.12.3 - object-keys: 1.1.1 - object.assign: 4.1.4 - string.prototype.trimend: 1.0.6 - string.prototype.trimstart: 1.0.6 - unbox-primitive: 1.0.2 - dev: true - /es-abstract/1.21.1: resolution: {integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==} engines: {node: '>= 0.4'} @@ -4889,6 +4861,20 @@ packages: which-typed-array: 1.1.9 dev: true + /es-get-iterator/1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.2 + is-set: 2.0.2 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + dev: true + /es-module-lexer/0.9.3: resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} dev: true @@ -4959,8 +4945,8 @@ packages: confusing-browser-globals: 1.0.11 eslint: 8.32.0 eslint-plugin-import: 2.27.5_6savw6y3b7jng6f64kgkyoij64 - object.assign: 4.1.2 - object.entries: 1.1.5 + object.assign: 4.1.4 + object.entries: 1.1.6 semver: 6.3.0 dev: true @@ -4979,7 +4965,7 @@ packages: eslint-plugin-import: 2.27.5_6savw6y3b7jng6f64kgkyoij64 dev: true - /eslint-config-airbnb/19.0.4_oryl4jl7vhg4a55ttxelhz4hei: + /eslint-config-airbnb/19.0.4_td5yecidacttadzxcsbd5t7tli: resolution: {integrity: sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==} engines: {node: ^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -4992,15 +4978,15 @@ packages: eslint: 8.32.0 eslint-config-airbnb-base: 15.0.0_ps7hf4l2dvbuxvtusmrfhmzsba eslint-plugin-import: 2.27.5_6savw6y3b7jng6f64kgkyoij64 - eslint-plugin-jsx-a11y: 6.5.1_eslint@8.32.0 - eslint-plugin-react: 7.29.4_eslint@8.32.0 - eslint-plugin-react-hooks: 4.4.0_eslint@8.32.0 + eslint-plugin-jsx-a11y: 6.7.1_eslint@8.32.0 + eslint-plugin-react: 7.32.1_eslint@8.32.0 + eslint-plugin-react-hooks: 4.6.0_eslint@8.32.0 object.assign: 4.1.2 object.entries: 1.1.5 dev: true - /eslint-config-prettier/8.5.0_eslint@8.32.0: - resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} + /eslint-config-prettier/8.6.0_eslint@8.32.0: + resolution: {integrity: sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==} hasBin: true peerDependencies: eslint: '>=7.0.0' @@ -5080,30 +5066,34 @@ packages: - supports-color dev: true - /eslint-plugin-jsx-a11y/6.5.1_eslint@8.32.0: - resolution: {integrity: sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==} + /eslint-plugin-jsx-a11y/6.7.1_eslint@8.32.0: + resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - '@babel/runtime': 7.20.1 - aria-query: 4.2.2 - array-includes: 3.1.4 + '@babel/runtime': 7.20.13 + aria-query: 5.1.3 + array-includes: 3.1.6 + array.prototype.flatmap: 1.3.1 ast-types-flow: 0.0.7 - axe-core: 4.4.1 - axobject-query: 2.2.0 + axe-core: 4.6.3 + axobject-query: 3.1.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 eslint: 8.32.0 has: 1.0.3 - jsx-ast-utils: 3.2.1 + jsx-ast-utils: 3.3.3 language-tags: 1.0.5 minimatch: 3.1.2 + object.entries: 1.1.6 + object.fromentries: 2.0.6 + semver: 6.3.0 dev: true - /eslint-plugin-prettier/4.0.0_k25d2jwm4rzrn4xlrrqrahlrby: - resolution: {integrity: sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==} - engines: {node: '>=6.0.0'} + /eslint-plugin-prettier/4.2.1_bwiznj6mum4nx2xtr6b6ecukoq: + resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} + engines: {node: '>=12.0.0'} peerDependencies: eslint: '>=7.28.0' eslint-config-prettier: '*' @@ -5113,13 +5103,13 @@ packages: optional: true dependencies: eslint: 8.32.0 - eslint-config-prettier: 8.5.0_eslint@8.32.0 + eslint-config-prettier: 8.6.0_eslint@8.32.0 prettier: 2.7.1 prettier-linter-helpers: 1.0.0 dev: true - /eslint-plugin-react-hooks/4.4.0_eslint@8.32.0: - resolution: {integrity: sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ==} + /eslint-plugin-react-hooks/4.6.0_eslint@8.32.0: + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 @@ -5127,27 +5117,28 @@ packages: eslint: 8.32.0 dev: true - /eslint-plugin-react/7.29.4_eslint@8.32.0: - resolution: {integrity: sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==} + /eslint-plugin-react/7.32.1_eslint@8.32.0: + resolution: {integrity: sha512-vOjdgyd0ZHBXNsmvU+785xY8Bfe57EFbTYYk8XrROzWpr9QBvpjITvAXt9xqcE6+8cjR/g1+mfumPToxsl1www==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - array-includes: 3.1.4 - array.prototype.flatmap: 1.2.5 + array-includes: 3.1.6 + array.prototype.flatmap: 1.3.1 + array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 eslint: 8.32.0 estraverse: 5.3.0 jsx-ast-utils: 3.2.1 minimatch: 3.1.2 - object.entries: 1.1.5 - object.fromentries: 2.0.5 - object.hasown: 1.1.0 - object.values: 1.1.5 + object.entries: 1.1.6 + object.fromentries: 2.0.6 + object.hasown: 1.1.2 + object.values: 1.1.6 prop-types: 15.8.1 resolve: 1.22.0 semver: 6.3.0 - string.prototype.matchall: 4.0.6 + string.prototype.matchall: 4.0.8 dev: true /eslint-scope/5.1.1: @@ -5683,11 +5674,6 @@ packages: engines: {node: '>= 0.4'} dev: true - /has-symbols/1.0.2: - resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==} - engines: {node: '>= 0.4'} - dev: true - /has-symbols/1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} @@ -5839,15 +5825,6 @@ packages: resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} dev: false - /internal-slot/1.0.3: - resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.0 - has: 1.0.3 - side-channel: 1.0.4 - dev: true - /internal-slot/1.0.4: resolution: {integrity: sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==} engines: {node: '>= 0.4'} @@ -5866,6 +5843,14 @@ packages: engines: {node: '>= 0.10'} dev: true + /is-arguments/1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + /is-array-buffer/3.0.1: resolution: {integrity: sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==} dependencies: @@ -5910,6 +5895,13 @@ packages: engines: {node: '>= 0.4'} dev: true + /is-date-object/1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + /is-extglob/2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -5937,6 +5929,10 @@ packages: is-extglob: 2.1.1 dev: true + /is-map/2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true + /is-negative-zero/2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} @@ -5981,6 +5977,10 @@ packages: has-tostringtag: 1.0.0 dev: true + /is-set/2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: true + /is-shared-array-buffer/1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: @@ -6026,16 +6026,31 @@ packages: engines: {node: '>=12'} dev: true + /is-weakmap/2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: true + /is-weakref/1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.2 dev: true + /is-weakset/2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + dev: true + /is-what/3.14.1: resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} dev: true + /isarray/2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + /isexe/2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true @@ -6685,7 +6700,15 @@ packages: engines: {node: '>=4.0'} dependencies: array-includes: 3.1.6 - object.assign: 4.1.2 + object.assign: 4.1.4 + dev: true + + /jsx-ast-utils/3.3.3: + resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.6 + object.assign: 4.1.4 dev: true /kind-of/6.0.3: @@ -7332,6 +7355,14 @@ packages: /object-inspect/1.12.3: resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + /object-is/1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + dev: true + /object-keys/1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} @@ -7342,8 +7373,8 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - has-symbols: 1.0.2 + define-properties: 1.1.4 + has-symbols: 1.0.3 object-keys: 1.1.1 dev: true @@ -7362,12 +7393,12 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.1 + define-properties: 1.1.4 + es-abstract: 1.21.1 dev: true - /object.fromentries/2.0.5: - resolution: {integrity: sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==} + /object.entries/1.1.6: + resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -7375,18 +7406,18 @@ packages: es-abstract: 1.21.1 dev: true - /object.hasown/1.1.0: - resolution: {integrity: sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==} + /object.fromentries/2.0.6: + resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} + engines: {node: '>= 0.4'} dependencies: + call-bind: 1.0.2 define-properties: 1.1.4 es-abstract: 1.21.1 dev: true - /object.values/1.1.5: - resolution: {integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==} - engines: {node: '>= 0.4'} + /object.hasown/1.1.2: + resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} dependencies: - call-bind: 1.0.2 define-properties: 1.1.4 es-abstract: 1.21.1 dev: true @@ -8295,7 +8326,7 @@ packages: /probe.gl/3.5.0: resolution: {integrity: sha512-KWj8u0PNytr/rVwcQFcN7O8SK7n/ITOsUZ91l4fSX95oHhKvVCI7eadrzFUzFRlXkFfBWpMWZXFHITsHHHUctw==} dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 '@probe.gl/env': 3.5.0 '@probe.gl/log': 3.5.0 '@probe.gl/stats': 3.5.0 @@ -8381,7 +8412,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 dom-align: 1.12.0 rc-util: 5.20.1_sfoxds7t5ydpegc3knd667wn6m @@ -8396,7 +8427,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 array-tree-filter: 2.1.0 classnames: 2.3.1 rc-select: 14.0.3_sfoxds7t5ydpegc3knd667wn6m @@ -8412,7 +8443,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 react: 17.0.2 react-dom: 17.0.2_react@17.0.2 @@ -8424,7 +8455,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-motion: 2.4.5_sfoxds7t5ydpegc3knd667wn6m rc-util: 5.20.1_sfoxds7t5ydpegc3knd667wn6m @@ -8439,7 +8470,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-motion: 2.4.5_sfoxds7t5ydpegc3knd667wn6m rc-util: 5.20.1_sfoxds7t5ydpegc3knd667wn6m @@ -8453,7 +8484,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-util: 5.20.1_sfoxds7t5ydpegc3knd667wn6m react: 17.0.2 @@ -8466,7 +8497,7 @@ packages: react: '*' react-dom: '*' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-trigger: 5.2.10_sfoxds7t5ydpegc3knd667wn6m react: 17.0.2 @@ -8480,7 +8511,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 async-validator: 4.0.7 rc-util: 5.20.1_sfoxds7t5ydpegc3knd667wn6m react: 17.0.2 @@ -8493,7 +8524,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-dialog: 8.6.0_sfoxds7t5ydpegc3knd667wn6m rc-util: 5.20.1_sfoxds7t5ydpegc3knd667wn6m @@ -8507,7 +8538,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-util: 5.20.1_sfoxds7t5ydpegc3knd667wn6m react: 17.0.2 @@ -8520,7 +8551,7 @@ packages: react: '>=16.0.0' react-dom: '>=16.0.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-util: 5.20.1_sfoxds7t5ydpegc3knd667wn6m react: 17.0.2 @@ -8533,7 +8564,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-menu: 9.3.2_sfoxds7t5ydpegc3knd667wn6m rc-textarea: 0.3.4_sfoxds7t5ydpegc3knd667wn6m @@ -8549,7 +8580,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-motion: 2.4.5_sfoxds7t5ydpegc3knd667wn6m rc-overflow: 1.2.2_sfoxds7t5ydpegc3knd667wn6m @@ -8566,7 +8597,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-util: 5.20.1_sfoxds7t5ydpegc3knd667wn6m react: 17.0.2 @@ -8580,7 +8611,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-motion: 2.4.5_sfoxds7t5ydpegc3knd667wn6m rc-util: 5.20.1_sfoxds7t5ydpegc3knd667wn6m @@ -8594,7 +8625,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-resize-observer: 1.2.0_sfoxds7t5ydpegc3knd667wn6m rc-util: 5.20.1_sfoxds7t5ydpegc3knd667wn6m @@ -8608,7 +8639,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 react: 17.0.2 react-dom: 17.0.2_react@17.0.2 @@ -8621,7 +8652,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 date-fns: 2.28.0 dayjs: 1.11.1 @@ -8639,7 +8670,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-util: 5.20.1_sfoxds7t5ydpegc3knd667wn6m react: 17.0.2 @@ -8653,7 +8684,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-util: 5.20.1_sfoxds7t5ydpegc3knd667wn6m react: 17.0.2 @@ -8666,7 +8697,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-util: 5.20.1_sfoxds7t5ydpegc3knd667wn6m react: 17.0.2 @@ -8681,7 +8712,7 @@ packages: react: '*' react-dom: '*' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-motion: 2.4.5_sfoxds7t5ydpegc3knd667wn6m rc-overflow: 1.2.2_sfoxds7t5ydpegc3knd667wn6m @@ -8699,7 +8730,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-tooltip: 5.1.1_sfoxds7t5ydpegc3knd667wn6m rc-util: 5.20.1_sfoxds7t5ydpegc3knd667wn6m @@ -8715,7 +8746,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-util: 5.20.1_sfoxds7t5ydpegc3knd667wn6m react: 17.0.2 @@ -8728,7 +8759,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-util: 5.20.1_sfoxds7t5ydpegc3knd667wn6m react: 17.0.2 @@ -8742,7 +8773,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-resize-observer: 1.2.0_sfoxds7t5ydpegc3knd667wn6m rc-util: 5.20.1_sfoxds7t5ydpegc3knd667wn6m @@ -8758,7 +8789,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-dropdown: 3.3.2_sfoxds7t5ydpegc3knd667wn6m rc-menu: 9.3.2_sfoxds7t5ydpegc3knd667wn6m @@ -8774,7 +8805,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-resize-observer: 1.2.0_sfoxds7t5ydpegc3knd667wn6m rc-util: 5.20.1_sfoxds7t5ydpegc3knd667wn6m @@ -8788,7 +8819,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 rc-trigger: 5.2.10_sfoxds7t5ydpegc3knd667wn6m react: 17.0.2 react-dom: 17.0.2_react@17.0.2 @@ -8800,7 +8831,7 @@ packages: react: '*' react-dom: '*' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-select: 14.0.3_sfoxds7t5ydpegc3knd667wn6m rc-tree: 5.4.4_sfoxds7t5ydpegc3knd667wn6m @@ -8816,7 +8847,7 @@ packages: react: '*' react-dom: '*' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-motion: 2.4.5_sfoxds7t5ydpegc3knd667wn6m rc-util: 5.20.1_sfoxds7t5ydpegc3knd667wn6m @@ -8832,7 +8863,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-align: 4.0.9_sfoxds7t5ydpegc3knd667wn6m rc-motion: 2.4.5_sfoxds7t5ydpegc3knd667wn6m @@ -8847,7 +8878,7 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 classnames: 2.3.1 rc-util: 5.20.1_sfoxds7t5ydpegc3knd667wn6m react: 17.0.2 @@ -8886,7 +8917,7 @@ packages: peerDependencies: react: ^15.3.0 || ^16.0.0 || ^17.0.0 dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 react: 17.0.2 dev: false @@ -8950,7 +8981,7 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 dependencies: - '@babel/runtime': 7.20.1 + '@babel/runtime': 7.20.13 focus-lock: 0.9.2 prop-types: 15.8.1 react: 17.0.2 @@ -9170,18 +9201,13 @@ packages: /regenerator-runtime/0.13.10: resolution: {integrity: sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==} + /regenerator-runtime/0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + /regenerator-transform/0.15.0: resolution: {integrity: sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==} dependencies: - '@babel/runtime': 7.20.1 - dev: true - - /regexp.prototype.flags/1.3.1: - resolution: {integrity: sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 + '@babel/runtime': 7.20.13 dev: true /regexp.prototype.flags/1.4.3: @@ -9582,6 +9608,13 @@ packages: escape-string-regexp: 2.0.0 dev: true + /stop-iteration-iterator/1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + dependencies: + internal-slot: 1.0.4 + dev: true + /string-convert/0.2.1: resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==} dev: false @@ -9612,16 +9645,16 @@ packages: strip-ansi: 7.0.1 dev: true - /string.prototype.matchall/4.0.6: - resolution: {integrity: sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==} + /string.prototype.matchall/4.0.8: + resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} dependencies: call-bind: 1.0.2 define-properties: 1.1.4 es-abstract: 1.21.1 get-intrinsic: 1.2.0 - has-symbols: 1.0.2 - internal-slot: 1.0.3 - regexp.prototype.flags: 1.3.1 + has-symbols: 1.0.3 + internal-slot: 1.0.4 + regexp.prototype.flags: 1.4.3 side-channel: 1.0.4 dev: true @@ -10376,6 +10409,15 @@ packages: is-symbol: 1.0.3 dev: true + /which-collection/1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: true + /which-typed-array/1.1.9: resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} engines: {node: '>= 0.4'} From e7c97ade4f72a28a2d001f4bc4336fcb145b1018 Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Thu, 26 Jan 2023 14:40:52 -0600 Subject: [PATCH 19/32] fix: Added back pnpmIntsall --- build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/build.gradle.kts b/build.gradle.kts index dfcb05925fb..d62f7f58638 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -304,6 +304,7 @@ tasks.register("cleanWebapp") { } tasks.register("lintWebapp") { + dependsOn(":pnpmInstall") pnpmCommand.set(listOf("lint")) } From 6c18b730b7d7bcbdbdee44cc7dbe4e8089b56af5 Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Thu, 26 Jan 2023 14:50:05 -0600 Subject: [PATCH 20/32] fix: Fix error where tsonfig would not run on js files --- src/main/webapp/tsconfig.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/webapp/tsconfig.json b/src/main/webapp/tsconfig.json index 16cac626616..e6787917760 100644 --- a/src/main/webapp/tsconfig.json +++ b/src/main/webapp/tsconfig.json @@ -10,9 +10,13 @@ "moduleResolution": "node", "target": "ES6", "allowJs": true, //remove when all js jsx files changed to ts tsx - "checkJs": false, "jsx": "react", "esModuleInterop": true }, - "include": ["./resources/js/**/*.ts", "./resources/js/**/*.tsx"] + "include": [ + "./resources/js/**/*.ts", + "./resources/js/**/*.tsx", + "./resources/js/**/*.js", + "./resources/js/**/*.jsx" + ] } From 1801f5fd4b0f2a3305a56bf516e57f68355c4c36 Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Fri, 27 Jan 2023 07:02:12 -0600 Subject: [PATCH 21/32] fix: Updated to lint common config files --- src/main/webapp/.eslintrc.js | 7 ++++++- src/main/webapp/tsconfig.json | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/webapp/.eslintrc.js b/src/main/webapp/.eslintrc.js index d7d2bcefe63..1b83a1aa3fe 100644 --- a/src/main/webapp/.eslintrc.js +++ b/src/main/webapp/.eslintrc.js @@ -9,7 +9,12 @@ module.exports = { i18n: true, __webpack_public_path__: true, }, - extends: ["airbnb", "airbnb-typescript", "plugin:prettier/recommended"], + extends: [ + "airbnb", + "airbnb-typescript", + "plugin:@typescript-eslint/recommended", + "plugin:prettier/recommended", + ], parserOptions: { project: "./tsconfig.json", ecmaFeatures: { diff --git a/src/main/webapp/tsconfig.json b/src/main/webapp/tsconfig.json index e6787917760..e02bfd17d40 100644 --- a/src/main/webapp/tsconfig.json +++ b/src/main/webapp/tsconfig.json @@ -14,6 +14,8 @@ "esModuleInterop": true }, "include": [ + "./*.js", + "./*.json", "./resources/js/**/*.ts", "./resources/js/**/*.tsx", "./resources/js/**/*.js", From 4979d611a54d3a9096afac85690c3fe8a64223e0 Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Fri, 27 Jan 2023 09:12:29 -0600 Subject: [PATCH 22/32] chore: Let's lint everything --- .github/workflows/linting.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 679f537a948..513e5c07bbe 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -38,6 +38,8 @@ jobs: with: config_path: "src/main/webapp/.eslintrc.js" extra_args: "--max-warnings=0 --parser-options project:src/main/webapp/tsconfig.json" + filter_mode: "nofilter" + reporter: "github--pr-check" file_extensions: | src/main/webapp/resources/js/**/*.ts src/main/webapp/resources/js/**/*.tsx From 8206861bff58a5e5001b8d90298aaf97724f58f0 Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Fri, 27 Jan 2023 11:33:20 -0600 Subject: [PATCH 23/32] fix: Typo --- .github/workflows/linting.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 513e5c07bbe..84f567a7dd0 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -39,7 +39,7 @@ jobs: config_path: "src/main/webapp/.eslintrc.js" extra_args: "--max-warnings=0 --parser-options project:src/main/webapp/tsconfig.json" filter_mode: "nofilter" - reporter: "github--pr-check" + reporter: "github-pr-check" file_extensions: | src/main/webapp/resources/js/**/*.ts src/main/webapp/resources/js/**/*.tsx From e9ffcb86456ff46415f1d8f9f846c7dffd6525c1 Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Fri, 27 Jan 2023 12:06:17 -0600 Subject: [PATCH 24/32] chore: Removed unnecessary options --- .github/workflows/linting.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 84f567a7dd0..679f537a948 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -38,8 +38,6 @@ jobs: with: config_path: "src/main/webapp/.eslintrc.js" extra_args: "--max-warnings=0 --parser-options project:src/main/webapp/tsconfig.json" - filter_mode: "nofilter" - reporter: "github-pr-check" file_extensions: | src/main/webapp/resources/js/**/*.ts src/main/webapp/resources/js/**/*.tsx From 4c6024603e8c998f674c037e47d6dbb28468d3e7 Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Mon, 30 Jan 2023 14:43:10 -0600 Subject: [PATCH 25/32] chore: Removed old errors that are handled by new config --- src/main/webapp/.eslintrc.js | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/src/main/webapp/.eslintrc.js b/src/main/webapp/.eslintrc.js index 1b83a1aa3fe..cfe3bb083cf 100644 --- a/src/main/webapp/.eslintrc.js +++ b/src/main/webapp/.eslintrc.js @@ -30,22 +30,6 @@ module.exports = { }, }, rules: { - "react/prop-types": 0, - "prefer-destructuring": [ - "error", - { - array: true, - object: true, - }, - { - enforceForRenamedProperties: false, - }, - ], - "prettier/prettier": [ - "error", - { - endOfLine: "auto", - }, - ], + "@typescript-eslint/consistent-type-imports": "warn", }, }; From c3d16395844b84eb6ac2c7f3e348170bf0190af2 Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Tue, 31 Jan 2023 10:42:45 -0600 Subject: [PATCH 26/32] chore: Base store cleanup --- .../js/pages/projects/samples/index.js | 49 ------------------- .../js/pages/projects/samples/index.tsx | 24 +++++++++ 2 files changed, 24 insertions(+), 49 deletions(-) delete mode 100644 src/main/webapp/resources/js/pages/projects/samples/index.js create mode 100644 src/main/webapp/resources/js/pages/projects/samples/index.tsx diff --git a/src/main/webapp/resources/js/pages/projects/samples/index.js b/src/main/webapp/resources/js/pages/projects/samples/index.js deleted file mode 100644 index 28c9f6230e7..00000000000 --- a/src/main/webapp/resources/js/pages/projects/samples/index.js +++ /dev/null @@ -1,49 +0,0 @@ -/** - * @file Base file for the project samples page. - */ -import React from "react"; -import { render } from "react-dom"; -import ProjectSamples from "./components/ProjectSamples"; -import { configureStore } from "@reduxjs/toolkit"; -import { setupListeners } from "@reduxjs/toolkit/query"; -import { Provider } from "react-redux"; -import { samplesApi } from "../../../apis/projects/samples"; -import { associatedProjectsApi } from "../../../apis/projects/associated-projects"; -import samplesReducer from "../redux/samplesSlice"; -import { projectApi } from "../../../apis/projects/project"; -import { setBaseUrl } from "../../../utilities/url-utilities"; - -/* -WEBPACK PUBLIC PATH: -Webpack does not know what the servlet context path is. To fix this, webpack exposed -the variable `__webpack_public_path__` -See: https://webpack.js.org/guides/public-path/#on-the-fly - */ -__webpack_public_path__ = setBaseUrl(`/dist/`); - -/** - * Redux store for project samples - */ -export const store = configureStore({ - reducer: { - samples: samplesReducer, - [projectApi.reducerPath]: projectApi.reducer, - [samplesApi.reducerPath]: samplesApi.reducer, - [associatedProjectsApi.reducerPath]: associatedProjectsApi.reducer, - }, - middleware: (getDefaultMiddleware) => - getDefaultMiddleware().concat( - samplesApi.middleware, - projectApi.middleware, - associatedProjectsApi.middleware - ), - devTools: process.env.NODE_ENV !== "production", -}); -setupListeners(store.dispatch); - -render( - - - , - document.getElementById("root") -); diff --git a/src/main/webapp/resources/js/pages/projects/samples/index.tsx b/src/main/webapp/resources/js/pages/projects/samples/index.tsx new file mode 100644 index 00000000000..6e38ee6aabb --- /dev/null +++ b/src/main/webapp/resources/js/pages/projects/samples/index.tsx @@ -0,0 +1,24 @@ +/** + * @file Base file for the project samples page. + */ +import React from "react"; +import { render } from "react-dom"; +import { Provider } from "react-redux"; +import ProjectSamples from "./components/ProjectSamples"; +import { setBaseUrl } from "../../../utilities/url-utilities"; +import store from "./store"; + +/* +WEBPACK PUBLIC PATH: +Webpack does not know what the servlet context path is. To fix this, webpack exposed +the variable `__webpack_public_path__` +See: https://webpack.js.org/guides/public-path/#on-the-fly + */ +__webpack_public_path__ = setBaseUrl(`/dist/`); + +render( + + + , + document.getElementById("root") +); From 6fe16ba2f103de7d2c58fbb8ba22bd5ffc76fea3 Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Tue, 31 Jan 2023 10:55:22 -0600 Subject: [PATCH 27/32] chore: Added typings for fetching paged samples --- .../resources/js/apis/projects/samples.ts | 42 ++++++---- .../resources/js/types/ant-design/index.d.ts | 82 ++++++++++++++----- .../resources/js/types/irida/index.d.ts | 15 ++-- .../resources/js/types/paged-table.d.ts | 4 + 4 files changed, 99 insertions(+), 44 deletions(-) create mode 100644 src/main/webapp/resources/js/types/paged-table.d.ts diff --git a/src/main/webapp/resources/js/apis/projects/samples.ts b/src/main/webapp/resources/js/apis/projects/samples.ts index 535c655abba..d521c437894 100644 --- a/src/main/webapp/resources/js/apis/projects/samples.ts +++ b/src/main/webapp/resources/js/apis/projects/samples.ts @@ -1,15 +1,18 @@ import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react"; -import { - PairedEndSequenceFile, - SingleEndSequenceFile, -} from "../../types/irida"; -import { +import axios from "axios"; +import type { AjaxErrorResponse, AjaxSuccessResponse, } from "../../types/ajax-response"; +import type { TableOptions } from "../../types/ant-design"; +import type { + PairedEndSequenceFile, + SelectedSample, + SingleEndSequenceFile, +} from "../../types/irida"; +import type { PagedTableResponse } from "../../types/paged-table"; import { getProjectIdFromUrl, setBaseUrl } from "../../utilities/url-utilities"; import { get, post } from "../requests"; -import axios from "axios"; export interface SequencingFiles { singles: SingleEndSequenceFile[]; @@ -82,9 +85,13 @@ export type CreateUpdateSamples = (params: { const PROJECT_ID = getProjectIdFromUrl(); const URL = setBaseUrl(`/ajax/projects`); +type FetchPagedSamplesParams = { + projectId: number; + body: TableOptions; +}; + /** * Redux API for handling project samples queries. - * @type {Api<(args: (string | FetchArgs), api: BaseQueryApi, extraOptions: {}) => MaybePromise>, {getSampleIdsForProject: *}, string, never, typeof coreModuleName> | Api<(args: (string | FetchArgs), api: BaseQueryApi, extraOptions: {}) => MaybePromise>, {getSampleIdsForProject: *}, string, never, any>} */ export const samplesApi = createApi({ reducerPath: "samplesApi", @@ -92,7 +99,10 @@ export const samplesApi = createApi({ baseUrl: URL, }), endpoints: (builder) => ({ - listSamples: builder.query({ + listSamples: builder.query< + PagedTableResponse, + FetchPagedSamplesParams + >({ query: (body) => ({ url: `/${PROJECT_ID}/samples`, method: "POST", @@ -170,17 +180,15 @@ export const createSamples: CreateUpdateSamples = async ({ `${URL}/${projectId}/samples/create`, body ); - return Promise.resolve(data); + return await Promise.resolve(data); } catch (error) { if (axios.isAxiosError(error)) { if (error.response) { return Promise.resolve(error.response.data); - } else { - return Promise.reject(error.message); } - } else { - return Promise.reject("An unexpected error occurred"); + return Promise.reject(error.message); } + return Promise.reject("An unexpected error occurred"); } }; @@ -193,17 +201,15 @@ export const updateSamples: CreateUpdateSamples = async ({ `${URL}/${projectId}/samples/update`, body ); - return Promise.resolve(data); + return await Promise.resolve(data); } catch (error) { if (axios.isAxiosError(error)) { if (error.response) { return Promise.resolve(error.response.data); - } else { - return Promise.reject(error.message); } - } else { - return Promise.reject("An unexpected error occurred"); + return Promise.reject(error.message); } + return Promise.reject("An unexpected error occurred"); } }; diff --git a/src/main/webapp/resources/js/types/ant-design/index.d.ts b/src/main/webapp/resources/js/types/ant-design/index.d.ts index d31bc08e957..1184ec2f922 100644 --- a/src/main/webapp/resources/js/types/ant-design/index.d.ts +++ b/src/main/webapp/resources/js/types/ant-design/index.d.ts @@ -1,26 +1,66 @@ /** * Properties that are available on the Ant Design Grid Component */ -export interface GridProps { - column?: number; - gutter?: number; - xs?: number; - sm?: number; - md?: number; - lg?: number; - xl?: number; - xxl?: number; + +import type { + FilterValue, + TablePaginationConfig, +} from "antd/lib/table/interface"; + +declare namespace ANTD { + interface GridProps { + column?: number; + gutter?: number; + xs?: number; + sm?: number; + md?: number; + lg?: number; + xl?: number; + xxl?: number; + } + + type TagColor = + | "magenta" + | "red" + | "volcano" + | "orange" + | "gold" + | "lime" + | "green" + | "cyan" + | "blue" + | "geekblue" + | "purple"; + + export type TableFilters = Record | undefined; + + export type TableOptions = { + filters: TableFilters; + pagination: TablePaginationConfig; + order: TableSortOrder[] | undefined; + search: TableSearch[]; + reload?: number; + }; + + export type TableSortOrder = { + property: string; + direction: "asc" | "desc"; + }; + + export type TableOperation = + | "IN" + | "MATCH" + | "MATCH_IN" + | "GREATER_THAN_EQUAL" + | "LESS_THAN_EQUAL"; + + export type TableSearch = { + property: string; + value: string | string[]; + operation: TableOperation; + _file?: boolean; + }; } -export type TagColor = - | "magenta" - | "red" - | "volcano" - | "orange" - | "gold" - | "lime" - | "green" - | "cyan" - | "blue" - | "geekblue" - | "purple"; +export = ANTD; +export as namespace ANTD; diff --git a/src/main/webapp/resources/js/types/irida/index.d.ts b/src/main/webapp/resources/js/types/irida/index.d.ts index 95b35d5e87a..08d215c4b1d 100644 --- a/src/main/webapp/resources/js/types/irida/index.d.ts +++ b/src/main/webapp/resources/js/types/irida/index.d.ts @@ -1,8 +1,5 @@ -import { GenomeAssembly } from "../../apis/samples/samples"; -import { Restriction } from "../../utilities/restriction-utilities"; - -export = IRIDA; -export as namespace IRIDA; +import type { GenomeAssembly } from "../../apis/samples/samples"; +import type { Restriction } from "../../utilities/restriction-utilities"; declare namespace IRIDA { interface BaseModel { @@ -221,6 +218,11 @@ declare namespace IRIDA { bioSampleFiles: NcbiBioSampleFiles[]; } + type SelectedSample = Pick & { + owner: boolean; + projectId: number; + }; + interface SequenceFile extends BaseModel { fileSize: string; } @@ -243,3 +245,6 @@ declare namespace IRIDA { restriction: Restriction; } } + +export = IRIDA; +export as namespace IRIDA; diff --git a/src/main/webapp/resources/js/types/paged-table.d.ts b/src/main/webapp/resources/js/types/paged-table.d.ts new file mode 100644 index 00000000000..353889a7297 --- /dev/null +++ b/src/main/webapp/resources/js/types/paged-table.d.ts @@ -0,0 +1,4 @@ +export type PagedTableResponse = { + content: T[]; + total: number; +}; From c16870b89af0d1d46a96960ae42e269e3c8139ab Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Tue, 31 Jan 2023 11:54:50 -0600 Subject: [PATCH 28/32] chore: Cleaned up types for paged tables --- .../js/apis/paged-table/paged-table.ts | 20 ++------ .../resources/js/apis/projects/samples.ts | 50 +++++++++++++++---- .../samples/components/MergeModal.jsx | 7 ++- .../resources/js/types/ant-design/index.d.ts | 34 ------------- .../resources/js/types/paged-table.d.ts | 34 +++++++++++++ 5 files changed, 82 insertions(+), 63 deletions(-) diff --git a/src/main/webapp/resources/js/apis/paged-table/paged-table.ts b/src/main/webapp/resources/js/apis/paged-table/paged-table.ts index a740d63a1a5..8b80ea85313 100644 --- a/src/main/webapp/resources/js/apis/paged-table/paged-table.ts +++ b/src/main/webapp/resources/js/apis/paged-table/paged-table.ts @@ -1,5 +1,4 @@ import axios from "axios"; -import { BaseModel } from "../../types/irida"; export interface PageTableFilters { [key: string]: string[]; @@ -14,23 +13,14 @@ export interface PageTableRequest { filters: PageTableFilters; } -export interface PageTableResponse { - dataSource: PageTableModel[]; - total: number; -} - -export interface PageTableModel extends BaseModel { - [key: string]: any; // allows any additional keys of any type value -} - /** * Default function to fetch paged table data. * @param url - datasource url for the paged table - * @param data - table request payload for the paged table + * @param body - table request payload for the paged table */ -export async function fetchPageTableUpdate( +export async function fetchPageTableUpdate( url: string, - data: PageTableRequest -): Promise { - return axios.post(url, data).then(({ data }) => data); + body: PageTableRequest +) { + return axios.post(url, body).then(({ data }) => data); } diff --git a/src/main/webapp/resources/js/apis/projects/samples.ts b/src/main/webapp/resources/js/apis/projects/samples.ts index d521c437894..a5a1ae9e555 100644 --- a/src/main/webapp/resources/js/apis/projects/samples.ts +++ b/src/main/webapp/resources/js/apis/projects/samples.ts @@ -1,16 +1,19 @@ import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react"; + import axios from "axios"; import type { AjaxErrorResponse, AjaxSuccessResponse, } from "../../types/ajax-response"; -import type { TableOptions } from "../../types/ant-design"; import type { PairedEndSequenceFile, SelectedSample, SingleEndSequenceFile, } from "../../types/irida"; -import type { PagedTableResponse } from "../../types/paged-table"; +import type { + PagedTableOptions, + PagedTableResponse, +} from "../../types/paged-table"; import { getProjectIdFromUrl, setBaseUrl } from "../../utilities/url-utilities"; import { get, post } from "../requests"; @@ -87,7 +90,25 @@ const URL = setBaseUrl(`/ajax/projects`); type FetchPagedSamplesParams = { projectId: number; - body: TableOptions; + body: PagedTableOptions; +}; + +type MergeSamplesParams = { + projectId: number; + body: { + ids: number[]; + newName: string; + primary: number; + }; +}; + +type ShareSamplesParams = { + currentId: number; + locked: boolean; + remove: boolean; + restrictions: { restriction: string; identifier: number }[]; + sampleIds: number[]; + targetId: number; }; /** @@ -109,28 +130,37 @@ export const samplesApi = createApi({ body, }), }), - merge: builder.mutation({ - query: ({ request }) => ({ - url: `/${PROJECT_ID}/samples/merge`, + merge: builder.mutation< + PagedTableResponse<{ message: string }>, + MergeSamplesParams + >({ + query: ({ projectId, body }) => ({ + url: `/${projectId}/samples/merge`, method: "POST", - body: request, + body, }), }), - remove: builder.mutation({ + remove: builder.mutation<{ message: string }, number[]>({ query: (sampleIds) => ({ url: `/${PROJECT_ID}/samples/remove`, method: "DELETE", body: { sampleIds }, }), }), - shareSamplesWithProject: builder.mutation({ + shareSamplesWithProject: builder.mutation< + PagedTableResponse<{ message: string }>, + ShareSamplesParams + >({ query: (body) => ({ url: `/${PROJECT_ID}/samples/share`, method: `POST`, body, }), }), - validateSamples: builder.mutation({ + validateSamples: builder.mutation< + PagedTableResponse<{ ids: null | number[]; name: string }[]>, + { projectId: number; body: { samples: { name: string }[] } } + >({ query: ({ projectId, body }) => ({ url: `/${projectId}/samples/validate`, method: `POST`, diff --git a/src/main/webapp/resources/js/pages/projects/samples/components/MergeModal.jsx b/src/main/webapp/resources/js/pages/projects/samples/components/MergeModal.jsx index dad3891809c..d6f31421949 100644 --- a/src/main/webapp/resources/js/pages/projects/samples/components/MergeModal.jsx +++ b/src/main/webapp/resources/js/pages/projects/samples/components/MergeModal.jsx @@ -51,9 +51,8 @@ export default function MergeModal({ samples, visible, onComplete, onCancel }) { const validateName = async (name) => { if (renameSample) { return serverValidateSampleName(name); - } else { - return Promise.resolve(); } + return Promise.resolve(); }; const onSubmit = async () => { @@ -75,7 +74,7 @@ export default function MergeModal({ samples, visible, onComplete, onCancel }) { const { message } = await merge({ projectId, - request: { + body: { ...values, ids, }, @@ -153,7 +152,7 @@ export default function MergeModal({ samples, visible, onComplete, onCancel }) { ({ + () => ({ validator(_, value) { return validateName(value); }, diff --git a/src/main/webapp/resources/js/types/ant-design/index.d.ts b/src/main/webapp/resources/js/types/ant-design/index.d.ts index 1184ec2f922..1050215d969 100644 --- a/src/main/webapp/resources/js/types/ant-design/index.d.ts +++ b/src/main/webapp/resources/js/types/ant-design/index.d.ts @@ -2,11 +2,6 @@ * Properties that are available on the Ant Design Grid Component */ -import type { - FilterValue, - TablePaginationConfig, -} from "antd/lib/table/interface"; - declare namespace ANTD { interface GridProps { column?: number; @@ -31,35 +26,6 @@ declare namespace ANTD { | "blue" | "geekblue" | "purple"; - - export type TableFilters = Record | undefined; - - export type TableOptions = { - filters: TableFilters; - pagination: TablePaginationConfig; - order: TableSortOrder[] | undefined; - search: TableSearch[]; - reload?: number; - }; - - export type TableSortOrder = { - property: string; - direction: "asc" | "desc"; - }; - - export type TableOperation = - | "IN" - | "MATCH" - | "MATCH_IN" - | "GREATER_THAN_EQUAL" - | "LESS_THAN_EQUAL"; - - export type TableSearch = { - property: string; - value: string | string[]; - operation: TableOperation; - _file?: boolean; - }; } export = ANTD; diff --git a/src/main/webapp/resources/js/types/paged-table.d.ts b/src/main/webapp/resources/js/types/paged-table.d.ts index 353889a7297..1cc6fece27f 100644 --- a/src/main/webapp/resources/js/types/paged-table.d.ts +++ b/src/main/webapp/resources/js/types/paged-table.d.ts @@ -1,4 +1,38 @@ +import type { + FilterValue, + TablePaginationConfig, +} from "antd/lib/table/interface"; + export type PagedTableResponse = { content: T[]; total: number; }; + +export type TableFilters = Record | undefined; + +export type PagedTableOptions = { + filters: TableFilters; + pagination: TablePaginationConfig; + order: TableSortOrder[] | undefined; + search: TableSearch[]; + reload?: number; +}; + +export type TableSortOrder = { + property: string; + direction: "asc" | "desc"; +}; + +export type TableOperation = + | "IN" + | "MATCH" + | "MATCH_IN" + | "GREATER_THAN_EQUAL" + | "LESS_THAN_EQUAL"; + +export type TableSearch = { + property: string; + value: string | string[]; + operation: TableOperation; + _file?: boolean; +}; From c4e20df10248141001e26f6ad1122be9a0ac48b2 Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Tue, 31 Jan 2023 11:56:19 -0600 Subject: [PATCH 29/32] chore: Moved store into it's own typescript file --- .../js/pages/projects/samples/store.ts | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/main/webapp/resources/js/pages/projects/samples/store.ts diff --git a/src/main/webapp/resources/js/pages/projects/samples/store.ts b/src/main/webapp/resources/js/pages/projects/samples/store.ts new file mode 100644 index 00000000000..d8e558014c1 --- /dev/null +++ b/src/main/webapp/resources/js/pages/projects/samples/store.ts @@ -0,0 +1,33 @@ +import { configureStore } from "@reduxjs/toolkit"; +import type { TypedUseSelectorHook } from "react-redux"; +import { useSelector } from "react-redux"; +import { associatedProjectsApi } from "../../../apis/projects/associated-projects"; +import { projectApi } from "../../../apis/projects/project"; +import { samplesApi } from "../../../apis/projects/samples"; +import samplesReducer from "../redux/samplesSlice"; + +/** + * Redux store for project samples + */ +const store = configureStore({ + reducer: { + samples: samplesReducer, + [projectApi.reducerPath]: projectApi.reducer, + [samplesApi.reducerPath]: samplesApi.reducer, + [associatedProjectsApi.reducerPath]: associatedProjectsApi.reducer, + }, + middleware: (getDefaultMiddleware) => + getDefaultMiddleware().concat( + samplesApi.middleware, + projectApi.middleware, + associatedProjectsApi.middleware + ), + devTools: process.env.NODE_ENV !== "production", +}); + +export type AppDispatch = typeof store.dispatch; +export type RootState = ReturnType; +export const useAppDispatch = () => store.dispatch; +export const useTypedSelector: TypedUseSelectorHook = useSelector; + +export default store; From d50f86a35d100c91a43c0a7530223bef1296719a Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Tue, 31 Jan 2023 14:32:44 -0600 Subject: [PATCH 30/32] fix: Cleaned up eslint erros --- src/main/webapp/resources/js/apis/projects/samples.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/webapp/resources/js/apis/projects/samples.ts b/src/main/webapp/resources/js/apis/projects/samples.ts index a5a1ae9e555..a3bf462acc6 100644 --- a/src/main/webapp/resources/js/apis/projects/samples.ts +++ b/src/main/webapp/resources/js/apis/projects/samples.ts @@ -218,7 +218,7 @@ export const createSamples: CreateUpdateSamples = async ({ } return Promise.reject(error.message); } - return Promise.reject("An unexpected error occurred"); + return Promise.reject(new Error("An unexpected error occurred")); } }; @@ -239,7 +239,7 @@ export const updateSamples: CreateUpdateSamples = async ({ } return Promise.reject(error.message); } - return Promise.reject("An unexpected error occurred"); + return Promise.reject(new Error("An unexpected error occurred")); } }; From 9ab4ef8bb030371f7ff3907579709349ece650e8 Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Wed, 1 Feb 2023 05:43:29 -0600 Subject: [PATCH 31/32] fix: Fixed typescript errors in MergeModal.tsx --- .../resources/js/apis/projects/samples.ts | 5 +- .../{MergeModal.jsx => MergeModal.tsx} | 78 +++++++++++-------- .../resources/js/pages/projects/typs.d.ts | 11 +++ .../resources/js/types/irida/index.d.ts | 2 +- 4 files changed, 58 insertions(+), 38 deletions(-) rename src/main/webapp/resources/js/pages/projects/samples/components/{MergeModal.jsx => MergeModal.tsx} (77%) create mode 100644 src/main/webapp/resources/js/pages/projects/typs.d.ts diff --git a/src/main/webapp/resources/js/apis/projects/samples.ts b/src/main/webapp/resources/js/apis/projects/samples.ts index a3bf462acc6..2e5f190ee65 100644 --- a/src/main/webapp/resources/js/apis/projects/samples.ts +++ b/src/main/webapp/resources/js/apis/projects/samples.ts @@ -130,10 +130,7 @@ export const samplesApi = createApi({ body, }), }), - merge: builder.mutation< - PagedTableResponse<{ message: string }>, - MergeSamplesParams - >({ + merge: builder.mutation<{ message: string }, MergeSamplesParams>({ query: ({ projectId, body }) => ({ url: `/${projectId}/samples/merge`, method: "POST", diff --git a/src/main/webapp/resources/js/pages/projects/samples/components/MergeModal.jsx b/src/main/webapp/resources/js/pages/projects/samples/components/MergeModal.tsx similarity index 77% rename from src/main/webapp/resources/js/pages/projects/samples/components/MergeModal.jsx rename to src/main/webapp/resources/js/pages/projects/samples/components/MergeModal.tsx index d6f31421949..0de7508183d 100644 --- a/src/main/webapp/resources/js/pages/projects/samples/components/MergeModal.jsx +++ b/src/main/webapp/resources/js/pages/projects/samples/components/MergeModal.tsx @@ -12,22 +12,34 @@ import { Typography, } from "antd"; import React from "react"; -import { useSelector } from "react-redux"; -import { serverValidateSampleName } from "../../../../utilities/validation-utilities"; import { useMergeMutation } from "../../../../apis/projects/samples"; +import type { StoredSample } from "../../../../types/irida"; +import { serverValidateSampleName } from "../../../../utilities/validation-utilities"; +import { useTypedSelector } from "../store"; import LockedSamplesList from "./LockedSamplesList"; +type MergeModalProps = { + onCancel: () => void; + onComplete: () => void; + samples: { locked: StoredSample[]; valid: StoredSample[] }; + visible: boolean; +}; + /** * React element to display a modal to merge multiple samples into a single one. - * @param {array} samples - list of samples to merge together - * @param {boolean} visible - whether the modal is currently visible on the page - * @param {function} onComplete - function to call when the merge is complete - * @param {function} onCancel - function to call when the merge is cancelled. - * @returns {JSX.Element} - * @constructor - */ -export default function MergeModal({ samples, visible, onComplete, onCancel }) { - const { projectId } = useSelector((state) => state.samples); + * @param samples - list of samples to merge together + * @param visible - whether the modal is currently visible on the page + * @param onComplete - function to call when the merge is complete + * @param onCancel - function to call when the merge is cancelled. +s */ +export default function MergeModal({ + samples, + visible, + onComplete, + onCancel, +}: MergeModalProps) { + console.log(samples); + const { projectId } = useTypedSelector((state) => state.samples); const [merge, { isLoading }] = useMergeMutation(); const [renameSample, setRenameSample] = React.useState(false); @@ -48,7 +60,7 @@ export default function MergeModal({ samples, visible, onComplete, onCancel }) { }, [form, renameSample]); // Server validate new name - const validateName = async (name) => { + const validateName = async (name: string) => { if (renameSample) { return serverValidateSampleName(name); } @@ -56,35 +68,35 @@ export default function MergeModal({ samples, visible, onComplete, onCancel }) { }; const onSubmit = async () => { - let values; - try { - values = await form.validateFields(); + const { newName, primary }: typeof initialValues = + await form.validateFields(); + + const ids = samples.valid + .map((sample) => sample.id) + .filter((id) => id !== primary); + + const { message } = await merge({ + projectId: Number(projectId), + body: { + newName, + primary, + ids, + }, + }).unwrap(); + + notification.success({ + message: i18n("MergeModal.success"), + description: message, + }); + onComplete(); } catch { /* If the form is in an invalid state it will hit here. This will prevent the invalid date from being submitted and display the errors (if not already displayed) to the user. */ - return; } - const ids = samples.valid - .map((sample) => sample.id) - .filter((id) => id !== values.primary); - - const { message } = await merge({ - projectId, - body: { - ...values, - ids, - }, - }).unwrap(); - - notification.success({ - message: i18n("MergeModal.success"), - description: message, - }); - onComplete(); }; return ( diff --git a/src/main/webapp/resources/js/pages/projects/typs.d.ts b/src/main/webapp/resources/js/pages/projects/typs.d.ts new file mode 100644 index 00000000000..670b64f6027 --- /dev/null +++ b/src/main/webapp/resources/js/pages/projects/typs.d.ts @@ -0,0 +1,11 @@ +import type { Project, Sample } from "../../types/irida"; + +export type ProjectSample = { + coverage: unknown; // TODO: (Josh - 12/9/22) Figure this one out + key: string; + owner: boolean; + project: Project; + qcStatus: string; + quality: string[]; + sample: Sample; +}; diff --git a/src/main/webapp/resources/js/types/irida/index.d.ts b/src/main/webapp/resources/js/types/irida/index.d.ts index 08d215c4b1d..8cd23ce08b8 100644 --- a/src/main/webapp/resources/js/types/irida/index.d.ts +++ b/src/main/webapp/resources/js/types/irida/index.d.ts @@ -161,7 +161,7 @@ declare namespace IRIDA { interface StoredSample { id: number; - name: string; + sampleName: string; owner: boolean; projectId: number; } From a525e355f578aa5a15cfe1db11b39399cbf847ad Mon Sep 17 00:00:00 2001 From: Josh Adam Date: Wed, 1 Feb 2023 07:33:57 -0600 Subject: [PATCH 32/32] fix: Removed logging statement --- .../js/pages/projects/samples/components/MergeModal.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/webapp/resources/js/pages/projects/samples/components/MergeModal.tsx b/src/main/webapp/resources/js/pages/projects/samples/components/MergeModal.tsx index 0de7508183d..1abc953f282 100644 --- a/src/main/webapp/resources/js/pages/projects/samples/components/MergeModal.tsx +++ b/src/main/webapp/resources/js/pages/projects/samples/components/MergeModal.tsx @@ -38,7 +38,6 @@ export default function MergeModal({ onComplete, onCancel, }: MergeModalProps) { - console.log(samples); const { projectId } = useTypedSelector((state) => state.samples); const [merge, { isLoading }] = useMergeMutation();