aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar MCMXC <16797721+mcmxcdev@users.noreply.github.com>2023-07-23 20:08:52 -0600
committerLibravatar Vijay Aravamudhan <vraravam@users.noreply.github.com>2023-07-25 07:45:23 +0000
commit8c131073730ec684145c2cc8ee8d6b39bbe9278d (patch)
tree1129d432ae88475909f0e5d38960395b75364902
parent6.4.1-nightly.11 [skip ci] (diff)
downloadferdium-app-8c131073730ec684145c2cc8ee8d6b39bbe9278d.tar.gz
ferdium-app-8c131073730ec684145c2cc8ee8d6b39bbe9278d.tar.zst
ferdium-app-8c131073730ec684145c2cc8ee8d6b39bbe9278d.zip
chore: improve lint setup
- update eslint config - merged eslint rules for JS and TS to avoid duplicates - extended stricter lint ruleset from typescript-eslint - corrected wrong setup for certain eslint rulesets - opt in to reportUnusedDisableDirectives config option - fix or disable a lot of lint issues throughout codebase - remove trailingComma: all from prettier config which is default in prettier v3 - add volta configuration to package.json to autoload correct node and pnpm versions - upgrade all eslint and prettier related dependencies to latest - remove config options from settings.json which are default anyways - remove config options from settings.json which are outdated/unknown - set up prettier as default formatter in settings.json
-rw-r--r--.eslintrc.js159
-rw-r--r--.prettierrc.js1
-rw-r--r--.vscode/settings.json27
-rw-r--r--package.json18
-rw-r--r--pnpm-lock.yaml974
-rw-r--r--src/@types/ferdium.types.ts1
-rw-r--r--src/@types/stores.types.ts1
-rw-r--r--src/actions/lib/actions.ts1
-rw-r--r--src/api/apiBase.ts7
-rw-r--r--src/api/server/ServerApi.ts2
-rw-r--r--src/app.tsx2
-rw-r--r--src/components/AppUpdateInfoBar.tsx1
-rw-r--r--src/components/auth/Login.tsx1
-rw-r--r--src/components/auth/Welcome.tsx4
-rw-r--r--src/components/layout/Sidebar.tsx248
-rw-r--r--src/components/services/tabs/TabBarSortableList.tsx2
-rw-r--r--src/components/services/tabs/TabItem.tsx8
-rw-r--r--src/components/services/tabs/Tabbar.tsx2
-rw-r--r--src/components/settings/navigation/SettingsNavigation.tsx6
-rw-r--r--src/components/settings/supportFerdium/SupportFerdiumDashboard.tsx2
-rw-r--r--src/components/ui/AppLoader/index.tsx23
-rw-r--r--src/components/ui/Link.tsx4
-rw-r--r--src/components/ui/Select.tsx4
-rw-r--r--src/components/ui/Tabs/Tabs.tsx2
-rw-r--r--src/components/ui/WebviewLoader/index.tsx2
-rw-r--r--src/components/ui/colorPickerInput/index.tsx2
-rw-r--r--src/components/ui/headline/index.tsx11
-rw-r--r--src/components/ui/select/index.tsx6
-rw-r--r--src/containers/auth/WelcomeScreen.tsx4
-rw-r--r--src/containers/layout/AppLayoutContainer.tsx1
-rw-r--r--src/containers/settings/EditSettingsScreen.tsx2
-rw-r--r--src/containers/settings/EditUserScreen.tsx2
-rw-r--r--src/electron/macOSPermissions.ts1
-rw-r--r--src/environment.ts2
-rw-r--r--src/features/serviceProxy/index.ts6
-rw-r--r--src/features/workspaces/components/WorkspaceDrawer.tsx5
-rw-r--r--src/features/workspaces/components/WorkspaceDrawerItem.tsx1
-rw-r--r--src/features/workspaces/components/WorkspacesDashboard.tsx1
-rw-r--r--src/features/workspaces/store.ts1
-rw-r--r--src/helpers/recipe-helpers.ts1
-rw-r--r--src/index.ts2
-rw-r--r--src/internal-server/app/Controllers/Http/UserController.js14
-rw-r--r--src/internal-server/public/js/transfer.js1
-rw-r--r--src/lib/Form.ts1
-rw-r--r--src/lib/Menu.ts3
-rw-r--r--src/models/Recipe.ts8
-rw-r--r--src/routes.tsx18
-rw-r--r--src/stores/AppStore.ts2
-rw-r--r--src/stores/GlobalErrorStore.ts12
-rw-r--r--src/stores/RecipesStore.ts1
-rw-r--r--src/stores/ServicesStore.ts2
-rw-r--r--src/stores/SettingsStore.ts21
-rw-r--r--src/stores/UserStore.ts4
-rw-r--r--src/stores/lib/TypedStore.ts2
-rw-r--r--src/webview/contextMenuBuilder.ts7
-rw-r--r--src/webview/lib/Userscript.ts9
-rw-r--r--src/webview/recipe.ts17
-rw-r--r--test/helpers/update-helpers.test.ts29
-rw-r--r--test/jsUtils.test.ts6
59 files changed, 999 insertions, 708 deletions
diff --git a/.eslintrc.js b/.eslintrc.js
index e89b5a618..db66bbc4a 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -1,5 +1,4 @@
1/** @type {import('eslint').Linter.Config} */ 1/** @type {import('eslint').Linter.Config} */
2
3module.exports = { 2module.exports = {
4 root: true, 3 root: true,
5 parserOptions: { 4 parserOptions: {
@@ -10,9 +9,14 @@ module.exports = {
10 sourceType: 'module', 9 sourceType: 'module',
11 project: './tsconfig.json', 10 project: './tsconfig.json',
12 }, 11 },
13 ignorePatterns: ['node_modules', 'build', 'recipes', '.eslintrc.js'], 12 ignorePatterns: ['node_modules', 'build', 'recipes'],
14 extends: ['airbnb', 'plugin:unicorn/recommended', 'prettier'], 13 extends: [
15 plugins: ['jest', 'prettier'], 14 'airbnb',
15 'plugin:jest/recommended',
16 'plugin:unicorn/recommended',
17 'plugin:prettier/recommended',
18 ],
19 plugins: ['jest'],
16 settings: { 20 settings: {
17 react: { 21 react: {
18 pragma: 'React', // Pragma to use, default to "React" 22 pragma: 'React', // Pragma to use, default to "React"
@@ -28,123 +32,50 @@ module.exports = {
28 node: true, 32 node: true,
29 jest: true, 33 jest: true,
30 }, 34 },
35 reportUnusedDisableDirectives: true,
31 overrides: [ 36 overrides: [
32 { 37 {
33 files: ['**/*.ts', '**/*.tsx'], 38 files: ['**/*.ts', '**/*.tsx'],
34 extends: ['airbnb-typescript', 'plugin:unicorn/recommended', 'prettier'], 39 extends: [
40 'airbnb-typescript',
41 'plugin:@typescript-eslint/eslint-recommended',
42 'plugin:@typescript-eslint/strict',
43 // TODO: Opt-in to a stricter ruleset in the future
44 // 'plugin:@typescript-eslint/strict-type-checked',
45 'plugin:@typescript-eslint/stylistic-type-checked',
46 ],
35 parser: '@typescript-eslint/parser', 47 parser: '@typescript-eslint/parser',
36 plugins: ['@typescript-eslint', 'jest', 'prettier'], 48 plugins: [],
37 rules: { 49 rules: {
38 // eslint
39 'arrow-parens': 0,
40 'array-callback-return': 1,
41 'class-methods-use-this': 0,
42 'consistent-return': 0,
43 'function-paren-newline': 0,
44 'implicit-arrow-linebreak': 0,
45 'linebreak-style': 0,
46 'max-len': 0,
47 'no-confusing-arrow': 0,
48 'no-console': 0,
49 'no-param-reassign': 0,
50 'no-restricted-syntax': 0,
51 'no-return-assign': 1,
52 'no-underscore-dangle': 0,
53 'no-use-before-define': 0,
54 'prefer-destructuring': 1,
55 'object-curly-newline': 0,
56 'operator-linebreak': 0,
57 // @typescript-eslint 50 // @typescript-eslint
58 // TODO: Turn this rule on again after gulp -> webpack migration
59 // gulp-typescript doesn't consider custom index.d.ts in @types
60 // This is necessary as workaround for window.ferdium vs window['ferdium'] 51 // This is necessary as workaround for window.ferdium vs window['ferdium']
61 '@typescript-eslint/dot-notation': 0, 52 '@typescript-eslint/dot-notation': 0,
62 '@typescript-eslint/indent': 0, 53 '@typescript-eslint/indent': 0,
63 '@typescript-eslint/no-shadow': 0, 54 '@typescript-eslint/no-shadow': 0,
64 '@typescript-eslint/no-unused-expressions': 0, 55 '@typescript-eslint/no-var-requires': 0,
56 '@typescript-eslint/no-explicit-any': 0,
57 '@typescript-eslint/no-inferrable-types': 0,
58 '@typescript-eslint/no-non-null-assertion': 0,
59 '@typescript-eslint/prefer-nullish-coalescing': 0,
60 '@typescript-eslint/consistent-indexed-object-style': 0,
61 '@typescript-eslint/consistent-type-assertions': 0,
62 '@typescript-eslint/consistent-type-definitions': 0,
63 '@typescript-eslint/no-empty-interface': 0,
64
65 // eslint-plugin-import 65 // eslint-plugin-import
66 'import/extensions': 0, 66 'import/no-extraneous-dependencies': 0, // various false positives, re-enable at some point
67 'import/no-cycle': 1,
68 'import/no-extraneous-dependencies': 0,
69 'import/no-unresolved': 0,
70 'import/prefer-default-export': 0,
71 // eslint-plugin-react
72 // TODO: [TS DEBT] should remove below config once application converted to TS
73 'react/default-props-match-prop-types': 0,
74 'react/require-default-props': 0,
75 '@typescript-eslint/no-useless-constructor': 0,
76 // eslint-plugin-react
77 'react/destructuring-assignment': 0,
78 'react/button-has-type': 0,
79 'react/forbid-prop-types': 0,
80 'react/jsx-curly-newline': 0,
81 'react/no-unused-prop-types': 1,
82 'react/react-in-jsx-scope': 0,
83 'react/jsx-no-bind': 0,
84 'react/jsx-no-target-blank': 0,
85 'react/jsx-props-no-spreading': 0,
86 'react/no-deprecated': 1,
87 'react/no-array-index-key': 0,
88 'react/prefer-stateless-function': 0,
89 'react/sort-comp': 0,
90 'react/state-in-constructor': 0,
91 'react/static-property-placement': 0,
92 'react/function-component-definition': 0,
93 'react/jsx-no-useless-fragment': 0,
94 // eslint-plugin-jsx-a11y
95 'jsx-a11y/click-events-have-key-events': 1,
96 'jsx-a11y/mouse-events-have-key-events': 1,
97 'jsx-a11y/label-has-for': [
98 2,
99 {
100 components: ['Label'],
101 required: {
102 every: ['id'],
103 },
104 allowChildren: false,
105 },
106 ],
107 'jsx-a11y/no-static-element-interactions': 0,
108 'jsx-a11y/no-noninteractive-element-interactions': 1,
109 // eslint-plugin-unicorn
110 'unicorn/filename-case': 0,
111 'unicorn/no-null': 0,
112 'unicorn/no-useless-undefined': 0,
113 'unicorn/prefer-module': 0,
114 'unicorn/prevent-abbreviations': 0,
115 'unicorn/prefer-node-protocol': 0,
116 'unicorn/import-style': [
117 2,
118 {
119 styles: {
120 path: {
121 named: true,
122 },
123 },
124 },
125 ],
126 'unicorn/consistent-destructuring': 0,
127 // INFO: Turned off due to src/internal-server/database/factory.js
128 'unicorn/no-empty-file': 0,
129 // eslint-plugin-prettier
130 'prettier/prettier': 1,
131 }, 67 },
132 }, 68 },
133 ], 69 ],
134 rules: { 70 rules: {
135 // eslint 71 // eslint
136 'arrow-parens': 0, 72 'array-callback-return': 1,
137 'class-methods-use-this': 0, 73 'class-methods-use-this': 0,
138 'consistent-return': 1, 74 'consistent-return': 1,
139 'implicit-arrow-linebreak': 0,
140 indent: 0,
141 // TODO: Turn this rule on once the js to ts conversions are over 75 // TODO: Turn this rule on once the js to ts conversions are over
142 // This is necessary as workaround for window.ferdium vs window['ferdium'] 76 // This is necessary as workaround for window.ferdium vs window['ferdium']
143 'dot-notation': 0,
144 'function-paren-newline': 0,
145 'linebreak-style': 0,
146 'max-len': 0,
147 'no-await-in-loop': 1, 77 'no-await-in-loop': 1,
78 'no-return-assign': 1,
148 'no-console': [ 79 'no-console': [
149 1, 80 1,
150 { 81 {
@@ -154,18 +85,16 @@ module.exports = {
154 'no-param-reassign': 1, 85 'no-param-reassign': 1,
155 'no-restricted-syntax': 0, 86 'no-restricted-syntax': 0,
156 'no-underscore-dangle': 0, 87 'no-underscore-dangle': 0,
157 'operator-linebreak': 0,
158 'prefer-destructuring': 1, 88 'prefer-destructuring': 1,
159 'object-curly-newline': 0,
160 // eslint-plugin-import 89 // eslint-plugin-import
161 'import/extensions': 0, 90 'import/extensions': 0,
162 'import/prefer-default-export': 0, 91 'import/prefer-default-export': 0,
163 'import/no-extraneous-dependencies': 0, // various false positives, re-enable at some point
164 'import/no-unresolved': 0, 92 'import/no-unresolved': 0,
93 'import/no-cycle': 1,
94 'import/no-extraneous-dependencies': 0, // various false positives, re-enable at some point
165 // eslint-plugin-react 95 // eslint-plugin-react
166 'react/forbid-prop-types': 1, 96 'react/forbid-prop-types': 1,
167 'react/destructuring-assignment': 0, 97 'react/destructuring-assignment': 0,
168 'react/jsx-curly-newline': 0,
169 'react/react-in-jsx-scope': 0, 98 'react/react-in-jsx-scope': 0,
170 'react/jsx-filename-extension': 1, 99 'react/jsx-filename-extension': 1,
171 'react/jsx-one-expression-per-line': 0, 100 'react/jsx-one-expression-per-line': 0,
@@ -178,11 +107,27 @@ module.exports = {
178 'react/sort-comp': 0, 107 'react/sort-comp': 0,
179 'react/function-component-definition': 0, 108 'react/function-component-definition': 0,
180 'react/jsx-no-useless-fragment': 0, 109 'react/jsx-no-useless-fragment': 0,
181 // eslint-plugin-jsx-a11y 110 // TODO: [TS DEBT] should remove below config once application converted to TS
111 'react/default-props-match-prop-types': 0,
112 'react/require-default-props': 0,
113 'react/button-has-type': 0,
114 'react/no-unused-prop-types': 1,
115 'react/no-deprecated': 1,
116 // eslint-plugin-jsx-a11y
182 'jsx-a11y/click-events-have-key-events': 1, 117 'jsx-a11y/click-events-have-key-events': 1,
183 'jsx-a11y/no-static-element-interactions': 1, 118 'jsx-a11y/no-static-element-interactions': 1,
184 'jsx-a11y/no-noninteractive-element-interactions': 1, 119 'jsx-a11y/no-noninteractive-element-interactions': 1,
185 // eslint-plugin-unicorn 120 'jsx-a11y/label-has-for': [
121 2,
122 {
123 components: ['Label'],
124 required: {
125 every: ['id'],
126 },
127 allowChildren: false,
128 },
129 ],
130 // eslint-plugin-unicorn
186 'unicorn/filename-case': 0, 131 'unicorn/filename-case': 0,
187 'unicorn/no-null': 0, 132 'unicorn/no-null': 0,
188 'unicorn/no-useless-undefined': 0, 133 'unicorn/no-useless-undefined': 0,
@@ -202,7 +147,5 @@ module.exports = {
202 'unicorn/consistent-destructuring': 0, 147 'unicorn/consistent-destructuring': 0,
203 // INFO: Turned off due to src/internal-server/database/factory.js 148 // INFO: Turned off due to src/internal-server/database/factory.js
204 'unicorn/no-empty-file': 0, 149 'unicorn/no-empty-file': 0,
205 // eslint-plugin-prettier
206 'prettier/prettier': 1,
207 }, 150 },
208}; 151};
diff --git a/.prettierrc.js b/.prettierrc.js
index 6a0a09497..dd8e1aa20 100644
--- a/.prettierrc.js
+++ b/.prettierrc.js
@@ -1,5 +1,4 @@
1module.exports = { 1module.exports = {
2 singleQuote: true, 2 singleQuote: true,
3 arrowParens: 'avoid', 3 arrowParens: 'avoid',
4 trailingComma: 'all',
5}; 4};
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 815aa0cfb..ac616e418 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -8,8 +8,6 @@
8 // "editor.fontFamily": "Fira Code", 8 // "editor.fontFamily": "Fira Code",
9 // "editor.fontLigatures": true, 9 // "editor.fontLigatures": true,
10 "editor.detectIndentation": false, 10 "editor.detectIndentation": false,
11 "editor.bracketPairColorization.enabled": true,
12 "editor.bracketPairColorization.independentColorPoolPerBracketType": true,
13 "editor.guides.bracketPairs": "active", 11 "editor.guides.bracketPairs": "active",
14 "editor.codeActionsOnSave": { 12 "editor.codeActionsOnSave": {
15 "source.fixAll": true, 13 "source.fixAll": true,
@@ -19,21 +17,17 @@
19 // "explorer.confirmDelete": false, 17 // "explorer.confirmDelete": false,
20 // "explorer.confirmDragAndDrop": false, 18 // "explorer.confirmDragAndDrop": false,
21 19
22 "eslint.enable": true,
23 "eslint.runtime": "node", 20 "eslint.runtime": "node",
24 "eslint.format.enable": true, 21 "eslint.format.enable": true,
25 "eslint.alwaysShowStatus": true, 22 "eslint.workingDirectories": [{ "mode": "auto" }],
26 "eslint.workingDirectories": [ { "mode": "auto" } ],
27 // "eslint.packageManager": "npm", 23 // "eslint.packageManager": "npm",
28 "eslint.validate": ["javascript","javascriptreact","typescript","typescriptreact"], 24 "eslint.validate": [
29 "editor.defaultFormatter": "dbaeumer.vscode-eslint", 25 "javascript",
30 "[javascript]": { "editor.defaultFormatter": "dbaeumer.vscode-eslint" }, 26 "javascriptreact",
31 "[javascriptreact]": { "editor.defaultFormatter": "dbaeumer.vscode-eslint" }, 27 "typescript",
32 "[typescript]": { "editor.defaultFormatter": "dbaeumer.vscode-eslint" }, 28 "typescriptreact"
33 "[typescriptreact]": { "editor.defaultFormatter": "dbaeumer.vscode-eslint" }, 29 ],
34 "[json]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, 30 "editor.defaultFormatter": "esbenp.prettier-vscode",
35 "[jsonc]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
36
37 31
38 // "workbench.colorTheme": "Visual Studio Dark", 32 // "workbench.colorTheme": "Visual Studio Dark",
39 // "workbench.iconTheme": "material-icon-theme", 33 // "workbench.iconTheme": "material-icon-theme",
@@ -42,15 +36,12 @@
42 // "terminal.integrated.copyOnSelection": true, 36 // "terminal.integrated.copyOnSelection": true,
43 "terminal.integrated.defaultProfile.osx": "zsh", 37 "terminal.integrated.defaultProfile.osx": "zsh",
44 "terminal.integrated.cursorBlinking": true, 38 "terminal.integrated.cursorBlinking": true,
45 "terminal.integrated.cursorStyle": "block",
46 "terminal.integrated.shellIntegration.enabled":true,
47 39
48 "git.mergeEditor": false,
49 "git.enableSmartCommit": true, 40 "git.enableSmartCommit": true,
50 "diffEditor.ignoreTrimWhitespace": false, 41 "diffEditor.ignoreTrimWhitespace": false,
51 42
52 // "formatFiles.runOrganizeImports": true, 43 // "formatFiles.runOrganizeImports": true,
53 44
54 "javascript.preferences.importModuleSpecifier": "relative", 45 "javascript.preferences.importModuleSpecifier": "relative",
55 "typescript.preferences.importModuleSpecifier": "relative", 46 "typescript.preferences.importModuleSpecifier": "relative"
56} 47}
diff --git a/package.json b/package.json
index 0e3b7f68d..59ab1748e 100644
--- a/package.json
+++ b/package.json
@@ -17,6 +17,10 @@
17 "pnpm": "8.6.2" 17 "pnpm": "8.6.2"
18 }, 18 },
19 "engine-strict": true, 19 "engine-strict": true,
20 "volta": {
21 "node": "18.15.0",
22 "pnpm": "8.6.2"
23 },
20 "scripts": { 24 "scripts": {
21 "prepare": "is-ci || husky install", 25 "prepare": "is-ci || husky install",
22 "start": "electron ./build", 26 "start": "electron ./build",
@@ -143,8 +147,8 @@
143 "@types/tar": "6.1.5", 147 "@types/tar": "6.1.5",
144 "@types/uuid": "9.0.2", 148 "@types/uuid": "9.0.2",
145 "@types/validator": "13.7.17", 149 "@types/validator": "13.7.17",
146 "@typescript-eslint/eslint-plugin": "5.59.11", 150 "@typescript-eslint/eslint-plugin": "6.1.0",
147 "@typescript-eslint/parser": "5.59.11", 151 "@typescript-eslint/parser": "6.1.0",
148 "all-contributors-cli": "6.26.1", 152 "all-contributors-cli": "6.26.1",
149 "chalk": "5.3.0", 153 "chalk": "5.3.0",
150 "concurrently": "8.2.0", 154 "concurrently": "8.2.0",
@@ -155,22 +159,22 @@
155 "esbuild-plugin-copy": "2.1.1", 159 "esbuild-plugin-copy": "2.1.1",
156 "esbuild-runner": "2.2.2", 160 "esbuild-runner": "2.2.2",
157 "esbuild-sass-plugin": "2.10.0", 161 "esbuild-sass-plugin": "2.10.0",
158 "eslint": "8.39.0", 162 "eslint": "8.45.0",
159 "eslint-config-airbnb": "19.0.4", 163 "eslint-config-airbnb": "19.0.4",
160 "eslint-config-airbnb-typescript": "17.1.0", 164 "eslint-config-airbnb-typescript": "17.1.0",
161 "eslint-config-prettier": "8.8.0", 165 "eslint-config-prettier": "8.8.0",
162 "eslint-plugin-import": "2.27.5", 166 "eslint-plugin-import": "2.27.5",
163 "eslint-plugin-jest": "27.2.3", 167 "eslint-plugin-jest": "27.2.3",
164 "eslint-plugin-jsx-a11y": "6.7.1", 168 "eslint-plugin-jsx-a11y": "6.7.1",
165 "eslint-plugin-prettier": "4.2.1", 169 "eslint-plugin-prettier": "5.0.0",
166 "eslint-plugin-react": "7.32.2", 170 "eslint-plugin-react": "7.33.0",
167 "eslint-plugin-react-hooks": "4.6.0", 171 "eslint-plugin-react-hooks": "4.6.0",
168 "eslint-plugin-unicorn": "46.0.0", 172 "eslint-plugin-unicorn": "48.0.0",
169 "gulp-livereload": "4.0.2", 173 "gulp-livereload": "4.0.2",
170 "husky": "8.0.3", 174 "husky": "8.0.3",
171 "is-ci": "3.0.1", 175 "is-ci": "3.0.1",
172 "jest": "29.6.1", 176 "jest": "29.6.1",
173 "prettier": "2.8.8", 177 "prettier": "3.0.0",
174 "preval-build-info": "1.0.3", 178 "preval-build-info": "1.0.3",
175 "rimraf": "5.0.1", 179 "rimraf": "5.0.1",
176 "simple-git": "3.19.1", 180 "simple-git": "3.19.1",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 87ffce72a..e7e381ee9 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -313,11 +313,11 @@ devDependencies:
313 specifier: 13.7.17 313 specifier: 13.7.17
314 version: 13.7.17 314 version: 13.7.17
315 '@typescript-eslint/eslint-plugin': 315 '@typescript-eslint/eslint-plugin':
316 specifier: 5.59.11 316 specifier: 6.1.0
317 version: 5.59.11(@typescript-eslint/parser@5.59.11)(eslint@8.39.0)(typescript@5.0.4) 317 version: 6.1.0(@typescript-eslint/parser@6.1.0)(eslint@8.45.0)(typescript@5.0.4)
318 '@typescript-eslint/parser': 318 '@typescript-eslint/parser':
319 specifier: 5.59.11 319 specifier: 6.1.0
320 version: 5.59.11(eslint@8.39.0)(typescript@5.0.4) 320 version: 6.1.0(eslint@8.45.0)(typescript@5.0.4)
321 all-contributors-cli: 321 all-contributors-cli:
322 specifier: 6.26.1 322 specifier: 6.26.1
323 version: 6.26.1 323 version: 6.26.1
@@ -349,38 +349,38 @@ devDependencies:
349 specifier: 2.10.0 349 specifier: 2.10.0
350 version: 2.10.0(esbuild@0.16.17) 350 version: 2.10.0(esbuild@0.16.17)
351 eslint: 351 eslint:
352 specifier: 8.39.0 352 specifier: 8.45.0
353 version: 8.39.0 353 version: 8.45.0
354 eslint-config-airbnb: 354 eslint-config-airbnb:
355 specifier: 19.0.4 355 specifier: 19.0.4
356 version: 19.0.4(eslint-plugin-import@2.27.5)(eslint-plugin-jsx-a11y@6.7.1)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.32.2)(eslint@8.39.0) 356 version: 19.0.4(eslint-plugin-import@2.27.5)(eslint-plugin-jsx-a11y@6.7.1)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.0)(eslint@8.45.0)
357 eslint-config-airbnb-typescript: 357 eslint-config-airbnb-typescript:
358 specifier: 17.1.0 358 specifier: 17.1.0
359 version: 17.1.0(@typescript-eslint/eslint-plugin@5.59.11)(@typescript-eslint/parser@5.59.11)(eslint-plugin-import@2.27.5)(eslint@8.39.0) 359 version: 17.1.0(@typescript-eslint/eslint-plugin@6.1.0)(@typescript-eslint/parser@6.1.0)(eslint-plugin-import@2.27.5)(eslint@8.45.0)
360 eslint-config-prettier: 360 eslint-config-prettier:
361 specifier: 8.8.0 361 specifier: 8.8.0
362 version: 8.8.0(eslint@8.39.0) 362 version: 8.8.0(eslint@8.45.0)
363 eslint-plugin-import: 363 eslint-plugin-import:
364 specifier: 2.27.5 364 specifier: 2.27.5
365 version: 2.27.5(@typescript-eslint/parser@5.59.11)(eslint@8.39.0) 365 version: 2.27.5(@typescript-eslint/parser@6.1.0)(eslint@8.45.0)
366 eslint-plugin-jest: 366 eslint-plugin-jest:
367 specifier: 27.2.3 367 specifier: 27.2.3
368 version: 27.2.3(@typescript-eslint/eslint-plugin@5.59.11)(eslint@8.39.0)(jest@29.6.1)(typescript@5.0.4) 368 version: 27.2.3(@typescript-eslint/eslint-plugin@6.1.0)(eslint@8.45.0)(jest@29.6.1)(typescript@5.0.4)
369 eslint-plugin-jsx-a11y: 369 eslint-plugin-jsx-a11y:
370 specifier: 6.7.1 370 specifier: 6.7.1
371 version: 6.7.1(eslint@8.39.0) 371 version: 6.7.1(eslint@8.45.0)
372 eslint-plugin-prettier: 372 eslint-plugin-prettier:
373 specifier: 4.2.1 373 specifier: 5.0.0
374 version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.39.0)(prettier@2.8.8) 374 version: 5.0.0(eslint-config-prettier@8.8.0)(eslint@8.45.0)(prettier@3.0.0)
375 eslint-plugin-react: 375 eslint-plugin-react:
376 specifier: 7.32.2 376 specifier: 7.33.0
377 version: 7.32.2(eslint@8.39.0) 377 version: 7.33.0(eslint@8.45.0)
378 eslint-plugin-react-hooks: 378 eslint-plugin-react-hooks:
379 specifier: 4.6.0 379 specifier: 4.6.0
380 version: 4.6.0(eslint@8.39.0) 380 version: 4.6.0(eslint@8.45.0)
381 eslint-plugin-unicorn: 381 eslint-plugin-unicorn:
382 specifier: 46.0.0 382 specifier: 48.0.0
383 version: 46.0.0(eslint@8.39.0) 383 version: 48.0.0(eslint@8.45.0)
384 gulp-livereload: 384 gulp-livereload:
385 specifier: 4.0.2 385 specifier: 4.0.2
386 version: 4.0.2 386 version: 4.0.2
@@ -394,8 +394,8 @@ devDependencies:
394 specifier: 29.6.1 394 specifier: 29.6.1
395 version: 29.6.1(@types/node@18.15.3)(ts-node@10.9.1) 395 version: 29.6.1(@types/node@18.15.3)(ts-node@10.9.1)
396 prettier: 396 prettier:
397 specifier: 2.8.8 397 specifier: 3.0.0
398 version: 2.8.8 398 version: 3.0.0
399 preval-build-info: 399 preval-build-info:
400 specifier: 1.0.3 400 specifier: 1.0.3
401 version: 1.0.3 401 version: 1.0.3
@@ -421,6 +421,11 @@ packages:
421 resolution: {integrity: sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==} 421 resolution: {integrity: sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==}
422 dev: true 422 dev: true
423 423
424 /@aashutoshrathi/word-wrap@1.2.6:
425 resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
426 engines: {node: '>=0.10.0'}
427 dev: true
428
424 /@adonisjs/ace@5.1.0: 429 /@adonisjs/ace@5.1.0:
425 resolution: {integrity: sha512-5G0E4U1nRMiE58HEtONZUqTCammEbCZS6iCvCNMgfeyZXrsmSxLe5XmD1StEFAbt1FUUkRxYl6f38xXhKxOHkg==} 430 resolution: {integrity: sha512-5G0E4U1nRMiE58HEtONZUqTCammEbCZS6iCvCNMgfeyZXrsmSxLe5XmD1StEFAbt1FUUkRxYl6f38xXhKxOHkg==}
426 dependencies: 431 dependencies:
@@ -625,11 +630,11 @@ packages:
625 '@jridgewell/trace-mapping': 0.3.18 630 '@jridgewell/trace-mapping': 0.3.18
626 dev: true 631 dev: true
627 632
628 /@babel/code-frame@7.21.4: 633 /@babel/code-frame@7.22.5:
629 resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} 634 resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==}
630 engines: {node: '>=6.9.0'} 635 engines: {node: '>=6.9.0'}
631 dependencies: 636 dependencies:
632 '@babel/highlight': 7.18.6 637 '@babel/highlight': 7.22.5
633 dev: true 638 dev: true
634 639
635 /@babel/compat-data@7.20.1: 640 /@babel/compat-data@7.20.1:
@@ -642,7 +647,7 @@ packages:
642 engines: {node: '>=6.9.0'} 647 engines: {node: '>=6.9.0'}
643 dependencies: 648 dependencies:
644 '@ampproject/remapping': 2.2.0 649 '@ampproject/remapping': 2.2.0
645 '@babel/code-frame': 7.21.4 650 '@babel/code-frame': 7.22.5
646 '@babel/generator': 7.20.5 651 '@babel/generator': 7.20.5
647 '@babel/helper-compilation-targets': 7.20.0(@babel/core@7.20.5) 652 '@babel/helper-compilation-targets': 7.20.0(@babel/core@7.20.5)
648 '@babel/helper-module-transforms': 7.20.2 653 '@babel/helper-module-transforms': 7.20.2
@@ -655,7 +660,7 @@ packages:
655 debug: 4.3.4 660 debug: 4.3.4
656 gensync: 1.0.0-beta.2 661 gensync: 1.0.0-beta.2
657 json5: 2.2.1 662 json5: 2.2.1
658 semver: 6.3.0 663 semver: 6.3.1
659 transitivePeerDependencies: 664 transitivePeerDependencies:
660 - supports-color 665 - supports-color
661 dev: true 666 dev: true
@@ -679,7 +684,7 @@ packages:
679 '@babel/core': 7.20.5 684 '@babel/core': 7.20.5
680 '@babel/helper-validator-option': 7.18.6 685 '@babel/helper-validator-option': 7.18.6
681 browserslist: 4.21.4 686 browserslist: 4.21.4
682 semver: 6.3.0 687 semver: 6.3.1
683 dev: true 688 dev: true
684 689
685 /@babel/helper-environment-visitor@7.18.9: 690 /@babel/helper-environment-visitor@7.18.9:
@@ -717,7 +722,7 @@ packages:
717 '@babel/helper-module-imports': 7.18.6 722 '@babel/helper-module-imports': 7.18.6
718 '@babel/helper-simple-access': 7.20.2 723 '@babel/helper-simple-access': 7.20.2
719 '@babel/helper-split-export-declaration': 7.18.6 724 '@babel/helper-split-export-declaration': 7.18.6
720 '@babel/helper-validator-identifier': 7.19.1 725 '@babel/helper-validator-identifier': 7.22.5
721 '@babel/template': 7.18.10 726 '@babel/template': 7.18.10
722 '@babel/traverse': 7.20.5 727 '@babel/traverse': 7.20.5
723 '@babel/types': 7.20.5 728 '@babel/types': 7.20.5
@@ -749,8 +754,8 @@ packages:
749 engines: {node: '>=6.9.0'} 754 engines: {node: '>=6.9.0'}
750 dev: true 755 dev: true
751 756
752 /@babel/helper-validator-identifier@7.19.1: 757 /@babel/helper-validator-identifier@7.22.5:
753 resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} 758 resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==}
754 engines: {node: '>=6.9.0'} 759 engines: {node: '>=6.9.0'}
755 dev: true 760 dev: true
756 761
@@ -770,11 +775,11 @@ packages:
770 - supports-color 775 - supports-color
771 dev: true 776 dev: true
772 777
773 /@babel/highlight@7.18.6: 778 /@babel/highlight@7.22.5:
774 resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} 779 resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==}
775 engines: {node: '>=6.9.0'} 780 engines: {node: '>=6.9.0'}
776 dependencies: 781 dependencies:
777 '@babel/helper-validator-identifier': 7.19.1 782 '@babel/helper-validator-identifier': 7.22.5
778 chalk: 2.4.2 783 chalk: 2.4.2
779 js-tokens: 4.0.0 784 js-tokens: 4.0.0
780 dev: true 785 dev: true
@@ -939,7 +944,7 @@ packages:
939 resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==} 944 resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==}
940 engines: {node: '>=6.9.0'} 945 engines: {node: '>=6.9.0'}
941 dependencies: 946 dependencies:
942 '@babel/code-frame': 7.21.4 947 '@babel/code-frame': 7.22.5
943 '@babel/parser': 7.20.5 948 '@babel/parser': 7.20.5
944 '@babel/types': 7.20.5 949 '@babel/types': 7.20.5
945 dev: true 950 dev: true
@@ -948,7 +953,7 @@ packages:
948 resolution: {integrity: sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==} 953 resolution: {integrity: sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==}
949 engines: {node: '>=6.9.0'} 954 engines: {node: '>=6.9.0'}
950 dependencies: 955 dependencies:
951 '@babel/code-frame': 7.21.4 956 '@babel/code-frame': 7.22.5
952 '@babel/generator': 7.20.5 957 '@babel/generator': 7.20.5
953 '@babel/helper-environment-visitor': 7.18.9 958 '@babel/helper-environment-visitor': 7.18.9
954 '@babel/helper-function-name': 7.19.0 959 '@babel/helper-function-name': 7.19.0
@@ -967,7 +972,7 @@ packages:
967 engines: {node: '>=6.9.0'} 972 engines: {node: '>=6.9.0'}
968 dependencies: 973 dependencies:
969 '@babel/helper-string-parser': 7.19.4 974 '@babel/helper-string-parser': 7.19.4
970 '@babel/helper-validator-identifier': 7.19.1 975 '@babel/helper-validator-identifier': 7.22.5
971 to-fast-properties: 2.0.0 976 to-fast-properties: 2.0.0
972 dev: true 977 dev: true
973 978
@@ -1191,7 +1196,7 @@ packages:
1191 fs-extra: 8.1.0 1196 fs-extra: 8.1.0
1192 got: 11.8.6 1197 got: 11.8.6
1193 progress: 2.0.3 1198 progress: 2.0.3
1194 semver: 6.3.0 1199 semver: 6.3.1
1195 sumchecker: 3.0.1 1200 sumchecker: 3.0.1
1196 optionalDependencies: 1201 optionalDependencies:
1197 global-agent: 3.0.0 1202 global-agent: 3.0.0
@@ -1477,29 +1482,29 @@ packages:
1477 dev: true 1482 dev: true
1478 optional: true 1483 optional: true
1479 1484
1480 /@eslint-community/eslint-utils@4.3.0(eslint@8.39.0): 1485 /@eslint-community/eslint-utils@4.4.0(eslint@8.45.0):
1481 resolution: {integrity: sha512-v3oplH6FYCULtFuCeqyuTd9D2WKO937Dxdq+GmHOLL72TTRriLxz2VLlNfkZRsvj6PKnOPAtuT6dwrs/pA5DvA==} 1486 resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
1482 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1487 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1483 peerDependencies: 1488 peerDependencies:
1484 eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 1489 eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
1485 dependencies: 1490 dependencies:
1486 eslint: 8.39.0 1491 eslint: 8.45.0
1487 eslint-visitor-keys: 3.4.1 1492 eslint-visitor-keys: 3.4.1
1488 dev: true 1493 dev: true
1489 1494
1490 /@eslint-community/regexpp@4.4.0: 1495 /@eslint-community/regexpp@4.6.0:
1491 resolution: {integrity: sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==} 1496 resolution: {integrity: sha512-uiPeRISaglZnaZk8vwrjQZ1CxogZeY/4IYft6gBOTqu1WhVXWmCmZMWxUv2Q/pxSvPdp1JPaO62kLOcOkMqWrw==}
1492 engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 1497 engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
1493 dev: true 1498 dev: true
1494 1499
1495 /@eslint/eslintrc@2.0.3: 1500 /@eslint/eslintrc@2.1.0:
1496 resolution: {integrity: sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==} 1501 resolution: {integrity: sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==}
1497 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1502 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1498 dependencies: 1503 dependencies:
1499 ajv: 6.12.6 1504 ajv: 6.12.6
1500 debug: 4.3.4 1505 debug: 4.3.4
1501 espree: 9.5.2 1506 espree: 9.6.1
1502 globals: 13.19.0 1507 globals: 13.20.0
1503 ignore: 5.2.4 1508 ignore: 5.2.4
1504 import-fresh: 3.3.0 1509 import-fresh: 3.3.0
1505 js-yaml: 4.1.0 1510 js-yaml: 4.1.0
@@ -1509,8 +1514,8 @@ packages:
1509 - supports-color 1514 - supports-color
1510 dev: true 1515 dev: true
1511 1516
1512 /@eslint/js@8.39.0: 1517 /@eslint/js@8.44.0:
1513 resolution: {integrity: sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==} 1518 resolution: {integrity: sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==}
1514 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1519 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1515 dev: true 1520 dev: true
1516 1521
@@ -1518,8 +1523,8 @@ packages:
1518 resolution: {integrity: sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g==} 1523 resolution: {integrity: sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g==}
1519 dev: false 1524 dev: false
1520 1525
1521 /@floating-ui/dom@1.4.3: 1526 /@floating-ui/dom@1.4.5:
1522 resolution: {integrity: sha512-nB/68NyaQlcdY22L+Fgd1HERQ7UGv7XFN+tPxwrEfQL4nKtAP/jIZnZtpUlXbtV+VEGHh6W/63Gy2C5biWI3sA==} 1527 resolution: {integrity: sha512-96KnRWkRnuBSSFbj0sFGwwOUd8EkiecINVl0O9wiZlZ64EkpyAOG3Xc2vKKNJmru0Z7RqWNymA+6b8OZqjgyyw==}
1523 dependencies: 1528 dependencies:
1524 '@floating-ui/core': 1.3.1 1529 '@floating-ui/core': 1.3.1
1525 dev: false 1530 dev: false
@@ -1616,8 +1621,8 @@ packages:
1616 '@hapi/hoek': 9.3.0 1621 '@hapi/hoek': 9.3.0
1617 dev: true 1622 dev: true
1618 1623
1619 /@humanwhocodes/config-array@0.11.8: 1624 /@humanwhocodes/config-array@0.11.10:
1620 resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} 1625 resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==}
1621 engines: {node: '>=10.10.0'} 1626 engines: {node: '>=10.10.0'}
1622 dependencies: 1627 dependencies:
1623 '@humanwhocodes/object-schema': 1.2.1 1628 '@humanwhocodes/object-schema': 1.2.1
@@ -1650,7 +1655,7 @@ packages:
1650 dependencies: 1655 dependencies:
1651 string-width: 5.1.2 1656 string-width: 5.1.2
1652 string-width-cjs: /string-width@4.2.3 1657 string-width-cjs: /string-width@4.2.3
1653 strip-ansi: 7.0.1 1658 strip-ansi: 7.1.0
1654 strip-ansi-cjs: /strip-ansi@6.0.1 1659 strip-ansi-cjs: /strip-ansi@6.0.1
1655 wrap-ansi: 8.1.0 1660 wrap-ansi: 8.1.0
1656 wrap-ansi-cjs: /wrap-ansi@7.0.0 1661 wrap-ansi-cjs: /wrap-ansi@7.0.0
@@ -2208,6 +2213,18 @@ packages:
2208 dev: true 2213 dev: true
2209 optional: true 2214 optional: true
2210 2215
2216 /@pkgr/utils@2.4.2:
2217 resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==}
2218 engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
2219 dependencies:
2220 cross-spawn: 7.0.3
2221 fast-glob: 3.3.1
2222 is-glob: 4.0.3
2223 open: 9.1.0
2224 picocolors: 1.0.0
2225 tslib: 2.6.0
2226 dev: true
2227
2211 /@remix-run/router@1.6.2: 2228 /@remix-run/router@1.6.2:
2212 resolution: {integrity: sha512-LzqpSrMK/3JBAVBI9u3NWtOhWNw5AMQfrUFYB0+bDHTSw17z++WJLsPsxAuK+oSddsxk4d7F/JcdDPM1M5YAhA==} 2229 resolution: {integrity: sha512-LzqpSrMK/3JBAVBI9u3NWtOhWNw5AMQfrUFYB0+bDHTSw17z++WJLsPsxAuK+oSddsxk4d7F/JcdDPM1M5YAhA==}
2213 engines: {node: '>=14'} 2230 engines: {node: '>=14'}
@@ -2482,8 +2499,8 @@ packages:
2482 pretty-format: 29.5.0 2499 pretty-format: 29.5.0
2483 dev: true 2500 dev: true
2484 2501
2485 /@types/json-schema@7.0.11: 2502 /@types/json-schema@7.0.12:
2486 resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} 2503 resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==}
2487 dev: true 2504 dev: true
2488 2505
2489 /@types/json5@0.0.29: 2506 /@types/json5@0.0.29:
@@ -2569,6 +2586,11 @@ packages:
2569 2586
2570 /@types/semver@7.3.13: 2587 /@types/semver@7.3.13:
2571 resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} 2588 resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==}
2589 dev: false
2590
2591 /@types/semver@7.5.0:
2592 resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==}
2593 dev: true
2572 2594
2573 /@types/stack-trace@0.0.29: 2595 /@types/stack-trace@0.0.29:
2574 resolution: {integrity: sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g==} 2596 resolution: {integrity: sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g==}
@@ -2616,49 +2638,52 @@ packages:
2616 '@types/node': 18.15.3 2638 '@types/node': 18.15.3
2617 optional: true 2639 optional: true
2618 2640
2619 /@typescript-eslint/eslint-plugin@5.59.11(@typescript-eslint/parser@5.59.11)(eslint@8.39.0)(typescript@5.0.4): 2641 /@typescript-eslint/eslint-plugin@6.1.0(@typescript-eslint/parser@6.1.0)(eslint@8.45.0)(typescript@5.0.4):
2620 resolution: {integrity: sha512-XxuOfTkCUiOSyBWIvHlUraLw/JT/6Io1365RO6ZuI88STKMavJZPNMU0lFcUTeQXEhHiv64CbxYxBNoDVSmghg==} 2642 resolution: {integrity: sha512-qg7Bm5TyP/I7iilGyp6DRqqkt8na00lI6HbjWZObgk3FFSzH5ypRwAHXJhJkwiRtTcfn+xYQIMOR5kJgpo6upw==}
2621 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2643 engines: {node: ^16.0.0 || >=18.0.0}
2622 peerDependencies: 2644 peerDependencies:
2623 '@typescript-eslint/parser': ^5.0.0 2645 '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
2624 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 2646 eslint: ^7.0.0 || ^8.0.0
2625 typescript: '*' 2647 typescript: '*'
2626 peerDependenciesMeta: 2648 peerDependenciesMeta:
2627 typescript: 2649 typescript:
2628 optional: true 2650 optional: true
2629 dependencies: 2651 dependencies:
2630 '@eslint-community/regexpp': 4.4.0 2652 '@eslint-community/regexpp': 4.6.0
2631 '@typescript-eslint/parser': 5.59.11(eslint@8.39.0)(typescript@5.0.4) 2653 '@typescript-eslint/parser': 6.1.0(eslint@8.45.0)(typescript@5.0.4)
2632 '@typescript-eslint/scope-manager': 5.59.11 2654 '@typescript-eslint/scope-manager': 6.1.0
2633 '@typescript-eslint/type-utils': 5.59.11(eslint@8.39.0)(typescript@5.0.4) 2655 '@typescript-eslint/type-utils': 6.1.0(eslint@8.45.0)(typescript@5.0.4)
2634 '@typescript-eslint/utils': 5.59.11(eslint@8.39.0)(typescript@5.0.4) 2656 '@typescript-eslint/utils': 6.1.0(eslint@8.45.0)(typescript@5.0.4)
2657 '@typescript-eslint/visitor-keys': 6.1.0
2635 debug: 4.3.4 2658 debug: 4.3.4
2636 eslint: 8.39.0 2659 eslint: 8.45.0
2637 grapheme-splitter: 1.0.4 2660 graphemer: 1.4.0
2638 ignore: 5.2.4 2661 ignore: 5.2.4
2662 natural-compare: 1.4.0
2639 natural-compare-lite: 1.4.0 2663 natural-compare-lite: 1.4.0
2640 semver: 7.5.4 2664 semver: 7.5.4
2641 tsutils: 3.21.0(typescript@5.0.4) 2665 ts-api-utils: 1.0.1(typescript@5.0.4)
2642 typescript: 5.0.4 2666 typescript: 5.0.4
2643 transitivePeerDependencies: 2667 transitivePeerDependencies:
2644 - supports-color 2668 - supports-color
2645 dev: true 2669 dev: true
2646 2670
2647 /@typescript-eslint/parser@5.59.11(eslint@8.39.0)(typescript@5.0.4): 2671 /@typescript-eslint/parser@6.1.0(eslint@8.45.0)(typescript@5.0.4):
2648 resolution: {integrity: sha512-s9ZF3M+Nym6CAZEkJJeO2TFHHDsKAM3ecNkLuH4i4s8/RCPnF5JRip2GyviYkeEAcwGMJxkqG9h2dAsnA1nZpA==} 2672 resolution: {integrity: sha512-hIzCPvX4vDs4qL07SYzyomamcs2/tQYXg5DtdAfj35AyJ5PIUqhsLf4YrEIFzZcND7R2E8tpQIZKayxg8/6Wbw==}
2649 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2673 engines: {node: ^16.0.0 || >=18.0.0}
2650 peerDependencies: 2674 peerDependencies:
2651 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 2675 eslint: ^7.0.0 || ^8.0.0
2652 typescript: '*' 2676 typescript: '*'
2653 peerDependenciesMeta: 2677 peerDependenciesMeta:
2654 typescript: 2678 typescript:
2655 optional: true 2679 optional: true
2656 dependencies: 2680 dependencies:
2657 '@typescript-eslint/scope-manager': 5.59.11 2681 '@typescript-eslint/scope-manager': 6.1.0
2658 '@typescript-eslint/types': 5.59.11 2682 '@typescript-eslint/types': 6.1.0
2659 '@typescript-eslint/typescript-estree': 5.59.11(typescript@5.0.4) 2683 '@typescript-eslint/typescript-estree': 6.1.0(typescript@5.0.4)
2684 '@typescript-eslint/visitor-keys': 6.1.0
2660 debug: 4.3.4 2685 debug: 4.3.4
2661 eslint: 8.39.0 2686 eslint: 8.45.0
2662 typescript: 5.0.4 2687 typescript: 5.0.4
2663 transitivePeerDependencies: 2688 transitivePeerDependencies:
2664 - supports-color 2689 - supports-color
@@ -2672,21 +2697,29 @@ packages:
2672 '@typescript-eslint/visitor-keys': 5.59.11 2697 '@typescript-eslint/visitor-keys': 5.59.11
2673 dev: true 2698 dev: true
2674 2699
2675 /@typescript-eslint/type-utils@5.59.11(eslint@8.39.0)(typescript@5.0.4): 2700 /@typescript-eslint/scope-manager@6.1.0:
2676 resolution: {integrity: sha512-LZqVY8hMiVRF2a7/swmkStMYSoXMFlzL6sXV6U/2gL5cwnLWQgLEG8tjWPpaE4rMIdZ6VKWwcffPlo1jPfk43g==} 2701 resolution: {integrity: sha512-AxjgxDn27hgPpe2rQe19k0tXw84YCOsjDJ2r61cIebq1t+AIxbgiXKvD4999Wk49GVaAcdJ/d49FYel+Pp3jjw==}
2677 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2702 engines: {node: ^16.0.0 || >=18.0.0}
2703 dependencies:
2704 '@typescript-eslint/types': 6.1.0
2705 '@typescript-eslint/visitor-keys': 6.1.0
2706 dev: true
2707
2708 /@typescript-eslint/type-utils@6.1.0(eslint@8.45.0)(typescript@5.0.4):
2709 resolution: {integrity: sha512-kFXBx6QWS1ZZ5Ni89TyT1X9Ag6RXVIVhqDs0vZE/jUeWlBv/ixq2diua6G7ece6+fXw3TvNRxP77/5mOMusx2w==}
2710 engines: {node: ^16.0.0 || >=18.0.0}
2678 peerDependencies: 2711 peerDependencies:
2679 eslint: '*' 2712 eslint: ^7.0.0 || ^8.0.0
2680 typescript: '*' 2713 typescript: '*'
2681 peerDependenciesMeta: 2714 peerDependenciesMeta:
2682 typescript: 2715 typescript:
2683 optional: true 2716 optional: true
2684 dependencies: 2717 dependencies:
2685 '@typescript-eslint/typescript-estree': 5.59.11(typescript@5.0.4) 2718 '@typescript-eslint/typescript-estree': 6.1.0(typescript@5.0.4)
2686 '@typescript-eslint/utils': 5.59.11(eslint@8.39.0)(typescript@5.0.4) 2719 '@typescript-eslint/utils': 6.1.0(eslint@8.45.0)(typescript@5.0.4)
2687 debug: 4.3.4 2720 debug: 4.3.4
2688 eslint: 8.39.0 2721 eslint: 8.45.0
2689 tsutils: 3.21.0(typescript@5.0.4) 2722 ts-api-utils: 1.0.1(typescript@5.0.4)
2690 typescript: 5.0.4 2723 typescript: 5.0.4
2691 transitivePeerDependencies: 2724 transitivePeerDependencies:
2692 - supports-color 2725 - supports-color
@@ -2697,6 +2730,11 @@ packages:
2697 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2730 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
2698 dev: true 2731 dev: true
2699 2732
2733 /@typescript-eslint/types@6.1.0:
2734 resolution: {integrity: sha512-+Gfd5NHCpDoHDOaU/yIF3WWRI2PcBRKKpP91ZcVbL0t5tQpqYWBs3z/GGhvU+EV1D0262g9XCnyqQh19prU0JQ==}
2735 engines: {node: ^16.0.0 || >=18.0.0}
2736 dev: true
2737
2700 /@typescript-eslint/typescript-estree@5.59.11(typescript@5.0.4): 2738 /@typescript-eslint/typescript-estree@5.59.11(typescript@5.0.4):
2701 resolution: {integrity: sha512-YupOpot5hJO0maupJXixi6l5ETdrITxeo5eBOeuV7RSKgYdU3G5cxO49/9WRnJq9EMrB7AuTSLH/bqOsXi7wPA==} 2739 resolution: {integrity: sha512-YupOpot5hJO0maupJXixi6l5ETdrITxeo5eBOeuV7RSKgYdU3G5cxO49/9WRnJq9EMrB7AuTSLH/bqOsXi7wPA==}
2702 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2740 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -2718,19 +2756,40 @@ packages:
2718 - supports-color 2756 - supports-color
2719 dev: true 2757 dev: true
2720 2758
2721 /@typescript-eslint/utils@5.59.11(eslint@8.39.0)(typescript@5.0.4): 2759 /@typescript-eslint/typescript-estree@6.1.0(typescript@5.0.4):
2760 resolution: {integrity: sha512-nUKAPWOaP/tQjU1IQw9sOPCDavs/iU5iYLiY/6u7gxS7oKQoi4aUxXS1nrrVGTyBBaGesjkcwwHkbkiD5eBvcg==}
2761 engines: {node: ^16.0.0 || >=18.0.0}
2762 peerDependencies:
2763 typescript: '*'
2764 peerDependenciesMeta:
2765 typescript:
2766 optional: true
2767 dependencies:
2768 '@typescript-eslint/types': 6.1.0
2769 '@typescript-eslint/visitor-keys': 6.1.0
2770 debug: 4.3.4
2771 globby: 11.1.0
2772 is-glob: 4.0.3
2773 semver: 7.5.4
2774 ts-api-utils: 1.0.1(typescript@5.0.4)
2775 typescript: 5.0.4
2776 transitivePeerDependencies:
2777 - supports-color
2778 dev: true
2779
2780 /@typescript-eslint/utils@5.59.11(eslint@8.45.0)(typescript@5.0.4):
2722 resolution: {integrity: sha512-didu2rHSOMUdJThLk4aZ1Or8IcO3HzCw/ZvEjTTIfjIrcdd5cvSIwwDy2AOlE7htSNp7QIZ10fLMyRCveesMLg==} 2781 resolution: {integrity: sha512-didu2rHSOMUdJThLk4aZ1Or8IcO3HzCw/ZvEjTTIfjIrcdd5cvSIwwDy2AOlE7htSNp7QIZ10fLMyRCveesMLg==}
2723 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2782 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
2724 peerDependencies: 2783 peerDependencies:
2725 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 2784 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
2726 dependencies: 2785 dependencies:
2727 '@eslint-community/eslint-utils': 4.3.0(eslint@8.39.0) 2786 '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0)
2728 '@types/json-schema': 7.0.11 2787 '@types/json-schema': 7.0.12
2729 '@types/semver': 7.3.13 2788 '@types/semver': 7.5.0
2730 '@typescript-eslint/scope-manager': 5.59.11 2789 '@typescript-eslint/scope-manager': 5.59.11
2731 '@typescript-eslint/types': 5.59.11 2790 '@typescript-eslint/types': 5.59.11
2732 '@typescript-eslint/typescript-estree': 5.59.11(typescript@5.0.4) 2791 '@typescript-eslint/typescript-estree': 5.59.11(typescript@5.0.4)
2733 eslint: 8.39.0 2792 eslint: 8.45.0
2734 eslint-scope: 5.1.1 2793 eslint-scope: 5.1.1
2735 semver: 7.5.4 2794 semver: 7.5.4
2736 transitivePeerDependencies: 2795 transitivePeerDependencies:
@@ -2738,6 +2797,25 @@ packages:
2738 - typescript 2797 - typescript
2739 dev: true 2798 dev: true
2740 2799
2800 /@typescript-eslint/utils@6.1.0(eslint@8.45.0)(typescript@5.0.4):
2801 resolution: {integrity: sha512-wp652EogZlKmQoMS5hAvWqRKplXvkuOnNzZSE0PVvsKjpexd/XznRVHAtrfHFYmqaJz0DFkjlDsGYC9OXw+OhQ==}
2802 engines: {node: ^16.0.0 || >=18.0.0}
2803 peerDependencies:
2804 eslint: ^7.0.0 || ^8.0.0
2805 dependencies:
2806 '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0)
2807 '@types/json-schema': 7.0.12
2808 '@types/semver': 7.5.0
2809 '@typescript-eslint/scope-manager': 6.1.0
2810 '@typescript-eslint/types': 6.1.0
2811 '@typescript-eslint/typescript-estree': 6.1.0(typescript@5.0.4)
2812 eslint: 8.45.0
2813 semver: 7.5.4
2814 transitivePeerDependencies:
2815 - supports-color
2816 - typescript
2817 dev: true
2818
2741 /@typescript-eslint/visitor-keys@5.59.11: 2819 /@typescript-eslint/visitor-keys@5.59.11:
2742 resolution: {integrity: sha512-KGYniTGG3AMTuKF9QBD7EIrvufkB6O6uX3knP73xbKLMpH+QRPcgnCxjWXSHjMRuOxFLovljqQgQpR0c7GvjoA==} 2820 resolution: {integrity: sha512-KGYniTGG3AMTuKF9QBD7EIrvufkB6O6uX3knP73xbKLMpH+QRPcgnCxjWXSHjMRuOxFLovljqQgQpR0c7GvjoA==}
2743 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2821 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -2746,6 +2824,14 @@ packages:
2746 eslint-visitor-keys: 3.4.1 2824 eslint-visitor-keys: 3.4.1
2747 dev: true 2825 dev: true
2748 2826
2827 /@typescript-eslint/visitor-keys@6.1.0:
2828 resolution: {integrity: sha512-yQeh+EXhquh119Eis4k0kYhj9vmFzNpbhM3LftWQVwqVjipCkwHBQOZutcYW+JVkjtTG9k8nrZU1UoNedPDd1A==}
2829 engines: {node: ^16.0.0 || >=18.0.0}
2830 dependencies:
2831 '@typescript-eslint/types': 6.1.0
2832 eslint-visitor-keys: 3.4.1
2833 dev: true
2834
2749 /@xmldom/xmldom@0.8.10: 2835 /@xmldom/xmldom@0.8.10:
2750 resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} 2836 resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==}
2751 engines: {node: '>=10.0.0'} 2837 engines: {node: '>=10.0.0'}
@@ -2772,12 +2858,12 @@ packages:
2772 negotiator: 0.6.3 2858 negotiator: 0.6.3
2773 dev: false 2859 dev: false
2774 2860
2775 /acorn-jsx@5.3.2(acorn@8.8.2): 2861 /acorn-jsx@5.3.2(acorn@8.10.0):
2776 resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 2862 resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
2777 peerDependencies: 2863 peerDependencies:
2778 acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 2864 acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
2779 dependencies: 2865 dependencies:
2780 acorn: 8.8.2 2866 acorn: 8.10.0
2781 dev: true 2867 dev: true
2782 2868
2783 /acorn-node@1.8.2: 2869 /acorn-node@1.8.2:
@@ -2804,8 +2890,8 @@ packages:
2804 hasBin: true 2890 hasBin: true
2805 dev: false 2891 dev: false
2806 2892
2807 /acorn@8.8.2: 2893 /acorn@8.10.0:
2808 resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} 2894 resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==}
2809 engines: {node: '>=0.4.0'} 2895 engines: {node: '>=0.4.0'}
2810 hasBin: true 2896 hasBin: true
2811 dev: true 2897 dev: true
@@ -3203,7 +3289,7 @@ packages:
3203 isbinaryfile: 5.0.0 3289 isbinaryfile: 5.0.0
3204 js-yaml: 4.1.0 3290 js-yaml: 4.1.0
3205 lazy-val: 1.0.5 3291 lazy-val: 1.0.5
3206 minimatch: 5.1.2 3292 minimatch: 5.1.6
3207 read-config-file: 6.3.2 3293 read-config-file: 6.3.2
3208 sanitize-filename: 1.6.3 3294 sanitize-filename: 1.6.3
3209 semver: 7.5.4 3295 semver: 7.5.4
@@ -3282,6 +3368,13 @@ packages:
3282 engines: {node: '>=0.10.0'} 3368 engines: {node: '>=0.10.0'}
3283 dev: false 3369 dev: false
3284 3370
3371 /array-buffer-byte-length@1.0.0:
3372 resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==}
3373 dependencies:
3374 call-bind: 1.0.2
3375 is-array-buffer: 3.0.2
3376 dev: true
3377
3285 /array-each@1.0.1: 3378 /array-each@1.0.1:
3286 resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==} 3379 resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==}
3287 engines: {node: '>=0.10.0'} 3380 engines: {node: '>=0.10.0'}
@@ -3297,8 +3390,8 @@ packages:
3297 dependencies: 3390 dependencies:
3298 call-bind: 1.0.2 3391 call-bind: 1.0.2
3299 define-properties: 1.2.0 3392 define-properties: 1.2.0
3300 es-abstract: 1.20.4 3393 es-abstract: 1.22.1
3301 get-intrinsic: 1.2.0 3394 get-intrinsic: 1.2.1
3302 is-string: 1.0.7 3395 is-string: 1.0.7
3303 dev: true 3396 dev: true
3304 3397
@@ -3322,8 +3415,8 @@ packages:
3322 engines: {node: '>= 0.4'} 3415 engines: {node: '>= 0.4'}
3323 dependencies: 3416 dependencies:
3324 call-bind: 1.0.2 3417 call-bind: 1.0.2
3325 define-properties: 1.1.4 3418 define-properties: 1.2.0
3326 es-abstract: 1.20.4 3419 es-abstract: 1.22.1
3327 es-shim-unscopables: 1.0.0 3420 es-shim-unscopables: 1.0.0
3328 dev: true 3421 dev: true
3329 3422
@@ -3333,7 +3426,7 @@ packages:
3333 dependencies: 3426 dependencies:
3334 call-bind: 1.0.2 3427 call-bind: 1.0.2
3335 define-properties: 1.2.0 3428 define-properties: 1.2.0
3336 es-abstract: 1.20.4 3429 es-abstract: 1.22.1
3337 es-shim-unscopables: 1.0.0 3430 es-shim-unscopables: 1.0.0
3338 dev: true 3431 dev: true
3339 3432
@@ -3342,9 +3435,21 @@ packages:
3342 dependencies: 3435 dependencies:
3343 call-bind: 1.0.2 3436 call-bind: 1.0.2
3344 define-properties: 1.2.0 3437 define-properties: 1.2.0
3345 es-abstract: 1.20.4 3438 es-abstract: 1.22.1
3346 es-shim-unscopables: 1.0.0 3439 es-shim-unscopables: 1.0.0
3347 get-intrinsic: 1.2.0 3440 get-intrinsic: 1.2.1
3441 dev: true
3442
3443 /arraybuffer.prototype.slice@1.0.1:
3444 resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==}
3445 engines: {node: '>= 0.4'}
3446 dependencies:
3447 array-buffer-byte-length: 1.0.0
3448 call-bind: 1.0.2
3449 define-properties: 1.2.0
3450 get-intrinsic: 1.2.1
3451 is-array-buffer: 3.0.2
3452 is-shared-array-buffer: 1.0.2
3348 dev: true 3453 dev: true
3349 3454
3350 /arrify@1.0.1: 3455 /arrify@1.0.1:
@@ -3561,6 +3666,11 @@ packages:
3561 resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} 3666 resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==}
3562 dev: false 3667 dev: false
3563 3668
3669 /big-integer@1.6.51:
3670 resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==}
3671 engines: {node: '>=0.6'}
3672 dev: true
3673
3564 /binary-extensions@2.2.0: 3674 /binary-extensions@2.2.0:
3565 resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 3675 resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
3566 engines: {node: '>=8'} 3676 engines: {node: '>=8'}
@@ -3611,6 +3721,13 @@ packages:
3611 resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} 3721 resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==}
3612 optional: true 3722 optional: true
3613 3723
3724 /bplist-parser@0.2.0:
3725 resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==}
3726 engines: {node: '>= 5.10.0'}
3727 dependencies:
3728 big-integer: 1.6.51
3729 dev: true
3730
3614 /brace-expansion@1.1.11: 3731 /brace-expansion@1.1.11:
3615 resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 3732 resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
3616 dependencies: 3733 dependencies:
@@ -3762,6 +3879,13 @@ packages:
3762 engines: {node: '>=6'} 3879 engines: {node: '>=6'}
3763 dev: true 3880 dev: true
3764 3881
3882 /bundle-name@3.0.0:
3883 resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==}
3884 engines: {node: '>=12'}
3885 dependencies:
3886 run-applescript: 5.0.0
3887 dev: true
3888
3765 /bytes@1.0.0: 3889 /bytes@1.0.0:
3766 resolution: {integrity: sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==} 3890 resolution: {integrity: sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==}
3767 dev: true 3891 dev: true
@@ -3859,7 +3983,7 @@ packages:
3859 resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 3983 resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
3860 dependencies: 3984 dependencies:
3861 function-bind: 1.1.1 3985 function-bind: 1.1.1
3862 get-intrinsic: 1.2.0 3986 get-intrinsic: 1.2.1
3863 3987
3864 /caller-path@0.1.0: 3988 /caller-path@0.1.0:
3865 resolution: {integrity: sha512-UJiE1otjXPF5/x+T3zTnSFiTOEmJoGTD9HmBoxnCUwho61a2eSNn/VwtwuIBDAo2SEOv1AJ7ARI5gCmohFLu/g==} 3989 resolution: {integrity: sha512-UJiE1otjXPF5/x+T3zTnSFiTOEmJoGTD9HmBoxnCUwho61a2eSNn/VwtwuIBDAo2SEOv1AJ7ARI5gCmohFLu/g==}
@@ -4430,7 +4554,7 @@ packages:
4430 dependencies: 4554 dependencies:
4431 nice-try: 1.0.5 4555 nice-try: 1.0.5
4432 path-key: 2.0.1 4556 path-key: 2.0.1
4433 semver: 5.7.1 4557 semver: 5.7.2
4434 shebang-command: 1.2.0 4558 shebang-command: 1.2.0
4435 which: 1.3.1 4559 which: 1.3.1
4436 dev: false 4560 dev: false
@@ -4646,9 +4770,9 @@ packages:
4646 dependencies: 4770 dependencies:
4647 call-bind: 1.0.2 4771 call-bind: 1.0.2
4648 es-get-iterator: 1.1.2 4772 es-get-iterator: 1.1.2
4649 get-intrinsic: 1.2.0 4773 get-intrinsic: 1.2.1
4650 is-arguments: 1.1.1 4774 is-arguments: 1.1.1
4651 is-array-buffer: 3.0.1 4775 is-array-buffer: 3.0.2
4652 is-date-object: 1.0.5 4776 is-date-object: 1.0.5
4653 is-regex: 1.1.4 4777 is-regex: 1.1.4
4654 is-shared-array-buffer: 1.0.2 4778 is-shared-array-buffer: 1.0.2
@@ -4656,11 +4780,11 @@ packages:
4656 object-is: 1.1.5 4780 object-is: 1.1.5
4657 object-keys: 1.1.1 4781 object-keys: 1.1.1
4658 object.assign: 4.1.4 4782 object.assign: 4.1.4
4659 regexp.prototype.flags: 1.4.3 4783 regexp.prototype.flags: 1.5.0
4660 side-channel: 1.0.4 4784 side-channel: 1.0.4
4661 which-boxed-primitive: 1.0.2 4785 which-boxed-primitive: 1.0.2
4662 which-collection: 1.0.1 4786 which-collection: 1.0.1
4663 which-typed-array: 1.1.9 4787 which-typed-array: 1.1.11
4664 dev: true 4788 dev: true
4665 4789
4666 /deep-is@0.1.4: 4790 /deep-is@0.1.4:
@@ -4671,6 +4795,24 @@ packages:
4671 resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} 4795 resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==}
4672 engines: {node: '>=0.10.0'} 4796 engines: {node: '>=0.10.0'}
4673 4797
4798 /default-browser-id@3.0.0:
4799 resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==}
4800 engines: {node: '>=12'}
4801 dependencies:
4802 bplist-parser: 0.2.0
4803 untildify: 4.0.0
4804 dev: true
4805
4806 /default-browser@4.0.0:
4807 resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==}
4808 engines: {node: '>=14.16'}
4809 dependencies:
4810 bundle-name: 3.0.0
4811 default-browser-id: 3.0.0
4812 execa: 7.1.1
4813 titleize: 3.0.0
4814 dev: true
4815
4674 /defaults@1.0.4: 4816 /defaults@1.0.4:
4675 resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} 4817 resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
4676 dependencies: 4818 dependencies:
@@ -4681,12 +4823,9 @@ packages:
4681 resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} 4823 resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
4682 engines: {node: '>=10'} 4824 engines: {node: '>=10'}
4683 4825
4684 /define-properties@1.1.4: 4826 /define-lazy-prop@3.0.0:
4685 resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} 4827 resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
4686 engines: {node: '>= 0.4'} 4828 engines: {node: '>=12'}
4687 dependencies:
4688 has-property-descriptors: 1.0.0
4689 object-keys: 1.1.1
4690 dev: true 4829 dev: true
4691 4830
4692 /define-properties@1.2.0: 4831 /define-properties@1.2.0:
@@ -5093,41 +5232,56 @@ packages:
5093 string-template: 0.2.1 5232 string-template: 0.2.1
5094 dev: true 5233 dev: true
5095 5234
5096 /es-abstract@1.20.4: 5235 /es-abstract@1.22.1:
5097 resolution: {integrity: sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==} 5236 resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==}
5098 engines: {node: '>= 0.4'} 5237 engines: {node: '>= 0.4'}
5099 dependencies: 5238 dependencies:
5239 array-buffer-byte-length: 1.0.0
5240 arraybuffer.prototype.slice: 1.0.1
5241 available-typed-arrays: 1.0.5
5100 call-bind: 1.0.2 5242 call-bind: 1.0.2
5243 es-set-tostringtag: 2.0.1
5101 es-to-primitive: 1.2.1 5244 es-to-primitive: 1.2.1
5102 function-bind: 1.1.1
5103 function.prototype.name: 1.1.5 5245 function.prototype.name: 1.1.5
5104 get-intrinsic: 1.2.0 5246 get-intrinsic: 1.2.1
5105 get-symbol-description: 1.0.0 5247 get-symbol-description: 1.0.0
5248 globalthis: 1.0.3
5249 gopd: 1.0.1
5106 has: 1.0.3 5250 has: 1.0.3
5107 has-property-descriptors: 1.0.0 5251 has-property-descriptors: 1.0.0
5252 has-proto: 1.0.1
5108 has-symbols: 1.0.3 5253 has-symbols: 1.0.3
5109 internal-slot: 1.0.3 5254 internal-slot: 1.0.5
5255 is-array-buffer: 3.0.2
5110 is-callable: 1.2.7 5256 is-callable: 1.2.7
5111 is-negative-zero: 2.0.2 5257 is-negative-zero: 2.0.2
5112 is-regex: 1.1.4 5258 is-regex: 1.1.4
5113 is-shared-array-buffer: 1.0.2 5259 is-shared-array-buffer: 1.0.2
5114 is-string: 1.0.7 5260 is-string: 1.0.7
5261 is-typed-array: 1.1.12
5115 is-weakref: 1.0.2 5262 is-weakref: 1.0.2
5116 object-inspect: 1.12.2 5263 object-inspect: 1.12.3
5117 object-keys: 1.1.1 5264 object-keys: 1.1.1
5118 object.assign: 4.1.4 5265 object.assign: 4.1.4
5119 regexp.prototype.flags: 1.4.3 5266 regexp.prototype.flags: 1.5.0
5267 safe-array-concat: 1.0.0
5120 safe-regex-test: 1.0.0 5268 safe-regex-test: 1.0.0
5269 string.prototype.trim: 1.2.7
5121 string.prototype.trimend: 1.0.6 5270 string.prototype.trimend: 1.0.6
5122 string.prototype.trimstart: 1.0.6 5271 string.prototype.trimstart: 1.0.6
5272 typed-array-buffer: 1.0.0
5273 typed-array-byte-length: 1.0.0
5274 typed-array-byte-offset: 1.0.0
5275 typed-array-length: 1.0.4
5123 unbox-primitive: 1.0.2 5276 unbox-primitive: 1.0.2
5277 which-typed-array: 1.1.11
5124 dev: true 5278 dev: true
5125 5279
5126 /es-get-iterator@1.1.2: 5280 /es-get-iterator@1.1.2:
5127 resolution: {integrity: sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==} 5281 resolution: {integrity: sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==}
5128 dependencies: 5282 dependencies:
5129 call-bind: 1.0.2 5283 call-bind: 1.0.2
5130 get-intrinsic: 1.2.0 5284 get-intrinsic: 1.2.1
5131 has-symbols: 1.0.3 5285 has-symbols: 1.0.3
5132 is-arguments: 1.1.1 5286 is-arguments: 1.1.1
5133 is-map: 2.0.2 5287 is-map: 2.0.2
@@ -5136,6 +5290,15 @@ packages:
5136 isarray: 2.0.5 5290 isarray: 2.0.5
5137 dev: true 5291 dev: true
5138 5292
5293 /es-set-tostringtag@2.0.1:
5294 resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==}
5295 engines: {node: '>= 0.4'}
5296 dependencies:
5297 get-intrinsic: 1.2.1
5298 has: 1.0.3
5299 has-tostringtag: 1.0.0
5300 dev: true
5301
5139 /es-shim-unscopables@1.0.0: 5302 /es-shim-unscopables@1.0.0:
5140 resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} 5303 resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==}
5141 dependencies: 5304 dependencies:
@@ -5280,7 +5443,7 @@ packages:
5280 resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 5443 resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
5281 engines: {node: '>=10'} 5444 engines: {node: '>=10'}
5282 5445
5283 /eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.27.5)(eslint@8.39.0): 5446 /eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.27.5)(eslint@8.45.0):
5284 resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} 5447 resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==}
5285 engines: {node: ^10.12.0 || >=12.0.0} 5448 engines: {node: ^10.12.0 || >=12.0.0}
5286 peerDependencies: 5449 peerDependencies:
@@ -5288,14 +5451,14 @@ packages:
5288 eslint-plugin-import: ^2.25.2 5451 eslint-plugin-import: ^2.25.2
5289 dependencies: 5452 dependencies:
5290 confusing-browser-globals: 1.0.11 5453 confusing-browser-globals: 1.0.11
5291 eslint: 8.39.0 5454 eslint: 8.45.0
5292 eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.11)(eslint@8.39.0) 5455 eslint-plugin-import: 2.27.5(@typescript-eslint/parser@6.1.0)(eslint@8.45.0)
5293 object.assign: 4.1.4 5456 object.assign: 4.1.4
5294 object.entries: 1.1.6 5457 object.entries: 1.1.6
5295 semver: 6.3.0 5458 semver: 6.3.1
5296 dev: true 5459 dev: true
5297 5460
5298 /eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@5.59.11)(@typescript-eslint/parser@5.59.11)(eslint-plugin-import@2.27.5)(eslint@8.39.0): 5461 /eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@6.1.0)(@typescript-eslint/parser@6.1.0)(eslint-plugin-import@2.27.5)(eslint@8.45.0):
5299 resolution: {integrity: sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig==} 5462 resolution: {integrity: sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig==}
5300 peerDependencies: 5463 peerDependencies:
5301 '@typescript-eslint/eslint-plugin': ^5.13.0 || ^6.0.0 5464 '@typescript-eslint/eslint-plugin': ^5.13.0 || ^6.0.0
@@ -5303,14 +5466,14 @@ packages:
5303 eslint: ^7.32.0 || ^8.2.0 5466 eslint: ^7.32.0 || ^8.2.0
5304 eslint-plugin-import: ^2.25.3 5467 eslint-plugin-import: ^2.25.3
5305 dependencies: 5468 dependencies:
5306 '@typescript-eslint/eslint-plugin': 5.59.11(@typescript-eslint/parser@5.59.11)(eslint@8.39.0)(typescript@5.0.4) 5469 '@typescript-eslint/eslint-plugin': 6.1.0(@typescript-eslint/parser@6.1.0)(eslint@8.45.0)(typescript@5.0.4)
5307 '@typescript-eslint/parser': 5.59.11(eslint@8.39.0)(typescript@5.0.4) 5470 '@typescript-eslint/parser': 6.1.0(eslint@8.45.0)(typescript@5.0.4)
5308 eslint: 8.39.0 5471 eslint: 8.45.0
5309 eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.27.5)(eslint@8.39.0) 5472 eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.27.5)(eslint@8.45.0)
5310 eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.11)(eslint@8.39.0) 5473 eslint-plugin-import: 2.27.5(@typescript-eslint/parser@6.1.0)(eslint@8.45.0)
5311 dev: true 5474 dev: true
5312 5475
5313 /eslint-config-airbnb@19.0.4(eslint-plugin-import@2.27.5)(eslint-plugin-jsx-a11y@6.7.1)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.32.2)(eslint@8.39.0): 5476 /eslint-config-airbnb@19.0.4(eslint-plugin-import@2.27.5)(eslint-plugin-jsx-a11y@6.7.1)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.0)(eslint@8.45.0):
5314 resolution: {integrity: sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==} 5477 resolution: {integrity: sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==}
5315 engines: {node: ^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0} 5478 engines: {node: ^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0}
5316 peerDependencies: 5479 peerDependencies:
@@ -5320,23 +5483,23 @@ packages:
5320 eslint-plugin-react: ^7.28.0 5483 eslint-plugin-react: ^7.28.0
5321 eslint-plugin-react-hooks: ^4.3.0 5484 eslint-plugin-react-hooks: ^4.3.0
5322 dependencies: 5485 dependencies:
5323 eslint: 8.39.0 5486 eslint: 8.45.0
5324 eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.27.5)(eslint@8.39.0) 5487 eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.27.5)(eslint@8.45.0)
5325 eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.11)(eslint@8.39.0) 5488 eslint-plugin-import: 2.27.5(@typescript-eslint/parser@6.1.0)(eslint@8.45.0)
5326 eslint-plugin-jsx-a11y: 6.7.1(eslint@8.39.0) 5489 eslint-plugin-jsx-a11y: 6.7.1(eslint@8.45.0)
5327 eslint-plugin-react: 7.32.2(eslint@8.39.0) 5490 eslint-plugin-react: 7.33.0(eslint@8.45.0)
5328 eslint-plugin-react-hooks: 4.6.0(eslint@8.39.0) 5491 eslint-plugin-react-hooks: 4.6.0(eslint@8.45.0)
5329 object.assign: 4.1.4 5492 object.assign: 4.1.4
5330 object.entries: 1.1.6 5493 object.entries: 1.1.6
5331 dev: true 5494 dev: true
5332 5495
5333 /eslint-config-prettier@8.8.0(eslint@8.39.0): 5496 /eslint-config-prettier@8.8.0(eslint@8.45.0):
5334 resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} 5497 resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==}
5335 hasBin: true 5498 hasBin: true
5336 peerDependencies: 5499 peerDependencies:
5337 eslint: '>=7.0.0' 5500 eslint: '>=7.0.0'
5338 dependencies: 5501 dependencies:
5339 eslint: 8.39.0 5502 eslint: 8.45.0
5340 dev: true 5503 dev: true
5341 5504
5342 /eslint-import-resolver-node@0.3.7: 5505 /eslint-import-resolver-node@0.3.7:
@@ -5344,12 +5507,12 @@ packages:
5344 dependencies: 5507 dependencies:
5345 debug: 3.2.7 5508 debug: 3.2.7
5346 is-core-module: 2.11.0 5509 is-core-module: 2.11.0
5347 resolve: 1.22.2 5510 resolve: 1.22.1
5348 transitivePeerDependencies: 5511 transitivePeerDependencies:
5349 - supports-color 5512 - supports-color
5350 dev: true 5513 dev: true
5351 5514
5352 /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.59.11)(eslint-import-resolver-node@0.3.7)(eslint@8.39.0): 5515 /eslint-module-utils@2.7.4(@typescript-eslint/parser@6.1.0)(eslint-import-resolver-node@0.3.7)(eslint@8.45.0):
5353 resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} 5516 resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==}
5354 engines: {node: '>=4'} 5517 engines: {node: '>=4'}
5355 peerDependencies: 5518 peerDependencies:
@@ -5370,15 +5533,15 @@ packages:
5370 eslint-import-resolver-webpack: 5533 eslint-import-resolver-webpack:
5371 optional: true 5534 optional: true
5372 dependencies: 5535 dependencies:
5373 '@typescript-eslint/parser': 5.59.11(eslint@8.39.0)(typescript@5.0.4) 5536 '@typescript-eslint/parser': 6.1.0(eslint@8.45.0)(typescript@5.0.4)
5374 debug: 3.2.7 5537 debug: 3.2.7
5375 eslint: 8.39.0 5538 eslint: 8.45.0
5376 eslint-import-resolver-node: 0.3.7 5539 eslint-import-resolver-node: 0.3.7
5377 transitivePeerDependencies: 5540 transitivePeerDependencies:
5378 - supports-color 5541 - supports-color
5379 dev: true 5542 dev: true
5380 5543
5381 /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.11)(eslint@8.39.0): 5544 /eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.1.0)(eslint@8.45.0):
5382 resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} 5545 resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==}
5383 engines: {node: '>=4'} 5546 engines: {node: '>=4'}
5384 peerDependencies: 5547 peerDependencies:
@@ -5388,15 +5551,15 @@ packages:
5388 '@typescript-eslint/parser': 5551 '@typescript-eslint/parser':
5389 optional: true 5552 optional: true
5390 dependencies: 5553 dependencies:
5391 '@typescript-eslint/parser': 5.59.11(eslint@8.39.0)(typescript@5.0.4) 5554 '@typescript-eslint/parser': 6.1.0(eslint@8.45.0)(typescript@5.0.4)
5392 array-includes: 3.1.6 5555 array-includes: 3.1.6
5393 array.prototype.flat: 1.3.1 5556 array.prototype.flat: 1.3.1
5394 array.prototype.flatmap: 1.3.1 5557 array.prototype.flatmap: 1.3.1
5395 debug: 3.2.7 5558 debug: 3.2.7
5396 doctrine: 2.1.0 5559 doctrine: 2.1.0
5397 eslint: 8.39.0 5560 eslint: 8.45.0
5398 eslint-import-resolver-node: 0.3.7 5561 eslint-import-resolver-node: 0.3.7
5399 eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.59.11)(eslint-import-resolver-node@0.3.7)(eslint@8.39.0) 5562 eslint-module-utils: 2.7.4(@typescript-eslint/parser@6.1.0)(eslint-import-resolver-node@0.3.7)(eslint@8.45.0)
5400 has: 1.0.3 5563 has: 1.0.3
5401 is-core-module: 2.11.0 5564 is-core-module: 2.11.0
5402 is-glob: 4.0.3 5565 is-glob: 4.0.3
@@ -5411,7 +5574,7 @@ packages:
5411 - supports-color 5574 - supports-color
5412 dev: true 5575 dev: true
5413 5576
5414 /eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.59.11)(eslint@8.39.0)(jest@29.6.1)(typescript@5.0.4): 5577 /eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@6.1.0)(eslint@8.45.0)(jest@29.6.1)(typescript@5.0.4):
5415 resolution: {integrity: sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ==} 5578 resolution: {integrity: sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ==}
5416 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 5579 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
5417 peerDependencies: 5580 peerDependencies:
@@ -5424,16 +5587,16 @@ packages:
5424 jest: 5587 jest:
5425 optional: true 5588 optional: true
5426 dependencies: 5589 dependencies:
5427 '@typescript-eslint/eslint-plugin': 5.59.11(@typescript-eslint/parser@5.59.11)(eslint@8.39.0)(typescript@5.0.4) 5590 '@typescript-eslint/eslint-plugin': 6.1.0(@typescript-eslint/parser@6.1.0)(eslint@8.45.0)(typescript@5.0.4)
5428 '@typescript-eslint/utils': 5.59.11(eslint@8.39.0)(typescript@5.0.4) 5591 '@typescript-eslint/utils': 5.59.11(eslint@8.45.0)(typescript@5.0.4)
5429 eslint: 8.39.0 5592 eslint: 8.45.0
5430 jest: 29.6.1(@types/node@18.15.3)(ts-node@10.9.1) 5593 jest: 29.6.1(@types/node@18.15.3)(ts-node@10.9.1)
5431 transitivePeerDependencies: 5594 transitivePeerDependencies:
5432 - supports-color 5595 - supports-color
5433 - typescript 5596 - typescript
5434 dev: true 5597 dev: true
5435 5598
5436 /eslint-plugin-jsx-a11y@6.7.1(eslint@8.39.0): 5599 /eslint-plugin-jsx-a11y@6.7.1(eslint@8.45.0):
5437 resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} 5600 resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==}
5438 engines: {node: '>=4.0'} 5601 engines: {node: '>=4.0'}
5439 peerDependencies: 5602 peerDependencies:
@@ -5448,7 +5611,7 @@ packages:
5448 axobject-query: 3.1.1 5611 axobject-query: 3.1.1
5449 damerau-levenshtein: 1.0.8 5612 damerau-levenshtein: 1.0.8
5450 emoji-regex: 9.2.2 5613 emoji-regex: 9.2.2
5451 eslint: 8.39.0 5614 eslint: 8.45.0
5452 has: 1.0.3 5615 has: 1.0.3
5453 jsx-ast-utils: 3.3.3 5616 jsx-ast-utils: 3.3.3
5454 language-tags: 1.0.5 5617 language-tags: 1.0.5
@@ -5458,34 +5621,38 @@ packages:
5458 semver: 6.3.0 5621 semver: 6.3.0
5459 dev: true 5622 dev: true
5460 5623
5461 /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.8.0)(eslint@8.39.0)(prettier@2.8.8): 5624 /eslint-plugin-prettier@5.0.0(eslint-config-prettier@8.8.0)(eslint@8.45.0)(prettier@3.0.0):
5462 resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} 5625 resolution: {integrity: sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==}
5463 engines: {node: '>=12.0.0'} 5626 engines: {node: ^14.18.0 || >=16.0.0}
5464 peerDependencies: 5627 peerDependencies:
5465 eslint: '>=7.28.0' 5628 '@types/eslint': '>=8.0.0'
5629 eslint: '>=8.0.0'
5466 eslint-config-prettier: '*' 5630 eslint-config-prettier: '*'
5467 prettier: '>=2.0.0' 5631 prettier: '>=3.0.0'
5468 peerDependenciesMeta: 5632 peerDependenciesMeta:
5633 '@types/eslint':
5634 optional: true
5469 eslint-config-prettier: 5635 eslint-config-prettier:
5470 optional: true 5636 optional: true
5471 dependencies: 5637 dependencies:
5472 eslint: 8.39.0 5638 eslint: 8.45.0
5473 eslint-config-prettier: 8.8.0(eslint@8.39.0) 5639 eslint-config-prettier: 8.8.0(eslint@8.45.0)
5474 prettier: 2.8.8 5640 prettier: 3.0.0
5475 prettier-linter-helpers: 1.0.0 5641 prettier-linter-helpers: 1.0.0
5642 synckit: 0.8.5
5476 dev: true 5643 dev: true
5477 5644
5478 /eslint-plugin-react-hooks@4.6.0(eslint@8.39.0): 5645 /eslint-plugin-react-hooks@4.6.0(eslint@8.45.0):
5479 resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} 5646 resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
5480 engines: {node: '>=10'} 5647 engines: {node: '>=10'}
5481 peerDependencies: 5648 peerDependencies:
5482 eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 5649 eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
5483 dependencies: 5650 dependencies:
5484 eslint: 8.39.0 5651 eslint: 8.45.0
5485 dev: true 5652 dev: true
5486 5653
5487 /eslint-plugin-react@7.32.2(eslint@8.39.0): 5654 /eslint-plugin-react@7.33.0(eslint@8.45.0):
5488 resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} 5655 resolution: {integrity: sha512-qewL/8P34WkY8jAqdQxsiL82pDUeT7nhs8IsuXgfgnsEloKCT4miAV9N9kGtx7/KM9NH/NCGUE7Edt9iGxLXFw==}
5489 engines: {node: '>=4'} 5656 engines: {node: '>=4'}
5490 peerDependencies: 5657 peerDependencies:
5491 eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 5658 eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
@@ -5494,9 +5661,9 @@ packages:
5494 array.prototype.flatmap: 1.3.1 5661 array.prototype.flatmap: 1.3.1
5495 array.prototype.tosorted: 1.1.1 5662 array.prototype.tosorted: 1.1.1
5496 doctrine: 2.1.0 5663 doctrine: 2.1.0
5497 eslint: 8.39.0 5664 eslint: 8.45.0
5498 estraverse: 5.3.0 5665 estraverse: 5.3.0
5499 jsx-ast-utils: 3.3.3 5666 jsx-ast-utils: 3.3.4
5500 minimatch: 3.1.2 5667 minimatch: 3.1.2
5501 object.entries: 1.1.6 5668 object.entries: 1.1.6
5502 object.fromentries: 2.0.6 5669 object.fromentries: 2.0.6
@@ -5504,21 +5671,21 @@ packages:
5504 object.values: 1.1.6 5671 object.values: 1.1.6
5505 prop-types: 15.8.1 5672 prop-types: 15.8.1
5506 resolve: 2.0.0-next.4 5673 resolve: 2.0.0-next.4
5507 semver: 6.3.0 5674 semver: 6.3.1
5508 string.prototype.matchall: 4.0.8 5675 string.prototype.matchall: 4.0.8
5509 dev: true 5676 dev: true
5510 5677
5511 /eslint-plugin-unicorn@46.0.0(eslint@8.39.0): 5678 /eslint-plugin-unicorn@48.0.0(eslint@8.45.0):
5512 resolution: {integrity: sha512-j07WkC+PFZwk8J33LYp6JMoHa1lXc1u6R45pbSAipjpfpb7KIGr17VE2D685zCxR5VL4cjrl65kTJflziQWMDA==} 5679 resolution: {integrity: sha512-8fk/v3p1ro34JSVDBEmtOq6EEQRpMR0iTir79q69KnXFZ6DJyPkT3RAi+ZoTqhQMdDSpGh8BGR68ne1sP5cnAA==}
5513 engines: {node: '>=14.18'} 5680 engines: {node: '>=16'}
5514 peerDependencies: 5681 peerDependencies:
5515 eslint: '>=8.28.0' 5682 eslint: '>=8.44.0'
5516 dependencies: 5683 dependencies:
5517 '@babel/helper-validator-identifier': 7.19.1 5684 '@babel/helper-validator-identifier': 7.22.5
5518 '@eslint-community/eslint-utils': 4.3.0(eslint@8.39.0) 5685 '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0)
5519 ci-info: 3.8.0 5686 ci-info: 3.8.0
5520 clean-regexp: 1.0.0 5687 clean-regexp: 1.0.0
5521 eslint: 8.39.0 5688 eslint: 8.45.0
5522 esquery: 1.5.0 5689 esquery: 1.5.0
5523 indent-string: 4.0.0 5690 indent-string: 4.0.0
5524 is-builtin-module: 3.2.1 5691 is-builtin-module: 3.2.1
@@ -5526,9 +5693,8 @@ packages:
5526 lodash: 4.17.21 5693 lodash: 4.17.21
5527 pluralize: 8.0.0 5694 pluralize: 8.0.0
5528 read-pkg-up: 7.0.1 5695 read-pkg-up: 7.0.1
5529 regexp-tree: 0.1.24 5696 regexp-tree: 0.1.27
5530 regjsparser: 0.9.1 5697 regjsparser: 0.10.0
5531 safe-regex: 2.1.1
5532 semver: 7.5.4 5698 semver: 7.5.4
5533 strip-indent: 3.0.0 5699 strip-indent: 3.0.0
5534 dev: true 5700 dev: true
@@ -5541,8 +5707,8 @@ packages:
5541 estraverse: 4.3.0 5707 estraverse: 4.3.0
5542 dev: true 5708 dev: true
5543 5709
5544 /eslint-scope@7.2.0: 5710 /eslint-scope@7.2.1:
5545 resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} 5711 resolution: {integrity: sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==}
5546 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 5712 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
5547 dependencies: 5713 dependencies:
5548 esrecurse: 4.3.0 5714 esrecurse: 4.3.0
@@ -5554,16 +5720,16 @@ packages:
5554 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 5720 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
5555 dev: true 5721 dev: true
5556 5722
5557 /eslint@8.39.0: 5723 /eslint@8.45.0:
5558 resolution: {integrity: sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==} 5724 resolution: {integrity: sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==}
5559 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 5725 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
5560 hasBin: true 5726 hasBin: true
5561 dependencies: 5727 dependencies:
5562 '@eslint-community/eslint-utils': 4.3.0(eslint@8.39.0) 5728 '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0)
5563 '@eslint-community/regexpp': 4.4.0 5729 '@eslint-community/regexpp': 4.6.0
5564 '@eslint/eslintrc': 2.0.3 5730 '@eslint/eslintrc': 2.1.0
5565 '@eslint/js': 8.39.0 5731 '@eslint/js': 8.44.0
5566 '@humanwhocodes/config-array': 0.11.8 5732 '@humanwhocodes/config-array': 0.11.10
5567 '@humanwhocodes/module-importer': 1.0.1 5733 '@humanwhocodes/module-importer': 1.0.1
5568 '@nodelib/fs.walk': 1.2.8 5734 '@nodelib/fs.walk': 1.2.8
5569 ajv: 6.12.6 5735 ajv: 6.12.6
@@ -5572,32 +5738,29 @@ packages:
5572 debug: 4.3.4 5738 debug: 4.3.4
5573 doctrine: 3.0.0 5739 doctrine: 3.0.0
5574 escape-string-regexp: 4.0.0 5740 escape-string-regexp: 4.0.0
5575 eslint-scope: 7.2.0 5741 eslint-scope: 7.2.1
5576 eslint-visitor-keys: 3.4.1 5742 eslint-visitor-keys: 3.4.1
5577 espree: 9.5.2 5743 espree: 9.6.1
5578 esquery: 1.5.0 5744 esquery: 1.5.0
5579 esutils: 2.0.3 5745 esutils: 2.0.3
5580 fast-deep-equal: 3.1.3 5746 fast-deep-equal: 3.1.3
5581 file-entry-cache: 6.0.1 5747 file-entry-cache: 6.0.1
5582 find-up: 5.0.0 5748 find-up: 5.0.0
5583 glob-parent: 6.0.2 5749 glob-parent: 6.0.2
5584 globals: 13.19.0 5750 globals: 13.20.0
5585 grapheme-splitter: 1.0.4 5751 graphemer: 1.4.0
5586 ignore: 5.2.4 5752 ignore: 5.2.4
5587 import-fresh: 3.3.0
5588 imurmurhash: 0.1.4 5753 imurmurhash: 0.1.4
5589 is-glob: 4.0.3 5754 is-glob: 4.0.3
5590 is-path-inside: 3.0.3 5755 is-path-inside: 3.0.3
5591 js-sdsl: 4.4.0
5592 js-yaml: 4.1.0 5756 js-yaml: 4.1.0
5593 json-stable-stringify-without-jsonify: 1.0.1 5757 json-stable-stringify-without-jsonify: 1.0.1
5594 levn: 0.4.1 5758 levn: 0.4.1
5595 lodash.merge: 4.6.2 5759 lodash.merge: 4.6.2
5596 minimatch: 3.1.2 5760 minimatch: 3.1.2
5597 natural-compare: 1.4.0 5761 natural-compare: 1.4.0
5598 optionator: 0.9.1 5762 optionator: 0.9.3
5599 strip-ansi: 6.0.1 5763 strip-ansi: 6.0.1
5600 strip-json-comments: 3.1.1
5601 text-table: 0.2.0 5764 text-table: 0.2.0
5602 transitivePeerDependencies: 5765 transitivePeerDependencies:
5603 - supports-color 5766 - supports-color
@@ -5608,12 +5771,12 @@ packages:
5608 engines: {node: '>=6'} 5771 engines: {node: '>=6'}
5609 dev: false 5772 dev: false
5610 5773
5611 /espree@9.5.2: 5774 /espree@9.6.1:
5612 resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==} 5775 resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
5613 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 5776 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
5614 dependencies: 5777 dependencies:
5615 acorn: 8.8.2 5778 acorn: 8.10.0
5616 acorn-jsx: 5.3.2(acorn@8.8.2) 5779 acorn-jsx: 5.3.2(acorn@8.10.0)
5617 eslint-visitor-keys: 3.4.1 5780 eslint-visitor-keys: 3.4.1
5618 dev: true 5781 dev: true
5619 5782
@@ -5709,6 +5872,21 @@ packages:
5709 strip-final-newline: 2.0.0 5872 strip-final-newline: 2.0.0
5710 dev: true 5873 dev: true
5711 5874
5875 /execa@7.1.1:
5876 resolution: {integrity: sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==}
5877 engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0}
5878 dependencies:
5879 cross-spawn: 7.0.3
5880 get-stream: 6.0.1
5881 human-signals: 4.3.1
5882 is-stream: 3.0.0
5883 merge-stream: 2.0.0
5884 npm-run-path: 5.1.0
5885 onetime: 6.0.0
5886 signal-exit: 3.0.7
5887 strip-final-newline: 3.0.0
5888 dev: true
5889
5712 /exenv@1.2.2: 5890 /exenv@1.2.2:
5713 resolution: {integrity: sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==} 5891 resolution: {integrity: sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==}
5714 dev: false 5892 dev: false
@@ -5864,8 +6042,8 @@ packages:
5864 /fast-deep-equal@3.1.3: 6042 /fast-deep-equal@3.1.3:
5865 resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 6043 resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
5866 6044
5867 /fast-diff@1.2.0: 6045 /fast-diff@1.3.0:
5868 resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} 6046 resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
5869 dev: true 6047 dev: true
5870 6048
5871 /fast-folder-size@2.1.0: 6049 /fast-folder-size@2.1.0:
@@ -5879,8 +6057,8 @@ packages:
5879 - supports-color 6057 - supports-color
5880 dev: false 6058 dev: false
5881 6059
5882 /fast-glob@3.2.12: 6060 /fast-glob@3.3.1:
5883 resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} 6061 resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
5884 engines: {node: '>=8.6.0'} 6062 engines: {node: '>=8.6.0'}
5885 dependencies: 6063 dependencies:
5886 '@nodelib/fs.stat': 2.0.5 6064 '@nodelib/fs.stat': 2.0.5
@@ -5980,7 +6158,7 @@ packages:
5980 /filelist@1.0.4: 6158 /filelist@1.0.4:
5981 resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} 6159 resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
5982 dependencies: 6160 dependencies:
5983 minimatch: 5.1.2 6161 minimatch: 5.1.6
5984 dev: true 6162 dev: true
5985 6163
5986 /fill-range@4.0.0: 6164 /fill-range@4.0.0:
@@ -6216,8 +6394,8 @@ packages:
6216 engines: {node: '>= 0.4'} 6394 engines: {node: '>= 0.4'}
6217 dependencies: 6395 dependencies:
6218 call-bind: 1.0.2 6396 call-bind: 1.0.2
6219 define-properties: 1.1.4 6397 define-properties: 1.2.0
6220 es-abstract: 1.20.4 6398 es-abstract: 1.22.1
6221 functions-have-names: 1.2.3 6399 functions-have-names: 1.2.3
6222 dev: true 6400 dev: true
6223 6401
@@ -6263,18 +6441,12 @@ packages:
6263 engines: {node: 6.* || 8.* || >= 10.*} 6441 engines: {node: 6.* || 8.* || >= 10.*}
6264 dev: true 6442 dev: true
6265 6443
6266 /get-intrinsic@1.1.3: 6444 /get-intrinsic@1.2.1:
6267 resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==} 6445 resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==}
6268 dependencies:
6269 function-bind: 1.1.1
6270 has: 1.0.3
6271 has-symbols: 1.0.3
6272
6273 /get-intrinsic@1.2.0:
6274 resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==}
6275 dependencies: 6446 dependencies:
6276 function-bind: 1.1.1 6447 function-bind: 1.1.1
6277 has: 1.0.3 6448 has: 1.0.3
6449 has-proto: 1.0.1
6278 has-symbols: 1.0.3 6450 has-symbols: 1.0.3
6279 6451
6280 /get-package-type@0.1.0: 6452 /get-package-type@0.1.0:
@@ -6305,7 +6477,7 @@ packages:
6305 engines: {node: '>= 0.4'} 6477 engines: {node: '>= 0.4'}
6306 dependencies: 6478 dependencies:
6307 call-bind: 1.0.2 6479 call-bind: 1.0.2
6308 get-intrinsic: 1.2.0 6480 get-intrinsic: 1.2.1
6309 dev: true 6481 dev: true
6310 6482
6311 /get-value@2.0.6: 6483 /get-value@2.0.6:
@@ -6356,7 +6528,7 @@ packages:
6356 dependencies: 6528 dependencies:
6357 foreground-child: 3.1.1 6529 foreground-child: 3.1.1
6358 jackspeak: 2.2.1 6530 jackspeak: 2.2.1
6359 minimatch: 9.0.1 6531 minimatch: 9.0.3
6360 minipass: 5.0.0 6532 minipass: 5.0.0
6361 path-scurry: 1.9.2 6533 path-scurry: 1.9.2
6362 dev: true 6534 dev: true
@@ -6378,7 +6550,7 @@ packages:
6378 fs.realpath: 1.0.0 6550 fs.realpath: 1.0.0
6379 inflight: 1.0.6 6551 inflight: 1.0.6
6380 inherits: 2.0.4 6552 inherits: 2.0.4
6381 minimatch: 5.1.2 6553 minimatch: 5.1.6
6382 once: 1.4.0 6554 once: 1.4.0
6383 dev: true 6555 dev: true
6384 6556
@@ -6427,8 +6599,8 @@ packages:
6427 engines: {node: '>=4'} 6599 engines: {node: '>=4'}
6428 dev: true 6600 dev: true
6429 6601
6430 /globals@13.19.0: 6602 /globals@13.20.0:
6431 resolution: {integrity: sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==} 6603 resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==}
6432 engines: {node: '>=8'} 6604 engines: {node: '>=8'}
6433 dependencies: 6605 dependencies:
6434 type-fest: 0.20.2 6606 type-fest: 0.20.2
@@ -6439,7 +6611,6 @@ packages:
6439 engines: {node: '>= 0.4'} 6611 engines: {node: '>= 0.4'}
6440 dependencies: 6612 dependencies:
6441 define-properties: 1.2.0 6613 define-properties: 1.2.0
6442 optional: true
6443 6614
6444 /globalyzer@0.1.0: 6615 /globalyzer@0.1.0:
6445 resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} 6616 resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==}
@@ -6451,7 +6622,7 @@ packages:
6451 dependencies: 6622 dependencies:
6452 array-union: 2.1.0 6623 array-union: 2.1.0
6453 dir-glob: 3.0.1 6624 dir-glob: 3.0.1
6454 fast-glob: 3.2.12 6625 fast-glob: 3.3.1
6455 ignore: 5.2.4 6626 ignore: 5.2.4
6456 merge2: 1.4.1 6627 merge2: 1.4.1
6457 slash: 3.0.0 6628 slash: 3.0.0
@@ -6469,7 +6640,7 @@ packages:
6469 /gopd@1.0.1: 6640 /gopd@1.0.1:
6470 resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 6641 resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
6471 dependencies: 6642 dependencies:
6472 get-intrinsic: 1.2.0 6643 get-intrinsic: 1.2.1
6473 dev: true 6644 dev: true
6474 6645
6475 /got@11.8.6: 6646 /got@11.8.6:
@@ -6491,8 +6662,8 @@ packages:
6491 /graceful-fs@4.2.11: 6662 /graceful-fs@4.2.11:
6492 resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 6663 resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
6493 6664
6494 /grapheme-splitter@1.0.4: 6665 /graphemer@1.4.0:
6495 resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} 6666 resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
6496 dev: true 6667 dev: true
6497 6668
6498 /gulp-livereload@4.0.2: 6669 /gulp-livereload@4.0.2:
@@ -6546,7 +6717,11 @@ packages:
6546 /has-property-descriptors@1.0.0: 6717 /has-property-descriptors@1.0.0:
6547 resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} 6718 resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==}
6548 dependencies: 6719 dependencies:
6549 get-intrinsic: 1.2.0 6720 get-intrinsic: 1.2.1
6721
6722 /has-proto@1.0.1:
6723 resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==}
6724 engines: {node: '>= 0.4'}
6550 6725
6551 /has-symbols@1.0.3: 6726 /has-symbols@1.0.3:
6552 resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 6727 resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
@@ -6749,6 +6924,11 @@ packages:
6749 engines: {node: '>=10.17.0'} 6924 engines: {node: '>=10.17.0'}
6750 dev: true 6925 dev: true
6751 6926
6927 /human-signals@4.3.1:
6928 resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==}
6929 engines: {node: '>=14.18.0'}
6930 dev: true
6931
6752 /humanize-ms@1.2.1: 6932 /humanize-ms@1.2.1:
6753 resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} 6933 resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
6754 dependencies: 6934 dependencies:
@@ -6881,11 +7061,11 @@ packages:
6881 through: 2.3.8 7061 through: 2.3.8
6882 dev: true 7062 dev: true
6883 7063
6884 /internal-slot@1.0.3: 7064 /internal-slot@1.0.5:
6885 resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} 7065 resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==}
6886 engines: {node: '>= 0.4'} 7066 engines: {node: '>= 0.4'}
6887 dependencies: 7067 dependencies:
6888 get-intrinsic: 1.1.3 7068 get-intrinsic: 1.2.1
6889 has: 1.0.3 7069 has: 1.0.3
6890 side-channel: 1.0.4 7070 side-channel: 1.0.4
6891 dev: true 7071 dev: true
@@ -6948,12 +7128,12 @@ packages:
6948 has-tostringtag: 1.0.0 7128 has-tostringtag: 1.0.0
6949 dev: true 7129 dev: true
6950 7130
6951 /is-array-buffer@3.0.1: 7131 /is-array-buffer@3.0.2:
6952 resolution: {integrity: sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==} 7132 resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
6953 dependencies: 7133 dependencies:
6954 call-bind: 1.0.2 7134 call-bind: 1.0.2
6955 get-intrinsic: 1.2.0 7135 get-intrinsic: 1.2.1
6956 is-typed-array: 1.1.10 7136 is-typed-array: 1.1.12
6957 dev: true 7137 dev: true
6958 7138
6959 /is-arrayish@0.2.1: 7139 /is-arrayish@0.2.1:
@@ -7020,8 +7200,8 @@ packages:
7020 has: 1.0.3 7200 has: 1.0.3
7021 dev: true 7201 dev: true
7022 7202
7023 /is-core-module@2.12.0: 7203 /is-core-module@2.12.1:
7024 resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==} 7204 resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==}
7025 dependencies: 7205 dependencies:
7026 has: 1.0.3 7206 has: 1.0.3
7027 7207
@@ -7064,6 +7244,18 @@ packages:
7064 kind-of: 6.0.3 7244 kind-of: 6.0.3
7065 dev: false 7245 dev: false
7066 7246
7247 /is-docker@2.2.1:
7248 resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
7249 engines: {node: '>=8'}
7250 hasBin: true
7251 dev: true
7252
7253 /is-docker@3.0.0:
7254 resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
7255 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
7256 hasBin: true
7257 dev: true
7258
7067 /is-extendable@0.1.1: 7259 /is-extendable@0.1.1:
7068 resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} 7260 resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
7069 engines: {node: '>=0.10.0'} 7261 engines: {node: '>=0.10.0'}
@@ -7104,6 +7296,14 @@ packages:
7104 resolution: {integrity: sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==} 7296 resolution: {integrity: sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==}
7105 dev: false 7297 dev: false
7106 7298
7299 /is-inside-container@1.0.0:
7300 resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
7301 engines: {node: '>=14.16'}
7302 hasBin: true
7303 dependencies:
7304 is-docker: 3.0.0
7305 dev: true
7306
7107 /is-interactive@1.0.0: 7307 /is-interactive@1.0.0:
7108 resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} 7308 resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
7109 engines: {node: '>=8'} 7309 engines: {node: '>=8'}
@@ -7213,6 +7413,11 @@ packages:
7213 resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 7413 resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
7214 engines: {node: '>=8'} 7414 engines: {node: '>=8'}
7215 7415
7416 /is-stream@3.0.0:
7417 resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
7418 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
7419 dev: true
7420
7216 /is-string@1.0.7: 7421 /is-string@1.0.7:
7217 resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 7422 resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
7218 engines: {node: '>= 0.4'} 7423 engines: {node: '>= 0.4'}
@@ -7234,15 +7439,11 @@ packages:
7234 text-extensions: 1.9.0 7439 text-extensions: 1.9.0
7235 dev: true 7440 dev: true
7236 7441
7237 /is-typed-array@1.1.10: 7442 /is-typed-array@1.1.12:
7238 resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} 7443 resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==}
7239 engines: {node: '>= 0.4'} 7444 engines: {node: '>= 0.4'}
7240 dependencies: 7445 dependencies:
7241 available-typed-arrays: 1.0.5 7446 which-typed-array: 1.1.11
7242 call-bind: 1.0.2
7243 for-each: 0.3.3
7244 gopd: 1.0.1
7245 has-tostringtag: 1.0.0
7246 dev: true 7447 dev: true
7247 7448
7248 /is-typedarray@1.0.0: 7449 /is-typedarray@1.0.0:
@@ -7275,7 +7476,7 @@ packages:
7275 resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} 7476 resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==}
7276 dependencies: 7477 dependencies:
7277 call-bind: 1.0.2 7478 call-bind: 1.0.2
7278 get-intrinsic: 1.2.0 7479 get-intrinsic: 1.2.1
7279 dev: true 7480 dev: true
7280 7481
7281 /is-windows@1.0.2: 7482 /is-windows@1.0.2:
@@ -7283,6 +7484,13 @@ packages:
7283 engines: {node: '>=0.10.0'} 7484 engines: {node: '>=0.10.0'}
7284 dev: false 7485 dev: false
7285 7486
7487 /is-wsl@2.2.0:
7488 resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
7489 engines: {node: '>=8'}
7490 dependencies:
7491 is-docker: 2.2.1
7492 dev: true
7493
7286 /isarray@1.0.0: 7494 /isarray@1.0.0:
7287 resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} 7495 resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
7288 7496
@@ -7332,7 +7540,7 @@ packages:
7332 '@babel/parser': 7.20.5 7540 '@babel/parser': 7.20.5
7333 '@istanbuljs/schema': 0.1.3 7541 '@istanbuljs/schema': 0.1.3
7334 istanbul-lib-coverage: 3.2.0 7542 istanbul-lib-coverage: 3.2.0
7335 semver: 6.3.0 7543 semver: 6.3.1
7336 transitivePeerDependencies: 7544 transitivePeerDependencies:
7337 - supports-color 7545 - supports-color
7338 dev: true 7546 dev: true
@@ -7595,7 +7803,7 @@ packages:
7595 resolution: {integrity: sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==} 7803 resolution: {integrity: sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==}
7596 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 7804 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
7597 dependencies: 7805 dependencies:
7598 '@babel/code-frame': 7.21.4 7806 '@babel/code-frame': 7.22.5
7599 '@jest/types': 29.5.0 7807 '@jest/types': 29.5.0
7600 '@types/stack-utils': 2.0.1 7808 '@types/stack-utils': 2.0.1
7601 chalk: 4.1.2 7809 chalk: 4.1.2
@@ -7610,7 +7818,7 @@ packages:
7610 resolution: {integrity: sha512-KoAW2zAmNSd3Gk88uJ56qXUWbFk787QKmjjJVOjtGFmmGSZgDBrlIL4AfQw1xyMYPNVD7dNInfIbur9B2rd/wQ==} 7818 resolution: {integrity: sha512-KoAW2zAmNSd3Gk88uJ56qXUWbFk787QKmjjJVOjtGFmmGSZgDBrlIL4AfQw1xyMYPNVD7dNInfIbur9B2rd/wQ==}
7611 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 7819 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
7612 dependencies: 7820 dependencies:
7613 '@babel/code-frame': 7.21.4 7821 '@babel/code-frame': 7.22.5
7614 '@jest/types': 29.6.1 7822 '@jest/types': 29.6.1
7615 '@types/stack-utils': 2.0.1 7823 '@types/stack-utils': 2.0.1
7616 chalk: 4.1.2 7824 chalk: 4.1.2
@@ -7850,10 +8058,6 @@ packages:
7850 '@sideway/pinpoint': 2.0.0 8058 '@sideway/pinpoint': 2.0.0
7851 dev: true 8059 dev: true
7852 8060
7853 /js-sdsl@4.4.0:
7854 resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==}
7855 dev: true
7856
7857 /js-tokens@4.0.0: 8061 /js-tokens@4.0.0:
7858 resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 8062 resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
7859 8063
@@ -7973,7 +8177,7 @@ packages:
7973 lodash.isstring: 4.0.1 8177 lodash.isstring: 4.0.1
7974 lodash.once: 4.1.1 8178 lodash.once: 4.1.1
7975 ms: 2.1.3 8179 ms: 2.1.3
7976 semver: 5.7.1 8180 semver: 5.7.2
7977 dev: false 8181 dev: false
7978 8182
7979 /jsonwebtoken@9.0.1: 8183 /jsonwebtoken@9.0.1:
@@ -8124,6 +8328,16 @@ packages:
8124 object.assign: 4.1.4 8328 object.assign: 4.1.4
8125 dev: true 8329 dev: true
8126 8330
8331 /jsx-ast-utils@3.3.4:
8332 resolution: {integrity: sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw==}
8333 engines: {node: '>=4.0'}
8334 dependencies:
8335 array-includes: 3.1.6
8336 array.prototype.flat: 1.3.1
8337 object.assign: 4.1.4
8338 object.values: 1.1.6
8339 dev: true
8340
8127 /jwa@1.4.1: 8341 /jwa@1.4.1:
8128 resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} 8342 resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==}
8129 dependencies: 8343 dependencies:
@@ -8515,7 +8729,7 @@ packages:
8515 resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} 8729 resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
8516 engines: {node: '>=8'} 8730 engines: {node: '>=8'}
8517 dependencies: 8731 dependencies:
8518 semver: 6.3.0 8732 semver: 6.3.1
8519 8733
8520 /make-error@1.3.6: 8734 /make-error@1.3.6:
8521 resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} 8735 resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
@@ -8743,6 +8957,11 @@ packages:
8743 resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 8957 resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
8744 engines: {node: '>=6'} 8958 engines: {node: '>=6'}
8745 8959
8960 /mimic-fn@4.0.0:
8961 resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
8962 engines: {node: '>=12'}
8963 dev: true
8964
8746 /mimic-response@1.0.1: 8965 /mimic-response@1.0.1:
8747 resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} 8966 resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==}
8748 engines: {node: '>=4'} 8967 engines: {node: '>=4'}
@@ -8761,15 +8980,15 @@ packages:
8761 dependencies: 8980 dependencies:
8762 brace-expansion: 1.1.11 8981 brace-expansion: 1.1.11
8763 8982
8764 /minimatch@5.1.2: 8983 /minimatch@5.1.6:
8765 resolution: {integrity: sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==} 8984 resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
8766 engines: {node: '>=10'} 8985 engines: {node: '>=10'}
8767 dependencies: 8986 dependencies:
8768 brace-expansion: 2.0.1 8987 brace-expansion: 2.0.1
8769 dev: true 8988 dev: true
8770 8989
8771 /minimatch@9.0.1: 8990 /minimatch@9.0.3:
8772 resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} 8991 resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
8773 engines: {node: '>=16 || 14 >=14.17'} 8992 engines: {node: '>=16 || 14 >=14.17'}
8774 dependencies: 8993 dependencies:
8775 brace-expansion: 2.0.1 8994 brace-expansion: 2.0.1
@@ -9194,7 +9413,7 @@ packages:
9194 dependencies: 9413 dependencies:
9195 hosted-git-info: 2.8.9 9414 hosted-git-info: 2.8.9
9196 resolve: 1.22.2 9415 resolve: 1.22.2
9197 semver: 5.7.1 9416 semver: 5.7.2
9198 validate-npm-package-license: 3.0.4 9417 validate-npm-package-license: 3.0.4
9199 dev: true 9418 dev: true
9200 9419
@@ -9203,7 +9422,7 @@ packages:
9203 engines: {node: '>=10'} 9422 engines: {node: '>=10'}
9204 dependencies: 9423 dependencies:
9205 hosted-git-info: 4.1.0 9424 hosted-git-info: 4.1.0
9206 is-core-module: 2.12.0 9425 is-core-module: 2.12.1
9207 semver: 7.5.4 9426 semver: 7.5.4
9208 validate-npm-package-license: 3.0.4 9427 validate-npm-package-license: 3.0.4
9209 dev: true 9428 dev: true
@@ -9227,6 +9446,13 @@ packages:
9227 dependencies: 9446 dependencies:
9228 path-key: 3.1.1 9447 path-key: 3.1.1
9229 9448
9449 /npm-run-path@5.1.0:
9450 resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==}
9451 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
9452 dependencies:
9453 path-key: 4.0.0
9454 dev: true
9455
9230 /npmlog@5.0.1: 9456 /npmlog@5.0.1:
9231 resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} 9457 resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
9232 dependencies: 9458 dependencies:
@@ -9262,8 +9488,8 @@ packages:
9262 kind-of: 3.2.2 9488 kind-of: 3.2.2
9263 dev: false 9489 dev: false
9264 9490
9265 /object-inspect@1.12.2: 9491 /object-inspect@1.12.3:
9266 resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} 9492 resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
9267 9493
9268 /object-is@1.1.5: 9494 /object-is@1.1.5:
9269 resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} 9495 resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==}
@@ -9289,7 +9515,7 @@ packages:
9289 engines: {node: '>= 0.4'} 9515 engines: {node: '>= 0.4'}
9290 dependencies: 9516 dependencies:
9291 call-bind: 1.0.2 9517 call-bind: 1.0.2
9292 define-properties: 1.1.4 9518 define-properties: 1.2.0
9293 has-symbols: 1.0.3 9519 has-symbols: 1.0.3
9294 object-keys: 1.1.1 9520 object-keys: 1.1.1
9295 dev: true 9521 dev: true
@@ -9310,7 +9536,7 @@ packages:
9310 dependencies: 9536 dependencies:
9311 call-bind: 1.0.2 9537 call-bind: 1.0.2
9312 define-properties: 1.2.0 9538 define-properties: 1.2.0
9313 es-abstract: 1.20.4 9539 es-abstract: 1.22.1
9314 dev: true 9540 dev: true
9315 9541
9316 /object.fromentries@2.0.6: 9542 /object.fromentries@2.0.6:
@@ -9319,14 +9545,14 @@ packages:
9319 dependencies: 9545 dependencies:
9320 call-bind: 1.0.2 9546 call-bind: 1.0.2
9321 define-properties: 1.2.0 9547 define-properties: 1.2.0
9322 es-abstract: 1.20.4 9548 es-abstract: 1.22.1
9323 dev: true 9549 dev: true
9324 9550
9325 /object.hasown@1.1.2: 9551 /object.hasown@1.1.2:
9326 resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} 9552 resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==}
9327 dependencies: 9553 dependencies:
9328 define-properties: 1.2.0 9554 define-properties: 1.2.0
9329 es-abstract: 1.20.4 9555 es-abstract: 1.22.1
9330 dev: true 9556 dev: true
9331 9557
9332 /object.map@1.0.1: 9558 /object.map@1.0.1:
@@ -9350,7 +9576,7 @@ packages:
9350 dependencies: 9576 dependencies:
9351 call-bind: 1.0.2 9577 call-bind: 1.0.2
9352 define-properties: 1.2.0 9578 define-properties: 1.2.0
9353 es-abstract: 1.20.4 9579 es-abstract: 1.22.1
9354 dev: true 9580 dev: true
9355 9581
9356 /on-finished@2.3.0: 9582 /on-finished@2.3.0:
@@ -9384,16 +9610,33 @@ packages:
9384 dependencies: 9610 dependencies:
9385 mimic-fn: 2.1.0 9611 mimic-fn: 2.1.0
9386 9612
9387 /optionator@0.9.1: 9613 /onetime@6.0.0:
9388 resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} 9614 resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
9615 engines: {node: '>=12'}
9616 dependencies:
9617 mimic-fn: 4.0.0
9618 dev: true
9619
9620 /open@9.1.0:
9621 resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==}
9622 engines: {node: '>=14.16'}
9623 dependencies:
9624 default-browser: 4.0.0
9625 define-lazy-prop: 3.0.0
9626 is-inside-container: 1.0.0
9627 is-wsl: 2.2.0
9628 dev: true
9629
9630 /optionator@0.9.3:
9631 resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
9389 engines: {node: '>= 0.8.0'} 9632 engines: {node: '>= 0.8.0'}
9390 dependencies: 9633 dependencies:
9634 '@aashutoshrathi/word-wrap': 1.2.6
9391 deep-is: 0.1.4 9635 deep-is: 0.1.4
9392 fast-levenshtein: 2.0.6 9636 fast-levenshtein: 2.0.6
9393 levn: 0.4.1 9637 levn: 0.4.1
9394 prelude-ls: 1.2.1 9638 prelude-ls: 1.2.1
9395 type-check: 0.4.0 9639 type-check: 0.4.0
9396 word-wrap: 1.2.3
9397 dev: true 9640 dev: true
9398 9641
9399 /ora@5.4.1: 9642 /ora@5.4.1:
@@ -9486,7 +9729,7 @@ packages:
9486 resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 9729 resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
9487 engines: {node: '>=8'} 9730 engines: {node: '>=8'}
9488 dependencies: 9731 dependencies:
9489 '@babel/code-frame': 7.21.4 9732 '@babel/code-frame': 7.22.5
9490 error-ex: 1.3.2 9733 error-ex: 1.3.2
9491 json-parse-even-better-errors: 2.3.1 9734 json-parse-even-better-errors: 2.3.1
9492 lines-and-columns: 1.2.4 9735 lines-and-columns: 1.2.4
@@ -9529,6 +9772,11 @@ packages:
9529 resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 9772 resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
9530 engines: {node: '>=8'} 9773 engines: {node: '>=8'}
9531 9774
9775 /path-key@4.0.0:
9776 resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
9777 engines: {node: '>=12'}
9778 dev: true
9779
9532 /path-parse@1.0.7: 9780 /path-parse@1.0.7:
9533 resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 9781 resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
9534 9782
@@ -9700,13 +9948,21 @@ packages:
9700 resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} 9948 resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
9701 engines: {node: '>=6.0.0'} 9949 engines: {node: '>=6.0.0'}
9702 dependencies: 9950 dependencies:
9703 fast-diff: 1.2.0 9951 fast-diff: 1.3.0
9704 dev: true 9952 dev: true
9705 9953
9706 /prettier@2.8.8: 9954 /prettier@2.8.8:
9707 resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} 9955 resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
9708 engines: {node: '>=10.13.0'} 9956 engines: {node: '>=10.13.0'}
9709 hasBin: true 9957 hasBin: true
9958 requiresBuild: true
9959 dev: true
9960 optional: true
9961
9962 /prettier@3.0.0:
9963 resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==}
9964 engines: {node: '>=14'}
9965 hasBin: true
9710 dev: true 9966 dev: true
9711 9967
9712 /pretty-bytes@5.6.0: 9968 /pretty-bytes@5.6.0:
@@ -10280,7 +10536,7 @@ packages:
10280 react: '>=16.14.0' 10536 react: '>=16.14.0'
10281 react-dom: '>=16.14.0' 10537 react-dom: '>=16.14.0'
10282 dependencies: 10538 dependencies:
10283 '@floating-ui/dom': 1.4.3 10539 '@floating-ui/dom': 1.4.5
10284 classnames: 2.3.2 10540 classnames: 2.3.2
10285 react: 18.2.0 10541 react: 18.2.0
10286 react-dom: 18.2.0(react@18.2.0) 10542 react-dom: 18.2.0(react@18.2.0)
@@ -10461,22 +10717,22 @@ packages:
10461 safe-regex: 1.1.0 10717 safe-regex: 1.1.0
10462 dev: false 10718 dev: false
10463 10719
10464 /regexp-tree@0.1.24: 10720 /regexp-tree@0.1.27:
10465 resolution: {integrity: sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==} 10721 resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
10466 hasBin: true 10722 hasBin: true
10467 dev: true 10723 dev: true
10468 10724
10469 /regexp.prototype.flags@1.4.3: 10725 /regexp.prototype.flags@1.5.0:
10470 resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} 10726 resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==}
10471 engines: {node: '>= 0.4'} 10727 engines: {node: '>= 0.4'}
10472 dependencies: 10728 dependencies:
10473 call-bind: 1.0.2 10729 call-bind: 1.0.2
10474 define-properties: 1.1.4 10730 define-properties: 1.2.0
10475 functions-have-names: 1.2.3 10731 functions-have-names: 1.2.3
10476 dev: true 10732 dev: true
10477 10733
10478 /regjsparser@0.9.1: 10734 /regjsparser@0.10.0:
10479 resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} 10735 resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==}
10480 hasBin: true 10736 hasBin: true
10481 dependencies: 10737 dependencies:
10482 jsesc: 0.5.0 10738 jsesc: 0.5.0
@@ -10630,7 +10886,7 @@ packages:
10630 resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} 10886 resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==}
10631 hasBin: true 10887 hasBin: true
10632 dependencies: 10888 dependencies:
10633 is-core-module: 2.12.0 10889 is-core-module: 2.12.1
10634 path-parse: 1.0.7 10890 path-parse: 1.0.7
10635 supports-preserve-symlinks-flag: 1.0.0 10891 supports-preserve-symlinks-flag: 1.0.0
10636 10892
@@ -10638,7 +10894,7 @@ packages:
10638 resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} 10894 resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==}
10639 hasBin: true 10895 hasBin: true
10640 dependencies: 10896 dependencies:
10641 is-core-module: 2.12.0 10897 is-core-module: 2.12.1
10642 path-parse: 1.0.7 10898 path-parse: 1.0.7
10643 supports-preserve-symlinks-flag: 1.0.0 10899 supports-preserve-symlinks-flag: 1.0.0
10644 dev: true 10900 dev: true
@@ -10705,6 +10961,13 @@ packages:
10705 engines: {node: '>= 0.9'} 10961 engines: {node: '>= 0.9'}
10706 dev: false 10962 dev: false
10707 10963
10964 /run-applescript@5.0.0:
10965 resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==}
10966 engines: {node: '>=12'}
10967 dependencies:
10968 execa: 5.1.1
10969 dev: true
10970
10708 /run-async@2.4.1: 10971 /run-async@2.4.1:
10709 resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} 10972 resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
10710 engines: {node: '>=0.12.0'} 10973 engines: {node: '>=0.12.0'}
@@ -10728,6 +10991,16 @@ packages:
10728 dependencies: 10991 dependencies:
10729 tslib: 2.6.0 10992 tslib: 2.6.0
10730 10993
10994 /safe-array-concat@1.0.0:
10995 resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==}
10996 engines: {node: '>=0.4'}
10997 dependencies:
10998 call-bind: 1.0.2
10999 get-intrinsic: 1.2.1
11000 has-symbols: 1.0.3
11001 isarray: 2.0.5
11002 dev: true
11003
10731 /safe-buffer@5.1.2: 11004 /safe-buffer@5.1.2:
10732 resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 11005 resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
10733 11006
@@ -10742,7 +11015,7 @@ packages:
10742 resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} 11015 resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==}
10743 dependencies: 11016 dependencies:
10744 call-bind: 1.0.2 11017 call-bind: 1.0.2
10745 get-intrinsic: 1.2.0 11018 get-intrinsic: 1.2.1
10746 is-regex: 1.1.4 11019 is-regex: 1.1.4
10747 dev: true 11020 dev: true
10748 11021
@@ -10752,12 +11025,6 @@ packages:
10752 ret: 0.1.15 11025 ret: 0.1.15
10753 dev: false 11026 dev: false
10754 11027
10755 /safe-regex@2.1.1:
10756 resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==}
10757 dependencies:
10758 regexp-tree: 0.1.24
10759 dev: true
10760
10761 /safe-stable-stringify@2.4.1: 11028 /safe-stable-stringify@2.4.1:
10762 resolution: {integrity: sha512-dVHE6bMtS/bnL2mwualjc6IxEv1F+OCUpA46pKUj6F8uDbUM0jCCulPqRNPSnWwGNKx5etqMjZYdXtrm5KJZGA==} 11029 resolution: {integrity: sha512-dVHE6bMtS/bnL2mwualjc6IxEv1F+OCUpA46pKUj6F8uDbUM0jCCulPqRNPSnWwGNKx5etqMjZYdXtrm5KJZGA==}
10763 engines: {node: '>=10'} 11030 engines: {node: '>=10'}
@@ -10804,7 +11071,7 @@ packages:
10804 /semver-closest@0.1.2: 11071 /semver-closest@0.1.2:
10805 resolution: {integrity: sha512-Q6qk0bPNlK5zG62mWFC8L0Qc6OJX76XRWxiPgZyrh98IZTL3HPErgUlPfCyrAPsHVpU+YP4lf5Mz+LzpId91Og==} 11072 resolution: {integrity: sha512-Q6qk0bPNlK5zG62mWFC8L0Qc6OJX76XRWxiPgZyrh98IZTL3HPErgUlPfCyrAPsHVpU+YP4lf5Mz+LzpId91Og==}
10806 dependencies: 11073 dependencies:
10807 semver: 5.7.1 11074 semver: 5.7.2
10808 dev: false 11075 dev: false
10809 11076
10810 /semver-compare@1.0.0: 11077 /semver-compare@1.0.0:
@@ -10819,10 +11086,20 @@ packages:
10819 /semver@5.7.1: 11086 /semver@5.7.1:
10820 resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} 11087 resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
10821 hasBin: true 11088 hasBin: true
11089 dev: false
11090
11091 /semver@5.7.2:
11092 resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
11093 hasBin: true
10822 11094
10823 /semver@6.3.0: 11095 /semver@6.3.0:
10824 resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} 11096 resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
10825 hasBin: true 11097 hasBin: true
11098 dev: true
11099
11100 /semver@6.3.1:
11101 resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
11102 hasBin: true
10826 11103
10827 /semver@7.0.0: 11104 /semver@7.0.0:
10828 resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==} 11105 resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==}
@@ -11011,8 +11288,8 @@ packages:
11011 resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 11288 resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
11012 dependencies: 11289 dependencies:
11013 call-bind: 1.0.2 11290 call-bind: 1.0.2
11014 get-intrinsic: 1.1.3 11291 get-intrinsic: 1.2.1
11015 object-inspect: 1.12.2 11292 object-inspect: 1.12.3
11016 11293
11017 /signal-exit@3.0.7: 11294 /signal-exit@3.0.7:
11018 resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 11295 resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
@@ -11388,7 +11665,7 @@ packages:
11388 dependencies: 11665 dependencies:
11389 eastasianwidth: 0.2.0 11666 eastasianwidth: 0.2.0
11390 emoji-regex: 9.2.2 11667 emoji-regex: 9.2.2
11391 strip-ansi: 7.0.1 11668 strip-ansi: 7.1.0
11392 dev: true 11669 dev: true
11393 11670
11394 /string.prototype.matchall@4.0.8: 11671 /string.prototype.matchall@4.0.8:
@@ -11396,28 +11673,37 @@ packages:
11396 dependencies: 11673 dependencies:
11397 call-bind: 1.0.2 11674 call-bind: 1.0.2
11398 define-properties: 1.2.0 11675 define-properties: 1.2.0
11399 es-abstract: 1.20.4 11676 es-abstract: 1.22.1
11400 get-intrinsic: 1.2.0 11677 get-intrinsic: 1.2.1
11401 has-symbols: 1.0.3 11678 has-symbols: 1.0.3
11402 internal-slot: 1.0.3 11679 internal-slot: 1.0.5
11403 regexp.prototype.flags: 1.4.3 11680 regexp.prototype.flags: 1.5.0
11404 side-channel: 1.0.4 11681 side-channel: 1.0.4
11405 dev: true 11682 dev: true
11406 11683
11684 /string.prototype.trim@1.2.7:
11685 resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==}
11686 engines: {node: '>= 0.4'}
11687 dependencies:
11688 call-bind: 1.0.2
11689 define-properties: 1.2.0
11690 es-abstract: 1.22.1
11691 dev: true
11692
11407 /string.prototype.trimend@1.0.6: 11693 /string.prototype.trimend@1.0.6:
11408 resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} 11694 resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==}
11409 dependencies: 11695 dependencies:
11410 call-bind: 1.0.2 11696 call-bind: 1.0.2
11411 define-properties: 1.1.4 11697 define-properties: 1.2.0
11412 es-abstract: 1.20.4 11698 es-abstract: 1.22.1
11413 dev: true 11699 dev: true
11414 11700
11415 /string.prototype.trimstart@1.0.6: 11701 /string.prototype.trimstart@1.0.6:
11416 resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} 11702 resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==}
11417 dependencies: 11703 dependencies:
11418 call-bind: 1.0.2 11704 call-bind: 1.0.2
11419 define-properties: 1.1.4 11705 define-properties: 1.2.0
11420 es-abstract: 1.20.4 11706 es-abstract: 1.22.1
11421 dev: true 11707 dev: true
11422 11708
11423 /string_decoder@0.10.31: 11709 /string_decoder@0.10.31:
@@ -11447,8 +11733,8 @@ packages:
11447 dependencies: 11733 dependencies:
11448 ansi-regex: 5.0.1 11734 ansi-regex: 5.0.1
11449 11735
11450 /strip-ansi@7.0.1: 11736 /strip-ansi@7.1.0:
11451 resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} 11737 resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
11452 engines: {node: '>=12'} 11738 engines: {node: '>=12'}
11453 dependencies: 11739 dependencies:
11454 ansi-regex: 6.0.1 11740 ansi-regex: 6.0.1
@@ -11479,6 +11765,11 @@ packages:
11479 resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 11765 resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
11480 engines: {node: '>=6'} 11766 engines: {node: '>=6'}
11481 11767
11768 /strip-final-newline@3.0.0:
11769 resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
11770 engines: {node: '>=12'}
11771 dev: true
11772
11482 /strip-indent@3.0.0: 11773 /strip-indent@3.0.0:
11483 resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 11774 resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
11484 engines: {node: '>=8'} 11775 engines: {node: '>=8'}
@@ -11534,6 +11825,14 @@ packages:
11534 engines: {node: '>=0.10.0'} 11825 engines: {node: '>=0.10.0'}
11535 dev: false 11826 dev: false
11536 11827
11828 /synckit@0.8.5:
11829 resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==}
11830 engines: {node: ^14.18.0 || >=16.0.0}
11831 dependencies:
11832 '@pkgr/utils': 2.4.2
11833 tslib: 2.6.0
11834 dev: true
11835
11537 /syntax-error@1.4.0: 11836 /syntax-error@1.4.0:
11538 resolution: {integrity: sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==} 11837 resolution: {integrity: sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==}
11539 dependencies: 11838 dependencies:
@@ -11675,6 +11974,11 @@ packages:
11675 resolution: {integrity: sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==} 11974 resolution: {integrity: sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==}
11676 dev: false 11975 dev: false
11677 11976
11977 /titleize@3.0.0:
11978 resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==}
11979 engines: {node: '>=12'}
11980 dev: true
11981
11678 /tmp-promise@3.0.3: 11982 /tmp-promise@3.0.3:
11679 resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} 11983 resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==}
11680 dependencies: 11984 dependencies:
@@ -11785,6 +12089,15 @@ packages:
11785 dependencies: 12089 dependencies:
11786 utf8-byte-length: 1.0.4 12090 utf8-byte-length: 1.0.4
11787 12091
12092 /ts-api-utils@1.0.1(typescript@5.0.4):
12093 resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==}
12094 engines: {node: '>=16.13.0'}
12095 peerDependencies:
12096 typescript: '>=4.2.0'
12097 dependencies:
12098 typescript: 5.0.4
12099 dev: true
12100
11788 /ts-node@10.9.1(@types/node@18.15.3)(typescript@5.0.4): 12101 /ts-node@10.9.1(@types/node@18.15.3)(typescript@5.0.4):
11789 resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} 12102 resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
11790 hasBin: true 12103 hasBin: true
@@ -11805,7 +12118,7 @@ packages:
11805 '@tsconfig/node14': 1.0.3 12118 '@tsconfig/node14': 1.0.3
11806 '@tsconfig/node16': 1.0.4 12119 '@tsconfig/node16': 1.0.4
11807 '@types/node': 18.15.3 12120 '@types/node': 18.15.3
11808 acorn: 8.8.2 12121 acorn: 8.10.0
11809 acorn-walk: 8.2.0 12122 acorn-walk: 8.2.0
11810 arg: 4.1.3 12123 arg: 4.1.3
11811 create-require: 1.1.1 12124 create-require: 1.1.1
@@ -11927,6 +12240,44 @@ packages:
11927 resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} 12240 resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==}
11928 dev: false 12241 dev: false
11929 12242
12243 /typed-array-buffer@1.0.0:
12244 resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==}
12245 engines: {node: '>= 0.4'}
12246 dependencies:
12247 call-bind: 1.0.2
12248 get-intrinsic: 1.2.1
12249 is-typed-array: 1.1.12
12250 dev: true
12251
12252 /typed-array-byte-length@1.0.0:
12253 resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==}
12254 engines: {node: '>= 0.4'}
12255 dependencies:
12256 call-bind: 1.0.2
12257 for-each: 0.3.3
12258 has-proto: 1.0.1
12259 is-typed-array: 1.1.12
12260 dev: true
12261
12262 /typed-array-byte-offset@1.0.0:
12263 resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==}
12264 engines: {node: '>= 0.4'}
12265 dependencies:
12266 available-typed-arrays: 1.0.5
12267 call-bind: 1.0.2
12268 for-each: 0.3.3
12269 has-proto: 1.0.1
12270 is-typed-array: 1.1.12
12271 dev: true
12272
12273 /typed-array-length@1.0.4:
12274 resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
12275 dependencies:
12276 call-bind: 1.0.2
12277 for-each: 0.3.3
12278 is-typed-array: 1.1.12
12279 dev: true
12280
11930 /typed-emitter@2.1.0: 12281 /typed-emitter@2.1.0:
11931 resolution: {integrity: sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==} 12282 resolution: {integrity: sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==}
11932 optionalDependencies: 12283 optionalDependencies:
@@ -12040,6 +12391,11 @@ packages:
12040 engines: {node: '>=4'} 12391 engines: {node: '>=4'}
12041 dev: false 12392 dev: false
12042 12393
12394 /untildify@4.0.0:
12395 resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
12396 engines: {node: '>=8'}
12397 dev: true
12398
12043 /unused-filename@2.1.0: 12399 /unused-filename@2.1.0:
12044 resolution: {integrity: sha512-BMiNwJbuWmqCpAM1FqxCTD7lXF97AvfQC8Kr/DIeA6VtvhJaMDupZ82+inbjl5yVP44PcxOuCSxye1QMS0wZyg==} 12400 resolution: {integrity: sha512-BMiNwJbuWmqCpAM1FqxCTD7lXF97AvfQC8Kr/DIeA6VtvhJaMDupZ82+inbjl5yVP44PcxOuCSxye1QMS0wZyg==}
12045 engines: {node: '>=8'} 12401 engines: {node: '>=8'}
@@ -12273,8 +12629,8 @@ packages:
12273 resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} 12629 resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==}
12274 dev: true 12630 dev: true
12275 12631
12276 /which-typed-array@1.1.9: 12632 /which-typed-array@1.1.11:
12277 resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} 12633 resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==}
12278 engines: {node: '>= 0.4'} 12634 engines: {node: '>= 0.4'}
12279 dependencies: 12635 dependencies:
12280 available-typed-arrays: 1.0.5 12636 available-typed-arrays: 1.0.5
@@ -12282,7 +12638,6 @@ packages:
12282 for-each: 0.3.3 12638 for-each: 0.3.3
12283 gopd: 1.0.1 12639 gopd: 1.0.1
12284 has-tostringtag: 1.0.0 12640 has-tostringtag: 1.0.0
12285 is-typed-array: 1.1.10
12286 dev: true 12641 dev: true
12287 12642
12288 /which@1.3.1: 12643 /which@1.3.1:
@@ -12350,11 +12705,6 @@ packages:
12350 winston-transport: 4.5.0 12705 winston-transport: 4.5.0
12351 dev: false 12706 dev: false
12352 12707
12353 /word-wrap@1.2.3:
12354 resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
12355 engines: {node: '>=0.10.0'}
12356 dev: true
12357
12358 /wrap-ansi@6.2.0: 12708 /wrap-ansi@6.2.0:
12359 resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} 12709 resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
12360 engines: {node: '>=8'} 12710 engines: {node: '>=8'}
@@ -12379,7 +12729,7 @@ packages:
12379 dependencies: 12729 dependencies:
12380 ansi-styles: 6.2.1 12730 ansi-styles: 6.2.1
12381 string-width: 5.1.2 12731 string-width: 5.1.2
12382 strip-ansi: 7.0.1 12732 strip-ansi: 7.1.0
12383 dev: true 12733 dev: true
12384 12734
12385 /wrappy@1.0.2: 12735 /wrappy@1.0.2:
diff --git a/src/@types/ferdium.types.ts b/src/@types/ferdium.types.ts
index 70306f5fb..f54fb64ae 100644
--- a/src/@types/ferdium.types.ts
+++ b/src/@types/ferdium.types.ts
@@ -3,6 +3,7 @@ declare global {
3 ferdium: any; 3 ferdium: any;
4 } 4 }
5 5
6 // eslint-disable-next-line @typescript-eslint/no-namespace
6 namespace NodeJS { 7 namespace NodeJS {
7 interface ProcessEnv { 8 interface ProcessEnv {
8 GITHUB_AUTH_TOKEN: string; 9 GITHUB_AUTH_TOKEN: string;
diff --git a/src/@types/stores.types.ts b/src/@types/stores.types.ts
index edea41ea9..ff8f127ed 100644
--- a/src/@types/stores.types.ts
+++ b/src/@types/stores.types.ts
@@ -59,6 +59,7 @@ interface Actions {
59interface Api { 59interface Api {
60 app: AppStore; 60 app: AppStore;
61 features: FeaturesStore; 61 features: FeaturesStore;
62 // eslint-disable-next-line @typescript-eslint/ban-types
62 local: {}; 63 local: {};
63 recipePreviews: RecipePreviewsStore; 64 recipePreviews: RecipePreviewsStore;
64 recipes: RecipeStore; 65 recipes: RecipeStore;
diff --git a/src/actions/lib/actions.ts b/src/actions/lib/actions.ts
index faf576fd8..d3fd5f27c 100644
--- a/src/actions/lib/actions.ts
+++ b/src/actions/lib/actions.ts
@@ -8,6 +8,7 @@ export interface Actions {
8 [key: string]: { 8 [key: string]: {
9 [key: string]: { 9 [key: string]: {
10 (...args: any[]): void; 10 (...args: any[]): void;
11 // eslint-disable-next-line @typescript-eslint/ban-types
11 listeners: Function[]; 12 listeners: Function[];
12 notify: (params: any) => void; 13 notify: (params: any) => void;
13 listen: (listener: (params: any) => void) => void; 14 listen: (listener: (params: any) => void) => void;
diff --git a/src/api/apiBase.ts b/src/api/apiBase.ts
index bc2cb3dd1..649895fbc 100644
--- a/src/api/apiBase.ts
+++ b/src/api/apiBase.ts
@@ -14,12 +14,7 @@ import { fixUrl } from '../helpers/url-helpers';
14 14
15// Note: This cannot be used from the internal-server since we are not running within the context of a browser window 15// Note: This cannot be used from the internal-server since we are not running within the context of a browser window
16export default function apiBase(withVersion = true) { 16export default function apiBase(withVersion = true) {
17 if ( 17 if (!(window as any).ferdium?.stores.settings?.all?.app.server) {
18 !(window as any).ferdium ||
19 !(window as any).ferdium.stores.settings ||
20 !(window as any).ferdium.stores.settings.all ||
21 !(window as any).ferdium.stores.settings.all.app.server
22 ) {
23 // Stores have not yet been loaded - return SERVER_NOT_LOADED to force a retry when stores are loaded 18 // Stores have not yet been loaded - return SERVER_NOT_LOADED to force a retry when stores are loaded
24 return SERVER_NOT_LOADED; 19 return SERVER_NOT_LOADED;
25 } 20 }
diff --git a/src/api/server/ServerApi.ts b/src/api/server/ServerApi.ts
index a3d873c65..860b7b76e 100644
--- a/src/api/server/ServerApi.ts
+++ b/src/api/server/ServerApi.ts
@@ -507,7 +507,7 @@ export default class ServerApi {
507 async _mapServiceModels(services: any[]) { 507 async _mapServiceModels(services: any[]) {
508 const recipes = services.map((s: { recipeId: string }) => s.recipeId); 508 const recipes = services.map((s: { recipeId: string }) => s.recipeId);
509 await this._bulkRecipeCheck(recipes); 509 await this._bulkRecipeCheck(recipes);
510 /* eslint-disable no-return-await */ 510
511 return Promise.all( 511 return Promise.all(
512 services.map(async (service: any) => this._prepareServiceModel(service)), 512 services.map(async (service: any) => this._prepareServiceModel(service)),
513 ); 513 );
diff --git a/src/app.tsx b/src/app.tsx
index 4d4100c40..77ec27021 100644
--- a/src/app.tsx
+++ b/src/app.tsx
@@ -24,7 +24,7 @@ window.addEventListener('load', () => {
24 const api = apiFactory(serverApi, new LocalApi()); 24 const api = apiFactory(serverApi, new LocalApi());
25 const history = createHashHistory(); 25 const history = createHashHistory();
26 const router = new RouterStore(history); 26 const router = new RouterStore(history);
27 // @ts-ignore - Need to provide proper typings for actions 27 // @ts-expect-error - Need to provide proper typings for actions
28 const stores = storeFactory(api, actions, router); 28 const stores = storeFactory(api, actions, router);
29 const menu = new MenuFactory(stores, actions); 29 const menu = new MenuFactory(stores, actions);
30 const touchBar = new TouchBarFactory(stores, actions); 30 const touchBar = new TouchBarFactory(stores, actions);
diff --git a/src/components/AppUpdateInfoBar.tsx b/src/components/AppUpdateInfoBar.tsx
index b27578d10..b8e1bb61e 100644
--- a/src/components/AppUpdateInfoBar.tsx
+++ b/src/components/AppUpdateInfoBar.tsx
@@ -38,6 +38,7 @@ const AppUpdateInfoBar = (props: IProps) => {
38 type="primary" 38 type="primary"
39 ctaLabel={intl.formatMessage(messages.buttonInstallUpdate)} 39 ctaLabel={intl.formatMessage(messages.buttonInstallUpdate)}
40 onClick={event => { 40 onClick={event => {
41 // eslint-disable-next-line @typescript-eslint/no-unused-expressions
41 !isWinPortable && onInstallUpdate(event); 42 !isWinPortable && onInstallUpdate(event);
42 }} 43 }}
43 onHide={onHide} 44 onHide={onHide}
diff --git a/src/components/auth/Login.tsx b/src/components/auth/Login.tsx
index 0a95b0565..eaa04256c 100644
--- a/src/components/auth/Login.tsx
+++ b/src/components/auth/Login.tsx
@@ -68,7 +68,6 @@ interface IProps extends WrappedComponentProps {
68 isTokenExpired: boolean; 68 isTokenExpired: boolean;
69 isServerLogout: boolean; 69 isServerLogout: boolean;
70 signupRoute: string; 70 signupRoute: string;
71 // eslint-disable-next-line react/no-unused-prop-types
72 passwordRoute: string; // TODO: Uncomment this line after fixing password recovery in-app 71 passwordRoute: string; // TODO: Uncomment this line after fixing password recovery in-app
73 error: GlobalError; 72 error: GlobalError;
74} 73}
diff --git a/src/components/auth/Welcome.tsx b/src/components/auth/Welcome.tsx
index 1aa8da4d6..047512ea4 100644
--- a/src/components/auth/Welcome.tsx
+++ b/src/components/auth/Welcome.tsx
@@ -44,10 +44,6 @@ interface IProps extends Partial<StoresProps>, WrappedComponentProps {
44@inject('actions') 44@inject('actions')
45@observer 45@observer
46class Welcome extends Component<IProps> { 46class Welcome extends Component<IProps> {
47 constructor(props: IProps) {
48 super(props);
49 }
50
51 useLocalServer(): void { 47 useLocalServer(): void {
52 serverlessLogin(this.props.actions); 48 serverlessLogin(this.props.actions);
53 } 49 }
diff --git a/src/components/layout/Sidebar.tsx b/src/components/layout/Sidebar.tsx
index 2b1e87023..ceb9cfff9 100644
--- a/src/components/layout/Sidebar.tsx
+++ b/src/components/layout/Sidebar.tsx
@@ -205,133 +205,131 @@ class Sidebar extends Component<IProps, IState> {
205 hibernateService={this.props.hibernateService} 205 hibernateService={this.props.hibernateService}
206 wakeUpService={this.props.wakeUpService} 206 wakeUpService={this.props.wakeUpService}
207 /> 207 />
208 <> 208 {numberActiveButtons <= 1 || hideCollapseButton ? null : (
209 {numberActiveButtons <= 1 || hideCollapseButton ? null : ( 209 <button
210 <button 210 type="button"
211 type="button" 211 onClick={() => toggleCollapseMenu()}
212 onClick={() => toggleCollapseMenu()} 212 className="sidebar__button sidebar__button--hamburger-menu"
213 className="sidebar__button sidebar__button--hamburger-menu" 213 >
214 > 214 {isMenuCollapsed ? <Icon icon={mdiMenu} size={1.5} /> : null}
215 {isMenuCollapsed ? <Icon icon={mdiMenu} size={1.5} /> : null}
216 215
217 {!isMenuCollapsed && !useHorizontalStyle ? ( 216 {!isMenuCollapsed && !useHorizontalStyle ? (
218 <Icon icon={mdiChevronDown} size={1.5} /> 217 <Icon icon={mdiChevronDown} size={1.5} />
219 ) : null} 218 ) : null}
220 219
221 {!isMenuCollapsed && useHorizontalStyle ? ( 220 {!isMenuCollapsed && useHorizontalStyle ? (
222 <Icon icon={mdiChevronRight} size={1.5} /> 221 <Icon icon={mdiChevronRight} size={1.5} />
223 ) : null} 222 ) : null}
224 </button> 223 </button>
225 )} 224 )}
226 {!hideRecipesButton && !isMenuCollapsed ? ( 225 {!hideRecipesButton && !isMenuCollapsed ? (
227 <button 226 <button
228 type="button" 227 type="button"
229 onClick={() => openSettings({ path: 'recipes' })} 228 onClick={() => openSettings({ path: 'recipes' })}
230 className="sidebar__button sidebar__button--new-service" 229 className="sidebar__button sidebar__button--new-service"
231 data-tooltip-id="tooltip-sidebar-button" 230 data-tooltip-id="tooltip-sidebar-button"
232 data-tooltip-content={`${intl.formatMessage( 231 data-tooltip-content={`${intl.formatMessage(
233 messages.addNewService, 232 messages.addNewService,
234 )} (${addNewServiceShortcutKey(false)})`} 233 )} (${addNewServiceShortcutKey(false)})`}
235 > 234 >
236 <Icon icon={mdiPlusBox} size={1.5} /> 235 <Icon icon={mdiPlusBox} size={1.5} />
237 </button> 236 </button>
238 ) : null} 237 ) : null}
239 {!hideSplitModeButton && !isMenuCollapsed ? ( 238 {!hideSplitModeButton && !isMenuCollapsed ? (
240 <button 239 <button
241 type="button" 240 type="button"
242 onClick={() => { 241 onClick={() => {
243 actions!.settings.update({ 242 actions!.settings.update({
244 type: 'app', 243 type: 'app',
245 data: { 244 data: {
246 splitMode: !splitMode, 245 splitMode: !splitMode,
247 }, 246 },
248 }); 247 });
249 }} 248 }}
250 className="sidebar__button sidebar__button--split-mode-toggle" 249 className="sidebar__button sidebar__button--split-mode-toggle"
251 data-tooltip-id="tooltip-sidebar-button" 250 data-tooltip-id="tooltip-sidebar-button"
252 data-tooltip-content={`${intl.formatMessage( 251 data-tooltip-content={`${intl.formatMessage(
253 messages.splitModeToggle, 252 messages.splitModeToggle,
254 )} (${splitModeToggleShortcutKey(false)})`} 253 )} (${splitModeToggleShortcutKey(false)})`}
255 > 254 >
256 <Icon icon={mdiViewSplitVertical} size={1.5} /> 255 <Icon icon={mdiViewSplitVertical} size={1.5} />
257 </button> 256 </button>
258 ) : null} 257 ) : null}
259 {!hideWorkspacesButton && !isMenuCollapsed ? ( 258 {!hideWorkspacesButton && !isMenuCollapsed ? (
260 <button 259 <button
261 type="button" 260 type="button"
262 onClick={() => { 261 onClick={() => {
263 toggleWorkspaceDrawer(); 262 toggleWorkspaceDrawer();
264 this.updateToolTip(); 263 this.updateToolTip();
265 }} 264 }}
266 className={`sidebar__button sidebar__button--workspaces ${ 265 className={`sidebar__button sidebar__button--workspaces ${
267 isWorkspaceDrawerOpen ? 'is-active' : '' 266 isWorkspaceDrawerOpen ? 'is-active' : ''
268 }`} 267 }`}
269 data-tooltip-id="tooltip-sidebar-button" 268 data-tooltip-id="tooltip-sidebar-button"
270 data-tooltip-content={`${intl.formatMessage( 269 data-tooltip-content={`${intl.formatMessage(
271 workspaceToggleMessage, 270 workspaceToggleMessage,
272 )} (${workspaceToggleShortcutKey(false)})`} 271 )} (${workspaceToggleShortcutKey(false)})`}
273 > 272 >
274 <Icon icon={mdiViewGrid} size={1.5} /> 273 <Icon icon={mdiViewGrid} size={1.5} />
275 </button> 274 </button>
276 ) : null} 275 ) : null}
277 {!hideNotificationsButton && !isMenuCollapsed ? ( 276 {!hideNotificationsButton && !isMenuCollapsed ? (
278 <button 277 <button
279 type="button" 278 type="button"
280 onClick={() => { 279 onClick={() => {
281 toggleMuteApp(); 280 toggleMuteApp();
282 this.updateToolTip(); 281 this.updateToolTip();
283 }} 282 }}
284 className={`sidebar__button sidebar__button--audio ${ 283 className={`sidebar__button sidebar__button--audio ${
285 isAppMuted ? 'is-muted' : '' 284 isAppMuted ? 'is-muted' : ''
286 }`} 285 }`}
287 data-tooltip-id="tooltip-sidebar-button" 286 data-tooltip-id="tooltip-sidebar-button"
288 data-tooltip-content={`${intl.formatMessage( 287 data-tooltip-content={`${intl.formatMessage(
289 isAppMuted ? messages.unmute : messages.mute, 288 isAppMuted ? messages.unmute : messages.mute,
290 )} (${muteFerdiumShortcutKey(false)})`} 289 )} (${muteFerdiumShortcutKey(false)})`}
291 > 290 >
292 <Icon icon={isAppMuted ? mdiBellOff : mdiBell} size={1.5} /> 291 <Icon icon={isAppMuted ? mdiBellOff : mdiBell} size={1.5} />
293 </button> 292 </button>
294 ) : null} 293 ) : null}
295 {todosStore.isFeatureEnabledByUser && !isMenuCollapsed ? ( 294 {todosStore.isFeatureEnabledByUser && !isMenuCollapsed ? (
296 <button 295 <button
297 type="button" 296 type="button"
298 onClick={() => { 297 onClick={() => {
299 todoActions.toggleTodosPanel(); 298 todoActions.toggleTodosPanel();
300 this.updateToolTip(); 299 this.updateToolTip();
301 }} 300 }}
302 disabled={isTodosServiceActive} 301 disabled={isTodosServiceActive}
303 className={`sidebar__button sidebar__button--todos ${ 302 className={`sidebar__button sidebar__button--todos ${
304 todosStore.isTodosPanelVisible ? 'is-active' : '' 303 todosStore.isTodosPanelVisible ? 'is-active' : ''
305 }`} 304 }`}
306 data-tooltip-id="tooltip-sidebar-button" 305 data-tooltip-id="tooltip-sidebar-button"
307 data-tooltip-content={`${intl.formatMessage( 306 data-tooltip-content={`${intl.formatMessage(
308 todosToggleMessage, 307 todosToggleMessage,
309 )} (${todosToggleShortcutKey(false)})`} 308 )} (${todosToggleShortcutKey(false)})`}
310 > 309 >
311 <Icon icon={mdiCheckAll} size={1.5} /> 310 <Icon icon={mdiCheckAll} size={1.5} />
312 </button> 311 </button>
313 ) : null} 312 ) : null}
314 {stores!.settings.all.app.lockingFeatureEnabled ? ( 313 {stores!.settings.all.app.lockingFeatureEnabled ? (
315 <button 314 <button
316 type="button" 315 type="button"
317 className="sidebar__button" 316 className="sidebar__button"
318 onClick={() => { 317 onClick={() => {
319 actions!.settings.update({ 318 actions!.settings.update({
320 type: 'app', 319 type: 'app',
321 data: { 320 data: {
322 locked: true, 321 locked: true,
323 }, 322 },
324 }); 323 });
325 }} 324 }}
326 data-tooltip-id="tooltip-sidebar-button" 325 data-tooltip-id="tooltip-sidebar-button"
327 data-tooltip-content={`${intl.formatMessage( 326 data-tooltip-content={`${intl.formatMessage(
328 messages.lockFerdium, 327 messages.lockFerdium,
329 )} (${lockFerdiumShortcutKey(false)})`} 328 )} (${lockFerdiumShortcutKey(false)})`}
330 > 329 >
331 <Icon icon={mdiLock} size={1.5} /> 330 <Icon icon={mdiLock} size={1.5} />
332 </button> 331 </button>
333 ) : null} 332 ) : null}
334 </>
335 {this.state.tooltipEnabled && ( 333 {this.state.tooltipEnabled && (
336 <ReactTooltip 334 <ReactTooltip
337 id="tooltip-sidebar-button" 335 id="tooltip-sidebar-button"
diff --git a/src/components/services/tabs/TabBarSortableList.tsx b/src/components/services/tabs/TabBarSortableList.tsx
index 5f711c30d..a30587470 100644
--- a/src/components/services/tabs/TabBarSortableList.tsx
+++ b/src/components/services/tabs/TabBarSortableList.tsx
@@ -51,7 +51,7 @@ class TabBarSortableList extends Component<IProps> {
51 {services.map((service, index) => ( 51 {services.map((service, index) => (
52 <TabItem 52 <TabItem
53 key={service.id} 53 key={service.id}
54 // @ts-ignore 54 // @ts-expect-error Fix me
55 clickHandler={() => setActive({ serviceId: service.id })} 55 clickHandler={() => setActive({ serviceId: service.id })}
56 service={service} 56 service={service}
57 index={index} 57 index={index}
diff --git a/src/components/services/tabs/TabItem.tsx b/src/components/services/tabs/TabItem.tsx
index c25af4427..287dedfcb 100644
--- a/src/components/services/tabs/TabItem.tsx
+++ b/src/components/services/tabs/TabItem.tsx
@@ -234,7 +234,7 @@ class TabItem extends Component<IProps, IState> {
234 } = this.props; 234 } = this.props;
235 const { intl } = this.props; 235 const { intl } = this.props;
236 236
237 const menuTemplate: Array<MenuItemConstructorOptions> = [ 237 const menuTemplate: MenuItemConstructorOptions[] = [
238 { 238 {
239 label: service.name || service.recipe.name, 239 label: service.name || service.recipe.name,
240 enabled: false, 240 enabled: false,
@@ -295,7 +295,7 @@ class TabItem extends Component<IProps, IState> {
295 ? messages.wakeUpService 295 ? messages.wakeUpService
296 : messages.hibernateService, 296 : messages.hibernateService,
297 ), 297 ),
298 // eslint-disable-next-line no-confusing-arrow 298
299 click: () => 299 click: () =>
300 service.isHibernating ? wakeUpService() : hibernateService(), 300 service.isHibernating ? wakeUpService() : hibernateService(),
301 enabled: service.isEnabled && service.canHibernate, 301 enabled: service.isEnabled && service.canHibernate,
@@ -311,7 +311,7 @@ class TabItem extends Component<IProps, IState> {
311 { 311 {
312 label: intl.formatMessage(messages.deleteService), 312 label: intl.formatMessage(messages.deleteService),
313 click: () => { 313 click: () => {
314 // @ts-ignore 314 // @ts-expect-error Fix me
315 const selection = dialog.showMessageBoxSync(app.mainWindow, { 315 const selection = dialog.showMessageBoxSync(app.mainWindow, {
316 type: 'question', 316 type: 'question',
317 message: intl.formatMessage(messages.deleteService), 317 message: intl.formatMessage(messages.deleteService),
@@ -417,6 +417,6 @@ class TabItem extends Component<IProps, IState> {
417} 417}
418 418
419export default injectIntl( 419export default injectIntl(
420 // @ts-ignore 420 // @ts-expect-error Fix me
421 SortableElement(injectSheet(styles, { injectTheme: true })(TabItem)), 421 SortableElement(injectSheet(styles, { injectTheme: true })(TabItem)),
422); 422);
diff --git a/src/components/services/tabs/Tabbar.tsx b/src/components/services/tabs/Tabbar.tsx
index f09877b2f..d19a4b8de 100644
--- a/src/components/services/tabs/Tabbar.tsx
+++ b/src/components/services/tabs/Tabbar.tsx
@@ -99,7 +99,7 @@ class TabBar extends Component<IProps> {
99 return ( 99 return (
100 <div> 100 <div>
101 <TabBarSortableList 101 <TabBarSortableList
102 // @ts-ignore 102 // @ts-expect-error Fix me
103 services={services} 103 services={services}
104 setActive={setActive} 104 setActive={setActive}
105 onSortEnd={this.onSortEnd} 105 onSortEnd={this.onSortEnd}
diff --git a/src/components/settings/navigation/SettingsNavigation.tsx b/src/components/settings/navigation/SettingsNavigation.tsx
index 6ffaa411f..66763c6a6 100644
--- a/src/components/settings/navigation/SettingsNavigation.tsx
+++ b/src/components/settings/navigation/SettingsNavigation.tsx
@@ -53,10 +53,6 @@ interface IProps extends Partial<StoresProps>, WrappedComponentProps {
53@inject('stores', 'actions') 53@inject('stores', 'actions')
54@observer 54@observer
55class SettingsNavigation extends Component<IProps> { 55class SettingsNavigation extends Component<IProps> {
56 constructor(props: IProps) {
57 super(props);
58 }
59
60 handleLogout(): void { 56 handleLogout(): void {
61 const isUsingWithoutAccount = 57 const isUsingWithoutAccount =
62 this.props.stores!.settings.app.server === LOCAL_SERVER; 58 this.props.stores!.settings.app.server === LOCAL_SERVER;
@@ -186,7 +182,7 @@ class SettingsNavigation extends Component<IProps> {
186 <span className="settings-navigation__expander" /> 182 <span className="settings-navigation__expander" />
187 <button 183 <button
188 type="button" 184 type="button"
189 // @ts-ignore 185 // @ts-expect-error Fix me
190 to="/auth/logout" // TODO: [TS DEBT] Need to check if button take this prop 186 to="/auth/logout" // TODO: [TS DEBT] Need to check if button take this prop
191 className="settings-navigation__link" 187 className="settings-navigation__link"
192 onClick={this.handleLogout.bind(this)} 188 onClick={this.handleLogout.bind(this)}
diff --git a/src/components/settings/supportFerdium/SupportFerdiumDashboard.tsx b/src/components/settings/supportFerdium/SupportFerdiumDashboard.tsx
index f3b7c718c..065690fb5 100644
--- a/src/components/settings/supportFerdium/SupportFerdiumDashboard.tsx
+++ b/src/components/settings/supportFerdium/SupportFerdiumDashboard.tsx
@@ -50,7 +50,7 @@ const SupportFerdiumDashboard = () => {
50 src="https://img.shields.io/github/stars/ferdium/ferdium-app?style=social" 50 src="https://img.shields.io/github/stars/ferdium/ferdium-app?style=social"
51 /> 51 />
52 </a> 52 </a>
53 <a target="_blank" href={FERDIUM_TRANSLATION}> 53 <a target="_blank" href={FERDIUM_TRANSLATION} rel="noreferrer">
54 <img 54 <img
55 src="https://badges.crowdin.net/ferdium-app/localized.svg" 55 src="https://badges.crowdin.net/ferdium-app/localized.svg"
56 alt="Crowdin" 56 alt="Crowdin"
diff --git a/src/components/ui/AppLoader/index.tsx b/src/components/ui/AppLoader/index.tsx
index f4d9b8e73..64c840aaa 100644
--- a/src/components/ui/AppLoader/index.tsx
+++ b/src/components/ui/AppLoader/index.tsx
@@ -61,18 +61,17 @@ class AppLoader extends Component<IProps, IState> {
61 className={classes.component} 61 className={classes.component}
62 spinnerColor={theme.colorAppLoaderSpinner} 62 spinnerColor={theme.colorAppLoaderSpinner}
63 > 63 >
64 {texts && 64 {texts?.map((text, i) => (
65 texts.map((text, i) => ( 65 <span
66 <span 66 key={text}
67 key={text} 67 className={classnames({
68 className={classnames({ 68 [`${classes.slogan}`]: true,
69 [`${classes.slogan}`]: true, 69 [`${classes.visible}`]: step === i,
70 [`${classes.visible}`]: step === i, 70 })}
71 })} 71 >
72 > 72 {text}
73 {text} 73 </span>
74 </span> 74 ))}
75 ))}
76 </FullscreenLoader> 75 </FullscreenLoader>
77 ); 76 );
78 } 77 }
diff --git a/src/components/ui/Link.tsx b/src/components/ui/Link.tsx
index b5890ebd1..a9a429d3a 100644
--- a/src/components/ui/Link.tsx
+++ b/src/components/ui/Link.tsx
@@ -20,10 +20,6 @@ interface IProps extends Partial<StoresProps> {
20@inject('stores') 20@inject('stores')
21@observer 21@observer
22class Link extends Component<IProps> { 22class Link extends Component<IProps> {
23 constructor(props: IProps) {
24 super(props);
25 }
26
27 onClick(e: MouseEvent<HTMLAnchorElement>): void { 23 onClick(e: MouseEvent<HTMLAnchorElement>): void {
28 const { disabled = false, target = '', to } = this.props; 24 const { disabled = false, target = '', to } = this.props;
29 if (disabled) { 25 if (disabled) {
diff --git a/src/components/ui/Select.tsx b/src/components/ui/Select.tsx
index 8ae2945ce..a2ed4216f 100644
--- a/src/components/ui/Select.tsx
+++ b/src/components/ui/Select.tsx
@@ -24,10 +24,6 @@ class Select extends Component<IProps> {
24 private element: RefObject<HTMLSelectElement> = 24 private element: RefObject<HTMLSelectElement> =
25 createRef<HTMLSelectElement>(); 25 createRef<HTMLSelectElement>();
26 26
27 constructor(props: IProps) {
28 super(props);
29 }
30
31 multipleChange(e: ChangeEvent<HTMLSelectElement>): void { 27 multipleChange(e: ChangeEvent<HTMLSelectElement>): void {
32 e.preventDefault(); 28 e.preventDefault();
33 if (!this.element.current) { 29 if (!this.element.current) {
diff --git a/src/components/ui/Tabs/Tabs.tsx b/src/components/ui/Tabs/Tabs.tsx
index 2c34d7e24..d7f75c8b8 100644
--- a/src/components/ui/Tabs/Tabs.tsx
+++ b/src/components/ui/Tabs/Tabs.tsx
@@ -41,6 +41,7 @@ class Tab extends Component<IProps, IState> {
41 <div className="content-tabs__tabs"> 41 <div className="content-tabs__tabs">
42 {Children.map(children, (child, i) => ( 42 {Children.map(children, (child, i) => (
43 <button 43 <button
44 // eslint-disable-next-line react/no-array-index-key
44 key={i} 45 key={i}
45 className={classnames({ 46 className={classnames({
46 'content-tabs__item': true, 47 'content-tabs__item': true,
@@ -56,6 +57,7 @@ class Tab extends Component<IProps, IState> {
56 <div className="content-tabs__content"> 57 <div className="content-tabs__content">
57 {Children.map(children, (child, i) => ( 58 {Children.map(children, (child, i) => (
58 <div 59 <div
60 // eslint-disable-next-line react/no-array-index-key
59 key={i} 61 key={i}
60 className={classnames({ 62 className={classnames({
61 'content-tabs__item': true, 63 'content-tabs__item': true,
diff --git a/src/components/ui/WebviewLoader/index.tsx b/src/components/ui/WebviewLoader/index.tsx
index 81923b6ca..c4e9c724c 100644
--- a/src/components/ui/WebviewLoader/index.tsx
+++ b/src/components/ui/WebviewLoader/index.tsx
@@ -32,7 +32,7 @@ class WebviewLoader extends Component<IProps> {
32 return ( 32 return (
33 <FullscreenLoader 33 <FullscreenLoader
34 className={classes.component} 34 className={classes.component}
35 title={`${intl.formatMessage(messages.loading, { service: name })}`} 35 title={intl.formatMessage(messages.loading, { service: name })}
36 loaded={loaded} 36 loaded={loaded}
37 /> 37 />
38 ); 38 );
diff --git a/src/components/ui/colorPickerInput/index.tsx b/src/components/ui/colorPickerInput/index.tsx
index 9bab6efec..2367175bd 100644
--- a/src/components/ui/colorPickerInput/index.tsx
+++ b/src/components/ui/colorPickerInput/index.tsx
@@ -25,7 +25,7 @@ class ColorPickerInput extends Component<IProps> {
25 25
26 componentDidMount(): void { 26 componentDidMount(): void {
27 const { focus = false } = this.props; 27 const { focus = false } = this.props;
28 if (focus && this.inputElement && this.inputElement.current) { 28 if (focus && this.inputElement?.current) {
29 this.inputElement.current.focus(); 29 this.inputElement.current.focus();
30 } 30 }
31 } 31 }
diff --git a/src/components/ui/headline/index.tsx b/src/components/ui/headline/index.tsx
index bebd8adcf..424190a6a 100644
--- a/src/components/ui/headline/index.tsx
+++ b/src/components/ui/headline/index.tsx
@@ -67,12 +67,11 @@ class HeadlineComponent extends Component<IProps> {
67} 67}
68 68
69const Headline = injectStyle(styles, { injectTheme: true })(HeadlineComponent); 69const Headline = injectStyle(styles, { injectTheme: true })(HeadlineComponent);
70const createH = (level: number) => (props: Omit<IProps, 'classes'>) => 70const createH = (level: number) => (props: Omit<IProps, 'classes'>) => (
71 ( 71 <Headline level={level} {...props}>
72 <Headline level={level} {...props}> 72 {props.children}
73 {props.children} 73 </Headline>
74 </Headline> 74);
75 );
76 75
77export const H1 = createH(1); 76export const H1 = createH(1);
78export const H2 = createH(2); 77export const H2 = createH(2);
diff --git a/src/components/ui/select/index.tsx b/src/components/ui/select/index.tsx
index 017de5423..902eb7748 100644
--- a/src/components/ui/select/index.tsx
+++ b/src/components/ui/select/index.tsx
@@ -301,11 +301,7 @@ class SelectComponent extends Component<IProps, IState> {
301 this.select(Object.keys(options!)[selected]); 301 this.select(Object.keys(options!)[selected]);
302 } 302 }
303 303
304 if ( 304 if (this.activeOptionRef?.current && this.scrollContainerRef?.current) {
305 this.activeOptionRef?.current &&
306 this.scrollContainerRef &&
307 this.scrollContainerRef.current
308 ) {
309 const containerTopOffset = this.scrollContainerRef.current.offsetTop; 305 const containerTopOffset = this.scrollContainerRef.current.offsetTop;
310 const optionTopOffset = this.activeOptionRef.current.offsetTop; 306 const optionTopOffset = this.activeOptionRef.current.offsetTop;
311 307
diff --git a/src/containers/auth/WelcomeScreen.tsx b/src/containers/auth/WelcomeScreen.tsx
index 561eef236..1f3f50e4a 100644
--- a/src/containers/auth/WelcomeScreen.tsx
+++ b/src/containers/auth/WelcomeScreen.tsx
@@ -8,10 +8,6 @@ interface IProps extends Partial<StoresProps> {}
8@inject('stores', 'actions') 8@inject('stores', 'actions')
9@observer 9@observer
10class WelcomeScreen extends Component<IProps> { 10class WelcomeScreen extends Component<IProps> {
11 constructor(props: IProps) {
12 super(props);
13 }
14
15 render(): ReactElement { 11 render(): ReactElement {
16 const { user, recipePreviews } = this.props.stores!; 12 const { user, recipePreviews } = this.props.stores!;
17 13
diff --git a/src/containers/layout/AppLayoutContainer.tsx b/src/containers/layout/AppLayoutContainer.tsx
index 1929492ff..e30c0e067 100644
--- a/src/containers/layout/AppLayoutContainer.tsx
+++ b/src/containers/layout/AppLayoutContainer.tsx
@@ -74,7 +74,6 @@ class AppLayoutContainer extends Component<IProps> {
74 74
75 const workspacesDrawer = ( 75 const workspacesDrawer = (
76 <WorkspaceDrawer 76 <WorkspaceDrawer
77 // eslint-disable-next-line no-confusing-arrow
78 getServicesForWorkspace={workspace => 77 getServicesForWorkspace={workspace =>
79 workspace 78 workspace
80 ? workspaceStore.getWorkspaceServices(workspace).map(s => s.name) 79 ? workspaceStore.getWorkspaceServices(workspace).map(s => s.name)
diff --git a/src/containers/settings/EditSettingsScreen.tsx b/src/containers/settings/EditSettingsScreen.tsx
index 0f3359bfc..7cdff7fde 100644
--- a/src/containers/settings/EditSettingsScreen.tsx
+++ b/src/containers/settings/EditSettingsScreen.tsx
@@ -1172,8 +1172,6 @@ class EditSettingsScreen extends Component<EditSettingsScreenProps> {
1172 }; 1172 };
1173 } 1173 }
1174 1174
1175 // @ts-ignore: Remove this ignore once mobx-react-form v4 with typescript
1176 // support has been released.
1177 return new Form(config); 1175 return new Form(config);
1178 } 1176 }
1179 1177
diff --git a/src/containers/settings/EditUserScreen.tsx b/src/containers/settings/EditUserScreen.tsx
index 0d6c47da5..10c308524 100644
--- a/src/containers/settings/EditUserScreen.tsx
+++ b/src/containers/settings/EditUserScreen.tsx
@@ -126,8 +126,6 @@ class EditUserScreen extends Component<EditUserScreenProps> {
126 }, 126 },
127 }; 127 };
128 128
129 // @ts-ignore: Remove this ignore once mobx-react-form v4 with typescript
130 // support has been released.
131 return new Form(config); 129 return new Form(config);
132 } 130 }
133 131
diff --git a/src/electron/macOSPermissions.ts b/src/electron/macOSPermissions.ts
index c9f22aecb..88706dd23 100644
--- a/src/electron/macOSPermissions.ts
+++ b/src/electron/macOSPermissions.ts
@@ -2,6 +2,7 @@ import { systemPreferences, BrowserWindow, dialog } from 'electron';
2import { pathExistsSync, mkdirSync, writeFileSync } from 'fs-extra'; 2import { pathExistsSync, mkdirSync, writeFileSync } from 'fs-extra';
3import macosVersion from 'macos-version'; 3import macosVersion from 'macos-version';
4import { dirname } from 'path'; 4import { dirname } from 'path';
5// eslint-disable-next-line @typescript-eslint/ban-ts-comment, @typescript-eslint/prefer-ts-expect-error
5// @ts-ignore 6// @ts-ignore
6import { askForScreenCaptureAccess } from 'node-mac-permissions'; 7import { askForScreenCaptureAccess } from 'node-mac-permissions';
7import { userDataPath } from '../environment-remote'; 8import { userDataPath } from '../environment-remote';
diff --git a/src/environment.ts b/src/environment.ts
index 0ba7774cd..e17be0b7f 100644
--- a/src/environment.ts
+++ b/src/environment.ts
@@ -43,4 +43,4 @@ export const splitModeToggleShortcutKey = (isAccelerator = true) =>
43export const settingsShortcutKey = (isAccelerator = true) => 43export const settingsShortcutKey = (isAccelerator = true) =>
44 `${cmdOrCtrlShortcutKey(isAccelerator)}+${isMac ? ',' : 'P'}`; 44 `${cmdOrCtrlShortcutKey(isAccelerator)}+${isMac ? ',' : 'P'}`;
45export const toggleFullScreenKey = () => 45export const toggleFullScreenKey = () =>
46 isMac ? `CTRL + ${cmdKey} + F` : `F11`; 46 isMac ? `CTRL + ${cmdKey} + F` : 'F11';
diff --git a/src/features/serviceProxy/index.ts b/src/features/serviceProxy/index.ts
index eb3b89ece..c98ae00a7 100644
--- a/src/features/serviceProxy/index.ts
+++ b/src/features/serviceProxy/index.ts
@@ -33,11 +33,7 @@ export default function init(stores: {
33 if (config.isEnabled) { 33 if (config.isEnabled) {
34 const serviceProxyConfig = proxySettings[service.id]; 34 const serviceProxyConfig = proxySettings[service.id];
35 35
36 if ( 36 if (serviceProxyConfig?.isEnabled && serviceProxyConfig.host) {
37 serviceProxyConfig &&
38 serviceProxyConfig.isEnabled &&
39 serviceProxyConfig.host
40 ) {
41 const proxyHost = `${serviceProxyConfig.host}${ 37 const proxyHost = `${serviceProxyConfig.host}${
42 serviceProxyConfig.port ? `:${serviceProxyConfig.port}` : '' 38 serviceProxyConfig.port ? `:${serviceProxyConfig.port}` : ''
43 }`; 39 }`;
diff --git a/src/features/workspaces/components/WorkspaceDrawer.tsx b/src/features/workspaces/components/WorkspaceDrawer.tsx
index 1c827e9dd..3e05cb7de 100644
--- a/src/features/workspaces/components/WorkspaceDrawer.tsx
+++ b/src/features/workspaces/components/WorkspaceDrawer.tsx
@@ -98,6 +98,7 @@ class WorkspaceDrawer extends Component<IProps> {
98 try { 98 try {
99 getUserWorkspacesRequest.execute(); 99 getUserWorkspacesRequest.execute();
100 } catch (error) { 100 } catch (error) {
101 // eslint-disable-next-line no-console
101 console.log(error); 102 console.log(error);
102 } 103 }
103 } 104 }
@@ -121,9 +122,9 @@ class WorkspaceDrawer extends Component<IProps> {
121 workspaceActions.openWorkspaceSettings(); 122 workspaceActions.openWorkspaceSettings();
122 }} 123 }}
123 data-tooltip-id="tooltip-workspaces-drawer" 124 data-tooltip-id="tooltip-workspaces-drawer"
124 data-tooltip-content={`${intl.formatMessage( 125 data-tooltip-content={intl.formatMessage(
125 messages.workspacesSettingsTooltip, 126 messages.workspacesSettingsTooltip,
126 )}`} 127 )}
127 > 128 >
128 <Icon 129 <Icon
129 icon={mdiCog} 130 icon={mdiCog}
diff --git a/src/features/workspaces/components/WorkspaceDrawerItem.tsx b/src/features/workspaces/components/WorkspaceDrawerItem.tsx
index 172b4192c..4fd7662f5 100644
--- a/src/features/workspaces/components/WorkspaceDrawerItem.tsx
+++ b/src/features/workspaces/components/WorkspaceDrawerItem.tsx
@@ -72,6 +72,7 @@ interface IProps extends WithStylesProps<typeof styles>, WrappedComponentProps {
72 name: string; 72 name: string;
73 onClick: MouseEventHandler<HTMLInputElement>; 73 onClick: MouseEventHandler<HTMLInputElement>;
74 services: string[]; 74 services: string[];
75 // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
75 onContextMenuEditClick?: () => void | null; 76 onContextMenuEditClick?: () => void | null;
76 shortcutIndex: number; 77 shortcutIndex: number;
77} 78}
diff --git a/src/features/workspaces/components/WorkspacesDashboard.tsx b/src/features/workspaces/components/WorkspacesDashboard.tsx
index c5f8909c1..a823132c5 100644
--- a/src/features/workspaces/components/WorkspacesDashboard.tsx
+++ b/src/features/workspaces/components/WorkspacesDashboard.tsx
@@ -1,4 +1,3 @@
1/* eslint-disable react/jsx-no-useless-fragment */
2import { Component, ReactElement } from 'react'; 1import { Component, ReactElement } from 'react';
3import { observer } from 'mobx-react'; 2import { observer } from 'mobx-react';
4import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
diff --git a/src/features/workspaces/store.ts b/src/features/workspaces/store.ts
index 53e3b62ed..34a4126c8 100644
--- a/src/features/workspaces/store.ts
+++ b/src/features/workspaces/store.ts
@@ -64,6 +64,7 @@ export default class WorkspacesStore extends FeatureStore {
64 return getUserWorkspacesRequest.wasExecuted && this.workspaces.length > 0; 64 return getUserWorkspacesRequest.wasExecuted && this.workspaces.length > 0;
65 } 65 }
66 66
67 // eslint-disable-next-line @typescript-eslint/class-literal-property-style
67 @computed get isUserAllowedToUseFeature() { 68 @computed get isUserAllowedToUseFeature() {
68 return true; 69 return true;
69 } 70 }
diff --git a/src/helpers/recipe-helpers.ts b/src/helpers/recipe-helpers.ts
index 93c107cc5..68a1578e3 100644
--- a/src/helpers/recipe-helpers.ts
+++ b/src/helpers/recipe-helpers.ts
@@ -15,6 +15,7 @@ export function loadRecipeConfig(recipeId: string) {
15 try { 15 try {
16 const configPath = `${recipeId}/package.json`; 16 const configPath = `${recipeId}/package.json`;
17 // Delete module from cache 17 // Delete module from cache
18 // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
18 delete require.cache[require.resolve(configPath)]; 19 delete require.cache[require.resolve(configPath)];
19 20
20 // eslint-disable-next-line import/no-dynamic-require 21 // eslint-disable-next-line import/no-dynamic-require
diff --git a/src/index.ts b/src/index.ts
index 7ef23415b..0487d692c 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -60,6 +60,7 @@ let mainWindow: BrowserWindow | undefined;
60let willQuitApp = false; 60let willQuitApp = false;
61let overrideAppQuitForUpdate = false; 61let overrideAppQuitForUpdate = false;
62 62
63// eslint-disable-next-line unicorn/prefer-event-target
63export const appEvents = new EventEmitter(); 64export const appEvents = new EventEmitter();
64 65
65// Register methods to be called once the window has been loaded. 66// Register methods to be called once the window has been loaded.
@@ -673,6 +674,7 @@ ipcMain.handle('get-desktop-capturer-sources', () =>
673); 674);
674 675
675ipcMain.on('window.toolbar-double-clicked', () => { 676ipcMain.on('window.toolbar-double-clicked', () => {
677 // eslint-disable-next-line @typescript-eslint/no-unused-expressions
676 mainWindow?.isMaximized() ? mainWindow.unmaximize() : mainWindow?.maximize(); 678 mainWindow?.isMaximized() ? mainWindow.unmaximize() : mainWindow?.maximize();
677}); 679});
678 680
diff --git a/src/internal-server/app/Controllers/Http/UserController.js b/src/internal-server/app/Controllers/Http/UserController.js
index 9a9d76636..a9c67a1b2 100644
--- a/src/internal-server/app/Controllers/Http/UserController.js
+++ b/src/internal-server/app/Controllers/Http/UserController.js
@@ -26,6 +26,7 @@ const apiRequest = (url, route, method, auth) =>
26 .then(data => data.json()) 26 .then(data => data.json())
27 .then(json => resolve(json)); 27 .then(json => resolve(json));
28 } catch (error) { 28 } catch (error) {
29 // eslint-disable-next-line no-console
29 console.log(error); 30 console.log(error);
30 reject(); 31 reject();
31 } 32 }
@@ -197,7 +198,7 @@ class UserController {
197 const services = await apiRequest(server, 'me/services', 'GET', token); 198 const services = await apiRequest(server, 'me/services', 'GET', token);
198 199
199 for (const service of services) { 200 for (const service of services) {
200 await this._createAndCacheService(service, serviceIdTranslation); // eslint-disable-line no-await-in-loop 201 await this._createAndCacheService(service, serviceIdTranslation);
201 } 202 }
202 } catch (error) { 203 } catch (error) {
203 const errorMessage = `Could not import your services into our system.\nError: ${error}`; 204 const errorMessage = `Could not import your services into our system.\nError: ${error}`;
@@ -209,7 +210,7 @@ class UserController {
209 const workspaces = await apiRequest(server, 'workspace', 'GET', token); 210 const workspaces = await apiRequest(server, 'workspace', 'GET', token);
210 211
211 for (const workspace of workspaces) { 212 for (const workspace of workspaces) {
212 await this._createWorkspace(workspace, serviceIdTranslation); // eslint-disable-line no-await-in-loop 213 await this._createWorkspace(workspace, serviceIdTranslation);
213 } 214 }
214 } catch (error) { 215 } catch (error) {
215 const errorMessage = `Could not import your workspaces into our system.\nError: ${error}`; 216 const errorMessage = `Could not import your workspaces into our system.\nError: ${error}`;
@@ -257,6 +258,7 @@ class UserController {
257 try { 258 try {
258 file = JSON.parse(request.input('file')); 259 file = JSON.parse(request.input('file'));
259 } catch (error) { 260 } catch (error) {
261 // eslint-disable-next-line no-console
260 console.log(error); 262 console.log(error);
261 return response.send( 263 return response.send(
262 'Could not import: Invalid file, could not read file', 264 'Could not import: Invalid file, could not read file',
@@ -272,7 +274,7 @@ class UserController {
272 // Import services 274 // Import services
273 try { 275 try {
274 for (const service of file.services) { 276 for (const service of file.services) {
275 await this._createAndCacheService(service, serviceIdTranslation); // eslint-disable-line no-await-in-loop 277 await this._createAndCacheService(service, serviceIdTranslation);
276 } 278 }
277 } catch (error) { 279 } catch (error) {
278 const errorMessage = `Could not import your services into our system.\nError: ${error}`; 280 const errorMessage = `Could not import your services into our system.\nError: ${error}`;
@@ -282,7 +284,7 @@ class UserController {
282 // Import workspaces 284 // Import workspaces
283 try { 285 try {
284 for (const workspace of file.workspaces) { 286 for (const workspace of file.workspaces) {
285 await this._createWorkspace(workspace, serviceIdTranslation); // eslint-disable-line no-await-in-loop 287 await this._createWorkspace(workspace, serviceIdTranslation);
286 } 288 }
287 } catch (error) { 289 } catch (error) {
288 const errorMessage = `Could not import your workspaces into our system.\nError: ${error}`; 290 const errorMessage = `Could not import your workspaces into our system.\nError: ${error}`;
@@ -302,6 +304,7 @@ class UserController {
302 ); 304 );
303 305
304 if (workspace.services) { 306 if (workspace.services) {
307 // eslint-disable-next-line no-param-reassign
305 workspace.services = convertToJSON(workspace.services); 308 workspace.services = convertToJSON(workspace.services);
306 } 309 }
307 const services = 310 const services =
@@ -311,6 +314,7 @@ class UserController {
311 ) 314 )
312 : []; 315 : [];
313 if (workspace.data) { 316 if (workspace.data) {
317 // eslint-disable-next-line no-param-reassign
314 workspace.data = convertToJSON(workspace.data); 318 workspace.data = convertToJSON(workspace.data);
315 } 319 }
316 320
@@ -334,9 +338,11 @@ class UserController {
334 ); 338 );
335 339
336 // store the old serviceId as the key for future lookup 340 // store the old serviceId as the key for future lookup
341 // eslint-disable-next-line no-param-reassign
337 serviceIdTranslation[service.serviceId] = newServiceId; 342 serviceIdTranslation[service.serviceId] = newServiceId;
338 343
339 if (service.settings) { 344 if (service.settings) {
345 // eslint-disable-next-line no-param-reassign
340 service.settings = convertToJSON(service.settings); 346 service.settings = convertToJSON(service.settings);
341 } 347 }
342 348
diff --git a/src/internal-server/public/js/transfer.js b/src/internal-server/public/js/transfer.js
index e3b3f92a2..76aa4b938 100644
--- a/src/internal-server/public/js/transfer.js
+++ b/src/internal-server/public/js/transfer.js
@@ -13,5 +13,6 @@ fileInput.addEventListener('change', () => {
13 submitBtn.disabled = false; 13 submitBtn.disabled = false;
14 } 14 }
15 }); 15 });
16 // eslint-disable-next-line unicorn/prefer-blob-reading-methods
16 reader.readAsText(fileInput.files[0]); 17 reader.readAsText(fileInput.files[0]);
17}); 18});
diff --git a/src/lib/Form.ts b/src/lib/Form.ts
index ca96406e7..2b25eb193 100644
--- a/src/lib/Form.ts
+++ b/src/lib/Form.ts
@@ -3,6 +3,7 @@ import vjf from 'mobx-react-form/lib/validators/VJF';
3import { FormFields } from '../@types/mobx-form.types'; 3import { FormFields } from '../@types/mobx-form.types';
4 4
5export default class DefaultForm extends Form { 5export default class DefaultForm extends Form {
6 // eslint-disable-next-line @typescript-eslint/no-useless-constructor
6 constructor(fields: FormFields) { 7 constructor(fields: FormFields) {
7 super(fields); 8 super(fields);
8 } 9 }
diff --git a/src/lib/Menu.ts b/src/lib/Menu.ts
index d611d5f3e..f587f8df9 100644
--- a/src/lib/Menu.ts
+++ b/src/lib/Menu.ts
@@ -700,6 +700,7 @@ class FranzMenu implements StoresProps {
700 700
701 // Don't initialize when window['ferdium'] is undefined 701 // Don't initialize when window['ferdium'] is undefined
702 if (window['ferdium'] === undefined) { 702 if (window['ferdium'] === undefined) {
703 // eslint-disable-next-line no-console
703 console.log('skipping menu init'); 704 console.log('skipping menu init');
704 return; 705 return;
705 } 706 }
@@ -1010,6 +1011,7 @@ class FranzMenu implements StoresProps {
1010 }, 1011 },
1011 ]; 1012 ];
1012 1013
1014 // eslint-disable-next-line unicorn/prefer-at
1013 (tpl[tpl.length - 1].submenu as MenuItemConstructorOptions[]).push( 1015 (tpl[tpl.length - 1].submenu as MenuItemConstructorOptions[]).push(
1014 { 1016 {
1015 type: 'separator', 1017 type: 'separator',
@@ -1027,6 +1029,7 @@ class FranzMenu implements StoresProps {
1027 1029
1028 tpl[5].submenu = this.todosMenu(); 1030 tpl[5].submenu = this.todosMenu();
1029 1031
1032 // eslint-disable-next-line unicorn/prefer-at
1030 (tpl[tpl.length - 1].submenu as MenuItemConstructorOptions[]).push( 1033 (tpl[tpl.length - 1].submenu as MenuItemConstructorOptions[]).push(
1031 { 1034 {
1032 type: 'separator', 1035 type: 'separator',
diff --git a/src/models/Recipe.ts b/src/models/Recipe.ts
index a03d3447f..35e8d4979 100644
--- a/src/models/Recipe.ts
+++ b/src/models/Recipe.ts
@@ -50,11 +50,15 @@ export interface IRecipe {
50 partition: string; 50 partition: string;
51 local: boolean; 51 local: boolean;
52 52
53 // eslint-disable-next-line @typescript-eslint/ban-types
53 readonly overrideUserAgent?: null | Function; 54 readonly overrideUserAgent?: null | Function;
55 // eslint-disable-next-line @typescript-eslint/ban-types
54 readonly buildUrl?: null | Function; 56 readonly buildUrl?: null | Function;
57 // eslint-disable-next-line @typescript-eslint/ban-types
55 readonly modifyRequestHeaders?: null | Function; 58 readonly modifyRequestHeaders?: null | Function;
59 // eslint-disable-next-line @typescript-eslint/ban-types
56 readonly knownCertificateHosts?: null | Function; 60 readonly knownCertificateHosts?: null | Function;
57 readonly events?: null | { (key: string): string }; 61 readonly events?: null | ((key: string) => string);
58 62
59 // TODO: [TS DEBT] Need to check if below properties are needed and where is inherited / implemented from 63 // TODO: [TS DEBT] Need to check if below properties are needed and where is inherited / implemented from
60 author?: string[]; 64 author?: string[];
@@ -132,7 +136,7 @@ export default class Recipe implements IRecipe {
132 this.id = ifUndefined<string>(data.id, this.id); 136 this.id = ifUndefined<string>(data.id, this.id);
133 this.name = ifUndefined<string>(data.name, this.name); 137 this.name = ifUndefined<string>(data.name, this.name);
134 this.version = ifUndefined<string>(data.version, this.version); 138 this.version = ifUndefined<string>(data.version, this.version);
135 this.aliases = ifUndefined<Array<string>>(data.aliases, this.aliases); 139 this.aliases = ifUndefined<string[]>(data.aliases, this.aliases);
136 this.serviceURL = ifUndefined<string>( 140 this.serviceURL = ifUndefined<string>(
137 data.config.serviceURL, 141 data.config.serviceURL,
138 this.serviceURL, 142 this.serviceURL,
diff --git a/src/routes.tsx b/src/routes.tsx
index beada5c96..9f81e46d9 100644
--- a/src/routes.tsx
+++ b/src/routes.tsx
@@ -51,7 +51,7 @@ class FerdiumRoutes extends Component<IProps> {
51 const errorProps = { error: routeProps.stores.globalError.error || {} }; 51 const errorProps = { error: routeProps.stores.globalError.error || {} };
52 52
53 return ( 53 return (
54 // @ts-expect-error 54 // @ts-expect-error Fix me
55 <HistoryRouter history={history}> 55 <HistoryRouter history={history}>
56 <Routes> 56 <Routes>
57 <Route path="/auth" element={<AuthLayoutContainer {...routeProps} />}> 57 <Route path="/auth" element={<AuthLayoutContainer {...routeProps} />}>
@@ -129,7 +129,7 @@ class FerdiumRoutes extends Component<IProps> {
129 /> 129 />
130 <Route 130 <Route
131 path="/settings/services" 131 path="/settings/services"
132 /* @ts-ignore */ 132 // @ts-expect-error Fix me
133 element={<ServicesScreen {...this.props} />} 133 element={<ServicesScreen {...this.props} />}
134 /> 134 />
135 <Route 135 <Route
@@ -138,37 +138,37 @@ class FerdiumRoutes extends Component<IProps> {
138 /> 138 />
139 <Route 139 <Route
140 path={WORKSPACES_ROUTES.ROOT} 140 path={WORKSPACES_ROUTES.ROOT}
141 /* @ts-ignore */ 141 // @ts-expect-error Fix me
142 element={<WorkspacesScreen {...this.props} />} 142 element={<WorkspacesScreen {...this.props} />}
143 /> 143 />
144 <Route 144 <Route
145 path={WORKSPACES_ROUTES.EDIT} 145 path={WORKSPACES_ROUTES.EDIT}
146 /* @ts-ignore */ 146 // @ts-expect-error Fix me
147 element={<EditWorkspaceScreen {...this.props} />} 147 element={<EditWorkspaceScreen {...this.props} />}
148 /> 148 />
149 <Route 149 <Route
150 path="/settings/user" 150 path="/settings/user"
151 /* @ts-ignore */ 151 // @ts-expect-error Fix me
152 element={<AccountScreen {...this.props} />} 152 element={<AccountScreen {...this.props} />}
153 /> 153 />
154 <Route 154 <Route
155 path="/settings/user/edit" 155 path="/settings/user/edit"
156 /* @ts-ignore */ 156 // @ts-expect-error Fix me
157 element={<EditUserScreen {...this.props} />} 157 element={<EditUserScreen {...this.props} />}
158 /> 158 />
159 <Route 159 <Route
160 path="/settings/team" 160 path="/settings/team"
161 /* @ts-ignore */ 161 // @ts-expect-error Fix me
162 element={<TeamScreen {...this.props} />} 162 element={<TeamScreen {...this.props} />}
163 /> 163 />
164 <Route 164 <Route
165 path="/settings/app" 165 path="/settings/app"
166 /* @ts-ignore */ 166 // @ts-expect-error Fix me
167 element={<EditSettingsScreen {...this.props} />} 167 element={<EditSettingsScreen {...this.props} />}
168 /> 168 />
169 <Route 169 <Route
170 path="/settings/invite" 170 path="/settings/invite"
171 /* @ts-ignore */ 171 // @ts-expect-error Fix me
172 element={<InviteSettingsScreen {...this.props} />} 172 element={<InviteSettingsScreen {...this.props} />}
173 /> 173 />
174 <Route 174 <Route
diff --git a/src/stores/AppStore.ts b/src/stores/AppStore.ts
index 82591a2a4..412c52ecf 100644
--- a/src/stores/AppStore.ts
+++ b/src/stores/AppStore.ts
@@ -351,6 +351,7 @@ export default class AppStore extends TypedStore {
351 351
352 // TODO: is there a simple way to use blobs for notifications without storing them on disk? 352 // TODO: is there a simple way to use blobs for notifications without storing them on disk?
353 if (options.icon?.startsWith('blob:')) { 353 if (options.icon?.startsWith('blob:')) {
354 // eslint-disable-next-line no-param-reassign
354 delete options.icon; 355 delete options.icon;
355 } 356 }
356 357
@@ -493,6 +494,7 @@ export default class AppStore extends TypedStore {
493 allOrphanedServiceIds.map(id => removeServicePartitionDirectory(id)), 494 allOrphanedServiceIds.map(id => removeServicePartitionDirectory(id)),
494 ); 495 );
495 } catch (error) { 496 } catch (error) {
497 // eslint-disable-next-line no-console
496 console.log('Error while deleting service partition directory -', error); 498 console.log('Error while deleting service partition directory -', error);
497 } 499 }
498 await Promise.all( 500 await Promise.all(
diff --git a/src/stores/GlobalErrorStore.ts b/src/stores/GlobalErrorStore.ts
index 8547fec72..74a43100b 100644
--- a/src/stores/GlobalErrorStore.ts
+++ b/src/stores/GlobalErrorStore.ts
@@ -27,34 +27,36 @@ export default class GlobalErrorStore extends TypedStore {
27 27
28 @observable response: Response = {} as Response; 28 @observable response: Response = {} as Response;
29 29
30 // TODO: Get rid of the @ts-ignores in this function. 30 // TODO: Get rid of the @ts-expect-errors in this function.
31 constructor(stores: Stores, api: ApiInterface, actions: Actions) { 31 constructor(stores: Stores, api: ApiInterface, actions: Actions) {
32 super(stores, api, actions); 32 super(stores, api, actions);
33 33
34 makeObservable(this); 34 makeObservable(this);
35 35
36 window.addEventListener('error', (...errorArgs: any[]): void => { 36 window.addEventListener('error', (...errorArgs: any[]): void => {
37 // @ts-ignore ts-message: Expected 5 arguments, but got 2. 37 // @ts-expect-error ts-message: Expected 5 arguments, but got 2.
38 this._handleConsoleError.call(this, ['error', ...errorArgs]); 38 this._handleConsoleError.call(this, ['error', ...errorArgs]);
39 }); 39 });
40 40
41 const origConsoleError = console.error; 41 const origConsoleError = console.error;
42 window.console.error = (...errorArgs: any[]) => { 42 window.console.error = (...errorArgs: any[]) => {
43 // @ts-ignore ts-message: Expected 5 arguments, but got 2. 43 // @ts-expect-error ts-message: Expected 5 arguments, but got 2.
44 this._handleConsoleError.call(this, ['error', ...errorArgs]); 44 this._handleConsoleError.call(this, ['error', ...errorArgs]);
45 origConsoleError.apply(this, errorArgs); 45 origConsoleError.apply(this, errorArgs);
46 }; 46 };
47 47
48 // eslint-disable-next-line no-console
48 const origConsoleLog = console.log; 49 const origConsoleLog = console.log;
49 window.console.log = (...logArgs: any[]) => { 50 window.console.log = (...logArgs: any[]) => {
50 // @ts-ignore ts-message: Expected 5 arguments, but got 2. 51 // @ts-expect-error ts-message: Expected 5 arguments, but got 2.
51 this._handleConsoleError.call(this, ['log', ...logArgs]); 52 this._handleConsoleError.call(this, ['log', ...logArgs]);
52 origConsoleLog.apply(this, logArgs); 53 origConsoleLog.apply(this, logArgs);
53 }; 54 };
54 55
56 // eslint-disable-next-line no-console
55 const origConsoleInfo = console.info; 57 const origConsoleInfo = console.info;
56 window.console.info = (...infoArgs: any[]) => { 58 window.console.info = (...infoArgs: any[]) => {
57 // @ts-ignore ts-message: Expected 5 arguments, but got 2. 59 // @ts-expect-error ts-message: Expected 5 arguments, but got 2.
58 this._handleConsoleError.call(this, ['info', ...infoArgs]); 60 this._handleConsoleError.call(this, ['info', ...infoArgs]);
59 origConsoleInfo.apply(this, infoArgs); 61 origConsoleInfo.apply(this, infoArgs);
60 }; 62 };
diff --git a/src/stores/RecipesStore.ts b/src/stores/RecipesStore.ts
index 07f1343f8..b645a5989 100644
--- a/src/stores/RecipesStore.ts
+++ b/src/stores/RecipesStore.ts
@@ -36,6 +36,7 @@ export default class RecipesStore extends TypedStore {
36 36
37 async setup(): Promise<void> { 37 async setup(): Promise<void> {
38 // Initially load all recipes 38 // Initially load all recipes
39 // eslint-disable-next-line @typescript-eslint/no-unused-expressions
39 this.all; 40 this.all;
40 } 41 }
41 42
diff --git a/src/stores/ServicesStore.ts b/src/stores/ServicesStore.ts
index 44f8b277c..7f4693cad 100644
--- a/src/stores/ServicesStore.ts
+++ b/src/stores/ServicesStore.ts
@@ -435,7 +435,7 @@ export default class ServicesStore extends TypedStore {
435 435
436 // TODO: This can actually return undefined as well 436 // TODO: This can actually return undefined as well
437 one(id: string): Service { 437 one(id: string): Service {
438 return this.all.find(service => service.id === id) as Service; 438 return this.all.find(service => service.id === id)!;
439 } 439 }
440 440
441 async _showAddServiceInterface({ recipeId }) { 441 async _showAddServiceInterface({ recipeId }) {
diff --git a/src/stores/SettingsStore.ts b/src/stores/SettingsStore.ts
index 5ca499160..90cd82690 100644
--- a/src/stores/SettingsStore.ts
+++ b/src/stores/SettingsStore.ts
@@ -70,14 +70,17 @@ export default class SettingsStore extends TypedStore {
70 this.all.app.lockingFeatureEnabled && 70 this.all.app.lockingFeatureEnabled &&
71 this.all.app.inactivityLock !== 0 71 this.all.app.inactivityLock !== 0
72 ) { 72 ) {
73 inactivityTimer = setTimeout(() => { 73 inactivityTimer = setTimeout(
74 this.actions.settings.update({ 74 () => {
75 type: 'app', 75 this.actions.settings.update({
76 data: { 76 type: 'app',
77 locked: true, 77 data: {
78 }, 78 locked: true,
79 }); 79 },
80 }, this.all.app.inactivityLock * 1000 * 60); 80 });
81 },
82 this.all.app.inactivityLock * 1000 * 60,
83 );
81 } 84 }
82 }); 85 });
83 getCurrentWindow().on('focus', () => { 86 getCurrentWindow().on('focus', () => {
@@ -176,6 +179,7 @@ export default class SettingsStore extends TypedStore {
176 179
177 const appSettings = this.all[type]; 180 const appSettings = this.all[type];
178 if (Object.hasOwnProperty.call(appSettings, key)) { 181 if (Object.hasOwnProperty.call(appSettings, key)) {
182 // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
179 delete appSettings[key]; 183 delete appSettings[key];
180 184
181 this.actions.settings.update({ 185 this.actions.settings.update({
@@ -185,6 +189,7 @@ export default class SettingsStore extends TypedStore {
185 } 189 }
186 } 190 }
187 191
192 // eslint-disable-next-line @typescript-eslint/ban-types
188 _ensureMigrationAndMarkDone(migrationName: string, callback: Function): void { 193 _ensureMigrationAndMarkDone(migrationName: string, callback: Function): void {
189 if (!this.all.migration[migrationName]) { 194 if (!this.all.migration[migrationName]) {
190 callback(); 195 callback();
diff --git a/src/stores/UserStore.ts b/src/stores/UserStore.ts
index 7ba8f4222..0616acdad 100644
--- a/src/stores/UserStore.ts
+++ b/src/stores/UserStore.ts
@@ -210,7 +210,7 @@ export default class UserStore extends TypedStore {
210 currency, 210 currency,
211 }): Promise<void> { 211 }): Promise<void> {
212 // TODO: [TS DEBT] Need to find a way proper to implement promise's then and catch in request class 212 // TODO: [TS DEBT] Need to find a way proper to implement promise's then and catch in request class
213 // @ts-ignore 213 // @ts-expect-error Fix me
214 const authToken = await this.signupRequest.execute({ 214 const authToken = await this.signupRequest.execute({
215 firstname, 215 firstname,
216 lastname, 216 lastname,
@@ -400,7 +400,7 @@ export default class UserStore extends TypedStore {
400 const params = new URLSearchParams(parsedUrl.search.slice(1)); 400 const params = new URLSearchParams(parsedUrl.search.slice(1));
401 401
402 // TODO: Remove the neccesity for `as string` 402 // TODO: Remove the neccesity for `as string`
403 params.append('authToken', this.authToken as string); 403 params.append('authToken', this.authToken!);
404 404
405 return `${parsedUrl.origin}${parsedUrl.pathname}?${params.toString()}`; 405 return `${parsedUrl.origin}${parsedUrl.pathname}?${params.toString()}`;
406 } 406 }
diff --git a/src/stores/lib/TypedStore.ts b/src/stores/lib/TypedStore.ts
index 0a669e669..8bae529ba 100644
--- a/src/stores/lib/TypedStore.ts
+++ b/src/stores/lib/TypedStore.ts
@@ -41,7 +41,7 @@ export default abstract class TypedStore {
41 this.actions = actions; 41 this.actions = actions;
42 } 42 }
43 43
44 registerReactions(reactions: { (r: IReactionPublic): void }[]): void { 44 registerReactions(reactions: ((r: IReactionPublic) => void)[]): void {
45 for (const reaction of reactions) { 45 for (const reaction of reactions) {
46 this._reactions.push(new Reaction(reaction)); 46 this._reactions.push(new Reaction(reaction));
47 } 47 }
diff --git a/src/webview/contextMenuBuilder.ts b/src/webview/contextMenuBuilder.ts
index 6d904eee3..d18bc56f9 100644
--- a/src/webview/contextMenuBuilder.ts
+++ b/src/webview/contextMenuBuilder.ts
@@ -52,8 +52,8 @@ function translatePopup(res, isError: boolean = false) {
52 z-index: 999999; 52 z-index: 999999;
53 ${ 53 ${
54 isError 54 isError
55 ? `background: rgb(255 37 37);` 55 ? 'background: rgb(255 37 37);'
56 : `background: rgb(131 131 131);` 56 : 'background: rgb(131 131 131);'
57 } 57 }
58 border-radius: 8px; 58 border-radius: 8px;
59 top: 5%; 59 top: 5%;
@@ -148,7 +148,7 @@ const contextMenuStringTable: ContextMenuStringTable = {
148 paste: () => 'Paste', 148 paste: () => 'Paste',
149 pasteAndMatchStyle: () => 'Paste and match style', 149 pasteAndMatchStyle: () => 'Paste and match style',
150 searchWith: ({ searchEngine }) => `Search with ${searchEngine}`, 150 searchWith: ({ searchEngine }) => `Search with ${searchEngine}`,
151 translate: () => `Translate to ...`, 151 translate: () => 'Translate to ...',
152 quickTranslate: ({ translatorLanguage }) => 152 quickTranslate: ({ translatorLanguage }) =>
153 `Translate to ${translatorLanguage}`, 153 `Translate to ${translatorLanguage}`,
154 translateLanguage: ({ translatorLanguage }) => `${translatorLanguage}`, 154 translateLanguage: ({ translatorLanguage }) => `${translatorLanguage}`,
@@ -798,6 +798,7 @@ export class ContextMenuBuilder {
798 callback: { 798 callback: {
799 (dataURL: any): void; 799 (dataURL: any): void;
800 (dataURL: any): void; 800 (dataURL: any): void;
801 // eslint-disable-next-line @typescript-eslint/unified-signatures
801 (arg0: string): void; 802 (arg0: string): void;
802 }, 803 },
803 outputFormat: string = 'image/png', 804 outputFormat: string = 'image/png',
diff --git a/src/webview/lib/Userscript.ts b/src/webview/lib/Userscript.ts
index b0e4fb805..5adc1ac3a 100644
--- a/src/webview/lib/Userscript.ts
+++ b/src/webview/lib/Userscript.ts
@@ -32,7 +32,7 @@ export default class Userscript {
32 * 32 *
33 * @param {*} settings 33 * @param {*} settings
34 */ 34 */
35 // eslint-disable-next-line camelcase 35
36 internal_setSettings(settings: any) { 36 internal_setSettings(settings: any) {
37 // This is needed to get a clean JS object from the settings itself to provide better accessibility 37 // This is needed to get a clean JS object from the settings itself to provide better accessibility
38 // Otherwise this will be a mobX instance 38 // Otherwise this will be a mobX instance
@@ -45,7 +45,7 @@ export default class Userscript {
45 * @param {number} indirect Indirect messages 45 * @param {number} indirect Indirect messages
46 */ 46 */
47 setBadge(direct: number = 0, indirect: number = 0) { 47 setBadge(direct: number = 0, indirect: number = 0) {
48 if (this.recipe && this.recipe.setBadge) { 48 if (this.recipe?.setBadge) {
49 this.recipe.setBadge(direct, indirect); 49 this.recipe.setBadge(direct, indirect);
50 } 50 }
51 } 51 }
@@ -55,7 +55,7 @@ export default class Userscript {
55 * @param {*} title Dialog title 55 * @param {*} title Dialog title
56 */ 56 */
57 setDialogTitle(title: string) { 57 setDialogTitle(title: string) {
58 if (this.recipe && this.recipe.setDialogTitle) { 58 if (this.recipe?.setDialogTitle) {
59 this.recipe.setDialogTitle(title); 59 this.recipe.setDialogTitle(title);
60 } 60 }
61 } 61 }
@@ -66,7 +66,7 @@ export default class Userscript {
66 * @param {...string} files 66 * @param {...string} files
67 */ 67 */
68 injectCSSFiles(...files: string[]) { 68 injectCSSFiles(...files: string[]) {
69 if (this.recipe && this.recipe.injectCSS) { 69 if (this.recipe?.injectCSS) {
70 // @ts-expect-error A spread argument must either have a tuple type or be passed to a rest parameter. 70 // @ts-expect-error A spread argument must either have a tuple type or be passed to a rest parameter.
71 this.recipe.injectCSS(...files); 71 this.recipe.injectCSS(...files);
72 } 72 }
@@ -99,6 +99,7 @@ export default class Userscript {
99 * @param {string} key 99 * @param {string} key
100 * @return Value of the key 100 * @return Value of the key
101 */ 101 */
102 // eslint-disable-next-line consistent-return
102 get(key: string) { 103 get(key: string) {
103 const ferdiumUserKey = window.localStorage.getItem(`ferdium-user-${key}`); 104 const ferdiumUserKey = window.localStorage.getItem(`ferdium-user-${key}`);
104 105
diff --git a/src/webview/recipe.ts b/src/webview/recipe.ts
index 0d18e4347..76615d234 100644
--- a/src/webview/recipe.ts
+++ b/src/webview/recipe.ts
@@ -1,6 +1,6 @@
1/* eslint-disable global-require */ 1/* eslint-disable global-require */
2/* eslint-disable import/no-dynamic-require */ 2/* eslint-disable import/no-dynamic-require */
3/* eslint-disable import/first */ 3
4import { noop, debounce } from 'lodash'; 4import { noop, debounce } from 'lodash';
5import { contextBridge, ipcRenderer } from 'electron'; 5import { contextBridge, ipcRenderer } from 'electron';
6import { join } from 'path'; 6import { join } from 'path';
@@ -52,7 +52,7 @@ import Service from '../models/Service';
52// This will cause the service to fail loading 52// This will cause the service to fail loading
53// As the message API is not actually needed, we'll add this shim sendMessage 53// As the message API is not actually needed, we'll add this shim sendMessage
54// function in order for darkreader to continue working 54// function in order for darkreader to continue working
55// @ts-ignore 55// @ts-expect-error Fix this
56window.chrome.runtime.sendMessage = noop; 56window.chrome.runtime.sendMessage = noop;
57 57
58const debug = require('../preload-safe-debug')('Ferdium:Plugin'); 58const debug = require('../preload-safe-debug')('Ferdium:Plugin');
@@ -143,9 +143,9 @@ class RecipeController {
143 service: Service; 143 service: Service;
144 } = { 144 } = {
145 overrideSpellcheckerLanguage: false, 145 overrideSpellcheckerLanguage: false,
146 // @ts-ignore 146 // @ts-expect-error Fix this
147 app: DEFAULT_APP_SETTINGS, 147 app: DEFAULT_APP_SETTINGS,
148 // @ts-ignore 148 // @ts-expect-error Fix this
149 service: { 149 service: {
150 isDarkModeEnabled: false, 150 isDarkModeEnabled: false,
151 spellcheckerLanguage: '', 151 spellcheckerLanguage: '',
@@ -233,6 +233,7 @@ class RecipeController {
233 const modulePath = join(recipe.path, 'webview.js'); 233 const modulePath = join(recipe.path, 'webview.js');
234 debug('module path', modulePath); 234 debug('module path', modulePath);
235 // Delete module from cache 235 // Delete module from cache
236 // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
236 delete require.cache[require.resolve(modulePath)]; 237 delete require.cache[require.resolve(modulePath)];
237 try { 238 try {
238 this.recipe = new RecipeWebview( 239 this.recipe = new RecipeWebview(
@@ -311,7 +312,7 @@ class RecipeController {
311 debug('translatorEngine', this.settings.app.translatorEngine); 312 debug('translatorEngine', this.settings.app.translatorEngine);
312 debug('translatorLanguage', this.settings.app.translatorLanguage); 313 debug('translatorLanguage', this.settings.app.translatorLanguage);
313 314
314 if (this.userscript && this.userscript.internal_setSettings) { 315 if (this.userscript?.internal_setSettings) {
315 this.userscript.internal_setSettings(this.settings); 316 this.userscript.internal_setSettings(this.settings);
316 } 317 }
317 318
@@ -339,7 +340,7 @@ class RecipeController {
339 'Darkmode enabled?', 340 'Darkmode enabled?',
340 this.settings.service.isDarkModeEnabled, 341 this.settings.service.isDarkModeEnabled,
341 'Dark theme active?', 342 'Dark theme active?',
342 // @ts-ignore 343 // @ts-expect-error Fix this
343 this.settings.app.isDarkThemeActive, 344 this.settings.app.isDarkThemeActive,
344 ); 345 );
345 346
@@ -356,7 +357,7 @@ class RecipeController {
356 debug('Enable dark mode'); 357 debug('Enable dark mode');
357 358
358 // Check if recipe has a custom dark mode handler 359 // Check if recipe has a custom dark mode handler
359 if (this.recipe && this.recipe.darkModeHandler) { 360 if (this.recipe?.darkModeHandler) {
360 debug('Using custom dark mode handler'); 361 debug('Using custom dark mode handler');
361 362
362 // Remove other dark mode styles if they were already loaded 363 // Remove other dark mode styles if they were already loaded
@@ -399,7 +400,7 @@ class RecipeController {
399 debug('Remove dark mode'); 400 debug('Remove dark mode');
400 debug('DarkMode disabled - removing remaining styles'); 401 debug('DarkMode disabled - removing remaining styles');
401 402
402 if (this.recipe && this.recipe.darkModeHandler) { 403 if (this.recipe?.darkModeHandler) {
403 // Remove other dark mode styles if they were already loaded 404 // Remove other dark mode styles if they were already loaded
404 if (this.hasUpdatedBeforeRecipeLoaded) { 405 if (this.hasUpdatedBeforeRecipeLoaded) {
405 this.hasUpdatedBeforeRecipeLoaded = false; 406 this.hasUpdatedBeforeRecipeLoaded = false;
diff --git a/test/helpers/update-helpers.test.ts b/test/helpers/update-helpers.test.ts
index 2b6bf3113..d42c7d27a 100644
--- a/test/helpers/update-helpers.test.ts
+++ b/test/helpers/update-helpers.test.ts
@@ -12,20 +12,20 @@ describe('getFerdiumVersion', () => {
12 expect(result).toEqual(`v${baseVersion}`); 12 expect(result).toEqual(`v${baseVersion}`);
13 }); 13 });
14 14
15 it(`returns v6.0.0-beta.3`, () => { 15 it('returns v6.0.0-beta.3', () => {
16 const result = update_helpers.getFerdiumVersion( 16 const result = update_helpers.getFerdiumVersion(
17 '?version=6.0.0-beta.3', 17 '?version=6.0.0-beta.3',
18 baseVersion, 18 baseVersion,
19 ); 19 );
20 expect(result).toEqual(`v6.0.0-beta.3`); 20 expect(result).toEqual('v6.0.0-beta.3');
21 }); 21 });
22 22
23 it(`returns v6.0.0`, () => { 23 it('returns v6.0.0', () => {
24 const result = update_helpers.getFerdiumVersion( 24 const result = update_helpers.getFerdiumVersion(
25 '?version=6.0.0', 25 '?version=6.0.0',
26 baseVersion, 26 baseVersion,
27 ); 27 );
28 expect(result).toEqual(`v6.0.0`); 28 expect(result).toEqual('v6.0.0');
29 }); 29 });
30 30
31 it(`returns ${baseVersion}`, () => { 31 it(`returns ${baseVersion}`, () => {
@@ -46,38 +46,42 @@ describe('getFerdiumVersion', () => {
46}); 46});
47 47
48describe('updateVersionParse', () => { 48describe('updateVersionParse', () => {
49 it(`returns empty string for empty string`, () => { 49 it('returns empty string for empty string', () => {
50 const result = update_helpers.updateVersionParse(''); 50 const result = update_helpers.updateVersionParse('');
51 expect(result).toEqual(''); 51 expect(result).toEqual('');
52 }); 52 });
53 it(`returns '?version=x.x for x.x`, () => { 53 it("returns '?version=x.x for x.x", () => {
54 const result = update_helpers.updateVersionParse('6.0.0'); 54 const result = update_helpers.updateVersionParse('6.0.0');
55 expect(result).toEqual('?version=6.0.0'); 55 expect(result).toEqual('?version=6.0.0');
56 }); 56 });
57}); 57});
58 58
59describe('onAuthGoToReleaseNotes', () => { 59describe('onAuthGoToReleaseNotes', () => {
60 it(`returns '#/releasenotes' string for empty string`, () => { 60 it("returns '#/releasenotes' string for empty string", () => {
61 const result = update_helpers.onAuthGoToReleaseNotes('', ''); 61 const result = update_helpers.onAuthGoToReleaseNotes('', '');
62 expect(result).toEqual('#/releasenotes'); 62 expect(result).toEqual('#/releasenotes');
63 }); 63 });
64 64
65 it(`returns '#/releasenotes' string for empty string`, () => { 65 // eslint-disable-next-line jest/no-identical-title
66 it("returns '#/releasenotes' string for empty string", () => {
66 const result = update_helpers.onAuthGoToReleaseNotes('', '?version=6.0.0'); 67 const result = update_helpers.onAuthGoToReleaseNotes('', '?version=6.0.0');
67 expect(result).toEqual('#/releasenotes?version=6.0.0'); 68 expect(result).toEqual('#/releasenotes?version=6.0.0');
68 }); 69 });
69 70
70 it(`returns '#/releasenotes' string for empty string`, () => { 71 // eslint-disable-next-line jest/no-identical-title
72 it("returns '#/releasenotes' string for empty string", () => {
71 const result = update_helpers.onAuthGoToReleaseNotes(''); 73 const result = update_helpers.onAuthGoToReleaseNotes('');
72 expect(result).toEqual('#/releasenotes'); 74 expect(result).toEqual('#/releasenotes');
73 }); 75 });
74 76
75 it(`returns '#/releasenotes' string for empty string`, () => { 77 // eslint-disable-next-line jest/no-identical-title
78 it("returns '#/releasenotes' string for empty string", () => {
76 const result = update_helpers.onAuthGoToReleaseNotes('#/auth', ''); 79 const result = update_helpers.onAuthGoToReleaseNotes('#/auth', '');
77 expect(result).toEqual('#/auth/releasenotes'); 80 expect(result).toEqual('#/auth/releasenotes');
78 }); 81 });
79 82
80 it(`returns '#/releasenotes' string for empty string`, () => { 83 // eslint-disable-next-line jest/no-identical-title
84 it("returns '#/releasenotes' string for empty string", () => {
81 const result = update_helpers.onAuthGoToReleaseNotes( 85 const result = update_helpers.onAuthGoToReleaseNotes(
82 '#/auth', 86 '#/auth',
83 '?version=6.0.0', 87 '?version=6.0.0',
@@ -85,7 +89,8 @@ describe('onAuthGoToReleaseNotes', () => {
85 expect(result).toEqual('#/auth/releasenotes?version=6.0.0'); 89 expect(result).toEqual('#/auth/releasenotes?version=6.0.0');
86 }); 90 });
87 91
88 it(`returns '#/releasenotes' string for empty string`, () => { 92 // eslint-disable-next-line jest/no-identical-title
93 it("returns '#/releasenotes' string for empty string", () => {
89 const result = update_helpers.onAuthGoToReleaseNotes('#/auth'); 94 const result = update_helpers.onAuthGoToReleaseNotes('#/auth');
90 expect(result).toEqual('#/auth/releasenotes'); 95 expect(result).toEqual('#/auth/releasenotes');
91 }); 96 });
diff --git a/test/jsUtils.test.ts b/test/jsUtils.test.ts
index ff7d29d77..73b36d990 100644
--- a/test/jsUtils.test.ts
+++ b/test/jsUtils.test.ts
@@ -78,12 +78,14 @@ describe('jsUtils', () => {
78 }); 78 });
79 79
80 describe('cleanseJSObject', () => { 80 describe('cleanseJSObject', () => {
81 xit('throws error for undefined input', () => { 81 // eslint-disable-next-line jest/no-disabled-tests
82 it.skip('throws error for undefined input', () => {
82 const result = jsUtils.cleanseJSObject(undefined); 83 const result = jsUtils.cleanseJSObject(undefined);
83 expect(result).toThrow(); 84 expect(result).toThrow();
84 }); 85 });
85 86
86 xit('throws error for null input', () => { 87 // eslint-disable-next-line jest/no-disabled-tests
88 it.skip('throws error for null input', () => {
87 const result = jsUtils.cleanseJSObject(null); 89 const result = jsUtils.cleanseJSObject(null);
88 expect(result).toThrow(); 90 expect(result).toThrow();
89 }); 91 });