diff --git a/.eslintrc.js b/.eslintrc.js index 0c2caca16c2..c411995fc87 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -44,6 +44,9 @@ module.exports = { parser: '@typescript-eslint/parser', parserOptions: { project: [path.join(__dirname, './tsconfig.json')] }, reportUnusedDisableDirectives: true, + globals: { + globalThis: false, + }, rules: { 'prettier/prettier': 'warn', @@ -165,6 +168,7 @@ module.exports = { 'prefer-const': 'warn', 'prefer-spread': 'off', '@typescript-eslint/no-empty-function': 'off', + 'import/no-default-export': 'warn', }, overrides: [ { @@ -200,6 +204,26 @@ module.exports = { ], }, }, + { + files: ['./packages/desktop-client/**/*'], + excludedFiles: [ + './packages/desktop-client/src/hooks/useNavigate.{ts,tsx}', + ], + rules: { + 'no-restricted-imports': [ + 'warn', + { + patterns: [ + { + group: ['react-router-dom'], + importNames: ['useNavigate'], + message: 'Please use Actual’s useNavigate() hook instead.', + }, + ], + }, + ], + }, + }, { files: ['./packages/loot-core/src/**/*'], rules: { @@ -238,6 +262,15 @@ module.exports = { 'no-restricted-imports': ['off', { patterns: restrictedImportColors }], }, }, + { + files: [ + './packages/api/migrations/*', + './packages/loot-core/migrations/*', + ], + rules: { + 'import/no-default-export': 'off', + }, + }, ], settings: { 'import/resolver': { diff --git a/.gitattributes b/.gitattributes index 21f3d101a30..a592bc40b1e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -16,4 +16,4 @@ yarn.lock text eol=lf # Denote all files that are truly binary and should not be modified. *.png binary -*.jpg binary \ No newline at end of file +*.jpg binary diff --git a/.github/workflows/e2e-test.yml b/.github/workflows/e2e-test.yml index 3276e403f1a..1d48d375a87 100644 --- a/.github/workflows/e2e-test.yml +++ b/.github/workflows/e2e-test.yml @@ -66,38 +66,3 @@ jobs: name: desktop-client-test-results path: packages/desktop-client/test-results/ retention-days: 30 - - uses: actions-ecosystem/action-add-labels@v1 - if: failure() - with: - labels: ':red_circle: VRT failing' - - uses: actions-ecosystem/action-remove-labels@v1 - if: success() - with: - labels: ':red_circle: VRT failing' - - name: Find Comment - uses: peter-evans/find-comment@v2 - id: fc - with: - issue-number: ${{ github.event.pull_request.number }} - comment-author: 'github-actions[bot]' - body-includes: VRT - - name: Create comment if failed - if: failure() - uses: peter-evans/create-or-update-comment@v3 - with: - comment-id: ${{ steps.fc.outputs.comment-id }} - issue-number: ${{ github.event.pull_request.number }} - body: | - :wave: Looks like VRT (visual regression tests) are failing in this PR. This indicates a problem in the app. It could be either a bug in this PR or a visual change introduced by changing something. - - To fix this: please follow [these instructions](https://github.com/actualbudget/actual/blob/master/packages/desktop-client/README.md#visual-regression) and review the output of the failing CI job to see the generated screenshots. - - We look forward to reviewing this PR once all the CI jobs have passed successfully! - edit-mode: replace - - name: Update comment when CI job passes - if: success() && steps.fc.outputs.comment-id != '' - uses: peter-evans/create-or-update-comment@v3 - with: - comment-id: ${{ steps.fc.outputs.comment-id }} - body: The VRT tests have passed! Thank you! - edit-mode: replace diff --git a/.github/workflows/electron-master.yml b/.github/workflows/electron-master.yml new file mode 100644 index 00000000000..0fe0dd17025 --- /dev/null +++ b/.github/workflows/electron-master.yml @@ -0,0 +1,50 @@ +name: Electron + +defaults: + run: + shell: bash + +env: + CI: true + +on: + push: + branches: + - master + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: false + +jobs: + build: + strategy: + matrix: + os: + - ubuntu-latest + - windows-latest + - macos-latest + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v3 + - if: ${{ startsWith(matrix.os, 'windows') }} + run: pip.exe install setuptools + - if: ${{ ! startsWith(matrix.os, 'windows') }} + run: python3 -m pip install setuptools + - name: Set up environment + uses: ./.github/actions/setup + - name: Build Electron + run: ./bin/package-electron + env: + CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }} + CSC_LINK: ${{ secrets.CSC_LINK }} + APPLE_ID: ${{ secrets.APPLE_ID }} + APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }} + - name: Upload Build + uses: actions/upload-artifact@v3 + with: + name: actual-electron-${{ matrix.os }} + path: | + packages/desktop-electron/dist/*.dmg + packages/desktop-electron/dist/*.exe + packages/desktop-electron/dist/*.AppImage diff --git a/.github/workflows/electron.yml b/.github/workflows/electron-pr.yml similarity index 89% rename from .github/workflows/electron.yml rename to .github/workflows/electron-pr.yml index 36d510215f4..8a5f2a98682 100644 --- a/.github/workflows/electron.yml +++ b/.github/workflows/electron-pr.yml @@ -8,14 +8,11 @@ env: CI: true on: - push: - branches: - - master pull_request: concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: ${{ github.ref != 'refs/heads/master' }} + group: ${{ github.workflow }}-${{ github.event.pull_request.number }} + cancel-in-progress: true jobs: build: diff --git a/.github/workflows/size-compare.yml b/.github/workflows/size-compare.yml index 0dfcda68a63..40da2aad617 100644 --- a/.github/workflows/size-compare.yml +++ b/.github/workflows/size-compare.yml @@ -66,11 +66,11 @@ jobs: run: | sed -i -E 's/\.[0-9a-f]{8,}\././g' ./head/*.json sed -i -E 's/\.[0-9a-f]{8,}\././g' ./base/*.json - - uses: github/webpack-bundlesize-compare-action@v1.8.2 + - uses: twk3/rollup-size-compare-action@v1.0.0 with: github-token: ${{ secrets.GITHUB_TOKEN }} - current-stats-json-path: ./head/desktop-client-stats.json - base-stats-json-path: ./base/desktop-client-stats.json + current-stats-json-path: ./head/web-stats.json + base-stats-json-path: ./base/web-stats.json title: desktop-client - uses: github/webpack-bundlesize-compare-action@v1.8.2 diff --git a/.secret-tokens.example b/.secret-tokens.example new file mode 100644 index 00000000000..1675ffbfd99 --- /dev/null +++ b/.secret-tokens.example @@ -0,0 +1,2 @@ +export APPLE_ID=example@email.com +export APPLE_APP_SPECIFIC_PASSWORD=password diff --git a/bin/package-electron b/bin/package-electron index 0caece7e196..801a6c5e2fe 100755 --- a/bin/package-electron +++ b/bin/package-electron @@ -3,7 +3,6 @@ ROOT=`dirname $0` RELEASE="" -RELEASE_NOTES="" # TODO: figure out automation for release notes when we start publishing electron versions CI=${CI:-false} cd "$ROOT/.." @@ -47,15 +46,13 @@ yarn workspace desktop-electron update-client cd packages/desktop-electron; yarn clean; - export npm_config_better_sqlite3_binary_host="https://static.actualbudget.com/prebuild/better-sqlite3" - if [ "$RELEASE" == "production" ]; then if [ -f ../../.secret-tokens ]; then source ../../.secret-tokens fi - yarn build --publish always -c.releaseInfo.releaseNotes="$RELEASE_NOTES" --arm64 --x64 + yarn build --publish never --arm64 --x64 - echo "\nCreated release with release notes \"$RELEASE_NOTES\"" + echo "\nCreated release" else SKIP_NOTARIZATION=true yarn build --publish never --x64 fi diff --git a/packages/api/app/query.js b/packages/api/app/query.js index dddb807de3e..f9f8079951e 100644 --- a/packages/api/app/query.js +++ b/packages/api/app/query.js @@ -99,6 +99,6 @@ class Query { } } -export default function q(table) { +export function q(table) { return new Query({ table }); } diff --git a/packages/api/methods.js b/packages/api/methods.js index 7d6ef8a29f2..9af541f2670 100644 --- a/packages/api/methods.js +++ b/packages/api/methods.js @@ -1,6 +1,6 @@ import * as injected from './injected'; -export { default as q } from './app/query'; +export { q } from './app/query'; function send(name, args) { return injected.send(name, args); diff --git a/packages/api/methods.test.ts b/packages/api/methods.test.ts index cca376242fc..f38a6985e70 100644 --- a/packages/api/methods.test.ts +++ b/packages/api/methods.test.ts @@ -272,4 +272,117 @@ describe('API CRUD operations', () => { ]), ); }); + + // apis: createPayee, getPayees, updatePayee, deletePayee + test('Payees: successfully update payees', async () => { + const payeeId1 = await api.createPayee({ name: 'test-payee1' }); + const payeeId2 = await api.createPayee({ name: 'test-payee2' }); + let payees = await api.getPayees(); + + // payees successfully created + expect(payees).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: payeeId1, + name: 'test-payee1', + }), + expect.objectContaining({ + id: payeeId2, + name: 'test-payee2', + }), + ]), + ); + + await api.updatePayee(payeeId1, { name: 'test-updated-payee' }); + await api.deletePayee(payeeId2); + + // confirm update and delete were successful + payees = await api.getPayees(); + expect(payees).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: payeeId1, + name: 'test-updated-payee', + }), + expect.not.objectContaining({ + name: 'test-payee1', + }), + expect.not.objectContaining({ + id: payeeId2, + }), + ]), + ); + }); + + // apis: addTransactions, getTransactions, importTransactions, updateTransaction, deleteTransaction + test('Transactions: successfully update transactions', async () => { + const accountId = await api.createAccount({ name: 'test-account' }, 0); + + let newTransaction = [ + { date: '2023-11-03', imported_id: '11', amount: 100 }, + { date: '2023-11-03', imported_id: '11', amount: 100 }, + ]; + + const addResult = await api.addTransactions(accountId, newTransaction, { + learnCategories: true, + runTransfers: true, + }); + expect(addResult).toBe('ok'); + + // confirm added transactions exist + let transactions = await api.getTransactions( + accountId, + '2023-11-01', + '2023-11-30', + ); + expect(transactions).toEqual( + expect.arrayContaining( + newTransaction.map(trans => expect.objectContaining(trans)), + ), + ); + expect(transactions).toHaveLength(2); + + newTransaction = [ + { date: '2023-12-03', imported_id: '11', amount: 100 }, + { date: '2023-12-03', imported_id: '22', amount: 200 }, + ]; + + const reconciled = await api.importTransactions(accountId, newTransaction); + + // Expect it to reconcile and to have updated one of the previous transactions + expect(reconciled.added).toHaveLength(1); + expect(reconciled.updated).toHaveLength(1); + + // confirm imported transactions exist + transactions = await api.getTransactions( + accountId, + '2023-12-01', + '2023-12-31', + ); + expect(transactions).toEqual( + expect.arrayContaining( + newTransaction.map(trans => expect.objectContaining(trans)), + ), + ); + expect(transactions).toHaveLength(2); + + const idToUpdate = reconciled.added[0]; + const idToDelete = reconciled.updated[0]; + await api.updateTransaction(idToUpdate, { amount: 500 }); + await api.deleteTransaction(idToDelete); + + // confirm updates and deletions work + transactions = await api.getTransactions( + accountId, + '2023-12-01', + '2023-12-31', + ); + expect(transactions).toEqual( + expect.arrayContaining([ + expect.objectContaining({ id: idToUpdate, amount: 500 }), + expect.not.objectContaining({ id: idToDelete }), + ]), + ); + expect(transactions).toHaveLength(1); + }); }); diff --git a/packages/api/package.json b/packages/api/package.json index e3c71255ff5..7c2d9a01e5b 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -1,6 +1,6 @@ { "name": "@actual-app/api", - "version": "6.3.0", + "version": "6.4.0", "license": "MIT", "description": "An API for Actual", "engines": { @@ -20,7 +20,7 @@ "test": "yarn run build:app && jest -c jest.config.js" }, "dependencies": { - "better-sqlite3": "^9.1.1", + "better-sqlite3": "^9.2.2", "compare-versions": "^6.1.0", "node-fetch": "^3.3.2", "uuid": "^9.0.0" diff --git a/packages/desktop-client/.gitignore b/packages/desktop-client/.gitignore index 7a5faec2c43..08fad3425bd 100644 --- a/packages/desktop-client/.gitignore +++ b/packages/desktop-client/.gitignore @@ -10,11 +10,13 @@ test-results # production build build-stats +stats.json # misc .DS_Store .env npm-debug.log +.swc *kcab.* public/kcab diff --git a/packages/desktop-client/README.md b/packages/desktop-client/README.md index 834b79b486a..2c6572f9fed 100644 --- a/packages/desktop-client/README.md +++ b/packages/desktop-client/README.md @@ -37,14 +37,15 @@ First start the dev server: ```sh HTTPS=true yarn start ``` + Next, navigate to the root of your project folder, run the standartised docker container, and launch the visual regression tests from within it. ```sh # Run docker container -docker run --rm --network host -v $(pwd):/work/ -w /work/ -it mcr.microsoft.com/playwright:v1.37.0-jammy /bin/bash +docker run --rm --network host -v $(pwd):/work/ -w /work/ -it mcr.microsoft.com/playwright:v1.37.1-jammy /bin/bash - # If you recieve an error such as "docker: invalid reference format", please instead use the following command: - docker run --rm --network host -v ${pwd}:/work/ -w /work/ -it mcr.microsoft.com/playwright:v1.37.0-jammy /bin/bash + # If you receive an error such as "docker: invalid reference format", please instead use the following command: + docker run --rm --network host -v ${pwd}:/work/ -w /work/ -it mcr.microsoft.com/playwright:v1.37.1-jammy /bin/bash # Run the VRT tests: important - they MUST be ran against a HTTPS server E2E_START_URL=https://192.168.0.178:3001 yarn vrt diff --git a/packages/desktop-client/bin/build-browser b/packages/desktop-client/bin/build-browser index 37fddd17f27..3e6e18aa6c0 100755 --- a/packages/desktop-client/bin/build-browser +++ b/packages/desktop-client/bin/build-browser @@ -8,7 +8,6 @@ echo "Building the browser..." rm -fr build export IS_GENERIC_BROWSER=1 -export INLINE_RUNTIME_CHUNK=false export REACT_APP_BACKEND_WORKER_HASH=`ls "$ROOT"/../public/kcab/kcab.worker.*.js | sed 's/.*kcab\.worker\.\(.*\)\.js/\1/'` yarn build @@ -16,4 +15,4 @@ yarn build rm -fr build-stats mkdir build-stats mv build/kcab/stats.json build-stats/loot-core-stats.json -mv build/stats.json build-stats/desktop-client-stats.json +mv ./stats.json build-stats/web-stats.json diff --git a/packages/desktop-client/craco.config.ts b/packages/desktop-client/craco.config.ts deleted file mode 100644 index 42a428979a2..00000000000 --- a/packages/desktop-client/craco.config.ts +++ /dev/null @@ -1,116 +0,0 @@ -const path = require('path'); - -const { - loaderByName, - removeLoaders, - addAfterLoader, - addPlugins, -} = require('@craco/craco'); -const chokidar = require('chokidar'); -const TerserPlugin = require('terser-webpack-plugin'); -const { IgnorePlugin } = require('webpack'); -const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer'); - -if (process.env.CI) { - process.env.DISABLE_ESLINT_PLUGIN = 'true'; -} - -// Forward Netlify env variables -if (process.env.REVIEW_ID) { - process.env.REACT_APP_REVIEW_ID = process.env.REVIEW_ID; -} - -module.exports = { - webpack: { - configure: (webpackConfig, { env, paths }) => { - webpackConfig.mode = - process.env.NODE_ENV === 'development' ? 'development' : 'production'; - - // swc-loader - addAfterLoader(webpackConfig, loaderByName('babel-loader'), { - test: /\.m?[tj]sx?$/, - exclude: /node_modules/, - loader: require.resolve('swc-loader'), - }); - - // remove the babel loaders - removeLoaders(webpackConfig, loaderByName('babel-loader')); - - addPlugins(webpackConfig, [ - new BundleAnalyzerPlugin({ - analyzerMode: 'disabled', - generateStatsFile: true, - }), - // Pikaday throws a warning if Moment.js is not installed however it doesn't - // actually require it to be installed. As we don't use Moment.js ourselves - // then we can just silence this warning. - new IgnorePlugin({ - contextRegExp: /pikaday$/, - resourceRegExp: /moment$/, - }), - ]); - - webpackConfig.resolve.extensions = [ - '.web.js', - '.web.jsx', - '.web.ts', - '.web.tsx', - '.js', - '.jsx', - '.ts', - '.tsx', - ...webpackConfig.resolve.extensions, - ]; - - if (process.env.IS_GENERIC_BROWSER) { - webpackConfig.resolve.extensions = [ - '.browser.js', - '.browser.jsx', - '.browser.ts', - '.browser.tsx', - ...webpackConfig.resolve.extensions, - ]; - } - - webpackConfig.optimization = { - ...webpackConfig.optimization, - minimize: - process.env.CI === 'true' || process.env.NODE_ENV !== 'development', - minimizer: [ - new TerserPlugin({ - minify: TerserPlugin.swcMinify, - // `terserOptions` options will be passed to `swc` (`@swc/core`) - // Link to options - https://swc.rs/docs/config-js-minify - terserOptions: { - compress: false, - mangle: true, - }, - }), - ], - }; - - return webpackConfig; - }, - }, - devServer: (devServerConfig, { env, paths, proxy, allowedHost }) => { - devServerConfig.onBeforeSetupMiddleware = server => { - chokidar - .watch([ - path.resolve('../loot-core/lib-dist/*.js'), - path.resolve('../loot-core/lib-dist/browser/*.js'), - ]) - .on('all', function () { - for (const ws of server.webSocketServer.clients) { - ws.send(JSON.stringify({ type: 'static-changed' })); - } - }); - }; - devServerConfig.headers = { - ...devServerConfig.headers, - 'Cross-Origin-Opener-Policy': 'same-origin', - 'Cross-Origin-Embedder-Policy': 'require-corp', - }; - - return devServerConfig; - }, -}; diff --git a/packages/desktop-client/e2e/mobile.test.js-snapshots/Mobile-creates-a-transaction-via-footer-button-5-chromium-linux.png b/packages/desktop-client/e2e/mobile.test.js-snapshots/Mobile-creates-a-transaction-via-footer-button-5-chromium-linux.png index ee3954dd3f7..5e5f6c3febb 100644 Binary files a/packages/desktop-client/e2e/mobile.test.js-snapshots/Mobile-creates-a-transaction-via-footer-button-5-chromium-linux.png and b/packages/desktop-client/e2e/mobile.test.js-snapshots/Mobile-creates-a-transaction-via-footer-button-5-chromium-linux.png differ diff --git a/packages/desktop-client/e2e/mobile.test.js-snapshots/Mobile-creates-a-transaction-via-footer-button-6-chromium-linux.png b/packages/desktop-client/e2e/mobile.test.js-snapshots/Mobile-creates-a-transaction-via-footer-button-6-chromium-linux.png index 136f760a312..4de0dfb4895 100644 Binary files a/packages/desktop-client/e2e/mobile.test.js-snapshots/Mobile-creates-a-transaction-via-footer-button-6-chromium-linux.png and b/packages/desktop-client/e2e/mobile.test.js-snapshots/Mobile-creates-a-transaction-via-footer-button-6-chromium-linux.png differ diff --git a/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-3-chromium-linux.png b/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-3-chromium-linux.png index ed62336bdf9..32f89ebccab 100644 Binary files a/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-3-chromium-linux.png and b/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-3-chromium-linux.png differ diff --git a/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-4-chromium-linux.png b/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-4-chromium-linux.png index b3cea84a41e..0f71093688d 100644 Binary files a/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-4-chromium-linux.png and b/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-4-chromium-linux.png differ diff --git a/packages/desktop-client/e2e/reports.test.js-snapshots/Reports-loads-net-worth-and-cash-flow-reports-1-chromium-linux.png b/packages/desktop-client/e2e/reports.test.js-snapshots/Reports-loads-net-worth-and-cash-flow-reports-1-chromium-linux.png index cf8cc81acb3..6ad0736f6f5 100644 Binary files a/packages/desktop-client/e2e/reports.test.js-snapshots/Reports-loads-net-worth-and-cash-flow-reports-1-chromium-linux.png and b/packages/desktop-client/e2e/reports.test.js-snapshots/Reports-loads-net-worth-and-cash-flow-reports-1-chromium-linux.png differ diff --git a/packages/desktop-client/e2e/reports.test.js-snapshots/Reports-loads-net-worth-and-cash-flow-reports-2-chromium-linux.png b/packages/desktop-client/e2e/reports.test.js-snapshots/Reports-loads-net-worth-and-cash-flow-reports-2-chromium-linux.png index 855c0492000..4052e48c433 100644 Binary files a/packages/desktop-client/e2e/reports.test.js-snapshots/Reports-loads-net-worth-and-cash-flow-reports-2-chromium-linux.png and b/packages/desktop-client/e2e/reports.test.js-snapshots/Reports-loads-net-worth-and-cash-flow-reports-2-chromium-linux.png differ diff --git a/packages/desktop-client/public/index.html b/packages/desktop-client/index.html similarity index 88% rename from packages/desktop-client/public/index.html rename to packages/desktop-client/index.html index 08590d33006..e136b97dca1 100644 --- a/packages/desktop-client/public/index.html +++ b/packages/desktop-client/index.html @@ -8,25 +8,25 @@ /> Actual - + - + @@ -102,5 +102,6 @@
+ diff --git a/packages/desktop-client/package.json b/packages/desktop-client/package.json index 023432cc055..56866d06c3e 100644 --- a/packages/desktop-client/package.json +++ b/packages/desktop-client/package.json @@ -1,13 +1,11 @@ { "name": "@actual-app/web", - "version": "23.12.0", + "version": "24.1.0", "license": "MIT", "files": [ "build" ], "devDependencies": { - "@craco/craco": "^7.1.0", - "@craco/types": "^7.1.0", "@juggle/resize-observer": "^3.1.2", "@playwright/test": "^1.37.1", "@reach/listbox": "^0.18.0", @@ -16,9 +14,11 @@ "@react-aria/utils": "^3.19.0", "@react-stately/collections": "^3.10.0", "@react-stately/list": "^3.9.1", + "@rollup/plugin-inject": "^5.0.5", "@svgr/cli": "^8.0.1", "@swc/core": "^1.3.82", "@swc/helpers": "^0.5.1", + "@swc/plugin-remove-console": "^1.5.105", "@testing-library/react": "14.0.0", "@testing-library/user-event": "14.4.3", "@types/react": "^18.2.0", @@ -28,6 +28,8 @@ "@types/uuid": "^9.0.2", "@types/webpack-bundle-analyzer": "^4.6.0", "@use-gesture/react": "^10.3.0", + "@vitejs/plugin-basic-ssl": "^1.0.2", + "@vitejs/plugin-react-swc": "^3.5.0", "chokidar": "^3.5.3", "cross-env": "^7.0.3", "date-fns": "^2.29.3", @@ -41,7 +43,7 @@ "jest-watch-typeahead": "^2.2.2", "mdast-util-newline-to-break": "^2.0.0", "memoize-one": "^6.0.0", - "pikaday": "1.8.0", + "pikaday": "1.8.2", "react": "18.2.0", "react-dnd": "^16.0.1", "react-dnd-html5-backend": "^16.0.1", @@ -52,7 +54,6 @@ "react-modal": "3.16.1", "react-redux": "7.2.1", "react-router-dom": "6.11.2", - "react-scripts": "^5.0.1", "react-simple-pull-to-refresh": "^1.3.3", "react-spring": "^9.7.1", "react-virtualized-auto-sizer": "^1.0.2", @@ -60,22 +61,26 @@ "redux": "^4.0.5", "redux-thunk": "^2.3.0", "remark-gfm": "^3.0.1", + "rollup-plugin-visualizer": "^5.11.0", "sass": "^1.63.6", "swc-loader": "^0.2.3", "terser-webpack-plugin": "^5.3.9", "uuid": "^9.0.0", "victory": "^36.6.8", + "vite": "^5.0.10", + "vite-tsconfig-paths": "^4.2.2", + "vitest": "^1.0.4", "webpack-bundle-analyzer": "^4.9.1", "xml2js": "^0.6.2" }, "scripts": { - "start": "cross-env PORT=3001 craco start", + "start": "cross-env PORT=3001 vite", "start:browser": "cross-env ./bin/watch-browser", "watch": "cross-env BROWSER=none yarn start", - "build": "cross-env INLINE_RUNTIME_CHUNK=false craco build", + "build": "vite build", "build:browser": "cross-env ./bin/build-browser", - "generate:icons": "rm src/icons/*/*.tsx; cd src/icons && svgr --typescript --expand-props start -d . .", - "test": "craco test", + "generate:icons": "rm src/icons/*/*.tsx; cd src/icons && svgr --template template.ts --index-template index-template.ts --typescript --expand-props start -d . .", + "test": "vitest", "e2e": "npx playwright test --browser=chromium", "vrt": "cross-env VRT=true npx playwright test --browser=chromium" } diff --git a/packages/desktop-client/playwright.config.js b/packages/desktop-client/playwright.config.js index 91e007f8e64..c642b3ddca1 100644 --- a/packages/desktop-client/playwright.config.js +++ b/packages/desktop-client/playwright.config.js @@ -41,7 +41,7 @@ expect.extend({ }, }); -// eslint-disable-next-line import/no-unused-modules +// eslint-disable-next-line import/no-unused-modules, import/no-default-export export default defineConfig({ timeout: 20000, // 20 seconds retries: 1, diff --git a/packages/desktop-client/public/site.webmanifest b/packages/desktop-client/public/site.webmanifest index b20abb7cbb2..5b970d97865 100644 --- a/packages/desktop-client/public/site.webmanifest +++ b/packages/desktop-client/public/site.webmanifest @@ -1,6 +1,6 @@ { - "name": "", - "short_name": "", + "name": "Actual", + "short_name": "Actual", "icons": [ { "src": "/android-chrome-192x192.png", @@ -15,5 +15,6 @@ ], "theme_color": "#ffffff", "background_color": "#ffffff", - "display": "standalone" + "display": "standalone", + "start_url": "." } diff --git a/packages/desktop-client/src/browser-preload.browser.js b/packages/desktop-client/src/browser-preload.browser.js index 803ed2ac5b9..37bd1f53719 100644 --- a/packages/desktop-client/src/browser-preload.browser.js +++ b/packages/desktop-client/src/browser-preload.browser.js @@ -125,6 +125,7 @@ global.Actual = { applyAppUpdate: () => {}, updateAppMenu: isBudgetOpen => {}, + ipcConnect: () => {}, getServerSocket: async () => { return worker; }, diff --git a/packages/desktop-client/src/build-shims.js b/packages/desktop-client/src/build-shims.js new file mode 100644 index 00000000000..e9348c2dd80 --- /dev/null +++ b/packages/desktop-client/src/build-shims.js @@ -0,0 +1,14 @@ +const global = globalThis || this || self; + +const process = { + env: { + ...import.meta.env, + NODE_ENV: import.meta.env.MODE, + PUBLIC_URL: import.meta.env.BASE_URL.slice(0, -1), + }, +}; + +// eslint-disable-next-line import/no-unused-modules +export { process }; +// eslint-disable-next-line import/no-unused-modules +export { global }; diff --git a/packages/desktop-client/src/components/AnimatedRefresh.tsx b/packages/desktop-client/src/components/AnimatedRefresh.tsx index c6e613c956e..56dff953435 100644 --- a/packages/desktop-client/src/components/AnimatedRefresh.tsx +++ b/packages/desktop-client/src/components/AnimatedRefresh.tsx @@ -2,10 +2,10 @@ import React from 'react'; import { keyframes } from 'glamor'; -import Refresh from '../icons/v1/Refresh'; +import { SvgRefresh } from '../icons/v1'; import { type CSSProperties } from '../style'; -import View from './common/View'; +import { View } from './common/View'; const spin = keyframes({ '0%': { transform: 'rotateZ(0deg)' }, @@ -19,7 +19,7 @@ type AnimatedRefreshProps = { height?: number; }; -export default function AnimatedRefresh({ +export function AnimatedRefresh({ animating, iconStyle, width, @@ -29,7 +29,7 @@ export default function AnimatedRefresh({ - Promise; }; -function App({ +function AppInner({ budgetId, cloudFileId, loadingText, loadBudget, closeBudget, loadGlobalPrefs, -}: AppProps) { +}: AppInnerProps) { const [initializing, setInitializing] = useState(true); const { showBoundary: showErrorBoundary } = useErrorBoundary(); @@ -121,7 +121,7 @@ function ErrorFallback({ error }: FallbackProps) { ); } -function AppWrapper() { +export function App() { const budgetId = useSelector( state => state.prefs.local && state.prefs.local.id, ); @@ -178,7 +178,7 @@ function AppWrapper() { {process.env.REACT_APP_REVIEW_ID && !Platform.isPlaywright && ( )} - ); } - -export default AppWrapper; diff --git a/packages/desktop-client/src/components/AppBackground.tsx b/packages/desktop-client/src/components/AppBackground.tsx index b23e84af6ab..dd484ac60c0 100644 --- a/packages/desktop-client/src/components/AppBackground.tsx +++ b/packages/desktop-client/src/components/AppBackground.tsx @@ -2,19 +2,22 @@ import React from 'react'; import { css } from 'glamor'; -import AnimatedLoading from '../icons/AnimatedLoading'; +import { AnimatedLoading } from '../icons/AnimatedLoading'; import { theme } from '../style'; -import Background from './Background'; -import Block from './common/Block'; -import View from './common/View'; +import { Background } from './Background'; +import { Block } from './common/Block'; +import { View } from './common/View'; type AppBackgroundProps = { initializing?: boolean; loadingText?: string; }; -function AppBackground({ initializing, loadingText }: AppBackgroundProps) { +export function AppBackground({ + initializing, + loadingText, +}: AppBackgroundProps) { return ( <> @@ -41,5 +44,3 @@ function AppBackground({ initializing, loadingText }: AppBackgroundProps) { ); } - -export default AppBackground; diff --git a/packages/desktop-client/src/components/Background.tsx b/packages/desktop-client/src/components/Background.tsx index 3f2c687b50b..3aa8f367b33 100644 --- a/packages/desktop-client/src/components/Background.tsx +++ b/packages/desktop-client/src/components/Background.tsx @@ -4,7 +4,7 @@ import { theme } from '../style'; import { LoadComponent } from './util/LoadComponent'; -export default function Background() { +export function Background() { return (
state.account.accountsSyncing); const name = accountsSyncing diff --git a/packages/desktop-client/src/components/DevelopmentTopBar.tsx b/packages/desktop-client/src/components/DevelopmentTopBar.tsx index a98533e64c1..768422df111 100644 --- a/packages/desktop-client/src/components/DevelopmentTopBar.tsx +++ b/packages/desktop-client/src/components/DevelopmentTopBar.tsx @@ -1,9 +1,9 @@ import { theme } from '../style'; -import ExternalLink from './common/ExternalLink'; -import View from './common/View'; +import { ExternalLink } from './common/ExternalLink'; +import { View } from './common/View'; -export default function DevelopmentTopBar() { +export function DevelopmentTopBar() { return ( ); } - -export default FatalError; diff --git a/packages/desktop-client/src/components/FinancesApp.tsx b/packages/desktop-client/src/components/FinancesApp.tsx index 1d79cce61a5..60ca0d8fbe5 100644 --- a/packages/desktop-client/src/components/FinancesApp.tsx +++ b/packages/desktop-client/src/components/FinancesApp.tsx @@ -5,7 +5,6 @@ import { Route, Routes, Navigate, - useNavigate, BrowserRouter, useLocation, useHref, @@ -16,30 +15,31 @@ import hotkeys from 'hotkeys-js'; import { AccountsProvider } from 'loot-core/src/client/data-hooks/accounts'; import { PayeesProvider } from 'loot-core/src/client/data-hooks/payees'; import { SpreadsheetProvider } from 'loot-core/src/client/SpreadsheetProvider'; -import checkForUpdateNotification from 'loot-core/src/client/update-notification'; +import { checkForUpdateNotification } from 'loot-core/src/client/update-notification'; import * as undo from 'loot-core/src/platform/client/undo'; import { useActions } from '../hooks/useActions'; +import { useNavigate } from '../hooks/useNavigate'; import { useResponsive } from '../ResponsiveProvider'; import { theme } from '../style'; import { ExposeNavigate } from '../util/router-tools'; import { getIsOutdated, getLatestVersion } from '../util/versions'; -import BankSyncStatus from './BankSyncStatus'; +import { BankSyncStatus } from './BankSyncStatus'; import { BudgetMonthCountProvider } from './budget/BudgetMonthCountContext'; -import View from './common/View'; -import GlobalKeys from './GlobalKeys'; +import { View } from './common/View'; +import { GlobalKeys } from './GlobalKeys'; import { ManageRulesPage } from './ManageRulesPage'; -import MobileNavTabs from './mobile/MobileNavTabs'; -import Modals from './Modals'; -import Notifications from './Notifications'; +import { MobileNavTabs } from './mobile/MobileNavTabs'; +import { Modals } from './Modals'; +import { Notifications } from './Notifications'; import { ManagePayeesPage } from './payees/ManagePayeesPage'; -import Reports from './reports'; +import { Reports } from './reports'; import { NarrowAlternate, WideComponent } from './responsive'; -import ScrollProvider from './ScrollProvider'; -import Settings from './settings'; -import FloatableSidebar, { SidebarProvider } from './sidebar'; -import Titlebar, { TitlebarProvider } from './Titlebar'; +import { ScrollProvider } from './ScrollProvider'; +import { Settings } from './settings'; +import { FloatableSidebar, SidebarProvider } from './sidebar'; +import { Titlebar, TitlebarProvider } from './Titlebar'; import { TransactionEdit } from './transactions/MobileTransaction'; function NarrowNotSupported({ @@ -92,7 +92,7 @@ function RouterBehaviors({ getAccounts }) { return null; } -function FinancesApp() { +function FinancesAppWithoutContext() { const actions = useActions(); useEffect(() => { // The default key handler scope @@ -256,8 +256,8 @@ function FinancesApp() { ); } -export default function FinancesAppWithContext() { - const app = useMemo(() => , []); +export function FinancesApp() { + const app = useMemo(() => , []); return ( diff --git a/packages/desktop-client/src/components/FixedSizeList.tsx b/packages/desktop-client/src/components/FixedSizeList.tsx index f94bc890db0..ad8fcb6623b 100644 --- a/packages/desktop-client/src/components/FixedSizeList.tsx +++ b/packages/desktop-client/src/components/FixedSizeList.tsx @@ -10,10 +10,10 @@ import { import memoizeOne from 'memoize-one'; -import useResizeObserver from '../hooks/useResizeObserver'; +import { useResizeObserver } from '../hooks/useResizeObserver'; import { type CSSProperties } from '../style'; -import View from './common/View'; +import { View } from './common/View'; const IS_SCROLLING_DEBOUNCE_INTERVAL = 150; @@ -73,7 +73,7 @@ type FixedSizeListState = { scrollUpdateWasRequested: boolean; }; -export default class FixedSizeList extends PureComponent< +export class FixedSizeList extends PureComponent< FixedSizeListProps, FixedSizeListState > { diff --git a/packages/desktop-client/src/components/GlobalKeys.ts b/packages/desktop-client/src/components/GlobalKeys.ts index edcfe148aab..33e2e6bd846 100644 --- a/packages/desktop-client/src/components/GlobalKeys.ts +++ b/packages/desktop-client/src/components/GlobalKeys.ts @@ -2,9 +2,9 @@ import { useEffect } from 'react'; import * as Platform from 'loot-core/src/client/platform'; -import useNavigate from '../hooks/useNavigate'; +import { useNavigate } from '../hooks/useNavigate'; -export default function GlobalKeys() { +export function GlobalKeys() { const navigate = useNavigate(); useEffect(() => { const handleKeys = e => { diff --git a/packages/desktop-client/src/components/LoggedInUser.tsx b/packages/desktop-client/src/components/LoggedInUser.tsx index 91418dc0719..c4fa229c15f 100644 --- a/packages/desktop-client/src/components/LoggedInUser.tsx +++ b/packages/desktop-client/src/components/LoggedInUser.tsx @@ -4,10 +4,10 @@ import { useSelector } from 'react-redux'; import { useActions } from '../hooks/useActions'; import { theme, styles, type CSSProperties } from '../style'; -import Button from './common/Button'; -import Menu from './common/Menu'; -import Text from './common/Text'; -import View from './common/View'; +import { Button } from './common/Button'; +import { Menu } from './common/Menu'; +import { Text } from './common/Text'; +import { View } from './common/View'; import { useServerURL } from './ServerContext'; import { Tooltip } from './tooltips'; @@ -16,7 +16,7 @@ type LoggedInUserProps = { style?: CSSProperties; color?: string; }; -export default function LoggedInUser({ +export function LoggedInUser({ hideIfNoServer, style, color, diff --git a/packages/desktop-client/src/components/ManageRules.tsx b/packages/desktop-client/src/components/ManageRules.tsx index 36928d65520..6dbcea27150 100644 --- a/packages/desktop-client/src/components/ManageRules.tsx +++ b/packages/desktop-client/src/components/ManageRules.tsx @@ -16,20 +16,20 @@ import { mapField, friendlyOp } from 'loot-core/src/shared/rules'; import { describeSchedule } from 'loot-core/src/shared/schedules'; import { type RuleEntity } from 'loot-core/src/types/models'; -import useCategories from '../hooks/useCategories'; -import useSelected, { SelectedProvider } from '../hooks/useSelected'; +import { useCategories } from '../hooks/useCategories'; +import { useSelected, SelectedProvider } from '../hooks/useSelected'; import { theme } from '../style'; -import Button from './common/Button'; -import ExternalLink from './common/ExternalLink'; -import Search from './common/Search'; -import Stack from './common/Stack'; -import Text from './common/Text'; -import View from './common/View'; -import RulesHeader from './rules/RulesHeader'; -import RulesList from './rules/RulesList'; +import { Button } from './common/Button'; +import { ExternalLink } from './common/ExternalLink'; +import { Search } from './common/Search'; +import { Stack } from './common/Stack'; +import { Text } from './common/Text'; +import { View } from './common/View'; +import { RulesHeader } from './rules/RulesHeader'; +import { RulesList } from './rules/RulesList'; import { SchedulesQuery } from './rules/SchedulesQuery'; -import SimpleTable from './rules/SimpleTable'; +import { SimpleTable } from './rules/SimpleTable'; function mapValue(field, value, { payees, categories, accounts }) { if (!value) return ''; @@ -95,8 +95,8 @@ function ManageRulesContent({ payeeId, setLoading, }: ManageRulesContentProps) { - const [allRules, setAllRules] = useState(null); - const [rules, setRules] = useState(null); + const [allRules, setAllRules] = useState([]); + const [page, setPage] = useState(0); const [filter, setFilter] = useState(''); const dispatch = useDispatch(); @@ -117,18 +117,27 @@ function ManageRulesContent({ const filteredRules = useMemo( () => - filter === '' || !rules - ? rules - : rules.filter(rule => + (filter === '' + ? allRules + : allRules.filter(rule => ruleToString(rule, filterData) .toLowerCase() .includes(filter.toLowerCase()), - ), - [rules, filter, filterData], + ) + ).slice(0, 100 + page * 50), + [allRules, filter, filterData, page], ); const selectedInst = useSelected('manage-rules', allRules, []); const [hoveredRule, setHoveredRule] = useState(null); + const onSearchChange = useCallback( + (value: string) => { + setFilter(value); + setPage(0); + }, + [setFilter], + ); + async function loadRules() { setLoading(true); @@ -147,8 +156,7 @@ function ManageRulesContent({ useEffect(() => { async function loadData() { - const loadedRules = await loadRules(); - setRules(loadedRules.slice(0, 100)); + await loadRules(); setLoading(false); await dispatch(initiallyLoadPayees()); @@ -166,7 +174,7 @@ function ManageRulesContent({ }, []); function loadMore() { - setRules(rules.concat(allRules.slice(rules.length, rules.length + 50))); + setPage(page => page + 1); } async function onDeleteSelected() { @@ -179,10 +187,7 @@ function ManageRulesContent({ alert('Some rules were not deleted because they are linked to schedules'); } - const newRules = await loadRules(); - setRules(rules => { - return newRules.slice(0, rules.length); - }); + await loadRules(); selectedInst.dispatch({ type: 'select-none' }); setLoading(false); } @@ -191,19 +196,8 @@ function ManageRulesContent({ dispatch( pushModal('edit-rule', { rule, - onSave: async newRule => { - const newRules = await loadRules(); - - setRules(rules => { - const newIdx = newRules.findIndex(rule => rule.id === newRule.id); - - if (newIdx > rules.length) { - return newRules.slice(0, newIdx + 75); - } else { - return newRules.slice(0, rules.length); - } - }); - + onSave: async () => { + await loadRules(); setLoading(false); }, }), @@ -236,13 +230,7 @@ function ManageRulesContent({ pushModal('edit-rule', { rule, onSave: async newRule => { - const newRules = await loadRules(); - - setRules(rules => { - const newIdx = newRules.findIndex(rule => rule.id === newRule.id); - return newRules.slice(0, newIdx + 75); - }); - + await loadRules(); setLoading(false); }, }), @@ -253,10 +241,6 @@ function ManageRulesContent({ setHoveredRule(id); }, []); - if (rules === null) { - return null; - } - return ( @@ -290,24 +274,27 @@ function ManageRulesContent({ - + {filteredRules.length === 0 ? ( + + ) : ( + + )} + {text} + + ); +} + type ManageRulesProps = { isModal: boolean; payeeId: string | null; setLoading?: Dispatch>; }; -export default function ManageRules({ +export function ManageRules({ isModal, payeeId, setLoading = () => {}, diff --git a/packages/desktop-client/src/components/ManageRulesPage.tsx b/packages/desktop-client/src/components/ManageRulesPage.tsx index e64f57e8788..ad57e2bd2d9 100644 --- a/packages/desktop-client/src/components/ManageRulesPage.tsx +++ b/packages/desktop-client/src/components/ManageRulesPage.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import ManageRules from './ManageRules'; +import { ManageRules } from './ManageRules'; import { Page } from './Page'; export function ManageRulesPage() { diff --git a/packages/desktop-client/src/components/MobileBackButton.tsx b/packages/desktop-client/src/components/MobileBackButton.tsx index 6ea749fdbbd..d13b504dc72 100644 --- a/packages/desktop-client/src/components/MobileBackButton.tsx +++ b/packages/desktop-client/src/components/MobileBackButton.tsx @@ -1,17 +1,17 @@ import React from 'react'; -import useNavigate from '../hooks/useNavigate'; -import CheveronLeft from '../icons/v1/CheveronLeft'; +import { useNavigate } from '../hooks/useNavigate'; +import { SvgCheveronLeft } from '../icons/v1'; import { type CSSProperties, styles, theme } from '../style'; -import Button from './common/Button'; -import Text from './common/Text'; +import { Button } from './common/Button'; +import { Text } from './common/Text'; type MobileBackButtonProps = { style?: CSSProperties; }; -export default function MobileBackButton({ style }: MobileBackButtonProps) { +export function MobileBackButton({ style }: MobileBackButtonProps) { const navigate = useNavigate(); return ( {tooltipOpen && ( - + )} @@ -235,7 +235,7 @@ function Notification({ ); } -export default function Notifications({ style }: { style?: CSSProperties }) { +export function Notifications({ style }: { style?: CSSProperties }) { const { removeNotification } = useActions(); const notifications = useSelector(state => state.notifications.notifications); return ( diff --git a/packages/desktop-client/src/components/Page.tsx b/packages/desktop-client/src/components/Page.tsx index d9bd447f9c2..3c3f0179204 100644 --- a/packages/desktop-client/src/components/Page.tsx +++ b/packages/desktop-client/src/components/Page.tsx @@ -3,8 +3,8 @@ import React, { type ComponentPropsWithoutRef, type ReactNode } from 'react'; import { useResponsive } from '../ResponsiveProvider'; import { theme, styles, type CSSProperties } from '../style'; -import Text from './common/Text'; -import View from './common/View'; +import { Text } from './common/Text'; +import { View } from './common/View'; type PageHeaderProps = { title: ReactNode; diff --git a/packages/desktop-client/src/components/PrivacyFilter.tsx b/packages/desktop-client/src/components/PrivacyFilter.tsx index 5e5d9d0edec..3f55382c66d 100644 --- a/packages/desktop-client/src/components/PrivacyFilter.tsx +++ b/packages/desktop-client/src/components/PrivacyFilter.tsx @@ -6,13 +6,13 @@ import React, { type ReactNode, } from 'react'; -import usePrivacyMode from 'loot-core/src/client/privacy'; +import { usePrivacyMode } from 'loot-core/src/client/privacy'; import { useResponsive } from '../ResponsiveProvider'; -import View from './common/View'; +import { View } from './common/View'; -export type ConditionalPrivacyFilterProps = { +type ConditionalPrivacyFilterProps = { children: ReactNode; privacyFilter?: boolean | PrivacyFilterProps; defaultPrivacyFilterProps?: PrivacyFilterProps; @@ -46,7 +46,7 @@ type PrivacyFilterProps = ComponentPropsWithRef & { activationFilters?: (boolean | (() => boolean))[]; blurIntensity?: number; }; -export default function PrivacyFilter({ +export function PrivacyFilter({ activationFilters, blurIntensity, children, diff --git a/packages/desktop-client/src/components/ScrollProvider.tsx b/packages/desktop-client/src/components/ScrollProvider.tsx index b959fbc40b8..8cbe68c8cb9 100644 --- a/packages/desktop-client/src/components/ScrollProvider.tsx +++ b/packages/desktop-client/src/components/ScrollProvider.tsx @@ -19,7 +19,7 @@ type ScrollProviderProps = { children?: ReactNode; }; -export default function ScrollProvider({ children }: ScrollProviderProps) { +export function ScrollProvider({ children }: ScrollProviderProps) { const [scrollY, setScrollY] = useState(undefined); const [isBottomReached, setIsBottomReached] = useState(false); diff --git a/packages/desktop-client/src/components/SyncRefresh.ts b/packages/desktop-client/src/components/SyncRefresh.tsx similarity index 63% rename from packages/desktop-client/src/components/SyncRefresh.ts rename to packages/desktop-client/src/components/SyncRefresh.tsx index 714ba0f6fee..adfcd8f4b72 100644 --- a/packages/desktop-client/src/components/SyncRefresh.ts +++ b/packages/desktop-client/src/components/SyncRefresh.tsx @@ -1,4 +1,4 @@ -import { type ReactNode, useState } from 'react'; +import React, { type ReactNode, useState } from 'react'; type ChildrenProps = { refreshing: boolean; @@ -8,7 +8,7 @@ type SyncRefreshProps = { onSync: () => Promise; children: (props: ChildrenProps) => ReactNode; }; -export default function SyncRefresh({ onSync, children }: SyncRefreshProps) { +export function SyncRefresh({ onSync, children }: SyncRefreshProps) { const [syncing, setSyncing] = useState(false); async function onSync_() { @@ -17,5 +17,5 @@ export default function SyncRefresh({ onSync, children }: SyncRefreshProps) { setSyncing(false); } - return children({ refreshing: syncing, onRefresh: onSync_ }); + return <>{children({ refreshing: syncing, onRefresh: onSync_ })}; } diff --git a/packages/desktop-client/src/components/ThemeSelector.tsx b/packages/desktop-client/src/components/ThemeSelector.tsx index be05f21d69f..41629ad87cc 100644 --- a/packages/desktop-client/src/components/ThemeSelector.tsx +++ b/packages/desktop-client/src/components/ThemeSelector.tsx @@ -3,14 +3,12 @@ import React, { useState } from 'react'; import type { Theme } from 'loot-core/src/types/prefs'; import { useActions } from '../hooks/useActions'; -import MoonStars from '../icons/v2/MoonStars'; -import Sun from '../icons/v2/Sun'; -import System from '../icons/v2/System'; +import { SvgMoonStars, SvgSun, SvgSystem } from '../icons/v2'; import { useResponsive } from '../ResponsiveProvider'; import { type CSSProperties, themeOptions, useTheme } from '../style'; -import Button from './common/Button'; -import Menu from './common/Menu'; +import { Button } from './common/Button'; +import { Menu } from './common/Menu'; import { Tooltip } from './tooltips'; type ThemeSelectorProps = { @@ -24,7 +22,11 @@ export function ThemeSelector({ style }: ThemeSelectorProps) { const { isNarrowWidth } = useResponsive(); - const themeIcons = { light: Sun, dark: MoonStars, auto: System } as const; + const themeIcons = { + light: SvgSun, + dark: SvgMoonStars, + auto: SvgSystem, + } as const; async function onMenuSelect(newTheme: string) { setMenuOpen(false); @@ -34,7 +36,7 @@ export function ThemeSelector({ style }: ThemeSelectorProps) { }); } - const Icon = themeIcons?.[theme] || Sun; + const Icon = themeIcons?.[theme] || SvgSun; return isNarrowWidth ? null : ( ); @@ -247,12 +249,12 @@ function SyncButton({ style, isMobile = false }: SyncButtonProps) { > {isMobile ? ( syncState === 'error' ? ( - + ) : ( ) ) : syncState === 'error' ? ( - + ) : ( )} @@ -363,7 +365,7 @@ function BudgetTitlebar() { ); } -export default function Titlebar({ style }) { +export function Titlebar({ style }) { const navigate = useNavigate(); const location = useLocation(); const sidebar = useSidebar(); @@ -410,7 +412,7 @@ export default function Titlebar({ style }) { } }} > - @@ -423,7 +425,7 @@ export default function Titlebar({ style }) { element={ location.state?.goBack ? ( diff --git a/packages/desktop-client/src/components/accounts/Account.jsx b/packages/desktop-client/src/components/accounts/Account.jsx index 4443a2491ad..9f210799dc5 100644 --- a/packages/desktop-client/src/components/accounts/Account.jsx +++ b/packages/desktop-client/src/components/accounts/Account.jsx @@ -12,9 +12,10 @@ import { useCachedSchedules, } from 'loot-core/src/client/data-hooks/schedules'; import * as queries from 'loot-core/src/client/queries'; -import q, { runQuery, pagedQuery } from 'loot-core/src/client/query-helpers'; +import { runQuery, pagedQuery } from 'loot-core/src/client/query-helpers'; import { send, listen } from 'loot-core/src/platform/client/fetch'; import { currentDay } from 'loot-core/src/shared/months'; +import { q } from 'loot-core/src/shared/query'; import { getScheduledAmount } from 'loot-core/src/shared/schedules'; import { deleteTransaction, @@ -26,13 +27,13 @@ import { import { applyChanges, groupById } from 'loot-core/src/shared/util'; import { authorizeBank } from '../../gocardless'; -import useCategories from '../../hooks/useCategories'; +import { useCategories } from '../../hooks/useCategories'; import { SelectedProviderWithItems } from '../../hooks/useSelected'; import { styles, theme } from '../../style'; -import Button from '../common/Button'; -import Text from '../common/Text'; -import View from '../common/View'; -import TransactionList from '../transactions/TransactionList'; +import { Button } from '../common/Button'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; +import { TransactionList } from '../transactions/TransactionList'; import { SplitsExpandedProvider, useSplitsExpanded, @@ -462,6 +463,7 @@ class AccountInternal extends PureComponent { onImport = async () => { const accountId = this.props.accountId; const account = this.props.accounts.find(acct => acct.id === accountId); + const categories = await this.props.getCategories(); if (account) { const res = await window.Actual.openFileDialog({ @@ -476,6 +478,7 @@ class AccountInternal extends PureComponent { if (res) { this.props.pushModal('import-transactions', { accountId, + categories, filename: res[0], onImported: didChange => { if (didChange) { @@ -866,7 +869,12 @@ class AccountInternal extends PureComponent { } }; - if (name === 'amount' || name === 'payee' || name === 'account') { + if ( + name === 'amount' || + name === 'payee' || + name === 'account' || + name === 'date' + ) { const { data } = await runQuery( q('transactions') .filter({ id: { $oneof: ids }, reconciled: true }) @@ -1475,7 +1483,7 @@ function AccountHack(props) { ); } -export default function Account() { +export function Account() { const params = useParams(); const location = useLocation(); diff --git a/packages/desktop-client/src/components/accounts/AccountSyncCheck.jsx b/packages/desktop-client/src/components/accounts/AccountSyncCheck.jsx index d7d3597b71d..423c99b7c73 100644 --- a/packages/desktop-client/src/components/accounts/AccountSyncCheck.jsx +++ b/packages/desktop-client/src/components/accounts/AccountSyncCheck.jsx @@ -4,11 +4,11 @@ import { useParams } from 'react-router-dom'; import { authorizeBank } from '../../gocardless'; import { useActions } from '../../hooks/useActions'; -import ExclamationOutline from '../../icons/v1/ExclamationOutline'; +import { SvgExclamationOutline } from '../../icons/v1'; import { theme } from '../../style'; -import Button from '../common/Button'; -import ExternalLink from '../common/ExternalLink'; -import View from '../common/View'; +import { Button } from '../common/Button'; +import { ExternalLink } from '../common/ExternalLink'; +import { View } from '../common/View'; import { Tooltip } from '../tooltips'; function getErrorMessage(type, code) { @@ -48,7 +48,7 @@ function getErrorMessage(type, code) { ); } -export default function AccountSyncCheck() { +export function AccountSyncCheck() { const accounts = useSelector(state => state.queries.accounts); const failedAccounts = useSelector(state => state.account.failedAccounts); const { unlinkAccount, pushModal } = useActions(); @@ -95,7 +95,9 @@ export default function AccountSyncCheck() { }} onClick={() => setOpen(true)} > - {' '} + {' '} This account is experiencing connection problems. Let’s fix it. diff --git a/packages/desktop-client/src/components/accounts/Balance.jsx b/packages/desktop-client/src/components/accounts/Balance.jsx index 8383b055c39..f2cb12c752f 100644 --- a/packages/desktop-client/src/components/accounts/Balance.jsx +++ b/packages/desktop-client/src/components/accounts/Balance.jsx @@ -1,19 +1,19 @@ import React from 'react'; import { useCachedSchedules } from 'loot-core/src/client/data-hooks/schedules'; -import q from 'loot-core/src/client/query-helpers'; +import { q } from 'loot-core/src/shared/query'; import { getScheduledAmount } from 'loot-core/src/shared/schedules'; import { useSelectedItems } from '../../hooks/useSelected'; -import ArrowButtonRight1 from '../../icons/v2/ArrowButtonRight1'; +import { SvgArrowButtonRight1 } from '../../icons/v2'; import { theme } from '../../style'; -import Button from '../common/Button'; -import Text from '../common/Text'; -import View from '../common/View'; -import PrivacyFilter from '../PrivacyFilter'; -import CellValue from '../spreadsheet/CellValue'; -import useFormat from '../spreadsheet/useFormat'; -import useSheetValue from '../spreadsheet/useSheetValue'; +import { Button } from '../common/Button'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; +import { PrivacyFilter } from '../PrivacyFilter'; +import { CellValue } from '../spreadsheet/CellValue'; +import { useFormat } from '../spreadsheet/useFormat'; +import { useSheetValue } from '../spreadsheet/useSheetValue'; import { isPreviewId } from '../transactions/TransactionsTable'; function DetailedBalance({ name, balance, isExactBalance = true }) { @@ -167,7 +167,7 @@ export function Balances({ }} /> - onExposeName(true)} > - ) : ( <> - - Add New + Add + New )} @@ -278,9 +281,9 @@ export function AccountHeader({ } > {splitsExpanded.state.mode === 'collapse' ? ( - + ) : ( - + )} {account ? ( diff --git a/packages/desktop-client/src/components/accounts/MobileAccount.jsx b/packages/desktop-client/src/components/accounts/MobileAccount.jsx index 837764310ba..aaaed0db57e 100644 --- a/packages/desktop-client/src/components/accounts/MobileAccount.jsx +++ b/packages/desktop-client/src/components/accounts/MobileAccount.jsx @@ -19,12 +19,15 @@ import { ungroupTransactions, } from 'loot-core/src/shared/transactions'; -import useCategories from '../../hooks/useCategories'; -import useNavigate from '../../hooks/useNavigate'; +import { useCategories } from '../../hooks/useCategories'; +import { useNavigate } from '../../hooks/useNavigate'; import { useSetThemeColor } from '../../hooks/useSetThemeColor'; -import { theme } from '../../style'; +import { theme, styles } from '../../style'; +import { Button } from '../common/Button'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; -import AccountDetails from './MobileAccountDetails'; +import { AccountDetails } from './MobileAccountDetails'; const getSchedulesTransform = memoizeOne((id, hasSearch) => { let filter = queries.getAccountFilter(id, '_account'); @@ -68,7 +71,7 @@ function PreviewTransactions({ accountId, children }) { let paged; -export default function Account(props) { +export function Account(props) { const accounts = useSelector(state => state.queries.accounts); const navigate = useNavigate(); @@ -171,6 +174,27 @@ export default function Account(props) { return null; } + if ( + accountId === 'budgeted' || + accountId === 'offbudget' || + accountId === 'uncategorized' + ) { + return ( + + + There is no Mobile View at the moment + + + + ); + } + const account = accounts.find(acct => acct.id === accountId); const isNewTransaction = id => { @@ -190,6 +214,8 @@ export default function Account(props) { }; const balance = queries.accountBalance(account); + const balanceCleared = queries.accountBalanceCleared(account); + const balanceUncleared = queries.accountBalanceUncleared(account); const numberFormat = state.prefs.numberFormat || 'comma-dot'; const hideFraction = state.prefs.hideFraction || false; @@ -213,6 +239,8 @@ export default function Account(props) { transactions={transactions} prependTransactions={prependTransactions || []} balance={balance} + balanceCleared={balanceCleared} + balanceUncleared={balanceUncleared} isNewTransaction={isNewTransaction} onLoadMore={() => { paged?.fetchNext(); diff --git a/packages/desktop-client/src/components/accounts/MobileAccountDetails.jsx b/packages/desktop-client/src/components/accounts/MobileAccountDetails.jsx index c2a250d2b12..3dc2c8e142e 100644 --- a/packages/desktop-client/src/components/accounts/MobileAccountDetails.jsx +++ b/packages/desktop-client/src/components/accounts/MobileAccountDetails.jsx @@ -1,17 +1,18 @@ import React, { useState, useMemo } from 'react'; import { useActions } from '../../hooks/useActions'; -import Add from '../../icons/v1/Add'; -import SearchAlternate from '../../icons/v2/SearchAlternate'; +import { SvgAdd } from '../../icons/v1'; +import { SvgSearchAlternate } from '../../icons/v2'; import { theme } from '../../style'; -import ButtonLink from '../common/ButtonLink'; -import InputWithContent from '../common/InputWithContent'; -import Label from '../common/Label'; -import View from '../common/View'; -import MobileBackButton from '../MobileBackButton'; +import { ButtonLink } from '../common/ButtonLink'; +import { InputWithContent } from '../common/InputWithContent'; +import { Label } from '../common/Label'; +import { View } from '../common/View'; +import { MobileBackButton } from '../MobileBackButton'; import { Page } from '../Page'; -import PullToRefresh from '../responsive/PullToRefresh'; -import CellValue from '../spreadsheet/CellValue'; +import { PullToRefresh } from '../responsive/PullToRefresh'; +import { CellValue } from '../spreadsheet/CellValue'; +import { useSheetValue } from '../spreadsheet/useSheetValue'; import { TransactionList } from '../transactions/MobileTransaction'; function TransactionSearchInput({ accountName, onSearch }) { @@ -30,7 +31,7 @@ function TransactionSearchInput({ accountName, onSearch }) { > - + } padding={0} @@ -120,19 +123,75 @@ export default function AccountDetails({ marginTop: 10, }} > - - + } padding={0} @@ -215,7 +215,7 @@ function AccountList({ ); } -export default function Accounts() { +export function Accounts() { const accounts = useSelector(state => state.queries.accounts); const newTransactions = useSelector(state => state.queries.newTransactions); const updatedAccounts = useSelector(state => state.queries.updatedAccounts); diff --git a/packages/desktop-client/src/components/accounts/Reconcile.jsx b/packages/desktop-client/src/components/accounts/Reconcile.jsx index d01ad8ef3f2..76fc01da3e9 100644 --- a/packages/desktop-client/src/components/accounts/Reconcile.jsx +++ b/packages/desktop-client/src/components/accounts/Reconcile.jsx @@ -3,15 +3,15 @@ import React from 'react'; import * as queries from 'loot-core/src/client/queries'; import { currencyToInteger } from 'loot-core/src/shared/util'; -import CheckCircle1 from '../../icons/v2/CheckCircle1'; +import { SvgCheckCircle1 } from '../../icons/v2'; import { styles, theme } from '../../style'; -import Button from '../common/Button'; -import InitialFocus from '../common/InitialFocus'; -import Input from '../common/Input'; -import Text from '../common/Text'; -import View from '../common/View'; -import useFormat from '../spreadsheet/useFormat'; -import useSheetValue from '../spreadsheet/useSheetValue'; +import { Button } from '../common/Button'; +import { InitialFocus } from '../common/InitialFocus'; +import { Input } from '../common/Input'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; +import { useFormat } from '../spreadsheet/useFormat'; +import { useSheetValue } from '../spreadsheet/useSheetValue'; import { Tooltip } from '../tooltips'; export function ReconcilingMessage({ @@ -52,7 +52,7 @@ export function ReconcilingMessage({ justifyContent: 'center', }} > - ; @@ -62,7 +61,7 @@ type ScopedAlertProps = { export const Information = ({ style, children }: ScopedAlertProps) => { return ( { export const Warning = ({ style, children }: ScopedAlertProps) => { return ( { export const Error = ({ style, children }: ScopedAlertProps) => { return ( ; -export default function AccountAutocomplete({ +export function AccountAutocomplete({ embedded, includeClosedAccounts = true, renderAccountItemGroupHeader, diff --git a/packages/desktop-client/src/components/autocomplete/Autocomplete.tsx b/packages/desktop-client/src/components/autocomplete/Autocomplete.tsx index afe50adb4d2..10483817b1f 100644 --- a/packages/desktop-client/src/components/autocomplete/Autocomplete.tsx +++ b/packages/desktop-client/src/components/autocomplete/Autocomplete.tsx @@ -13,11 +13,11 @@ import React, { import Downshift, { type StateChangeTypes } from 'downshift'; import { css } from 'glamor'; -import Remove from '../../icons/v2/Remove'; +import { SvgRemove } from '../../icons/v2'; import { theme, type CSSProperties } from '../../style'; -import Button from '../common/Button'; -import Input from '../common/Input'; -import View from '../common/View'; +import { Button } from '../common/Button'; +import { Input } from '../common/Input'; +import { View } from '../common/View'; import { Tooltip } from '../tooltips'; type Item = { @@ -31,16 +31,12 @@ function findItem( strict: boolean, suggestions: T[], value: T | T['id'], -): T | null { +): T | T['id'] | null { if (strict) { const idx = suggestions.findIndex(item => item.id === value); return idx === -1 ? null : suggestions[idx]; } - if (typeof value === 'string') { - throw new Error('value can be string only if strict = false'); - } - return value; } @@ -302,7 +298,7 @@ function SingleAutocomplete({ } }} highlightedIndex={highlightedIndex} - selectedItem={selectedItem || null} + selectedItem={selectedItem instanceof Object ? selectedItem : null} itemToString={itemToString} inputValue={value} isOpen={isOpen} @@ -575,7 +571,7 @@ function MultiItem({ name, onRemove }: MultiItemProps) { > {name} ); @@ -728,7 +724,7 @@ function isMultiAutocomplete( return multi; } -export default function Autocomplete({ +export function Autocomplete({ multi, ...props }: AutocompleteProps & { multi?: boolean }) { diff --git a/packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.tsx b/packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.tsx index b8c07ba36db..2ac5fa7b6f1 100644 --- a/packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.tsx +++ b/packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.tsx @@ -14,13 +14,13 @@ import { type CategoryGroupEntity, } from 'loot-core/src/types/models'; -import Split from '../../icons/v0/Split'; +import { SvgSplit } from '../../icons/v0'; import { useResponsive } from '../../ResponsiveProvider'; import { type CSSProperties, theme } from '../../style'; -import Text from '../common/Text'; -import View from '../common/View'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; -import Autocomplete, { defaultFilterSuggestion } from './Autocomplete'; +import { Autocomplete, defaultFilterSuggestion } from './Autocomplete'; export type CategoryListProps = { items: Array; @@ -107,7 +107,7 @@ type CategoryAutocompleteProps = ComponentProps & { renderCategoryItem?: (props: CategoryItemProps) => ReactNode; }; -export default function CategoryAutocomplete({ +export function CategoryAutocomplete({ categoryGroups, showSplitOption, embedded, @@ -272,7 +272,7 @@ export function SplitTransactionButton({ {Icon ? ( ) : ( - + )} Split Transaction diff --git a/packages/desktop-client/src/components/autocomplete/PayeeAutocomplete.tsx b/packages/desktop-client/src/components/autocomplete/PayeeAutocomplete.tsx index 1c908d0be68..0df6e3bc109 100644 --- a/packages/desktop-client/src/components/autocomplete/PayeeAutocomplete.tsx +++ b/packages/desktop-client/src/components/autocomplete/PayeeAutocomplete.tsx @@ -20,13 +20,14 @@ import { type PayeeEntity, } from 'loot-core/src/types/models'; -import Add from '../../icons/v1/Add'; +import { SvgAdd } from '../../icons/v1'; import { useResponsive } from '../../ResponsiveProvider'; import { type CSSProperties, theme } from '../../style'; -import Button from '../common/Button'; -import View from '../common/View'; +import { Button } from '../common/Button'; +import { View } from '../common/View'; -import Autocomplete, { +import { + Autocomplete, defaultFilterSuggestion, AutocompleteFooter, } from './Autocomplete'; @@ -167,7 +168,7 @@ type PayeeAutocompleteProps = { payees?: PayeeEntity[]; }; -export default function PayeeAutocomplete({ +export function PayeeAutocomplete({ value, inputProps, showMakeTransfer = true, @@ -403,7 +404,7 @@ export function CreatePayeeButton({ {Icon ? ( ) : ( - = { items: T[]; @@ -60,7 +60,7 @@ type SavedFilterAutocompleteProps = { embedded?: boolean; } & ComponentProps>; -export default function SavedFilterAutocomplete({ +export function SavedFilterAutocomplete({ embedded, ...props }: SavedFilterAutocompleteProps) { @@ -74,7 +74,6 @@ export default function SavedFilterAutocomplete({ suggestions={filters} renderItems={(items, getItemProps, highlightedIndex) => ( - ['monthBounds']; }; -const BudgetPageHeader = memo( +export const BudgetPageHeader = memo( ({ startMonth, onMonthSelect, numMonths, monthBounds }) => { function getValidMonth(month) { const start = monthBounds.start; @@ -43,5 +43,3 @@ const BudgetPageHeader = memo( ); }, ); - -export default BudgetPageHeader; diff --git a/packages/desktop-client/src/components/budget/BudgetSummaries.tsx b/packages/desktop-client/src/components/budget/BudgetSummaries.tsx index 1367005cc11..759d51aed2c 100644 --- a/packages/desktop-client/src/components/budget/BudgetSummaries.tsx +++ b/packages/desktop-client/src/components/budget/BudgetSummaries.tsx @@ -11,20 +11,18 @@ import { css } from 'glamor'; import { addMonths, subMonths } from 'loot-core/src/shared/months'; -import useResizeObserver from '../../hooks/useResizeObserver'; -import View from '../common/View'; +import { useResizeObserver } from '../../hooks/useResizeObserver'; +import { View } from '../common/View'; import { MonthsContext } from './MonthsContext'; -import type ReportBudgetSummary from './report/budgetsummary/BudgetSummary'; -import type RolloverBudgetSummary from './rollover/budgetsummary/BudgetSummary'; +import { type BudgetSummary as ReportBudgetSummary } from './report/budgetsummary/BudgetSummary'; +import { type BudgetSummary as RolloverBudgetSummary } from './rollover/budgetsummary/BudgetSummary'; type BudgetSummariesProps = { SummaryComponent: typeof ReportBudgetSummary | typeof RolloverBudgetSummary; }; -export default function BudgetSummaries({ - SummaryComponent, -}: BudgetSummariesProps) { +export function BudgetSummaries({ SummaryComponent }: BudgetSummariesProps) { const { months } = useContext(MonthsContext); const [widthState, setWidthState] = useState(0); diff --git a/packages/desktop-client/src/components/budget/BudgetTable.jsx b/packages/desktop-client/src/components/budget/BudgetTable.jsx index 1059c0633fd..3000ebb1af4 100644 --- a/packages/desktop-client/src/components/budget/BudgetTable.jsx +++ b/packages/desktop-client/src/components/budget/BudgetTable.jsx @@ -3,16 +3,16 @@ import React, { createRef, Component } from 'react'; import * as monthUtils from 'loot-core/src/shared/months'; import { theme, styles } from '../../style'; -import View from '../common/View'; +import { View } from '../common/View'; import { IntersectionBoundary } from '../tooltips'; -import BudgetCategories from './BudgetCategories'; -import BudgetSummaries from './BudgetSummaries'; -import BudgetTotals from './BudgetTotals'; +import { BudgetCategories } from './BudgetCategories'; +import { BudgetSummaries } from './BudgetSummaries'; +import { BudgetTotals } from './BudgetTotals'; import { MonthsProvider } from './MonthsContext'; import { findSortDown, findSortUp, getScrollbarWidth } from './util'; -class BudgetTable extends Component { +export class BudgetTable extends Component { constructor(props) { super(props); this.budgetCategoriesRef = createRef(); @@ -285,5 +285,3 @@ class BudgetTable extends Component { ); } } - -export default BudgetTable; diff --git a/packages/desktop-client/src/components/budget/BudgetTotals.tsx b/packages/desktop-client/src/components/budget/BudgetTotals.tsx index 52fb650727d..005e2afa939 100644 --- a/packages/desktop-client/src/components/budget/BudgetTotals.tsx +++ b/packages/desktop-client/src/components/budget/BudgetTotals.tsx @@ -1,13 +1,13 @@ import React, { type ComponentProps, memo, useState } from 'react'; -import DotsHorizontalTriple from '../../icons/v1/DotsHorizontalTriple'; +import { SvgDotsHorizontalTriple } from '../../icons/v1'; import { theme, styles } from '../../style'; -import Button from '../common/Button'; -import Menu from '../common/Menu'; -import View from '../common/View'; +import { Button } from '../common/Button'; +import { Menu } from '../common/Menu'; +import { View } from '../common/View'; import { Tooltip } from '../tooltips'; -import RenderMonths from './RenderMonths'; +import { RenderMonths } from './RenderMonths'; import { getScrollbarWidth } from './util'; type BudgetTotalsProps = { @@ -17,7 +17,7 @@ type BudgetTotalsProps = { collapseAllCategories: () => void; }; -const BudgetTotals = memo(function BudgetTotals({ +export const BudgetTotals = memo(function BudgetTotals({ MonthComponent, toggleHiddenCategories, expandAllCategories, @@ -61,7 +61,7 @@ const BudgetTotals = memo(function BudgetTotals({ }} style={{ color: 'currentColor', padding: 3 }} > - ); }); - -export default BudgetTotals; diff --git a/packages/desktop-client/src/components/budget/DynamicBudgetTable.tsx b/packages/desktop-client/src/components/budget/DynamicBudgetTable.tsx index 961f2ee146b..a8655a5e4b0 100644 --- a/packages/desktop-client/src/components/budget/DynamicBudgetTable.tsx +++ b/packages/desktop-client/src/components/budget/DynamicBudgetTable.tsx @@ -3,11 +3,11 @@ import { useSelector } from 'react-redux'; import AutoSizer from 'react-virtualized-auto-sizer'; import { useActions } from '../../hooks/useActions'; -import View from '../common/View'; +import { View } from '../common/View'; import { useBudgetMonthCount } from './BudgetMonthCountContext'; -import BudgetPageHeader from './BudgetPageHeader'; -import BudgetTable from './BudgetTable'; +import { BudgetPageHeader } from './BudgetPageHeader'; +import { BudgetTable } from './BudgetTable'; function getNumPossibleMonths(width: number) { const estimatedTableWidth = width - 200; @@ -100,19 +100,20 @@ const DynamicBudgetTableInner = forwardRef< }, ); -export default forwardRef( - (props, ref) => { - return ( - - {({ width, height }) => ( - - )} - - ); - }, -); +export const DynamicBudgetTable = forwardRef< + BudgetTable, + DynamicBudgetTableInnerProps +>((props, ref) => { + return ( + + {({ width, height }) => ( + + )} + + ); +}); diff --git a/packages/desktop-client/src/components/budget/ExpenseCategory.tsx b/packages/desktop-client/src/components/budget/ExpenseCategory.tsx index cc131396687..462fb7d88ec 100644 --- a/packages/desktop-client/src/components/budget/ExpenseCategory.tsx +++ b/packages/desktop-client/src/components/budget/ExpenseCategory.tsx @@ -3,7 +3,7 @@ import React, { type ComponentProps } from 'react'; import { type CategoryEntity } from 'loot-core/src/types/models'; import { theme } from '../../style'; -import View from '../common/View'; +import { View } from '../common/View'; import { useDraggable, useDroppable, @@ -14,8 +14,8 @@ import { } from '../sort'; import { Row } from '../table'; -import RenderMonths from './RenderMonths'; -import SidebarCategory from './SidebarCategory'; +import { RenderMonths } from './RenderMonths'; +import { SidebarCategory } from './SidebarCategory'; type ExpenseCategoryProps = { cat: CategoryEntity; @@ -32,7 +32,7 @@ type ExpenseCategoryProps = { onReorder: OnDropCallback; }; -function ExpenseCategory({ +export function ExpenseCategory({ cat, editingCell, dragState, @@ -108,5 +108,3 @@ function ExpenseCategory({ ); } - -export default ExpenseCategory; diff --git a/packages/desktop-client/src/components/budget/ExpenseGroup.tsx b/packages/desktop-client/src/components/budget/ExpenseGroup.tsx index 7c1bfd8983f..049a46032c6 100644 --- a/packages/desktop-client/src/components/budget/ExpenseGroup.tsx +++ b/packages/desktop-client/src/components/budget/ExpenseGroup.tsx @@ -1,7 +1,7 @@ import React, { type ComponentProps } from 'react'; import { theme } from '../../style'; -import View from '../common/View'; +import { View } from '../common/View'; import { useDraggable, useDroppable, @@ -12,8 +12,8 @@ import { } from '../sort'; import { Row, ROW_HEIGHT } from '../table'; -import RenderMonths from './RenderMonths'; -import SidebarGroup from './SidebarGroup'; +import { RenderMonths } from './RenderMonths'; +import { SidebarGroup } from './SidebarGroup'; type ExpenseGroupProps = { group: ComponentProps['group']; @@ -33,7 +33,7 @@ type ExpenseGroupProps = { onShowNewCategory?: ComponentProps['onShowNewCategory']; }; -function ExpenseGroup({ +export function ExpenseGroup({ group, collapsed, editingCell, @@ -131,5 +131,3 @@ function ExpenseGroup({ ); } - -export default ExpenseGroup; diff --git a/packages/desktop-client/src/components/budget/IncomeCategory.tsx b/packages/desktop-client/src/components/budget/IncomeCategory.tsx index 0d5625186da..d03e0b1307e 100644 --- a/packages/desktop-client/src/components/budget/IncomeCategory.tsx +++ b/packages/desktop-client/src/components/budget/IncomeCategory.tsx @@ -11,8 +11,8 @@ import { } from '../sort'; import { Row } from '../table'; -import RenderMonths from './RenderMonths'; -import SidebarCategory from './SidebarCategory'; +import { RenderMonths } from './RenderMonths'; +import { SidebarCategory } from './SidebarCategory'; type IncomeCategoryProps = { cat: CategoryEntity; @@ -29,7 +29,7 @@ type IncomeCategoryProps = { onShowActivity: (name: string, id: string, idx: number) => void; }; -function IncomeCategory({ +export function IncomeCategory({ cat, isLast, editingCell, @@ -89,5 +89,3 @@ function IncomeCategory({ ); } - -export default IncomeCategory; diff --git a/packages/desktop-client/src/components/budget/IncomeGroup.tsx b/packages/desktop-client/src/components/budget/IncomeGroup.tsx index e3bd787f83e..5ae414ec64b 100644 --- a/packages/desktop-client/src/components/budget/IncomeGroup.tsx +++ b/packages/desktop-client/src/components/budget/IncomeGroup.tsx @@ -3,8 +3,8 @@ import React from 'react'; import { theme } from '../../style'; import { Row } from '../table'; -import RenderMonths from './RenderMonths'; -import SidebarGroup from './SidebarGroup'; +import { RenderMonths } from './RenderMonths'; +import { SidebarGroup } from './SidebarGroup'; type IncomeGroupProps = { group: { @@ -25,7 +25,7 @@ type IncomeGroupProps = { onShowNewCategory: (groupId: string) => void; }; -function IncomeGroup({ +export function IncomeGroup({ group, editingCell, collapsed, @@ -60,5 +60,3 @@ function IncomeGroup({ ); } - -export default IncomeGroup; diff --git a/packages/desktop-client/src/components/budget/IncomeHeader.tsx b/packages/desktop-client/src/components/budget/IncomeHeader.tsx index a797ceacc2b..344a3f9d9d8 100644 --- a/packages/desktop-client/src/components/budget/IncomeHeader.tsx +++ b/packages/desktop-client/src/components/budget/IncomeHeader.tsx @@ -1,16 +1,19 @@ import React from 'react'; -import Button from '../common/Button'; -import View from '../common/View'; +import { Button } from '../common/Button'; +import { View } from '../common/View'; -import RenderMonths from './RenderMonths'; +import { RenderMonths } from './RenderMonths'; type IncomeHeaderProps = { MonthComponent?: () => JSX.Element; onShowNewGroup: () => void; }; -function IncomeHeader({ MonthComponent, onShowNewGroup }: IncomeHeaderProps) { +export function IncomeHeader({ + MonthComponent, + onShowNewGroup, +}: IncomeHeaderProps) { return ( ); } - -export default IncomeHeader; diff --git a/packages/desktop-client/src/components/budget/MobileBudget.jsx b/packages/desktop-client/src/components/budget/MobileBudget.jsx deleted file mode 100644 index 0408a57560d..00000000000 --- a/packages/desktop-client/src/components/budget/MobileBudget.jsx +++ /dev/null @@ -1,479 +0,0 @@ -import React, { Component } from 'react'; -import { useSelector } from 'react-redux'; - -import { useSpreadsheet } from 'loot-core/src/client/SpreadsheetProvider'; -import { send, listen } from 'loot-core/src/platform/client/fetch'; -import * as monthUtils from 'loot-core/src/shared/months'; - -import { useActions } from '../../hooks/useActions'; -import useCategories from '../../hooks/useCategories'; -import { useSetThemeColor } from '../../hooks/useSetThemeColor'; -import AnimatedLoading from '../../icons/AnimatedLoading'; -import { theme } from '../../style'; -import View from '../common/View'; -import SyncRefresh from '../SyncRefresh'; - -import { BudgetTable } from './MobileBudgetTable'; -import { prewarmMonth, switchBudgetType } from './util'; - -const CATEGORY_BUDGET_EDIT_ACTION = 'category-budget'; -const BALANCE_MENU_OPEN_ACTION = 'balance-menu'; - -class Budget extends Component { - constructor(props) { - super(props); - - const currentMonth = monthUtils.currentMonth(); - this.state = { - bounds: { start: currentMonth, end: currentMonth }, - currentMonth, - initialized: false, - editMode: false, - editingBudgetCategoryId: null, - openBalanceActionMenuId: null, - }; - } - - async loadCategories() { - await this.props.getCategories(); - } - - async componentDidMount() { - // let removeBlur = this.props.navigation.addListener('didBlur', () => { - // this.setState({ editMode: false }); - // }); - - const { start, end } = await send('get-budget-bounds'); - await prewarmMonth( - this.props.budgetType, - this.props.spreadsheet, - this.state.currentMonth, - ); - - this.setState({ - bounds: { start, end }, - initialized: true, - }); - - const unlisten = listen('sync-event', ({ type, tables }) => { - if ( - type === 'success' && - (tables.includes('categories') || - tables.includes('category_mapping') || - tables.includes('category_groups')) - ) { - // TODO: is this loading every time? - this.loadCategories(); - } - }); - - this.cleanup = () => { - // removeBlur(); - unlisten(); - }; - } - - componentWillUnmount() { - this.cleanup?.(); - } - - onShowBudgetSummary = () => { - if (this.props.budgetType === 'report') { - this.props.pushModal('report-budget-summary', { - month: this.state.currentMonth, - }); - } else { - this.props.pushModal('rollover-budget-summary', { - month: this.state.currentMonth, - onBudgetAction: this.props.applyBudgetAction, - }); - } - }; - - onBudgetAction = type => { - const { currentMonth } = this.state; - this.props.applyBudgetAction(currentMonth, type, this.state.bounds); - }; - - onAddGroup = () => { - this.props.pushModal('new-category-group', { - onValidate: name => (!name ? 'Name is required.' : null), - onSubmit: async name => { - await this.props.createGroup(name); - }, - }); - }; - - onAddCategory = (groupId, isIncome) => { - this.props.pushModal('new-category', { - onValidate: name => (!name ? 'Name is required.' : null), - onSubmit: async name => { - this.props.collapseModals('category-group-menu'); - await this.props.createCategory(name, groupId, isIncome); - }, - }); - }; - - onSaveGroup = group => { - this.props.updateGroup(group); - }; - - onDeleteGroup = async groupId => { - const { categoryGroups } = this.props; - const group = categoryGroups?.find(g => g.id === groupId); - - if (!group) { - return; - } - - let mustTransfer = false; - for (const category of group.categories) { - if (await send('must-category-transfer', { id: category.id })) { - mustTransfer = true; - break; - } - } - - if (mustTransfer) { - this.props.pushModal('confirm-category-delete', { - group: groupId, - onDelete: transferCategory => { - this.props.collapseModals('category-group-menu'); - this.props.deleteGroup(groupId, transferCategory); - }, - }); - } else { - this.props.collapseModals('category-group-menu'); - this.props.deleteGroup(groupId); - } - }; - - onSaveCategory = category => { - this.props.updateCategory(category); - }; - - onDeleteCategory = async categoryId => { - const mustTransfer = await send('must-category-transfer', { - id: categoryId, - }); - - if (mustTransfer) { - this.props.pushModal('confirm-category-delete', { - category: categoryId, - onDelete: transferCategory => { - if (categoryId !== transferCategory) { - this.props.collapseModals('category-menu'); - this.props.deleteCategory(categoryId, transferCategory); - } - }, - }); - } else { - this.props.collapseModals('category-menu'); - this.props.deleteCategory(categoryId); - } - }; - - onReorderCategory = (id, { inGroup, aroundCategory }) => { - const { categoryGroups } = this.props; - let groupId, targetId; - - if (inGroup) { - groupId = inGroup; - } else if (aroundCategory) { - const { id: originalCatId, position } = aroundCategory; - - let catId = originalCatId; - const group = categoryGroups.find(group => - group.categories.find(cat => cat.id === catId), - ); - - if (position === 'bottom') { - const { categories } = group; - const idx = categories.findIndex(cat => cat.id === catId); - catId = idx < categories.length - 1 ? categories[idx + 1].id : null; - } - - groupId = group.id; - targetId = catId; - } - - this.props.moveCategory(id, groupId, targetId); - }; - - onReorderGroup = (id, targetId, position) => { - const { categoryGroups } = this.props; - - if (position === 'bottom') { - const idx = categoryGroups.findIndex(group => group.id === targetId); - targetId = - idx < categoryGroups.length - 1 ? categoryGroups[idx + 1].id : null; - } - - this.props.moveCategoryGroup(id, targetId); - }; - - sync = async () => { - const { updated, error } = await this.props.sync(); - if (error) { - return 'error'; - } else if (updated) { - return 'updated'; - } - return null; - }; - - onPrevMonth = async () => { - const { spreadsheet, budgetType } = this.props; - const month = monthUtils.subMonths(this.state.currentMonth, 1); - await prewarmMonth(budgetType, spreadsheet, month); - this.setState({ currentMonth: month, initialized: true }); - }; - - onNextMonth = async () => { - const { spreadsheet, budgetType } = this.props; - const month = monthUtils.addMonths(this.state.currentMonth, 1); - await prewarmMonth(budgetType, spreadsheet, month); - this.setState({ currentMonth: month, initialized: true }); - }; - - onOpenMonthActionMenu = () => { - const { budgetType } = this.props; - - const options = [ - 'Copy last month’s budget', - 'Set budgets to zero', - 'Set budgets to 3 month average', - budgetType === 'report' && 'Apply to all future budgets', - ].filter(Boolean); - - this.props.showActionSheetWithOptions( - { - options, - cancelButtonIndex: options.length - 1, - title: 'Actions', - }, - idx => { - switch (idx) { - case 0: - this.setState({ editMode: true }); - break; - case 1: - this.onBudgetAction('copy-last'); - break; - case 2: - this.onBudgetAction('set-zero'); - break; - case 3: - this.onBudgetAction('set-3-avg'); - break; - case 4: - if (budgetType === 'report') { - this.onBudgetAction('set-all-future'); - } - break; - default: - } - }, - ); - }; - - onSwitchBudgetType = async () => { - const { spreadsheet, budgetType, loadPrefs } = this.props; - const { bounds, currentMonth } = this.state; - - this.setState({ initialized: false }); - - const newBudgetType = budgetType === 'rollover' ? 'report' : 'rollover'; - await switchBudgetType( - newBudgetType, - spreadsheet, - bounds, - currentMonth, - () => loadPrefs(), - ); - - this.setState({ initialized: true }); - }; - - onSaveNotes = async (id, notes) => { - await send('notes-save', { id, note: notes }); - }; - - onEditGroupNotes = id => { - const { categoryGroups } = this.props; - const group = categoryGroups.find(g => g.id === id); - this.props.pushModal('notes', { - id, - name: group.name, - onSave: this.onSaveNotes, - }); - }; - - onEditCategoryNotes = id => { - const { categories } = this.props; - const category = categories.find(c => c.id === id); - this.props.pushModal('notes', { - id, - name: category.name, - onSave: this.onSaveNotes, - }); - }; - - onEditGroup = id => { - const { categoryGroups } = this.props; - const group = categoryGroups.find(g => g.id === id); - this.props.pushModal('category-group-menu', { - groupId: group.id, - onSave: this.onSaveGroup, - onAddCategory: this.onAddCategory, - onEditNotes: this.onEditGroupNotes, - onDelete: this.onDeleteGroup, - }); - }; - - onEditCategory = id => { - const { categories } = this.props; - const category = categories.find(c => c.id === id); - this.props.pushModal('category-menu', { - categoryId: category.id, - onSave: this.onSaveCategory, - onEditNotes: this.onEditCategoryNotes, - onDelete: this.onDeleteCategory, - }); - }; - - onEditCategoryBudget = id => { - this.onEdit(CATEGORY_BUDGET_EDIT_ACTION, id); - }; - - onOpenBalanceActionMenu = id => { - this.onEdit(BALANCE_MENU_OPEN_ACTION, id); - }; - - onEdit = (action, id) => { - const { editingBudgetCategoryId, openBalanceActionMenuId } = this.state; - - // Do not allow editing if another field is currently being edited. - // Cancel the currently editing field in that case. - const currentlyEditing = editingBudgetCategoryId || openBalanceActionMenuId; - - this.setState({ - editingBudgetCategoryId: - action === CATEGORY_BUDGET_EDIT_ACTION && !currentlyEditing ? id : null, - openBalanceActionMenuId: - action === BALANCE_MENU_OPEN_ACTION && !currentlyEditing ? id : null, - }); - - return { action, editingId: !currentlyEditing ? id : null }; - }; - - render() { - const { - currentMonth, - bounds, - editMode, - initialized, - editingBudgetCategoryId, - openBalanceActionMenuId, - } = this.state; - const { - categoryGroups, - categories, - prefs, - savePrefs, - budgetType, - navigation, - applyBudgetAction, - pushModal, - } = this.props; - const numberFormat = prefs.numberFormat || 'comma-dot'; - const hideFraction = prefs.hideFraction || false; - - if (!categoryGroups || !initialized) { - return ( - - - - ); - } - - return ( - - {({ refreshing, onRefresh }) => ( - - // } - editMode={editMode} - onEditMode={flag => this.setState({ editMode: flag })} - onShowBudgetSummary={this.onShowBudgetSummary} - onPrevMonth={this.onPrevMonth} - onNextMonth={this.onNextMonth} - onSaveGroup={this.onSaveGroup} - onDeleteGroup={this.onDeleteGroup} - onAddGroup={this.onAddGroup} - onAddCategory={this.onAddCategory} - onSaveCategory={this.onSaveCategory} - onDeleteCategory={this.onDeleteCategory} - onReorderCategory={this.onReorderCategory} - onReorderGroup={this.onReorderGroup} - onOpenMonthActionMenu={this.onOpenMonthActionMenu} - onBudgetAction={applyBudgetAction} - onRefresh={onRefresh} - onSwitchBudgetType={this.onSwitchBudgetType} - onSaveNotes={this.onSaveNotes} - onEditGroupNotes={this.onEditGroupNotes} - onEditCategoryNotes={this.onEditCategoryNotes} - savePrefs={savePrefs} - pushModal={pushModal} - onEditGroup={this.onEditGroup} - onEditCategory={this.onEditCategory} - editingBudgetCategoryId={editingBudgetCategoryId} - onEditCategoryBudget={this.onEditCategoryBudget} - openBalanceActionMenuId={openBalanceActionMenuId} - onOpenBalanceActionMenu={this.onOpenBalanceActionMenu} - /> - )} - - ); - } -} - -export default function BudgetWrapper() { - const { list: categories, grouped: categoryGroups } = useCategories(); - const budgetType = useSelector( - state => state.prefs.local.budgetType || 'rollover', - ); - const prefs = useSelector(state => state.prefs.local); - - const actions = useActions(); - const spreadsheet = useSpreadsheet(); - useSetThemeColor(theme.mobileViewTheme); - return ( - - ); -} diff --git a/packages/desktop-client/src/components/budget/MobileBudget.tsx b/packages/desktop-client/src/components/budget/MobileBudget.tsx new file mode 100644 index 00000000000..415652629b7 --- /dev/null +++ b/packages/desktop-client/src/components/budget/MobileBudget.tsx @@ -0,0 +1,477 @@ +import React, { useEffect, useState } from 'react'; +import { useSelector } from 'react-redux'; + +import { useSpreadsheet } from 'loot-core/src/client/SpreadsheetProvider'; +import { type PrefsState } from 'loot-core/src/client/state-types/prefs'; +import { send, listen } from 'loot-core/src/platform/client/fetch'; +import * as monthUtils from 'loot-core/src/shared/months'; +import { + type CategoryEntity, + type CategoryGroupEntity, +} from 'loot-core/src/types/models'; + +import { type BoundActions, useActions } from '../../hooks/useActions'; +import { useCategories } from '../../hooks/useCategories'; +import { useSetThemeColor } from '../../hooks/useSetThemeColor'; +import { AnimatedLoading } from '../../icons/AnimatedLoading'; +import { theme } from '../../style'; +import { View } from '../common/View'; +import { SyncRefresh } from '../SyncRefresh'; + +import { BudgetTable } from './MobileBudgetTable'; +import { prewarmMonth, switchBudgetType } from './util'; + +const CATEGORY_BUDGET_EDIT_ACTION = 'category-budget'; +const BALANCE_MENU_OPEN_ACTION = 'balance-menu'; + +type BudgetInnerProps = { + categories: CategoryEntity[]; + categoryGroups: CategoryGroupEntity[]; + prefs: PrefsState['local']; + loadPrefs: BoundActions['loadPrefs']; + savePrefs: BoundActions['savePrefs']; + budgetType: 'rollover' | 'report'; + spreadsheet: ReturnType; + applyBudgetAction: BoundActions['applyBudgetAction']; + collapseModals: BoundActions['collapseModals']; + pushModal: BoundActions['pushModal']; + getCategories: BoundActions['getCategories']; + createCategory: BoundActions['createCategory']; + updateCategory: BoundActions['updateCategory']; + deleteCategory: BoundActions['deleteCategory']; + moveCategory: BoundActions['moveCategory']; + createGroup: BoundActions['createGroup']; + updateGroup: BoundActions['updateGroup']; + deleteGroup: BoundActions['deleteGroup']; + moveCategoryGroup: BoundActions['moveCategoryGroup']; + sync: BoundActions['sync']; +}; + +function BudgetInner(props: BudgetInnerProps) { + const { + categoryGroups, + categories, + prefs, + loadPrefs, + savePrefs, + budgetType, + spreadsheet, + applyBudgetAction, + collapseModals, + pushModal, + createGroup, + updateGroup, + deleteGroup, + moveCategoryGroup, + createCategory, + updateCategory, + deleteCategory, + moveCategory, + } = props; + + const currMonth = monthUtils.currentMonth(); + + const [bounds, setBounds] = useState({ start: currMonth, end: currMonth }); + const [currentMonth, setCurrentMonth] = useState(currMonth); + const [initialized, setInitialized] = useState(false); + const [editMode, setEditMode] = useState(false); + const [editingBudgetCategoryId, setEditingBudgetCategoryId] = useState(null); + const [openBalanceActionMenuId, setOpenBalanceActionMenuId] = useState(null); + + useEffect(() => { + async function init() { + const { start, end } = await send('get-budget-bounds'); + setBounds({ start, end }); + + await prewarmMonth(props.budgetType, props.spreadsheet, currentMonth); + + setInitialized(true); + } + + init(); + + const unlisten = listen('sync-event', ({ type, tables }) => { + if ( + type === 'success' && + (tables.includes('categories') || + tables.includes('category_mapping') || + tables.includes('category_groups')) + ) { + // TODO: is this loading every time? + props.getCategories(); + } + }); + + return () => unlisten(); + }, []); + + const onShowBudgetSummary = () => { + if (budgetType === 'report') { + pushModal('report-budget-summary', { + month: currentMonth, + }); + } else { + pushModal('rollover-budget-summary', { + month: currentMonth, + onBudgetAction: applyBudgetAction, + }); + } + }; + + // const onBudgetAction = type => { + // applyBudgetAction(currentMonth, type, bounds); + // }; + + const onAddGroup = () => { + pushModal('new-category-group', { + onValidate: name => (!name ? 'Name is required.' : null), + onSubmit: async name => { + await createGroup(name); + }, + }); + }; + + const onAddCategory = (groupId, isIncome) => { + pushModal('new-category', { + onValidate: name => (!name ? 'Name is required.' : null), + onSubmit: async name => { + collapseModals('category-group-menu'); + await createCategory(name, groupId, isIncome, false); + }, + }); + }; + + const onSaveGroup = group => { + updateGroup(group); + }; + + const onDeleteGroup = async groupId => { + const group = categoryGroups?.find(g => g.id === groupId); + + if (!group) { + return; + } + + let mustTransfer = false; + for (const category of group.categories ?? []) { + if (await send('must-category-transfer', { id: category.id })) { + mustTransfer = true; + break; + } + } + + if (mustTransfer) { + pushModal('confirm-category-delete', { + group: groupId, + onDelete: transferCategory => { + collapseModals('category-group-menu'); + deleteGroup(groupId, transferCategory); + }, + }); + } else { + collapseModals('category-group-menu'); + deleteGroup(groupId); + } + }; + + const onSaveCategory = category => { + updateCategory(category); + }; + + const onDeleteCategory = async categoryId => { + const mustTransfer = await send('must-category-transfer', { + id: categoryId, + }); + + if (mustTransfer) { + pushModal('confirm-category-delete', { + category: categoryId, + onDelete: transferCategory => { + if (categoryId !== transferCategory) { + collapseModals('category-menu'); + deleteCategory(categoryId, transferCategory); + } + }, + }); + } else { + collapseModals('category-menu'); + deleteCategory(categoryId); + } + }; + + const onReorderCategory = (id, { inGroup, aroundCategory }) => { + let groupId, targetId; + + if (inGroup) { + groupId = inGroup; + } else if (aroundCategory) { + const { id: originalCatId, position } = aroundCategory; + + let catId = originalCatId; + const group = categoryGroups.find(group => + group.categories?.find(cat => cat.id === catId), + ); + + if (position === 'bottom') { + const idx = group?.categories?.findIndex(cat => cat.id === catId) ?? -1; + catId = group?.categories + ? idx < group.categories.length - 1 + ? group.categories[idx + 1].id + : null + : null; + } + + groupId = group?.id; + targetId = catId; + } + + moveCategory(id, groupId, targetId); + }; + + const onReorderGroup = (id, targetId, position) => { + if (position === 'bottom') { + const idx = categoryGroups.findIndex(group => group.id === targetId); + targetId = + idx < categoryGroups.length - 1 ? categoryGroups[idx + 1].id : null; + } + + moveCategoryGroup(id, targetId); + }; + + const sync = async () => { + const result = await props.sync(); + if (result?.error) { + return 'error'; + } else if (result) { + return 'updated'; + } + return null; + }; + + const onPrevMonth = async () => { + const month = monthUtils.subMonths(currentMonth, 1); + await prewarmMonth(budgetType, spreadsheet, month); + setCurrentMonth(month); + setInitialized(true); + }; + + const onNextMonth = async () => { + const month = monthUtils.addMonths(currentMonth, 1); + await prewarmMonth(budgetType, spreadsheet, month); + setCurrentMonth(month); + setInitialized(true); + }; + + // const onOpenMonthActionMenu = () => { + // const options = [ + // 'Copy last month’s budget', + // 'Set budgets to zero', + // 'Set budgets to 3 month average', + // budgetType === 'report' && 'Apply to all future budgets', + // ].filter(Boolean); + + // props.showActionSheetWithOptions( + // { + // options, + // cancelButtonIndex: options.length - 1, + // title: 'Actions', + // }, + // idx => { + // switch (idx) { + // case 0: + // setEditMode(true); + // break; + // case 1: + // onBudgetAction('copy-last'); + // break; + // case 2: + // onBudgetAction('set-zero'); + // break; + // case 3: + // onBudgetAction('set-3-avg'); + // break; + // case 4: + // if (budgetType === 'report') { + // onBudgetAction('set-all-future'); + // } + // break; + // default: + // } + // }, + // ); + // }; + + const onSwitchBudgetType = async () => { + setInitialized(false); + + const newBudgetType = budgetType === 'rollover' ? 'report' : 'rollover'; + await switchBudgetType( + newBudgetType, + spreadsheet, + bounds, + currentMonth, + () => loadPrefs(), + ); + + setInitialized(true); + }; + + const onSaveNotes = async (id, notes) => { + await send('notes-save', { id, note: notes }); + }; + + const onEditGroupNotes = id => { + const group = categoryGroups.find(g => g.id === id); + pushModal('notes', { + id, + name: group.name, + onSave: onSaveNotes, + }); + }; + + const onEditCategoryNotes = id => { + const category = categories.find(c => c.id === id); + pushModal('notes', { + id, + name: category.name, + onSave: onSaveNotes, + }); + }; + + const onEditGroup = id => { + const group = categoryGroups.find(g => g.id === id); + pushModal('category-group-menu', { + groupId: group.id, + onSave: onSaveGroup, + onAddCategory, + onEditNotes: onEditGroupNotes, + onDelete: onDeleteGroup, + }); + }; + + const onEditCategory = id => { + const category = categories.find(c => c.id === id); + pushModal('category-menu', { + categoryId: category.id, + onSave: onSaveCategory, + onEditNotes: onEditCategoryNotes, + onDelete: onDeleteCategory, + }); + }; + + const onEditCategoryBudget = id => { + onEdit(CATEGORY_BUDGET_EDIT_ACTION, id); + }; + + const onOpenBalanceActionMenu = id => { + onEdit(BALANCE_MENU_OPEN_ACTION, id); + }; + + const onEdit = (action, id) => { + // Do not allow editing if another field is currently being edited. + // Cancel the currently editing field in that case. + const currentlyEditing = editingBudgetCategoryId || openBalanceActionMenuId; + + setEditingBudgetCategoryId( + action === CATEGORY_BUDGET_EDIT_ACTION && !currentlyEditing ? id : null, + ); + setOpenBalanceActionMenuId( + action === BALANCE_MENU_OPEN_ACTION && !currentlyEditing ? id : null, + ); + + return { action, editingId: !currentlyEditing ? id : null }; + }; + + const numberFormat = prefs?.numberFormat || 'comma-dot'; + const hideFraction = prefs?.hideFraction || false; + + if (!categoryGroups || !initialized) { + return ( + + + + ); + } + + return ( + { + await sync(); + }} + > + {({ refreshing, onRefresh }) => ( + + // } + editMode={editMode} + onEditMode={flag => setEditMode(flag)} + onShowBudgetSummary={onShowBudgetSummary} + onPrevMonth={onPrevMonth} + onNextMonth={onNextMonth} + onSaveGroup={onSaveGroup} + onDeleteGroup={onDeleteGroup} + onAddGroup={onAddGroup} + onAddCategory={onAddCategory} + onSaveCategory={onSaveCategory} + onDeleteCategory={onDeleteCategory} + onReorderCategory={onReorderCategory} + onReorderGroup={onReorderGroup} + onOpenMonthActionMenu={() => {}} //onOpenMonthActionMenu} + onBudgetAction={applyBudgetAction} + onRefresh={onRefresh} + onSwitchBudgetType={onSwitchBudgetType} + onSaveNotes={onSaveNotes} + onEditGroupNotes={onEditGroupNotes} + onEditCategoryNotes={onEditCategoryNotes} + savePrefs={savePrefs} + pushModal={pushModal} + onEditGroup={onEditGroup} + onEditCategory={onEditCategory} + editingBudgetCategoryId={editingBudgetCategoryId} + onEditCategoryBudget={onEditCategoryBudget} + openBalanceActionMenuId={openBalanceActionMenuId} + onOpenBalanceActionMenu={onOpenBalanceActionMenu} + /> + )} + + ); +} + +export function Budget() { + const { list: categories, grouped: categoryGroups } = useCategories(); + const budgetType = useSelector( + state => state.prefs.local?.budgetType || 'rollover', + ); + const prefs = useSelector(state => state.prefs.local); + + const actions = useActions(); + const spreadsheet = useSpreadsheet(); + useSetThemeColor(theme.mobileViewTheme); + return ( + + ); +} diff --git a/packages/desktop-client/src/components/budget/MobileBudgetTable.jsx b/packages/desktop-client/src/components/budget/MobileBudgetTable.jsx index d326e87ce3a..fb5b9d5c24d 100644 --- a/packages/desktop-client/src/components/budget/MobileBudgetTable.jsx +++ b/packages/desktop-client/src/components/budget/MobileBudgetTable.jsx @@ -6,24 +6,26 @@ import memoizeOne from 'memoize-one'; import { rolloverBudget, reportBudget } from 'loot-core/src/client/queries'; import * as monthUtils from 'loot-core/src/shared/months'; -import useFeatureFlag from '../../hooks/useFeatureFlag'; -import ArrowThinLeft from '../../icons/v1/ArrowThinLeft'; -import ArrowThinRight from '../../icons/v1/ArrowThinRight'; -import DotsHorizontalTriple from '../../icons/v1/DotsHorizontalTriple'; +import { useFeatureFlag } from '../../hooks/useFeatureFlag'; +import { + SvgArrowThinLeft, + SvgArrowThinRight, + SvgDotsHorizontalTriple, +} from '../../icons/v1'; import { useResponsive } from '../../ResponsiveProvider'; import { theme, styles } from '../../style'; -import Button from '../common/Button'; -import Card from '../common/Card'; -import Label from '../common/Label'; -import Menu from '../common/Menu'; -import Text from '../common/Text'; -import View from '../common/View'; +import { Button } from '../common/Button'; +import { Card } from '../common/Card'; +import { Label } from '../common/Label'; +import { Menu } from '../common/Menu'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; import { Page } from '../Page'; -import PullToRefresh from '../responsive/PullToRefresh'; -import CellValue from '../spreadsheet/CellValue'; -import NamespaceContext from '../spreadsheet/NamespaceContext'; -import useFormat from '../spreadsheet/useFormat'; -import useSheetValue from '../spreadsheet/useSheetValue'; +import { PullToRefresh } from '../responsive/PullToRefresh'; +import { CellValue } from '../spreadsheet/CellValue'; +import { NamespaceContext } from '../spreadsheet/NamespaceContext'; +import { useFormat } from '../spreadsheet/useFormat'; +import { useSheetValue } from '../spreadsheet/useSheetValue'; import { Tooltip, useTooltip } from '../tooltips'; import { AmountInput } from '../util/AmountInput'; // import { @@ -32,10 +34,10 @@ import { AmountInput } from '../util/AmountInput'; // } from '../mobile/AmountInput'; // import { DragDrop, Draggable, Droppable, DragDropHighlight } from './dragdrop'; -import BalanceWithCarryover from './BalanceWithCarryover'; +import { BalanceWithCarryover } from './BalanceWithCarryover'; import { ListItem, ROW_HEIGHT } from './MobileTable'; -import ReportBudgetBalanceTooltip from './report/BalanceTooltip'; -import RolloverBudgetBalanceTooltip from './rollover/BalanceTooltip'; +import { BalanceTooltip as ReportBudgetBalanceTooltip } from './report/BalanceTooltip'; +import { BalanceTooltip as RolloverBudgetBalanceTooltip } from './rollover/BalanceTooltip'; import { makeAmountGrey } from './util'; function ToBudget({ toBudget, onClick }) { @@ -1494,7 +1496,7 @@ function BudgetPageMenu({ }} {...tooltip.getOpenEvents()} > - - + - + ); diff --git a/packages/desktop-client/src/components/budget/MobileTable.tsx b/packages/desktop-client/src/components/budget/MobileTable.tsx index a63df9db403..1b1ad6c88c5 100644 --- a/packages/desktop-client/src/components/budget/MobileTable.tsx +++ b/packages/desktop-client/src/components/budget/MobileTable.tsx @@ -1,7 +1,7 @@ import React, { type ComponentProps, type ReactNode } from 'react'; import { type CSSProperties, theme } from '../../style'; -import View from '../common/View'; +import { View } from '../common/View'; export const ROW_HEIGHT = 50; diff --git a/packages/desktop-client/src/components/budget/MonthCountSelector.tsx b/packages/desktop-client/src/components/budget/MonthCountSelector.tsx index c3509bc20bc..737dcdc6937 100644 --- a/packages/desktop-client/src/components/budget/MonthCountSelector.tsx +++ b/packages/desktop-client/src/components/budget/MonthCountSelector.tsx @@ -1,8 +1,8 @@ import React from 'react'; -import CalendarIcon from '../../icons/v2/Calendar'; +import { SvgCalendar } from '../../icons/v2'; import { theme } from '../../style'; -import View from '../common/View'; +import { View } from '../common/View'; import { useBudgetMonthCount } from './BudgetMonthCountContext'; @@ -13,7 +13,7 @@ type CalendarProps = { function Calendar({ color, onClick }: CalendarProps) { return ( - diff --git a/packages/desktop-client/src/components/budget/MonthPicker.tsx b/packages/desktop-client/src/components/budget/MonthPicker.tsx index b80e8e740ee..d42a99b6584 100644 --- a/packages/desktop-client/src/components/budget/MonthPicker.tsx +++ b/packages/desktop-client/src/components/budget/MonthPicker.tsx @@ -2,9 +2,9 @@ import { type CSSProperties, useState } from 'react'; import * as monthUtils from 'loot-core/src/shared/months'; -import useResizeObserver from '../../hooks/useResizeObserver'; +import { useResizeObserver } from '../../hooks/useResizeObserver'; import { styles, theme } from '../../style'; -import View from '../common/View'; +import { View } from '../common/View'; import { type BoundsProps } from './MonthsContext'; diff --git a/packages/desktop-client/src/components/budget/RenderMonths.tsx b/packages/desktop-client/src/components/budget/RenderMonths.tsx index 649734d9755..1960f7ccb0b 100644 --- a/packages/desktop-client/src/components/budget/RenderMonths.tsx +++ b/packages/desktop-client/src/components/budget/RenderMonths.tsx @@ -7,8 +7,8 @@ import React, { import * as monthUtils from 'loot-core/src/shared/months'; import { theme } from '../../style'; -import View from '../common/View'; -import NamespaceContext from '../spreadsheet/NamespaceContext'; +import { View } from '../common/View'; +import { NamespaceContext } from '../spreadsheet/NamespaceContext'; import { MonthsContext } from './MonthsContext'; @@ -19,7 +19,7 @@ type RenderMonthsProps = { style?: CSSProperties; }; -function RenderMonths({ +export function RenderMonths({ component: Component, editingIndex, args, @@ -48,5 +48,3 @@ function RenderMonths({ ); }) as unknown as JSX.Element; } - -export default RenderMonths; diff --git a/packages/desktop-client/src/components/budget/SidebarCategory.tsx b/packages/desktop-client/src/components/budget/SidebarCategory.tsx index 622b9869b67..1beef2ca4f6 100644 --- a/packages/desktop-client/src/components/budget/SidebarCategory.tsx +++ b/packages/desktop-client/src/components/budget/SidebarCategory.tsx @@ -2,12 +2,12 @@ import React, { type CSSProperties, type Ref, useState } from 'react'; import { type CategoryEntity } from 'loot-core/src/types/models'; -import CheveronDown from '../../icons/v1/CheveronDown'; +import { SvgCheveronDown } from '../../icons/v1'; import { theme } from '../../style'; -import Button from '../common/Button'; -import Menu from '../common/Menu'; -import View from '../common/View'; -import NotesButton from '../NotesButton'; +import { Button } from '../common/Button'; +import { Menu } from '../common/Menu'; +import { View } from '../common/View'; +import { NotesButton } from '../NotesButton'; import { InputCell } from '../table'; import { Tooltip } from '../tooltips'; @@ -26,7 +26,7 @@ type SidebarCategoryProps = { onHideNewCategory?: () => void; }; -function SidebarCategory({ +export function SidebarCategory({ innerRef, category, dragPreview, @@ -73,7 +73,7 @@ function SidebarCategory({ }} style={{ color: 'currentColor', padding: 3 }} > - ); } - -export default SidebarCategory; diff --git a/packages/desktop-client/src/components/budget/SidebarGroup.tsx b/packages/desktop-client/src/components/budget/SidebarGroup.tsx index a7a9a8ed120..c574e1e787f 100644 --- a/packages/desktop-client/src/components/budget/SidebarGroup.tsx +++ b/packages/desktop-client/src/components/budget/SidebarGroup.tsx @@ -1,14 +1,14 @@ import React, { type CSSProperties, useState } from 'react'; import { type ConnectDragSource } from 'react-dnd'; -import ExpandArrow from '../../icons/v0/ExpandArrow'; -import CheveronDown from '../../icons/v1/CheveronDown'; +import { SvgExpandArrow } from '../../icons/v0'; +import { SvgCheveronDown } from '../../icons/v1'; import { theme } from '../../style'; -import Button from '../common/Button'; -import Menu from '../common/Menu'; -import Text from '../common/Text'; -import View from '../common/View'; -import NotesButton from '../NotesButton'; +import { Button } from '../common/Button'; +import { Menu } from '../common/Menu'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; +import { NotesButton } from '../NotesButton'; import { InputCell } from '../table'; import { Tooltip } from '../tooltips'; @@ -36,7 +36,7 @@ type SidebarGroupProps = { onToggleCollapse?: (id: string) => void; }; -function SidebarGroup({ +export function SidebarGroup({ group, editing, collapsed, @@ -67,7 +67,7 @@ function SidebarGroup({ }} > {!dragPreview && ( - - + {menuOpen && ( ); } - -export default SidebarGroup; diff --git a/packages/desktop-client/src/components/budget/index.tsx b/packages/desktop-client/src/components/budget/index.tsx index f32d592150c..959f63bc3c7 100644 --- a/packages/desktop-client/src/components/budget/index.tsx +++ b/packages/desktop-client/src/components/budget/index.tsx @@ -31,11 +31,11 @@ import * as monthUtils from 'loot-core/src/shared/months'; import { type GlobalPrefs, type LocalPrefs } from 'loot-core/src/types/prefs'; import { type BoundActions, useActions } from '../../hooks/useActions'; -import useCategories from '../../hooks/useCategories'; -import useFeatureFlag from '../../hooks/useFeatureFlag'; -import useNavigate from '../../hooks/useNavigate'; +import { useCategories } from '../../hooks/useCategories'; +import { useFeatureFlag } from '../../hooks/useFeatureFlag'; +import { useNavigate } from '../../hooks/useNavigate'; import { styles } from '../../style'; -import View from '../common/View'; +import { View } from '../common/View'; import { SWITCH_BUDGET_MESSAGE_TYPE, TitlebarContext, @@ -43,7 +43,7 @@ import { type TitlebarMessage, } from '../Titlebar'; -import DynamicBudgetTable from './DynamicBudgetTable'; +import { DynamicBudgetTable } from './DynamicBudgetTable'; import * as report from './report/ReportComponents'; import { ReportProvider } from './report/ReportContext'; import * as rollover from './rollover/RolloverComponents'; @@ -100,7 +100,7 @@ type BudgetProps = { addNotification: BoundActions['addNotification']; }; -function Budget(props: BudgetProps) { +function BudgetInner(props: BudgetProps) { const currentMonth = monthUtils.currentMonth(); const tableRef = useRef(null); @@ -532,7 +532,7 @@ const RolloverBudgetSummary = memo<{ month: string }>(props => { ); }); -export default function BudgetWrapper(props) { +export function Budget(props) { const startMonth = useSelector( state => state.prefs.local['budget.startMonth'], ); @@ -594,7 +594,7 @@ export default function BudgetWrapper(props) { overflow: 'hidden', }} > - void; }; -export default function BalanceTooltip({ +export function BalanceTooltip({ categoryId, tooltip, monthIndex, diff --git a/packages/desktop-client/src/components/budget/report/ReportComponents.tsx b/packages/desktop-client/src/components/budget/report/ReportComponents.tsx index ed38d3bab9d..b33faba456d 100644 --- a/packages/desktop-client/src/components/budget/report/ReportComponents.tsx +++ b/packages/desktop-client/src/components/budget/report/ReportComponents.tsx @@ -1,24 +1,24 @@ import React, { memo, useState } from 'react'; import { reportBudget } from 'loot-core/src/client/queries'; -import evalArithmetic from 'loot-core/src/shared/arithmetic'; +import { evalArithmetic } from 'loot-core/src/shared/arithmetic'; import { integerToCurrency, amountToInteger } from 'loot-core/src/shared/util'; -import useFeatureFlag from '../../../hooks/useFeatureFlag'; -import CheveronDown from '../../../icons/v1/CheveronDown'; +import { useFeatureFlag } from '../../../hooks/useFeatureFlag'; +import { SvgCheveronDown } from '../../../icons/v1'; import { styles, theme, type CSSProperties } from '../../../style'; -import Button from '../../common/Button'; -import Menu from '../../common/Menu'; -import Text from '../../common/Text'; -import View from '../../common/View'; -import CellValue from '../../spreadsheet/CellValue'; -import useFormat from '../../spreadsheet/useFormat'; +import { Button } from '../../common/Button'; +import { Menu } from '../../common/Menu'; +import { Text } from '../../common/Text'; +import { View } from '../../common/View'; +import { CellValue } from '../../spreadsheet/CellValue'; +import { useFormat } from '../../spreadsheet/useFormat'; import { Field, SheetCell } from '../../table'; import { Tooltip, useTooltip } from '../../tooltips'; -import BalanceWithCarryover from '../BalanceWithCarryover'; +import { BalanceWithCarryover } from '../BalanceWithCarryover'; import { makeAmountGrey } from '../util'; -import BalanceTooltip from './BalanceTooltip'; +import { BalanceTooltip } from './BalanceTooltip'; const headerLabelStyle: CSSProperties = { flex: 1, @@ -189,9 +189,11 @@ export const CategoryMonth = memo(function CategoryMonth({ ); }); - -export default Button; diff --git a/packages/desktop-client/src/components/common/ButtonLink.tsx b/packages/desktop-client/src/components/common/ButtonLink.tsx index 1ab6215b61d..fde95935d1e 100644 --- a/packages/desktop-client/src/components/common/ButtonLink.tsx +++ b/packages/desktop-client/src/components/common/ButtonLink.tsx @@ -1,16 +1,16 @@ import React, { type ComponentProps } from 'react'; import { useMatch } from 'react-router-dom'; -import useNavigate from '../../hooks/useNavigate'; +import { useNavigate } from '../../hooks/useNavigate'; import { type CSSProperties } from '../../style'; -import Button from './Button'; +import { Button } from './Button'; type ButtonLinkProps = ComponentProps & { to: string; activeStyle?: CSSProperties; }; -export default function ButtonLink({ +export function ButtonLink({ to, style, activeStyle, diff --git a/packages/desktop-client/src/components/common/Card.tsx b/packages/desktop-client/src/components/common/Card.tsx index 5f143cd3553..49b6a400cd4 100644 --- a/packages/desktop-client/src/components/common/Card.tsx +++ b/packages/desktop-client/src/components/common/Card.tsx @@ -2,11 +2,11 @@ import { type ComponentProps, forwardRef } from 'react'; import { theme } from '../../style'; -import View from './View'; +import { View } from './View'; type CardProps = ComponentProps; -const Card = forwardRef( +export const Card = forwardRef( ({ children, ...props }, ref) => { return ( ( ); }, ); - -export default Card; diff --git a/packages/desktop-client/src/components/common/ExternalLink.tsx b/packages/desktop-client/src/components/common/ExternalLink.tsx index f31d240c9b5..979a62a9021 100644 --- a/packages/desktop-client/src/components/common/ExternalLink.tsx +++ b/packages/desktop-client/src/components/common/ExternalLink.tsx @@ -13,7 +13,7 @@ type ExternalLinkProps = { linkColor?: keyof typeof externalLinkColors; }; -const ExternalLink = forwardRef( +export const ExternalLink = forwardRef( ({ children, to, linkColor = 'blue' }, ref) => ( // we can’t use here for obvious reasons // eslint-disable-next-line no-restricted-syntax @@ -28,5 +28,3 @@ const ExternalLink = forwardRef( ), ); - -export default ExternalLink; diff --git a/packages/desktop-client/src/components/common/FormError.tsx b/packages/desktop-client/src/components/common/FormError.tsx index 505388caf4a..5828b503959 100644 --- a/packages/desktop-client/src/components/common/FormError.tsx +++ b/packages/desktop-client/src/components/common/FormError.tsx @@ -2,14 +2,14 @@ import { type ReactNode } from 'react'; import { type CSSProperties } from '../../style'; -import View from './View'; +import { View } from './View'; type FormErrorProps = { style?: CSSProperties; children?: ReactNode; }; -export default function FormError({ style, children }: FormErrorProps) { +export function FormError({ style, children }: FormErrorProps) { return ( {children} ); diff --git a/packages/desktop-client/src/components/common/HoverTarget.tsx b/packages/desktop-client/src/components/common/HoverTarget.tsx index 097ad9c013d..ec3d4e015be 100644 --- a/packages/desktop-client/src/components/common/HoverTarget.tsx +++ b/packages/desktop-client/src/components/common/HoverTarget.tsx @@ -2,7 +2,7 @@ import { useCallback, useEffect, useState, type ReactNode } from 'react'; import { type CSSProperties } from '../../style'; -import View from './View'; +import { View } from './View'; type HoverTargetProps = { style?: CSSProperties; @@ -12,7 +12,7 @@ type HoverTargetProps = { disabled?: boolean; }; -export default function HoverTarget({ +export function HoverTarget({ style, contentStyle, children, diff --git a/packages/desktop-client/src/components/common/InitialFocus.ts b/packages/desktop-client/src/components/common/InitialFocus.ts index 6f88cbb60f0..1e8a0cb7062 100644 --- a/packages/desktop-client/src/components/common/InitialFocus.ts +++ b/packages/desktop-client/src/components/common/InitialFocus.ts @@ -10,7 +10,7 @@ type InitialFocusProps = { children?: ReactElement | ((node: Ref) => ReactElement); }; -export default function InitialFocus({ children }: InitialFocusProps) { +export function InitialFocus({ children }: InitialFocusProps) { const node = useRef(null); useEffect(() => { diff --git a/packages/desktop-client/src/components/common/InlineField.tsx b/packages/desktop-client/src/components/common/InlineField.tsx index 0a31f198651..9328f674fdf 100644 --- a/packages/desktop-client/src/components/common/InlineField.tsx +++ b/packages/desktop-client/src/components/common/InlineField.tsx @@ -12,7 +12,7 @@ type InlineFieldProps = { style?: CSSProperties; }; -export default function InlineField({ +export function InlineField({ label, labelWidth, children, diff --git a/packages/desktop-client/src/components/common/Input.tsx b/packages/desktop-client/src/components/common/Input.tsx index 6a4e6eaf965..aab2993a3d2 100644 --- a/packages/desktop-client/src/components/common/Input.tsx +++ b/packages/desktop-client/src/components/common/Input.tsx @@ -29,7 +29,7 @@ export type InputProps = InputHTMLAttributes & { focused?: boolean; }; -export default function Input({ +export function Input({ style, inputRef, onEnter, diff --git a/packages/desktop-client/src/components/common/InputWithContent.tsx b/packages/desktop-client/src/components/common/InputWithContent.tsx index 24b357342a8..0853c290a64 100644 --- a/packages/desktop-client/src/components/common/InputWithContent.tsx +++ b/packages/desktop-client/src/components/common/InputWithContent.tsx @@ -2,8 +2,8 @@ import { useState, type ComponentProps, type ReactNode } from 'react'; import { type CSSProperties, theme } from '../../style'; -import Input, { defaultInputStyle } from './Input'; -import View from './View'; +import { Input, defaultInputStyle } from './Input'; +import { View } from './View'; type InputWithContentProps = ComponentProps & { leftContent?: ReactNode; @@ -13,7 +13,7 @@ type InputWithContentProps = ComponentProps & { style?: CSSProperties; getStyle?: (focused: boolean) => CSSProperties; }; -export default function InputWithContent({ +export function InputWithContent({ leftContent, rightContent, inputStyle, diff --git a/packages/desktop-client/src/components/common/Label.tsx b/packages/desktop-client/src/components/common/Label.tsx index a540214a53e..393461cdff7 100644 --- a/packages/desktop-client/src/components/common/Label.tsx +++ b/packages/desktop-client/src/components/common/Label.tsx @@ -2,14 +2,14 @@ import { type ReactNode } from 'react'; import { type CSSProperties, theme, styles } from '../../style'; -import Text from './Text'; +import { Text } from './Text'; type LabelProps = { title: ReactNode; style?: CSSProperties; }; -export default function Label({ title, style }: LabelProps) { +export function Label({ title, style }: LabelProps) { return ( & { to: string; @@ -71,7 +71,7 @@ type LinkProps = } & ButtonLinkProps) | ({ variant?: 'anchor' } & AnchorLinkProps); -export default function Link({ variant = 'anchor', ...props }: LinkProps) { +export function Link({ variant = 'anchor', ...props }: LinkProps) { switch (variant) { case 'anchor': return ; diff --git a/packages/desktop-client/src/components/common/LinkButton.tsx b/packages/desktop-client/src/components/common/LinkButton.tsx index e5f1ba8a1aa..daec85d6843 100644 --- a/packages/desktop-client/src/components/common/LinkButton.tsx +++ b/packages/desktop-client/src/components/common/LinkButton.tsx @@ -6,11 +6,7 @@ import { styles, theme } from '../../style'; type LinkProps = HTMLAttributes; -export default function LinkButton({ - style, - children, - ...nativeProps -}: LinkProps) { +export function LinkButton({ style, children, ...nativeProps }: LinkProps) { return ( )} @@ -427,5 +427,3 @@ export const ModalButtons = ({ ); }; - -export default Modal; diff --git a/packages/desktop-client/src/components/common/Paragraph.tsx b/packages/desktop-client/src/components/common/Paragraph.tsx index ebbe8b37a75..256982e8041 100644 --- a/packages/desktop-client/src/components/common/Paragraph.tsx +++ b/packages/desktop-client/src/components/common/Paragraph.tsx @@ -9,7 +9,7 @@ type ParagraphProps = HTMLProps & { isLast?: boolean; }; -export default function Paragraph({ +export function Paragraph({ style, isLast, children, diff --git a/packages/desktop-client/src/components/common/Search.tsx b/packages/desktop-client/src/components/common/Search.tsx index 9281d75d57d..f0a9667d5a1 100644 --- a/packages/desktop-client/src/components/common/Search.tsx +++ b/packages/desktop-client/src/components/common/Search.tsx @@ -1,11 +1,10 @@ import { type ChangeEvent, type Ref } from 'react'; -import SvgRemove from '../../icons/v2/Remove'; -import SearchAlternate from '../../icons/v2/SearchAlternate'; +import { SvgRemove, SvgSearchAlternate } from '../../icons/v2'; import { theme } from '../../style'; -import Button from './Button'; -import InputWithContent from './InputWithContent'; +import { Button } from './Button'; +import { InputWithContent } from './InputWithContent'; type SearchProps = { inputRef?: Ref; @@ -16,7 +15,7 @@ type SearchProps = { width?: number; }; -export default function Search({ +export function Search({ inputRef, value, onChange, @@ -42,7 +41,7 @@ export default function Search({ } } leftContent={ - = { @@ -38,7 +38,7 @@ type SelectProps = { * // onChangeText(e.target.value)} + onFocus={onFocus} onBlur={onBlur} onKeyUp={onKeyPress} data-testid="amount-input" @@ -131,6 +136,7 @@ export const FocusableAmountInput = memo(function FocusableAmountInput({ focusedStyle, buttonProps, onFocus, + onBlur, ...props }) { const [isNegative, setIsNegative] = useState(true); @@ -166,6 +172,8 @@ export const FocusableAmountInput = memo(function FocusableAmountInput({ ); diff --git a/packages/desktop-client/src/components/modals/CategoryGroupMenu.tsx b/packages/desktop-client/src/components/modals/CategoryGroupMenu.tsx index 55eb435c1d3..21f91d18ecb 100644 --- a/packages/desktop-client/src/components/modals/CategoryGroupMenu.tsx +++ b/packages/desktop-client/src/components/modals/CategoryGroupMenu.tsx @@ -1,23 +1,19 @@ import React, { type ComponentProps, useState } from 'react'; import { useLiveQuery } from 'loot-core/src/client/query-hooks'; -import q from 'loot-core/src/shared/query'; +import { q } from 'loot-core/src/shared/query'; import { type CategoryGroupEntity } from 'loot-core/src/types/models'; -import useCategories from '../../hooks/useCategories'; -import { DotsHorizontalTriple } from '../../icons/v1'; -import Add from '../../icons/v1/Add'; -import Trash from '../../icons/v1/Trash'; -import NotesPaper from '../../icons/v2/NotesPaper'; -import ViewHide from '../../icons/v2/ViewHide'; -import ViewShow from '../../icons/v2/ViewShow'; +import { useCategories } from '../../hooks/useCategories'; +import { SvgDotsHorizontalTriple, SvgAdd, SvgTrash } from '../../icons/v1'; +import { SvgNotesPaper, SvgViewHide, SvgViewShow } from '../../icons/v2'; import { type CSSProperties, styles, theme } from '../../style'; import { type CommonModalProps } from '../../types/modals'; -import Button from '../common/Button'; -import Menu from '../common/Menu'; -import Modal from '../common/Modal'; -import View from '../common/View'; -import Notes from '../Notes'; +import { Button } from '../common/Button'; +import { Menu } from '../common/Menu'; +import { Modal } from '../common/Modal'; +import { View } from '../common/View'; +import { Notes } from '../Notes'; import { Tooltip } from '../tooltips'; const BUTTON_HEIGHT = 40; @@ -33,7 +29,7 @@ type CategoryGroupMenuProps = { onClose?: () => void; }; -export default function CategoryGroupMenu({ +export function CategoryGroupMenu({ modalProps, groupId, onSave, @@ -169,7 +165,7 @@ export default function CategoryGroupMenu({ }} onClick={_onAddCategory} > - + Add category @@ -205,7 +205,7 @@ function AdditionalCategoryGroupMenu({ group, onDelete, onToggleVisibility }) { setMenuOpen(true); }} > - void; }; -export default function CategoryMenu({ +export function CategoryMenu({ modalProps, categoryId, onSave, @@ -156,7 +153,11 @@ export default function CategoryMenu({ }} onClick={_onEditNotes} > - + Edit notes @@ -182,7 +183,7 @@ function AdditionalCategoryMenu({ category, onDelete, onToggleVisibility }) { setMenuOpen(true); }} > - ); } - -export default CloseAccount; diff --git a/packages/desktop-client/src/components/modals/ConfirmCategoryDelete.tsx b/packages/desktop-client/src/components/modals/ConfirmCategoryDelete.tsx index 6b8c9bde2c5..cf758fa251d 100644 --- a/packages/desktop-client/src/components/modals/ConfirmCategoryDelete.tsx +++ b/packages/desktop-client/src/components/modals/ConfirmCategoryDelete.tsx @@ -4,12 +4,12 @@ import { type CategoryGroupEntity } from 'loot-core/src/types/models'; import { theme } from '../../style'; import { type CommonModalProps } from '../../types/modals'; -import CategoryAutocomplete from '../autocomplete/CategoryAutocomplete'; -import Block from '../common/Block'; -import Button from '../common/Button'; -import Modal from '../common/Modal'; -import Text from '../common/Text'; -import View from '../common/View'; +import { CategoryAutocomplete } from '../autocomplete/CategoryAutocomplete'; +import { Block } from '../common/Block'; +import { Button } from '../common/Button'; +import { Modal } from '../common/Modal'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; type ConfirmCategoryDeleteProps = { modalProps: CommonModalProps; @@ -19,7 +19,7 @@ type ConfirmCategoryDeleteProps = { onDelete: (categoryId: string) => void; }; -export default function ConfirmCategoryDelete({ +export function ConfirmCategoryDelete({ modalProps, category, group, diff --git a/packages/desktop-client/src/components/modals/ConfirmTransactionEdit.tsx b/packages/desktop-client/src/components/modals/ConfirmTransactionEdit.tsx index a15de63e2ad..d28cf895db3 100644 --- a/packages/desktop-client/src/components/modals/ConfirmTransactionEdit.tsx +++ b/packages/desktop-client/src/components/modals/ConfirmTransactionEdit.tsx @@ -1,10 +1,10 @@ import React from 'react'; import { type CommonModalProps } from '../../types/modals'; -import Block from '../common/Block'; -import Button from '../common/Button'; -import Modal from '../common/Modal'; -import View from '../common/View'; +import { Block } from '../common/Block'; +import { Button } from '../common/Button'; +import { Modal } from '../common/Modal'; +import { View } from '../common/View'; type ConfirmTransactionEditProps = { modalProps: Partial; @@ -12,7 +12,7 @@ type ConfirmTransactionEditProps = { confirmReason: string; }; -function ConfirmTransactionEdit({ +export function ConfirmTransactionEdit({ modalProps, onConfirm, confirmReason, @@ -83,5 +83,3 @@ function ConfirmTransactionEdit({ ); } - -export default ConfirmTransactionEdit; diff --git a/packages/desktop-client/src/components/modals/CreateAccount.tsx b/packages/desktop-client/src/components/modals/CreateAccount.tsx index f41d14766cb..7a6867d3178 100644 --- a/packages/desktop-client/src/components/modals/CreateAccount.tsx +++ b/packages/desktop-client/src/components/modals/CreateAccount.tsx @@ -4,24 +4,24 @@ import { send } from 'loot-core/src/platform/client/fetch'; import { authorizeBank } from '../../gocardless'; import { useActions } from '../../hooks/useActions'; -import useGoCardlessStatus from '../../hooks/useGoCardlessStatus'; -import useSimpleFinStatus from '../../hooks/useSimpleFinStatus'; +import { useGoCardlessStatus } from '../../hooks/useGoCardlessStatus'; +import { useSimpleFinStatus } from '../../hooks/useSimpleFinStatus'; import { type SyncServerStatus } from '../../hooks/useSyncServerStatus'; import { theme } from '../../style'; import { type CommonModalProps } from '../../types/modals'; -import Button, { ButtonWithLoading } from '../common/Button'; -import ExternalLink from '../common/ExternalLink'; -import Modal from '../common/Modal'; -import Paragraph from '../common/Paragraph'; -import Text from '../common/Text'; -import View from '../common/View'; +import { Button, ButtonWithLoading } from '../common/Button'; +import { ExternalLink } from '../common/ExternalLink'; +import { Modal } from '../common/Modal'; +import { Paragraph } from '../common/Paragraph'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; type CreateAccountProps = { modalProps: CommonModalProps; syncServerStatus: SyncServerStatus; }; -export default function CreateAccount({ +export function CreateAccount({ modalProps, syncServerStatus, upgradingAccountId, diff --git a/packages/desktop-client/src/components/modals/CreateEncryptionKey.tsx b/packages/desktop-client/src/components/modals/CreateEncryptionKey.tsx index 8a18eff5f7a..76672c99532 100644 --- a/packages/desktop-client/src/components/modals/CreateEncryptionKey.tsx +++ b/packages/desktop-client/src/components/modals/CreateEncryptionKey.tsx @@ -9,13 +9,13 @@ import { type BoundActions } from '../../hooks/useActions'; import { theme } from '../../style'; import { type CommonModalProps } from '../../types/modals'; import { ButtonWithLoading } from '../common/Button'; -import ExternalLink from '../common/ExternalLink'; -import InitialFocus from '../common/InitialFocus'; -import Input from '../common/Input'; -import Modal, { ModalButtons } from '../common/Modal'; -import Paragraph from '../common/Paragraph'; -import Text from '../common/Text'; -import View from '../common/View'; +import { ExternalLink } from '../common/ExternalLink'; +import { InitialFocus } from '../common/InitialFocus'; +import { Input } from '../common/Input'; +import { Modal, ModalButtons } from '../common/Modal'; +import { Paragraph } from '../common/Paragraph'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; type CreateEncryptionKeyProps = { modalProps: CommonModalProps; @@ -25,7 +25,7 @@ type CreateEncryptionKeyProps = { }; }; -export default function CreateEncryptionKey({ +export function CreateEncryptionKey({ modalProps, actions, options = {}, diff --git a/packages/desktop-client/src/components/modals/CreateLocalAccount.tsx b/packages/desktop-client/src/components/modals/CreateLocalAccount.tsx index 5f5cc59e6ff..837a77b8956 100644 --- a/packages/desktop-client/src/components/modals/CreateLocalAccount.tsx +++ b/packages/desktop-client/src/components/modals/CreateLocalAccount.tsx @@ -3,18 +3,18 @@ import React, { useState } from 'react'; import { toRelaxedNumber } from 'loot-core/src/shared/util'; import { type BoundActions } from '../../hooks/useActions'; -import useNavigate from '../../hooks/useNavigate'; +import { useNavigate } from '../../hooks/useNavigate'; import { theme } from '../../style'; import { type CommonModalProps } from '../../types/modals'; -import Button from '../common/Button'; -import ExternalLink from '../common/ExternalLink'; -import FormError from '../common/FormError'; -import InitialFocus from '../common/InitialFocus'; -import InlineField from '../common/InlineField'; -import Input from '../common/Input'; -import Modal, { ModalButtons } from '../common/Modal'; -import Text from '../common/Text'; -import View from '../common/View'; +import { Button } from '../common/Button'; +import { ExternalLink } from '../common/ExternalLink'; +import { FormError } from '../common/FormError'; +import { InitialFocus } from '../common/InitialFocus'; +import { InlineField } from '../common/InlineField'; +import { Input } from '../common/Input'; +import { Modal, ModalButtons } from '../common/Modal'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; import { Checkbox } from '../forms'; type CreateLocalAccountProps = { @@ -22,7 +22,10 @@ type CreateLocalAccountProps = { actions: BoundActions; }; -function CreateLocalAccount({ modalProps, actions }: CreateLocalAccountProps) { +export function CreateLocalAccount({ + modalProps, + actions, +}: CreateLocalAccountProps) { const navigate = useNavigate(); const [name, setName] = useState(''); const [offbudget, setOffbudget] = useState(false); @@ -166,5 +169,3 @@ function CreateLocalAccount({ modalProps, actions }: CreateLocalAccountProps) { ); } - -export default CreateLocalAccount; diff --git a/packages/desktop-client/src/components/modals/EditField.jsx b/packages/desktop-client/src/components/modals/EditField.jsx index abd07d79fea..fa2b492c4c8 100644 --- a/packages/desktop-client/src/components/modals/EditField.jsx +++ b/packages/desktop-client/src/components/modals/EditField.jsx @@ -7,34 +7,37 @@ import { currentDay, dayFromDate } from 'loot-core/src/shared/months'; import { amountToInteger } from 'loot-core/src/shared/util'; import { useActions } from '../../hooks/useActions'; -import useCategories from '../../hooks/useCategories'; -import { Add } from '../../icons/v1'; +import { useCategories } from '../../hooks/useCategories'; +import { SvgAdd } from '../../icons/v1'; import { useResponsive } from '../../ResponsiveProvider'; import { styles, theme } from '../../style'; -import AccountAutocomplete, { +import { + AccountAutocomplete, AccountItemGroupHeader, AccountItem, } from '../autocomplete/AccountAutocomplete'; -import CategoryAutocomplete, { +import { + CategoryAutocomplete, CategoryItemGroupHeader, CategoryItem, } from '../autocomplete/CategoryAutocomplete'; -import PayeeAutocomplete, { +import { + PayeeAutocomplete, CreatePayeeButton, PayeeItemGroupHeader, PayeeItem, } from '../autocomplete/PayeeAutocomplete'; -import Input from '../common/Input'; -import Modal from '../common/Modal'; -import View from '../common/View'; +import { Input } from '../common/Input'; +import { Modal } from '../common/Modal'; +import { View } from '../common/View'; import { SectionLabel } from '../forms'; -import DateSelect from '../select/DateSelect'; +import { DateSelect } from '../select/DateSelect'; function CreatePayeeIcon(props) { - return ; + return ; } -export default function EditField({ modalProps, name, onSubmit, onClose }) { +export function EditField({ modalProps, name, onSubmit, onClose }) { const dateFormat = useSelector( state => state.prefs.local.dateFormat || 'MM/dd/yyyy', ); diff --git a/packages/desktop-client/src/components/modals/EditRule.jsx b/packages/desktop-client/src/components/modals/EditRule.jsx index ee0707bad80..661cc799e8c 100644 --- a/packages/desktop-client/src/components/modals/EditRule.jsx +++ b/packages/desktop-client/src/components/modals/EditRule.jsx @@ -6,9 +6,10 @@ import { setUndoEnabled, } from 'loot-core/src/client/actions/queries'; import { useSchedules } from 'loot-core/src/client/data-hooks/schedules'; -import q, { runQuery } from 'loot-core/src/client/query-helpers'; +import { runQuery } from 'loot-core/src/client/query-helpers'; import { send } from 'loot-core/src/platform/client/fetch'; import * as monthUtils from 'loot-core/src/shared/months'; +import { q } from 'loot-core/src/shared/query'; import { mapField, friendlyOp, @@ -25,23 +26,22 @@ import { amountToInteger, } from 'loot-core/src/shared/util'; -import useSelected, { SelectedProvider } from '../../hooks/useSelected'; -import AddIcon from '../../icons/v0/Add'; -import SubtractIcon from '../../icons/v0/Subtract'; -import InformationOutline from '../../icons/v1/InformationOutline'; +import { useSelected, SelectedProvider } from '../../hooks/useSelected'; +import { SvgAdd, SvgSubtract } from '../../icons/v0'; +import { SvgInformationOutline } from '../../icons/v1'; import { theme } from '../../style'; -import Button from '../common/Button'; -import Modal from '../common/Modal'; -import Select from '../common/Select'; -import Stack from '../common/Stack'; -import Text from '../common/Text'; -import View from '../common/View'; +import { Button } from '../common/Button'; +import { Modal } from '../common/Modal'; +import { Select } from '../common/Select'; +import { Stack } from '../common/Stack'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; import { StatusBadge } from '../schedules/StatusBadge'; import { Tooltip } from '../tooltips'; -import SimpleTransactionsTable from '../transactions/SimpleTransactionsTable'; +import { SimpleTransactionsTable } from '../transactions/SimpleTransactionsTable'; import { BetweenAmountInput } from '../util/AmountInput'; -import DisplayId from '../util/DisplayId'; -import GenericInput from '../util/GenericInput'; +import { DisplayId } from '../util/DisplayId'; +import { GenericInput } from '../util/GenericInput'; function updateValue(array, value, update) { return array.map(v => (v === value ? update() : v)); @@ -132,7 +132,7 @@ function EditorButtons({ onAdd, onDelete, style }) { style={{ padding: 7 }} aria-label="Delete entry" > - + )} {onAdd && ( @@ -142,7 +142,7 @@ function EditorButtons({ onAdd, onDelete, style }) { style={{ padding: 7 }} aria-label="Add entry" > - + )} @@ -373,7 +373,7 @@ function StageInfo() { onMouseEnter={() => setOpen(true)} onMouseLeave={() => setOpen(false)} > - @@ -605,11 +605,7 @@ const conditionFields = [ ['amount-outflow', mapField('amount', { outflow: true })], ]); -export default function EditRule({ - modalProps, - defaultRule, - onSave: originalOnSave, -}) { +export function EditRule({ modalProps, defaultRule, onSave: originalOnSave }) { const [conditions, setConditions] = useState( defaultRule.conditions.map(parse), ); diff --git a/packages/desktop-client/src/components/modals/FixEncryptionKey.tsx b/packages/desktop-client/src/components/modals/FixEncryptionKey.tsx index c7e0d96365a..b006ca1561a 100644 --- a/packages/desktop-client/src/components/modals/FixEncryptionKey.tsx +++ b/packages/desktop-client/src/components/modals/FixEncryptionKey.tsx @@ -7,14 +7,14 @@ import { getTestKeyError } from 'loot-core/src/shared/errors'; import { type BoundActions } from '../../hooks/useActions'; import { theme } from '../../style'; import { type CommonModalProps } from '../../types/modals'; -import Button, { ButtonWithLoading } from '../common/Button'; -import ExternalLink from '../common/ExternalLink'; -import InitialFocus from '../common/InitialFocus'; -import Input from '../common/Input'; -import Modal, { ModalButtons } from '../common/Modal'; -import Paragraph from '../common/Paragraph'; -import Text from '../common/Text'; -import View from '../common/View'; +import { Button, ButtonWithLoading } from '../common/Button'; +import { ExternalLink } from '../common/ExternalLink'; +import { InitialFocus } from '../common/InitialFocus'; +import { Input } from '../common/Input'; +import { Modal, ModalButtons } from '../common/Modal'; +import { Paragraph } from '../common/Paragraph'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; type FixEncryptionKeyProps = { modalProps: CommonModalProps; @@ -22,7 +22,7 @@ type FixEncryptionKeyProps = { options: FinanceModals['fix-encryption-key']; }; -export default function FixEncryptionKey({ +export function FixEncryptionKey({ modalProps, actions, options = {}, diff --git a/packages/desktop-client/src/components/modals/GoCardlessExternalMsg.tsx b/packages/desktop-client/src/components/modals/GoCardlessExternalMsg.tsx index bcdf6a96e15..72a82ef8b72 100644 --- a/packages/desktop-client/src/components/modals/GoCardlessExternalMsg.tsx +++ b/packages/desktop-client/src/components/modals/GoCardlessExternalMsg.tsx @@ -8,20 +8,20 @@ import { type GoCardlessToken, } from 'loot-core/src/types/models'; -import useGoCardlessStatus from '../../hooks/useGoCardlessStatus'; -import AnimatedLoading from '../../icons/AnimatedLoading'; -import DotsHorizontalTriple from '../../icons/v1/DotsHorizontalTriple'; +import { useGoCardlessStatus } from '../../hooks/useGoCardlessStatus'; +import { AnimatedLoading } from '../../icons/AnimatedLoading'; +import { SvgDotsHorizontalTriple } from '../../icons/v1'; import { theme } from '../../style'; import { type CommonModalProps } from '../../types/modals'; import { Error, Warning } from '../alerts'; -import Autocomplete from '../autocomplete/Autocomplete'; -import Button from '../common/Button'; -import ExternalLink from '../common/ExternalLink'; -import LinkButton from '../common/LinkButton'; -import Menu from '../common/Menu'; -import Modal from '../common/Modal'; -import Paragraph from '../common/Paragraph'; -import View from '../common/View'; +import { Autocomplete } from '../autocomplete/Autocomplete'; +import { Button } from '../common/Button'; +import { ExternalLink } from '../common/ExternalLink'; +import { LinkButton } from '../common/LinkButton'; +import { Menu } from '../common/Menu'; +import { Modal } from '../common/Modal'; +import { Paragraph } from '../common/Paragraph'; +import { View } from '../common/View'; import { FormField, FormLabel } from '../forms'; import { Tooltip } from '../tooltips'; @@ -85,7 +85,7 @@ type GoCardlessExternalMsgProps = { onClose: () => void; }; -export default function GoCardlessExternalMsg({ +export function GoCardlessExternalMsg({ modalProps, onMoveExternal, onSuccess, @@ -229,7 +229,7 @@ export default function GoCardlessExternalMsg({ onClick={() => setMenuOpen(true)} aria-label="Menu" > - void; }; -const GoCardlessInitialise = ({ +export const GoCardlessInitialise = ({ modalProps, onSuccess, }: GoCardlessInitialiseProps) => { @@ -36,11 +36,11 @@ const GoCardlessInitialise = ({ await Promise.all([ send('secret-set', { - name: 'nordigen_secretId', + name: 'gocardless_secretId', value: secretId, }), send('secret-set', { - name: 'nordigen_secretKey', + name: 'gocardless_secretKey', value: secretKey, }), ]); @@ -104,5 +104,3 @@ const GoCardlessInitialise = ({ ); }; - -export default GoCardlessInitialise; diff --git a/packages/desktop-client/src/components/modals/ImportTransactions.jsx b/packages/desktop-client/src/components/modals/ImportTransactions.jsx index b66597e1125..79f23a37a84 100644 --- a/packages/desktop-client/src/components/modals/ImportTransactions.jsx +++ b/packages/desktop-client/src/components/modals/ImportTransactions.jsx @@ -11,15 +11,15 @@ import { } from 'loot-core/src/shared/util'; import { useActions } from '../../hooks/useActions'; -import useFeatureFlag from '../../hooks/useFeatureFlag'; +import { useFeatureFlag } from '../../hooks/useFeatureFlag'; import { theme, styles } from '../../style'; -import Button, { ButtonWithLoading } from '../common/Button'; -import Input from '../common/Input'; -import Modal from '../common/Modal'; -import Select from '../common/Select'; -import Stack from '../common/Stack'; -import Text from '../common/Text'; -import View from '../common/View'; +import { Button, ButtonWithLoading } from '../common/Button'; +import { Input } from '../common/Input'; +import { Modal } from '../common/Modal'; +import { Select } from '../common/Select'; +import { Stack } from '../common/Stack'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; import { Checkbox, SectionLabel } from '../forms'; import { TableHeader, TableWithNavigator, Row, Field } from '../table'; @@ -194,14 +194,24 @@ function getInitialMappings(transactions) { fields.find(([name, value]) => value.match(/^-?[.,\d]+$/)), ); + const categoryField = key( + fields.find(([name, value]) => name.toLowerCase().includes('category')), + ); + const payeeField = key( - fields.find(([name, value]) => name !== dateField && name !== amountField), + fields.find( + ([name, value]) => + name !== dateField && name !== amountField && name !== categoryField, + ), ); const notesField = key( fields.find( ([name, value]) => - name !== dateField && name !== amountField && name !== payeeField, + name !== dateField && + name !== amountField && + name !== categoryField && + name !== payeeField, ), ); @@ -221,6 +231,7 @@ function getInitialMappings(transactions) { payee: payeeField, notes: notesField, inOut: inOutField, + category: categoryField, }; } @@ -290,6 +301,19 @@ function parseAmountFields( }; } +function parseCategoryFields(trans, categories) { + let match = null; + categories.forEach(category => { + if (category.id === trans.category) { + return null; + } + if (category.name === trans.category) { + match = category.id; + } + }); + return match; +} + function Transaction({ transaction: rawTransaction, fieldMappings, @@ -301,7 +325,9 @@ function Transaction({ outValue, flipAmount, multiplierAmount, + categories, }) { + const categoryList = categories.map(category => category.name); const transaction = useMemo( () => fieldMappings @@ -348,6 +374,14 @@ function Transaction({ {transaction.notes} + + {categoryList.includes(transaction.category) && transaction.category} + {splitMode ? ( <> + + + onChange('category', name)} + hasHeaderRow={hasHeaderRow} + firstTransaction={transactions[0]} + /> + {splitMode ? ( <> @@ -656,7 +701,7 @@ function FieldMappings({ ); } -export default function ImportTransactions({ modalProps, options }) { +export function ImportTransactions({ modalProps, options }) { const dateFormat = useSelector( state => state.prefs.local.dateFormat || 'MM/dd/yyyy', ); @@ -676,7 +721,7 @@ export default function ImportTransactions({ modalProps, options }) { const [outValue, setOutValue] = useState(''); const [flipAmount, setFlipAmount] = useState(false); const [multiplierEnabled, setMultiplierEnabled] = useState(false); - const { accountId, onImported } = options; + const { accountId, categories, onImported } = options; // This cannot be set after parsing the file, because changing it // requires re-parsing the file. This is different from the other @@ -866,6 +911,11 @@ export default function ImportTransactions({ modalProps, options }) { break; } + const category_id = parseCategoryFields(trans, categories.list); + if (category_id != null) { + trans.category = category_id; + } + const { inflow, outflow, inOut, ...finalTransaction } = trans; finalTransactions.push({ ...finalTransaction, @@ -919,6 +969,7 @@ export default function ImportTransactions({ modalProps, options }) { { name: 'Date', width: 200 }, { name: 'Payee', width: 'flex' }, { name: 'Notes', width: 'flex' }, + { name: 'Category', width: 'flex' }, ]; if (inOutMode) { @@ -959,7 +1010,7 @@ export default function ImportTransactions({ modalProps, options }) { index} renderEmpty={() => { @@ -989,6 +1040,7 @@ export default function ImportTransactions({ modalProps, options }) { outValue={outValue} flipAmount={flipAmount} multiplierAmount={multiplierAmount} + categories={categories.list} /> )} diff --git a/packages/desktop-client/src/components/modals/LoadBackup.jsx b/packages/desktop-client/src/components/modals/LoadBackup.jsx index 64786e72407..d430346b223 100644 --- a/packages/desktop-client/src/components/modals/LoadBackup.jsx +++ b/packages/desktop-client/src/components/modals/LoadBackup.jsx @@ -3,11 +3,11 @@ import React, { Component, useState, useEffect } from 'react'; import { send, listen, unlisten } from 'loot-core/src/platform/client/fetch'; import { theme } from '../../style'; -import Block from '../common/Block'; -import Button from '../common/Button'; -import Modal from '../common/Modal'; -import Text from '../common/Text'; -import View from '../common/View'; +import { Block } from '../common/Block'; +import { Button } from '../common/Button'; +import { Modal } from '../common/Modal'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; import { Row, Cell } from '../table'; class BackupTable extends Component { @@ -47,7 +47,7 @@ class BackupTable extends Component { } } -function LoadBackup({ +export function LoadBackup({ budgetId, watchUpdates, backupDisabled, @@ -133,5 +133,3 @@ function LoadBackup({ ); } - -export default LoadBackup; diff --git a/packages/desktop-client/src/components/modals/ManageRulesModal.tsx b/packages/desktop-client/src/components/modals/ManageRulesModal.tsx index cea802135cb..0242122d87d 100644 --- a/packages/desktop-client/src/components/modals/ManageRulesModal.tsx +++ b/packages/desktop-client/src/components/modals/ManageRulesModal.tsx @@ -4,15 +4,15 @@ import { useLocation } from 'react-router-dom'; import { isNonProductionEnvironment } from 'loot-core/src/shared/environment'; import { type CommonModalProps } from '../../types/modals'; -import Modal from '../common/Modal'; -import ManageRules from '../ManageRules'; +import { Modal } from '../common/Modal'; +import { ManageRules } from '../ManageRules'; type ManageRulesModalProps = { modalProps: CommonModalProps; payeeId?: string; }; -export default function ManageRulesModal({ +export function ManageRulesModal({ modalProps, payeeId, }: ManageRulesModalProps) { diff --git a/packages/desktop-client/src/components/modals/MergeUnusedPayees.jsx b/packages/desktop-client/src/components/modals/MergeUnusedPayees.jsx index d857cdd6a90..1fde89e701b 100644 --- a/packages/desktop-client/src/components/modals/MergeUnusedPayees.jsx +++ b/packages/desktop-client/src/components/modals/MergeUnusedPayees.jsx @@ -6,15 +6,15 @@ import { send } from 'loot-core/src/platform/client/fetch'; import { theme } from '../../style'; import { Information } from '../alerts'; -import Button from '../common/Button'; -import Modal, { ModalButtons } from '../common/Modal'; -import Paragraph from '../common/Paragraph'; -import Text from '../common/Text'; -import View from '../common/View'; +import { Button } from '../common/Button'; +import { Modal, ModalButtons } from '../common/Modal'; +import { Paragraph } from '../common/Paragraph'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; const highlightStyle = { color: theme.pageTextPositive }; -export default function MergeUnusedPayees({ +export function MergeUnusedPayees({ modalProps, payeeIds, targetPayeeId, diff --git a/packages/desktop-client/src/components/modals/Notes.tsx b/packages/desktop-client/src/components/modals/Notes.tsx index 3ae4cd95cd4..a2d128a52de 100644 --- a/packages/desktop-client/src/components/modals/Notes.tsx +++ b/packages/desktop-client/src/components/modals/Notes.tsx @@ -1,14 +1,14 @@ import React, { useEffect, useState } from 'react'; import { useLiveQuery } from 'loot-core/src/client/query-hooks'; -import q from 'loot-core/src/shared/query'; +import { q } from 'loot-core/src/shared/query'; -import Check from '../../icons/v2/Check'; +import { SvgCheck } from '../../icons/v2'; import { type CommonModalProps } from '../../types/modals'; -import Button from '../common/Button'; -import Modal from '../common/Modal'; -import View from '../common/View'; -import NotesComponent from '../Notes'; +import { Button } from '../common/Button'; +import { Modal } from '../common/Modal'; +import { View } from '../common/View'; +import { Notes as NotesComponent } from '../Notes'; type NotesProps = { modalProps: CommonModalProps; @@ -17,7 +17,7 @@ type NotesProps = { onSave: (id: string, notes: string) => void; }; -export default function Notes({ modalProps, id, name, onSave }: NotesProps) { +export function Notes({ modalProps, id, name, onSave }: NotesProps) { const data = useLiveQuery(() => q('notes').filter({ id }).select('*'), [id]); const originalNotes = data && data.length > 0 ? data[0].note : null; @@ -88,7 +88,7 @@ export default function Notes({ modalProps, id, name, onSave }: NotesProps) { }} onClick={_onSave} > - + Save notes diff --git a/packages/desktop-client/src/components/modals/PlaidExternalMsg.tsx b/packages/desktop-client/src/components/modals/PlaidExternalMsg.tsx index e9146a7e039..bc1dd416eed 100644 --- a/packages/desktop-client/src/components/modals/PlaidExternalMsg.tsx +++ b/packages/desktop-client/src/components/modals/PlaidExternalMsg.tsx @@ -1,14 +1,14 @@ import React, { useState, useRef } from 'react'; -import AnimatedLoading from '../../icons/AnimatedLoading'; +import { AnimatedLoading } from '../../icons/AnimatedLoading'; import { theme } from '../../style'; import { type CommonModalProps } from '../../types/modals'; import { Error } from '../alerts'; -import Button from '../common/Button'; -import Modal, { ModalButtons } from '../common/Modal'; -import Paragraph from '../common/Paragraph'; -import Text from '../common/Text'; -import View from '../common/View'; +import { Button } from '../common/Button'; +import { Modal, ModalButtons } from '../common/Modal'; +import { Paragraph } from '../common/Paragraph'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; function renderError(error) { return ( @@ -27,7 +27,7 @@ type PlainExternalMsgProps = { onClose?: () => void; }; -export default function PlaidExternalMsg({ +export function PlaidExternalMsg({ modalProps, onMoveExternal, onSuccess, diff --git a/packages/desktop-client/src/components/modals/ReportBudgetSummary.tsx b/packages/desktop-client/src/components/modals/ReportBudgetSummary.tsx index f895ecb3ee0..c03ecd5c2a1 100644 --- a/packages/desktop-client/src/components/modals/ReportBudgetSummary.tsx +++ b/packages/desktop-client/src/components/modals/ReportBudgetSummary.tsx @@ -5,19 +5,19 @@ import * as monthUtils from 'loot-core/src/shared/months'; import { styles } from '../../style'; import { type CommonModalProps } from '../../types/modals'; -import ExpenseTotal from '../budget/report/budgetsummary/ExpenseTotal'; -import IncomeTotal from '../budget/report/budgetsummary/IncomeTotal'; -import Saved from '../budget/report/budgetsummary/Saved'; -import Modal from '../common/Modal'; -import Stack from '../common/Stack'; -import NamespaceContext from '../spreadsheet/NamespaceContext'; +import { ExpenseTotal } from '../budget/report/budgetsummary/ExpenseTotal'; +import { IncomeTotal } from '../budget/report/budgetsummary/IncomeTotal'; +import { Saved } from '../budget/report/budgetsummary/Saved'; +import { Modal } from '../common/Modal'; +import { Stack } from '../common/Stack'; +import { NamespaceContext } from '../spreadsheet/NamespaceContext'; type ReportBudgetSummaryProps = { modalProps: CommonModalProps; month: string; }; -export default function ReportBudgetSummary({ +export function ReportBudgetSummary({ month, modalProps, }: ReportBudgetSummaryProps) { diff --git a/packages/desktop-client/src/components/modals/RolloverBudgetSummary.tsx b/packages/desktop-client/src/components/modals/RolloverBudgetSummary.tsx index a942d30f35f..2c8bcd0b589 100644 --- a/packages/desktop-client/src/components/modals/RolloverBudgetSummary.tsx +++ b/packages/desktop-client/src/components/modals/RolloverBudgetSummary.tsx @@ -4,10 +4,10 @@ import { format, sheetForMonth, prevMonth } from 'loot-core/src/shared/months'; import { styles } from '../../style'; import { type CommonModalProps } from '../../types/modals'; -import ToBudget from '../budget/rollover/budgetsummary/ToBudget'; -import TotalsList from '../budget/rollover/budgetsummary/TotalsList'; -import Modal from '../common/Modal'; -import NamespaceContext from '../spreadsheet/NamespaceContext'; +import { ToBudget } from '../budget/rollover/budgetsummary/ToBudget'; +import { TotalsList } from '../budget/rollover/budgetsummary/TotalsList'; +import { Modal } from '../common/Modal'; +import { NamespaceContext } from '../spreadsheet/NamespaceContext'; type RolloverBudgetSummaryProps = { modalProps: CommonModalProps; @@ -15,7 +15,7 @@ type RolloverBudgetSummaryProps = { month: string; }; -export default function RolloverBudgetSummary({ +export function RolloverBudgetSummary({ month, onBudgetAction, modalProps, diff --git a/packages/desktop-client/src/components/modals/SelectLinkedAccounts.jsx b/packages/desktop-client/src/components/modals/SelectLinkedAccounts.jsx index 504b4105f09..10b4252d12d 100644 --- a/packages/desktop-client/src/components/modals/SelectLinkedAccounts.jsx +++ b/packages/desktop-client/src/components/modals/SelectLinkedAccounts.jsx @@ -1,16 +1,16 @@ import React, { useState } from 'react'; import { theme } from '../../style'; -import Autocomplete from '../autocomplete/Autocomplete'; -import Button from '../common/Button'; -import Modal from '../common/Modal'; -import Text from '../common/Text'; -import View from '../common/View'; +import { Autocomplete } from '../autocomplete/Autocomplete'; +import { Button } from '../common/Button'; +import { Modal } from '../common/Modal'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; import { TableHeader, Table, Row, Field } from '../table'; const addAccountOption = { id: 'new', name: 'Create new account' }; -export default function SelectLinkedAccounts({ +export function SelectLinkedAccounts({ modalProps, requisitionId, externalAccounts, diff --git a/packages/desktop-client/src/components/modals/SingleInput.tsx b/packages/desktop-client/src/components/modals/SingleInput.tsx index db2ed81a088..71e2943f5df 100644 --- a/packages/desktop-client/src/components/modals/SingleInput.tsx +++ b/packages/desktop-client/src/components/modals/SingleInput.tsx @@ -2,12 +2,12 @@ import React, { useState } from 'react'; import { styles } from '../../style'; import { type CommonModalProps } from '../../types/modals'; -import Button from '../common/Button'; -import FormError from '../common/FormError'; -import InitialFocus from '../common/InitialFocus'; -import Input from '../common/Input'; -import Modal from '../common/Modal'; -import View from '../common/View'; +import { Button } from '../common/Button'; +import { FormError } from '../common/FormError'; +import { InitialFocus } from '../common/InitialFocus'; +import { Input } from '../common/Input'; +import { Modal } from '../common/Modal'; +import { View } from '../common/View'; type SingleInputProps = { modalProps: Partial; @@ -18,7 +18,7 @@ type SingleInputProps = { inputPlaceholder?: string; }; -function SingleInput({ +export function SingleInput({ modalProps, title, buttonText, @@ -90,5 +90,3 @@ function SingleInput({ ); } - -export default SingleInput; diff --git a/packages/desktop-client/src/components/modals/SwitchBudgetType.tsx b/packages/desktop-client/src/components/modals/SwitchBudgetType.tsx index 814d8c75573..f2b11a8fa13 100644 --- a/packages/desktop-client/src/components/modals/SwitchBudgetType.tsx +++ b/packages/desktop-client/src/components/modals/SwitchBudgetType.tsx @@ -2,18 +2,18 @@ import React from 'react'; import { useSelector } from 'react-redux'; import { type CommonModalProps } from '../../types/modals'; -import Button from '../common/Button'; -import ExternalLink from '../common/ExternalLink'; -import Modal from '../common/Modal'; -import Paragraph from '../common/Paragraph'; -import Text from '../common/Text'; +import { Button } from '../common/Button'; +import { ExternalLink } from '../common/ExternalLink'; +import { Modal } from '../common/Modal'; +import { Paragraph } from '../common/Paragraph'; +import { Text } from '../common/Text'; type SwitchBudgetTypeProps = { modalProps: CommonModalProps; onSwitch: () => void; }; -export default function SwitchBudgetType({ +export function SwitchBudgetType({ modalProps, onSwitch, }: SwitchBudgetTypeProps) { diff --git a/packages/desktop-client/src/components/payees/ManagePayees.jsx b/packages/desktop-client/src/components/payees/ManagePayees.jsx index 3e60c6a7508..70afd912bbf 100644 --- a/packages/desktop-client/src/components/payees/ManagePayees.jsx +++ b/packages/desktop-client/src/components/payees/ManagePayees.jsx @@ -13,21 +13,22 @@ import memoizeOne from 'memoize-one'; import { groupById } from 'loot-core/src/shared/util'; -import useSelected, { +import { + useSelected, SelectedProvider, useSelectedDispatch, useSelectedItems, } from '../../hooks/useSelected'; -import useStableCallback from '../../hooks/useStableCallback'; -import ExpandArrow from '../../icons/v0/ExpandArrow'; +import { useStableCallback } from '../../hooks/useStableCallback'; +import { SvgExpandArrow } from '../../icons/v0'; import { theme } from '../../style'; -import Button from '../common/Button'; -import Search from '../common/Search'; -import View from '../common/View'; +import { Button } from '../common/Button'; +import { Search } from '../common/Search'; +import { View } from '../common/View'; import { TableHeader, Cell, SelectCell, useTableNavigator } from '../table'; -import PayeeMenu from './PayeeMenu'; -import PayeeTable from './PayeeTable'; +import { PayeeMenu } from './PayeeMenu'; +import { PayeeTable } from './PayeeTable'; const getPayeesById = memoizeOne(payees => groupById(payees)); @@ -242,7 +243,7 @@ export const ManagePayees = forwardRef( : selected.items.size + ' ' + plural(selected.items.size, 'payee', 'payees')} - + {menuOpen && ( state.queries.payees); const lastUndoState = useSelector(state => state.app.lastUndoState); const { grouped: categoryGroups } = useCategories(); diff --git a/packages/desktop-client/src/components/payees/PayeeMenu.tsx b/packages/desktop-client/src/components/payees/PayeeMenu.tsx index 479ee0242ca..2a4867a669a 100644 --- a/packages/desktop-client/src/components/payees/PayeeMenu.tsx +++ b/packages/desktop-client/src/components/payees/PayeeMenu.tsx @@ -1,10 +1,9 @@ import { type PayeeEntity } from 'loot-core/src/types/models'; -import Delete from '../../icons/v0/Delete'; -import Merge from '../../icons/v0/Merge'; +import { SvgDelete, SvgMerge } from '../../icons/v0'; import { theme } from '../../style'; -import Menu from '../common/Menu'; -import View from '../common/View'; +import { Menu } from '../common/Menu'; +import { View } from '../common/View'; import { Tooltip } from '../tooltips'; type PayeeMenuProps = { @@ -15,7 +14,7 @@ type PayeeMenuProps = { onClose: () => void; }; -export default function PayeeMenu({ +export function PayeeMenu({ payeesById, selectedPayees, onDelete, @@ -64,13 +63,13 @@ export default function PayeeMenu({ } items={[ { - icon: Delete, + icon: SvgDelete, name: 'delete', text: 'Delete', disabled: isDisabled, }, { - icon: Merge, + icon: SvgMerge, iconSize: 9, name: 'merge', text: 'Merge', diff --git a/packages/desktop-client/src/components/payees/PayeeTable.tsx b/packages/desktop-client/src/components/payees/PayeeTable.tsx index b376752ae30..048db5c066e 100644 --- a/packages/desktop-client/src/components/payees/PayeeTable.tsx +++ b/packages/desktop-client/src/components/payees/PayeeTable.tsx @@ -10,10 +10,10 @@ import { import { type PayeeEntity } from 'loot-core/src/types/models'; import { useSelectedItems } from '../../hooks/useSelected'; -import View from '../common/View'; +import { View } from '../common/View'; import { Table, type TableNavigator } from '../table'; -import PayeeTableRow from './PayeeTableRow'; +import { PayeeTableRow } from './PayeeTableRow'; // Table items require an ID to work, it's optional in the loot-core // model so would need to verify accuracy of that before changing there @@ -28,7 +28,7 @@ type PayeeTableProps = { 'onUpdate' | 'onViewRules' | 'onCreateRule' >; -const PayeeTable = forwardRef< +export const PayeeTable = forwardRef< ComponentRef>, PayeeTableProps >( @@ -53,7 +53,7 @@ const PayeeTable = forwardRef< return ( setHovered(null)}> - + Create rule )} - + ); @@ -72,7 +72,7 @@ type PayeeTableRowProps = { style?: CSSProperties; }; -const PayeeTableRow = memo( +export const PayeeTableRow = memo( ({ payee, ruleCount, @@ -150,5 +150,3 @@ const PayeeTableRow = memo( ); }, ); - -export default PayeeTableRow; diff --git a/packages/desktop-client/src/components/reports/CategorySelector.tsx b/packages/desktop-client/src/components/reports/CategorySelector.tsx index d83825eedb4..43a5d2c2ef5 100644 --- a/packages/desktop-client/src/components/reports/CategorySelector.tsx +++ b/packages/desktop-client/src/components/reports/CategorySelector.tsx @@ -5,16 +5,19 @@ import { type CategoryGroupEntity, } from 'loot-core/src/types/models'; -import { CheckAll, UncheckAll } from '../../icons/v2'; -import ViewHide from '../../icons/v2/ViewHide'; -import ViewShow from '../../icons/v2/ViewShow'; +import { + SvgCheckAll, + SvgUncheckAll, + SvgViewHide, + SvgViewShow, +} from '../../icons/v2'; import { type CategoryListProps } from '../autocomplete/CategoryAutocomplete'; -import Button from '../common/Button'; -import Text from '../common/Text'; -import View from '../common/View'; +import { Button } from '../common/Button'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; import { Checkbox } from '../forms'; -import GraphButton from './GraphButton'; +import { GraphButton } from './GraphButton'; type CategorySelectorProps = { categoryGroups: Array; @@ -23,7 +26,7 @@ type CategorySelectorProps = { setSelectedCategories: (selectedCategories: CategoryEntity[]) => null; }; -export default function CategorySelector({ +export function CategorySelector({ categoryGroups, categories, selectedCategories, @@ -66,12 +69,20 @@ export default function CategorySelector({ {uncheckedHidden ? ( - + Show unchecked ) : ( - + Hide unchecked )} @@ -87,7 +98,7 @@ export default function CategorySelector({ }} style={{ marginRight: 5, padding: 8 }} > - + - + diff --git a/packages/desktop-client/src/components/reports/Change.jsx b/packages/desktop-client/src/components/reports/Change.jsx index a135f0aeb8f..5267b2c77c7 100644 --- a/packages/desktop-client/src/components/reports/Change.jsx +++ b/packages/desktop-client/src/components/reports/Change.jsx @@ -3,9 +3,9 @@ import React from 'react'; import { integerToCurrency } from 'loot-core/src/shared/util'; import { theme, styles } from '../../style'; -import Block from '../common/Block'; +import { Block } from '../common/Block'; -function Change({ amount }) { +export function Change({ amount }) { return ( ); } - -export default Change; diff --git a/packages/desktop-client/src/components/reports/ChooseGraph.tsx b/packages/desktop-client/src/components/reports/ChooseGraph.tsx index 66574f564d7..c1da3e8b8a5 100644 --- a/packages/desktop-client/src/components/reports/ChooseGraph.tsx +++ b/packages/desktop-client/src/components/reports/ChooseGraph.tsx @@ -1,19 +1,19 @@ import React, { useRef } from 'react'; -import View from '../common/View'; +import { View } from '../common/View'; import { type DataEntity, type Month } from './entities'; -import AreaGraph from './graphs/AreaGraph'; -import BarGraph from './graphs/BarGraph'; -import BarLineGraph from './graphs/BarLineGraph'; -import DonutGraph from './graphs/DonutGraph'; -import LineGraph from './graphs/LineGraph'; -import StackedBarGraph from './graphs/StackedBarGraph'; +import { AreaGraph } from './graphs/AreaGraph'; +import { BarGraph } from './graphs/BarGraph'; +import { BarLineGraph } from './graphs/BarLineGraph'; +import { DonutGraph } from './graphs/DonutGraph'; +import { LineGraph } from './graphs/LineGraph'; +import { StackedBarGraph } from './graphs/StackedBarGraph'; +import { ReportTable } from './graphs/tableGraph/ReportTable'; +import { ReportTableHeader } from './graphs/tableGraph/ReportTableHeader'; +import { ReportTableList } from './graphs/tableGraph/ReportTableList'; +import { ReportTableTotals } from './graphs/tableGraph/ReportTableTotals'; import { ReportOptions } from './ReportOptions'; -import ReportTable from './ReportTable'; -import ReportTableHeader from './ReportTableHeader'; -import ReportTableList from './ReportTableList'; -import ReportTableTotals from './ReportTableTotals'; type ChooseGraphProps = { data: DataEntity; @@ -27,7 +27,7 @@ type ChooseGraphProps = { months: Month[]; }; -function ChooseGraph({ +export function ChooseGraph({ data, mode, graphType, @@ -139,5 +139,3 @@ function ChooseGraph({ ); } } - -export default ChooseGraph; diff --git a/packages/desktop-client/src/components/reports/Container.tsx b/packages/desktop-client/src/components/reports/Container.tsx index 34b9c0d7c8c..f1108c72b4c 100644 --- a/packages/desktop-client/src/components/reports/Container.tsx +++ b/packages/desktop-client/src/components/reports/Container.tsx @@ -2,13 +2,13 @@ import React, { useRef, type ReactNode } from 'react'; import AutoSizer from 'react-virtualized-auto-sizer'; import { type CSSProperties } from '../../style'; -import View from '../common/View'; +import { View } from '../common/View'; type ContainerProps = { style?: CSSProperties; children: (width: number, height: number, host: HTMLDivElement) => ReactNode; }; -export default function Container({ style, children }: ContainerProps) { +export function Container({ style, children }: ContainerProps) { const portalHost = useRef(null); return ( diff --git a/packages/desktop-client/src/components/reports/DateRange.tsx b/packages/desktop-client/src/components/reports/DateRange.tsx index df3d6eb50ec..878cd6398e4 100644 --- a/packages/desktop-client/src/components/reports/DateRange.tsx +++ b/packages/desktop-client/src/components/reports/DateRange.tsx @@ -3,14 +3,14 @@ import React, { type ReactElement } from 'react'; import * as d from 'date-fns'; import { theme } from '../../style'; -import Block from '../common/Block'; +import { Block } from '../common/Block'; type DateRangeProps = { start: string; end: string; }; -function DateRange({ +export function DateRange({ start: startProp, end: endProp, }: DateRangeProps): ReactElement { @@ -36,5 +36,3 @@ function DateRange({ return {content}; } - -export default DateRange; diff --git a/packages/desktop-client/src/components/reports/GraphButton.tsx b/packages/desktop-client/src/components/reports/GraphButton.tsx index 50c50297dd6..9d14e37783c 100644 --- a/packages/desktop-client/src/components/reports/GraphButton.tsx +++ b/packages/desktop-client/src/components/reports/GraphButton.tsx @@ -1,9 +1,9 @@ import React, { type HTMLProps } from 'react'; import { type CSSProperties, theme } from '../../style'; -import Button from '../common/Button'; -import HoverTarget from '../common/HoverTarget'; -import Text from '../common/Text'; +import { Button } from '../common/Button'; +import { HoverTarget } from '../common/HoverTarget'; +import { Text } from '../common/Text'; import { Tooltip } from '../tooltips'; type GraphButtonProps = HTMLProps & { @@ -14,7 +14,7 @@ type GraphButtonProps = HTMLProps & { disabled?: boolean; }; -const GraphButton = ({ +export const GraphButton = ({ selected, children, onSelect, @@ -55,5 +55,3 @@ const GraphButton = ({ ); }; - -export default GraphButton; diff --git a/packages/desktop-client/src/components/reports/Header.jsx b/packages/desktop-client/src/components/reports/Header.jsx index dffee4321ca..34188780b6a 100644 --- a/packages/desktop-client/src/components/reports/Header.jsx +++ b/packages/desktop-client/src/components/reports/Header.jsx @@ -2,12 +2,12 @@ import { useLocation } from 'react-router-dom'; import * as monthUtils from 'loot-core/src/shared/months'; -import ArrowLeft from '../../icons/v1/ArrowLeft'; +import { SvgArrowLeft } from '../../icons/v1'; import { styles } from '../../style'; -import Button from '../common/Button'; -import ButtonLink from '../common/ButtonLink'; -import Select from '../common/Select'; -import View from '../common/View'; +import { Button } from '../common/Button'; +import { ButtonLink } from '../common/ButtonLink'; +import { Select } from '../common/Select'; +import { View } from '../common/View'; import { FilterButton, AppliedFilters } from '../filters/FiltersMenu'; export function validateStart(allMonths, start, end) { @@ -61,7 +61,7 @@ export function getFullRange(allMonths) { return [start, end]; } -function Header({ +export function Header({ title, start, end, @@ -93,7 +93,7 @@ function Header({ to="/reports" style={{ marginBottom: '15', alignSelf: 'flex-start' }} > - Back + Back {title} @@ -190,5 +190,3 @@ function Header({ ); } - -export default Header; diff --git a/packages/desktop-client/src/components/reports/LoadingIndicator.tsx b/packages/desktop-client/src/components/reports/LoadingIndicator.tsx index 8e71593df3c..e70bc0d7505 100644 --- a/packages/desktop-client/src/components/reports/LoadingIndicator.tsx +++ b/packages/desktop-client/src/components/reports/LoadingIndicator.tsx @@ -1,15 +1,15 @@ import React from 'react'; -import AnimatedLoading from '../../icons/AnimatedLoading'; +import { AnimatedLoading } from '../../icons/AnimatedLoading'; import { theme, styles } from '../../style'; -import Block from '../common/Block'; -import View from '../common/View'; +import { Block } from '../common/Block'; +import { View } from '../common/View'; type LoadingIndicatorProps = { message?: string; }; -const LoadingIndicator = ({ message }: LoadingIndicatorProps) => { +export const LoadingIndicator = ({ message }: LoadingIndicatorProps) => { return ( { ); }; - -export default LoadingIndicator; diff --git a/packages/desktop-client/src/components/reports/ModeButton.tsx b/packages/desktop-client/src/components/reports/ModeButton.tsx index e0f216d84fa..70b00bef7f1 100644 --- a/packages/desktop-client/src/components/reports/ModeButton.tsx +++ b/packages/desktop-client/src/components/reports/ModeButton.tsx @@ -1,7 +1,7 @@ import React, { type MouseEventHandler, type ReactNode } from 'react'; import { type CSSProperties, theme } from '../../style'; -import Button from '../common/Button'; +import { Button } from '../common/Button'; type ModeButtonProps = { selected: boolean; @@ -10,7 +10,12 @@ type ModeButtonProps = { onSelect: MouseEventHandler; }; -function ModeButton({ selected, children, style, onSelect }: ModeButtonProps) { +export function ModeButton({ + selected, + children, + style, + onSelect, +}: ModeButtonProps) { return ( {menuOpen && } diff --git a/packages/desktop-client/src/components/reports/Tooltip.jsx b/packages/desktop-client/src/components/reports/Tooltip.jsx index 1f1a481708f..0ec50a81fd2 100644 --- a/packages/desktop-client/src/components/reports/Tooltip.jsx +++ b/packages/desktop-client/src/components/reports/Tooltip.jsx @@ -6,7 +6,7 @@ import { VictoryTooltip } from 'victory'; import { theme } from '../../style'; -class Tooltip extends Component { +export class Tooltip extends Component { static defaultEvents = VictoryTooltip.defaultEvents; render() { @@ -84,5 +84,3 @@ class Tooltip extends Component { ); } } - -export default Tooltip; diff --git a/packages/desktop-client/src/components/reports/getCustomTick.ts b/packages/desktop-client/src/components/reports/getCustomTick.ts index 07ab8f777b6..448d3301af9 100644 --- a/packages/desktop-client/src/components/reports/getCustomTick.ts +++ b/packages/desktop-client/src/components/reports/getCustomTick.ts @@ -1,9 +1,7 @@ -const getCustomTick = (value: string, isPrivacyModeEnabled: boolean) => { +export const getCustomTick = (value: string, isPrivacyModeEnabled: boolean) => { if (isPrivacyModeEnabled) { return '...'; } else { return value; } }; - -export default getCustomTick; diff --git a/packages/desktop-client/src/components/reports/graphs/AreaGraph.tsx b/packages/desktop-client/src/components/reports/graphs/AreaGraph.tsx index 3c349f9d47c..995d13d1105 100644 --- a/packages/desktop-client/src/components/reports/graphs/AreaGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/AreaGraph.tsx @@ -11,16 +11,16 @@ import { ResponsiveContainer, } from 'recharts'; -import usePrivacyMode from 'loot-core/src/client/privacy'; +import { usePrivacyMode } from 'loot-core/src/client/privacy'; import { amountToCurrency } from 'loot-core/src/shared/util'; import { theme } from '../../../style'; import { type CSSProperties } from '../../../style'; -import AlignedText from '../../common/AlignedText'; -import PrivacyFilter from '../../PrivacyFilter'; -import Container from '../Container'; +import { AlignedText } from '../../common/AlignedText'; +import { PrivacyFilter } from '../../PrivacyFilter'; +import { Container } from '../Container'; import { type DataEntity } from '../entities'; -import numberFormatterTooltip from '../numberFormatter'; +import { numberFormatterTooltip } from '../numberFormatter'; type PayloadItem = { payload: { @@ -98,7 +98,12 @@ type AreaGraphProps = { compact?: boolean; }; -function AreaGraph({ style, data, balanceTypeOp, compact }: AreaGraphProps) { +export function AreaGraph({ + style, + data, + balanceTypeOp, + compact, +}: AreaGraphProps) { const privacyMode = usePrivacyMode(); const tickFormatter = tick => { @@ -197,5 +202,3 @@ function AreaGraph({ style, data, balanceTypeOp, compact }: AreaGraphProps) { ); } - -export default AreaGraph; diff --git a/packages/desktop-client/src/components/reports/graphs/BarGraph.tsx b/packages/desktop-client/src/components/reports/graphs/BarGraph.tsx index f4c49c25f18..40d8f2dfc7d 100644 --- a/packages/desktop-client/src/components/reports/graphs/BarGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/BarGraph.tsx @@ -13,17 +13,17 @@ import { ResponsiveContainer, } from 'recharts'; -import usePrivacyMode from 'loot-core/src/client/privacy'; +import { usePrivacyMode } from 'loot-core/src/client/privacy'; import { amountToCurrency } from 'loot-core/src/shared/util'; import { theme } from '../../../style'; import { type CSSProperties } from '../../../style'; -import AlignedText from '../../common/AlignedText'; -import PrivacyFilter from '../../PrivacyFilter'; -import Container from '../Container'; +import { AlignedText } from '../../common/AlignedText'; +import { PrivacyFilter } from '../../PrivacyFilter'; +import { Container } from '../Container'; import { type DataEntity } from '../entities'; -import getCustomTick from '../getCustomTick'; -import numberFormatterTooltip from '../numberFormatter'; +import { getCustomTick } from '../getCustomTick'; +import { numberFormatterTooltip } from '../numberFormatter'; type PayloadChild = { props: { @@ -114,7 +114,7 @@ type BarGraphProps = { compact?: boolean; }; -function BarGraph({ +export function BarGraph({ style, data, groupBy, @@ -216,5 +216,3 @@ function BarGraph({ ); } - -export default BarGraph; diff --git a/packages/desktop-client/src/components/reports/graphs/BarLineGraph.tsx b/packages/desktop-client/src/components/reports/graphs/BarLineGraph.tsx index 6378969ef99..08927d7ea50 100644 --- a/packages/desktop-client/src/components/reports/graphs/BarLineGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/BarLineGraph.tsx @@ -14,10 +14,10 @@ import { import { theme } from '../../../style'; import { type CSSProperties } from '../../../style'; -import AlignedText from '../../common/AlignedText'; -import PrivacyFilter from '../../PrivacyFilter'; -import Container from '../Container'; -import numberFormatterTooltip from '../numberFormatter'; +import { AlignedText } from '../../common/AlignedText'; +import { PrivacyFilter } from '../../PrivacyFilter'; +import { Container } from '../Container'; +import { numberFormatterTooltip } from '../numberFormatter'; type PayloadItem = { payload: { @@ -75,7 +75,7 @@ type BarLineGraphProps = { compact?: boolean; }; -function BarLineGraph({ style, graphData, compact }: BarLineGraphProps) { +export function BarLineGraph({ style, graphData, compact }: BarLineGraphProps) { const tickFormatter = tick => { return `${Math.round(tick).toLocaleString()}`; // Formats the tick values as strings with commas }; @@ -116,5 +116,3 @@ function BarLineGraph({ style, graphData, compact }: BarLineGraphProps) { ); } - -export default BarLineGraph; diff --git a/packages/desktop-client/src/components/reports/graphs/CashFlowGraph.tsx b/packages/desktop-client/src/components/reports/graphs/CashFlowGraph.tsx index f5739966f4e..c3abe65d93d 100644 --- a/packages/desktop-client/src/components/reports/graphs/CashFlowGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/CashFlowGraph.tsx @@ -12,14 +12,14 @@ import { import { theme } from '../../../style'; import { chartTheme } from '../chart-theme'; -import Container from '../Container'; -import Tooltip from '../Tooltip'; +import { Container } from '../Container'; +import { Tooltip } from '../Tooltip'; type CashFlowGraphProps = { graphData: { expenses; income; balances }; isConcise: boolean; }; -function CashFlowGraph({ graphData, isConcise }: CashFlowGraphProps) { +export function CashFlowGraph({ graphData, isConcise }: CashFlowGraphProps) { return ( {(width, height, portalHost) => @@ -63,5 +63,3 @@ function CashFlowGraph({ graphData, isConcise }: CashFlowGraphProps) { ); } - -export default CashFlowGraph; diff --git a/packages/desktop-client/src/components/reports/graphs/CategorySpendingGraph.tsx b/packages/desktop-client/src/components/reports/graphs/CategorySpendingGraph.tsx index 671101561e0..d4a221097a8 100644 --- a/packages/desktop-client/src/components/reports/graphs/CategorySpendingGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/CategorySpendingGraph.tsx @@ -4,9 +4,9 @@ import * as d from 'date-fns'; import { VictoryAxis, VictoryBar, VictoryChart, VictoryStack } from 'victory'; import { chartTheme } from '../chart-theme'; -import Container from '../Container'; +import { Container } from '../Container'; import { type CategorySpendingGraphData } from '../spreadsheets/category-spending-spreadsheet'; -import Tooltip from '../Tooltip'; +import { Tooltip } from '../Tooltip'; import { Area } from './common'; @@ -17,7 +17,7 @@ type CategorySpendingGraphProps = { compact?: boolean; style?: CSSProperties; }; -function CategorySpendingGraph({ +export function CategorySpendingGraph({ style, start, end, @@ -83,5 +83,3 @@ function CategorySpendingGraph({ ); } - -export default CategorySpendingGraph; diff --git a/packages/desktop-client/src/components/reports/graphs/DonutGraph.tsx b/packages/desktop-client/src/components/reports/graphs/DonutGraph.tsx index 5599fb5c733..b815e4259c6 100644 --- a/packages/desktop-client/src/components/reports/graphs/DonutGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/DonutGraph.tsx @@ -3,7 +3,7 @@ import React, { useState } from 'react'; import { PieChart, Pie, Cell, Sector, ResponsiveContainer } from 'recharts'; import { type CSSProperties } from '../../../style'; -import Container from '../Container'; +import { Container } from '../Container'; import { type DataEntity } from '../entities'; const RADIAN = Math.PI / 180; @@ -92,7 +92,7 @@ type DonutGraphProps = { compact?: boolean; }; -function DonutGraph({ +export function DonutGraph({ style, data, groupBy, @@ -153,5 +153,3 @@ function DonutGraph({ ); } - -export default DonutGraph; diff --git a/packages/desktop-client/src/components/reports/graphs/LineGraph.tsx b/packages/desktop-client/src/components/reports/graphs/LineGraph.tsx index 419e0a2e612..1eaa2b9aa8a 100644 --- a/packages/desktop-client/src/components/reports/graphs/LineGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/LineGraph.tsx @@ -13,10 +13,10 @@ import { import { theme } from '../../../style'; import { type CSSProperties } from '../../../style'; -import AlignedText from '../../common/AlignedText'; -import PrivacyFilter from '../../PrivacyFilter'; -import Container from '../Container'; -import numberFormatterTooltip from '../numberFormatter'; +import { AlignedText } from '../../common/AlignedText'; +import { PrivacyFilter } from '../../PrivacyFilter'; +import { Container } from '../Container'; +import { numberFormatterTooltip } from '../numberFormatter'; type PayloadItem = { payload: { @@ -74,7 +74,7 @@ type LineGraphProps = { compact?: boolean; }; -function LineGraph({ style, graphData, compact }: LineGraphProps) { +export function LineGraph({ style, graphData, compact }: LineGraphProps) { const tickFormatter = tick => { return `${Math.round(tick).toLocaleString()}`; // Formats the tick values as strings with commas }; @@ -114,5 +114,3 @@ function LineGraph({ style, graphData, compact }: LineGraphProps) { ); } - -export default LineGraph; diff --git a/packages/desktop-client/src/components/reports/graphs/NetWorthGraph.tsx b/packages/desktop-client/src/components/reports/graphs/NetWorthGraph.tsx index d17e37ac1a2..4de8d311b3f 100644 --- a/packages/desktop-client/src/components/reports/graphs/NetWorthGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/NetWorthGraph.tsx @@ -13,9 +13,9 @@ import { import { theme } from '../../../style'; import { type CSSProperties } from '../../../style'; -import AlignedText from '../../common/AlignedText'; -import Container from '../Container'; -import numberFormatterTooltip from '../numberFormatter'; +import { AlignedText } from '../../common/AlignedText'; +import { Container } from '../Container'; +import { numberFormatterTooltip } from '../numberFormatter'; type NetWorthGraphProps = { style?: CSSProperties; @@ -26,7 +26,7 @@ type NetWorthGraphProps = { }; }; -function NetWorthGraph({ +export function NetWorthGraph({ style, graphData, compact, @@ -126,22 +126,20 @@ function NetWorthGraph({ {compact ? null : ( )} - {compact ? null : ( - - )} - {compact ? null : ( - - )} + + } formatter={numberFormatterTooltip} @@ -180,5 +178,3 @@ function NetWorthGraph({ ); } - -export default NetWorthGraph; diff --git a/packages/desktop-client/src/components/reports/graphs/SankeyGraph.tsx b/packages/desktop-client/src/components/reports/graphs/SankeyGraph.tsx index 753009a029f..a41a90fe47d 100644 --- a/packages/desktop-client/src/components/reports/graphs/SankeyGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/SankeyGraph.tsx @@ -8,8 +8,8 @@ import { ResponsiveContainer, } from 'recharts'; -import Container from '../Container'; -import numberFormatterTooltip from '../numberFormatter'; +import { Container } from '../Container'; +import { numberFormatterTooltip } from '../numberFormatter'; type SankeyProps = { style; @@ -78,7 +78,7 @@ function convertToCondensed(data) { }; } -function SankeyGraph({ style, data, compact }: SankeyProps) { +export function SankeyGraph({ style, data, compact }: SankeyProps) { const sankeyData = compact ? convertToCondensed(data) : data; if (!data.links || data.links.length === 0) return null; @@ -134,5 +134,3 @@ function SankeyGraph({ style, data, compact }: SankeyProps) { ); } - -export default SankeyGraph; diff --git a/packages/desktop-client/src/components/reports/graphs/StackedBarGraph.tsx b/packages/desktop-client/src/components/reports/graphs/StackedBarGraph.tsx index 7a5421a4253..faf0a8e49bd 100644 --- a/packages/desktop-client/src/components/reports/graphs/StackedBarGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/StackedBarGraph.tsx @@ -11,17 +11,17 @@ import { ResponsiveContainer, } from 'recharts'; -import usePrivacyMode from 'loot-core/src/client/privacy'; +import { usePrivacyMode } from 'loot-core/src/client/privacy'; import { amountToCurrency } from 'loot-core/src/shared/util'; import { theme } from '../../../style'; import { type CSSProperties } from '../../../style'; -import AlignedText from '../../common/AlignedText'; -import PrivacyFilter from '../../PrivacyFilter'; -import Container from '../Container'; +import { AlignedText } from '../../common/AlignedText'; +import { PrivacyFilter } from '../../PrivacyFilter'; +import { Container } from '../Container'; import { type DataEntity } from '../entities'; -import getCustomTick from '../getCustomTick'; -import numberFormatterTooltip from '../numberFormatter'; +import { getCustomTick } from '../getCustomTick'; +import { numberFormatterTooltip } from '../numberFormatter'; type PayloadItem = { name: string; @@ -97,7 +97,11 @@ type StackedBarGraphProps = { compact?: boolean; }; -function StackedBarGraph({ style, data, compact }: StackedBarGraphProps) { +export function StackedBarGraph({ + style, + data, + compact, +}: StackedBarGraphProps) { const privacyMode = usePrivacyMode(); return ( @@ -155,5 +159,3 @@ function StackedBarGraph({ style, data, compact }: StackedBarGraphProps) { ); } - -export default StackedBarGraph; diff --git a/packages/desktop-client/src/components/reports/ReportTable.tsx b/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTable.tsx similarity index 89% rename from packages/desktop-client/src/components/reports/ReportTable.tsx rename to packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTable.tsx index d2d4e5d209b..91a5ca1457a 100644 --- a/packages/desktop-client/src/components/reports/ReportTable.tsx +++ b/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTable.tsx @@ -6,8 +6,8 @@ import React, { } from 'react'; import { type RefProp } from 'react-spring'; -import { type CSSProperties } from '../../style'; -import View from '../common/View'; +import { type CSSProperties } from '../../../../style'; +import { View } from '../../../common/View'; type ReportTableProps = { saveScrollWidth?: (value: number) => void; @@ -17,7 +17,7 @@ type ReportTableProps = { handleScroll?: UIEventHandler; }; -export default function ReportTable({ +export function ReportTable({ saveScrollWidth, listScrollRef, style, diff --git a/packages/desktop-client/src/components/reports/ReportTableHeader.tsx b/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableHeader.tsx similarity index 91% rename from packages/desktop-client/src/components/reports/ReportTableHeader.tsx rename to packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableHeader.tsx index da1e795258a..c95fb518f41 100644 --- a/packages/desktop-client/src/components/reports/ReportTableHeader.tsx +++ b/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableHeader.tsx @@ -1,11 +1,10 @@ import React, { type UIEventHandler } from 'react'; import { type RefProp } from 'react-spring'; -import { styles, theme } from '../../style'; -import View from '../common/View'; -import { Row, Cell } from '../table'; - -import { type MonthData } from './entities'; +import { styles, theme } from '../../../../style'; +import { View } from '../../../common/View'; +import { Row, Cell } from '../../../table'; +import { type MonthData } from '../../entities'; type ReportTableHeaderProps = { scrollWidth?: number; @@ -16,7 +15,7 @@ type ReportTableHeaderProps = { handleScroll?: UIEventHandler; }; -function ReportTableHeader({ +export function ReportTableHeader({ scrollWidth, groupBy, interval, @@ -110,5 +109,3 @@ function ReportTableHeader({ ); } - -export default ReportTableHeader; diff --git a/packages/desktop-client/src/components/reports/ReportTableList.tsx b/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableList.tsx similarity index 96% rename from packages/desktop-client/src/components/reports/ReportTableList.tsx rename to packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableList.tsx index 40939b0e640..0cda809d6b4 100644 --- a/packages/desktop-client/src/components/reports/ReportTableList.tsx +++ b/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableList.tsx @@ -6,9 +6,9 @@ import { integerToCurrency, } from 'loot-core/src/shared/util'; -import { type CSSProperties, styles, theme } from '../../style'; -import View from '../common/View'; -import { Row, Cell } from '../table'; +import { type CSSProperties, styles, theme } from '../../../../style'; +import { View } from '../../../common/View'; +import { Row, Cell } from '../../../table'; type TableRowProps = { item: { @@ -186,7 +186,7 @@ function GroupedTableRow({ ); } -export default function ReportTableList({ +export function ReportTableList({ data, empty, monthsCount, diff --git a/packages/desktop-client/src/components/reports/ReportTableTotals.tsx b/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableTotals.tsx similarity index 94% rename from packages/desktop-client/src/components/reports/ReportTableTotals.tsx rename to packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableTotals.tsx index 3fa158a03b9..be418de80c6 100644 --- a/packages/desktop-client/src/components/reports/ReportTableTotals.tsx +++ b/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableTotals.tsx @@ -7,11 +7,10 @@ import { integerToCurrency, } from 'loot-core/src/shared/util'; -import { styles, theme } from '../../style'; -import View from '../common/View'; -import { Row, Cell } from '../table'; - -import { type DataEntity } from './entities'; +import { styles, theme } from '../../../../style'; +import { View } from '../../../common/View'; +import { Row, Cell } from '../../../table'; +import { type DataEntity } from '../../entities'; type ReportTableTotalsProps = { data: DataEntity; @@ -23,7 +22,7 @@ type ReportTableTotalsProps = { handleScroll: UIEventHandler; }; -function ReportTableTotals({ +export function ReportTableTotals({ data, scrollWidth, balanceTypeOp, @@ -155,5 +154,3 @@ function ReportTableTotals({ ); } - -export default ReportTableTotals; diff --git a/packages/desktop-client/src/components/reports/index.tsx b/packages/desktop-client/src/components/reports/index.tsx index b57d418548d..ad7812ae2c6 100644 --- a/packages/desktop-client/src/components/reports/index.tsx +++ b/packages/desktop-client/src/components/reports/index.tsx @@ -1,7 +1,7 @@ -import View from '../common/View'; +import { View } from '../common/View'; import { LoadComponent } from '../util/LoadComponent'; -export default function Reports() { +export function Reports() { return ( { +export const numberFormatterTooltip = ( + value: PotentialNumber, +): number | null => { if (typeof value === 'number') { return Math.round(value); } return null; // or some default value for other cases }; - -export default numberFormatterTooltip; diff --git a/packages/desktop-client/src/components/reports/reports/CashFlow.tsx b/packages/desktop-client/src/components/reports/reports/CashFlow.tsx index 7c782c0e8d0..17ccfef4eaf 100644 --- a/packages/desktop-client/src/components/reports/reports/CashFlow.tsx +++ b/packages/desktop-client/src/components/reports/reports/CashFlow.tsx @@ -6,21 +6,21 @@ import { send } from 'loot-core/src/platform/client/fetch'; import * as monthUtils from 'loot-core/src/shared/months'; import { integerToCurrency } from 'loot-core/src/shared/util'; -import useFilters from '../../../hooks/useFilters'; +import { useFilters } from '../../../hooks/useFilters'; import { theme, styles } from '../../../style'; -import AlignedText from '../../common/AlignedText'; -import Block from '../../common/Block'; -import Paragraph from '../../common/Paragraph'; -import Text from '../../common/Text'; -import View from '../../common/View'; -import PrivacyFilter from '../../PrivacyFilter'; -import Change from '../Change'; -import CashFlowGraph from '../graphs/CashFlowGraph'; -import Header from '../Header'; +import { AlignedText } from '../../common/AlignedText'; +import { Block } from '../../common/Block'; +import { Paragraph } from '../../common/Paragraph'; +import { Text } from '../../common/Text'; +import { View } from '../../common/View'; +import { PrivacyFilter } from '../../PrivacyFilter'; +import { Change } from '../Change'; +import { CashFlowGraph } from '../graphs/CashFlowGraph'; +import { Header } from '../Header'; import { cashFlowByDate } from '../spreadsheets/cash-flow-spreadsheet'; -import useReport from '../useReport'; +import { useReport } from '../useReport'; -export default function CashFlow(): JSX.Element { +export function CashFlow(): JSX.Element { const { filters, conditionsOp, diff --git a/packages/desktop-client/src/components/reports/reports/CashFlowCard.jsx b/packages/desktop-client/src/components/reports/reports/CashFlowCard.jsx index bc752f4bbf4..30df9368c5f 100644 --- a/packages/desktop-client/src/components/reports/reports/CashFlowCard.jsx +++ b/packages/desktop-client/src/components/reports/reports/CashFlowCard.jsx @@ -6,20 +6,20 @@ import * as monthUtils from 'loot-core/src/shared/months'; import { integerToCurrency } from 'loot-core/src/shared/util'; import { theme, styles } from '../../../style'; -import Block from '../../common/Block'; -import View from '../../common/View'; -import PrivacyFilter from '../../PrivacyFilter'; -import Change from '../Change'; +import { Block } from '../../common/Block'; +import { View } from '../../common/View'; +import { PrivacyFilter } from '../../PrivacyFilter'; +import { Change } from '../Change'; import { chartTheme } from '../chart-theme'; -import Container from '../Container'; -import DateRange from '../DateRange'; -import LoadingIndicator from '../LoadingIndicator'; -import ReportCard from '../ReportCard'; +import { Container } from '../Container'; +import { DateRange } from '../DateRange'; +import { LoadingIndicator } from '../LoadingIndicator'; +import { ReportCard } from '../ReportCard'; import { simpleCashFlow } from '../spreadsheets/cash-flow-spreadsheet'; -import Tooltip from '../Tooltip'; -import useReport from '../useReport'; +import { Tooltip } from '../Tooltip'; +import { useReport } from '../useReport'; -function CashFlowCard() { +export function CashFlowCard() { const end = monthUtils.currentDay(); const start = monthUtils.currentMonth() + '-01'; @@ -149,5 +149,3 @@ function CashFlowCard() { ); } - -export default CashFlowCard; diff --git a/packages/desktop-client/src/components/reports/reports/CategorySpending.jsx b/packages/desktop-client/src/components/reports/reports/CategorySpending.jsx index 2d8a2c82ea4..a8e7cf79a25 100644 --- a/packages/desktop-client/src/components/reports/reports/CategorySpending.jsx +++ b/packages/desktop-client/src/components/reports/reports/CategorySpending.jsx @@ -5,18 +5,18 @@ import * as d from 'date-fns'; import { send } from 'loot-core/src/platform/client/fetch'; import * as monthUtils from 'loot-core/src/shared/months'; -import useCategories from '../../../hooks/useCategories'; +import { useCategories } from '../../../hooks/useCategories'; import { styles } from '../../../style'; -import Select from '../../common/Select'; -import View from '../../common/View'; -import CategorySelector from '../CategorySelector'; -import CategorySpendingGraph from '../graphs/CategorySpendingGraph'; -import Header from '../Header'; -import categorySpendingSpreadsheet from '../spreadsheets/category-spending-spreadsheet'; -import useReport from '../useReport'; +import { Select } from '../../common/Select'; +import { View } from '../../common/View'; +import { CategorySelector } from '../CategorySelector'; +import { CategorySpendingGraph } from '../graphs/CategorySpendingGraph'; +import { Header } from '../Header'; +import { createSpreadsheet as categorySpendingSpreadsheet } from '../spreadsheets/category-spending-spreadsheet'; +import { useReport } from '../useReport'; import { fromDateRepr } from '../util'; -function CategorySpending() { +export function CategorySpending() { const categories = useCategories(); const [selectedCategories, setSelectedCategories] = useState(null); @@ -173,5 +173,3 @@ function CategorySpending() { ); } - -export default CategorySpending; diff --git a/packages/desktop-client/src/components/reports/reports/CategorySpendingCard.jsx b/packages/desktop-client/src/components/reports/reports/CategorySpendingCard.jsx index 2a705305d9f..c6b86eac0d9 100644 --- a/packages/desktop-client/src/components/reports/reports/CategorySpendingCard.jsx +++ b/packages/desktop-client/src/components/reports/reports/CategorySpendingCard.jsx @@ -2,18 +2,18 @@ import React, { useMemo } from 'react'; import * as monthUtils from 'loot-core/src/shared/months'; -import useCategories from '../../../hooks/useCategories'; +import { useCategories } from '../../../hooks/useCategories'; import { styles } from '../../../style'; -import Block from '../../common/Block'; -import View from '../../common/View'; -import DateRange from '../DateRange'; -import CategorySpendingGraph from '../graphs/CategorySpendingGraph'; -import LoadingIndicator from '../LoadingIndicator'; -import ReportCard from '../ReportCard'; -import categorySpendingSpreadsheet from '../spreadsheets/category-spending-spreadsheet'; -import useReport from '../useReport'; - -function CategorySpendingCard() { +import { Block } from '../../common/Block'; +import { View } from '../../common/View'; +import { DateRange } from '../DateRange'; +import { CategorySpendingGraph } from '../graphs/CategorySpendingGraph'; +import { LoadingIndicator } from '../LoadingIndicator'; +import { ReportCard } from '../ReportCard'; +import { createSpreadsheet as categorySpendingSpreadsheet } from '../spreadsheets/category-spending-spreadsheet'; +import { useReport } from '../useReport'; + +export function CategorySpendingCard() { const { list: categories = [] } = useCategories(); const end = monthUtils.currentDay(); @@ -59,5 +59,3 @@ function CategorySpendingCard() { ); } - -export default CategorySpendingCard; diff --git a/packages/desktop-client/src/components/reports/reports/CustomReport.jsx b/packages/desktop-client/src/components/reports/reports/CustomReport.jsx index 307b630033f..b2080b0daeb 100644 --- a/packages/desktop-client/src/components/reports/reports/CustomReport.jsx +++ b/packages/desktop-client/src/components/reports/reports/CustomReport.jsx @@ -10,29 +10,29 @@ import * as monthUtils from 'loot-core/src/shared/months'; import { amountToCurrency } from 'loot-core/src/shared/util'; import { useActions } from '../../../hooks/useActions'; -import useCategories from '../../../hooks/useCategories'; -import useFilters from '../../../hooks/useFilters'; +import { useCategories } from '../../../hooks/useCategories'; +import { useFilters } from '../../../hooks/useFilters'; import { theme, styles } from '../../../style'; -import AlignedText from '../../common/AlignedText'; -import Block from '../../common/Block'; -import Text from '../../common/Text'; -import View from '../../common/View'; +import { AlignedText } from '../../common/AlignedText'; +import { Block } from '../../common/Block'; +import { Text } from '../../common/Text'; +import { View } from '../../common/View'; import { AppliedFilters } from '../../filters/FiltersMenu'; -import PrivacyFilter from '../../PrivacyFilter'; -import ChooseGraph from '../ChooseGraph'; -import Header from '../Header'; -import LoadingIndicator from '../LoadingIndicator'; -import ReportLegend from '../ReportLegend'; +import { PrivacyFilter } from '../../PrivacyFilter'; +import { ChooseGraph } from '../ChooseGraph'; +import { Header } from '../Header'; +import { LoadingIndicator } from '../LoadingIndicator'; +import { ReportLegend } from '../ReportLegend'; import { ReportOptions } from '../ReportOptions'; import { ReportSidebar } from '../ReportSidebar'; -import ReportSummary from '../ReportSummary'; +import { ReportSummary } from '../ReportSummary'; import { ReportTopbar } from '../ReportTopbar'; -import defaultSpreadsheet from '../spreadsheets/default-spreadsheet'; -import groupedSpreadsheet from '../spreadsheets/grouped-spreadsheet'; -import useReport from '../useReport'; +import { createSpreadsheet as defaultSpreadsheet } from '../spreadsheets/default-spreadsheet'; +import { createGroupedSpreadsheet as groupedSpreadsheet } from '../spreadsheets/grouped-spreadsheet'; +import { useReport } from '../useReport'; import { fromDateRepr } from '../util'; -export default function CustomReport() { +export function CustomReport() { const categories = useCategories(); const viewLegend = diff --git a/packages/desktop-client/src/components/reports/reports/CustomReportCard.jsx b/packages/desktop-client/src/components/reports/reports/CustomReportCard.jsx index ba99695416d..7fc0b66bc1c 100644 --- a/packages/desktop-client/src/components/reports/reports/CustomReportCard.jsx +++ b/packages/desktop-client/src/components/reports/reports/CustomReportCard.jsx @@ -2,18 +2,18 @@ import React, { useMemo } from 'react'; import * as monthUtils from 'loot-core/src/shared/months'; -import useCategories from '../../../hooks/useCategories'; +import { useCategories } from '../../../hooks/useCategories'; import { styles } from '../../../style'; -import Block from '../../common/Block'; -import View from '../../common/View'; -import DateRange from '../DateRange'; -import BarGraph from '../graphs/BarGraph'; -import LoadingIndicator from '../LoadingIndicator'; -import ReportCard from '../ReportCard'; -import defaultSpreadsheet from '../spreadsheets/default-spreadsheet'; -import useReport from '../useReport'; - -function CustomReportCard() { +import { Block } from '../../common/Block'; +import { View } from '../../common/View'; +import { DateRange } from '../DateRange'; +import { BarGraph } from '../graphs/BarGraph'; +import { LoadingIndicator } from '../LoadingIndicator'; +import { ReportCard } from '../ReportCard'; +import { createSpreadsheet as defaultSpreadsheet } from '../spreadsheets/default-spreadsheet'; +import { useReport } from '../useReport'; + +export function CustomReportCard() { const categories = useCategories(); const endDate = monthUtils.currentMonth(); @@ -61,5 +61,3 @@ function CustomReportCard() { ); } - -export default CustomReportCard; diff --git a/packages/desktop-client/src/components/reports/reports/NetWorth.jsx b/packages/desktop-client/src/components/reports/reports/NetWorth.jsx index 8d9be68073d..5bdd779b24f 100644 --- a/packages/desktop-client/src/components/reports/reports/NetWorth.jsx +++ b/packages/desktop-client/src/components/reports/reports/NetWorth.jsx @@ -7,19 +7,19 @@ import { send } from 'loot-core/src/platform/client/fetch'; import * as monthUtils from 'loot-core/src/shared/months'; import { integerToCurrency } from 'loot-core/src/shared/util'; -import useFilters from '../../../hooks/useFilters'; +import { useFilters } from '../../../hooks/useFilters'; import { theme, styles } from '../../../style'; -import Paragraph from '../../common/Paragraph'; -import View from '../../common/View'; -import PrivacyFilter from '../../PrivacyFilter'; -import Change from '../Change'; -import NetWorthGraph from '../graphs/NetWorthGraph'; -import Header from '../Header'; -import netWorthSpreadsheet from '../spreadsheets/net-worth-spreadsheet'; -import useReport from '../useReport'; +import { Paragraph } from '../../common/Paragraph'; +import { View } from '../../common/View'; +import { PrivacyFilter } from '../../PrivacyFilter'; +import { Change } from '../Change'; +import { NetWorthGraph } from '../graphs/NetWorthGraph'; +import { Header } from '../Header'; +import { createSpreadsheet as netWorthSpreadsheet } from '../spreadsheets/net-worth-spreadsheet'; +import { useReport } from '../useReport'; import { fromDateRepr } from '../util'; -function NetWorth() { +export function NetWorth() { const accounts = useSelector(state => state.queries.accounts); const { filters, @@ -152,5 +152,3 @@ function NetWorth() { ); } - -export default NetWorth; diff --git a/packages/desktop-client/src/components/reports/reports/NetWorthCard.jsx b/packages/desktop-client/src/components/reports/reports/NetWorthCard.jsx index 1c1f74ee6b2..3b2963bd4a4 100644 --- a/packages/desktop-client/src/components/reports/reports/NetWorthCard.jsx +++ b/packages/desktop-client/src/components/reports/reports/NetWorthCard.jsx @@ -4,18 +4,18 @@ import * as monthUtils from 'loot-core/src/shared/months'; import { integerToCurrency } from 'loot-core/src/shared/util'; import { theme, styles } from '../../../style'; -import Block from '../../common/Block'; -import View from '../../common/View'; -import PrivacyFilter from '../../PrivacyFilter'; -import Change from '../Change'; -import DateRange from '../DateRange'; -import NetWorthGraph from '../graphs/NetWorthGraph'; -import LoadingIndicator from '../LoadingIndicator'; -import ReportCard from '../ReportCard'; -import netWorthSpreadsheet from '../spreadsheets/net-worth-spreadsheet'; -import useReport from '../useReport'; +import { Block } from '../../common/Block'; +import { View } from '../../common/View'; +import { PrivacyFilter } from '../../PrivacyFilter'; +import { Change } from '../Change'; +import { DateRange } from '../DateRange'; +import { NetWorthGraph } from '../graphs/NetWorthGraph'; +import { LoadingIndicator } from '../LoadingIndicator'; +import { ReportCard } from '../ReportCard'; +import { createSpreadsheet as netWorthSpreadsheet } from '../spreadsheets/net-worth-spreadsheet'; +import { useReport } from '../useReport'; -function NetWorthCard({ accounts }) { +export function NetWorthCard({ accounts }) { const end = monthUtils.currentMonth(); const start = monthUtils.subMonths(end, 5); const [isCardHovered, setIsCardHovered] = useState(false); @@ -83,5 +83,3 @@ function NetWorthCard({ accounts }) { ); } - -export default NetWorthCard; diff --git a/packages/desktop-client/src/components/reports/reports/Sankey.jsx b/packages/desktop-client/src/components/reports/reports/Sankey.jsx index b2b11548681..fad99a01c68 100644 --- a/packages/desktop-client/src/components/reports/reports/Sankey.jsx +++ b/packages/desktop-client/src/components/reports/reports/Sankey.jsx @@ -5,18 +5,18 @@ import * as d from 'date-fns'; import { send } from 'loot-core/src/platform/client/fetch'; import * as monthUtils from 'loot-core/src/shared/months'; -import useCategories from '../../../hooks/useCategories'; -import useFilters from '../../../hooks/useFilters'; +import { useCategories } from '../../../hooks/useCategories'; +import { useFilters } from '../../../hooks/useFilters'; import { theme, styles } from '../../../style'; -import Paragraph from '../../common/Paragraph'; -import View from '../../common/View'; -import SankeyGraph from '../graphs/SankeyGraph'; -import Header from '../Header'; -import sankeySpreadsheet from '../spreadsheets/sankey-spreadsheet'; -import useReport from '../useReport'; +import { Paragraph } from '../../common/Paragraph'; +import { View } from '../../common/View'; +import { SankeyGraph } from '../graphs/SankeyGraph'; +import { Header } from '../Header'; +import { createSpreadsheet as sankeySpreadsheet } from '../spreadsheets/sankey-spreadsheet'; +import { useReport } from '../useReport'; import { fromDateRepr } from '../util'; -export default function Sankey() { +export function Sankey() { const { grouped: categoryGroups } = useCategories(); const { filters, diff --git a/packages/desktop-client/src/components/reports/reports/SankeyCard.jsx b/packages/desktop-client/src/components/reports/reports/SankeyCard.jsx index f79ec227260..492962c23c2 100644 --- a/packages/desktop-client/src/components/reports/reports/SankeyCard.jsx +++ b/packages/desktop-client/src/components/reports/reports/SankeyCard.jsx @@ -2,18 +2,18 @@ import React, { useMemo } from 'react'; import * as monthUtils from 'loot-core/src/shared/months'; -import useCategories from '../../../hooks/useCategories'; +import { useCategories } from '../../../hooks/useCategories'; import { styles } from '../../../style'; -import Block from '../../common/Block'; -import View from '../../common/View'; -import DateRange from '../DateRange'; -import SankeyGraph from '../graphs/SankeyGraph'; -import LoadingIndicator from '../LoadingIndicator'; -import ReportCard from '../ReportCard'; -import sankeySpreadsheet from '../spreadsheets/sankey-spreadsheet'; -import useReport from '../useReport'; +import { Block } from '../../common/Block'; +import { View } from '../../common/View'; +import { DateRange } from '../DateRange'; +import { SankeyGraph } from '../graphs/SankeyGraph'; +import { LoadingIndicator } from '../LoadingIndicator'; +import { ReportCard } from '../ReportCard'; +import { createSpreadsheet as sankeySpreadsheet } from '../spreadsheets/sankey-spreadsheet'; +import { useReport } from '../useReport'; -function SankeyCard() { +export function SankeyCard() { const { grouped: categoryGroups } = useCategories(); const end = monthUtils.currentMonth(); const start = monthUtils.subMonths(end, 5); @@ -47,5 +47,3 @@ function SankeyCard() { ); } - -export default SankeyCard; diff --git a/packages/desktop-client/src/components/reports/spreadsheets/calculateLegend.ts b/packages/desktop-client/src/components/reports/spreadsheets/calculateLegend.ts index 7ff756f4fcb..db55ead21b4 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/calculateLegend.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/calculateLegend.ts @@ -2,7 +2,7 @@ import { theme } from '../../../style'; import { getColorScale } from '../chart-theme'; import { type ItemEntity, type MonthData } from '../entities'; -function calculateLegend( +export function calculateLegend( monthData: MonthData[], calcDataFiltered: ItemEntity[], groupBy: string, @@ -27,5 +27,3 @@ function calculateLegend( }; }); } - -export default calculateLegend; diff --git a/packages/desktop-client/src/components/reports/spreadsheets/cash-flow-spreadsheet.tsx b/packages/desktop-client/src/components/reports/spreadsheets/cash-flow-spreadsheet.tsx index 5d874cb821a..70a736ea2bf 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/cash-flow-spreadsheet.tsx +++ b/packages/desktop-client/src/components/reports/spreadsheets/cash-flow-spreadsheet.tsx @@ -2,12 +2,12 @@ import React from 'react'; import * as d from 'date-fns'; -import q from 'loot-core/src/client/query-helpers'; import { send } from 'loot-core/src/platform/client/fetch'; import * as monthUtils from 'loot-core/src/shared/months'; +import { q } from 'loot-core/src/shared/query'; import { integerToCurrency, integerToAmount } from 'loot-core/src/shared/util'; -import AlignedText from '../../common/AlignedText'; +import { AlignedText } from '../../common/AlignedText'; import { runAll, indexCashFlow } from '../util'; export function simpleCashFlow(start, end) { diff --git a/packages/desktop-client/src/components/reports/spreadsheets/category-spending-spreadsheet.tsx b/packages/desktop-client/src/components/reports/spreadsheets/category-spending-spreadsheet.tsx index d4bb392eddf..8f45940b4cd 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/category-spending-spreadsheet.tsx +++ b/packages/desktop-client/src/components/reports/spreadsheets/category-spending-spreadsheet.tsx @@ -3,11 +3,12 @@ import React from 'react'; import * as d from 'date-fns'; import { rolloverBudget } from 'loot-core/src/client/queries'; -import q, { runQuery } from 'loot-core/src/client/query-helpers'; +import { runQuery } from 'loot-core/src/client/query-helpers'; import * as monthUtils from 'loot-core/src/shared/months'; +import { q } from 'loot-core/src/shared/query'; import { integerToAmount, integerToCurrency } from 'loot-core/src/shared/util'; -import AlignedText from '../../common/AlignedText'; +import { AlignedText } from '../../common/AlignedText'; type CategoryGraphDataForMonth = { x: number; @@ -39,7 +40,7 @@ type CategoryBudgetPerMonth = { [month: string]: CategoryBudgetForMonth; }; -export default function createSpreadsheet( +export function createSpreadsheet( start: string | null, end: string | null, numberOfMonthsAverage: number, diff --git a/packages/desktop-client/src/components/reports/spreadsheets/default-spreadsheet.ts b/packages/desktop-client/src/components/reports/spreadsheets/default-spreadsheet.ts index e26e1736090..0fde5493c09 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/default-spreadsheet.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/default-spreadsheet.ts @@ -14,10 +14,10 @@ import { import { categoryLists, groupBySelections } from '../ReportOptions'; -import calculateLegend from './calculateLegend'; -import filterHiddenItems from './filterHiddenItems'; -import makeQuery from './makeQuery'; -import recalculate from './recalculate'; +import { calculateLegend } from './calculateLegend'; +import { filterHiddenItems } from './filterHiddenItems'; +import { makeQuery } from './makeQuery'; +import { recalculate } from './recalculate'; export type createSpreadsheetProps = { startDate: string; @@ -37,7 +37,7 @@ export type createSpreadsheetProps = { graphType: string; }; -export default function createSpreadsheet({ +export function createSpreadsheet({ startDate, endDate, categories, diff --git a/packages/desktop-client/src/components/reports/spreadsheets/filterHiddenItems.ts b/packages/desktop-client/src/components/reports/spreadsheets/filterHiddenItems.ts index 0498ad09357..3b7d2dee3d8 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/filterHiddenItems.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/filterHiddenItems.ts @@ -3,7 +3,10 @@ import { type UncategorizedEntity, } from '../ReportOptions'; -function filterHiddenItems(item: UncategorizedEntity, data: QueryDataEntity[]) { +export function filterHiddenItems( + item: UncategorizedEntity, + data: QueryDataEntity[], +) { return data.filter(asset => { if (!item.uncategorized_id) { return true; @@ -20,5 +23,3 @@ function filterHiddenItems(item: UncategorizedEntity, data: QueryDataEntity[]) { return isTransfer && isHidden && isOffBudget; }); } - -export default filterHiddenItems; diff --git a/packages/desktop-client/src/components/reports/spreadsheets/grouped-spreadsheet.ts b/packages/desktop-client/src/components/reports/spreadsheets/grouped-spreadsheet.ts index 49e7bd82e53..968e6d5c338 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/grouped-spreadsheet.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/grouped-spreadsheet.ts @@ -6,11 +6,11 @@ import { integerToAmount } from 'loot-core/src/shared/util'; import { categoryLists } from '../ReportOptions'; import { type createSpreadsheetProps } from './default-spreadsheet'; -import filterHiddenItems from './filterHiddenItems'; -import makeQuery from './makeQuery'; -import recalculate from './recalculate'; +import { filterHiddenItems } from './filterHiddenItems'; +import { makeQuery } from './makeQuery'; +import { recalculate } from './recalculate'; -function createGroupedSpreadsheet({ +export function createGroupedSpreadsheet({ startDate, endDate, categories, @@ -85,7 +85,7 @@ function createGroupedSpreadsheet({ let groupedAssets = 0; let groupedDebts = 0; - group.categories.map(item => { + group.categories.forEach(item => { const monthAssets = filterHiddenItems(item, assets) .filter( asset => asset.date === month && asset.category === item.id, @@ -99,8 +99,6 @@ function createGroupedSpreadsheet({ ) .reduce((a, v) => (a = a + v.amount), 0); groupedDebts += monthDebts; - - return null; }); totalAssets += groupedAssets; @@ -146,5 +144,3 @@ function createGroupedSpreadsheet({ ); }; } - -export default createGroupedSpreadsheet; diff --git a/packages/desktop-client/src/components/reports/spreadsheets/makeQuery.ts b/packages/desktop-client/src/components/reports/spreadsheets/makeQuery.ts index 6d6ee2ca349..02e748f6d28 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/makeQuery.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/makeQuery.ts @@ -1,7 +1,7 @@ -import q from 'loot-core/src/client/query-helpers'; +import { q } from 'loot-core/src/shared/query'; import { type CategoryEntity } from 'loot-core/src/types/models'; -function makeQuery( +export function makeQuery( name: string, startDate: string, endDate: string, @@ -82,5 +82,3 @@ function makeQuery( { amount: { $sum: '$amount' } }, ]); } - -export default makeQuery; diff --git a/packages/desktop-client/src/components/reports/spreadsheets/net-worth-spreadsheet.ts b/packages/desktop-client/src/components/reports/spreadsheets/net-worth-spreadsheet.ts index 328f8354f03..bd5f9c3599e 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/net-worth-spreadsheet.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/net-worth-spreadsheet.ts @@ -1,8 +1,9 @@ import * as d from 'date-fns'; -import q, { runQuery } from 'loot-core/src/client/query-helpers'; +import { runQuery } from 'loot-core/src/client/query-helpers'; import { send } from 'loot-core/src/platform/client/fetch'; import * as monthUtils from 'loot-core/src/shared/months'; +import { q } from 'loot-core/src/shared/query'; import { integerToCurrency, integerToAmount, @@ -11,7 +12,7 @@ import { import { index } from '../util'; -export default function createSpreadsheet( +export function createSpreadsheet( start, end, accounts, diff --git a/packages/desktop-client/src/components/reports/spreadsheets/recalculate.ts b/packages/desktop-client/src/components/reports/spreadsheets/recalculate.ts index e6b516dfaef..1baf9d72c29 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/recalculate.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/recalculate.ts @@ -4,7 +4,7 @@ import { amountToInteger, integerToAmount } from 'loot-core/src/shared/util'; import { type QueryDataEntity } from '../ReportOptions'; -import filterHiddenItems from './filterHiddenItems'; +import { filterHiddenItems } from './filterHiddenItems'; type recalculateProps = { item; @@ -14,7 +14,7 @@ type recalculateProps = { groupByLabel: string; }; -function recalculate({ +export function recalculate({ item, months, assets, @@ -65,5 +65,3 @@ function recalculate({ monthData, }; } - -export default recalculate; diff --git a/packages/desktop-client/src/components/reports/spreadsheets/sankey-spreadsheet.ts b/packages/desktop-client/src/components/reports/spreadsheets/sankey-spreadsheet.ts index cafb5ae568f..88c929e7510 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/sankey-spreadsheet.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/sankey-spreadsheet.ts @@ -1,8 +1,9 @@ -import q, { runQuery } from 'loot-core/src/client/query-helpers'; +import { runQuery } from 'loot-core/src/client/query-helpers'; import { send } from 'loot-core/src/platform/client/fetch'; +import { q } from 'loot-core/src/shared/query'; import { integerToAmount } from 'loot-core/src/shared/util'; -export default function createSpreadsheet( +export function createSpreadsheet( start, end, categories, diff --git a/packages/desktop-client/src/components/reports/useReport.ts b/packages/desktop-client/src/components/reports/useReport.ts index 0e010d13517..f83f28e1237 100644 --- a/packages/desktop-client/src/components/reports/useReport.ts +++ b/packages/desktop-client/src/components/reports/useReport.ts @@ -2,7 +2,7 @@ import { useState, useEffect, type SetStateAction } from 'react'; import { useSpreadsheet } from 'loot-core/src/client/SpreadsheetProvider'; -function useReport( +export function useReport( sheetName: string, getData: ( spreadsheet: ReturnType, @@ -23,5 +23,3 @@ function useReport( }, [getData]); return results; } - -export default useReport; diff --git a/packages/desktop-client/src/components/responsive/PullToRefresh.tsx b/packages/desktop-client/src/components/responsive/PullToRefresh.tsx index 5dba845680d..20f4df91a65 100644 --- a/packages/desktop-client/src/components/responsive/PullToRefresh.tsx +++ b/packages/desktop-client/src/components/responsive/PullToRefresh.tsx @@ -5,7 +5,7 @@ import { css } from 'glamor'; type PullToRefreshProps = ComponentProps; -export default function PullToRefresh(props: PullToRefreshProps) { +export function PullToRefresh(props: PullToRefreshProps) { return (
void; }; -const RuleRow = memo( +export const RuleRow = memo( ({ rule, hovered, selected, onHover, onEditRule }: RuleRowProps) => { const dispatchSelected = useSelectedDispatch(); const borderColor = selected ? theme.tableBorderSelected : 'none'; @@ -93,7 +93,7 @@ const RuleRow = memo( - @@ -123,5 +123,3 @@ const RuleRow = memo( ); }, ); - -export default RuleRow; diff --git a/packages/desktop-client/src/components/rules/RulesHeader.tsx b/packages/desktop-client/src/components/rules/RulesHeader.tsx index a576c997ac3..c4dbfacf790 100644 --- a/packages/desktop-client/src/components/rules/RulesHeader.tsx +++ b/packages/desktop-client/src/components/rules/RulesHeader.tsx @@ -3,7 +3,7 @@ import React from 'react'; import { useSelectedItems, useSelectedDispatch } from '../../hooks/useSelected'; import { SelectCell, Cell, TableHeader } from '../table'; -export default function RulesHeader() { +export function RulesHeader() { const selectedItems = useSelectedItems(); const dispatchSelected = useSelectedDispatch(); diff --git a/packages/desktop-client/src/components/rules/RulesList.tsx b/packages/desktop-client/src/components/rules/RulesList.tsx index c56b58cbf8f..2fab1d2fba7 100644 --- a/packages/desktop-client/src/components/rules/RulesList.tsx +++ b/packages/desktop-client/src/components/rules/RulesList.tsx @@ -2,9 +2,9 @@ import React from 'react'; import { type RuleEntity } from 'loot-core/src/types/models'; -import View from '../common/View'; +import { View } from '../common/View'; -import RuleRow from './RuleRow'; +import { RuleRow } from './RuleRow'; type RulesListProps = { rules: RuleEntity[]; @@ -14,7 +14,7 @@ type RulesListProps = { onEditRule?: (rule: RuleEntity) => void; }; -export default function RulesList({ +export function RulesList({ rules, selectedItems, hoveredRule, diff --git a/packages/desktop-client/src/components/rules/ScheduleValue.tsx b/packages/desktop-client/src/components/rules/ScheduleValue.tsx index dd256a563d2..b547adad834 100644 --- a/packages/desktop-client/src/components/rules/ScheduleValue.tsx +++ b/packages/desktop-client/src/components/rules/ScheduleValue.tsx @@ -6,13 +6,13 @@ import { describeSchedule } from 'loot-core/src/shared/schedules'; import { type ScheduleEntity } from 'loot-core/src/types/models'; import { SchedulesQuery } from './SchedulesQuery'; -import Value from './Value'; +import { Value } from './Value'; type ScheduleValueProps = { value: ScheduleEntity; }; -export default function ScheduleValue({ value }: ScheduleValueProps) { +export function ScheduleValue({ value }: ScheduleValueProps) { const payees = useSelector(state => state.queries.payees); const byId = getPayeesById(payees); const { data: schedules } = SchedulesQuery.useQuery(); diff --git a/packages/desktop-client/src/components/rules/SchedulesQuery.ts b/packages/desktop-client/src/components/rules/SchedulesQuery.ts index ff3b196b0c7..fef486a7919 100644 --- a/packages/desktop-client/src/components/rules/SchedulesQuery.ts +++ b/packages/desktop-client/src/components/rules/SchedulesQuery.ts @@ -1,4 +1,4 @@ -import q from 'loot-core/src/client/query-helpers'; import { liveQueryContext } from 'loot-core/src/client/query-hooks'; +import { q } from 'loot-core/src/shared/query'; export const SchedulesQuery = liveQueryContext(q('schedules').select('*')); diff --git a/packages/desktop-client/src/components/rules/SimpleTable.tsx b/packages/desktop-client/src/components/rules/SimpleTable.tsx index 836a9ef8523..688afeec118 100644 --- a/packages/desktop-client/src/components/rules/SimpleTable.tsx +++ b/packages/desktop-client/src/components/rules/SimpleTable.tsx @@ -1,43 +1,37 @@ -import React, { type ReactNode, useEffect, useRef } from 'react'; +import React, { type ReactNode, type UIEvent, useRef } from 'react'; import { type CSSProperties } from '../../style'; -import View from '../common/View'; +import { View } from '../common/View'; type SimpleTableProps = { - data: unknown; loadMore?: () => void; style?: CSSProperties; onHoverLeave?: () => void; children: ReactNode; }; -export default function SimpleTable({ - data, +export function SimpleTable({ loadMore, style, onHoverLeave, children, }: SimpleTableProps) { const contentRef = useRef(); - const contentHeight = useRef(); const scrollRef = useRef(); - function onScroll(e) { - if (contentHeight.current != null) { - if (loadMore && e.target.scrollTop > contentHeight.current - 750) { - loadMore(); - } + function onScroll(e: UIEvent) { + if ( + loadMore && + Math.abs( + e.currentTarget.scrollHeight - + e.currentTarget.clientHeight - + e.currentTarget.scrollTop, + ) < 1 + ) { + loadMore(); } } - useEffect(() => { - if (contentRef.current) { - contentHeight.current = contentRef.current.getBoundingClientRect().height; - } else { - contentHeight.current = null; - } - }, [contentRef.current, data]); - return ( = { value: T; @@ -22,7 +22,7 @@ type ValueProps = { style?: CSSProperties; }; -export default function Value({ +export function Value({ value, field, valueIsRaw, diff --git a/packages/desktop-client/src/components/schedules/DiscoverSchedules.tsx b/packages/desktop-client/src/components/schedules/DiscoverSchedules.tsx index 713397ed29b..8352dc20867 100644 --- a/packages/desktop-client/src/components/schedules/DiscoverSchedules.tsx +++ b/packages/desktop-client/src/components/schedules/DiscoverSchedules.tsx @@ -1,27 +1,29 @@ import React, { useState } from 'react'; import { useSelector } from 'react-redux'; -import q, { runQuery } from 'loot-core/src/client/query-helpers'; +import { runQuery } from 'loot-core/src/client/query-helpers'; import { send } from 'loot-core/src/platform/client/fetch'; +import { q } from 'loot-core/src/shared/query'; import { getRecurringDescription } from 'loot-core/src/shared/schedules'; import type { DiscoverScheduleEntity } from 'loot-core/src/types/models'; import type { BoundActions } from '../../hooks/useActions'; -import useSelected, { +import { + useSelected, useSelectedDispatch, useSelectedItems, SelectedProvider, } from '../../hooks/useSelected'; -import useSendPlatformRequest from '../../hooks/useSendPlatformRequest'; +import { useSendPlatformRequest } from '../../hooks/useSendPlatformRequest'; import { theme } from '../../style'; import type { CommonModalProps } from '../../types/modals'; import { ButtonWithLoading } from '../common/Button'; -import Modal from '../common/Modal'; -import Paragraph from '../common/Paragraph'; -import Stack from '../common/Stack'; -import View from '../common/View'; +import { Modal } from '../common/Modal'; +import { Paragraph } from '../common/Paragraph'; +import { Stack } from '../common/Stack'; +import { View } from '../common/View'; import { Table, TableHeader, Row, Field, SelectCell } from '../table'; -import DisplayId from '../util/DisplayId'; +import { DisplayId } from '../util/DisplayId'; import { ScheduleAmountCell } from './SchedulesTable'; @@ -123,7 +125,7 @@ function DiscoverSchedulesTable({ ); } -export default function DiscoverSchedules({ +export function DiscoverSchedules({ modalProps, actions, }: { diff --git a/packages/desktop-client/src/components/schedules/PostsOfflineNotification.jsx b/packages/desktop-client/src/components/schedules/PostsOfflineNotification.jsx index 48c5c2d2edd..e4114113d06 100644 --- a/packages/desktop-client/src/components/schedules/PostsOfflineNotification.jsx +++ b/packages/desktop-client/src/components/schedules/PostsOfflineNotification.jsx @@ -4,14 +4,14 @@ import { useLocation } from 'react-router-dom'; import { send } from 'loot-core/src/platform/client/fetch'; import { theme } from '../../style'; -import Button from '../common/Button'; -import Modal from '../common/Modal'; -import Paragraph from '../common/Paragraph'; -import Stack from '../common/Stack'; -import Text from '../common/Text'; -import DisplayId from '../util/DisplayId'; +import { Button } from '../common/Button'; +import { Modal } from '../common/Modal'; +import { Paragraph } from '../common/Paragraph'; +import { Stack } from '../common/Stack'; +import { Text } from '../common/Text'; +import { DisplayId } from '../util/DisplayId'; -export default function PostsOfflineNotification({ modalProps, actions }) { +export function PostsOfflineNotification({ modalProps, actions }) { const location = useLocation(); const payees = (location.state && location.state.payees) || []; diff --git a/packages/desktop-client/src/components/schedules/EditSchedule.jsx b/packages/desktop-client/src/components/schedules/ScheduleDetails.jsx similarity index 96% rename from packages/desktop-client/src/components/schedules/EditSchedule.jsx rename to packages/desktop-client/src/components/schedules/ScheduleDetails.jsx index 5beaa5968c8..8459e937c03 100644 --- a/packages/desktop-client/src/components/schedules/EditSchedule.jsx +++ b/packages/desktop-client/src/components/schedules/ScheduleDetails.jsx @@ -3,28 +3,29 @@ import { useDispatch, useSelector } from 'react-redux'; import { pushModal } from 'loot-core/src/client/actions/modals'; import { useCachedPayees } from 'loot-core/src/client/data-hooks/payees'; -import q, { runQuery, liveQuery } from 'loot-core/src/client/query-helpers'; +import { runQuery, liveQuery } from 'loot-core/src/client/query-helpers'; import { send, sendCatch } from 'loot-core/src/platform/client/fetch'; import * as monthUtils from 'loot-core/src/shared/months'; +import { q } from 'loot-core/src/shared/query'; import { extractScheduleConds } from 'loot-core/src/shared/schedules'; -import useSelected, { SelectedProvider } from '../../hooks/useSelected'; +import { useSelected, SelectedProvider } from '../../hooks/useSelected'; import { theme } from '../../style'; -import AccountAutocomplete from '../autocomplete/AccountAutocomplete'; -import PayeeAutocomplete from '../autocomplete/PayeeAutocomplete'; -import Button from '../common/Button'; -import Modal from '../common/Modal'; -import Stack from '../common/Stack'; -import Text from '../common/Text'; -import View from '../common/View'; +import { AccountAutocomplete } from '../autocomplete/AccountAutocomplete'; +import { PayeeAutocomplete } from '../autocomplete/PayeeAutocomplete'; +import { Button } from '../common/Button'; +import { Modal } from '../common/Modal'; +import { Stack } from '../common/Stack'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; import { FormField, FormLabel, Checkbox } from '../forms'; import { OpSelect } from '../modals/EditRule'; -import DateSelect from '../select/DateSelect'; -import RecurringSchedulePicker from '../select/RecurringSchedulePicker'; +import { DateSelect } from '../select/DateSelect'; +import { RecurringSchedulePicker } from '../select/RecurringSchedulePicker'; import { SelectedItemsButton } from '../table'; -import SimpleTransactionsTable from '../transactions/SimpleTransactionsTable'; +import { SimpleTransactionsTable } from '../transactions/SimpleTransactionsTable'; import { AmountInput, BetweenAmountInput } from '../util/AmountInput'; -import GenericInput from '../util/GenericInput'; +import { GenericInput } from '../util/GenericInput'; function updateScheduleConditions(schedule, fields) { const conds = extractScheduleConds(schedule._conditions); @@ -66,7 +67,7 @@ function updateScheduleConditions(schedule, fields) { }; } -export default function ScheduleDetails({ modalProps, actions, id }) { +export function ScheduleDetails({ modalProps, actions, id }) { const adding = id == null; const payees = useCachedPayees({ idKey: true }); const globalDispatch = useDispatch(); diff --git a/packages/desktop-client/src/components/schedules/LinkSchedule.tsx b/packages/desktop-client/src/components/schedules/ScheduleLink.tsx similarity index 92% rename from packages/desktop-client/src/components/schedules/LinkSchedule.tsx rename to packages/desktop-client/src/components/schedules/ScheduleLink.tsx index dc83aa1103a..3c3964508ad 100644 --- a/packages/desktop-client/src/components/schedules/LinkSchedule.tsx +++ b/packages/desktop-client/src/components/schedules/ScheduleLink.tsx @@ -6,14 +6,14 @@ import { type Query } from 'loot-core/src/shared/query'; import { type BoundActions } from '../../hooks/useActions'; import { type CommonModalProps } from '../../types/modals'; -import Modal from '../common/Modal'; -import Search from '../common/Search'; -import Text from '../common/Text'; -import View from '../common/View'; +import { Modal } from '../common/Modal'; +import { Search } from '../common/Search'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; import { ROW_HEIGHT, SchedulesTable } from './SchedulesTable'; -export default function ScheduleLink({ +export function ScheduleLink({ modalProps, actions, transactionIds: ids, diff --git a/packages/desktop-client/src/components/schedules/SchedulesTable.tsx b/packages/desktop-client/src/components/schedules/SchedulesTable.tsx index 149cb6fd188..e6559bed99b 100644 --- a/packages/desktop-client/src/components/schedules/SchedulesTable.tsx +++ b/packages/desktop-client/src/components/schedules/SchedulesTable.tsx @@ -12,17 +12,17 @@ import { getScheduledAmount } from 'loot-core/src/shared/schedules'; import { integerToCurrency } from 'loot-core/src/shared/util'; import { type ScheduleEntity } from 'loot-core/src/types/models'; -import DotsHorizontalTriple from '../../icons/v1/DotsHorizontalTriple'; -import Check from '../../icons/v2/Check'; +import { SvgDotsHorizontalTriple } from '../../icons/v1'; +import { SvgCheck } from '../../icons/v2'; import { theme } from '../../style'; -import Button from '../common/Button'; -import Menu from '../common/Menu'; -import Text from '../common/Text'; -import View from '../common/View'; -import PrivacyFilter from '../PrivacyFilter'; +import { Button } from '../common/Button'; +import { Menu } from '../common/Menu'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; +import { PrivacyFilter } from '../PrivacyFilter'; import { Table, TableHeader, Row, Field, Cell } from '../table'; import { Tooltip } from '../tooltips'; -import DisplayId from '../util/DisplayId'; +import { DisplayId } from '../util/DisplayId'; import { StatusBadge } from './StatusBadge'; @@ -104,7 +104,7 @@ function OverflowMenu({ setOpen(true); }} > - setOpen(false)} > { + onMenuSelect={name => { onAction(name, schedule.id); setOpen(false); }} @@ -297,7 +297,7 @@ export function SchedulesTable({ {!minimal && ( {schedule._date && schedule._date.frequency && ( - + )} )} diff --git a/packages/desktop-client/src/components/schedules/StatusBadge.tsx b/packages/desktop-client/src/components/schedules/StatusBadge.tsx index 1b018e48361..ef95897853c 100644 --- a/packages/desktop-client/src/components/schedules/StatusBadge.tsx +++ b/packages/desktop-client/src/components/schedules/StatusBadge.tsx @@ -3,17 +3,19 @@ import React from 'react'; import { type ScheduleStatusType } from 'loot-core/src/client/data-hooks/schedules'; import { titleFirst } from 'loot-core/src/shared/util'; -import AlertTriangle from '../../icons/v2/AlertTriangle'; -import CalendarIcon from '../../icons/v2/Calendar'; -import CheckCircle1 from '../../icons/v2/CheckCircle1'; -import CheckCircleHollow from '../../icons/v2/CheckCircleHollow'; -import EditSkull1 from '../../icons/v2/EditSkull1'; -import FavoriteStar from '../../icons/v2/FavoriteStar'; -import Lock from '../../icons/v2/LockClosed'; -import ValidationCheck from '../../icons/v2/ValidationCheck'; +import { + SvgAlertTriangle, + SvgCalendar, + SvgCheckCircle1, + SvgCheckCircleHollow, + SvgEditSkull1, + SvgFavoriteStar, + SvgLockClosed, + SvgValidationCheck, +} from '../../icons/v2'; import { theme } from '../../style'; -import Text from '../common/Text'; -import View from '../common/View'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; // Consists of Schedule Statuses + Transaction statuses type StatusTypes = ScheduleStatusType | 'cleared' | 'pending' | 'reconciled'; @@ -23,61 +25,61 @@ export function getStatusProps(status: StatusTypes) { return { color: theme.errorTextDarker, backgroundColor: theme.errorBackground, - Icon: EditSkull1, + Icon: SvgEditSkull1, }; case 'due': return { color: theme.warningTextDark, backgroundColor: theme.warningBackground, - Icon: AlertTriangle, + Icon: SvgAlertTriangle, }; case 'upcoming': return { color: theme.upcomingText, backgroundColor: theme.upcomingBackground, - Icon: CalendarIcon, + Icon: SvgCalendar, }; case 'paid': return { color: theme.noticeText, backgroundColor: theme.noticeBackgroundLight, - Icon: ValidationCheck, + Icon: SvgValidationCheck, }; case 'completed': return { color: theme.tableHeaderText, backgroundColor: theme.tableRowHeaderBackground, - Icon: FavoriteStar, + Icon: SvgFavoriteStar, }; case 'pending': return { color: theme.noticeTextLight, backgroundColor: theme.noticeBackgroundLight, - Icon: CalendarIcon, + Icon: SvgCalendar, }; case 'scheduled': return { color: theme.tableRowHeaderText, backgroundColor: theme.tableRowHeaderBackground, - Icon: CalendarIcon, + Icon: SvgCalendar, }; case 'cleared': return { color: theme.noticeTextLight, backgroundColor: theme.tableRowHeaderBackground, - Icon: CheckCircle1, + Icon: SvgCheckCircle1, }; case 'reconciled': return { color: theme.noticeTextLight, backgroundColor: theme.tableRowHeaderBackground, - Icon: Lock, + Icon: SvgLockClosed, }; default: return { color: theme.buttonNormalDisabledText, backgroundColor: theme.tableRowHeaderBackground, - Icon: CheckCircleHollow, + Icon: SvgCheckCircleHollow, }; } } diff --git a/packages/desktop-client/src/components/schedules/index.tsx b/packages/desktop-client/src/components/schedules/index.tsx index a4fb235e77d..d04809cbd04 100644 --- a/packages/desktop-client/src/components/schedules/index.tsx +++ b/packages/desktop-client/src/components/schedules/index.tsx @@ -6,14 +6,14 @@ import { type ScheduleEntity } from 'loot-core/src/types/models'; import { useActions } from '../../hooks/useActions'; import { theme } from '../../style'; -import Button from '../common/Button'; -import Search from '../common/Search'; -import View from '../common/View'; +import { Button } from '../common/Button'; +import { Search } from '../common/Search'; +import { View } from '../common/View'; import { Page } from '../Page'; import { SchedulesTable, type ScheduleItemAction } from './SchedulesTable'; -export default function Schedules() { +export function Schedules() { const { pushModal } = useActions(); const [filter, setFilter] = useState(''); diff --git a/packages/desktop-client/src/components/select/DateSelect.tsx b/packages/desktop-client/src/components/select/DateSelect.tsx index 0e3754bf2cc..d1438bf09c0 100644 --- a/packages/desktop-client/src/components/select/DateSelect.tsx +++ b/packages/desktop-client/src/components/select/DateSelect.tsx @@ -26,8 +26,8 @@ import { import { stringToInteger } from 'loot-core/src/shared/util'; import { type CSSProperties, theme } from '../../style'; -import Input, { type InputProps } from '../common/Input'; -import View, { type ViewProps } from '../common/View'; +import { Input, type InputProps } from '../common/Input'; +import { View, type ViewProps } from '../common/View'; import { Tooltip } from '../tooltips'; import DateSelectLeft from './DateSelect.left.png'; @@ -184,7 +184,7 @@ type DateSelectProps = { onSelect: (selectedDate: string) => void; }; -export default function DateSelect({ +export function DateSelect({ containerProps, inputProps, tooltipStyle, diff --git a/packages/desktop-client/src/components/select/RecurringSchedulePicker.jsx b/packages/desktop-client/src/components/select/RecurringSchedulePicker.jsx index 0bfd696308d..8db4a940ae6 100644 --- a/packages/desktop-client/src/components/select/RecurringSchedulePicker.jsx +++ b/packages/desktop-client/src/components/select/RecurringSchedulePicker.jsx @@ -5,19 +5,18 @@ import { sendCatch } from 'loot-core/src/platform/client/fetch'; import * as monthUtils from 'loot-core/src/shared/months'; import { getRecurringDescription } from 'loot-core/src/shared/schedules'; -import AddIcon from '../../icons/v0/Add'; -import SubtractIcon from '../../icons/v0/Subtract'; +import { SvgAdd, SvgSubtract } from '../../icons/v0'; import { theme } from '../../style'; -import Button from '../common/Button'; -import Input from '../common/Input'; -import Select from '../common/Select'; -import Stack from '../common/Stack'; -import Text from '../common/Text'; -import View from '../common/View'; +import { Button } from '../common/Button'; +import { Input } from '../common/Input'; +import { Select } from '../common/Select'; +import { Stack } from '../common/Stack'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; import { Checkbox } from '../forms'; import { useTooltip, Tooltip } from '../tooltips'; -import DateSelect from './DateSelect'; +import { DateSelect } from './DateSelect'; // ex: There is no 6th Friday of the Month const MAX_DAY_OF_WEEK_INTERVAL = 5; @@ -256,7 +255,7 @@ function MonthlyPatterns({ config, dispatch }) { }) } > - + ))} @@ -479,11 +478,7 @@ function RecurringScheduleTooltip({ config: currentConfig, onClose, onSave }) { ); } -export default function RecurringSchedulePicker({ - value, - buttonStyle, - onChange, -}) { +export function RecurringSchedulePicker({ value, buttonStyle, onChange }) { const { isOpen, close, getOpenEvents } = useTooltip(); const dateFormat = useSelector( state => state.prefs.local.dateFormat || 'MM/dd/yyyy', diff --git a/packages/desktop-client/src/components/settings/Encryption.tsx b/packages/desktop-client/src/components/settings/Encryption.tsx index 9c5636793b6..4ed788ede6c 100644 --- a/packages/desktop-client/src/components/settings/Encryption.tsx +++ b/packages/desktop-client/src/components/settings/Encryption.tsx @@ -3,14 +3,14 @@ import { useSelector } from 'react-redux'; import { useActions } from '../../hooks/useActions'; import { theme } from '../../style'; -import Button from '../common/Button'; -import ExternalLink from '../common/ExternalLink'; -import Text from '../common/Text'; +import { Button } from '../common/Button'; +import { ExternalLink } from '../common/ExternalLink'; +import { Text } from '../common/Text'; import { useServerURL } from '../ServerContext'; import { Setting } from './UI'; -export default function EncryptionSettings() { +export function EncryptionSettings() { const { pushModal } = useActions(); const serverURL = useServerURL(); const encryptKeyId = useSelector(state => state.prefs.local.encryptKeyId); diff --git a/packages/desktop-client/src/components/settings/Experimental.tsx b/packages/desktop-client/src/components/settings/Experimental.tsx index e82840a4a77..273c1c21671 100644 --- a/packages/desktop-client/src/components/settings/Experimental.tsx +++ b/packages/desktop-client/src/components/settings/Experimental.tsx @@ -4,11 +4,11 @@ import { useSelector } from 'react-redux'; import type { FeatureFlag } from 'loot-core/src/types/prefs'; import { useActions } from '../../hooks/useActions'; -import useFeatureFlag from '../../hooks/useFeatureFlag'; +import { useFeatureFlag } from '../../hooks/useFeatureFlag'; import { theme } from '../../style'; -import LinkButton from '../common/LinkButton'; -import Text from '../common/Text'; -import View from '../common/View'; +import { LinkButton } from '../common/LinkButton'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; import { Checkbox } from '../forms'; import { Setting } from './UI'; @@ -75,7 +75,7 @@ function ReportBudgetFeature() { ); } -export default function ExperimentalFeatures() { +export function ExperimentalFeatures() { const [expanded, setExpanded] = useState(false); return ( diff --git a/packages/desktop-client/src/components/settings/Export.tsx b/packages/desktop-client/src/components/settings/Export.tsx index ee3f8864f05..c3e46493b7a 100644 --- a/packages/desktop-client/src/components/settings/Export.tsx +++ b/packages/desktop-client/src/components/settings/Export.tsx @@ -6,13 +6,13 @@ import { format } from 'date-fns'; import { send } from 'loot-core/src/platform/client/fetch'; import { theme } from '../../style'; -import Block from '../common/Block'; +import { Block } from '../common/Block'; import { ButtonWithLoading } from '../common/Button'; -import Text from '../common/Text'; +import { Text } from '../common/Text'; import { Setting } from './UI'; -export default function ExportBudget() { +export function ExportBudget() { const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(null); const budgetId = useSelector(state => state.prefs.local.id); diff --git a/packages/desktop-client/src/components/settings/FixSplits.tsx b/packages/desktop-client/src/components/settings/FixSplits.tsx index 85c71fd3522..3352f0c5d9a 100644 --- a/packages/desktop-client/src/components/settings/FixSplits.tsx +++ b/packages/desktop-client/src/components/settings/FixSplits.tsx @@ -5,9 +5,9 @@ import { type Handlers } from 'loot-core/src/types/handlers'; import { theme } from '../../style'; import { ButtonWithLoading } from '../common/Button'; -import Paragraph from '../common/Paragraph'; -import Text from '../common/Text'; -import View from '../common/View'; +import { Paragraph } from '../common/Paragraph'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; import { Setting } from './UI'; @@ -51,7 +51,7 @@ function renderResults(results: Results) { ); } -export default function FixSplitsTool() { +export function FixSplits() { const [loading, setLoading] = useState(false); const [results, setResults] = useState(null); diff --git a/packages/desktop-client/src/components/settings/Format.tsx b/packages/desktop-client/src/components/settings/Format.tsx index 995d2af3fa8..43ea10cfc6e 100644 --- a/packages/desktop-client/src/components/settings/Format.tsx +++ b/packages/desktop-client/src/components/settings/Format.tsx @@ -5,11 +5,11 @@ import { numberFormats } from 'loot-core/src/shared/util'; import { type LocalPrefs } from 'loot-core/src/types/prefs'; import { useActions } from '../../hooks/useActions'; -import tokens from '../../tokens'; -import Button from '../common/Button'; -import Select from '../common/Select'; -import Text from '../common/Text'; -import View from '../common/View'; +import { tokens } from '../../tokens'; +import { Button } from '../common/Button'; +import { Select } from '../common/Select'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; import { Checkbox } from '../forms'; import { useSidebar } from '../sidebar'; @@ -52,7 +52,7 @@ function Column({ title, children }: { title: string; children: ReactNode }) { ); } -export default function FormatSettings() { +export function FormatSettings() { const { savePrefs } = useActions(); const sidebar = useSidebar(); diff --git a/packages/desktop-client/src/components/settings/Global.tsx b/packages/desktop-client/src/components/settings/Global.tsx index 0a28d43d1c9..96a8c4090bc 100644 --- a/packages/desktop-client/src/components/settings/Global.tsx +++ b/packages/desktop-client/src/components/settings/Global.tsx @@ -4,13 +4,13 @@ import { useSelector } from 'react-redux'; import { useActions } from '../../hooks/useActions'; import { theme } from '../../style'; import { Information } from '../alerts'; -import Button from '../common/Button'; -import Text from '../common/Text'; -import View from '../common/View'; +import { Button } from '../common/Button'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; import { Setting } from './UI'; -export default function GlobalSettings() { +export function GlobalSettings() { const documentDir = useSelector(state => state.prefs.global.documentDir); const { saveGlobalPrefs } = useActions(); diff --git a/packages/desktop-client/src/components/settings/Reset.tsx b/packages/desktop-client/src/components/settings/Reset.tsx index 189e5a11973..fd8875a844f 100644 --- a/packages/desktop-client/src/components/settings/Reset.tsx +++ b/packages/desktop-client/src/components/settings/Reset.tsx @@ -5,7 +5,7 @@ import { send } from 'loot-core/src/platform/client/fetch'; import { useActions } from '../../hooks/useActions'; import { ButtonWithLoading } from '../common/Button'; -import Text from '../common/Text'; +import { Text } from '../common/Text'; import { Setting } from './UI'; diff --git a/packages/desktop-client/src/components/settings/Themes.tsx b/packages/desktop-client/src/components/settings/Themes.tsx index c43a1447e2c..775ef525340 100644 --- a/packages/desktop-client/src/components/settings/Themes.tsx +++ b/packages/desktop-client/src/components/settings/Themes.tsx @@ -2,13 +2,13 @@ import React from 'react'; import { useActions } from '../../hooks/useActions'; import { themeOptions, useTheme } from '../../style'; -import Button from '../common/Button'; -import Select from '../common/Select'; -import Text from '../common/Text'; +import { Button } from '../common/Button'; +import { Select } from '../common/Select'; +import { Text } from '../common/Text'; import { Setting } from './UI'; -export default function ThemeSettings() { +export function ThemeSettings() { const theme = useTheme(); const { saveGlobalPrefs } = useActions(); diff --git a/packages/desktop-client/src/components/settings/UI.tsx b/packages/desktop-client/src/components/settings/UI.tsx index 60adc092c40..ab09721b633 100644 --- a/packages/desktop-client/src/components/settings/UI.tsx +++ b/packages/desktop-client/src/components/settings/UI.tsx @@ -4,9 +4,9 @@ import { useLocation } from 'react-router-dom'; import { css, media } from 'glamor'; import { type CSSProperties, theme } from '../../style'; -import tokens from '../../tokens'; -import Button from '../common/Button'; -import View from '../common/View'; +import { tokens } from '../../tokens'; +import { Button } from '../common/Button'; +import { View } from '../common/View'; type SettingProps = { primaryAction?: ReactNode; diff --git a/packages/desktop-client/src/components/settings/index.tsx b/packages/desktop-client/src/components/settings/index.tsx index eb8cefd0a9c..73afbec5ba0 100644 --- a/packages/desktop-client/src/components/settings/index.tsx +++ b/packages/desktop-client/src/components/settings/index.tsx @@ -7,28 +7,28 @@ import * as Platform from 'loot-core/src/client/platform'; import { listen } from 'loot-core/src/platform/client/fetch'; import { useActions } from '../../hooks/useActions'; -import useLatestVersion, { useIsOutdated } from '../../hooks/useLatestVersion'; +import { useLatestVersion, useIsOutdated } from '../../hooks/useLatestVersion'; import { useSetThemeColor } from '../../hooks/useSetThemeColor'; import { useResponsive } from '../../ResponsiveProvider'; import { theme } from '../../style'; -import tokens from '../../tokens'; -import Button from '../common/Button'; -import ExternalLink from '../common/ExternalLink'; -import Input from '../common/Input'; -import Text from '../common/Text'; -import View from '../common/View'; +import { tokens } from '../../tokens'; +import { Button } from '../common/Button'; +import { ExternalLink } from '../common/ExternalLink'; +import { Input } from '../common/Input'; +import { Text } from '../common/Text'; +import { View } from '../common/View'; import { FormField, FormLabel } from '../forms'; import { Page } from '../Page'; import { useServerVersion } from '../ServerContext'; -import EncryptionSettings from './Encryption'; -import ExperimentalFeatures from './Experimental'; -import ExportBudget from './Export'; -import FixSplitsTool from './FixSplits'; -import FormatSettings from './Format'; -import GlobalSettings from './Global'; +import { EncryptionSettings } from './Encryption'; +import { ExperimentalFeatures } from './Experimental'; +import { ExportBudget } from './Export'; +import { FixSplits } from './FixSplits'; +import { FormatSettings } from './Format'; +import { GlobalSettings } from './Global'; import { ResetCache, ResetSync } from './Reset'; -import ThemeSettings from './Themes'; +import { ThemeSettings } from './Themes'; import { AdvancedToggle, Setting } from './UI'; function About() { @@ -116,7 +116,7 @@ function AdvancedAbout() { ); } -export default function Settings() { +export function Settings() { const floatingSidebar = useSelector( state => state.prefs.global.floatingSidebar, ); @@ -175,7 +175,7 @@ export default function Settings() { - + diff --git a/packages/desktop-client/src/components/sidebar/Account.tsx b/packages/desktop-client/src/components/sidebar/Account.tsx index d0f7ef70105..d079d6d6287 100644 --- a/packages/desktop-client/src/components/sidebar/Account.tsx +++ b/packages/desktop-client/src/components/sidebar/Account.tsx @@ -5,9 +5,9 @@ import { css } from 'glamor'; import { type AccountEntity } from 'loot-core/src/types/models'; import { styles, theme, type CSSProperties } from '../../style'; -import AlignedText from '../common/AlignedText'; -import AnchorLink from '../common/AnchorLink'; -import View from '../common/View'; +import { AlignedText } from '../common/AlignedText'; +import { AnchorLink } from '../common/AnchorLink'; +import { View } from '../common/View'; import { useDraggable, useDroppable, @@ -16,7 +16,7 @@ import { type OnDropCallback, } from '../sort'; import { type Binding } from '../spreadsheet'; -import CellValue from '../spreadsheet/CellValue'; +import { CellValue } from '../spreadsheet/CellValue'; export const accountNameStyle: CSSProperties = { marginTop: -2, @@ -45,7 +45,7 @@ type AccountProps = { onDrop?: OnDropCallback; }; -function Account({ +export function Account({ name, account, connected, @@ -144,5 +144,3 @@ function Account({ ); } - -export default Account; diff --git a/packages/desktop-client/src/components/sidebar/Accounts.tsx b/packages/desktop-client/src/components/sidebar/Accounts.tsx index e15559709b2..245f6212fc7 100644 --- a/packages/desktop-client/src/components/sidebar/Accounts.tsx +++ b/packages/desktop-client/src/components/sidebar/Accounts.tsx @@ -2,13 +2,13 @@ import React, { useState, useMemo } from 'react'; import { type AccountEntity } from 'loot-core/src/types/models'; -import Add from '../../icons/v1/Add'; -import View from '../common/View'; +import { SvgAdd } from '../../icons/v1'; +import { View } from '../common/View'; import { type OnDropCallback } from '../sort'; import { type Binding } from '../spreadsheet'; -import Account from './Account'; -import SecondaryItem from './SecondaryItem'; +import { Account } from './Account'; +import { SecondaryItem } from './SecondaryItem'; const fontWeight = 600; @@ -36,7 +36,7 @@ type AccountsProps = { onReorder: OnDropCallback; }; -function Accounts({ +export function Accounts({ accounts, failedAccounts, updatedAccounts, @@ -174,11 +174,9 @@ function Accounts({ marginBottom: 9, }} onClick={onAddAccount} - Icon={Add} + Icon={SvgAdd} title="Add account" /> ); } - -export default Accounts; diff --git a/packages/desktop-client/src/components/sidebar/Item.tsx b/packages/desktop-client/src/components/sidebar/Item.tsx index 043e44d4123..3c6a1c4f0f6 100644 --- a/packages/desktop-client/src/components/sidebar/Item.tsx +++ b/packages/desktop-client/src/components/sidebar/Item.tsx @@ -6,10 +6,10 @@ import React, { } from 'react'; import { styles, theme, type CSSProperties } from '../../style'; -import Block from '../common/Block'; -import View from '../common/View'; +import { Block } from '../common/Block'; +import { View } from '../common/View'; -import ItemContent from './ItemContent'; +import { ItemContent } from './ItemContent'; type ItemProps = { title: string; @@ -25,7 +25,7 @@ type ItemProps = { forceActive?: boolean; }; -function Item({ +export function Item({ children, Icon, title, @@ -83,5 +83,3 @@ function Item({ ); } - -export default Item; diff --git a/packages/desktop-client/src/components/sidebar/ItemContent.tsx b/packages/desktop-client/src/components/sidebar/ItemContent.tsx index 3724a0a22e5..6a4a50423bc 100644 --- a/packages/desktop-client/src/components/sidebar/ItemContent.tsx +++ b/packages/desktop-client/src/components/sidebar/ItemContent.tsx @@ -1,8 +1,8 @@ import React, { type MouseEventHandler, type ReactNode } from 'react'; import { type CSSProperties } from '../../style'; -import AnchorLink from '../common/AnchorLink'; -import View from '../common/View'; +import { AnchorLink } from '../common/AnchorLink'; +import { View } from '../common/View'; type ItemContentProps = { style: CSSProperties; @@ -13,7 +13,7 @@ type ItemContentProps = { forceActive?: boolean; }; -function ItemContent({ +export function ItemContent({ style, to, onClick, @@ -43,5 +43,3 @@ function ItemContent({ ); } - -export default ItemContent; diff --git a/packages/desktop-client/src/components/sidebar/SecondaryItem.tsx b/packages/desktop-client/src/components/sidebar/SecondaryItem.tsx index 0780acbfb4e..0203532e68f 100644 --- a/packages/desktop-client/src/components/sidebar/SecondaryItem.tsx +++ b/packages/desktop-client/src/components/sidebar/SecondaryItem.tsx @@ -5,11 +5,11 @@ import React, { } from 'react'; import { theme, type CSSProperties } from '../../style'; -import Block from '../common/Block'; -import View from '../common/View'; +import { Block } from '../common/Block'; +import { View } from '../common/View'; import { accountNameStyle } from './Account'; -import ItemContent from './ItemContent'; +import { ItemContent } from './ItemContent'; const fontWeight = 600; @@ -25,7 +25,7 @@ type SecondaryItemProps = { indent?: number; }; -function SecondaryItem({ +export function SecondaryItem({ Icon, title, style, @@ -73,5 +73,3 @@ function SecondaryItem({ ); } - -export default SecondaryItem; diff --git a/packages/desktop-client/src/components/sidebar/Sidebar.tsx b/packages/desktop-client/src/components/sidebar/Sidebar.tsx index c6aa9435979..dadd3ba95fc 100644 --- a/packages/desktop-client/src/components/sidebar/Sidebar.tsx +++ b/packages/desktop-client/src/components/sidebar/Sidebar.tsx @@ -3,18 +3,17 @@ import React, { type ReactNode } from 'react'; import * as Platform from 'loot-core/src/client/platform'; import { type AccountEntity } from 'loot-core/src/types/models'; -import Reports from '../../icons/v1/Reports'; -import Wallet from '../../icons/v1/Wallet'; -import CalendarIcon from '../../icons/v2/Calendar'; +import { SvgReports, SvgWallet } from '../../icons/v1'; +import { SvgCalendar } from '../../icons/v2'; import { type CSSProperties, theme } from '../../style'; -import View from '../common/View'; +import { View } from '../common/View'; import { type OnDropCallback } from '../sort'; import { type Binding } from '../spreadsheet'; -import Accounts from './Accounts'; -import Item from './Item'; -import ToggleButton from './ToggleButton'; -import Tools from './Tools'; +import { Accounts } from './Accounts'; +import { Item } from './Item'; +import { ToggleButton } from './ToggleButton'; +import { Tools } from './Tools'; import { useSidebar } from '.'; @@ -44,7 +43,7 @@ type SidebarProps = { onReorder: OnDropCallback; }; -function Sidebar({ +export function Sidebar({ style, budgetName, accounts, @@ -107,10 +106,10 @@ function Sidebar({ - - + + - + @@ -144,5 +143,3 @@ function Sidebar({ ); } - -export default Sidebar; diff --git a/packages/desktop-client/src/components/sidebar/SidebarWithData.tsx b/packages/desktop-client/src/components/sidebar/SidebarWithData.tsx index 3ea71ba13f9..34886999c92 100644 --- a/packages/desktop-client/src/components/sidebar/SidebarWithData.tsx +++ b/packages/desktop-client/src/components/sidebar/SidebarWithData.tsx @@ -8,17 +8,17 @@ import { send } from 'loot-core/src/platform/client/fetch'; import { type LocalPrefs } from 'loot-core/src/types/prefs'; import { useActions } from '../../hooks/useActions'; -import useNavigate from '../../hooks/useNavigate'; -import ExpandArrow from '../../icons/v0/ExpandArrow'; +import { useNavigate } from '../../hooks/useNavigate'; +import { SvgExpandArrow } from '../../icons/v0'; import { styles, theme } from '../../style'; -import Button from '../common/Button'; -import InitialFocus from '../common/InitialFocus'; -import Input from '../common/Input'; -import Menu from '../common/Menu'; -import Text from '../common/Text'; +import { Button } from '../common/Button'; +import { InitialFocus } from '../common/InitialFocus'; +import { Input } from '../common/Input'; +import { Menu } from '../common/Menu'; +import { Text } from '../common/Text'; import { Tooltip } from '../tooltips'; -import Sidebar from './Sidebar'; +import { Sidebar } from './Sidebar'; type EditableBudgetNameProps = { prefs: LocalPrefs; @@ -98,7 +98,7 @@ function EditableBudgetName({ prefs, savePrefs }: EditableBudgetNameProps) { {prefs.budgetName || 'A budget has no name'} - + {menuOpen && ( state.queries.accounts); const failedAccounts = useSelector(state => state.account.failedAccounts); const updatedAccounts = useSelector(state => state.queries.updatedAccounts); @@ -164,5 +164,3 @@ function SidebarWithData() { /> ); } - -export default SidebarWithData; diff --git a/packages/desktop-client/src/components/sidebar/ToggleButton.tsx b/packages/desktop-client/src/components/sidebar/ToggleButton.tsx index 69c7dfe4486..68375191e5d 100644 --- a/packages/desktop-client/src/components/sidebar/ToggleButton.tsx +++ b/packages/desktop-client/src/components/sidebar/ToggleButton.tsx @@ -1,10 +1,10 @@ import React, { type MouseEventHandler } from 'react'; -import Pin from '../../icons/v1/Pin'; -import ArrowButtonLeft1 from '../../icons/v2/ArrowButtonLeft1'; +import { SvgPin } from '../../icons/v1'; +import { SvgArrowButtonLeft1 } from '../../icons/v2'; import { type CSSProperties, theme } from '../../style'; -import Button from '../common/Button'; -import View from '../common/View'; +import { Button } from '../common/Button'; +import { View } from '../common/View'; type ToggleButtonProps = { isFloating: boolean; @@ -12,7 +12,11 @@ type ToggleButtonProps = { style?: CSSProperties; }; -function ToggleButton({ style, isFloating, onFloat }: ToggleButtonProps) { +export function ToggleButton({ + style, + isFloating, + onFloat, +}: ToggleButtonProps) { return ( ); } - -export default ToggleButton; diff --git a/packages/desktop-client/src/components/sidebar/Tools.tsx b/packages/desktop-client/src/components/sidebar/Tools.tsx index e8bad134a41..1b6b2c2399d 100644 --- a/packages/desktop-client/src/components/sidebar/Tools.tsx +++ b/packages/desktop-client/src/components/sidebar/Tools.tsx @@ -1,17 +1,19 @@ import React, { useState, useCallback, useEffect } from 'react'; import { useLocation } from 'react-router-dom'; -import CheveronDown from '../../icons/v1/CheveronDown'; -import CheveronRight from '../../icons/v1/CheveronRight'; -import Cog from '../../icons/v1/Cog'; -import StoreFrontIcon from '../../icons/v1/StoreFront'; -import TuningIcon from '../../icons/v1/Tuning'; -import View from '../common/View'; +import { + SvgCheveronDown, + SvgCheveronRight, + SvgCog, + SvgStoreFront, + SvgTuning, +} from '../../icons/v1'; +import { View } from '../common/View'; -import Item from './Item'; -import SecondaryItem from './SecondaryItem'; +import { Item } from './Item'; +import { SecondaryItem } from './SecondaryItem'; -function Tools() { +export function Tools() { const [isOpen, setOpen] = useState(false); const onToggle = useCallback(() => setOpen(open => !open), []); const location = useLocation(); @@ -30,7 +32,7 @@ function Tools() { @@ -60,5 +62,3 @@ function Tools() { ); } - -export default Tools; diff --git a/packages/desktop-client/src/components/sidebar/index.tsx b/packages/desktop-client/src/components/sidebar/index.tsx index 1ed74fb329e..f922f2b7156 100644 --- a/packages/desktop-client/src/components/sidebar/index.tsx +++ b/packages/desktop-client/src/components/sidebar/index.tsx @@ -10,10 +10,10 @@ import React, { import { useSelector } from 'react-redux'; import { useResponsive } from '../../ResponsiveProvider'; -import View from '../common/View'; +import { View } from '../common/View'; import { SIDEBAR_WIDTH } from './Sidebar'; -import SidebarWithData from './SidebarWithData'; +import { SidebarWithData } from './SidebarWithData'; type SidebarContextValue = { hidden: boolean; @@ -28,7 +28,7 @@ type SidebarProviderProps = { children: ReactNode; }; -function SidebarProvider({ children }: SidebarProviderProps) { +export function SidebarProvider({ children }: SidebarProviderProps) { const floatingSidebar = useSelector( state => state.prefs.global.floatingSidebar, ); @@ -46,7 +46,7 @@ function SidebarProvider({ children }: SidebarProviderProps) { ); } -function useSidebar() { +export function useSidebar() { const { hidden, setHidden, floating, alwaysFloats } = useContext(SidebarContext); @@ -56,7 +56,7 @@ function useSidebar() { ); } -function FloatableSidebar() { +export function FloatableSidebar() { const floatingSidebar = useSelector( state => state.prefs.global.floatingSidebar, ); @@ -103,6 +103,3 @@ function FloatableSidebar() { ); } - -export { SidebarProvider, useSidebar }; -export default FloatableSidebar; diff --git a/packages/desktop-client/src/components/sort.tsx b/packages/desktop-client/src/components/sort.tsx index a3ce6cb883c..6a0a84c97f2 100644 --- a/packages/desktop-client/src/components/sort.tsx +++ b/packages/desktop-client/src/components/sort.tsx @@ -12,7 +12,7 @@ import { useDrag, useDrop } from 'react-dnd'; import { useMergedRefs } from '../hooks/useMergedRefs'; import { theme } from '../style'; -import View from './common/View'; +import { View } from './common/View'; export type DragState = { state: 'start-preview' | 'start' | 'end'; diff --git a/packages/desktop-client/src/components/spreadsheet/CellValue.tsx b/packages/desktop-client/src/components/spreadsheet/CellValue.tsx index 02bee9c23db..34686b18221 100644 --- a/packages/desktop-client/src/components/spreadsheet/CellValue.tsx +++ b/packages/desktop-client/src/components/spreadsheet/CellValue.tsx @@ -1,15 +1,12 @@ -import React, { type ReactNode } from 'react'; +import React, { type ComponentProps, type ReactNode } from 'react'; import { type CSSProperties, styles } from '../../style'; -import Text from '../common/Text'; -import { - ConditionalPrivacyFilter, - type ConditionalPrivacyFilterProps, -} from '../PrivacyFilter'; +import { Text } from '../common/Text'; +import { ConditionalPrivacyFilter } from '../PrivacyFilter'; -import useFormat from './useFormat'; -import useSheetName from './useSheetName'; -import useSheetValue from './useSheetValue'; +import { useFormat } from './useFormat'; +import { useSheetName } from './useSheetName'; +import { useSheetValue } from './useSheetValue'; import { type Binding } from '.'; @@ -19,11 +16,13 @@ type CellValueProps = { formatter?: (value) => ReactNode; style?: CSSProperties; getStyle?: (value) => CSSProperties; - privacyFilter?: ConditionalPrivacyFilterProps['privacyFilter']; + privacyFilter?: ComponentProps< + typeof ConditionalPrivacyFilter + >['privacyFilter']; ['data-testid']?: string; }; -function CellValue({ +export function CellValue({ binding, type, formatter, @@ -62,5 +61,3 @@ function CellValue({ ); } - -export default CellValue; diff --git a/packages/desktop-client/src/components/spreadsheet/NamespaceContext.ts b/packages/desktop-client/src/components/spreadsheet/NamespaceContext.ts index f9241513802..9de034c71c9 100644 --- a/packages/desktop-client/src/components/spreadsheet/NamespaceContext.ts +++ b/packages/desktop-client/src/components/spreadsheet/NamespaceContext.ts @@ -1,3 +1,3 @@ import { createContext } from 'react'; -export default createContext(undefined); +export const NamespaceContext = createContext(undefined); diff --git a/packages/desktop-client/src/components/spreadsheet/useFormat.ts b/packages/desktop-client/src/components/spreadsheet/useFormat.ts index 2b9a1eb74ab..28d0c1f0bd1 100644 --- a/packages/desktop-client/src/components/spreadsheet/useFormat.ts +++ b/packages/desktop-client/src/components/spreadsheet/useFormat.ts @@ -45,7 +45,7 @@ function format( } } -export default function useFormat() { +export function useFormat() { const numberFormat = useSelector(selectNumberFormat); return useCallback( diff --git a/packages/desktop-client/src/components/spreadsheet/useSheetName.ts b/packages/desktop-client/src/components/spreadsheet/useSheetName.ts index 8b80e5ac28c..49a187a7c56 100644 --- a/packages/desktop-client/src/components/spreadsheet/useSheetName.ts +++ b/packages/desktop-client/src/components/spreadsheet/useSheetName.ts @@ -1,6 +1,6 @@ import { useContext } from 'react'; -import NamespaceContext from './NamespaceContext'; +import { NamespaceContext } from './NamespaceContext'; import { type Binding } from '.'; @@ -15,7 +15,7 @@ function unresolveName(name) { return { sheet: null, name }; } -export default function useSheetName(binding: Binding) { +export function useSheetName(binding: Binding) { if (!binding) { throw new Error('Sheet binding is required'); } diff --git a/packages/desktop-client/src/components/spreadsheet/useSheetValue.ts b/packages/desktop-client/src/components/spreadsheet/useSheetValue.ts index faac71e234c..845b543a4c9 100644 --- a/packages/desktop-client/src/components/spreadsheet/useSheetValue.ts +++ b/packages/desktop-client/src/components/spreadsheet/useSheetValue.ts @@ -2,14 +2,11 @@ import { useState, useRef, useLayoutEffect } from 'react'; import { useSpreadsheet } from 'loot-core/src/client/SpreadsheetProvider'; -import useSheetName from './useSheetName'; +import { useSheetName } from './useSheetName'; import { type Binding } from '.'; -export default function useSheetValue( - binding: Binding, - onChange?: (result) => void, -) { +export function useSheetValue(binding: Binding, onChange?: (result) => void) { const { sheetName, fullSheetName } = useSheetName(binding); const bindingObj = diff --git a/packages/desktop-client/src/components/table.tsx b/packages/desktop-client/src/components/table.tsx index 92e2e833a47..a2e72a7c9a8 100644 --- a/packages/desktop-client/src/components/table.tsx +++ b/packages/desktop-client/src/components/table.tsx @@ -22,27 +22,25 @@ import { useProperFocus, } from '../hooks/useProperFocus'; import { useSelectedItems } from '../hooks/useSelected'; -import AnimatedLoading from '../icons/AnimatedLoading'; -import DeleteIcon from '../icons/v0/Delete'; -import ExpandArrow from '../icons/v0/ExpandArrow'; -import Checkmark from '../icons/v1/Checkmark'; +import { AnimatedLoading } from '../icons/AnimatedLoading'; +import { SvgDelete, SvgExpandArrow } from '../icons/v0'; +import { SvgCheckmark } from '../icons/v1'; import { type CSSProperties, styles, theme } from '../style'; -import Button from './common/Button'; -import Input from './common/Input'; -import Menu from './common/Menu'; -import Text from './common/Text'; -import View from './common/View'; -import FixedSizeList from './FixedSizeList'; +import { Button } from './common/Button'; +import { Input } from './common/Input'; +import { Menu } from './common/Menu'; +import { Text } from './common/Text'; +import { View } from './common/View'; +import { FixedSizeList } from './FixedSizeList'; import { KeyHandlers } from './KeyHandlers'; import { ConditionalPrivacyFilter, mergeConditionalPrivacyFilterProps, - type ConditionalPrivacyFilterProps, } from './PrivacyFilter'; import { type Binding } from './spreadsheet'; -import useFormat from './spreadsheet/useFormat'; -import useSheetValue from './spreadsheet/useSheetValue'; +import { useFormat } from './spreadsheet/useFormat'; +import { useSheetValue } from './spreadsheet/useSheetValue'; import { Tooltip, IntersectionBoundary } from './tooltips'; export const ROW_HEIGHT = 32; @@ -142,7 +140,9 @@ type CellProps = Omit, 'children' | 'value'> & { value?: string; valueStyle?: CSSProperties; onExpose?: (name: string) => void; - privacyFilter?: ConditionalPrivacyFilterProps['privacyFilter']; + privacyFilter?: ComponentProps< + typeof ConditionalPrivacyFilter + >['privacyFilter']; }; export function Cell({ width, @@ -486,7 +486,7 @@ export function DeleteCell({ onDelete, style, ...props }: DeleteCellProps) { onDelete?.(); }} > - {() => } + {() => } ); } @@ -650,7 +650,7 @@ export function SelectCell({ clickBehavior="none" {...buttonProps} > - {selected && } + {selected && } )} @@ -663,7 +663,9 @@ type SheetCellValueProps = { getValueStyle?: (value: string | number) => CSSProperties; formatExpr?: (value) => string; unformatExpr?: (value: string) => unknown; - privacyFilter?: ConditionalPrivacyFilterProps['privacyFilter']; + privacyFilter?: ComponentProps< + typeof ConditionalPrivacyFilter + >['privacyFilter']; }; type SheetCellProps = ComponentProps & { @@ -799,7 +801,7 @@ export function SelectedItemsButton({ name, keyHandlers, items, onSelect }) { style={{ color: theme.pageTextPositive }} onClick={() => setMenuOpen(true)} > - = { saveScrollWidth?: (parent, child) => void; }; -export const Table: ( - props: TableProps & { ref?: Ref> }, -) => ReactElement = forwardRef( +export const Table = forwardRef( ( { items, @@ -1161,7 +1161,9 @@ export const Table: ( ); }, -); +) as ( + props: TableProps & { ref?: Ref> }, +) => ReactElement; export type TableNavigator = { onEdit: (id: T['id'], field?: string) => void; diff --git a/packages/desktop-client/src/components/transactions/MobileTransaction.jsx b/packages/desktop-client/src/components/transactions/MobileTransaction.jsx index 7763f1bf639..e3b9deb81c7 100644 --- a/packages/desktop-client/src/components/transactions/MobileTransaction.jsx +++ b/packages/desktop-client/src/components/transactions/MobileTransaction.jsx @@ -22,9 +22,10 @@ import { } from 'date-fns'; import { css } from 'glamor'; -import q, { runQuery } from 'loot-core/src/client/query-helpers'; +import { runQuery } from 'loot-core/src/client/query-helpers'; import { send } from 'loot-core/src/platform/client/fetch'; import * as monthUtils from 'loot-core/src/shared/months'; +import { q } from 'loot-core/src/shared/query'; import { getScheduledAmount } from 'loot-core/src/shared/schedules'; import { isPreviewId, @@ -46,25 +47,26 @@ import { } from 'loot-core/src/shared/util'; import { useActions } from '../../hooks/useActions'; -import useCategories from '../../hooks/useCategories'; -import useNavigate from '../../hooks/useNavigate'; +import { useCategories } from '../../hooks/useCategories'; +import { useNavigate } from '../../hooks/useNavigate'; import { useSetThemeColor } from '../../hooks/useSetThemeColor'; import { SingleActiveEditFormProvider, useSingleActiveEditForm, } from '../../hooks/useSingleActiveEditForm'; -import Split from '../../icons/v0/Split'; -import Add from '../../icons/v1/Add'; -import Trash from '../../icons/v1/Trash'; -import ArrowsSynchronize from '../../icons/v2/ArrowsSynchronize'; -import CheckCircle1 from '../../icons/v2/CheckCircle1'; -import Lock from '../../icons/v2/LockClosed'; -import PencilWriteAlternate from '../../icons/v2/PencilWriteAlternate'; +import { SvgSplit } from '../../icons/v0'; +import { SvgAdd, SvgTrash } from '../../icons/v1'; +import { + SvgArrowsSynchronize, + SvgCheckCircle1, + SvgLockClosed, + SvgPencilWriteAlternate, +} from '../../icons/v2'; import { styles, theme } from '../../style'; -import Button from '../common/Button'; -import Text from '../common/Text'; -import TextOneLine from '../common/TextOneLine'; -import View from '../common/View'; +import { Button } from '../common/Button'; +import { Text } from '../common/Text'; +import { TextOneLine } from '../common/TextOneLine'; +import { View } from '../common/View'; import { FocusableAmountInput } from '../mobile/MobileAmountInput'; import { FieldLabel, @@ -72,7 +74,7 @@ import { InputField, BooleanField, } from '../mobile/MobileForms'; -import MobileBackButton from '../MobileBackButton'; +import { MobileBackButton } from '../MobileBackButton'; import { Page } from '../Page'; import { AmountInput } from '../util/AmountInput'; @@ -218,7 +220,7 @@ function Footer({ onClick={onClickRemainingSplit} onPointerDown={e => e.preventDefault()} > - + e.preventDefault()} > - + e.preventDefault()} > - - + onSplit(transaction.id)} type="bare" > - - {schedule && ( - {isReconciled ? ( - ) : ( - ( <> {transaction.schedule && ( - {showBalance && } {showCleared && } - + ); }, @@ -503,10 +502,10 @@ function HeaderCell({ > {icon === 'asc' && ( - + )} {icon === 'desc' && ( - + )} } @@ -655,9 +654,9 @@ function PayeeIcons({ }} > {recurring ? ( - + ) : ( - + )} )} @@ -674,9 +673,9 @@ function PayeeIcons({ }} > {(transaction._inverse ? -1 : 1) * transaction.amount > 0 ? ( - + ) : ( - + )} )} @@ -754,7 +753,8 @@ const Transaction = memo(function Transaction(props) { (name === 'credit' || name === 'debit' || name === 'payee' || - name === 'account') + name === 'account' || + name === 'date') ) { if (showReconciliationWarning === false) { setShowReconciliationWarning(true); @@ -943,7 +943,9 @@ const Transaction = memo(function Transaction(props) { style={{ ...(isChild && { borderLeftWidth: 1 }) }} value={ matched && ( - + ) } /> @@ -1143,7 +1145,7 @@ const Transaction = memo(function Transaction(props) { }} > {isParent && ( - { afterSave(() => { const transactions = latestState.current.transactions; const idx = transactions.findIndex(t => t.id === id); - const parent = transactionMap.get(transactions[idx]?.parent_id); + const parent = transactions.find( + t => t.id === transactions[idx]?.parent_id, + ); if ( isLastChild(transactions, idx) && diff --git a/packages/desktop-client/src/components/transactions/TransactionsTable.test.jsx b/packages/desktop-client/src/components/transactions/TransactionsTable.test.jsx index b62d840267a..4a925a8e92b 100644 --- a/packages/desktop-client/src/components/transactions/TransactionsTable.test.jsx +++ b/packages/desktop-client/src/components/transactions/TransactionsTable.test.jsx @@ -25,8 +25,8 @@ import { ResponsiveProvider } from '../../ResponsiveProvider'; import { SplitsExpandedProvider, TransactionTable } from './TransactionsTable'; -jest.mock('loot-core/src/platform/client/fetch'); -jest.mock('../../hooks/useFeatureFlag', () => jest.fn().mockReturnValue(false)); +vi.mock('loot-core/src/platform/client/fetch'); +vi.mock('../../hooks/useFeatureFlag', () => vi.fn().mockReturnValue(false)); const accounts = [generateAccount('Bank of America')]; const payees = [ diff --git a/packages/desktop-client/src/components/util/AmountInput.tsx b/packages/desktop-client/src/components/util/AmountInput.tsx index 9adec5f3adb..3325431733d 100644 --- a/packages/desktop-client/src/components/util/AmountInput.tsx +++ b/packages/desktop-client/src/components/util/AmountInput.tsx @@ -6,17 +6,16 @@ import React, { type FocusEventHandler, } from 'react'; -import evalArithmetic from 'loot-core/src/shared/arithmetic'; +import { evalArithmetic } from 'loot-core/src/shared/arithmetic'; import { amountToInteger } from 'loot-core/src/shared/util'; import { useMergedRefs } from '../../hooks/useMergedRefs'; -import Add from '../../icons/v1/Add'; -import Subtract from '../../icons/v1/Subtract'; +import { SvgAdd, SvgSubtract } from '../../icons/v1'; import { type CSSProperties, theme } from '../../style'; -import Button from '../common/Button'; -import InputWithContent from '../common/InputWithContent'; -import View from '../common/View'; -import useFormat from '../spreadsheet/useFormat'; +import { Button } from '../common/Button'; +import { InputWithContent } from '../common/InputWithContent'; +import { View } from '../common/View'; +import { useFormat } from '../spreadsheet/useFormat'; type AmountInputProps = { id?: string; @@ -108,9 +107,9 @@ export function AmountInput({ ref={buttonRef} > {negative ? ( - + ) : ( - + )} } diff --git a/packages/desktop-client/src/components/util/DisplayId.tsx b/packages/desktop-client/src/components/util/DisplayId.tsx index ecc14437543..45eed93d3a3 100644 --- a/packages/desktop-client/src/components/util/DisplayId.tsx +++ b/packages/desktop-client/src/components/util/DisplayId.tsx @@ -4,7 +4,7 @@ import { CachedAccounts } from 'loot-core/src/client/data-hooks/accounts'; import { CachedPayees } from 'loot-core/src/client/data-hooks/payees'; import { theme } from '../../style'; -import Text from '../common/Text'; +import { Text } from '../common/Text'; type DisplayIdProps = { type: 'accounts' | 'payees'; @@ -12,7 +12,7 @@ type DisplayIdProps = { noneColor?: string; }; -export default function DisplayId({ +export function DisplayId({ type, id, noneColor = theme.pageTextSubdued, diff --git a/packages/desktop-client/src/components/util/GenericInput.jsx b/packages/desktop-client/src/components/util/GenericInput.jsx index dfa2d95ddcb..b42826e01ba 100644 --- a/packages/desktop-client/src/components/util/GenericInput.jsx +++ b/packages/desktop-client/src/components/util/GenericInput.jsx @@ -3,19 +3,19 @@ import { useSelector } from 'react-redux'; import { getMonthYearFormat } from 'loot-core/src/shared/months'; -import useCategories from '../../hooks/useCategories'; -import AccountAutocomplete from '../autocomplete/AccountAutocomplete'; -import Autocomplete from '../autocomplete/Autocomplete'; -import CategoryAutocomplete from '../autocomplete/CategoryAutocomplete'; -import PayeeAutocomplete from '../autocomplete/PayeeAutocomplete'; -import SavedFilterAutocomplete from '../autocomplete/SavedFilterAutocomplete'; -import Input from '../common/Input'; -import View from '../common/View'; +import { useCategories } from '../../hooks/useCategories'; +import { AccountAutocomplete } from '../autocomplete/AccountAutocomplete'; +import { Autocomplete } from '../autocomplete/Autocomplete'; +import { CategoryAutocomplete } from '../autocomplete/CategoryAutocomplete'; +import { PayeeAutocomplete } from '../autocomplete/PayeeAutocomplete'; +import { SavedFilterAutocomplete } from '../autocomplete/SavedFilterAutocomplete'; +import { Input } from '../common/Input'; +import { View } from '../common/View'; import { Checkbox } from '../forms'; -import DateSelect from '../select/DateSelect'; -import RecurringSchedulePicker from '../select/RecurringSchedulePicker'; +import { DateSelect } from '../select/DateSelect'; +import { RecurringSchedulePicker } from '../select/RecurringSchedulePicker'; -export default function GenericInput({ +export function GenericInput({ field, subfield, type, diff --git a/packages/desktop-client/src/components/util/LoadComponent.tsx b/packages/desktop-client/src/components/util/LoadComponent.tsx index 74a97f62d4c..a0769656e1b 100644 --- a/packages/desktop-client/src/components/util/LoadComponent.tsx +++ b/packages/desktop-client/src/components/util/LoadComponent.tsx @@ -1,9 +1,9 @@ import { type ComponentType, useEffect, useState } from 'react'; -import AnimatedLoading from '../../icons/AnimatedLoading'; +import { AnimatedLoading } from '../../icons/AnimatedLoading'; import { theme, styles } from '../../style'; -import Block from '../common/Block'; -import View from '../common/View'; +import { Block } from '../common/Block'; +import { View } from '../common/View'; type ProplessComponent = ComponentType>; type LoadComponentProps = { diff --git a/packages/desktop-client/src/fonts.scss b/packages/desktop-client/src/fonts.scss index 7e1ee6cc8ba..dba3274d484 100644 --- a/packages/desktop-client/src/fonts.scss +++ b/packages/desktop-client/src/fonts.scss @@ -1,2 +1,4 @@ -@use '~inter-ui/variable'; +@use 'inter-ui/variable' with ( + $inter-font-path: '../../../node_modules/inter-ui/Inter (web)' +); @include variable.default; diff --git a/packages/desktop-client/src/hooks/useActions.ts b/packages/desktop-client/src/hooks/useActions.ts index 07db4684f03..2952eaf8a0d 100644 --- a/packages/desktop-client/src/hooks/useActions.ts +++ b/packages/desktop-client/src/hooks/useActions.ts @@ -15,10 +15,15 @@ type ActionReturnType unknown> = export type BoundActions = { [Key in keyof typeof actions]: ( ...args: Parameters<(typeof actions)[Key]> - ) => ActionReturnType<(typeof actions)[Key]>; + ) => // @ts-expect-error temporarily disabling this TS error; eventually the `useActions` hook should be removed + ActionReturnType<(typeof actions)[Key]>; }; // https://react-redux.js.org/api/hooks#recipe-useactions +/** + * @deprecated please use actions directly with `useDispatch` + * @see https://github.com/reduxjs/react-redux/issues/1252#issuecomment-488160930 + **/ export function useActions() { const dispatch = useDispatch(); return useMemo(() => { diff --git a/packages/desktop-client/src/hooks/useCategories.ts b/packages/desktop-client/src/hooks/useCategories.ts index 548180acf3e..c515e7e3777 100644 --- a/packages/desktop-client/src/hooks/useCategories.ts +++ b/packages/desktop-client/src/hooks/useCategories.ts @@ -3,7 +3,7 @@ import { useSelector } from 'react-redux'; import { useActions } from './useActions'; -export default function useCategories() { +export function useCategories() { const { getCategories } = useActions(); const categories = useSelector(state => state.queries.categories.list); diff --git a/packages/desktop-client/src/hooks/useFeatureFlag.ts b/packages/desktop-client/src/hooks/useFeatureFlag.ts index 5950eaf0d1b..289e9b7c77a 100644 --- a/packages/desktop-client/src/hooks/useFeatureFlag.ts +++ b/packages/desktop-client/src/hooks/useFeatureFlag.ts @@ -11,7 +11,7 @@ const DEFAULT_FEATURE_FLAG_STATE: Record = { experimentalOfxParser: true, }; -export default function useFeatureFlag(name: FeatureFlag): boolean { +export function useFeatureFlag(name: FeatureFlag): boolean { return useSelector(state => { const value = state.prefs.local[`flags.${name}`]; diff --git a/packages/desktop-client/src/hooks/useFilters.ts b/packages/desktop-client/src/hooks/useFilters.ts index 617146a615b..c23003c3980 100644 --- a/packages/desktop-client/src/hooks/useFilters.ts +++ b/packages/desktop-client/src/hooks/useFilters.ts @@ -1,6 +1,6 @@ import { useCallback, useMemo, useState } from 'react'; -export default function useFilters(initialFilters: T[] = []) { +export function useFilters(initialFilters: T[] = []) { const [filters, setFilters] = useState(initialFilters); const [conditionsOp, setConditionsOp] = useState('and'); const [saved, setSaved] = useState(null); diff --git a/packages/desktop-client/src/hooks/useGoCardlessStatus.ts b/packages/desktop-client/src/hooks/useGoCardlessStatus.ts index a3dd07ce8e3..9b65cd43494 100644 --- a/packages/desktop-client/src/hooks/useGoCardlessStatus.ts +++ b/packages/desktop-client/src/hooks/useGoCardlessStatus.ts @@ -2,9 +2,9 @@ import { useEffect, useState } from 'react'; import { send } from 'loot-core/src/platform/client/fetch'; -import useSyncServerStatus from './useSyncServerStatus'; +import { useSyncServerStatus } from './useSyncServerStatus'; -export default function useGoCardlessStatus() { +export function useGoCardlessStatus() { const [configuredGoCardless, setConfiguredGoCardless] = useState< boolean | null >(null); diff --git a/packages/desktop-client/src/hooks/useLatestVersion.ts b/packages/desktop-client/src/hooks/useLatestVersion.ts index b2bb46ab271..c796264e278 100644 --- a/packages/desktop-client/src/hooks/useLatestVersion.ts +++ b/packages/desktop-client/src/hooks/useLatestVersion.ts @@ -2,7 +2,7 @@ import { useState, useEffect } from 'react'; import { getIsOutdated, getLatestVersion } from '../util/versions'; -function useIsOutdated(): boolean { +export function useIsOutdated(): boolean { const [isOutdated, setIsOutdated] = useState(false); const latestVersion = useLatestVersion(); @@ -15,7 +15,7 @@ function useIsOutdated(): boolean { return isOutdated; } -function useLatestVersion(): string { +export function useLatestVersion(): string { const [latestVersion, setLatestVersion] = useState(''); useEffect(() => { (async () => { @@ -25,6 +25,3 @@ function useLatestVersion(): string { return latestVersion; } - -export default useLatestVersion; -export { useIsOutdated }; diff --git a/packages/desktop-client/src/hooks/useNavigate.ts b/packages/desktop-client/src/hooks/useNavigate.ts index 05e993ff812..5f05bb2b1e6 100644 --- a/packages/desktop-client/src/hooks/useNavigate.ts +++ b/packages/desktop-client/src/hooks/useNavigate.ts @@ -8,7 +8,7 @@ import { useNavigate as useNavigateReactRouter, } from 'react-router-dom'; -export default function useNavigate(): NavigateFunction { +export function useNavigate(): NavigateFunction { const location = useLocation(); const navigate = useNavigateReactRouter(); return useCallback( diff --git a/packages/desktop-client/src/hooks/usePrevious.ts b/packages/desktop-client/src/hooks/usePrevious.ts index 8d5f2dc5543..8fd44448b8d 100644 --- a/packages/desktop-client/src/hooks/usePrevious.ts +++ b/packages/desktop-client/src/hooks/usePrevious.ts @@ -1,6 +1,6 @@ import { useEffect, useRef } from 'react'; -export default function usePrevious(value: T): T | undefined { +export function usePrevious(value: T): T | undefined { const ref = useRef(); useEffect(() => { diff --git a/packages/desktop-client/src/hooks/useResizeObserver.ts b/packages/desktop-client/src/hooks/useResizeObserver.ts index 73c1a4521d2..45f37e24b66 100644 --- a/packages/desktop-client/src/hooks/useResizeObserver.ts +++ b/packages/desktop-client/src/hooks/useResizeObserver.ts @@ -1,6 +1,6 @@ import { useRef, useCallback } from 'react'; -export default function useResizeObserver( +export function useResizeObserver( func: (contentRect: DOMRectReadOnly) => void, ): (el: unknown) => void { const observer = useRef(null); diff --git a/packages/desktop-client/src/hooks/useSelected.tsx b/packages/desktop-client/src/hooks/useSelected.tsx index 934318e3661..3c3976c2bcd 100644 --- a/packages/desktop-client/src/hooks/useSelected.tsx +++ b/packages/desktop-client/src/hooks/useSelected.tsx @@ -50,7 +50,7 @@ type SelectAllAction = { type Actions = SelectAction | SelectNoneAction | SelectAllAction; -export default function useSelected( +export function useSelected( name: string, items: T[], initialSelectedIds: string[], diff --git a/packages/desktop-client/src/hooks/useSendPlatformRequest.ts b/packages/desktop-client/src/hooks/useSendPlatformRequest.ts index d4967f58a10..29585532ea6 100644 --- a/packages/desktop-client/src/hooks/useSendPlatformRequest.ts +++ b/packages/desktop-client/src/hooks/useSendPlatformRequest.ts @@ -3,7 +3,7 @@ import { useEffect, useState } from 'react'; import { send } from 'loot-core/src/platform/client/fetch'; import type { Handlers } from 'loot-core/src/types/handlers'; -export default function useSendPlatformRequest( +export function useSendPlatformRequest( name: K, args?: Parameters[0], options?: { catchErrors?: boolean }, diff --git a/packages/desktop-client/src/hooks/useSingleActiveEditForm.tsx b/packages/desktop-client/src/hooks/useSingleActiveEditForm.tsx index 662c3c3fcbb..5dabcf9dc8a 100644 --- a/packages/desktop-client/src/hooks/useSingleActiveEditForm.tsx +++ b/packages/desktop-client/src/hooks/useSingleActiveEditForm.tsx @@ -4,12 +4,8 @@ import React, { useContext, useState, useRef, - useEffect, } from 'react'; -import usePrevious from './usePrevious'; -import useStableCallback from './useStableCallback'; - type ActiveEditCleanup = () => void; type ActiveEditAction = () => void | ActiveEditCleanup; @@ -19,7 +15,9 @@ type SingleActiveEditFormContextValue = { onRequestActiveEdit: ( field: string, action?: ActiveEditAction, - clearActiveEditDelayMs?: number, + options?: { + clearActiveEditDelayMs?: number; + }, ) => void; onClearActiveEdit: (delayMs?: number) => void; }; @@ -38,22 +36,8 @@ export function SingleActiveEditFormProvider({ children, }: SingleActiveEditFormProviderProps) { const [editingField, setEditingField] = useState(null); - const prevEditingField = usePrevious(editingField); - const actionRef = useRef(null); const cleanupRef = useRef(null); - useEffect(() => { - if (prevEditingField != null && prevEditingField !== editingField) { - runCleanup(); - } else if (prevEditingField == null && editingField !== null) { - runAction(); - } - }, [editingField]); - - const runAction = () => { - cleanupRef.current = actionRef.current?.(); - }; - const runCleanup = () => { const editCleanup = cleanupRef.current; if (typeof editCleanup === 'function') { @@ -62,31 +46,40 @@ export function SingleActiveEditFormProvider({ cleanupRef.current = null; }; + const runAction = (action: ActiveEditAction) => { + cleanupRef.current = action?.(); + }; + const onClearActiveEdit = (delayMs?: number) => { - setTimeout(() => setEditingField(null), delayMs); + setTimeout(() => { + runCleanup(); + setEditingField(null); + }, delayMs); + }; + + const onActiveEdit = (field: string, action: ActiveEditAction) => { + runAction(action); + setEditingField(field); }; - const onRequestActiveEdit = useStableCallback( - ( - field: string, - action: ActiveEditAction, - options: { - clearActiveEditDelayMs?: number; - }, - ) => { - if (editingField === field) { - // Already active. - return; - } - - if (editingField) { - onClearActiveEdit(options?.clearActiveEditDelayMs); - } else { - actionRef.current = action; - setEditingField(field); - } + const onRequestActiveEdit = ( + field: string, + action: ActiveEditAction, + options: { + clearActiveEditDelayMs?: number; }, - ); + ) => { + if (editingField === field) { + // Already active. + return; + } + + if (editingField) { + onClearActiveEdit(options?.clearActiveEditDelayMs); + } else { + onActiveEdit(field, action); + } + }; return ( unknown; -export default function useStableCallback(callback: UseStableCallbackArg) { +export function useStableCallback(callback: UseStableCallbackArg) { const callbackRef = useRef(); const memoCallback = useCallback( (...args) => callbackRef.current && callbackRef.current(...args), diff --git a/packages/desktop-client/src/hooks/useSyncServerStatus.ts b/packages/desktop-client/src/hooks/useSyncServerStatus.ts index 492c2bd8709..59096146c6a 100644 --- a/packages/desktop-client/src/hooks/useSyncServerStatus.ts +++ b/packages/desktop-client/src/hooks/useSyncServerStatus.ts @@ -4,7 +4,7 @@ import { useServerURL } from '../components/ServerContext'; export type SyncServerStatus = 'offline' | 'no-server' | 'online'; -export default function useSyncServerStatus(): SyncServerStatus { +export function useSyncServerStatus(): SyncServerStatus { const serverUrl = useServerURL(); const userData = useSelector(state => state.user.data); diff --git a/packages/desktop-client/src/icons/AnimatedLoading.tsx b/packages/desktop-client/src/icons/AnimatedLoading.tsx index a153265a405..82476f66ce6 100644 --- a/packages/desktop-client/src/icons/AnimatedLoading.tsx +++ b/packages/desktop-client/src/icons/AnimatedLoading.tsx @@ -2,14 +2,14 @@ import React, { type SVGProps } from 'react'; import { css, keyframes } from 'glamor'; -import Loading from './Loading'; +import { SvgLoading } from './Loading'; const rotation = keyframes({ '0%': { transform: 'rotate(-90deg)' }, '100%': { transform: 'rotate(666deg)' }, }); -function AnimatedLoading(props: SVGProps) { +export function AnimatedLoading(props: SVGProps) { return ( ) { lineHeight: 0, })}`} > - + ); } - -export default AnimatedLoading; diff --git a/packages/desktop-client/src/icons/Loading.tsx b/packages/desktop-client/src/icons/Loading.tsx index c8101941c3f..6012c53db38 100644 --- a/packages/desktop-client/src/icons/Loading.tsx +++ b/packages/desktop-client/src/icons/Loading.tsx @@ -1,6 +1,6 @@ import React, { type SVGProps, useState } from 'react'; -const SvgLoading = (props: SVGProps) => { +export const SvgLoading = (props: SVGProps) => { const { color = 'currentColor' } = props; const [gradientId] = useState('gradient-' + Math.random()); @@ -31,5 +31,3 @@ const SvgLoading = (props: SVGProps) => { ); }; - -export default SvgLoading; diff --git a/packages/desktop-client/src/icons/index-template.ts b/packages/desktop-client/src/icons/index-template.ts new file mode 100644 index 00000000000..679f5ce7b85 --- /dev/null +++ b/packages/desktop-client/src/icons/index-template.ts @@ -0,0 +1,12 @@ +import path from 'path'; + +function indexTemplate(filePaths) { + const exportEntries = filePaths.map(({ path: filePath }) => { + const basename = path.basename(filePath, path.extname(filePath)); + const exportName = `Svg${basename}`; + return `export { ${exportName} } from './${basename}'`; + }) + return exportEntries.join('\n'); +} + +module.exports = indexTemplate \ No newline at end of file diff --git a/packages/desktop-client/src/icons/logo/Logo.tsx b/packages/desktop-client/src/icons/logo/Logo.tsx index 60c4d53af4d..199a7a2aa66 100644 --- a/packages/desktop-client/src/icons/logo/Logo.tsx +++ b/packages/desktop-client/src/icons/logo/Logo.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgLogo = (props: SVGProps) => ( +export const SvgLogo = (props: SVGProps) => ( ) => ( /> ); -export default SvgLogo; diff --git a/packages/desktop-client/src/icons/logo/index.ts b/packages/desktop-client/src/icons/logo/index.ts index c6444c91fb9..c7d7d8ea715 100644 --- a/packages/desktop-client/src/icons/logo/index.ts +++ b/packages/desktop-client/src/icons/logo/index.ts @@ -1 +1 @@ -export { default as Logo } from './Logo'; +export { SvgLogo } from './Logo'; diff --git a/packages/desktop-client/src/icons/template.ts b/packages/desktop-client/src/icons/template.ts new file mode 100644 index 00000000000..8cb1e0507f5 --- /dev/null +++ b/packages/desktop-client/src/icons/template.ts @@ -0,0 +1,13 @@ +const template = ({ imports, interfaces, componentName, props, jsx }, { tpl }) => { + return tpl` +${imports}; + +${interfaces}; + +export const ${componentName} = (${props}) => ( + ${jsx} +); +` +} + +module.exports = template \ No newline at end of file diff --git a/packages/desktop-client/src/icons/v0/Add.tsx b/packages/desktop-client/src/icons/v0/Add.tsx index 306a115dd65..e3c3a9e9289 100644 --- a/packages/desktop-client/src/icons/v0/Add.tsx +++ b/packages/desktop-client/src/icons/v0/Add.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgAdd = (props: SVGProps) => ( +export const SvgAdd = (props: SVGProps) => ( ) => ( /> ); -export default SvgAdd; diff --git a/packages/desktop-client/src/icons/v0/Delete.tsx b/packages/desktop-client/src/icons/v0/Delete.tsx index 232864866ad..311e818354c 100644 --- a/packages/desktop-client/src/icons/v0/Delete.tsx +++ b/packages/desktop-client/src/icons/v0/Delete.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgDelete = (props: SVGProps) => ( +export const SvgDelete = (props: SVGProps) => ( ) => ( /> ); -export default SvgDelete; diff --git a/packages/desktop-client/src/icons/v0/ExpandArrow.tsx b/packages/desktop-client/src/icons/v0/ExpandArrow.tsx index 35e12043d07..a7ac84f8cc3 100644 --- a/packages/desktop-client/src/icons/v0/ExpandArrow.tsx +++ b/packages/desktop-client/src/icons/v0/ExpandArrow.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgExpandArrow = (props: SVGProps) => ( +export const SvgExpandArrow = (props: SVGProps) => ( ) => ( /> ); -export default SvgExpandArrow; diff --git a/packages/desktop-client/src/icons/v0/LeftArrow2.tsx b/packages/desktop-client/src/icons/v0/LeftArrow2.tsx index b1c0b091cf2..15a8cc460d6 100644 --- a/packages/desktop-client/src/icons/v0/LeftArrow2.tsx +++ b/packages/desktop-client/src/icons/v0/LeftArrow2.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgLeftArrow2 = (props: SVGProps) => ( +export const SvgLeftArrow2 = (props: SVGProps) => ( ) => ( /> ); -export default SvgLeftArrow2; diff --git a/packages/desktop-client/src/icons/v0/Math.tsx b/packages/desktop-client/src/icons/v0/Math.tsx index db3629fabb3..41aff6c20f7 100644 --- a/packages/desktop-client/src/icons/v0/Math.tsx +++ b/packages/desktop-client/src/icons/v0/Math.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgMath = (props: SVGProps) => ( +export const SvgMath = (props: SVGProps) => ( ) => ( /> ); -export default SvgMath; diff --git a/packages/desktop-client/src/icons/v0/Merge.tsx b/packages/desktop-client/src/icons/v0/Merge.tsx index 453fe8d369b..b310ecc25cf 100644 --- a/packages/desktop-client/src/icons/v0/Merge.tsx +++ b/packages/desktop-client/src/icons/v0/Merge.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgMerge = (props: SVGProps) => ( +export const SvgMerge = (props: SVGProps) => ( ) => ( /> ); -export default SvgMerge; diff --git a/packages/desktop-client/src/icons/v0/RightArrow2.tsx b/packages/desktop-client/src/icons/v0/RightArrow2.tsx index 3652862b3aa..fb1708540ec 100644 --- a/packages/desktop-client/src/icons/v0/RightArrow2.tsx +++ b/packages/desktop-client/src/icons/v0/RightArrow2.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgRightArrow2 = (props: SVGProps) => ( +export const SvgRightArrow2 = (props: SVGProps) => ( ) => ( /> ); -export default SvgRightArrow2; diff --git a/packages/desktop-client/src/icons/v0/Split.tsx b/packages/desktop-client/src/icons/v0/Split.tsx index 4e22aa9a82d..415196f6380 100644 --- a/packages/desktop-client/src/icons/v0/Split.tsx +++ b/packages/desktop-client/src/icons/v0/Split.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgSplit = (props: SVGProps) => ( +export const SvgSplit = (props: SVGProps) => ( ) => ( /> ); -export default SvgSplit; diff --git a/packages/desktop-client/src/icons/v0/Subtract.tsx b/packages/desktop-client/src/icons/v0/Subtract.tsx index 3d06098172f..698a94f3d72 100644 --- a/packages/desktop-client/src/icons/v0/Subtract.tsx +++ b/packages/desktop-client/src/icons/v0/Subtract.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgSubtract = (props: SVGProps) => ( +export const SvgSubtract = (props: SVGProps) => ( ) => ( /> ); -export default SvgSubtract; diff --git a/packages/desktop-client/src/icons/v0/index.ts b/packages/desktop-client/src/icons/v0/index.ts index 077a6c4d9d3..893da4c0eb4 100644 --- a/packages/desktop-client/src/icons/v0/index.ts +++ b/packages/desktop-client/src/icons/v0/index.ts @@ -1,9 +1,9 @@ -export { default as Add } from './Add'; -export { default as Delete } from './Delete'; -export { default as ExpandArrow } from './ExpandArrow'; -export { default as LeftArrow2 } from './LeftArrow2'; -export { default as Math } from './Math'; -export { default as RightArrow2 } from './RightArrow2'; -export { default as Subtract } from './Subtract'; -export { default as Merge } from './Merge'; -export { default as Split } from './Split'; +export { SvgAdd } from './Add'; +export { SvgDelete } from './Delete'; +export { SvgExpandArrow } from './ExpandArrow'; +export { SvgLeftArrow2 } from './LeftArrow2'; +export { SvgMath } from './Math'; +export { SvgRightArrow2 } from './RightArrow2'; +export { SvgSubtract } from './Subtract'; +export { SvgMerge } from './Merge'; +export { SvgSplit } from './Split'; diff --git a/packages/desktop-client/src/icons/v1/Add.tsx b/packages/desktop-client/src/icons/v1/Add.tsx index 17ca39f5c12..0ca4c9e8e4c 100644 --- a/packages/desktop-client/src/icons/v1/Add.tsx +++ b/packages/desktop-client/src/icons/v1/Add.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgAdd = (props: SVGProps) => ( +export const SvgAdd = (props: SVGProps) => ( ) => ( /> ); -export default SvgAdd; diff --git a/packages/desktop-client/src/icons/v1/AddOutline.tsx b/packages/desktop-client/src/icons/v1/AddOutline.tsx index 0258ef0612a..bd125139d5b 100644 --- a/packages/desktop-client/src/icons/v1/AddOutline.tsx +++ b/packages/desktop-client/src/icons/v1/AddOutline.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgAddOutline = (props: SVGProps) => ( +export const SvgAddOutline = (props: SVGProps) => ( ) => ( /> ); -export default SvgAddOutline; diff --git a/packages/desktop-client/src/icons/v1/AddSolid.tsx b/packages/desktop-client/src/icons/v1/AddSolid.tsx index 085c19a85f2..0590557a58c 100644 --- a/packages/desktop-client/src/icons/v1/AddSolid.tsx +++ b/packages/desktop-client/src/icons/v1/AddSolid.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgAddSolid = (props: SVGProps) => ( +export const SvgAddSolid = (props: SVGProps) => ( ) => ( /> ); -export default SvgAddSolid; diff --git a/packages/desktop-client/src/icons/v1/Adjust.tsx b/packages/desktop-client/src/icons/v1/Adjust.tsx index 5a63200656c..a904a3ef9bb 100644 --- a/packages/desktop-client/src/icons/v1/Adjust.tsx +++ b/packages/desktop-client/src/icons/v1/Adjust.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgAdjust = (props: SVGProps) => ( +export const SvgAdjust = (props: SVGProps) => ( ) => ( /> ); -export default SvgAdjust; diff --git a/packages/desktop-client/src/icons/v1/Airplane.tsx b/packages/desktop-client/src/icons/v1/Airplane.tsx index 542dc23e5c7..28299f392f5 100644 --- a/packages/desktop-client/src/icons/v1/Airplane.tsx +++ b/packages/desktop-client/src/icons/v1/Airplane.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgAirplane = (props: SVGProps) => ( +export const SvgAirplane = (props: SVGProps) => ( ) => ( /> ); -export default SvgAirplane; diff --git a/packages/desktop-client/src/icons/v1/Album.tsx b/packages/desktop-client/src/icons/v1/Album.tsx index b9f7848daca..85f4bf9d621 100644 --- a/packages/desktop-client/src/icons/v1/Album.tsx +++ b/packages/desktop-client/src/icons/v1/Album.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgAlbum = (props: SVGProps) => ( +export const SvgAlbum = (props: SVGProps) => ( ) => ( /> ); -export default SvgAlbum; diff --git a/packages/desktop-client/src/icons/v1/AlignCenter.tsx b/packages/desktop-client/src/icons/v1/AlignCenter.tsx index 193dd57a719..4ca468a0dc5 100644 --- a/packages/desktop-client/src/icons/v1/AlignCenter.tsx +++ b/packages/desktop-client/src/icons/v1/AlignCenter.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgAlignCenter = (props: SVGProps) => ( +export const SvgAlignCenter = (props: SVGProps) => ( ) => ( /> ); -export default SvgAlignCenter; diff --git a/packages/desktop-client/src/icons/v1/AlignJustified.tsx b/packages/desktop-client/src/icons/v1/AlignJustified.tsx index 7c3ba26d66f..06cfaabc036 100644 --- a/packages/desktop-client/src/icons/v1/AlignJustified.tsx +++ b/packages/desktop-client/src/icons/v1/AlignJustified.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgAlignJustified = (props: SVGProps) => ( +export const SvgAlignJustified = (props: SVGProps) => ( ) => ( /> ); -export default SvgAlignJustified; diff --git a/packages/desktop-client/src/icons/v1/AlignLeft.tsx b/packages/desktop-client/src/icons/v1/AlignLeft.tsx index 86a138c3820..d8d5c7980c4 100644 --- a/packages/desktop-client/src/icons/v1/AlignLeft.tsx +++ b/packages/desktop-client/src/icons/v1/AlignLeft.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgAlignLeft = (props: SVGProps) => ( +export const SvgAlignLeft = (props: SVGProps) => ( ) => ( /> ); -export default SvgAlignLeft; diff --git a/packages/desktop-client/src/icons/v1/AlignRight.tsx b/packages/desktop-client/src/icons/v1/AlignRight.tsx index a4371208ebe..91b93a34fc6 100644 --- a/packages/desktop-client/src/icons/v1/AlignRight.tsx +++ b/packages/desktop-client/src/icons/v1/AlignRight.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgAlignRight = (props: SVGProps) => ( +export const SvgAlignRight = (props: SVGProps) => ( ) => ( /> ); -export default SvgAlignRight; diff --git a/packages/desktop-client/src/icons/v1/Anchor.tsx b/packages/desktop-client/src/icons/v1/Anchor.tsx index 3916aca810e..45686885ec2 100644 --- a/packages/desktop-client/src/icons/v1/Anchor.tsx +++ b/packages/desktop-client/src/icons/v1/Anchor.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgAnchor = (props: SVGProps) => ( +export const SvgAnchor = (props: SVGProps) => ( ) => ( /> ); -export default SvgAnchor; diff --git a/packages/desktop-client/src/icons/v1/Announcement.tsx b/packages/desktop-client/src/icons/v1/Announcement.tsx index df1e1ec9890..f478a36bf46 100644 --- a/packages/desktop-client/src/icons/v1/Announcement.tsx +++ b/packages/desktop-client/src/icons/v1/Announcement.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgAnnouncement = (props: SVGProps) => ( +export const SvgAnnouncement = (props: SVGProps) => ( ) => ( /> ); -export default SvgAnnouncement; diff --git a/packages/desktop-client/src/icons/v1/Apparel.tsx b/packages/desktop-client/src/icons/v1/Apparel.tsx index 2be049f337a..d48ff3fe538 100644 --- a/packages/desktop-client/src/icons/v1/Apparel.tsx +++ b/packages/desktop-client/src/icons/v1/Apparel.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgApparel = (props: SVGProps) => ( +export const SvgApparel = (props: SVGProps) => ( ) => ( /> ); -export default SvgApparel; diff --git a/packages/desktop-client/src/icons/v1/ArrowDown.tsx b/packages/desktop-client/src/icons/v1/ArrowDown.tsx index 89589b78906..cc200ce85a9 100644 --- a/packages/desktop-client/src/icons/v1/ArrowDown.tsx +++ b/packages/desktop-client/src/icons/v1/ArrowDown.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowDown = (props: SVGProps) => ( +export const SvgArrowDown = (props: SVGProps) => ( ) => ( /> ); -export default SvgArrowDown; diff --git a/packages/desktop-client/src/icons/v1/ArrowLeft.tsx b/packages/desktop-client/src/icons/v1/ArrowLeft.tsx index 39b57af26ba..7a510ccc4b5 100644 --- a/packages/desktop-client/src/icons/v1/ArrowLeft.tsx +++ b/packages/desktop-client/src/icons/v1/ArrowLeft.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowLeft = (props: SVGProps) => ( +export const SvgArrowLeft = (props: SVGProps) => ( ) => ( /> ); -export default SvgArrowLeft; diff --git a/packages/desktop-client/src/icons/v1/ArrowOutlineDown.tsx b/packages/desktop-client/src/icons/v1/ArrowOutlineDown.tsx index 6ebc0e9b4e6..4e4d38810f6 100644 --- a/packages/desktop-client/src/icons/v1/ArrowOutlineDown.tsx +++ b/packages/desktop-client/src/icons/v1/ArrowOutlineDown.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowOutlineDown = (props: SVGProps) => ( +export const SvgArrowOutlineDown = (props: SVGProps) => ( ) => ( /> ); -export default SvgArrowOutlineDown; diff --git a/packages/desktop-client/src/icons/v1/ArrowOutlineLeft.tsx b/packages/desktop-client/src/icons/v1/ArrowOutlineLeft.tsx index 32f56ce12ec..9a3e8890467 100644 --- a/packages/desktop-client/src/icons/v1/ArrowOutlineLeft.tsx +++ b/packages/desktop-client/src/icons/v1/ArrowOutlineLeft.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowOutlineLeft = (props: SVGProps) => ( +export const SvgArrowOutlineLeft = (props: SVGProps) => ( ) => ( /> ); -export default SvgArrowOutlineLeft; diff --git a/packages/desktop-client/src/icons/v1/ArrowOutlineRight.tsx b/packages/desktop-client/src/icons/v1/ArrowOutlineRight.tsx index f75c6c63704..f09a9762c97 100644 --- a/packages/desktop-client/src/icons/v1/ArrowOutlineRight.tsx +++ b/packages/desktop-client/src/icons/v1/ArrowOutlineRight.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowOutlineRight = (props: SVGProps) => ( +export const SvgArrowOutlineRight = (props: SVGProps) => ( ) => ( /> ); -export default SvgArrowOutlineRight; diff --git a/packages/desktop-client/src/icons/v1/ArrowOutlineUp.tsx b/packages/desktop-client/src/icons/v1/ArrowOutlineUp.tsx index 452f680eeda..6050ab8f840 100644 --- a/packages/desktop-client/src/icons/v1/ArrowOutlineUp.tsx +++ b/packages/desktop-client/src/icons/v1/ArrowOutlineUp.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowOutlineUp = (props: SVGProps) => ( +export const SvgArrowOutlineUp = (props: SVGProps) => ( ) => ( /> ); -export default SvgArrowOutlineUp; diff --git a/packages/desktop-client/src/icons/v1/ArrowRight.tsx b/packages/desktop-client/src/icons/v1/ArrowRight.tsx index 167eee2d4c8..6475516cc78 100644 --- a/packages/desktop-client/src/icons/v1/ArrowRight.tsx +++ b/packages/desktop-client/src/icons/v1/ArrowRight.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowRight = (props: SVGProps) => ( +export const SvgArrowRight = (props: SVGProps) => ( ) => ( /> ); -export default SvgArrowRight; diff --git a/packages/desktop-client/src/icons/v1/ArrowThickDown.tsx b/packages/desktop-client/src/icons/v1/ArrowThickDown.tsx index 892886f4ad0..cb0d3593057 100644 --- a/packages/desktop-client/src/icons/v1/ArrowThickDown.tsx +++ b/packages/desktop-client/src/icons/v1/ArrowThickDown.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowThickDown = (props: SVGProps) => ( +export const SvgArrowThickDown = (props: SVGProps) => ( ) => ( ); -export default SvgArrowThickDown; diff --git a/packages/desktop-client/src/icons/v1/ArrowThickLeft.tsx b/packages/desktop-client/src/icons/v1/ArrowThickLeft.tsx index 2cea251e435..2836bfc4d5f 100644 --- a/packages/desktop-client/src/icons/v1/ArrowThickLeft.tsx +++ b/packages/desktop-client/src/icons/v1/ArrowThickLeft.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowThickLeft = (props: SVGProps) => ( +export const SvgArrowThickLeft = (props: SVGProps) => ( ) => ( ); -export default SvgArrowThickLeft; diff --git a/packages/desktop-client/src/icons/v1/ArrowThickRight.tsx b/packages/desktop-client/src/icons/v1/ArrowThickRight.tsx index cc92ba8a787..741a9fe13e6 100644 --- a/packages/desktop-client/src/icons/v1/ArrowThickRight.tsx +++ b/packages/desktop-client/src/icons/v1/ArrowThickRight.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowThickRight = (props: SVGProps) => ( +export const SvgArrowThickRight = (props: SVGProps) => ( ) => ( ); -export default SvgArrowThickRight; diff --git a/packages/desktop-client/src/icons/v1/ArrowThickUp.tsx b/packages/desktop-client/src/icons/v1/ArrowThickUp.tsx index ca6c0adde5e..92356686e04 100644 --- a/packages/desktop-client/src/icons/v1/ArrowThickUp.tsx +++ b/packages/desktop-client/src/icons/v1/ArrowThickUp.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowThickUp = (props: SVGProps) => ( +export const SvgArrowThickUp = (props: SVGProps) => ( ) => ( ); -export default SvgArrowThickUp; diff --git a/packages/desktop-client/src/icons/v1/ArrowThinDown.tsx b/packages/desktop-client/src/icons/v1/ArrowThinDown.tsx index af09ad7a1d7..fecdc46eac1 100644 --- a/packages/desktop-client/src/icons/v1/ArrowThinDown.tsx +++ b/packages/desktop-client/src/icons/v1/ArrowThinDown.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowThinDown = (props: SVGProps) => ( +export const SvgArrowThinDown = (props: SVGProps) => ( ) => ( /> ); -export default SvgArrowThinDown; diff --git a/packages/desktop-client/src/icons/v1/ArrowThinLeft.tsx b/packages/desktop-client/src/icons/v1/ArrowThinLeft.tsx index 63cb5f5d4f7..7dfc39f9cce 100644 --- a/packages/desktop-client/src/icons/v1/ArrowThinLeft.tsx +++ b/packages/desktop-client/src/icons/v1/ArrowThinLeft.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowThinLeft = (props: SVGProps) => ( +export const SvgArrowThinLeft = (props: SVGProps) => ( ) => ( /> ); -export default SvgArrowThinLeft; diff --git a/packages/desktop-client/src/icons/v1/ArrowThinRight.tsx b/packages/desktop-client/src/icons/v1/ArrowThinRight.tsx index 99cf0c1b11e..ec453bd2a1c 100644 --- a/packages/desktop-client/src/icons/v1/ArrowThinRight.tsx +++ b/packages/desktop-client/src/icons/v1/ArrowThinRight.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowThinRight = (props: SVGProps) => ( +export const SvgArrowThinRight = (props: SVGProps) => ( ) => ( /> ); -export default SvgArrowThinRight; diff --git a/packages/desktop-client/src/icons/v1/ArrowThinUp.tsx b/packages/desktop-client/src/icons/v1/ArrowThinUp.tsx index a89d92e475e..06269f4d681 100644 --- a/packages/desktop-client/src/icons/v1/ArrowThinUp.tsx +++ b/packages/desktop-client/src/icons/v1/ArrowThinUp.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowThinUp = (props: SVGProps) => ( +export const SvgArrowThinUp = (props: SVGProps) => ( ) => ( /> ); -export default SvgArrowThinUp; diff --git a/packages/desktop-client/src/icons/v1/ArrowUp.tsx b/packages/desktop-client/src/icons/v1/ArrowUp.tsx index 4f251e2aee8..5af2d7005f5 100644 --- a/packages/desktop-client/src/icons/v1/ArrowUp.tsx +++ b/packages/desktop-client/src/icons/v1/ArrowUp.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowUp = (props: SVGProps) => ( +export const SvgArrowUp = (props: SVGProps) => ( ) => ( /> ); -export default SvgArrowUp; diff --git a/packages/desktop-client/src/icons/v1/Artist.tsx b/packages/desktop-client/src/icons/v1/Artist.tsx index 620bbeee0f1..c5e3e4f2324 100644 --- a/packages/desktop-client/src/icons/v1/Artist.tsx +++ b/packages/desktop-client/src/icons/v1/Artist.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArtist = (props: SVGProps) => ( +export const SvgArtist = (props: SVGProps) => ( ) => ( /> ); -export default SvgArtist; diff --git a/packages/desktop-client/src/icons/v1/AtSymbol.tsx b/packages/desktop-client/src/icons/v1/AtSymbol.tsx index b8d672bef14..18a3406e096 100644 --- a/packages/desktop-client/src/icons/v1/AtSymbol.tsx +++ b/packages/desktop-client/src/icons/v1/AtSymbol.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgAtSymbol = (props: SVGProps) => ( +export const SvgAtSymbol = (props: SVGProps) => ( ) => ( /> ); -export default SvgAtSymbol; diff --git a/packages/desktop-client/src/icons/v1/Attachment.tsx b/packages/desktop-client/src/icons/v1/Attachment.tsx index ba7adc90093..dfb2f9a2847 100644 --- a/packages/desktop-client/src/icons/v1/Attachment.tsx +++ b/packages/desktop-client/src/icons/v1/Attachment.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgAttachment = (props: SVGProps) => ( +export const SvgAttachment = (props: SVGProps) => ( ) => ( /> ); -export default SvgAttachment; diff --git a/packages/desktop-client/src/icons/v1/Backspace.tsx b/packages/desktop-client/src/icons/v1/Backspace.tsx index 0921df4ec6a..603050b0145 100644 --- a/packages/desktop-client/src/icons/v1/Backspace.tsx +++ b/packages/desktop-client/src/icons/v1/Backspace.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBackspace = (props: SVGProps) => ( +export const SvgBackspace = (props: SVGProps) => ( ) => ( /> ); -export default SvgBackspace; diff --git a/packages/desktop-client/src/icons/v1/Backward.tsx b/packages/desktop-client/src/icons/v1/Backward.tsx index 407f1c6e918..bf0990ba117 100644 --- a/packages/desktop-client/src/icons/v1/Backward.tsx +++ b/packages/desktop-client/src/icons/v1/Backward.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBackward = (props: SVGProps) => ( +export const SvgBackward = (props: SVGProps) => ( ) => ( ); -export default SvgBackward; diff --git a/packages/desktop-client/src/icons/v1/BackwardStep.tsx b/packages/desktop-client/src/icons/v1/BackwardStep.tsx index a0b4a97de97..92744f47688 100644 --- a/packages/desktop-client/src/icons/v1/BackwardStep.tsx +++ b/packages/desktop-client/src/icons/v1/BackwardStep.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBackwardStep = (props: SVGProps) => ( +export const SvgBackwardStep = (props: SVGProps) => ( ) => ( ); -export default SvgBackwardStep; diff --git a/packages/desktop-client/src/icons/v1/Badge.tsx b/packages/desktop-client/src/icons/v1/Badge.tsx index 43afec767d4..94f9fba0f20 100644 --- a/packages/desktop-client/src/icons/v1/Badge.tsx +++ b/packages/desktop-client/src/icons/v1/Badge.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBadge = (props: SVGProps) => ( +export const SvgBadge = (props: SVGProps) => ( ) => ( /> ); -export default SvgBadge; diff --git a/packages/desktop-client/src/icons/v1/BatteryFull.tsx b/packages/desktop-client/src/icons/v1/BatteryFull.tsx index 5f67d1ae018..5cfe1f5e889 100644 --- a/packages/desktop-client/src/icons/v1/BatteryFull.tsx +++ b/packages/desktop-client/src/icons/v1/BatteryFull.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBatteryFull = (props: SVGProps) => ( +export const SvgBatteryFull = (props: SVGProps) => ( ) => ( /> ); -export default SvgBatteryFull; diff --git a/packages/desktop-client/src/icons/v1/BatteryHalf.tsx b/packages/desktop-client/src/icons/v1/BatteryHalf.tsx index 5c72fc8dcf1..eca3eb53d8f 100644 --- a/packages/desktop-client/src/icons/v1/BatteryHalf.tsx +++ b/packages/desktop-client/src/icons/v1/BatteryHalf.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBatteryHalf = (props: SVGProps) => ( +export const SvgBatteryHalf = (props: SVGProps) => ( ) => ( /> ); -export default SvgBatteryHalf; diff --git a/packages/desktop-client/src/icons/v1/BatteryLow.tsx b/packages/desktop-client/src/icons/v1/BatteryLow.tsx index 04cd28afbab..9f657194a82 100644 --- a/packages/desktop-client/src/icons/v1/BatteryLow.tsx +++ b/packages/desktop-client/src/icons/v1/BatteryLow.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBatteryLow = (props: SVGProps) => ( +export const SvgBatteryLow = (props: SVGProps) => ( ) => ( /> ); -export default SvgBatteryLow; diff --git a/packages/desktop-client/src/icons/v1/Beverage.tsx b/packages/desktop-client/src/icons/v1/Beverage.tsx index c70b8eea090..84c44b2dde1 100644 --- a/packages/desktop-client/src/icons/v1/Beverage.tsx +++ b/packages/desktop-client/src/icons/v1/Beverage.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBeverage = (props: SVGProps) => ( +export const SvgBeverage = (props: SVGProps) => ( ) => ( /> ); -export default SvgBeverage; diff --git a/packages/desktop-client/src/icons/v1/Block.tsx b/packages/desktop-client/src/icons/v1/Block.tsx index 9acee929a8f..d70f7135773 100644 --- a/packages/desktop-client/src/icons/v1/Block.tsx +++ b/packages/desktop-client/src/icons/v1/Block.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBlock = (props: SVGProps) => ( +export const SvgBlock = (props: SVGProps) => ( ) => ( /> ); -export default SvgBlock; diff --git a/packages/desktop-client/src/icons/v1/Bluetooth.tsx b/packages/desktop-client/src/icons/v1/Bluetooth.tsx index ac69c42ff29..9203cce1ebf 100644 --- a/packages/desktop-client/src/icons/v1/Bluetooth.tsx +++ b/packages/desktop-client/src/icons/v1/Bluetooth.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBluetooth = (props: SVGProps) => ( +export const SvgBluetooth = (props: SVGProps) => ( ) => ( /> ); -export default SvgBluetooth; diff --git a/packages/desktop-client/src/icons/v1/Bolt.tsx b/packages/desktop-client/src/icons/v1/Bolt.tsx index dc1736b2450..6aa0f8bbb19 100644 --- a/packages/desktop-client/src/icons/v1/Bolt.tsx +++ b/packages/desktop-client/src/icons/v1/Bolt.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBolt = (props: SVGProps) => ( +export const SvgBolt = (props: SVGProps) => ( ) => ( ); -export default SvgBolt; diff --git a/packages/desktop-client/src/icons/v1/BookReference.tsx b/packages/desktop-client/src/icons/v1/BookReference.tsx index 91987db343f..0531931056c 100644 --- a/packages/desktop-client/src/icons/v1/BookReference.tsx +++ b/packages/desktop-client/src/icons/v1/BookReference.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBookReference = (props: SVGProps) => ( +export const SvgBookReference = (props: SVGProps) => ( ) => ( /> ); -export default SvgBookReference; diff --git a/packages/desktop-client/src/icons/v1/Bookmark.tsx b/packages/desktop-client/src/icons/v1/Bookmark.tsx index 5d005382bfb..718314f79e7 100644 --- a/packages/desktop-client/src/icons/v1/Bookmark.tsx +++ b/packages/desktop-client/src/icons/v1/Bookmark.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBookmark = (props: SVGProps) => ( +export const SvgBookmark = (props: SVGProps) => ( ) => ( /> ); -export default SvgBookmark; diff --git a/packages/desktop-client/src/icons/v1/BookmarkCopy2.tsx b/packages/desktop-client/src/icons/v1/BookmarkCopy2.tsx index 3c6771dcfec..ca6693e2ec5 100644 --- a/packages/desktop-client/src/icons/v1/BookmarkCopy2.tsx +++ b/packages/desktop-client/src/icons/v1/BookmarkCopy2.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBookmarkCopy2 = (props: SVGProps) => ( +export const SvgBookmarkCopy2 = (props: SVGProps) => ( ) => ( ); -export default SvgBookmarkCopy2; diff --git a/packages/desktop-client/src/icons/v1/BookmarkCopy3.tsx b/packages/desktop-client/src/icons/v1/BookmarkCopy3.tsx index b1481a27a87..795a59658f3 100644 --- a/packages/desktop-client/src/icons/v1/BookmarkCopy3.tsx +++ b/packages/desktop-client/src/icons/v1/BookmarkCopy3.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBookmarkCopy3 = (props: SVGProps) => ( +export const SvgBookmarkCopy3 = (props: SVGProps) => ( ) => ( ); -export default SvgBookmarkCopy3; diff --git a/packages/desktop-client/src/icons/v1/BookmarkOutline.tsx b/packages/desktop-client/src/icons/v1/BookmarkOutline.tsx index f3318c8ae4e..709539ab9ee 100644 --- a/packages/desktop-client/src/icons/v1/BookmarkOutline.tsx +++ b/packages/desktop-client/src/icons/v1/BookmarkOutline.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBookmarkOutline = (props: SVGProps) => ( +export const SvgBookmarkOutline = (props: SVGProps) => ( ) => ( /> ); -export default SvgBookmarkOutline; diff --git a/packages/desktop-client/src/icons/v1/BookmarkOutlineAdd.tsx b/packages/desktop-client/src/icons/v1/BookmarkOutlineAdd.tsx index 7454370f08e..0dde71518e3 100644 --- a/packages/desktop-client/src/icons/v1/BookmarkOutlineAdd.tsx +++ b/packages/desktop-client/src/icons/v1/BookmarkOutlineAdd.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBookmarkOutlineAdd = (props: SVGProps) => ( +export const SvgBookmarkOutlineAdd = (props: SVGProps) => ( ) => ( /> ); -export default SvgBookmarkOutlineAdd; diff --git a/packages/desktop-client/src/icons/v1/BorderAll.tsx b/packages/desktop-client/src/icons/v1/BorderAll.tsx index e605c187271..98878143965 100644 --- a/packages/desktop-client/src/icons/v1/BorderAll.tsx +++ b/packages/desktop-client/src/icons/v1/BorderAll.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBorderAll = (props: SVGProps) => ( +export const SvgBorderAll = (props: SVGProps) => ( ) => ( /> ); -export default SvgBorderAll; diff --git a/packages/desktop-client/src/icons/v1/BorderBottom.tsx b/packages/desktop-client/src/icons/v1/BorderBottom.tsx index b68a05bb050..02be541d333 100644 --- a/packages/desktop-client/src/icons/v1/BorderBottom.tsx +++ b/packages/desktop-client/src/icons/v1/BorderBottom.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBorderBottom = (props: SVGProps) => ( +export const SvgBorderBottom = (props: SVGProps) => ( ) => ( /> ); -export default SvgBorderBottom; diff --git a/packages/desktop-client/src/icons/v1/BorderHorizontal.tsx b/packages/desktop-client/src/icons/v1/BorderHorizontal.tsx index 00495f1ddfa..a7845bd1ee3 100644 --- a/packages/desktop-client/src/icons/v1/BorderHorizontal.tsx +++ b/packages/desktop-client/src/icons/v1/BorderHorizontal.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBorderHorizontal = (props: SVGProps) => ( +export const SvgBorderHorizontal = (props: SVGProps) => ( ) => ( /> ); -export default SvgBorderHorizontal; diff --git a/packages/desktop-client/src/icons/v1/BorderInner.tsx b/packages/desktop-client/src/icons/v1/BorderInner.tsx index d29a994de70..50e1f9578aa 100644 --- a/packages/desktop-client/src/icons/v1/BorderInner.tsx +++ b/packages/desktop-client/src/icons/v1/BorderInner.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBorderInner = (props: SVGProps) => ( +export const SvgBorderInner = (props: SVGProps) => ( ) => ( /> ); -export default SvgBorderInner; diff --git a/packages/desktop-client/src/icons/v1/BorderLeft.tsx b/packages/desktop-client/src/icons/v1/BorderLeft.tsx index be056c8507d..ef4af27a826 100644 --- a/packages/desktop-client/src/icons/v1/BorderLeft.tsx +++ b/packages/desktop-client/src/icons/v1/BorderLeft.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBorderLeft = (props: SVGProps) => ( +export const SvgBorderLeft = (props: SVGProps) => ( ) => ( /> ); -export default SvgBorderLeft; diff --git a/packages/desktop-client/src/icons/v1/BorderNone.tsx b/packages/desktop-client/src/icons/v1/BorderNone.tsx index 5d8b22530f4..a1dd526d894 100644 --- a/packages/desktop-client/src/icons/v1/BorderNone.tsx +++ b/packages/desktop-client/src/icons/v1/BorderNone.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBorderNone = (props: SVGProps) => ( +export const SvgBorderNone = (props: SVGProps) => ( ) => ( /> ); -export default SvgBorderNone; diff --git a/packages/desktop-client/src/icons/v1/BorderOuter.tsx b/packages/desktop-client/src/icons/v1/BorderOuter.tsx index c4227c22f99..65562f17988 100644 --- a/packages/desktop-client/src/icons/v1/BorderOuter.tsx +++ b/packages/desktop-client/src/icons/v1/BorderOuter.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBorderOuter = (props: SVGProps) => ( +export const SvgBorderOuter = (props: SVGProps) => ( ) => ( /> ); -export default SvgBorderOuter; diff --git a/packages/desktop-client/src/icons/v1/BorderRight.tsx b/packages/desktop-client/src/icons/v1/BorderRight.tsx index 5ca488833b3..af299c231ec 100644 --- a/packages/desktop-client/src/icons/v1/BorderRight.tsx +++ b/packages/desktop-client/src/icons/v1/BorderRight.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBorderRight = (props: SVGProps) => ( +export const SvgBorderRight = (props: SVGProps) => ( ) => ( /> ); -export default SvgBorderRight; diff --git a/packages/desktop-client/src/icons/v1/BorderTop.tsx b/packages/desktop-client/src/icons/v1/BorderTop.tsx index 33f8b022981..2c2b89cf957 100644 --- a/packages/desktop-client/src/icons/v1/BorderTop.tsx +++ b/packages/desktop-client/src/icons/v1/BorderTop.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBorderTop = (props: SVGProps) => ( +export const SvgBorderTop = (props: SVGProps) => ( ) => ( /> ); -export default SvgBorderTop; diff --git a/packages/desktop-client/src/icons/v1/BorderVertical.tsx b/packages/desktop-client/src/icons/v1/BorderVertical.tsx index 34321d2171e..66934668021 100644 --- a/packages/desktop-client/src/icons/v1/BorderVertical.tsx +++ b/packages/desktop-client/src/icons/v1/BorderVertical.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBorderVertical = (props: SVGProps) => ( +export const SvgBorderVertical = (props: SVGProps) => ( ) => ( /> ); -export default SvgBorderVertical; diff --git a/packages/desktop-client/src/icons/v1/Box.tsx b/packages/desktop-client/src/icons/v1/Box.tsx index e783b16c9b5..60393b4c8be 100644 --- a/packages/desktop-client/src/icons/v1/Box.tsx +++ b/packages/desktop-client/src/icons/v1/Box.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBox = (props: SVGProps) => ( +export const SvgBox = (props: SVGProps) => ( ) => ( /> ); -export default SvgBox; diff --git a/packages/desktop-client/src/icons/v1/BrightnessDown.tsx b/packages/desktop-client/src/icons/v1/BrightnessDown.tsx index c15a10854de..65052a75314 100644 --- a/packages/desktop-client/src/icons/v1/BrightnessDown.tsx +++ b/packages/desktop-client/src/icons/v1/BrightnessDown.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBrightnessDown = (props: SVGProps) => ( +export const SvgBrightnessDown = (props: SVGProps) => ( ) => ( /> ); -export default SvgBrightnessDown; diff --git a/packages/desktop-client/src/icons/v1/BrightnessUp.tsx b/packages/desktop-client/src/icons/v1/BrightnessUp.tsx index a4b55f99593..2eb92b30525 100644 --- a/packages/desktop-client/src/icons/v1/BrightnessUp.tsx +++ b/packages/desktop-client/src/icons/v1/BrightnessUp.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBrightnessUp = (props: SVGProps) => ( +export const SvgBrightnessUp = (props: SVGProps) => ( ) => ( /> ); -export default SvgBrightnessUp; diff --git a/packages/desktop-client/src/icons/v1/BrowserWindow.tsx b/packages/desktop-client/src/icons/v1/BrowserWindow.tsx index 703cc025471..9a2bb5af319 100644 --- a/packages/desktop-client/src/icons/v1/BrowserWindow.tsx +++ b/packages/desktop-client/src/icons/v1/BrowserWindow.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBrowserWindow = (props: SVGProps) => ( +export const SvgBrowserWindow = (props: SVGProps) => ( ) => ( /> ); -export default SvgBrowserWindow; diff --git a/packages/desktop-client/src/icons/v1/BrowserWindowNew.tsx b/packages/desktop-client/src/icons/v1/BrowserWindowNew.tsx index 8e8ec8af3d0..3545689cf60 100644 --- a/packages/desktop-client/src/icons/v1/BrowserWindowNew.tsx +++ b/packages/desktop-client/src/icons/v1/BrowserWindowNew.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBrowserWindowNew = (props: SVGProps) => ( +export const SvgBrowserWindowNew = (props: SVGProps) => ( ) => ( /> ); -export default SvgBrowserWindowNew; diff --git a/packages/desktop-client/src/icons/v1/BrowserWindowOpen.tsx b/packages/desktop-client/src/icons/v1/BrowserWindowOpen.tsx index a38058e1af3..d27685ae9fb 100644 --- a/packages/desktop-client/src/icons/v1/BrowserWindowOpen.tsx +++ b/packages/desktop-client/src/icons/v1/BrowserWindowOpen.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBrowserWindowOpen = (props: SVGProps) => ( +export const SvgBrowserWindowOpen = (props: SVGProps) => ( ) => ( /> ); -export default SvgBrowserWindowOpen; diff --git a/packages/desktop-client/src/icons/v1/Bug.tsx b/packages/desktop-client/src/icons/v1/Bug.tsx index e0a8ed5f715..7676a36280d 100644 --- a/packages/desktop-client/src/icons/v1/Bug.tsx +++ b/packages/desktop-client/src/icons/v1/Bug.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBug = (props: SVGProps) => ( +export const SvgBug = (props: SVGProps) => ( ) => ( /> ); -export default SvgBug; diff --git a/packages/desktop-client/src/icons/v1/Buoy.tsx b/packages/desktop-client/src/icons/v1/Buoy.tsx index 1f3c1df7a90..05fff9ff800 100644 --- a/packages/desktop-client/src/icons/v1/Buoy.tsx +++ b/packages/desktop-client/src/icons/v1/Buoy.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgBuoy = (props: SVGProps) => ( +export const SvgBuoy = (props: SVGProps) => ( ) => ( /> ); -export default SvgBuoy; diff --git a/packages/desktop-client/src/icons/v1/Calculator.tsx b/packages/desktop-client/src/icons/v1/Calculator.tsx index 7400394b84e..264858a763a 100644 --- a/packages/desktop-client/src/icons/v1/Calculator.tsx +++ b/packages/desktop-client/src/icons/v1/Calculator.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCalculator = (props: SVGProps) => ( +export const SvgCalculator = (props: SVGProps) => ( ) => ( /> ); -export default SvgCalculator; diff --git a/packages/desktop-client/src/icons/v1/Calendar.tsx b/packages/desktop-client/src/icons/v1/Calendar.tsx index e6680cbde64..9f8d9dcf426 100644 --- a/packages/desktop-client/src/icons/v1/Calendar.tsx +++ b/packages/desktop-client/src/icons/v1/Calendar.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCalendar = (props: SVGProps) => ( +export const SvgCalendar = (props: SVGProps) => ( ) => ( /> ); -export default SvgCalendar; diff --git a/packages/desktop-client/src/icons/v1/Camera.tsx b/packages/desktop-client/src/icons/v1/Camera.tsx index 43d14b76cbb..17d32a37fe1 100644 --- a/packages/desktop-client/src/icons/v1/Camera.tsx +++ b/packages/desktop-client/src/icons/v1/Camera.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCamera = (props: SVGProps) => ( +export const SvgCamera = (props: SVGProps) => ( ) => ( /> ); -export default SvgCamera; diff --git a/packages/desktop-client/src/icons/v1/Chart.tsx b/packages/desktop-client/src/icons/v1/Chart.tsx index 935b066ab85..a42e6bae45a 100644 --- a/packages/desktop-client/src/icons/v1/Chart.tsx +++ b/packages/desktop-client/src/icons/v1/Chart.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgChart = (props: SVGProps) => ( +export const SvgChart = (props: SVGProps) => ( ) => ( /> ); -export default SvgChart; diff --git a/packages/desktop-client/src/icons/v1/ChartBar.tsx b/packages/desktop-client/src/icons/v1/ChartBar.tsx index 1732ca13ec8..35af1613dfb 100644 --- a/packages/desktop-client/src/icons/v1/ChartBar.tsx +++ b/packages/desktop-client/src/icons/v1/ChartBar.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgChartBar = (props: SVGProps) => ( +export const SvgChartBar = (props: SVGProps) => ( ) => ( /> ); -export default SvgChartBar; diff --git a/packages/desktop-client/src/icons/v1/ChartPie.tsx b/packages/desktop-client/src/icons/v1/ChartPie.tsx index 47755340db1..977969359f8 100644 --- a/packages/desktop-client/src/icons/v1/ChartPie.tsx +++ b/packages/desktop-client/src/icons/v1/ChartPie.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgChartPie = (props: SVGProps) => ( +export const SvgChartPie = (props: SVGProps) => ( ) => ( /> ); -export default SvgChartPie; diff --git a/packages/desktop-client/src/icons/v1/ChatBubbleDots.tsx b/packages/desktop-client/src/icons/v1/ChatBubbleDots.tsx index 8d2a3ea6537..df5feb25418 100644 --- a/packages/desktop-client/src/icons/v1/ChatBubbleDots.tsx +++ b/packages/desktop-client/src/icons/v1/ChatBubbleDots.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgChatBubbleDots = (props: SVGProps) => ( +export const SvgChatBubbleDots = (props: SVGProps) => ( ) => ( /> ); -export default SvgChatBubbleDots; diff --git a/packages/desktop-client/src/icons/v1/CheckAlternative.tsx b/packages/desktop-client/src/icons/v1/CheckAlternative.tsx index d5f846cfa98..5ac5e075038 100644 --- a/packages/desktop-client/src/icons/v1/CheckAlternative.tsx +++ b/packages/desktop-client/src/icons/v1/CheckAlternative.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCheckAlternative = (props: SVGProps) => ( +export const SvgCheckAlternative = (props: SVGProps) => ( ) => ( /> ); -export default SvgCheckAlternative; diff --git a/packages/desktop-client/src/icons/v1/Checkmark.tsx b/packages/desktop-client/src/icons/v1/Checkmark.tsx index d361b8f9b6b..5e98954c330 100644 --- a/packages/desktop-client/src/icons/v1/Checkmark.tsx +++ b/packages/desktop-client/src/icons/v1/Checkmark.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCheckmark = (props: SVGProps) => ( +export const SvgCheckmark = (props: SVGProps) => ( ) => ( ); -export default SvgCheckmark; diff --git a/packages/desktop-client/src/icons/v1/CheckmarkOutline.tsx b/packages/desktop-client/src/icons/v1/CheckmarkOutline.tsx index 94439524698..2ab4f804a85 100644 --- a/packages/desktop-client/src/icons/v1/CheckmarkOutline.tsx +++ b/packages/desktop-client/src/icons/v1/CheckmarkOutline.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCheckmarkOutline = (props: SVGProps) => ( +export const SvgCheckmarkOutline = (props: SVGProps) => ( ) => ( /> ); -export default SvgCheckmarkOutline; diff --git a/packages/desktop-client/src/icons/v1/CheveronDown.tsx b/packages/desktop-client/src/icons/v1/CheveronDown.tsx index 66d27527f9d..72428d81660 100644 --- a/packages/desktop-client/src/icons/v1/CheveronDown.tsx +++ b/packages/desktop-client/src/icons/v1/CheveronDown.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCheveronDown = (props: SVGProps) => ( +export const SvgCheveronDown = (props: SVGProps) => ( ) => ( /> ); -export default SvgCheveronDown; diff --git a/packages/desktop-client/src/icons/v1/CheveronLeft.tsx b/packages/desktop-client/src/icons/v1/CheveronLeft.tsx index d512ee8f1d2..fa9dabb5064 100644 --- a/packages/desktop-client/src/icons/v1/CheveronLeft.tsx +++ b/packages/desktop-client/src/icons/v1/CheveronLeft.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCheveronLeft = (props: SVGProps) => ( +export const SvgCheveronLeft = (props: SVGProps) => ( ) => ( /> ); -export default SvgCheveronLeft; diff --git a/packages/desktop-client/src/icons/v1/CheveronOutlineDown.tsx b/packages/desktop-client/src/icons/v1/CheveronOutlineDown.tsx index 69817f72ad1..693b9ae2191 100644 --- a/packages/desktop-client/src/icons/v1/CheveronOutlineDown.tsx +++ b/packages/desktop-client/src/icons/v1/CheveronOutlineDown.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCheveronOutlineDown = (props: SVGProps) => ( +export const SvgCheveronOutlineDown = (props: SVGProps) => ( ) => ( /> ); -export default SvgCheveronOutlineDown; diff --git a/packages/desktop-client/src/icons/v1/CheveronOutlineLeft.tsx b/packages/desktop-client/src/icons/v1/CheveronOutlineLeft.tsx index bfc37d9ac87..6320d3ccd45 100644 --- a/packages/desktop-client/src/icons/v1/CheveronOutlineLeft.tsx +++ b/packages/desktop-client/src/icons/v1/CheveronOutlineLeft.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCheveronOutlineLeft = (props: SVGProps) => ( +export const SvgCheveronOutlineLeft = (props: SVGProps) => ( ) => ( /> ); -export default SvgCheveronOutlineLeft; diff --git a/packages/desktop-client/src/icons/v1/CheveronOutlineRight.tsx b/packages/desktop-client/src/icons/v1/CheveronOutlineRight.tsx index abd1748bfa2..577417f769c 100644 --- a/packages/desktop-client/src/icons/v1/CheveronOutlineRight.tsx +++ b/packages/desktop-client/src/icons/v1/CheveronOutlineRight.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCheveronOutlineRight = (props: SVGProps) => ( +export const SvgCheveronOutlineRight = (props: SVGProps) => ( ) => ( /> ); -export default SvgCheveronOutlineRight; diff --git a/packages/desktop-client/src/icons/v1/CheveronOutlineUp.tsx b/packages/desktop-client/src/icons/v1/CheveronOutlineUp.tsx index 1d8500a47bb..b6efe1b7f0a 100644 --- a/packages/desktop-client/src/icons/v1/CheveronOutlineUp.tsx +++ b/packages/desktop-client/src/icons/v1/CheveronOutlineUp.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCheveronOutlineUp = (props: SVGProps) => ( +export const SvgCheveronOutlineUp = (props: SVGProps) => ( ) => ( /> ); -export default SvgCheveronOutlineUp; diff --git a/packages/desktop-client/src/icons/v1/CheveronRight.tsx b/packages/desktop-client/src/icons/v1/CheveronRight.tsx index 516aef5511a..3e41b601f1c 100644 --- a/packages/desktop-client/src/icons/v1/CheveronRight.tsx +++ b/packages/desktop-client/src/icons/v1/CheveronRight.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCheveronRight = (props: SVGProps) => ( +export const SvgCheveronRight = (props: SVGProps) => ( ) => ( /> ); -export default SvgCheveronRight; diff --git a/packages/desktop-client/src/icons/v1/CheveronUp.tsx b/packages/desktop-client/src/icons/v1/CheveronUp.tsx index 4fc983ecc82..a533dc8798b 100644 --- a/packages/desktop-client/src/icons/v1/CheveronUp.tsx +++ b/packages/desktop-client/src/icons/v1/CheveronUp.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCheveronUp = (props: SVGProps) => ( +export const SvgCheveronUp = (props: SVGProps) => ( ) => ( /> ); -export default SvgCheveronUp; diff --git a/packages/desktop-client/src/icons/v1/Clipboard.tsx b/packages/desktop-client/src/icons/v1/Clipboard.tsx index 987eed3852d..c1e56ba8c7a 100644 --- a/packages/desktop-client/src/icons/v1/Clipboard.tsx +++ b/packages/desktop-client/src/icons/v1/Clipboard.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgClipboard = (props: SVGProps) => ( +export const SvgClipboard = (props: SVGProps) => ( ) => ( /> ); -export default SvgClipboard; diff --git a/packages/desktop-client/src/icons/v1/Close.tsx b/packages/desktop-client/src/icons/v1/Close.tsx index a4a065e25e1..b2868a4920e 100644 --- a/packages/desktop-client/src/icons/v1/Close.tsx +++ b/packages/desktop-client/src/icons/v1/Close.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgClose = (props: SVGProps) => ( +export const SvgClose = (props: SVGProps) => ( ) => ( /> ); -export default SvgClose; diff --git a/packages/desktop-client/src/icons/v1/CloseOutline.tsx b/packages/desktop-client/src/icons/v1/CloseOutline.tsx index 5faaf9dda91..d15c3a9b20a 100644 --- a/packages/desktop-client/src/icons/v1/CloseOutline.tsx +++ b/packages/desktop-client/src/icons/v1/CloseOutline.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCloseOutline = (props: SVGProps) => ( +export const SvgCloseOutline = (props: SVGProps) => ( ) => ( /> ); -export default SvgCloseOutline; diff --git a/packages/desktop-client/src/icons/v1/CloseSolid.tsx b/packages/desktop-client/src/icons/v1/CloseSolid.tsx index 4384d5df6a8..dcbdeae268f 100644 --- a/packages/desktop-client/src/icons/v1/CloseSolid.tsx +++ b/packages/desktop-client/src/icons/v1/CloseSolid.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCloseSolid = (props: SVGProps) => ( +export const SvgCloseSolid = (props: SVGProps) => ( ) => ( /> ); -export default SvgCloseSolid; diff --git a/packages/desktop-client/src/icons/v1/Cloud.tsx b/packages/desktop-client/src/icons/v1/Cloud.tsx index 43e05923047..7a3eed160c9 100644 --- a/packages/desktop-client/src/icons/v1/Cloud.tsx +++ b/packages/desktop-client/src/icons/v1/Cloud.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCloud = (props: SVGProps) => ( +export const SvgCloud = (props: SVGProps) => ( ) => ( /> ); -export default SvgCloud; diff --git a/packages/desktop-client/src/icons/v1/CloudCheck.tsx b/packages/desktop-client/src/icons/v1/CloudCheck.tsx index 52b5e14d1a8..ce93bebb3a4 100644 --- a/packages/desktop-client/src/icons/v1/CloudCheck.tsx +++ b/packages/desktop-client/src/icons/v1/CloudCheck.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCloudCheck = (props: SVGProps) => ( +export const SvgCloudCheck = (props: SVGProps) => ( ) => ( /> ); -export default SvgCloudCheck; diff --git a/packages/desktop-client/src/icons/v1/CloudDownload.tsx b/packages/desktop-client/src/icons/v1/CloudDownload.tsx index 1b82d56d423..02c2dfd0f89 100644 --- a/packages/desktop-client/src/icons/v1/CloudDownload.tsx +++ b/packages/desktop-client/src/icons/v1/CloudDownload.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCloudDownload = (props: SVGProps) => ( +export const SvgCloudDownload = (props: SVGProps) => ( ) => ( /> ); -export default SvgCloudDownload; diff --git a/packages/desktop-client/src/icons/v1/CloudUpload.tsx b/packages/desktop-client/src/icons/v1/CloudUpload.tsx index a8fe45685ff..44fe9eb4bbe 100644 --- a/packages/desktop-client/src/icons/v1/CloudUpload.tsx +++ b/packages/desktop-client/src/icons/v1/CloudUpload.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCloudUpload = (props: SVGProps) => ( +export const SvgCloudUpload = (props: SVGProps) => ( ) => ( /> ); -export default SvgCloudUpload; diff --git a/packages/desktop-client/src/icons/v1/CloudWarning.tsx b/packages/desktop-client/src/icons/v1/CloudWarning.tsx index 5fa1206e77c..67f59cd2075 100644 --- a/packages/desktop-client/src/icons/v1/CloudWarning.tsx +++ b/packages/desktop-client/src/icons/v1/CloudWarning.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCloudWarning = (props: SVGProps) => ( +export const SvgCloudWarning = (props: SVGProps) => ( ) => ( /> ); -export default SvgCloudWarning; diff --git a/packages/desktop-client/src/icons/v1/Code.tsx b/packages/desktop-client/src/icons/v1/Code.tsx index 244d70aee1c..e8bf2219684 100644 --- a/packages/desktop-client/src/icons/v1/Code.tsx +++ b/packages/desktop-client/src/icons/v1/Code.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCode = (props: SVGProps) => ( +export const SvgCode = (props: SVGProps) => ( ) => ( /> ); -export default SvgCode; diff --git a/packages/desktop-client/src/icons/v1/Coffee.tsx b/packages/desktop-client/src/icons/v1/Coffee.tsx index b23aac1aeda..203a8589d46 100644 --- a/packages/desktop-client/src/icons/v1/Coffee.tsx +++ b/packages/desktop-client/src/icons/v1/Coffee.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCoffee = (props: SVGProps) => ( +export const SvgCoffee = (props: SVGProps) => ( ) => ( /> ); -export default SvgCoffee; diff --git a/packages/desktop-client/src/icons/v1/Cog.tsx b/packages/desktop-client/src/icons/v1/Cog.tsx index 98f9ba244f1..33c2ff3d85f 100644 --- a/packages/desktop-client/src/icons/v1/Cog.tsx +++ b/packages/desktop-client/src/icons/v1/Cog.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCog = (props: SVGProps) => ( +export const SvgCog = (props: SVGProps) => ( ) => ( /> ); -export default SvgCog; diff --git a/packages/desktop-client/src/icons/v1/ColorPalette.tsx b/packages/desktop-client/src/icons/v1/ColorPalette.tsx index db2e267d43e..c8274609ff5 100644 --- a/packages/desktop-client/src/icons/v1/ColorPalette.tsx +++ b/packages/desktop-client/src/icons/v1/ColorPalette.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgColorPalette = (props: SVGProps) => ( +export const SvgColorPalette = (props: SVGProps) => ( ) => ( /> ); -export default SvgColorPalette; diff --git a/packages/desktop-client/src/icons/v1/Compose.tsx b/packages/desktop-client/src/icons/v1/Compose.tsx index 8504943d989..2838d0ab9ce 100644 --- a/packages/desktop-client/src/icons/v1/Compose.tsx +++ b/packages/desktop-client/src/icons/v1/Compose.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCompose = (props: SVGProps) => ( +export const SvgCompose = (props: SVGProps) => ( ) => ( /> ); -export default SvgCompose; diff --git a/packages/desktop-client/src/icons/v1/ComputerDesktop.tsx b/packages/desktop-client/src/icons/v1/ComputerDesktop.tsx index 89b0c9cac4c..5dbf61fadfa 100644 --- a/packages/desktop-client/src/icons/v1/ComputerDesktop.tsx +++ b/packages/desktop-client/src/icons/v1/ComputerDesktop.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgComputerDesktop = (props: SVGProps) => ( +export const SvgComputerDesktop = (props: SVGProps) => ( ) => ( /> ); -export default SvgComputerDesktop; diff --git a/packages/desktop-client/src/icons/v1/ComputerLaptop.tsx b/packages/desktop-client/src/icons/v1/ComputerLaptop.tsx index b0e14e4ab65..caf62cfca98 100644 --- a/packages/desktop-client/src/icons/v1/ComputerLaptop.tsx +++ b/packages/desktop-client/src/icons/v1/ComputerLaptop.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgComputerLaptop = (props: SVGProps) => ( +export const SvgComputerLaptop = (props: SVGProps) => ( ) => ( /> ); -export default SvgComputerLaptop; diff --git a/packages/desktop-client/src/icons/v1/Conversation.tsx b/packages/desktop-client/src/icons/v1/Conversation.tsx index 0aace943735..8ac9f5108ed 100644 --- a/packages/desktop-client/src/icons/v1/Conversation.tsx +++ b/packages/desktop-client/src/icons/v1/Conversation.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgConversation = (props: SVGProps) => ( +export const SvgConversation = (props: SVGProps) => ( ) => ( /> ); -export default SvgConversation; diff --git a/packages/desktop-client/src/icons/v1/Copy.tsx b/packages/desktop-client/src/icons/v1/Copy.tsx index 03b02f47295..2541c9bbf16 100644 --- a/packages/desktop-client/src/icons/v1/Copy.tsx +++ b/packages/desktop-client/src/icons/v1/Copy.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCopy = (props: SVGProps) => ( +export const SvgCopy = (props: SVGProps) => ( ) => ( /> ); -export default SvgCopy; diff --git a/packages/desktop-client/src/icons/v1/CreditCard.tsx b/packages/desktop-client/src/icons/v1/CreditCard.tsx index 57c6757eead..0a5b03317d1 100644 --- a/packages/desktop-client/src/icons/v1/CreditCard.tsx +++ b/packages/desktop-client/src/icons/v1/CreditCard.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCreditCard = (props: SVGProps) => ( +export const SvgCreditCard = (props: SVGProps) => ( ) => ( /> ); -export default SvgCreditCard; diff --git a/packages/desktop-client/src/icons/v1/CurrencyDollar.tsx b/packages/desktop-client/src/icons/v1/CurrencyDollar.tsx index da4a1bd2bff..bc2dca52335 100644 --- a/packages/desktop-client/src/icons/v1/CurrencyDollar.tsx +++ b/packages/desktop-client/src/icons/v1/CurrencyDollar.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCurrencyDollar = (props: SVGProps) => ( +export const SvgCurrencyDollar = (props: SVGProps) => ( ) => ( /> ); -export default SvgCurrencyDollar; diff --git a/packages/desktop-client/src/icons/v1/Dashboard.tsx b/packages/desktop-client/src/icons/v1/Dashboard.tsx index ef1f3b6ac51..64924a430e7 100644 --- a/packages/desktop-client/src/icons/v1/Dashboard.tsx +++ b/packages/desktop-client/src/icons/v1/Dashboard.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgDashboard = (props: SVGProps) => ( +export const SvgDashboard = (props: SVGProps) => ( ) => ( /> ); -export default SvgDashboard; diff --git a/packages/desktop-client/src/icons/v1/DateAdd.tsx b/packages/desktop-client/src/icons/v1/DateAdd.tsx index b35468fe6de..d25439a736f 100644 --- a/packages/desktop-client/src/icons/v1/DateAdd.tsx +++ b/packages/desktop-client/src/icons/v1/DateAdd.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgDateAdd = (props: SVGProps) => ( +export const SvgDateAdd = (props: SVGProps) => ( ) => ( /> ); -export default SvgDateAdd; diff --git a/packages/desktop-client/src/icons/v1/DialPad.tsx b/packages/desktop-client/src/icons/v1/DialPad.tsx index 3dd91049c9d..76a1cc645b1 100644 --- a/packages/desktop-client/src/icons/v1/DialPad.tsx +++ b/packages/desktop-client/src/icons/v1/DialPad.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgDialPad = (props: SVGProps) => ( +export const SvgDialPad = (props: SVGProps) => ( ) => ( /> ); -export default SvgDialPad; diff --git a/packages/desktop-client/src/icons/v1/Directions.tsx b/packages/desktop-client/src/icons/v1/Directions.tsx index 8db4bfe8135..fe5b152eea4 100644 --- a/packages/desktop-client/src/icons/v1/Directions.tsx +++ b/packages/desktop-client/src/icons/v1/Directions.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgDirections = (props: SVGProps) => ( +export const SvgDirections = (props: SVGProps) => ( ) => ( /> ); -export default SvgDirections; diff --git a/packages/desktop-client/src/icons/v1/Document.tsx b/packages/desktop-client/src/icons/v1/Document.tsx index 0c726ba21f2..18083de8d4c 100644 --- a/packages/desktop-client/src/icons/v1/Document.tsx +++ b/packages/desktop-client/src/icons/v1/Document.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgDocument = (props: SVGProps) => ( +export const SvgDocument = (props: SVGProps) => ( ) => ( /> ); -export default SvgDocument; diff --git a/packages/desktop-client/src/icons/v1/DocumentAdd.tsx b/packages/desktop-client/src/icons/v1/DocumentAdd.tsx index f9d4c3ae79e..1f087d8c802 100644 --- a/packages/desktop-client/src/icons/v1/DocumentAdd.tsx +++ b/packages/desktop-client/src/icons/v1/DocumentAdd.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgDocumentAdd = (props: SVGProps) => ( +export const SvgDocumentAdd = (props: SVGProps) => ( ) => ( /> ); -export default SvgDocumentAdd; diff --git a/packages/desktop-client/src/icons/v1/DotsHorizontalDouble.tsx b/packages/desktop-client/src/icons/v1/DotsHorizontalDouble.tsx index 1638afd37d1..38b703f9e7e 100644 --- a/packages/desktop-client/src/icons/v1/DotsHorizontalDouble.tsx +++ b/packages/desktop-client/src/icons/v1/DotsHorizontalDouble.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgDotsHorizontalDouble = (props: SVGProps) => ( +export const SvgDotsHorizontalDouble = (props: SVGProps) => ( ) => ( /> ); -export default SvgDotsHorizontalDouble; diff --git a/packages/desktop-client/src/icons/v1/DotsHorizontalTriple.tsx b/packages/desktop-client/src/icons/v1/DotsHorizontalTriple.tsx index 34c1bb5c9f3..bb61f490d0a 100644 --- a/packages/desktop-client/src/icons/v1/DotsHorizontalTriple.tsx +++ b/packages/desktop-client/src/icons/v1/DotsHorizontalTriple.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgDotsHorizontalTriple = (props: SVGProps) => ( +export const SvgDotsHorizontalTriple = (props: SVGProps) => ( ) => ( /> ); -export default SvgDotsHorizontalTriple; diff --git a/packages/desktop-client/src/icons/v1/Download.tsx b/packages/desktop-client/src/icons/v1/Download.tsx index c699949d87f..9f0db316058 100644 --- a/packages/desktop-client/src/icons/v1/Download.tsx +++ b/packages/desktop-client/src/icons/v1/Download.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgDownload = (props: SVGProps) => ( +export const SvgDownload = (props: SVGProps) => ( ) => ( ); -export default SvgDownload; diff --git a/packages/desktop-client/src/icons/v1/Duplicate.tsx b/packages/desktop-client/src/icons/v1/Duplicate.tsx index 9ac4806adf8..f2282355f26 100644 --- a/packages/desktop-client/src/icons/v1/Duplicate.tsx +++ b/packages/desktop-client/src/icons/v1/Duplicate.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgDuplicate = (props: SVGProps) => ( +export const SvgDuplicate = (props: SVGProps) => ( ) => ( /> ); -export default SvgDuplicate; diff --git a/packages/desktop-client/src/icons/v1/EditCopy.tsx b/packages/desktop-client/src/icons/v1/EditCopy.tsx index c254099510b..b5c92cc613a 100644 --- a/packages/desktop-client/src/icons/v1/EditCopy.tsx +++ b/packages/desktop-client/src/icons/v1/EditCopy.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgEditCopy = (props: SVGProps) => ( +export const SvgEditCopy = (props: SVGProps) => ( ) => ( /> ); -export default SvgEditCopy; diff --git a/packages/desktop-client/src/icons/v1/EditCrop.tsx b/packages/desktop-client/src/icons/v1/EditCrop.tsx index f130943cc54..8f3149bef31 100644 --- a/packages/desktop-client/src/icons/v1/EditCrop.tsx +++ b/packages/desktop-client/src/icons/v1/EditCrop.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgEditCrop = (props: SVGProps) => ( +export const SvgEditCrop = (props: SVGProps) => ( ) => ( /> ); -export default SvgEditCrop; diff --git a/packages/desktop-client/src/icons/v1/EditCut.tsx b/packages/desktop-client/src/icons/v1/EditCut.tsx index 4bc1dc9edc8..42df1eb31c0 100644 --- a/packages/desktop-client/src/icons/v1/EditCut.tsx +++ b/packages/desktop-client/src/icons/v1/EditCut.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgEditCut = (props: SVGProps) => ( +export const SvgEditCut = (props: SVGProps) => ( ) => ( /> ); -export default SvgEditCut; diff --git a/packages/desktop-client/src/icons/v1/EditPencil.tsx b/packages/desktop-client/src/icons/v1/EditPencil.tsx index a4b00abe1ab..2d40d7d24c9 100644 --- a/packages/desktop-client/src/icons/v1/EditPencil.tsx +++ b/packages/desktop-client/src/icons/v1/EditPencil.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgEditPencil = (props: SVGProps) => ( +export const SvgEditPencil = (props: SVGProps) => ( ) => ( /> ); -export default SvgEditPencil; diff --git a/packages/desktop-client/src/icons/v1/Education.tsx b/packages/desktop-client/src/icons/v1/Education.tsx index 0b7f35f72e0..aecce59a921 100644 --- a/packages/desktop-client/src/icons/v1/Education.tsx +++ b/packages/desktop-client/src/icons/v1/Education.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgEducation = (props: SVGProps) => ( +export const SvgEducation = (props: SVGProps) => ( ) => ( /> ); -export default SvgEducation; diff --git a/packages/desktop-client/src/icons/v1/Envelope.tsx b/packages/desktop-client/src/icons/v1/Envelope.tsx index df5110c6008..725e6ed9b52 100644 --- a/packages/desktop-client/src/icons/v1/Envelope.tsx +++ b/packages/desktop-client/src/icons/v1/Envelope.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgEnvelope = (props: SVGProps) => ( +export const SvgEnvelope = (props: SVGProps) => ( ) => ( /> ); -export default SvgEnvelope; diff --git a/packages/desktop-client/src/icons/v1/Equals.tsx b/packages/desktop-client/src/icons/v1/Equals.tsx index 706480b2eb8..2d5a12f872e 100644 --- a/packages/desktop-client/src/icons/v1/Equals.tsx +++ b/packages/desktop-client/src/icons/v1/Equals.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgEquals = (props: SVGProps) => ( +export const SvgEquals = (props: SVGProps) => ( ) => ( /> ); -export default SvgEquals; diff --git a/packages/desktop-client/src/icons/v1/ExclamationOutline.tsx b/packages/desktop-client/src/icons/v1/ExclamationOutline.tsx index 8127276b4a1..6e924e94421 100644 --- a/packages/desktop-client/src/icons/v1/ExclamationOutline.tsx +++ b/packages/desktop-client/src/icons/v1/ExclamationOutline.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgExclamationOutline = (props: SVGProps) => ( +export const SvgExclamationOutline = (props: SVGProps) => ( ) => ( /> ); -export default SvgExclamationOutline; diff --git a/packages/desktop-client/src/icons/v1/ExclamationSolid.tsx b/packages/desktop-client/src/icons/v1/ExclamationSolid.tsx index c07d177b31d..4a89f5c35ac 100644 --- a/packages/desktop-client/src/icons/v1/ExclamationSolid.tsx +++ b/packages/desktop-client/src/icons/v1/ExclamationSolid.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgExclamationSolid = (props: SVGProps) => ( +export const SvgExclamationSolid = (props: SVGProps) => ( ) => ( /> ); -export default SvgExclamationSolid; diff --git a/packages/desktop-client/src/icons/v1/Explore.tsx b/packages/desktop-client/src/icons/v1/Explore.tsx index 164024d3524..6ac2ac201c9 100644 --- a/packages/desktop-client/src/icons/v1/Explore.tsx +++ b/packages/desktop-client/src/icons/v1/Explore.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgExplore = (props: SVGProps) => ( +export const SvgExplore = (props: SVGProps) => ( ) => ( /> ); -export default SvgExplore; diff --git a/packages/desktop-client/src/icons/v1/Factory.tsx b/packages/desktop-client/src/icons/v1/Factory.tsx index 33674d39660..3f84d4e7bc7 100644 --- a/packages/desktop-client/src/icons/v1/Factory.tsx +++ b/packages/desktop-client/src/icons/v1/Factory.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgFactory = (props: SVGProps) => ( +export const SvgFactory = (props: SVGProps) => ( ) => ( /> ); -export default SvgFactory; diff --git a/packages/desktop-client/src/icons/v1/FastForward.tsx b/packages/desktop-client/src/icons/v1/FastForward.tsx index 8059bbb40dd..799d09d870b 100644 --- a/packages/desktop-client/src/icons/v1/FastForward.tsx +++ b/packages/desktop-client/src/icons/v1/FastForward.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgFastForward = (props: SVGProps) => ( +export const SvgFastForward = (props: SVGProps) => ( ) => ( ); -export default SvgFastForward; diff --git a/packages/desktop-client/src/icons/v1/FastRewind.tsx b/packages/desktop-client/src/icons/v1/FastRewind.tsx index 1cb9ea7737e..acb8d85039d 100644 --- a/packages/desktop-client/src/icons/v1/FastRewind.tsx +++ b/packages/desktop-client/src/icons/v1/FastRewind.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgFastRewind = (props: SVGProps) => ( +export const SvgFastRewind = (props: SVGProps) => ( ) => ( ); -export default SvgFastRewind; diff --git a/packages/desktop-client/src/icons/v1/FileDouble.tsx b/packages/desktop-client/src/icons/v1/FileDouble.tsx index 3c31ac4d365..c97c12fae4c 100644 --- a/packages/desktop-client/src/icons/v1/FileDouble.tsx +++ b/packages/desktop-client/src/icons/v1/FileDouble.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgFileDouble = (props: SVGProps) => ( +export const SvgFileDouble = (props: SVGProps) => ( ) => ( /> ); -export default SvgFileDouble; diff --git a/packages/desktop-client/src/icons/v1/Film.tsx b/packages/desktop-client/src/icons/v1/Film.tsx index ea5b80ced04..e7f4bce5698 100644 --- a/packages/desktop-client/src/icons/v1/Film.tsx +++ b/packages/desktop-client/src/icons/v1/Film.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgFilm = (props: SVGProps) => ( +export const SvgFilm = (props: SVGProps) => ( ) => ( /> ); -export default SvgFilm; diff --git a/packages/desktop-client/src/icons/v1/Filter.tsx b/packages/desktop-client/src/icons/v1/Filter.tsx index 97e2011437b..5715c58a2c1 100644 --- a/packages/desktop-client/src/icons/v1/Filter.tsx +++ b/packages/desktop-client/src/icons/v1/Filter.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgFilter = (props: SVGProps) => ( +export const SvgFilter = (props: SVGProps) => ( ) => ( ); -export default SvgFilter; diff --git a/packages/desktop-client/src/icons/v1/Flag.tsx b/packages/desktop-client/src/icons/v1/Flag.tsx index a2bf27ae2e3..5f8a0bd945e 100644 --- a/packages/desktop-client/src/icons/v1/Flag.tsx +++ b/packages/desktop-client/src/icons/v1/Flag.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgFlag = (props: SVGProps) => ( +export const SvgFlag = (props: SVGProps) => ( ) => ( /> ); -export default SvgFlag; diff --git a/packages/desktop-client/src/icons/v1/Flashlight.tsx b/packages/desktop-client/src/icons/v1/Flashlight.tsx index 3480f3a60d1..4b0ae1ab605 100644 --- a/packages/desktop-client/src/icons/v1/Flashlight.tsx +++ b/packages/desktop-client/src/icons/v1/Flashlight.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgFlashlight = (props: SVGProps) => ( +export const SvgFlashlight = (props: SVGProps) => ( ) => ( /> ); -export default SvgFlashlight; diff --git a/packages/desktop-client/src/icons/v1/Folder.tsx b/packages/desktop-client/src/icons/v1/Folder.tsx index e996cd0fdc5..93c88b62e45 100644 --- a/packages/desktop-client/src/icons/v1/Folder.tsx +++ b/packages/desktop-client/src/icons/v1/Folder.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgFolder = (props: SVGProps) => ( +export const SvgFolder = (props: SVGProps) => ( ) => ( /> ); -export default SvgFolder; diff --git a/packages/desktop-client/src/icons/v1/FolderOutline.tsx b/packages/desktop-client/src/icons/v1/FolderOutline.tsx index 216e4dd02d2..7965f1eb1d7 100644 --- a/packages/desktop-client/src/icons/v1/FolderOutline.tsx +++ b/packages/desktop-client/src/icons/v1/FolderOutline.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgFolderOutline = (props: SVGProps) => ( +export const SvgFolderOutline = (props: SVGProps) => ( ) => ( /> ); -export default SvgFolderOutline; diff --git a/packages/desktop-client/src/icons/v1/FolderOutlineAdd.tsx b/packages/desktop-client/src/icons/v1/FolderOutlineAdd.tsx index 3c3ea264faf..a332c0b36c4 100644 --- a/packages/desktop-client/src/icons/v1/FolderOutlineAdd.tsx +++ b/packages/desktop-client/src/icons/v1/FolderOutlineAdd.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgFolderOutlineAdd = (props: SVGProps) => ( +export const SvgFolderOutlineAdd = (props: SVGProps) => ( ) => ( /> ); -export default SvgFolderOutlineAdd; diff --git a/packages/desktop-client/src/icons/v1/FormatBold.tsx b/packages/desktop-client/src/icons/v1/FormatBold.tsx index df8d699b3eb..dea84ecad5c 100644 --- a/packages/desktop-client/src/icons/v1/FormatBold.tsx +++ b/packages/desktop-client/src/icons/v1/FormatBold.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgFormatBold = (props: SVGProps) => ( +export const SvgFormatBold = (props: SVGProps) => ( ) => ( /> ); -export default SvgFormatBold; diff --git a/packages/desktop-client/src/icons/v1/FormatFontSize.tsx b/packages/desktop-client/src/icons/v1/FormatFontSize.tsx index b2fb0e94451..79d3f4510fb 100644 --- a/packages/desktop-client/src/icons/v1/FormatFontSize.tsx +++ b/packages/desktop-client/src/icons/v1/FormatFontSize.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgFormatFontSize = (props: SVGProps) => ( +export const SvgFormatFontSize = (props: SVGProps) => ( ) => ( /> ); -export default SvgFormatFontSize; diff --git a/packages/desktop-client/src/icons/v1/FormatItalic.tsx b/packages/desktop-client/src/icons/v1/FormatItalic.tsx index 1e14728026c..7537bccfaf7 100644 --- a/packages/desktop-client/src/icons/v1/FormatItalic.tsx +++ b/packages/desktop-client/src/icons/v1/FormatItalic.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgFormatItalic = (props: SVGProps) => ( +export const SvgFormatItalic = (props: SVGProps) => ( ) => ( /> ); -export default SvgFormatItalic; diff --git a/packages/desktop-client/src/icons/v1/FormatTextSize.tsx b/packages/desktop-client/src/icons/v1/FormatTextSize.tsx index 07a773cbdff..443a2c3d791 100644 --- a/packages/desktop-client/src/icons/v1/FormatTextSize.tsx +++ b/packages/desktop-client/src/icons/v1/FormatTextSize.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgFormatTextSize = (props: SVGProps) => ( +export const SvgFormatTextSize = (props: SVGProps) => ( ) => ( /> ); -export default SvgFormatTextSize; diff --git a/packages/desktop-client/src/icons/v1/FormatUnderline.tsx b/packages/desktop-client/src/icons/v1/FormatUnderline.tsx index 404c4879550..5e5fd6ca5ab 100644 --- a/packages/desktop-client/src/icons/v1/FormatUnderline.tsx +++ b/packages/desktop-client/src/icons/v1/FormatUnderline.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgFormatUnderline = (props: SVGProps) => ( +export const SvgFormatUnderline = (props: SVGProps) => ( ) => ( /> ); -export default SvgFormatUnderline; diff --git a/packages/desktop-client/src/icons/v1/Forward.tsx b/packages/desktop-client/src/icons/v1/Forward.tsx index 0da201b6542..397008fbb21 100644 --- a/packages/desktop-client/src/icons/v1/Forward.tsx +++ b/packages/desktop-client/src/icons/v1/Forward.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgForward = (props: SVGProps) => ( +export const SvgForward = (props: SVGProps) => ( ) => ( ); -export default SvgForward; diff --git a/packages/desktop-client/src/icons/v1/ForwardStep.tsx b/packages/desktop-client/src/icons/v1/ForwardStep.tsx index 30b048a98c3..15a51c02779 100644 --- a/packages/desktop-client/src/icons/v1/ForwardStep.tsx +++ b/packages/desktop-client/src/icons/v1/ForwardStep.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgForwardStep = (props: SVGProps) => ( +export const SvgForwardStep = (props: SVGProps) => ( ) => ( ); -export default SvgForwardStep; diff --git a/packages/desktop-client/src/icons/v1/Gift.tsx b/packages/desktop-client/src/icons/v1/Gift.tsx index d192283960b..fc0add14fcd 100644 --- a/packages/desktop-client/src/icons/v1/Gift.tsx +++ b/packages/desktop-client/src/icons/v1/Gift.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgGift = (props: SVGProps) => ( +export const SvgGift = (props: SVGProps) => ( ) => ( /> ); -export default SvgGift; diff --git a/packages/desktop-client/src/icons/v1/Globe.tsx b/packages/desktop-client/src/icons/v1/Globe.tsx index 03d391364f1..63b63fcf417 100644 --- a/packages/desktop-client/src/icons/v1/Globe.tsx +++ b/packages/desktop-client/src/icons/v1/Globe.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgGlobe = (props: SVGProps) => ( +export const SvgGlobe = (props: SVGProps) => ( ) => ( /> ); -export default SvgGlobe; diff --git a/packages/desktop-client/src/icons/v1/HandStop.tsx b/packages/desktop-client/src/icons/v1/HandStop.tsx index 47f3a3fbc19..9f56edaef34 100644 --- a/packages/desktop-client/src/icons/v1/HandStop.tsx +++ b/packages/desktop-client/src/icons/v1/HandStop.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgHandStop = (props: SVGProps) => ( +export const SvgHandStop = (props: SVGProps) => ( ) => ( /> ); -export default SvgHandStop; diff --git a/packages/desktop-client/src/icons/v1/HardDrive.tsx b/packages/desktop-client/src/icons/v1/HardDrive.tsx index c7d363ad942..aa48cd0776f 100644 --- a/packages/desktop-client/src/icons/v1/HardDrive.tsx +++ b/packages/desktop-client/src/icons/v1/HardDrive.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgHardDrive = (props: SVGProps) => ( +export const SvgHardDrive = (props: SVGProps) => ( ) => ( /> ); -export default SvgHardDrive; diff --git a/packages/desktop-client/src/icons/v1/Headphones.tsx b/packages/desktop-client/src/icons/v1/Headphones.tsx index 53b5b37bb02..2c898ee9686 100644 --- a/packages/desktop-client/src/icons/v1/Headphones.tsx +++ b/packages/desktop-client/src/icons/v1/Headphones.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgHeadphones = (props: SVGProps) => ( +export const SvgHeadphones = (props: SVGProps) => ( ) => ( /> ); -export default SvgHeadphones; diff --git a/packages/desktop-client/src/icons/v1/Heart.tsx b/packages/desktop-client/src/icons/v1/Heart.tsx index 004474ca80b..d43f614a8ca 100644 --- a/packages/desktop-client/src/icons/v1/Heart.tsx +++ b/packages/desktop-client/src/icons/v1/Heart.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgHeart = (props: SVGProps) => ( +export const SvgHeart = (props: SVGProps) => ( ) => ( /> ); -export default SvgHeart; diff --git a/packages/desktop-client/src/icons/v1/Home.tsx b/packages/desktop-client/src/icons/v1/Home.tsx index b792f75b861..48efef67d99 100644 --- a/packages/desktop-client/src/icons/v1/Home.tsx +++ b/packages/desktop-client/src/icons/v1/Home.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgHome = (props: SVGProps) => ( +export const SvgHome = (props: SVGProps) => ( ) => ( ); -export default SvgHome; diff --git a/packages/desktop-client/src/icons/v1/Hot.tsx b/packages/desktop-client/src/icons/v1/Hot.tsx index 4d4cf93dc49..d96b7e1220c 100644 --- a/packages/desktop-client/src/icons/v1/Hot.tsx +++ b/packages/desktop-client/src/icons/v1/Hot.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgHot = (props: SVGProps) => ( +export const SvgHot = (props: SVGProps) => ( ) => ( /> ); -export default SvgHot; diff --git a/packages/desktop-client/src/icons/v1/HourGlass.tsx b/packages/desktop-client/src/icons/v1/HourGlass.tsx index 900f37bab56..917130b6ce1 100644 --- a/packages/desktop-client/src/icons/v1/HourGlass.tsx +++ b/packages/desktop-client/src/icons/v1/HourGlass.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgHourGlass = (props: SVGProps) => ( +export const SvgHourGlass = (props: SVGProps) => ( ) => ( /> ); -export default SvgHourGlass; diff --git a/packages/desktop-client/src/icons/v1/Inbox.tsx b/packages/desktop-client/src/icons/v1/Inbox.tsx index 0aa6b60d064..e069ebb453a 100644 --- a/packages/desktop-client/src/icons/v1/Inbox.tsx +++ b/packages/desktop-client/src/icons/v1/Inbox.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgInbox = (props: SVGProps) => ( +export const SvgInbox = (props: SVGProps) => ( ) => ( /> ); -export default SvgInbox; diff --git a/packages/desktop-client/src/icons/v1/InboxCheck.tsx b/packages/desktop-client/src/icons/v1/InboxCheck.tsx index 21fa2983d5e..e98d52d6db5 100644 --- a/packages/desktop-client/src/icons/v1/InboxCheck.tsx +++ b/packages/desktop-client/src/icons/v1/InboxCheck.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgInboxCheck = (props: SVGProps) => ( +export const SvgInboxCheck = (props: SVGProps) => ( ) => ( /> ); -export default SvgInboxCheck; diff --git a/packages/desktop-client/src/icons/v1/InboxDownload.tsx b/packages/desktop-client/src/icons/v1/InboxDownload.tsx index 6e1715e6b0f..334e41ad400 100644 --- a/packages/desktop-client/src/icons/v1/InboxDownload.tsx +++ b/packages/desktop-client/src/icons/v1/InboxDownload.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgInboxDownload = (props: SVGProps) => ( +export const SvgInboxDownload = (props: SVGProps) => ( ) => ( /> ); -export default SvgInboxDownload; diff --git a/packages/desktop-client/src/icons/v1/InboxFull.tsx b/packages/desktop-client/src/icons/v1/InboxFull.tsx index 71a10b53a1e..b9aed457453 100644 --- a/packages/desktop-client/src/icons/v1/InboxFull.tsx +++ b/packages/desktop-client/src/icons/v1/InboxFull.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgInboxFull = (props: SVGProps) => ( +export const SvgInboxFull = (props: SVGProps) => ( ) => ( /> ); -export default SvgInboxFull; diff --git a/packages/desktop-client/src/icons/v1/IndentDecrease.tsx b/packages/desktop-client/src/icons/v1/IndentDecrease.tsx index 9d5c5c29001..6194bb00b9f 100644 --- a/packages/desktop-client/src/icons/v1/IndentDecrease.tsx +++ b/packages/desktop-client/src/icons/v1/IndentDecrease.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgIndentDecrease = (props: SVGProps) => ( +export const SvgIndentDecrease = (props: SVGProps) => ( ) => ( /> ); -export default SvgIndentDecrease; diff --git a/packages/desktop-client/src/icons/v1/IndentIncrease.tsx b/packages/desktop-client/src/icons/v1/IndentIncrease.tsx index 58114f21274..60a2aaf8534 100644 --- a/packages/desktop-client/src/icons/v1/IndentIncrease.tsx +++ b/packages/desktop-client/src/icons/v1/IndentIncrease.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgIndentIncrease = (props: SVGProps) => ( +export const SvgIndentIncrease = (props: SVGProps) => ( ) => ( /> ); -export default SvgIndentIncrease; diff --git a/packages/desktop-client/src/icons/v1/InformationOutline.tsx b/packages/desktop-client/src/icons/v1/InformationOutline.tsx index e9824e83517..b64bbe9f8ca 100644 --- a/packages/desktop-client/src/icons/v1/InformationOutline.tsx +++ b/packages/desktop-client/src/icons/v1/InformationOutline.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgInformationOutline = (props: SVGProps) => ( +export const SvgInformationOutline = (props: SVGProps) => ( ) => ( /> ); -export default SvgInformationOutline; diff --git a/packages/desktop-client/src/icons/v1/InformationSolid.tsx b/packages/desktop-client/src/icons/v1/InformationSolid.tsx index 8de816ac6cf..6f3390b91fc 100644 --- a/packages/desktop-client/src/icons/v1/InformationSolid.tsx +++ b/packages/desktop-client/src/icons/v1/InformationSolid.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgInformationSolid = (props: SVGProps) => ( +export const SvgInformationSolid = (props: SVGProps) => ( ) => ( /> ); -export default SvgInformationSolid; diff --git a/packages/desktop-client/src/icons/v1/Key.tsx b/packages/desktop-client/src/icons/v1/Key.tsx index 1ddd7e6dcc5..f07d07e3b60 100644 --- a/packages/desktop-client/src/icons/v1/Key.tsx +++ b/packages/desktop-client/src/icons/v1/Key.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgKey = (props: SVGProps) => ( +export const SvgKey = (props: SVGProps) => ( ) => ( /> ); -export default SvgKey; diff --git a/packages/desktop-client/src/icons/v1/Keyboard.tsx b/packages/desktop-client/src/icons/v1/Keyboard.tsx index 4486a905063..38a87f45b76 100644 --- a/packages/desktop-client/src/icons/v1/Keyboard.tsx +++ b/packages/desktop-client/src/icons/v1/Keyboard.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgKeyboard = (props: SVGProps) => ( +export const SvgKeyboard = (props: SVGProps) => ( ) => ( /> ); -export default SvgKeyboard; diff --git a/packages/desktop-client/src/icons/v1/Layers.tsx b/packages/desktop-client/src/icons/v1/Layers.tsx index 410395c65d3..c599e541ec7 100644 --- a/packages/desktop-client/src/icons/v1/Layers.tsx +++ b/packages/desktop-client/src/icons/v1/Layers.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgLayers = (props: SVGProps) => ( +export const SvgLayers = (props: SVGProps) => ( ) => ( /> ); -export default SvgLayers; diff --git a/packages/desktop-client/src/icons/v1/Library.tsx b/packages/desktop-client/src/icons/v1/Library.tsx index abbf87bf421..011736e6dc1 100644 --- a/packages/desktop-client/src/icons/v1/Library.tsx +++ b/packages/desktop-client/src/icons/v1/Library.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgLibrary = (props: SVGProps) => ( +export const SvgLibrary = (props: SVGProps) => ( ) => ( /> ); -export default SvgLibrary; diff --git a/packages/desktop-client/src/icons/v1/LightBulb.tsx b/packages/desktop-client/src/icons/v1/LightBulb.tsx index 5f1d03396d2..b92734929f1 100644 --- a/packages/desktop-client/src/icons/v1/LightBulb.tsx +++ b/packages/desktop-client/src/icons/v1/LightBulb.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgLightBulb = (props: SVGProps) => ( +export const SvgLightBulb = (props: SVGProps) => ( ) => ( /> ); -export default SvgLightBulb; diff --git a/packages/desktop-client/src/icons/v1/Link.tsx b/packages/desktop-client/src/icons/v1/Link.tsx index a8cd780944f..ea69e5fab3c 100644 --- a/packages/desktop-client/src/icons/v1/Link.tsx +++ b/packages/desktop-client/src/icons/v1/Link.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgLink = (props: SVGProps) => ( +export const SvgLink = (props: SVGProps) => ( ) => ( /> ); -export default SvgLink; diff --git a/packages/desktop-client/src/icons/v1/List.tsx b/packages/desktop-client/src/icons/v1/List.tsx index 09ef596955c..92d6a37ff57 100644 --- a/packages/desktop-client/src/icons/v1/List.tsx +++ b/packages/desktop-client/src/icons/v1/List.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgList = (props: SVGProps) => ( +export const SvgList = (props: SVGProps) => ( ) => ( /> ); -export default SvgList; diff --git a/packages/desktop-client/src/icons/v1/ListAdd.tsx b/packages/desktop-client/src/icons/v1/ListAdd.tsx index 564151df2ab..b38890b915a 100644 --- a/packages/desktop-client/src/icons/v1/ListAdd.tsx +++ b/packages/desktop-client/src/icons/v1/ListAdd.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgListAdd = (props: SVGProps) => ( +export const SvgListAdd = (props: SVGProps) => ( ) => ( /> ); -export default SvgListAdd; diff --git a/packages/desktop-client/src/icons/v1/ListBullet.tsx b/packages/desktop-client/src/icons/v1/ListBullet.tsx index e3035df728d..b1dab39b8a2 100644 --- a/packages/desktop-client/src/icons/v1/ListBullet.tsx +++ b/packages/desktop-client/src/icons/v1/ListBullet.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgListBullet = (props: SVGProps) => ( +export const SvgListBullet = (props: SVGProps) => ( ) => ( /> ); -export default SvgListBullet; diff --git a/packages/desktop-client/src/icons/v1/LoadBalancer.tsx b/packages/desktop-client/src/icons/v1/LoadBalancer.tsx index dfc6e1c567a..115d5abab5b 100644 --- a/packages/desktop-client/src/icons/v1/LoadBalancer.tsx +++ b/packages/desktop-client/src/icons/v1/LoadBalancer.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgLoadBalancer = (props: SVGProps) => ( +export const SvgLoadBalancer = (props: SVGProps) => ( ) => ( /> ); -export default SvgLoadBalancer; diff --git a/packages/desktop-client/src/icons/v1/Location.tsx b/packages/desktop-client/src/icons/v1/Location.tsx index 7039c2035a0..f232e336be7 100644 --- a/packages/desktop-client/src/icons/v1/Location.tsx +++ b/packages/desktop-client/src/icons/v1/Location.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgLocation = (props: SVGProps) => ( +export const SvgLocation = (props: SVGProps) => ( ) => ( /> ); -export default SvgLocation; diff --git a/packages/desktop-client/src/icons/v1/LocationCurrent.tsx b/packages/desktop-client/src/icons/v1/LocationCurrent.tsx index eed3759cf45..183542f6c6c 100644 --- a/packages/desktop-client/src/icons/v1/LocationCurrent.tsx +++ b/packages/desktop-client/src/icons/v1/LocationCurrent.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgLocationCurrent = (props: SVGProps) => ( +export const SvgLocationCurrent = (props: SVGProps) => ( ) => ( ); -export default SvgLocationCurrent; diff --git a/packages/desktop-client/src/icons/v1/LocationFood.tsx b/packages/desktop-client/src/icons/v1/LocationFood.tsx index 9e68ba19b11..7e648b2f4bf 100644 --- a/packages/desktop-client/src/icons/v1/LocationFood.tsx +++ b/packages/desktop-client/src/icons/v1/LocationFood.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgLocationFood = (props: SVGProps) => ( +export const SvgLocationFood = (props: SVGProps) => ( ) => ( /> ); -export default SvgLocationFood; diff --git a/packages/desktop-client/src/icons/v1/LocationGasStation.tsx b/packages/desktop-client/src/icons/v1/LocationGasStation.tsx index 04b1fbcadb2..f60a60d7c20 100644 --- a/packages/desktop-client/src/icons/v1/LocationGasStation.tsx +++ b/packages/desktop-client/src/icons/v1/LocationGasStation.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgLocationGasStation = (props: SVGProps) => ( +export const SvgLocationGasStation = (props: SVGProps) => ( ) => ( /> ); -export default SvgLocationGasStation; diff --git a/packages/desktop-client/src/icons/v1/LocationHotel.tsx b/packages/desktop-client/src/icons/v1/LocationHotel.tsx index c78589412a7..874deb0e18c 100644 --- a/packages/desktop-client/src/icons/v1/LocationHotel.tsx +++ b/packages/desktop-client/src/icons/v1/LocationHotel.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgLocationHotel = (props: SVGProps) => ( +export const SvgLocationHotel = (props: SVGProps) => ( ) => ( /> ); -export default SvgLocationHotel; diff --git a/packages/desktop-client/src/icons/v1/LocationMarina.tsx b/packages/desktop-client/src/icons/v1/LocationMarina.tsx index 8b43249810f..2d1ff43f881 100644 --- a/packages/desktop-client/src/icons/v1/LocationMarina.tsx +++ b/packages/desktop-client/src/icons/v1/LocationMarina.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgLocationMarina = (props: SVGProps) => ( +export const SvgLocationMarina = (props: SVGProps) => ( ) => ( /> ); -export default SvgLocationMarina; diff --git a/packages/desktop-client/src/icons/v1/LocationPark.tsx b/packages/desktop-client/src/icons/v1/LocationPark.tsx index 4cc85093ac7..7f4f9b70b6b 100644 --- a/packages/desktop-client/src/icons/v1/LocationPark.tsx +++ b/packages/desktop-client/src/icons/v1/LocationPark.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgLocationPark = (props: SVGProps) => ( +export const SvgLocationPark = (props: SVGProps) => ( ) => ( /> ); -export default SvgLocationPark; diff --git a/packages/desktop-client/src/icons/v1/LocationRestroom.tsx b/packages/desktop-client/src/icons/v1/LocationRestroom.tsx index 88a34dc9b86..7a1ce2ebdab 100644 --- a/packages/desktop-client/src/icons/v1/LocationRestroom.tsx +++ b/packages/desktop-client/src/icons/v1/LocationRestroom.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgLocationRestroom = (props: SVGProps) => ( +export const SvgLocationRestroom = (props: SVGProps) => ( ) => ( /> ); -export default SvgLocationRestroom; diff --git a/packages/desktop-client/src/icons/v1/LocationShopping.tsx b/packages/desktop-client/src/icons/v1/LocationShopping.tsx index 8eaac9dc69d..d1fa57032e9 100644 --- a/packages/desktop-client/src/icons/v1/LocationShopping.tsx +++ b/packages/desktop-client/src/icons/v1/LocationShopping.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgLocationShopping = (props: SVGProps) => ( +export const SvgLocationShopping = (props: SVGProps) => ( ) => ( /> ); -export default SvgLocationShopping; diff --git a/packages/desktop-client/src/icons/v1/LockClosed.tsx b/packages/desktop-client/src/icons/v1/LockClosed.tsx index fea05ad94df..5dd6d49a7c3 100644 --- a/packages/desktop-client/src/icons/v1/LockClosed.tsx +++ b/packages/desktop-client/src/icons/v1/LockClosed.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgLockClosed = (props: SVGProps) => ( +export const SvgLockClosed = (props: SVGProps) => ( ) => ( /> ); -export default SvgLockClosed; diff --git a/packages/desktop-client/src/icons/v1/LockOpen.tsx b/packages/desktop-client/src/icons/v1/LockOpen.tsx index c07e4ba47db..b3d581731e6 100644 --- a/packages/desktop-client/src/icons/v1/LockOpen.tsx +++ b/packages/desktop-client/src/icons/v1/LockOpen.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgLockOpen = (props: SVGProps) => ( +export const SvgLockOpen = (props: SVGProps) => ( ) => ( /> ); -export default SvgLockOpen; diff --git a/packages/desktop-client/src/icons/v1/Map.tsx b/packages/desktop-client/src/icons/v1/Map.tsx index 7501cf8f0f9..1b9d75a0ced 100644 --- a/packages/desktop-client/src/icons/v1/Map.tsx +++ b/packages/desktop-client/src/icons/v1/Map.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgMap = (props: SVGProps) => ( +export const SvgMap = (props: SVGProps) => ( ) => ( /> ); -export default SvgMap; diff --git a/packages/desktop-client/src/icons/v1/Menu.tsx b/packages/desktop-client/src/icons/v1/Menu.tsx index 6ba1e34ca3e..eed6e865250 100644 --- a/packages/desktop-client/src/icons/v1/Menu.tsx +++ b/packages/desktop-client/src/icons/v1/Menu.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgMenu = (props: SVGProps) => ( +export const SvgMenu = (props: SVGProps) => ( ) => ( ); -export default SvgMenu; diff --git a/packages/desktop-client/src/icons/v1/Mic.tsx b/packages/desktop-client/src/icons/v1/Mic.tsx index d10d6bdc57c..0cea16928e9 100644 --- a/packages/desktop-client/src/icons/v1/Mic.tsx +++ b/packages/desktop-client/src/icons/v1/Mic.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgMic = (props: SVGProps) => ( +export const SvgMic = (props: SVGProps) => ( ) => ( /> ); -export default SvgMic; diff --git a/packages/desktop-client/src/icons/v1/MinusOutline.tsx b/packages/desktop-client/src/icons/v1/MinusOutline.tsx index c6b2e3db1b0..b1de3454671 100644 --- a/packages/desktop-client/src/icons/v1/MinusOutline.tsx +++ b/packages/desktop-client/src/icons/v1/MinusOutline.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgMinusOutline = (props: SVGProps) => ( +export const SvgMinusOutline = (props: SVGProps) => ( ) => ( /> ); -export default SvgMinusOutline; diff --git a/packages/desktop-client/src/icons/v1/MinusSolid.tsx b/packages/desktop-client/src/icons/v1/MinusSolid.tsx index 74cfb602c29..e0217a6f97b 100644 --- a/packages/desktop-client/src/icons/v1/MinusSolid.tsx +++ b/packages/desktop-client/src/icons/v1/MinusSolid.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgMinusSolid = (props: SVGProps) => ( +export const SvgMinusSolid = (props: SVGProps) => ( ) => ( /> ); -export default SvgMinusSolid; diff --git a/packages/desktop-client/src/icons/v1/MobileDevices.tsx b/packages/desktop-client/src/icons/v1/MobileDevices.tsx index 6b54c8d0112..47152af5e8d 100644 --- a/packages/desktop-client/src/icons/v1/MobileDevices.tsx +++ b/packages/desktop-client/src/icons/v1/MobileDevices.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgMobileDevices = (props: SVGProps) => ( +export const SvgMobileDevices = (props: SVGProps) => ( ) => ( /> ); -export default SvgMobileDevices; diff --git a/packages/desktop-client/src/icons/v1/MoneyBag.tsx b/packages/desktop-client/src/icons/v1/MoneyBag.tsx index 80c7019c25c..b7b3e1b00ec 100644 --- a/packages/desktop-client/src/icons/v1/MoneyBag.tsx +++ b/packages/desktop-client/src/icons/v1/MoneyBag.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgMoneyBag = (props: SVGProps) => ( +export const SvgMoneyBag = (props: SVGProps) => ( ) => ( /> ); -export default SvgMoneyBag; diff --git a/packages/desktop-client/src/icons/v1/MoodHappyOutline.tsx b/packages/desktop-client/src/icons/v1/MoodHappyOutline.tsx index f332843b8a9..cada958e18d 100644 --- a/packages/desktop-client/src/icons/v1/MoodHappyOutline.tsx +++ b/packages/desktop-client/src/icons/v1/MoodHappyOutline.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgMoodHappyOutline = (props: SVGProps) => ( +export const SvgMoodHappyOutline = (props: SVGProps) => ( ) => ( /> ); -export default SvgMoodHappyOutline; diff --git a/packages/desktop-client/src/icons/v1/MoodHappySolid.tsx b/packages/desktop-client/src/icons/v1/MoodHappySolid.tsx index b57d7f8a29b..4c5d9277e98 100644 --- a/packages/desktop-client/src/icons/v1/MoodHappySolid.tsx +++ b/packages/desktop-client/src/icons/v1/MoodHappySolid.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgMoodHappySolid = (props: SVGProps) => ( +export const SvgMoodHappySolid = (props: SVGProps) => ( ) => ( /> ); -export default SvgMoodHappySolid; diff --git a/packages/desktop-client/src/icons/v1/MoodNeutralOutline.tsx b/packages/desktop-client/src/icons/v1/MoodNeutralOutline.tsx index e04803ee08a..652c593f7c4 100644 --- a/packages/desktop-client/src/icons/v1/MoodNeutralOutline.tsx +++ b/packages/desktop-client/src/icons/v1/MoodNeutralOutline.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgMoodNeutralOutline = (props: SVGProps) => ( +export const SvgMoodNeutralOutline = (props: SVGProps) => ( ) => ( /> ); -export default SvgMoodNeutralOutline; diff --git a/packages/desktop-client/src/icons/v1/MoodNeutralSolid.tsx b/packages/desktop-client/src/icons/v1/MoodNeutralSolid.tsx index c6864fbafda..90137eee10f 100644 --- a/packages/desktop-client/src/icons/v1/MoodNeutralSolid.tsx +++ b/packages/desktop-client/src/icons/v1/MoodNeutralSolid.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgMoodNeutralSolid = (props: SVGProps) => ( +export const SvgMoodNeutralSolid = (props: SVGProps) => ( ) => ( /> ); -export default SvgMoodNeutralSolid; diff --git a/packages/desktop-client/src/icons/v1/MoodSadOutline.tsx b/packages/desktop-client/src/icons/v1/MoodSadOutline.tsx index 9c9049399cb..fa807080c54 100644 --- a/packages/desktop-client/src/icons/v1/MoodSadOutline.tsx +++ b/packages/desktop-client/src/icons/v1/MoodSadOutline.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgMoodSadOutline = (props: SVGProps) => ( +export const SvgMoodSadOutline = (props: SVGProps) => ( ) => ( /> ); -export default SvgMoodSadOutline; diff --git a/packages/desktop-client/src/icons/v1/MoodSadSolid.tsx b/packages/desktop-client/src/icons/v1/MoodSadSolid.tsx index 9003e490a09..728532c0cf4 100644 --- a/packages/desktop-client/src/icons/v1/MoodSadSolid.tsx +++ b/packages/desktop-client/src/icons/v1/MoodSadSolid.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgMoodSadSolid = (props: SVGProps) => ( +export const SvgMoodSadSolid = (props: SVGProps) => ( ) => ( /> ); -export default SvgMoodSadSolid; diff --git a/packages/desktop-client/src/icons/v1/Mouse.tsx b/packages/desktop-client/src/icons/v1/Mouse.tsx index 23d03463961..237c49d4e28 100644 --- a/packages/desktop-client/src/icons/v1/Mouse.tsx +++ b/packages/desktop-client/src/icons/v1/Mouse.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgMouse = (props: SVGProps) => ( +export const SvgMouse = (props: SVGProps) => ( ) => ( /> ); -export default SvgMouse; diff --git a/packages/desktop-client/src/icons/v1/MoveBack.tsx b/packages/desktop-client/src/icons/v1/MoveBack.tsx index a70f37231b9..37d5944dfc3 100644 --- a/packages/desktop-client/src/icons/v1/MoveBack.tsx +++ b/packages/desktop-client/src/icons/v1/MoveBack.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgMoveBack = (props: SVGProps) => ( +export const SvgMoveBack = (props: SVGProps) => ( ) => ( /> ); -export default SvgMoveBack; diff --git a/packages/desktop-client/src/icons/v1/MusicAlbum.tsx b/packages/desktop-client/src/icons/v1/MusicAlbum.tsx index 1a2c0ec857c..e83b158e581 100644 --- a/packages/desktop-client/src/icons/v1/MusicAlbum.tsx +++ b/packages/desktop-client/src/icons/v1/MusicAlbum.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgMusicAlbum = (props: SVGProps) => ( +export const SvgMusicAlbum = (props: SVGProps) => ( ) => ( /> ); -export default SvgMusicAlbum; diff --git a/packages/desktop-client/src/icons/v1/MusicArtist.tsx b/packages/desktop-client/src/icons/v1/MusicArtist.tsx index 817dfdbaf35..a3d49fd8ce2 100644 --- a/packages/desktop-client/src/icons/v1/MusicArtist.tsx +++ b/packages/desktop-client/src/icons/v1/MusicArtist.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgMusicArtist = (props: SVGProps) => ( +export const SvgMusicArtist = (props: SVGProps) => ( ) => ( /> ); -export default SvgMusicArtist; diff --git a/packages/desktop-client/src/icons/v1/MusicNotes.tsx b/packages/desktop-client/src/icons/v1/MusicNotes.tsx index 7fb51a9b065..14beff22e8b 100644 --- a/packages/desktop-client/src/icons/v1/MusicNotes.tsx +++ b/packages/desktop-client/src/icons/v1/MusicNotes.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgMusicNotes = (props: SVGProps) => ( +export const SvgMusicNotes = (props: SVGProps) => ( ) => ( /> ); -export default SvgMusicNotes; diff --git a/packages/desktop-client/src/icons/v1/MusicPlaylist.tsx b/packages/desktop-client/src/icons/v1/MusicPlaylist.tsx index c8428d404b2..6890d50eac8 100644 --- a/packages/desktop-client/src/icons/v1/MusicPlaylist.tsx +++ b/packages/desktop-client/src/icons/v1/MusicPlaylist.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgMusicPlaylist = (props: SVGProps) => ( +export const SvgMusicPlaylist = (props: SVGProps) => ( ) => ( /> ); -export default SvgMusicPlaylist; diff --git a/packages/desktop-client/src/icons/v1/NavigationMore.tsx b/packages/desktop-client/src/icons/v1/NavigationMore.tsx index 46635c19d6d..6f46689bbd2 100644 --- a/packages/desktop-client/src/icons/v1/NavigationMore.tsx +++ b/packages/desktop-client/src/icons/v1/NavigationMore.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgNavigationMore = (props: SVGProps) => ( +export const SvgNavigationMore = (props: SVGProps) => ( ) => ( /> ); -export default SvgNavigationMore; diff --git a/packages/desktop-client/src/icons/v1/Network.tsx b/packages/desktop-client/src/icons/v1/Network.tsx index df8b11c2754..51ca5c1164b 100644 --- a/packages/desktop-client/src/icons/v1/Network.tsx +++ b/packages/desktop-client/src/icons/v1/Network.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgNetwork = (props: SVGProps) => ( +export const SvgNetwork = (props: SVGProps) => ( ) => ( /> ); -export default SvgNetwork; diff --git a/packages/desktop-client/src/icons/v1/NewsPaper.tsx b/packages/desktop-client/src/icons/v1/NewsPaper.tsx index 2a9cf29648a..240fe007bb6 100644 --- a/packages/desktop-client/src/icons/v1/NewsPaper.tsx +++ b/packages/desktop-client/src/icons/v1/NewsPaper.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgNewsPaper = (props: SVGProps) => ( +export const SvgNewsPaper = (props: SVGProps) => ( ) => ( /> ); -export default SvgNewsPaper; diff --git a/packages/desktop-client/src/icons/v1/Notification.tsx b/packages/desktop-client/src/icons/v1/Notification.tsx index d3bd27f0469..72921548544 100644 --- a/packages/desktop-client/src/icons/v1/Notification.tsx +++ b/packages/desktop-client/src/icons/v1/Notification.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgNotification = (props: SVGProps) => ( +export const SvgNotification = (props: SVGProps) => ( ) => ( /> ); -export default SvgNotification; diff --git a/packages/desktop-client/src/icons/v1/Notifications.tsx b/packages/desktop-client/src/icons/v1/Notifications.tsx index f856652c5eb..d258258ae79 100644 --- a/packages/desktop-client/src/icons/v1/Notifications.tsx +++ b/packages/desktop-client/src/icons/v1/Notifications.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgNotifications = (props: SVGProps) => ( +export const SvgNotifications = (props: SVGProps) => ( ) => ( /> ); -export default SvgNotifications; diff --git a/packages/desktop-client/src/icons/v1/NotificationsOutline.tsx b/packages/desktop-client/src/icons/v1/NotificationsOutline.tsx index a1ba6e2feda..472bab2c1b5 100644 --- a/packages/desktop-client/src/icons/v1/NotificationsOutline.tsx +++ b/packages/desktop-client/src/icons/v1/NotificationsOutline.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgNotificationsOutline = (props: SVGProps) => ( +export const SvgNotificationsOutline = (props: SVGProps) => ( ) => ( /> ); -export default SvgNotificationsOutline; diff --git a/packages/desktop-client/src/icons/v1/Paste.tsx b/packages/desktop-client/src/icons/v1/Paste.tsx index 6377df6beb8..4ad98f000f7 100644 --- a/packages/desktop-client/src/icons/v1/Paste.tsx +++ b/packages/desktop-client/src/icons/v1/Paste.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgPaste = (props: SVGProps) => ( +export const SvgPaste = (props: SVGProps) => ( ) => ( /> ); -export default SvgPaste; diff --git a/packages/desktop-client/src/icons/v1/Pause.tsx b/packages/desktop-client/src/icons/v1/Pause.tsx index 57dd774f64e..20a0f4af18b 100644 --- a/packages/desktop-client/src/icons/v1/Pause.tsx +++ b/packages/desktop-client/src/icons/v1/Pause.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgPause = (props: SVGProps) => ( +export const SvgPause = (props: SVGProps) => ( ) => ( ); -export default SvgPause; diff --git a/packages/desktop-client/src/icons/v1/PauseOutline.tsx b/packages/desktop-client/src/icons/v1/PauseOutline.tsx index e0e051b35d2..958c768441d 100644 --- a/packages/desktop-client/src/icons/v1/PauseOutline.tsx +++ b/packages/desktop-client/src/icons/v1/PauseOutline.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgPauseOutline = (props: SVGProps) => ( +export const SvgPauseOutline = (props: SVGProps) => ( ) => ( /> ); -export default SvgPauseOutline; diff --git a/packages/desktop-client/src/icons/v1/PauseSolid.tsx b/packages/desktop-client/src/icons/v1/PauseSolid.tsx index 54ba7dd6498..6c5b6151374 100644 --- a/packages/desktop-client/src/icons/v1/PauseSolid.tsx +++ b/packages/desktop-client/src/icons/v1/PauseSolid.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgPauseSolid = (props: SVGProps) => ( +export const SvgPauseSolid = (props: SVGProps) => ( ) => ( /> ); -export default SvgPauseSolid; diff --git a/packages/desktop-client/src/icons/v1/PenTool.tsx b/packages/desktop-client/src/icons/v1/PenTool.tsx index 8e48b44635a..b4325c58b57 100644 --- a/packages/desktop-client/src/icons/v1/PenTool.tsx +++ b/packages/desktop-client/src/icons/v1/PenTool.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgPenTool = (props: SVGProps) => ( +export const SvgPenTool = (props: SVGProps) => ( ) => ( /> ); -export default SvgPenTool; diff --git a/packages/desktop-client/src/icons/v1/PencilWrite.tsx b/packages/desktop-client/src/icons/v1/PencilWrite.tsx index ffbe72c73a5..eab70866fdc 100644 --- a/packages/desktop-client/src/icons/v1/PencilWrite.tsx +++ b/packages/desktop-client/src/icons/v1/PencilWrite.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgPencilWrite = (props: SVGProps) => ( +export const SvgPencilWrite = (props: SVGProps) => ( ) => ( /> ); -export default SvgPencilWrite; diff --git a/packages/desktop-client/src/icons/v1/Phone.tsx b/packages/desktop-client/src/icons/v1/Phone.tsx index 9fac2d71c08..0cc3308f665 100644 --- a/packages/desktop-client/src/icons/v1/Phone.tsx +++ b/packages/desktop-client/src/icons/v1/Phone.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgPhone = (props: SVGProps) => ( +export const SvgPhone = (props: SVGProps) => ( ) => ( /> ); -export default SvgPhone; diff --git a/packages/desktop-client/src/icons/v1/Photo.tsx b/packages/desktop-client/src/icons/v1/Photo.tsx index c987f75883c..7d5290a8a03 100644 --- a/packages/desktop-client/src/icons/v1/Photo.tsx +++ b/packages/desktop-client/src/icons/v1/Photo.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgPhoto = (props: SVGProps) => ( +export const SvgPhoto = (props: SVGProps) => ( ) => ( /> ); -export default SvgPhoto; diff --git a/packages/desktop-client/src/icons/v1/PhpElephant.tsx b/packages/desktop-client/src/icons/v1/PhpElephant.tsx index 9b280e0ec7a..d804daaecfb 100644 --- a/packages/desktop-client/src/icons/v1/PhpElephant.tsx +++ b/packages/desktop-client/src/icons/v1/PhpElephant.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgPhpElephant = (props: SVGProps) => ( +export const SvgPhpElephant = (props: SVGProps) => ( ) => ( /> ); -export default SvgPhpElephant; diff --git a/packages/desktop-client/src/icons/v1/PiggyBank.tsx b/packages/desktop-client/src/icons/v1/PiggyBank.tsx index 705572350cb..4a412d1d4ab 100644 --- a/packages/desktop-client/src/icons/v1/PiggyBank.tsx +++ b/packages/desktop-client/src/icons/v1/PiggyBank.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgPiggyBank = (props: SVGProps) => ( +export const SvgPiggyBank = (props: SVGProps) => ( ) => ( ); -export default SvgPiggyBank; diff --git a/packages/desktop-client/src/icons/v1/Pin.tsx b/packages/desktop-client/src/icons/v1/Pin.tsx index 00c1890ca02..b516774475b 100644 --- a/packages/desktop-client/src/icons/v1/Pin.tsx +++ b/packages/desktop-client/src/icons/v1/Pin.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgPin = (props: SVGProps) => ( +export const SvgPin = (props: SVGProps) => ( ) => ( /> ); -export default SvgPin; diff --git a/packages/desktop-client/src/icons/v1/Play.tsx b/packages/desktop-client/src/icons/v1/Play.tsx index 4aac8de82ad..630c73cb532 100644 --- a/packages/desktop-client/src/icons/v1/Play.tsx +++ b/packages/desktop-client/src/icons/v1/Play.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgPlay = (props: SVGProps) => ( +export const SvgPlay = (props: SVGProps) => ( ) => ( ); -export default SvgPlay; diff --git a/packages/desktop-client/src/icons/v1/PlayOutline.tsx b/packages/desktop-client/src/icons/v1/PlayOutline.tsx index 7644e7d94de..44c49408652 100644 --- a/packages/desktop-client/src/icons/v1/PlayOutline.tsx +++ b/packages/desktop-client/src/icons/v1/PlayOutline.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgPlayOutline = (props: SVGProps) => ( +export const SvgPlayOutline = (props: SVGProps) => ( ) => ( /> ); -export default SvgPlayOutline; diff --git a/packages/desktop-client/src/icons/v1/Playlist.tsx b/packages/desktop-client/src/icons/v1/Playlist.tsx index acd09777da8..ef87494715b 100644 --- a/packages/desktop-client/src/icons/v1/Playlist.tsx +++ b/packages/desktop-client/src/icons/v1/Playlist.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgPlaylist = (props: SVGProps) => ( +export const SvgPlaylist = (props: SVGProps) => ( ) => ( /> ); -export default SvgPlaylist; diff --git a/packages/desktop-client/src/icons/v1/Plugin.tsx b/packages/desktop-client/src/icons/v1/Plugin.tsx index b0e52b6f784..a050af99670 100644 --- a/packages/desktop-client/src/icons/v1/Plugin.tsx +++ b/packages/desktop-client/src/icons/v1/Plugin.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgPlugin = (props: SVGProps) => ( +export const SvgPlugin = (props: SVGProps) => ( ) => ( /> ); -export default SvgPlugin; diff --git a/packages/desktop-client/src/icons/v1/Portfolio.tsx b/packages/desktop-client/src/icons/v1/Portfolio.tsx index c5f2ca76bae..d7322a8ef7f 100644 --- a/packages/desktop-client/src/icons/v1/Portfolio.tsx +++ b/packages/desktop-client/src/icons/v1/Portfolio.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgPortfolio = (props: SVGProps) => ( +export const SvgPortfolio = (props: SVGProps) => ( ) => ( /> ); -export default SvgPortfolio; diff --git a/packages/desktop-client/src/icons/v1/Printer.tsx b/packages/desktop-client/src/icons/v1/Printer.tsx index de566b32d13..d186723690b 100644 --- a/packages/desktop-client/src/icons/v1/Printer.tsx +++ b/packages/desktop-client/src/icons/v1/Printer.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgPrinter = (props: SVGProps) => ( +export const SvgPrinter = (props: SVGProps) => ( ) => ( /> ); -export default SvgPrinter; diff --git a/packages/desktop-client/src/icons/v1/Pylon.tsx b/packages/desktop-client/src/icons/v1/Pylon.tsx index 498c5033085..8ec767039f6 100644 --- a/packages/desktop-client/src/icons/v1/Pylon.tsx +++ b/packages/desktop-client/src/icons/v1/Pylon.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgPylon = (props: SVGProps) => ( +export const SvgPylon = (props: SVGProps) => ( ) => ( /> ); -export default SvgPylon; diff --git a/packages/desktop-client/src/icons/v1/Question.tsx b/packages/desktop-client/src/icons/v1/Question.tsx index 116f1529daf..341e82e4986 100644 --- a/packages/desktop-client/src/icons/v1/Question.tsx +++ b/packages/desktop-client/src/icons/v1/Question.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgQuestion = (props: SVGProps) => ( +export const SvgQuestion = (props: SVGProps) => ( ) => ( /> ); -export default SvgQuestion; diff --git a/packages/desktop-client/src/icons/v1/Queue.tsx b/packages/desktop-client/src/icons/v1/Queue.tsx index bbcc286c370..9efeb6606b0 100644 --- a/packages/desktop-client/src/icons/v1/Queue.tsx +++ b/packages/desktop-client/src/icons/v1/Queue.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgQueue = (props: SVGProps) => ( +export const SvgQueue = (props: SVGProps) => ( ) => ( /> ); -export default SvgQueue; diff --git a/packages/desktop-client/src/icons/v1/Radar.tsx b/packages/desktop-client/src/icons/v1/Radar.tsx index 6f2042d364f..bdb15be6826 100644 --- a/packages/desktop-client/src/icons/v1/Radar.tsx +++ b/packages/desktop-client/src/icons/v1/Radar.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgRadar = (props: SVGProps) => ( +export const SvgRadar = (props: SVGProps) => ( ) => ( /> ); -export default SvgRadar; diff --git a/packages/desktop-client/src/icons/v1/RadarCopy2.tsx b/packages/desktop-client/src/icons/v1/RadarCopy2.tsx index c2a59b2ba0a..d3d21357153 100644 --- a/packages/desktop-client/src/icons/v1/RadarCopy2.tsx +++ b/packages/desktop-client/src/icons/v1/RadarCopy2.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgRadarCopy2 = (props: SVGProps) => ( +export const SvgRadarCopy2 = (props: SVGProps) => ( ) => ( /> ); -export default SvgRadarCopy2; diff --git a/packages/desktop-client/src/icons/v1/Radio.tsx b/packages/desktop-client/src/icons/v1/Radio.tsx index c2cf7830938..62029c276e7 100644 --- a/packages/desktop-client/src/icons/v1/Radio.tsx +++ b/packages/desktop-client/src/icons/v1/Radio.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgRadio = (props: SVGProps) => ( +export const SvgRadio = (props: SVGProps) => ( ) => ( /> ); -export default SvgRadio; diff --git a/packages/desktop-client/src/icons/v1/Refresh.tsx b/packages/desktop-client/src/icons/v1/Refresh.tsx index 3489fd2c123..15695db9111 100644 --- a/packages/desktop-client/src/icons/v1/Refresh.tsx +++ b/packages/desktop-client/src/icons/v1/Refresh.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgRefresh = (props: SVGProps) => ( +export const SvgRefresh = (props: SVGProps) => ( ) => ( /> ); -export default SvgRefresh; diff --git a/packages/desktop-client/src/icons/v1/Reload.tsx b/packages/desktop-client/src/icons/v1/Reload.tsx index b8b8af9c120..913bdaa2647 100644 --- a/packages/desktop-client/src/icons/v1/Reload.tsx +++ b/packages/desktop-client/src/icons/v1/Reload.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgReload = (props: SVGProps) => ( +export const SvgReload = (props: SVGProps) => ( ) => ( /> ); -export default SvgReload; diff --git a/packages/desktop-client/src/icons/v1/Reply.tsx b/packages/desktop-client/src/icons/v1/Reply.tsx index 2b332faece8..bafffcd0c79 100644 --- a/packages/desktop-client/src/icons/v1/Reply.tsx +++ b/packages/desktop-client/src/icons/v1/Reply.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgReply = (props: SVGProps) => ( +export const SvgReply = (props: SVGProps) => ( ) => ( /> ); -export default SvgReply; diff --git a/packages/desktop-client/src/icons/v1/ReplyAll.tsx b/packages/desktop-client/src/icons/v1/ReplyAll.tsx index 1678b68101f..932969f97f9 100644 --- a/packages/desktop-client/src/icons/v1/ReplyAll.tsx +++ b/packages/desktop-client/src/icons/v1/ReplyAll.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgReplyAll = (props: SVGProps) => ( +export const SvgReplyAll = (props: SVGProps) => ( ) => ( /> ); -export default SvgReplyAll; diff --git a/packages/desktop-client/src/icons/v1/Reports.tsx b/packages/desktop-client/src/icons/v1/Reports.tsx index 5326876d1e9..21aca11b5dd 100644 --- a/packages/desktop-client/src/icons/v1/Reports.tsx +++ b/packages/desktop-client/src/icons/v1/Reports.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgReports = (props: SVGProps) => ( +export const SvgReports = (props: SVGProps) => ( ) => ( /> ); -export default SvgReports; diff --git a/packages/desktop-client/src/icons/v1/Repost.tsx b/packages/desktop-client/src/icons/v1/Repost.tsx index 5d0206349b7..364645e0a8f 100644 --- a/packages/desktop-client/src/icons/v1/Repost.tsx +++ b/packages/desktop-client/src/icons/v1/Repost.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgRepost = (props: SVGProps) => ( +export const SvgRepost = (props: SVGProps) => ( ) => ( /> ); -export default SvgRepost; diff --git a/packages/desktop-client/src/icons/v1/SaveDisk.tsx b/packages/desktop-client/src/icons/v1/SaveDisk.tsx index a8c2cbfa41e..f428740d83c 100644 --- a/packages/desktop-client/src/icons/v1/SaveDisk.tsx +++ b/packages/desktop-client/src/icons/v1/SaveDisk.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgSaveDisk = (props: SVGProps) => ( +export const SvgSaveDisk = (props: SVGProps) => ( ) => ( /> ); -export default SvgSaveDisk; diff --git a/packages/desktop-client/src/icons/v1/ScreenFull.tsx b/packages/desktop-client/src/icons/v1/ScreenFull.tsx index dd42e338ce7..6a3073590d3 100644 --- a/packages/desktop-client/src/icons/v1/ScreenFull.tsx +++ b/packages/desktop-client/src/icons/v1/ScreenFull.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgScreenFull = (props: SVGProps) => ( +export const SvgScreenFull = (props: SVGProps) => ( ) => ( /> ); -export default SvgScreenFull; diff --git a/packages/desktop-client/src/icons/v1/Search.tsx b/packages/desktop-client/src/icons/v1/Search.tsx index bedfdede6cb..7ebe873f7c3 100644 --- a/packages/desktop-client/src/icons/v1/Search.tsx +++ b/packages/desktop-client/src/icons/v1/Search.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgSearch = (props: SVGProps) => ( +export const SvgSearch = (props: SVGProps) => ( ) => ( /> ); -export default SvgSearch; diff --git a/packages/desktop-client/src/icons/v1/Send.tsx b/packages/desktop-client/src/icons/v1/Send.tsx index cbce2995157..d98b0e1d15f 100644 --- a/packages/desktop-client/src/icons/v1/Send.tsx +++ b/packages/desktop-client/src/icons/v1/Send.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgSend = (props: SVGProps) => ( +export const SvgSend = (props: SVGProps) => ( ) => ( ); -export default SvgSend; diff --git a/packages/desktop-client/src/icons/v1/Servers.tsx b/packages/desktop-client/src/icons/v1/Servers.tsx index 1a76e555661..3c855a8c9ab 100644 --- a/packages/desktop-client/src/icons/v1/Servers.tsx +++ b/packages/desktop-client/src/icons/v1/Servers.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgServers = (props: SVGProps) => ( +export const SvgServers = (props: SVGProps) => ( ) => ( /> ); -export default SvgServers; diff --git a/packages/desktop-client/src/icons/v1/Share.tsx b/packages/desktop-client/src/icons/v1/Share.tsx index 02f3bea3f00..d4ec0747eee 100644 --- a/packages/desktop-client/src/icons/v1/Share.tsx +++ b/packages/desktop-client/src/icons/v1/Share.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgShare = (props: SVGProps) => ( +export const SvgShare = (props: SVGProps) => ( ) => ( /> ); -export default SvgShare; diff --git a/packages/desktop-client/src/icons/v1/Share01.tsx b/packages/desktop-client/src/icons/v1/Share01.tsx index 62479ccebf0..4d523ed04f7 100644 --- a/packages/desktop-client/src/icons/v1/Share01.tsx +++ b/packages/desktop-client/src/icons/v1/Share01.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgShare01 = (props: SVGProps) => ( +export const SvgShare01 = (props: SVGProps) => ( ) => ( /> ); -export default SvgShare01; diff --git a/packages/desktop-client/src/icons/v1/ShareAlt.tsx b/packages/desktop-client/src/icons/v1/ShareAlt.tsx index a7c9bfb480d..fe76a6d0d93 100644 --- a/packages/desktop-client/src/icons/v1/ShareAlt.tsx +++ b/packages/desktop-client/src/icons/v1/ShareAlt.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgShareAlt = (props: SVGProps) => ( +export const SvgShareAlt = (props: SVGProps) => ( ) => ( /> ); -export default SvgShareAlt; diff --git a/packages/desktop-client/src/icons/v1/Shield.tsx b/packages/desktop-client/src/icons/v1/Shield.tsx index ce518e33b22..7954b714631 100644 --- a/packages/desktop-client/src/icons/v1/Shield.tsx +++ b/packages/desktop-client/src/icons/v1/Shield.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgShield = (props: SVGProps) => ( +export const SvgShield = (props: SVGProps) => ( ) => ( /> ); -export default SvgShield; diff --git a/packages/desktop-client/src/icons/v1/ShoppingCart.tsx b/packages/desktop-client/src/icons/v1/ShoppingCart.tsx index 0c7d41ae7d2..360719fdb47 100644 --- a/packages/desktop-client/src/icons/v1/ShoppingCart.tsx +++ b/packages/desktop-client/src/icons/v1/ShoppingCart.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgShoppingCart = (props: SVGProps) => ( +export const SvgShoppingCart = (props: SVGProps) => ( ) => ( /> ); -export default SvgShoppingCart; diff --git a/packages/desktop-client/src/icons/v1/ShowSidebar.tsx b/packages/desktop-client/src/icons/v1/ShowSidebar.tsx index 2427603f196..470a37a1ea2 100644 --- a/packages/desktop-client/src/icons/v1/ShowSidebar.tsx +++ b/packages/desktop-client/src/icons/v1/ShowSidebar.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgShowSidebar = (props: SVGProps) => ( +export const SvgShowSidebar = (props: SVGProps) => ( ) => ( /> ); -export default SvgShowSidebar; diff --git a/packages/desktop-client/src/icons/v1/Shuffle.tsx b/packages/desktop-client/src/icons/v1/Shuffle.tsx index a3de449f50d..1b8388c067c 100644 --- a/packages/desktop-client/src/icons/v1/Shuffle.tsx +++ b/packages/desktop-client/src/icons/v1/Shuffle.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgShuffle = (props: SVGProps) => ( +export const SvgShuffle = (props: SVGProps) => ( ) => ( /> ); -export default SvgShuffle; diff --git a/packages/desktop-client/src/icons/v1/StandBy.tsx b/packages/desktop-client/src/icons/v1/StandBy.tsx index 4711552153e..7ed3f259d2f 100644 --- a/packages/desktop-client/src/icons/v1/StandBy.tsx +++ b/packages/desktop-client/src/icons/v1/StandBy.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgStandBy = (props: SVGProps) => ( +export const SvgStandBy = (props: SVGProps) => ( ) => ( /> ); -export default SvgStandBy; diff --git a/packages/desktop-client/src/icons/v1/StarFull.tsx b/packages/desktop-client/src/icons/v1/StarFull.tsx index 27e67e1093d..780667cd157 100644 --- a/packages/desktop-client/src/icons/v1/StarFull.tsx +++ b/packages/desktop-client/src/icons/v1/StarFull.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgStarFull = (props: SVGProps) => ( +export const SvgStarFull = (props: SVGProps) => ( ) => ( /> ); -export default SvgStarFull; diff --git a/packages/desktop-client/src/icons/v1/Station.tsx b/packages/desktop-client/src/icons/v1/Station.tsx index e86d75def21..a2691ca46de 100644 --- a/packages/desktop-client/src/icons/v1/Station.tsx +++ b/packages/desktop-client/src/icons/v1/Station.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgStation = (props: SVGProps) => ( +export const SvgStation = (props: SVGProps) => ( ) => ( /> ); -export default SvgStation; diff --git a/packages/desktop-client/src/icons/v1/StepBackward.tsx b/packages/desktop-client/src/icons/v1/StepBackward.tsx index 386a5e0b1f8..c29a3b45f25 100644 --- a/packages/desktop-client/src/icons/v1/StepBackward.tsx +++ b/packages/desktop-client/src/icons/v1/StepBackward.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgStepBackward = (props: SVGProps) => ( +export const SvgStepBackward = (props: SVGProps) => ( ) => ( ); -export default SvgStepBackward; diff --git a/packages/desktop-client/src/icons/v1/StepForward.tsx b/packages/desktop-client/src/icons/v1/StepForward.tsx index fa85a2a1c7e..6d58520f96c 100644 --- a/packages/desktop-client/src/icons/v1/StepForward.tsx +++ b/packages/desktop-client/src/icons/v1/StepForward.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgStepForward = (props: SVGProps) => ( +export const SvgStepForward = (props: SVGProps) => ( ) => ( ); -export default SvgStepForward; diff --git a/packages/desktop-client/src/icons/v1/Stethoscope.tsx b/packages/desktop-client/src/icons/v1/Stethoscope.tsx index a541425051e..9ea4a1e2975 100644 --- a/packages/desktop-client/src/icons/v1/Stethoscope.tsx +++ b/packages/desktop-client/src/icons/v1/Stethoscope.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgStethoscope = (props: SVGProps) => ( +export const SvgStethoscope = (props: SVGProps) => ( ) => ( /> ); -export default SvgStethoscope; diff --git a/packages/desktop-client/src/icons/v1/StoreFront.tsx b/packages/desktop-client/src/icons/v1/StoreFront.tsx index 11f69111658..ca7a4afea45 100644 --- a/packages/desktop-client/src/icons/v1/StoreFront.tsx +++ b/packages/desktop-client/src/icons/v1/StoreFront.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgStoreFront = (props: SVGProps) => ( +export const SvgStoreFront = (props: SVGProps) => ( ) => ( /> ); -export default SvgStoreFront; diff --git a/packages/desktop-client/src/icons/v1/StrokeWidth.tsx b/packages/desktop-client/src/icons/v1/StrokeWidth.tsx index d19fc8f8331..2ccd7217936 100644 --- a/packages/desktop-client/src/icons/v1/StrokeWidth.tsx +++ b/packages/desktop-client/src/icons/v1/StrokeWidth.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgStrokeWidth = (props: SVGProps) => ( +export const SvgStrokeWidth = (props: SVGProps) => ( ) => ( /> ); -export default SvgStrokeWidth; diff --git a/packages/desktop-client/src/icons/v1/SubdirectoryLeft.tsx b/packages/desktop-client/src/icons/v1/SubdirectoryLeft.tsx index b9ca9cbc12b..fa0a9c134f1 100644 --- a/packages/desktop-client/src/icons/v1/SubdirectoryLeft.tsx +++ b/packages/desktop-client/src/icons/v1/SubdirectoryLeft.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgSubdirectoryLeft = (props: SVGProps) => ( +export const SvgSubdirectoryLeft = (props: SVGProps) => ( ) => ( ); -export default SvgSubdirectoryLeft; diff --git a/packages/desktop-client/src/icons/v1/SubdirectoryRight.tsx b/packages/desktop-client/src/icons/v1/SubdirectoryRight.tsx index 8699d614ade..fed67dc731b 100644 --- a/packages/desktop-client/src/icons/v1/SubdirectoryRight.tsx +++ b/packages/desktop-client/src/icons/v1/SubdirectoryRight.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgSubdirectoryRight = (props: SVGProps) => ( +export const SvgSubdirectoryRight = (props: SVGProps) => ( ) => ( ); -export default SvgSubdirectoryRight; diff --git a/packages/desktop-client/src/icons/v1/Subtract.tsx b/packages/desktop-client/src/icons/v1/Subtract.tsx index fd03ddc4858..af6c118cf71 100644 --- a/packages/desktop-client/src/icons/v1/Subtract.tsx +++ b/packages/desktop-client/src/icons/v1/Subtract.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgSubtract = (props: SVGProps) => ( +export const SvgSubtract = (props: SVGProps) => ( ) => ( /> ); -export default SvgSubtract; diff --git a/packages/desktop-client/src/icons/v1/Swap.tsx b/packages/desktop-client/src/icons/v1/Swap.tsx index 13b572d96da..ec861d7bbec 100644 --- a/packages/desktop-client/src/icons/v1/Swap.tsx +++ b/packages/desktop-client/src/icons/v1/Swap.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgSwap = (props: SVGProps) => ( +export const SvgSwap = (props: SVGProps) => ( ) => ( /> ); -export default SvgSwap; diff --git a/packages/desktop-client/src/icons/v1/Tablet.tsx b/packages/desktop-client/src/icons/v1/Tablet.tsx index 6e35fe13069..5cff2d5a91d 100644 --- a/packages/desktop-client/src/icons/v1/Tablet.tsx +++ b/packages/desktop-client/src/icons/v1/Tablet.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgTablet = (props: SVGProps) => ( +export const SvgTablet = (props: SVGProps) => ( ) => ( /> ); -export default SvgTablet; diff --git a/packages/desktop-client/src/icons/v1/Tag.tsx b/packages/desktop-client/src/icons/v1/Tag.tsx index 08342d04240..28e70f7d17a 100644 --- a/packages/desktop-client/src/icons/v1/Tag.tsx +++ b/packages/desktop-client/src/icons/v1/Tag.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgTag = (props: SVGProps) => ( +export const SvgTag = (props: SVGProps) => ( ) => ( /> ); -export default SvgTag; diff --git a/packages/desktop-client/src/icons/v1/Target.tsx b/packages/desktop-client/src/icons/v1/Target.tsx index 570e8070ba7..e7d3f0921d4 100644 --- a/packages/desktop-client/src/icons/v1/Target.tsx +++ b/packages/desktop-client/src/icons/v1/Target.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgTarget = (props: SVGProps) => ( +export const SvgTarget = (props: SVGProps) => ( ) => ( /> ); -export default SvgTarget; diff --git a/packages/desktop-client/src/icons/v1/TextBox.tsx b/packages/desktop-client/src/icons/v1/TextBox.tsx index 7e4b5d485e0..bc556ea486b 100644 --- a/packages/desktop-client/src/icons/v1/TextBox.tsx +++ b/packages/desktop-client/src/icons/v1/TextBox.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgTextBox = (props: SVGProps) => ( +export const SvgTextBox = (props: SVGProps) => ( ) => ( /> ); -export default SvgTextBox; diff --git a/packages/desktop-client/src/icons/v1/TextDecoration.tsx b/packages/desktop-client/src/icons/v1/TextDecoration.tsx index e185d177a01..b92fc28cfea 100644 --- a/packages/desktop-client/src/icons/v1/TextDecoration.tsx +++ b/packages/desktop-client/src/icons/v1/TextDecoration.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgTextDecoration = (props: SVGProps) => ( +export const SvgTextDecoration = (props: SVGProps) => ( ) => ( /> ); -export default SvgTextDecoration; diff --git a/packages/desktop-client/src/icons/v1/Thermometer.tsx b/packages/desktop-client/src/icons/v1/Thermometer.tsx index b6587b1a375..2cf34f4d5fe 100644 --- a/packages/desktop-client/src/icons/v1/Thermometer.tsx +++ b/packages/desktop-client/src/icons/v1/Thermometer.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgThermometer = (props: SVGProps) => ( +export const SvgThermometer = (props: SVGProps) => ( ) => ( /> ); -export default SvgThermometer; diff --git a/packages/desktop-client/src/icons/v1/ThumbsDown.tsx b/packages/desktop-client/src/icons/v1/ThumbsDown.tsx index f5f51795da6..5a182dac61f 100644 --- a/packages/desktop-client/src/icons/v1/ThumbsDown.tsx +++ b/packages/desktop-client/src/icons/v1/ThumbsDown.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgThumbsDown = (props: SVGProps) => ( +export const SvgThumbsDown = (props: SVGProps) => ( ) => ( /> ); -export default SvgThumbsDown; diff --git a/packages/desktop-client/src/icons/v1/ThumbsUp.tsx b/packages/desktop-client/src/icons/v1/ThumbsUp.tsx index 1d8e610b73f..b7f4eb0e118 100644 --- a/packages/desktop-client/src/icons/v1/ThumbsUp.tsx +++ b/packages/desktop-client/src/icons/v1/ThumbsUp.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgThumbsUp = (props: SVGProps) => ( +export const SvgThumbsUp = (props: SVGProps) => ( ) => ( /> ); -export default SvgThumbsUp; diff --git a/packages/desktop-client/src/icons/v1/Ticket.tsx b/packages/desktop-client/src/icons/v1/Ticket.tsx index c5e2faf70c0..c73c3600823 100644 --- a/packages/desktop-client/src/icons/v1/Ticket.tsx +++ b/packages/desktop-client/src/icons/v1/Ticket.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgTicket = (props: SVGProps) => ( +export const SvgTicket = (props: SVGProps) => ( ) => ( /> ); -export default SvgTicket; diff --git a/packages/desktop-client/src/icons/v1/Time.tsx b/packages/desktop-client/src/icons/v1/Time.tsx index 8aeac8294ba..98e29e13d1f 100644 --- a/packages/desktop-client/src/icons/v1/Time.tsx +++ b/packages/desktop-client/src/icons/v1/Time.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgTime = (props: SVGProps) => ( +export const SvgTime = (props: SVGProps) => ( ) => ( /> ); -export default SvgTime; diff --git a/packages/desktop-client/src/icons/v1/Timer.tsx b/packages/desktop-client/src/icons/v1/Timer.tsx index f6aaeb50ade..d8928ef2377 100644 --- a/packages/desktop-client/src/icons/v1/Timer.tsx +++ b/packages/desktop-client/src/icons/v1/Timer.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgTimer = (props: SVGProps) => ( +export const SvgTimer = (props: SVGProps) => ( ) => ( /> ); -export default SvgTimer; diff --git a/packages/desktop-client/src/icons/v1/ToolsCopy.tsx b/packages/desktop-client/src/icons/v1/ToolsCopy.tsx index 3c3f26dbc1d..67e5b91c05a 100644 --- a/packages/desktop-client/src/icons/v1/ToolsCopy.tsx +++ b/packages/desktop-client/src/icons/v1/ToolsCopy.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgToolsCopy = (props: SVGProps) => ( +export const SvgToolsCopy = (props: SVGProps) => ( ) => ( /> ); -export default SvgToolsCopy; diff --git a/packages/desktop-client/src/icons/v1/Translate.tsx b/packages/desktop-client/src/icons/v1/Translate.tsx index d2c474565db..93f5b582575 100644 --- a/packages/desktop-client/src/icons/v1/Translate.tsx +++ b/packages/desktop-client/src/icons/v1/Translate.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgTranslate = (props: SVGProps) => ( +export const SvgTranslate = (props: SVGProps) => ( ) => ( /> ); -export default SvgTranslate; diff --git a/packages/desktop-client/src/icons/v1/Trash.tsx b/packages/desktop-client/src/icons/v1/Trash.tsx index 45a0d62ee9e..29616a8885a 100644 --- a/packages/desktop-client/src/icons/v1/Trash.tsx +++ b/packages/desktop-client/src/icons/v1/Trash.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgTrash = (props: SVGProps) => ( +export const SvgTrash = (props: SVGProps) => ( ) => ( /> ); -export default SvgTrash; diff --git a/packages/desktop-client/src/icons/v1/Travel.tsx b/packages/desktop-client/src/icons/v1/Travel.tsx index f245cdadf8a..64d136915af 100644 --- a/packages/desktop-client/src/icons/v1/Travel.tsx +++ b/packages/desktop-client/src/icons/v1/Travel.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgTravel = (props: SVGProps) => ( +export const SvgTravel = (props: SVGProps) => ( ) => ( /> ); -export default SvgTravel; diff --git a/packages/desktop-client/src/icons/v1/TravelBus.tsx b/packages/desktop-client/src/icons/v1/TravelBus.tsx index 0d2f36641f0..357dae1e599 100644 --- a/packages/desktop-client/src/icons/v1/TravelBus.tsx +++ b/packages/desktop-client/src/icons/v1/TravelBus.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgTravelBus = (props: SVGProps) => ( +export const SvgTravelBus = (props: SVGProps) => ( ) => ( /> ); -export default SvgTravelBus; diff --git a/packages/desktop-client/src/icons/v1/TravelCar.tsx b/packages/desktop-client/src/icons/v1/TravelCar.tsx index 6fc2b04090d..7b2fca6892d 100644 --- a/packages/desktop-client/src/icons/v1/TravelCar.tsx +++ b/packages/desktop-client/src/icons/v1/TravelCar.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgTravelCar = (props: SVGProps) => ( +export const SvgTravelCar = (props: SVGProps) => ( ) => ( /> ); -export default SvgTravelCar; diff --git a/packages/desktop-client/src/icons/v1/TravelCase.tsx b/packages/desktop-client/src/icons/v1/TravelCase.tsx index 91ebddcf763..fdcd406f136 100644 --- a/packages/desktop-client/src/icons/v1/TravelCase.tsx +++ b/packages/desktop-client/src/icons/v1/TravelCase.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgTravelCase = (props: SVGProps) => ( +export const SvgTravelCase = (props: SVGProps) => ( ) => ( /> ); -export default SvgTravelCase; diff --git a/packages/desktop-client/src/icons/v1/TravelTaxiCab.tsx b/packages/desktop-client/src/icons/v1/TravelTaxiCab.tsx index 3073c11fdce..e5ef8aa1517 100644 --- a/packages/desktop-client/src/icons/v1/TravelTaxiCab.tsx +++ b/packages/desktop-client/src/icons/v1/TravelTaxiCab.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgTravelTaxiCab = (props: SVGProps) => ( +export const SvgTravelTaxiCab = (props: SVGProps) => ( ) => ( /> ); -export default SvgTravelTaxiCab; diff --git a/packages/desktop-client/src/icons/v1/TravelTrain.tsx b/packages/desktop-client/src/icons/v1/TravelTrain.tsx index 2101bf628a1..5fde9f87f8f 100644 --- a/packages/desktop-client/src/icons/v1/TravelTrain.tsx +++ b/packages/desktop-client/src/icons/v1/TravelTrain.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgTravelTrain = (props: SVGProps) => ( +export const SvgTravelTrain = (props: SVGProps) => ( ) => ( /> ); -export default SvgTravelTrain; diff --git a/packages/desktop-client/src/icons/v1/TravelWalk.tsx b/packages/desktop-client/src/icons/v1/TravelWalk.tsx index 494aacdf4c2..6b8abc95902 100644 --- a/packages/desktop-client/src/icons/v1/TravelWalk.tsx +++ b/packages/desktop-client/src/icons/v1/TravelWalk.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgTravelWalk = (props: SVGProps) => ( +export const SvgTravelWalk = (props: SVGProps) => ( ) => ( /> ); -export default SvgTravelWalk; diff --git a/packages/desktop-client/src/icons/v1/Trophy.tsx b/packages/desktop-client/src/icons/v1/Trophy.tsx index 13176226221..9589e2800d2 100644 --- a/packages/desktop-client/src/icons/v1/Trophy.tsx +++ b/packages/desktop-client/src/icons/v1/Trophy.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgTrophy = (props: SVGProps) => ( +export const SvgTrophy = (props: SVGProps) => ( ) => ( /> ); -export default SvgTrophy; diff --git a/packages/desktop-client/src/icons/v1/Tuning.tsx b/packages/desktop-client/src/icons/v1/Tuning.tsx index 4f470d52304..02c06c22e18 100644 --- a/packages/desktop-client/src/icons/v1/Tuning.tsx +++ b/packages/desktop-client/src/icons/v1/Tuning.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgTuning = (props: SVGProps) => ( +export const SvgTuning = (props: SVGProps) => ( ) => ( /> ); -export default SvgTuning; diff --git a/packages/desktop-client/src/icons/v1/Upload.tsx b/packages/desktop-client/src/icons/v1/Upload.tsx index fbee62a8d3f..5f013fc900d 100644 --- a/packages/desktop-client/src/icons/v1/Upload.tsx +++ b/packages/desktop-client/src/icons/v1/Upload.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgUpload = (props: SVGProps) => ( +export const SvgUpload = (props: SVGProps) => ( ) => ( ); -export default SvgUpload; diff --git a/packages/desktop-client/src/icons/v1/Usb.tsx b/packages/desktop-client/src/icons/v1/Usb.tsx index 8fbccf30467..0a6337425f3 100644 --- a/packages/desktop-client/src/icons/v1/Usb.tsx +++ b/packages/desktop-client/src/icons/v1/Usb.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgUsb = (props: SVGProps) => ( +export const SvgUsb = (props: SVGProps) => ( ) => ( /> ); -export default SvgUsb; diff --git a/packages/desktop-client/src/icons/v1/User.tsx b/packages/desktop-client/src/icons/v1/User.tsx index 41891e45142..ceb613ee19b 100644 --- a/packages/desktop-client/src/icons/v1/User.tsx +++ b/packages/desktop-client/src/icons/v1/User.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgUser = (props: SVGProps) => ( +export const SvgUser = (props: SVGProps) => ( ) => ( /> ); -export default SvgUser; diff --git a/packages/desktop-client/src/icons/v1/UserAdd.tsx b/packages/desktop-client/src/icons/v1/UserAdd.tsx index 62d9a2ef3e3..0d270739776 100644 --- a/packages/desktop-client/src/icons/v1/UserAdd.tsx +++ b/packages/desktop-client/src/icons/v1/UserAdd.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgUserAdd = (props: SVGProps) => ( +export const SvgUserAdd = (props: SVGProps) => ( ) => ( /> ); -export default SvgUserAdd; diff --git a/packages/desktop-client/src/icons/v1/UserGroup.tsx b/packages/desktop-client/src/icons/v1/UserGroup.tsx index a7ff6159d2f..2f3a84fe98d 100644 --- a/packages/desktop-client/src/icons/v1/UserGroup.tsx +++ b/packages/desktop-client/src/icons/v1/UserGroup.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgUserGroup = (props: SVGProps) => ( +export const SvgUserGroup = (props: SVGProps) => ( ) => ( /> ); -export default SvgUserGroup; diff --git a/packages/desktop-client/src/icons/v1/UserSolidCircle.tsx b/packages/desktop-client/src/icons/v1/UserSolidCircle.tsx index e7583fe8415..763194302f7 100644 --- a/packages/desktop-client/src/icons/v1/UserSolidCircle.tsx +++ b/packages/desktop-client/src/icons/v1/UserSolidCircle.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgUserSolidCircle = (props: SVGProps) => ( +export const SvgUserSolidCircle = (props: SVGProps) => ( ) => ( /> ); -export default SvgUserSolidCircle; diff --git a/packages/desktop-client/src/icons/v1/UserSolidSquare.tsx b/packages/desktop-client/src/icons/v1/UserSolidSquare.tsx index a75cd367c13..b2e5db7874c 100644 --- a/packages/desktop-client/src/icons/v1/UserSolidSquare.tsx +++ b/packages/desktop-client/src/icons/v1/UserSolidSquare.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgUserSolidSquare = (props: SVGProps) => ( +export const SvgUserSolidSquare = (props: SVGProps) => ( ) => ( /> ); -export default SvgUserSolidSquare; diff --git a/packages/desktop-client/src/icons/v1/Vector.tsx b/packages/desktop-client/src/icons/v1/Vector.tsx index f911c85e0e5..6ce48a33ddc 100644 --- a/packages/desktop-client/src/icons/v1/Vector.tsx +++ b/packages/desktop-client/src/icons/v1/Vector.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgVector = (props: SVGProps) => ( +export const SvgVector = (props: SVGProps) => ( ) => ( /> ); -export default SvgVector; diff --git a/packages/desktop-client/src/icons/v1/VideoCamera.tsx b/packages/desktop-client/src/icons/v1/VideoCamera.tsx index 75295a5aeae..7e1e745afdd 100644 --- a/packages/desktop-client/src/icons/v1/VideoCamera.tsx +++ b/packages/desktop-client/src/icons/v1/VideoCamera.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgVideoCamera = (props: SVGProps) => ( +export const SvgVideoCamera = (props: SVGProps) => ( ) => ( /> ); -export default SvgVideoCamera; diff --git a/packages/desktop-client/src/icons/v1/ViewCarousel.tsx b/packages/desktop-client/src/icons/v1/ViewCarousel.tsx index b6bdc0db2d8..77417c37f80 100644 --- a/packages/desktop-client/src/icons/v1/ViewCarousel.tsx +++ b/packages/desktop-client/src/icons/v1/ViewCarousel.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgViewCarousel = (props: SVGProps) => ( +export const SvgViewCarousel = (props: SVGProps) => ( ) => ( /> ); -export default SvgViewCarousel; diff --git a/packages/desktop-client/src/icons/v1/ViewColumn.tsx b/packages/desktop-client/src/icons/v1/ViewColumn.tsx index 5d1f3c92900..01dd7d0e993 100644 --- a/packages/desktop-client/src/icons/v1/ViewColumn.tsx +++ b/packages/desktop-client/src/icons/v1/ViewColumn.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgViewColumn = (props: SVGProps) => ( +export const SvgViewColumn = (props: SVGProps) => ( ) => ( /> ); -export default SvgViewColumn; diff --git a/packages/desktop-client/src/icons/v1/ViewHide.tsx b/packages/desktop-client/src/icons/v1/ViewHide.tsx index c37a91e62ce..01f688f1da1 100644 --- a/packages/desktop-client/src/icons/v1/ViewHide.tsx +++ b/packages/desktop-client/src/icons/v1/ViewHide.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgViewHide = (props: SVGProps) => ( +export const SvgViewHide = (props: SVGProps) => ( ) => ( /> ); -export default SvgViewHide; diff --git a/packages/desktop-client/src/icons/v1/ViewList.tsx b/packages/desktop-client/src/icons/v1/ViewList.tsx index 32d7a28d283..19b25a63727 100644 --- a/packages/desktop-client/src/icons/v1/ViewList.tsx +++ b/packages/desktop-client/src/icons/v1/ViewList.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgViewList = (props: SVGProps) => ( +export const SvgViewList = (props: SVGProps) => ( ) => ( /> ); -export default SvgViewList; diff --git a/packages/desktop-client/src/icons/v1/ViewShow.tsx b/packages/desktop-client/src/icons/v1/ViewShow.tsx index 13b76d9a63d..2772b5c6c74 100644 --- a/packages/desktop-client/src/icons/v1/ViewShow.tsx +++ b/packages/desktop-client/src/icons/v1/ViewShow.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgViewShow = (props: SVGProps) => ( +export const SvgViewShow = (props: SVGProps) => ( ) => ( /> ); -export default SvgViewShow; diff --git a/packages/desktop-client/src/icons/v1/ViewTile.tsx b/packages/desktop-client/src/icons/v1/ViewTile.tsx index 2c978d4ef31..6389f96bd6d 100644 --- a/packages/desktop-client/src/icons/v1/ViewTile.tsx +++ b/packages/desktop-client/src/icons/v1/ViewTile.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgViewTile = (props: SVGProps) => ( +export const SvgViewTile = (props: SVGProps) => ( ) => ( /> ); -export default SvgViewTile; diff --git a/packages/desktop-client/src/icons/v1/VolumeDown.tsx b/packages/desktop-client/src/icons/v1/VolumeDown.tsx index 222032882a7..26b449710b1 100644 --- a/packages/desktop-client/src/icons/v1/VolumeDown.tsx +++ b/packages/desktop-client/src/icons/v1/VolumeDown.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgVolumeDown = (props: SVGProps) => ( +export const SvgVolumeDown = (props: SVGProps) => ( ) => ( /> ); -export default SvgVolumeDown; diff --git a/packages/desktop-client/src/icons/v1/VolumeMute.tsx b/packages/desktop-client/src/icons/v1/VolumeMute.tsx index 9a0f518d365..b880910cfa8 100644 --- a/packages/desktop-client/src/icons/v1/VolumeMute.tsx +++ b/packages/desktop-client/src/icons/v1/VolumeMute.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgVolumeMute = (props: SVGProps) => ( +export const SvgVolumeMute = (props: SVGProps) => ( ) => ( ); -export default SvgVolumeMute; diff --git a/packages/desktop-client/src/icons/v1/VolumeOff.tsx b/packages/desktop-client/src/icons/v1/VolumeOff.tsx index 1e1e2e6883d..ec801a41a3d 100644 --- a/packages/desktop-client/src/icons/v1/VolumeOff.tsx +++ b/packages/desktop-client/src/icons/v1/VolumeOff.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgVolumeOff = (props: SVGProps) => ( +export const SvgVolumeOff = (props: SVGProps) => ( ) => ( /> ); -export default SvgVolumeOff; diff --git a/packages/desktop-client/src/icons/v1/VolumeUp.tsx b/packages/desktop-client/src/icons/v1/VolumeUp.tsx index bd6a5a1cd96..7dbad9790fc 100644 --- a/packages/desktop-client/src/icons/v1/VolumeUp.tsx +++ b/packages/desktop-client/src/icons/v1/VolumeUp.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgVolumeUp = (props: SVGProps) => ( +export const SvgVolumeUp = (props: SVGProps) => ( ) => ( /> ); -export default SvgVolumeUp; diff --git a/packages/desktop-client/src/icons/v1/Wallet.tsx b/packages/desktop-client/src/icons/v1/Wallet.tsx index 1f913720f3a..b34d7dcd0cc 100644 --- a/packages/desktop-client/src/icons/v1/Wallet.tsx +++ b/packages/desktop-client/src/icons/v1/Wallet.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgWallet = (props: SVGProps) => ( +export const SvgWallet = (props: SVGProps) => ( ) => ( /> ); -export default SvgWallet; diff --git a/packages/desktop-client/src/icons/v1/Watch.tsx b/packages/desktop-client/src/icons/v1/Watch.tsx index 484609ddc42..bbcd09eb191 100644 --- a/packages/desktop-client/src/icons/v1/Watch.tsx +++ b/packages/desktop-client/src/icons/v1/Watch.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgWatch = (props: SVGProps) => ( +export const SvgWatch = (props: SVGProps) => ( ) => ( /> ); -export default SvgWatch; diff --git a/packages/desktop-client/src/icons/v1/Window.tsx b/packages/desktop-client/src/icons/v1/Window.tsx index 08adb45abfd..364a85dcc7f 100644 --- a/packages/desktop-client/src/icons/v1/Window.tsx +++ b/packages/desktop-client/src/icons/v1/Window.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgWindow = (props: SVGProps) => ( +export const SvgWindow = (props: SVGProps) => ( ) => ( /> ); -export default SvgWindow; diff --git a/packages/desktop-client/src/icons/v1/WindowNew.tsx b/packages/desktop-client/src/icons/v1/WindowNew.tsx index 2f2f526e730..d43dfe150bf 100644 --- a/packages/desktop-client/src/icons/v1/WindowNew.tsx +++ b/packages/desktop-client/src/icons/v1/WindowNew.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgWindowNew = (props: SVGProps) => ( +export const SvgWindowNew = (props: SVGProps) => ( ) => ( /> ); -export default SvgWindowNew; diff --git a/packages/desktop-client/src/icons/v1/WindowOpen.tsx b/packages/desktop-client/src/icons/v1/WindowOpen.tsx index d88ef017032..ebd05db9585 100644 --- a/packages/desktop-client/src/icons/v1/WindowOpen.tsx +++ b/packages/desktop-client/src/icons/v1/WindowOpen.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgWindowOpen = (props: SVGProps) => ( +export const SvgWindowOpen = (props: SVGProps) => ( ) => ( /> ); -export default SvgWindowOpen; diff --git a/packages/desktop-client/src/icons/v1/Wrench.tsx b/packages/desktop-client/src/icons/v1/Wrench.tsx index cab5a44e3af..18cf5da6971 100644 --- a/packages/desktop-client/src/icons/v1/Wrench.tsx +++ b/packages/desktop-client/src/icons/v1/Wrench.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgWrench = (props: SVGProps) => ( +export const SvgWrench = (props: SVGProps) => ( ) => ( /> ); -export default SvgWrench; diff --git a/packages/desktop-client/src/icons/v1/YinYang.tsx b/packages/desktop-client/src/icons/v1/YinYang.tsx index cae79efe1c2..2c8a05e462d 100644 --- a/packages/desktop-client/src/icons/v1/YinYang.tsx +++ b/packages/desktop-client/src/icons/v1/YinYang.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgYinYang = (props: SVGProps) => ( +export const SvgYinYang = (props: SVGProps) => ( ) => ( /> ); -export default SvgYinYang; diff --git a/packages/desktop-client/src/icons/v1/ZoomIn.tsx b/packages/desktop-client/src/icons/v1/ZoomIn.tsx index a4ddf8d8430..c54337b4054 100644 --- a/packages/desktop-client/src/icons/v1/ZoomIn.tsx +++ b/packages/desktop-client/src/icons/v1/ZoomIn.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgZoomIn = (props: SVGProps) => ( +export const SvgZoomIn = (props: SVGProps) => ( ) => ( /> ); -export default SvgZoomIn; diff --git a/packages/desktop-client/src/icons/v1/ZoomOut.tsx b/packages/desktop-client/src/icons/v1/ZoomOut.tsx index b78dcc47d70..82c2f98acf1 100644 --- a/packages/desktop-client/src/icons/v1/ZoomOut.tsx +++ b/packages/desktop-client/src/icons/v1/ZoomOut.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgZoomOut = (props: SVGProps) => ( +export const SvgZoomOut = (props: SVGProps) => ( ) => ( /> ); -export default SvgZoomOut; diff --git a/packages/desktop-client/src/icons/v1/index.ts b/packages/desktop-client/src/icons/v1/index.ts index 4cf716cf43d..af80dcca3a5 100644 --- a/packages/desktop-client/src/icons/v1/index.ts +++ b/packages/desktop-client/src/icons/v1/index.ts @@ -1,310 +1,310 @@ -export { default as AddOutline } from './AddOutline'; -export { default as AddSolid } from './AddSolid'; -export { default as Add } from './Add'; -export { default as Adjust } from './Adjust'; -export { default as Airplane } from './Airplane'; -export { default as Album } from './Album'; -export { default as AlignCenter } from './AlignCenter'; -export { default as AlignJustified } from './AlignJustified'; -export { default as AlignLeft } from './AlignLeft'; -export { default as AlignRight } from './AlignRight'; -export { default as Anchor } from './Anchor'; -export { default as Announcement } from './Announcement'; -export { default as Apparel } from './Apparel'; -export { default as ArrowDown } from './ArrowDown'; -export { default as ArrowLeft } from './ArrowLeft'; -export { default as ArrowOutlineDown } from './ArrowOutlineDown'; -export { default as ArrowOutlineLeft } from './ArrowOutlineLeft'; -export { default as ArrowOutlineRight } from './ArrowOutlineRight'; -export { default as ArrowOutlineUp } from './ArrowOutlineUp'; -export { default as ArrowRight } from './ArrowRight'; -export { default as ArrowThickDown } from './ArrowThickDown'; -export { default as ArrowThickLeft } from './ArrowThickLeft'; -export { default as ArrowThickRight } from './ArrowThickRight'; -export { default as ArrowThickUp } from './ArrowThickUp'; -export { default as ArrowThinDown } from './ArrowThinDown'; -export { default as ArrowThinLeft } from './ArrowThinLeft'; -export { default as ArrowThinRight } from './ArrowThinRight'; -export { default as ArrowThinUp } from './ArrowThinUp'; -export { default as ArrowUp } from './ArrowUp'; -export { default as Artist } from './Artist'; -export { default as AtSymbol } from './AtSymbol'; -export { default as Attachment } from './Attachment'; -export { default as Backspace } from './Backspace'; -export { default as BackwardStep } from './BackwardStep'; -export { default as Backward } from './Backward'; -export { default as Badge } from './Badge'; -export { default as BatteryFull } from './BatteryFull'; -export { default as BatteryHalf } from './BatteryHalf'; -export { default as BatteryLow } from './BatteryLow'; -export { default as Beverage } from './Beverage'; -export { default as Block } from './Block'; -export { default as Bluetooth } from './Bluetooth'; -export { default as Bolt } from './Bolt'; -export { default as BookReference } from './BookReference'; -export { default as BookmarkCopy2 } from './BookmarkCopy2'; -export { default as BookmarkCopy3 } from './BookmarkCopy3'; -export { default as BookmarkOutlineAdd } from './BookmarkOutlineAdd'; -export { default as BookmarkOutline } from './BookmarkOutline'; -export { default as Bookmark } from './Bookmark'; -export { default as BorderAll } from './BorderAll'; -export { default as BorderBottom } from './BorderBottom'; -export { default as BorderHorizontal } from './BorderHorizontal'; -export { default as BorderInner } from './BorderInner'; -export { default as BorderLeft } from './BorderLeft'; -export { default as BorderNone } from './BorderNone'; -export { default as BorderOuter } from './BorderOuter'; -export { default as BorderRight } from './BorderRight'; -export { default as BorderTop } from './BorderTop'; -export { default as BorderVertical } from './BorderVertical'; -export { default as Box } from './Box'; -export { default as BrightnessDown } from './BrightnessDown'; -export { default as BrightnessUp } from './BrightnessUp'; -export { default as BrowserWindowNew } from './BrowserWindowNew'; -export { default as BrowserWindowOpen } from './BrowserWindowOpen'; -export { default as BrowserWindow } from './BrowserWindow'; -export { default as Bug } from './Bug'; -export { default as Buoy } from './Buoy'; -export { default as Calculator } from './Calculator'; -export { default as Calendar } from './Calendar'; -export { default as Camera } from './Camera'; -export { default as ChartBar } from './ChartBar'; -export { default as ChartPie } from './ChartPie'; -export { default as Chart } from './Chart'; -export { default as ChatBubbleDots } from './ChatBubbleDots'; -export { default as CheckAlternative } from './CheckAlternative'; -export { default as CheckmarkOutline } from './CheckmarkOutline'; -export { default as Checkmark } from './Checkmark'; -export { default as CheveronDown } from './CheveronDown'; -export { default as CheveronLeft } from './CheveronLeft'; -export { default as CheveronOutlineDown } from './CheveronOutlineDown'; -export { default as CheveronOutlineLeft } from './CheveronOutlineLeft'; -export { default as CheveronOutlineRight } from './CheveronOutlineRight'; -export { default as CheveronOutlineUp } from './CheveronOutlineUp'; -export { default as CheveronRight } from './CheveronRight'; -export { default as CheveronUp } from './CheveronUp'; -export { default as Clipboard } from './Clipboard'; -export { default as CloseOutline } from './CloseOutline'; -export { default as CloseSolid } from './CloseSolid'; -export { default as Close } from './Close'; -export { default as CloudCheck } from './CloudCheck'; -export { default as CloudDownload } from './CloudDownload'; -export { default as CloudUpload } from './CloudUpload'; -export { default as CloudWarning } from './CloudWarning'; -export { default as Cloud } from './Cloud'; -export { default as Code } from './Code'; -export { default as Coffee } from './Coffee'; -export { default as Cog } from './Cog'; -export { default as ColorPalette } from './ColorPalette'; -export { default as Compose } from './Compose'; -export { default as ComputerDesktop } from './ComputerDesktop'; -export { default as ComputerLaptop } from './ComputerLaptop'; -export { default as Conversation } from './Conversation'; -export { default as Copy } from './Copy'; -export { default as CreditCard } from './CreditCard'; -export { default as CurrencyDollar } from './CurrencyDollar'; -export { default as Dashboard } from './Dashboard'; -export { default as DateAdd } from './DateAdd'; -export { default as DialPad } from './DialPad'; -export { default as Directions } from './Directions'; -export { default as DocumentAdd } from './DocumentAdd'; -export { default as Document } from './Document'; -export { default as DotsHorizontalDouble } from './DotsHorizontalDouble'; -export { default as DotsHorizontalTriple } from './DotsHorizontalTriple'; -export { default as Download } from './Download'; -export { default as Duplicate } from './Duplicate'; -export { default as EditCopy } from './EditCopy'; -export { default as EditCrop } from './EditCrop'; -export { default as EditCut } from './EditCut'; -export { default as EditPencil } from './EditPencil'; -export { default as Education } from './Education'; -export { default as Envelope } from './Envelope'; -export { default as Equals } from './Equals'; -export { default as ExclamationOutline } from './ExclamationOutline'; -export { default as ExclamationSolid } from './ExclamationSolid'; -export { default as Explore } from './Explore'; -export { default as Factory } from './Factory'; -export { default as FastForward } from './FastForward'; -export { default as FastRewind } from './FastRewind'; -export { default as FileDouble } from './FileDouble'; -export { default as Film } from './Film'; -export { default as Filter } from './Filter'; -export { default as Flag } from './Flag'; -export { default as Flashlight } from './Flashlight'; -export { default as FolderOutlineAdd } from './FolderOutlineAdd'; -export { default as FolderOutline } from './FolderOutline'; -export { default as Folder } from './Folder'; -export { default as FormatBold } from './FormatBold'; -export { default as FormatFontSize } from './FormatFontSize'; -export { default as FormatItalic } from './FormatItalic'; -export { default as FormatTextSize } from './FormatTextSize'; -export { default as FormatUnderline } from './FormatUnderline'; -export { default as ForwardStep } from './ForwardStep'; -export { default as Forward } from './Forward'; -export { default as Gift } from './Gift'; -export { default as Globe } from './Globe'; -export { default as HandStop } from './HandStop'; -export { default as HardDrive } from './HardDrive'; -export { default as Headphones } from './Headphones'; -export { default as Heart } from './Heart'; -export { default as Home } from './Home'; -export { default as Hot } from './Hot'; -export { default as HourGlass } from './HourGlass'; -export { default as InboxCheck } from './InboxCheck'; -export { default as InboxDownload } from './InboxDownload'; -export { default as InboxFull } from './InboxFull'; -export { default as Inbox } from './Inbox'; -export { default as IndentDecrease } from './IndentDecrease'; -export { default as IndentIncrease } from './IndentIncrease'; -export { default as InformationOutline } from './InformationOutline'; -export { default as InformationSolid } from './InformationSolid'; -export { default as Key } from './Key'; -export { default as Keyboard } from './Keyboard'; -export { default as Layers } from './Layers'; -export { default as Library } from './Library'; -export { default as LightBulb } from './LightBulb'; -export { default as Link } from './Link'; -export { default as ListAdd } from './ListAdd'; -export { default as ListBullet } from './ListBullet'; -export { default as List } from './List'; -export { default as LoadBalancer } from './LoadBalancer'; -export { default as LocationCurrent } from './LocationCurrent'; -export { default as LocationFood } from './LocationFood'; -export { default as LocationGasStation } from './LocationGasStation'; -export { default as LocationHotel } from './LocationHotel'; -export { default as LocationMarina } from './LocationMarina'; -export { default as LocationPark } from './LocationPark'; -export { default as LocationRestroom } from './LocationRestroom'; -export { default as LocationShopping } from './LocationShopping'; -export { default as Location } from './Location'; -export { default as LockClosed } from './LockClosed'; -export { default as LockOpen } from './LockOpen'; -export { default as Map } from './Map'; -export { default as Menu } from './Menu'; -export { default as Mic } from './Mic'; -export { default as MinusOutline } from './MinusOutline'; -export { default as MinusSolid } from './MinusSolid'; -export { default as MobileDevices } from './MobileDevices'; -export { default as MoneyBag } from './MoneyBag'; -export { default as MoodHappyOutline } from './MoodHappyOutline'; -export { default as MoodHappySolid } from './MoodHappySolid'; -export { default as MoodNeutralOutline } from './MoodNeutralOutline'; -export { default as MoodNeutralSolid } from './MoodNeutralSolid'; -export { default as MoodSadOutline } from './MoodSadOutline'; -export { default as MoodSadSolid } from './MoodSadSolid'; -export { default as Mouse } from './Mouse'; -export { default as MoveBack } from './MoveBack'; -export { default as MusicAlbum } from './MusicAlbum'; -export { default as MusicArtist } from './MusicArtist'; -export { default as MusicNotes } from './MusicNotes'; -export { default as MusicPlaylist } from './MusicPlaylist'; -export { default as NavigationMore } from './NavigationMore'; -export { default as Network } from './Network'; -export { default as NewsPaper } from './NewsPaper'; -export { default as Notification } from './Notification'; -export { default as NotificationsOutline } from './NotificationsOutline'; -export { default as Notifications } from './Notifications'; -export { default as Paste } from './Paste'; -export { default as PauseOutline } from './PauseOutline'; -export { default as PauseSolid } from './PauseSolid'; -export { default as Pause } from './Pause'; -export { default as PenTool } from './PenTool'; -export { default as PencilWrite } from './PencilWrite'; -export { default as Phone } from './Phone'; -export { default as Photo } from './Photo'; -export { default as PhpElephant } from './PhpElephant'; -export { default as PiggyBank } from './PiggyBank'; -export { default as Pin } from './Pin'; -export { default as PlayOutline } from './PlayOutline'; -export { default as Play } from './Play'; -export { default as Playlist } from './Playlist'; -export { default as Plugin } from './Plugin'; -export { default as Portfolio } from './Portfolio'; -export { default as Printer } from './Printer'; -export { default as Pylon } from './Pylon'; -export { default as Question } from './Question'; -export { default as Queue } from './Queue'; -export { default as RadarCopy2 } from './RadarCopy2'; -export { default as Radar } from './Radar'; -export { default as Radio } from './Radio'; -export { default as Refresh } from './Refresh'; -export { default as Reload } from './Reload'; -export { default as ReplyAll } from './ReplyAll'; -export { default as Reply } from './Reply'; -export { default as Reports } from './Reports'; -export { default as Repost } from './Repost'; -export { default as SaveDisk } from './SaveDisk'; -export { default as ScreenFull } from './ScreenFull'; -export { default as Search } from './Search'; -export { default as Send } from './Send'; -export { default as Servers } from './Servers'; -export { default as Share01 } from './Share01'; -export { default as ShareAlt } from './ShareAlt'; -export { default as Share } from './Share'; -export { default as Shield } from './Shield'; -export { default as ShoppingCart } from './ShoppingCart'; -export { default as ShowSidebar } from './ShowSidebar'; -export { default as Shuffle } from './Shuffle'; -export { default as StandBy } from './StandBy'; -export { default as StarFull } from './StarFull'; -export { default as Station } from './Station'; -export { default as StepBackward } from './StepBackward'; -export { default as StepForward } from './StepForward'; -export { default as Stethoscope } from './Stethoscope'; -export { default as StoreFront } from './StoreFront'; -export { default as StrokeWidth } from './StrokeWidth'; -export { default as SubdirectoryLeft } from './SubdirectoryLeft'; -export { default as SubdirectoryRight } from './SubdirectoryRight'; -export { default as Subtract } from './Subtract'; -export { default as Swap } from './Swap'; -export { default as Tablet } from './Tablet'; -export { default as Tag } from './Tag'; -export { default as Target } from './Target'; -export { default as TextBox } from './TextBox'; -export { default as TextDecoration } from './TextDecoration'; -export { default as Thermometer } from './Thermometer'; -export { default as ThumbsDown } from './ThumbsDown'; -export { default as ThumbsUp } from './ThumbsUp'; -export { default as Ticket } from './Ticket'; -export { default as Time } from './Time'; -export { default as Timer } from './Timer'; -export { default as ToolsCopy } from './ToolsCopy'; -export { default as Translate } from './Translate'; -export { default as Trash } from './Trash'; -export { default as TravelBus } from './TravelBus'; -export { default as TravelCar } from './TravelCar'; -export { default as TravelCase } from './TravelCase'; -export { default as TravelTaxiCab } from './TravelTaxiCab'; -export { default as TravelTrain } from './TravelTrain'; -export { default as TravelWalk } from './TravelWalk'; -export { default as Travel } from './Travel'; -export { default as Trophy } from './Trophy'; -export { default as Tuning } from './Tuning'; -export { default as Upload } from './Upload'; -export { default as Usb } from './Usb'; -export { default as UserAdd } from './UserAdd'; -export { default as UserGroup } from './UserGroup'; -export { default as UserSolidCircle } from './UserSolidCircle'; -export { default as UserSolidSquare } from './UserSolidSquare'; -export { default as User } from './User'; -export { default as Vector } from './Vector'; -export { default as VideoCamera } from './VideoCamera'; -export { default as ViewCarousel } from './ViewCarousel'; -export { default as ViewColumn } from './ViewColumn'; -export { default as ViewHide } from './ViewHide'; -export { default as ViewList } from './ViewList'; -export { default as ViewShow } from './ViewShow'; -export { default as ViewTile } from './ViewTile'; -export { default as VolumeDown } from './VolumeDown'; -export { default as VolumeMute } from './VolumeMute'; -export { default as VolumeOff } from './VolumeOff'; -export { default as VolumeUp } from './VolumeUp'; -export { default as Wallet } from './Wallet'; -export { default as Watch } from './Watch'; -export { default as WindowNew } from './WindowNew'; -export { default as WindowOpen } from './WindowOpen'; -export { default as Window } from './Window'; -export { default as Wrench } from './Wrench'; -export { default as YinYang } from './YinYang'; -export { default as ZoomIn } from './ZoomIn'; -export { default as ZoomOut } from './ZoomOut'; +export { SvgAddOutline } from './AddOutline'; +export { SvgAddSolid } from './AddSolid'; +export { SvgAdd } from './Add'; +export { SvgAdjust } from './Adjust'; +export { SvgAirplane } from './Airplane'; +export { SvgAlbum } from './Album'; +export { SvgAlignCenter } from './AlignCenter'; +export { SvgAlignJustified } from './AlignJustified'; +export { SvgAlignLeft } from './AlignLeft'; +export { SvgAlignRight } from './AlignRight'; +export { SvgAnchor } from './Anchor'; +export { SvgAnnouncement } from './Announcement'; +export { SvgApparel } from './Apparel'; +export { SvgArrowDown } from './ArrowDown'; +export { SvgArrowLeft } from './ArrowLeft'; +export { SvgArrowOutlineDown } from './ArrowOutlineDown'; +export { SvgArrowOutlineLeft } from './ArrowOutlineLeft'; +export { SvgArrowOutlineRight } from './ArrowOutlineRight'; +export { SvgArrowOutlineUp } from './ArrowOutlineUp'; +export { SvgArrowRight } from './ArrowRight'; +export { SvgArrowThickDown } from './ArrowThickDown'; +export { SvgArrowThickLeft } from './ArrowThickLeft'; +export { SvgArrowThickRight } from './ArrowThickRight'; +export { SvgArrowThickUp } from './ArrowThickUp'; +export { SvgArrowThinDown } from './ArrowThinDown'; +export { SvgArrowThinLeft } from './ArrowThinLeft'; +export { SvgArrowThinRight } from './ArrowThinRight'; +export { SvgArrowThinUp } from './ArrowThinUp'; +export { SvgArrowUp } from './ArrowUp'; +export { SvgArtist } from './Artist'; +export { SvgAtSymbol } from './AtSymbol'; +export { SvgAttachment } from './Attachment'; +export { SvgBackspace } from './Backspace'; +export { SvgBackwardStep } from './BackwardStep'; +export { SvgBackward } from './Backward'; +export { SvgBadge } from './Badge'; +export { SvgBatteryFull } from './BatteryFull'; +export { SvgBatteryHalf } from './BatteryHalf'; +export { SvgBatteryLow } from './BatteryLow'; +export { SvgBeverage } from './Beverage'; +export { SvgBlock } from './Block'; +export { SvgBluetooth } from './Bluetooth'; +export { SvgBolt } from './Bolt'; +export { SvgBookReference } from './BookReference'; +export { SvgBookmarkCopy2 } from './BookmarkCopy2'; +export { SvgBookmarkCopy3 } from './BookmarkCopy3'; +export { SvgBookmarkOutlineAdd } from './BookmarkOutlineAdd'; +export { SvgBookmarkOutline } from './BookmarkOutline'; +export { SvgBookmark } from './Bookmark'; +export { SvgBorderAll } from './BorderAll'; +export { SvgBorderBottom } from './BorderBottom'; +export { SvgBorderHorizontal } from './BorderHorizontal'; +export { SvgBorderInner } from './BorderInner'; +export { SvgBorderLeft } from './BorderLeft'; +export { SvgBorderNone } from './BorderNone'; +export { SvgBorderOuter } from './BorderOuter'; +export { SvgBorderRight } from './BorderRight'; +export { SvgBorderTop } from './BorderTop'; +export { SvgBorderVertical } from './BorderVertical'; +export { SvgBox } from './Box'; +export { SvgBrightnessDown } from './BrightnessDown'; +export { SvgBrightnessUp } from './BrightnessUp'; +export { SvgBrowserWindowNew } from './BrowserWindowNew'; +export { SvgBrowserWindowOpen } from './BrowserWindowOpen'; +export { SvgBrowserWindow } from './BrowserWindow'; +export { SvgBug } from './Bug'; +export { SvgBuoy } from './Buoy'; +export { SvgCalculator } from './Calculator'; +export { SvgCalendar } from './Calendar'; +export { SvgCamera } from './Camera'; +export { SvgChartBar } from './ChartBar'; +export { SvgChartPie } from './ChartPie'; +export { SvgChart } from './Chart'; +export { SvgChatBubbleDots } from './ChatBubbleDots'; +export { SvgCheckAlternative } from './CheckAlternative'; +export { SvgCheckmarkOutline } from './CheckmarkOutline'; +export { SvgCheckmark } from './Checkmark'; +export { SvgCheveronDown } from './CheveronDown'; +export { SvgCheveronLeft } from './CheveronLeft'; +export { SvgCheveronOutlineDown } from './CheveronOutlineDown'; +export { SvgCheveronOutlineLeft } from './CheveronOutlineLeft'; +export { SvgCheveronOutlineRight } from './CheveronOutlineRight'; +export { SvgCheveronOutlineUp } from './CheveronOutlineUp'; +export { SvgCheveronRight } from './CheveronRight'; +export { SvgCheveronUp } from './CheveronUp'; +export { SvgClipboard } from './Clipboard'; +export { SvgCloseOutline } from './CloseOutline'; +export { SvgCloseSolid } from './CloseSolid'; +export { SvgClose } from './Close'; +export { SvgCloudCheck } from './CloudCheck'; +export { SvgCloudDownload } from './CloudDownload'; +export { SvgCloudUpload } from './CloudUpload'; +export { SvgCloudWarning } from './CloudWarning'; +export { SvgCloud } from './Cloud'; +export { SvgCode } from './Code'; +export { SvgCoffee } from './Coffee'; +export { SvgCog } from './Cog'; +export { SvgColorPalette } from './ColorPalette'; +export { SvgCompose } from './Compose'; +export { SvgComputerDesktop } from './ComputerDesktop'; +export { SvgComputerLaptop } from './ComputerLaptop'; +export { SvgConversation } from './Conversation'; +export { SvgCopy } from './Copy'; +export { SvgCreditCard } from './CreditCard'; +export { SvgCurrencyDollar } from './CurrencyDollar'; +export { SvgDashboard } from './Dashboard'; +export { SvgDateAdd } from './DateAdd'; +export { SvgDialPad } from './DialPad'; +export { SvgDirections } from './Directions'; +export { SvgDocumentAdd } from './DocumentAdd'; +export { SvgDocument } from './Document'; +export { SvgDotsHorizontalDouble } from './DotsHorizontalDouble'; +export { SvgDotsHorizontalTriple } from './DotsHorizontalTriple'; +export { SvgDownload } from './Download'; +export { SvgDuplicate } from './Duplicate'; +export { SvgEditCopy } from './EditCopy'; +export { SvgEditCrop } from './EditCrop'; +export { SvgEditCut } from './EditCut'; +export { SvgEditPencil } from './EditPencil'; +export { SvgEducation } from './Education'; +export { SvgEnvelope } from './Envelope'; +export { SvgEquals } from './Equals'; +export { SvgExclamationOutline } from './ExclamationOutline'; +export { SvgExclamationSolid } from './ExclamationSolid'; +export { SvgExplore } from './Explore'; +export { SvgFactory } from './Factory'; +export { SvgFastForward } from './FastForward'; +export { SvgFastRewind } from './FastRewind'; +export { SvgFileDouble } from './FileDouble'; +export { SvgFilm } from './Film'; +export { SvgFilter } from './Filter'; +export { SvgFlag } from './Flag'; +export { SvgFlashlight } from './Flashlight'; +export { SvgFolderOutlineAdd } from './FolderOutlineAdd'; +export { SvgFolderOutline } from './FolderOutline'; +export { SvgFolder } from './Folder'; +export { SvgFormatBold } from './FormatBold'; +export { SvgFormatFontSize } from './FormatFontSize'; +export { SvgFormatItalic } from './FormatItalic'; +export { SvgFormatTextSize } from './FormatTextSize'; +export { SvgFormatUnderline } from './FormatUnderline'; +export { SvgForwardStep } from './ForwardStep'; +export { SvgForward } from './Forward'; +export { SvgGift } from './Gift'; +export { SvgGlobe } from './Globe'; +export { SvgHandStop } from './HandStop'; +export { SvgHardDrive } from './HardDrive'; +export { SvgHeadphones } from './Headphones'; +export { SvgHeart } from './Heart'; +export { SvgHome } from './Home'; +export { SvgHot } from './Hot'; +export { SvgHourGlass } from './HourGlass'; +export { SvgInboxCheck } from './InboxCheck'; +export { SvgInboxDownload } from './InboxDownload'; +export { SvgInboxFull } from './InboxFull'; +export { SvgInbox } from './Inbox'; +export { SvgIndentDecrease } from './IndentDecrease'; +export { SvgIndentIncrease } from './IndentIncrease'; +export { SvgInformationOutline } from './InformationOutline'; +export { SvgInformationSolid } from './InformationSolid'; +export { SvgKey } from './Key'; +export { SvgKeyboard } from './Keyboard'; +export { SvgLayers } from './Layers'; +export { SvgLibrary } from './Library'; +export { SvgLightBulb } from './LightBulb'; +export { SvgLink } from './Link'; +export { SvgListAdd } from './ListAdd'; +export { SvgListBullet } from './ListBullet'; +export { SvgList } from './List'; +export { SvgLoadBalancer } from './LoadBalancer'; +export { SvgLocationCurrent } from './LocationCurrent'; +export { SvgLocationFood } from './LocationFood'; +export { SvgLocationGasStation } from './LocationGasStation'; +export { SvgLocationHotel } from './LocationHotel'; +export { SvgLocationMarina } from './LocationMarina'; +export { SvgLocationPark } from './LocationPark'; +export { SvgLocationRestroom } from './LocationRestroom'; +export { SvgLocationShopping } from './LocationShopping'; +export { SvgLocation } from './Location'; +export { SvgLockClosed } from './LockClosed'; +export { SvgLockOpen } from './LockOpen'; +export { SvgMap } from './Map'; +export { SvgMenu } from './Menu'; +export { SvgMic } from './Mic'; +export { SvgMinusOutline } from './MinusOutline'; +export { SvgMinusSolid } from './MinusSolid'; +export { SvgMobileDevices } from './MobileDevices'; +export { SvgMoneyBag } from './MoneyBag'; +export { SvgMoodHappyOutline } from './MoodHappyOutline'; +export { SvgMoodHappySolid } from './MoodHappySolid'; +export { SvgMoodNeutralOutline } from './MoodNeutralOutline'; +export { SvgMoodNeutralSolid } from './MoodNeutralSolid'; +export { SvgMoodSadOutline } from './MoodSadOutline'; +export { SvgMoodSadSolid } from './MoodSadSolid'; +export { SvgMouse } from './Mouse'; +export { SvgMoveBack } from './MoveBack'; +export { SvgMusicAlbum } from './MusicAlbum'; +export { SvgMusicArtist } from './MusicArtist'; +export { SvgMusicNotes } from './MusicNotes'; +export { SvgMusicPlaylist } from './MusicPlaylist'; +export { SvgNavigationMore } from './NavigationMore'; +export { SvgNetwork } from './Network'; +export { SvgNewsPaper } from './NewsPaper'; +export { SvgNotification } from './Notification'; +export { SvgNotificationsOutline } from './NotificationsOutline'; +export { SvgNotifications } from './Notifications'; +export { SvgPaste } from './Paste'; +export { SvgPauseOutline } from './PauseOutline'; +export { SvgPauseSolid } from './PauseSolid'; +export { SvgPause } from './Pause'; +export { SvgPenTool } from './PenTool'; +export { SvgPencilWrite } from './PencilWrite'; +export { SvgPhone } from './Phone'; +export { SvgPhoto } from './Photo'; +export { SvgPhpElephant } from './PhpElephant'; +export { SvgPiggyBank } from './PiggyBank'; +export { SvgPin } from './Pin'; +export { SvgPlayOutline } from './PlayOutline'; +export { SvgPlay } from './Play'; +export { SvgPlaylist } from './Playlist'; +export { SvgPlugin } from './Plugin'; +export { SvgPortfolio } from './Portfolio'; +export { SvgPrinter } from './Printer'; +export { SvgPylon } from './Pylon'; +export { SvgQuestion } from './Question'; +export { SvgQueue } from './Queue'; +export { SvgRadarCopy2 } from './RadarCopy2'; +export { SvgRadar } from './Radar'; +export { SvgRadio } from './Radio'; +export { SvgRefresh } from './Refresh'; +export { SvgReload } from './Reload'; +export { SvgReplyAll } from './ReplyAll'; +export { SvgReply } from './Reply'; +export { SvgReports } from './Reports'; +export { SvgRepost } from './Repost'; +export { SvgSaveDisk } from './SaveDisk'; +export { SvgScreenFull } from './ScreenFull'; +export { SvgSearch } from './Search'; +export { SvgSend } from './Send'; +export { SvgServers } from './Servers'; +export { SvgShare01 } from './Share01'; +export { SvgShareAlt } from './ShareAlt'; +export { SvgShare } from './Share'; +export { SvgShield } from './Shield'; +export { SvgShoppingCart } from './ShoppingCart'; +export { SvgShowSidebar } from './ShowSidebar'; +export { SvgShuffle } from './Shuffle'; +export { SvgStandBy } from './StandBy'; +export { SvgStarFull } from './StarFull'; +export { SvgStation } from './Station'; +export { SvgStepBackward } from './StepBackward'; +export { SvgStepForward } from './StepForward'; +export { SvgStethoscope } from './Stethoscope'; +export { SvgStoreFront } from './StoreFront'; +export { SvgStrokeWidth } from './StrokeWidth'; +export { SvgSubdirectoryLeft } from './SubdirectoryLeft'; +export { SvgSubdirectoryRight } from './SubdirectoryRight'; +export { SvgSubtract } from './Subtract'; +export { SvgSwap } from './Swap'; +export { SvgTablet } from './Tablet'; +export { SvgTag } from './Tag'; +export { SvgTarget } from './Target'; +export { SvgTextBox } from './TextBox'; +export { SvgTextDecoration } from './TextDecoration'; +export { SvgThermometer } from './Thermometer'; +export { SvgThumbsDown } from './ThumbsDown'; +export { SvgThumbsUp } from './ThumbsUp'; +export { SvgTicket } from './Ticket'; +export { SvgTime } from './Time'; +export { SvgTimer } from './Timer'; +export { SvgToolsCopy } from './ToolsCopy'; +export { SvgTranslate } from './Translate'; +export { SvgTrash } from './Trash'; +export { SvgTravelBus } from './TravelBus'; +export { SvgTravelCar } from './TravelCar'; +export { SvgTravelCase } from './TravelCase'; +export { SvgTravelTaxiCab } from './TravelTaxiCab'; +export { SvgTravelTrain } from './TravelTrain'; +export { SvgTravelWalk } from './TravelWalk'; +export { SvgTravel } from './Travel'; +export { SvgTrophy } from './Trophy'; +export { SvgTuning } from './Tuning'; +export { SvgUpload } from './Upload'; +export { SvgUsb } from './Usb'; +export { SvgUserAdd } from './UserAdd'; +export { SvgUserGroup } from './UserGroup'; +export { SvgUserSolidCircle } from './UserSolidCircle'; +export { SvgUserSolidSquare } from './UserSolidSquare'; +export { SvgUser } from './User'; +export { SvgVector } from './Vector'; +export { SvgVideoCamera } from './VideoCamera'; +export { SvgViewCarousel } from './ViewCarousel'; +export { SvgViewColumn } from './ViewColumn'; +export { SvgViewHide } from './ViewHide'; +export { SvgViewList } from './ViewList'; +export { SvgViewShow } from './ViewShow'; +export { SvgViewTile } from './ViewTile'; +export { SvgVolumeDown } from './VolumeDown'; +export { SvgVolumeMute } from './VolumeMute'; +export { SvgVolumeOff } from './VolumeOff'; +export { SvgVolumeUp } from './VolumeUp'; +export { SvgWallet } from './Wallet'; +export { SvgWatch } from './Watch'; +export { SvgWindowNew } from './WindowNew'; +export { SvgWindowOpen } from './WindowOpen'; +export { SvgWindow } from './Window'; +export { SvgWrench } from './Wrench'; +export { SvgYinYang } from './YinYang'; +export { SvgZoomIn } from './ZoomIn'; +export { SvgZoomOut } from './ZoomOut'; diff --git a/packages/desktop-client/src/icons/v2/AlertTriangle.tsx b/packages/desktop-client/src/icons/v2/AlertTriangle.tsx index 4d4138e79ec..b019795c79a 100644 --- a/packages/desktop-client/src/icons/v2/AlertTriangle.tsx +++ b/packages/desktop-client/src/icons/v2/AlertTriangle.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgAlertTriangle = (props: SVGProps) => ( +export const SvgAlertTriangle = (props: SVGProps) => ( ) => ( /> ); -export default SvgAlertTriangle; diff --git a/packages/desktop-client/src/icons/v2/ArrowButtonDown1.tsx b/packages/desktop-client/src/icons/v2/ArrowButtonDown1.tsx index 2e8dabbabd3..1ca31cf617b 100644 --- a/packages/desktop-client/src/icons/v2/ArrowButtonDown1.tsx +++ b/packages/desktop-client/src/icons/v2/ArrowButtonDown1.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowButtonDown1 = (props: SVGProps) => ( +export const SvgArrowButtonDown1 = (props: SVGProps) => ( ) => ( /> ); -export default SvgArrowButtonDown1; diff --git a/packages/desktop-client/src/icons/v2/ArrowButtonLeft1.tsx b/packages/desktop-client/src/icons/v2/ArrowButtonLeft1.tsx index f9cdf4f45ac..beeae0f6425 100644 --- a/packages/desktop-client/src/icons/v2/ArrowButtonLeft1.tsx +++ b/packages/desktop-client/src/icons/v2/ArrowButtonLeft1.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowButtonLeft1 = (props: SVGProps) => ( +export const SvgArrowButtonLeft1 = (props: SVGProps) => ( ) => ( /> ); -export default SvgArrowButtonLeft1; diff --git a/packages/desktop-client/src/icons/v2/ArrowButtonRight1.tsx b/packages/desktop-client/src/icons/v2/ArrowButtonRight1.tsx index 83437d666da..da19165ad08 100644 --- a/packages/desktop-client/src/icons/v2/ArrowButtonRight1.tsx +++ b/packages/desktop-client/src/icons/v2/ArrowButtonRight1.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowButtonRight1 = (props: SVGProps) => ( +export const SvgArrowButtonRight1 = (props: SVGProps) => ( ) => ( /> ); -export default SvgArrowButtonRight1; diff --git a/packages/desktop-client/src/icons/v2/ArrowButtonUp1.tsx b/packages/desktop-client/src/icons/v2/ArrowButtonUp1.tsx index a9fb1677ac1..757bbb0ec7f 100644 --- a/packages/desktop-client/src/icons/v2/ArrowButtonUp1.tsx +++ b/packages/desktop-client/src/icons/v2/ArrowButtonUp1.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowButtonUp1 = (props: SVGProps) => ( +export const SvgArrowButtonUp1 = (props: SVGProps) => ( ) => ( /> ); -export default SvgArrowButtonUp1; diff --git a/packages/desktop-client/src/icons/v2/ArrowsExpand3.tsx b/packages/desktop-client/src/icons/v2/ArrowsExpand3.tsx index fbc9bb643a5..fd98a941b9b 100644 --- a/packages/desktop-client/src/icons/v2/ArrowsExpand3.tsx +++ b/packages/desktop-client/src/icons/v2/ArrowsExpand3.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowsExpand3 = (props: SVGProps) => ( +export const SvgArrowsExpand3 = (props: SVGProps) => ( ) => ( /> ); -export default SvgArrowsExpand3; diff --git a/packages/desktop-client/src/icons/v2/ArrowsShrink3.tsx b/packages/desktop-client/src/icons/v2/ArrowsShrink3.tsx index 8c3e7b24734..1a9905625f2 100644 --- a/packages/desktop-client/src/icons/v2/ArrowsShrink3.tsx +++ b/packages/desktop-client/src/icons/v2/ArrowsShrink3.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowsShrink3 = (props: SVGProps) => ( +export const SvgArrowsShrink3 = (props: SVGProps) => ( ) => ( /> ); -export default SvgArrowsShrink3; diff --git a/packages/desktop-client/src/icons/v2/ArrowsSynchronize.tsx b/packages/desktop-client/src/icons/v2/ArrowsSynchronize.tsx index bfd8b2bf636..06e15afc5c9 100644 --- a/packages/desktop-client/src/icons/v2/ArrowsSynchronize.tsx +++ b/packages/desktop-client/src/icons/v2/ArrowsSynchronize.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgArrowsSynchronize = (props: SVGProps) => ( +export const SvgArrowsSynchronize = (props: SVGProps) => ( ) => ( ); -export default SvgArrowsSynchronize; diff --git a/packages/desktop-client/src/icons/v2/Calendar.tsx b/packages/desktop-client/src/icons/v2/Calendar.tsx index 73d0d69346f..14b6e818395 100644 --- a/packages/desktop-client/src/icons/v2/Calendar.tsx +++ b/packages/desktop-client/src/icons/v2/Calendar.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCalendar = (props: SVGProps) => ( +export const SvgCalendar = (props: SVGProps) => ( ) => ( /> ); -export default SvgCalendar; diff --git a/packages/desktop-client/src/icons/v2/Calendar3.tsx b/packages/desktop-client/src/icons/v2/Calendar3.tsx index 837497ee673..3fa28089d69 100644 --- a/packages/desktop-client/src/icons/v2/Calendar3.tsx +++ b/packages/desktop-client/src/icons/v2/Calendar3.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCalendar3 = (props: SVGProps) => ( +export const SvgCalendar3 = (props: SVGProps) => ( ) => ( /> ); -export default SvgCalendar3; diff --git a/packages/desktop-client/src/icons/v2/Check.tsx b/packages/desktop-client/src/icons/v2/Check.tsx index ecdbc9d03ed..170941f3193 100644 --- a/packages/desktop-client/src/icons/v2/Check.tsx +++ b/packages/desktop-client/src/icons/v2/Check.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCheck = (props: SVGProps) => ( +export const SvgCheck = (props: SVGProps) => ( ) => ( /> ); -export default SvgCheck; diff --git a/packages/desktop-client/src/icons/v2/CheckAll.tsx b/packages/desktop-client/src/icons/v2/CheckAll.tsx index 69d0dc07965..83394d77cb6 100644 --- a/packages/desktop-client/src/icons/v2/CheckAll.tsx +++ b/packages/desktop-client/src/icons/v2/CheckAll.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCheckAll = (props: SVGProps) => ( +export const SvgCheckAll = (props: SVGProps) => ( ) => ( }} > ); -export default SvgCheckAll; diff --git a/packages/desktop-client/src/icons/v2/CheckCircle1.tsx b/packages/desktop-client/src/icons/v2/CheckCircle1.tsx index ab740bda34e..1c853500f07 100644 --- a/packages/desktop-client/src/icons/v2/CheckCircle1.tsx +++ b/packages/desktop-client/src/icons/v2/CheckCircle1.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCheckCircle1 = (props: SVGProps) => ( +export const SvgCheckCircle1 = (props: SVGProps) => ( ) => ( /> ); -export default SvgCheckCircle1; diff --git a/packages/desktop-client/src/icons/v2/CheckCircleHollow.tsx b/packages/desktop-client/src/icons/v2/CheckCircleHollow.tsx index 7d7743fecce..034e34e185e 100644 --- a/packages/desktop-client/src/icons/v2/CheckCircleHollow.tsx +++ b/packages/desktop-client/src/icons/v2/CheckCircleHollow.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCheckCircleHollow = (props: SVGProps) => ( +export const SvgCheckCircleHollow = (props: SVGProps) => ( ) => ( /> ); -export default SvgCheckCircleHollow; diff --git a/packages/desktop-client/src/icons/v2/CloudUnknown.tsx b/packages/desktop-client/src/icons/v2/CloudUnknown.tsx index 5be3692abbe..248867e95e2 100644 --- a/packages/desktop-client/src/icons/v2/CloudUnknown.tsx +++ b/packages/desktop-client/src/icons/v2/CloudUnknown.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCloudUnknown = (props: SVGProps) => ( +export const SvgCloudUnknown = (props: SVGProps) => ( ) => ( /> ); -export default SvgCloudUnknown; diff --git a/packages/desktop-client/src/icons/v2/CloudUpload.tsx b/packages/desktop-client/src/icons/v2/CloudUpload.tsx index 3498694e3e8..ddf6fa91d21 100644 --- a/packages/desktop-client/src/icons/v2/CloudUpload.tsx +++ b/packages/desktop-client/src/icons/v2/CloudUpload.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCloudUpload = (props: SVGProps) => ( +export const SvgCloudUpload = (props: SVGProps) => ( ) => ( /> ); -export default SvgCloudUpload; diff --git a/packages/desktop-client/src/icons/v2/CustomNotesPaper.tsx b/packages/desktop-client/src/icons/v2/CustomNotesPaper.tsx index 088f9ff0d69..bb9f6eb795d 100644 --- a/packages/desktop-client/src/icons/v2/CustomNotesPaper.tsx +++ b/packages/desktop-client/src/icons/v2/CustomNotesPaper.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgCustomNotesPaper = (props: SVGProps) => ( +export const SvgCustomNotesPaper = (props: SVGProps) => ( ) => ( /> ); -export default SvgCustomNotesPaper; diff --git a/packages/desktop-client/src/icons/v2/DownloadThickBottom.tsx b/packages/desktop-client/src/icons/v2/DownloadThickBottom.tsx index 5bc8061e4b8..116c67bda78 100644 --- a/packages/desktop-client/src/icons/v2/DownloadThickBottom.tsx +++ b/packages/desktop-client/src/icons/v2/DownloadThickBottom.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgDownloadThickBottom = (props: SVGProps) => ( +export const SvgDownloadThickBottom = (props: SVGProps) => ( ) => ( /> ); -export default SvgDownloadThickBottom; diff --git a/packages/desktop-client/src/icons/v2/EditSkull1.tsx b/packages/desktop-client/src/icons/v2/EditSkull1.tsx index 2017696c222..58997a5d549 100644 --- a/packages/desktop-client/src/icons/v2/EditSkull1.tsx +++ b/packages/desktop-client/src/icons/v2/EditSkull1.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgEditSkull1 = (props: SVGProps) => ( +export const SvgEditSkull1 = (props: SVGProps) => ( ) => ( /> ); -export default SvgEditSkull1; diff --git a/packages/desktop-client/src/icons/v2/FavoriteStar.tsx b/packages/desktop-client/src/icons/v2/FavoriteStar.tsx index 8b1ef5be086..847c8ea7cc8 100644 --- a/packages/desktop-client/src/icons/v2/FavoriteStar.tsx +++ b/packages/desktop-client/src/icons/v2/FavoriteStar.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgFavoriteStar = (props: SVGProps) => ( +export const SvgFavoriteStar = (props: SVGProps) => ( ) => ( /> ); -export default SvgFavoriteStar; diff --git a/packages/desktop-client/src/icons/v2/Filter2.tsx b/packages/desktop-client/src/icons/v2/Filter2.tsx index 1cd1f0ab6b7..06c8fc411bc 100644 --- a/packages/desktop-client/src/icons/v2/Filter2.tsx +++ b/packages/desktop-client/src/icons/v2/Filter2.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgFilter2 = (props: SVGProps) => ( +export const SvgFilter2 = (props: SVGProps) => ( ) => ( /> ); -export default SvgFilter2; diff --git a/packages/desktop-client/src/icons/v2/Hyperlink2.tsx b/packages/desktop-client/src/icons/v2/Hyperlink2.tsx index 9a233c5220b..374a52373bd 100644 --- a/packages/desktop-client/src/icons/v2/Hyperlink2.tsx +++ b/packages/desktop-client/src/icons/v2/Hyperlink2.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgHyperlink2 = (props: SVGProps) => ( +export const SvgHyperlink2 = (props: SVGProps) => ( ) => ( /> ); -export default SvgHyperlink2; diff --git a/packages/desktop-client/src/icons/v2/Hyperlink3.tsx b/packages/desktop-client/src/icons/v2/Hyperlink3.tsx index fd40647cc46..ab723dbc9a8 100644 --- a/packages/desktop-client/src/icons/v2/Hyperlink3.tsx +++ b/packages/desktop-client/src/icons/v2/Hyperlink3.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgHyperlink3 = (props: SVGProps) => ( +export const SvgHyperlink3 = (props: SVGProps) => ( ) => ( /> ); -export default SvgHyperlink3; diff --git a/packages/desktop-client/src/icons/v2/InformationCircle.tsx b/packages/desktop-client/src/icons/v2/InformationCircle.tsx index 1a0537f29c3..cd027e9e593 100644 --- a/packages/desktop-client/src/icons/v2/InformationCircle.tsx +++ b/packages/desktop-client/src/icons/v2/InformationCircle.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgInformationCircle = (props: SVGProps) => ( +export const SvgInformationCircle = (props: SVGProps) => ( ) => ( /> ); -export default SvgInformationCircle; diff --git a/packages/desktop-client/src/icons/v2/Key.tsx b/packages/desktop-client/src/icons/v2/Key.tsx index 4e9fbb3f318..8a76c155209 100644 --- a/packages/desktop-client/src/icons/v2/Key.tsx +++ b/packages/desktop-client/src/icons/v2/Key.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgKey = (props: SVGProps) => ( +export const SvgKey = (props: SVGProps) => ( ) => ( /> ); -export default SvgKey; diff --git a/packages/desktop-client/src/icons/v2/LockClosed.tsx b/packages/desktop-client/src/icons/v2/LockClosed.tsx index fea05ad94df..5dd6d49a7c3 100644 --- a/packages/desktop-client/src/icons/v2/LockClosed.tsx +++ b/packages/desktop-client/src/icons/v2/LockClosed.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgLockClosed = (props: SVGProps) => ( +export const SvgLockClosed = (props: SVGProps) => ( ) => ( /> ); -export default SvgLockClosed; diff --git a/packages/desktop-client/src/icons/v2/MoonStars.tsx b/packages/desktop-client/src/icons/v2/MoonStars.tsx index c4a45b26cf2..db7d7a84946 100644 --- a/packages/desktop-client/src/icons/v2/MoonStars.tsx +++ b/packages/desktop-client/src/icons/v2/MoonStars.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgMoonStars = (props: SVGProps) => ( +export const SvgMoonStars = (props: SVGProps) => ( ) => ( /> ); -export default SvgMoonStars; diff --git a/packages/desktop-client/src/icons/v2/NavigationMenu.tsx b/packages/desktop-client/src/icons/v2/NavigationMenu.tsx index 0c5a0d949b5..bad2566f33b 100644 --- a/packages/desktop-client/src/icons/v2/NavigationMenu.tsx +++ b/packages/desktop-client/src/icons/v2/NavigationMenu.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgNavigationMenu = (props: SVGProps) => ( +export const SvgNavigationMenu = (props: SVGProps) => ( ) => ( /> ); -export default SvgNavigationMenu; diff --git a/packages/desktop-client/src/icons/v2/NotesPaper.tsx b/packages/desktop-client/src/icons/v2/NotesPaper.tsx index 6988369afd8..7384ceb3659 100644 --- a/packages/desktop-client/src/icons/v2/NotesPaper.tsx +++ b/packages/desktop-client/src/icons/v2/NotesPaper.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgNotesPaper = (props: SVGProps) => ( +export const SvgNotesPaper = (props: SVGProps) => ( ) => ( /> ); -export default SvgNotesPaper; diff --git a/packages/desktop-client/src/icons/v2/NotesPaperText.tsx b/packages/desktop-client/src/icons/v2/NotesPaperText.tsx index d16e3c32c45..4d26a88df69 100644 --- a/packages/desktop-client/src/icons/v2/NotesPaperText.tsx +++ b/packages/desktop-client/src/icons/v2/NotesPaperText.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgNotesPaperText = (props: SVGProps) => ( +export const SvgNotesPaperText = (props: SVGProps) => ( ) => ( /> ); -export default SvgNotesPaperText; diff --git a/packages/desktop-client/src/icons/v2/Pencil1.tsx b/packages/desktop-client/src/icons/v2/Pencil1.tsx index 0e4f9ff6b5a..2d080515dc5 100644 --- a/packages/desktop-client/src/icons/v2/Pencil1.tsx +++ b/packages/desktop-client/src/icons/v2/Pencil1.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgPencil1 = (props: SVGProps) => ( +export const SvgPencil1 = (props: SVGProps) => ( ) => ( /> ); -export default SvgPencil1; diff --git a/packages/desktop-client/src/icons/v2/PencilWriteAlternate.tsx b/packages/desktop-client/src/icons/v2/PencilWriteAlternate.tsx index 398c66e352e..a7c21a98a4e 100644 --- a/packages/desktop-client/src/icons/v2/PencilWriteAlternate.tsx +++ b/packages/desktop-client/src/icons/v2/PencilWriteAlternate.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgPencilWriteAlternate = (props: SVGProps) => ( +export const SvgPencilWriteAlternate = (props: SVGProps) => ( ) => ( /> ); -export default SvgPencilWriteAlternate; diff --git a/packages/desktop-client/src/icons/v2/RefreshArrow.tsx b/packages/desktop-client/src/icons/v2/RefreshArrow.tsx index 6bbbb5a41f7..e95fb8ad349 100644 --- a/packages/desktop-client/src/icons/v2/RefreshArrow.tsx +++ b/packages/desktop-client/src/icons/v2/RefreshArrow.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgRefreshArrow = (props: SVGProps) => ( +export const SvgRefreshArrow = (props: SVGProps) => ( ) => ( /> ); -export default SvgRefreshArrow; diff --git a/packages/desktop-client/src/icons/v2/Remove.tsx b/packages/desktop-client/src/icons/v2/Remove.tsx index 0919a3fb1d0..21e4d841905 100644 --- a/packages/desktop-client/src/icons/v2/Remove.tsx +++ b/packages/desktop-client/src/icons/v2/Remove.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgRemove = (props: SVGProps) => ( +export const SvgRemove = (props: SVGProps) => ( ) => ( /> ); -export default SvgRemove; diff --git a/packages/desktop-client/src/icons/v2/RemoveAlternate.tsx b/packages/desktop-client/src/icons/v2/RemoveAlternate.tsx index c1d51ce1f00..562cfd85ca9 100644 --- a/packages/desktop-client/src/icons/v2/RemoveAlternate.tsx +++ b/packages/desktop-client/src/icons/v2/RemoveAlternate.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgRemoveAlternate = (props: SVGProps) => ( +export const SvgRemoveAlternate = (props: SVGProps) => ( ) => ( /> ); -export default SvgRemoveAlternate; diff --git a/packages/desktop-client/src/icons/v2/Search1.tsx b/packages/desktop-client/src/icons/v2/Search1.tsx index 1798250003a..e46245cc233 100644 --- a/packages/desktop-client/src/icons/v2/Search1.tsx +++ b/packages/desktop-client/src/icons/v2/Search1.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgSearch1 = (props: SVGProps) => ( +export const SvgSearch1 = (props: SVGProps) => ( ) => ( /> ); -export default SvgSearch1; diff --git a/packages/desktop-client/src/icons/v2/SearchAlternate.tsx b/packages/desktop-client/src/icons/v2/SearchAlternate.tsx index d8434c107f8..78d87b643a0 100644 --- a/packages/desktop-client/src/icons/v2/SearchAlternate.tsx +++ b/packages/desktop-client/src/icons/v2/SearchAlternate.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgSearchAlternate = (props: SVGProps) => ( +export const SvgSearchAlternate = (props: SVGProps) => ( ) => ( /> ); -export default SvgSearchAlternate; diff --git a/packages/desktop-client/src/icons/v2/SettingsSliderAlternate.tsx b/packages/desktop-client/src/icons/v2/SettingsSliderAlternate.tsx index a2656ab256f..8eff9c55d10 100644 --- a/packages/desktop-client/src/icons/v2/SettingsSliderAlternate.tsx +++ b/packages/desktop-client/src/icons/v2/SettingsSliderAlternate.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgSettingsSliderAlternate = (props: SVGProps) => ( +export const SvgSettingsSliderAlternate = (props: SVGProps) => ( ) => ( /> ); -export default SvgSettingsSliderAlternate; diff --git a/packages/desktop-client/src/icons/v2/Subtract.tsx b/packages/desktop-client/src/icons/v2/Subtract.tsx index 1be91fbd61a..28e0b81ebe6 100644 --- a/packages/desktop-client/src/icons/v2/Subtract.tsx +++ b/packages/desktop-client/src/icons/v2/Subtract.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgSubtract = (props: SVGProps) => ( +export const SvgSubtract = (props: SVGProps) => ( ) => ( /> ); -export default SvgSubtract; diff --git a/packages/desktop-client/src/icons/v2/Sun.tsx b/packages/desktop-client/src/icons/v2/Sun.tsx index c248837506f..3330412057d 100644 --- a/packages/desktop-client/src/icons/v2/Sun.tsx +++ b/packages/desktop-client/src/icons/v2/Sun.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgSun = (props: SVGProps) => ( +export const SvgSun = (props: SVGProps) => ( ) => ( /> ); -export default SvgSun; diff --git a/packages/desktop-client/src/icons/v2/System.tsx b/packages/desktop-client/src/icons/v2/System.tsx index 65c038837c8..771520f8ba8 100644 --- a/packages/desktop-client/src/icons/v2/System.tsx +++ b/packages/desktop-client/src/icons/v2/System.tsx @@ -1,11 +1,9 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgSystem = (props: SVGProps) => ( +export const SvgSystem = (props: SVGProps) => ( ) => ( }} > ); -export default SvgSystem; diff --git a/packages/desktop-client/src/icons/v2/UncheckAll.tsx b/packages/desktop-client/src/icons/v2/UncheckAll.tsx index 13698bbea4d..02bd60adcae 100644 --- a/packages/desktop-client/src/icons/v2/UncheckAll.tsx +++ b/packages/desktop-client/src/icons/v2/UncheckAll.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgUncheckAll = (props: SVGProps) => ( +export const SvgUncheckAll = (props: SVGProps) => ( ) => ( }} > ); -export default SvgUncheckAll; diff --git a/packages/desktop-client/src/icons/v2/UploadThickBottom.tsx b/packages/desktop-client/src/icons/v2/UploadThickBottom.tsx index 26f45dcda44..4bfedf10b4c 100644 --- a/packages/desktop-client/src/icons/v2/UploadThickBottom.tsx +++ b/packages/desktop-client/src/icons/v2/UploadThickBottom.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgUploadThickBottom = (props: SVGProps) => ( +export const SvgUploadThickBottom = (props: SVGProps) => ( ) => ( /> ); -export default SvgUploadThickBottom; diff --git a/packages/desktop-client/src/icons/v2/ValidationCheck.tsx b/packages/desktop-client/src/icons/v2/ValidationCheck.tsx index a4e004c3179..e20ebe9829d 100644 --- a/packages/desktop-client/src/icons/v2/ValidationCheck.tsx +++ b/packages/desktop-client/src/icons/v2/ValidationCheck.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgValidationCheck = (props: SVGProps) => ( +export const SvgValidationCheck = (props: SVGProps) => ( ) => ( /> ); -export default SvgValidationCheck; diff --git a/packages/desktop-client/src/icons/v2/ViewHide.tsx b/packages/desktop-client/src/icons/v2/ViewHide.tsx index c37a91e62ce..01f688f1da1 100644 --- a/packages/desktop-client/src/icons/v2/ViewHide.tsx +++ b/packages/desktop-client/src/icons/v2/ViewHide.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgViewHide = (props: SVGProps) => ( +export const SvgViewHide = (props: SVGProps) => ( ) => ( /> ); -export default SvgViewHide; diff --git a/packages/desktop-client/src/icons/v2/ViewShow.tsx b/packages/desktop-client/src/icons/v2/ViewShow.tsx index 13b76d9a63d..2772b5c6c74 100644 --- a/packages/desktop-client/src/icons/v2/ViewShow.tsx +++ b/packages/desktop-client/src/icons/v2/ViewShow.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import type { SVGProps } from 'react'; -const SvgViewShow = (props: SVGProps) => ( +export const SvgViewShow = (props: SVGProps) => ( ) => ( /> ); -export default SvgViewShow; diff --git a/packages/desktop-client/src/icons/v2/index.ts b/packages/desktop-client/src/icons/v2/index.ts index d4f3d592951..82e3d553087 100644 --- a/packages/desktop-client/src/icons/v2/index.ts +++ b/packages/desktop-client/src/icons/v2/index.ts @@ -1,46 +1,46 @@ -export { default as AlertTriangle } from './AlertTriangle'; -export { default as ArrowButtonDown1 } from './ArrowButtonDown1'; -export { default as ArrowButtonLeft1 } from './ArrowButtonLeft1'; -export { default as ArrowButtonRight1 } from './ArrowButtonRight1'; -export { default as ArrowButtonUp1 } from './ArrowButtonUp1'; -export { default as ArrowsExpand3 } from './ArrowsExpand3'; -export { default as ArrowsShrink3 } from './ArrowsShrink3'; -export { default as ArrowsSynchronize } from './ArrowsSynchronize'; -export { default as Calendar3 } from './Calendar3'; -export { default as Calendar } from './Calendar'; -export { default as CheckAll } from './CheckAll'; -export { default as CheckCircle1 } from './CheckCircle1'; -export { default as CheckCircleHollow } from './CheckCircleHollow'; -export { default as Check } from './Check'; -export { default as CloudUnknown } from './CloudUnknown'; -export { default as CloudUpload } from './CloudUpload'; -export { default as CustomNotesPaper } from './CustomNotesPaper'; -export { default as DownloadThickBottom } from './DownloadThickBottom'; -export { default as EditSkull1 } from './EditSkull1'; -export { default as FavoriteStar } from './FavoriteStar'; -export { default as Filter2 } from './Filter2'; -export { default as Hyperlink2 } from './Hyperlink2'; -export { default as Hyperlink3 } from './Hyperlink3'; -export { default as InformationCircle } from './InformationCircle'; -export { default as Key } from './Key'; -export { default as LockClosed } from './LockClosed'; -export { default as MoonStars } from './MoonStars'; -export { default as NavigationMenu } from './NavigationMenu'; -export { default as NotesPaperText } from './NotesPaperText'; -export { default as NotesPaper } from './NotesPaper'; -export { default as Pencil1 } from './Pencil1'; -export { default as PencilWriteAlternate } from './PencilWriteAlternate'; -export { default as RefreshArrow } from './RefreshArrow'; -export { default as RemoveAlternate } from './RemoveAlternate'; -export { default as Remove } from './Remove'; -export { default as Search1 } from './Search1'; -export { default as SearchAlternate } from './SearchAlternate'; -export { default as SettingsSliderAlternate } from './SettingsSliderAlternate'; -export { default as Subtract } from './Subtract'; -export { default as Sun } from './Sun'; -export { default as System } from './System'; -export { default as UncheckAll } from './UncheckAll'; -export { default as UploadThickBottom } from './UploadThickBottom'; -export { default as ValidationCheck } from './ValidationCheck'; -export { default as ViewHide } from './ViewHide'; -export { default as ViewShow } from './ViewShow'; +export { SvgSystem } from './System'; +export { SvgAlertTriangle } from './AlertTriangle'; +export { SvgArrowButtonDown1 } from './ArrowButtonDown1'; +export { SvgArrowButtonLeft1 } from './ArrowButtonLeft1'; +export { SvgArrowButtonRight1 } from './ArrowButtonRight1'; +export { SvgArrowButtonUp1 } from './ArrowButtonUp1'; +export { SvgArrowsExpand3 } from './ArrowsExpand3'; +export { SvgArrowsShrink3 } from './ArrowsShrink3'; +export { SvgArrowsSynchronize } from './ArrowsSynchronize'; +export { SvgCalendar3 } from './Calendar3'; +export { SvgCalendar } from './Calendar'; +export { SvgCheckAll } from './CheckAll'; +export { SvgCheckCircle1 } from './CheckCircle1'; +export { SvgCheckCircleHollow } from './CheckCircleHollow'; +export { SvgCheck } from './Check'; +export { SvgCloudUnknown } from './CloudUnknown'; +export { SvgCloudUpload } from './CloudUpload'; +export { SvgCustomNotesPaper } from './CustomNotesPaper'; +export { SvgDownloadThickBottom } from './DownloadThickBottom'; +export { SvgEditSkull1 } from './EditSkull1'; +export { SvgFavoriteStar } from './FavoriteStar'; +export { SvgFilter2 } from './Filter2'; +export { SvgHyperlink2 } from './Hyperlink2'; +export { SvgHyperlink3 } from './Hyperlink3'; +export { SvgInformationCircle } from './InformationCircle'; +export { SvgKey } from './Key'; +export { SvgLockClosed } from './LockClosed'; +export { SvgMoonStars } from './MoonStars'; +export { SvgNavigationMenu } from './NavigationMenu'; +export { SvgNotesPaperText } from './NotesPaperText'; +export { SvgNotesPaper } from './NotesPaper'; +export { SvgPencil1 } from './Pencil1'; +export { SvgPencilWriteAlternate } from './PencilWriteAlternate'; +export { SvgRefreshArrow } from './RefreshArrow'; +export { SvgRemoveAlternate } from './RemoveAlternate'; +export { SvgRemove } from './Remove'; +export { SvgSearch1 } from './Search1'; +export { SvgSearchAlternate } from './SearchAlternate'; +export { SvgSettingsSliderAlternate } from './SettingsSliderAlternate'; +export { SvgSubtract } from './Subtract'; +export { SvgSun } from './Sun'; +export { SvgUncheckAll } from './UncheckAll'; +export { SvgUploadThickBottom } from './UploadThickBottom'; +export { SvgValidationCheck } from './ValidationCheck'; +export { SvgViewHide } from './ViewHide'; +export { SvgViewShow } from './ViewShow'; diff --git a/packages/desktop-client/src/index.tsx b/packages/desktop-client/src/index.tsx index 7a01a023e7c..d8b3fda9b5e 100644 --- a/packages/desktop-client/src/index.tsx +++ b/packages/desktop-client/src/index.tsx @@ -21,12 +21,13 @@ import thunk from 'redux-thunk'; import * as actions from 'loot-core/src/client/actions'; import * as constants from 'loot-core/src/client/constants'; -import q, { runQuery } from 'loot-core/src/client/query-helpers'; -import reducers from 'loot-core/src/client/reducers'; +import { runQuery } from 'loot-core/src/client/query-helpers'; +import { reducers } from 'loot-core/src/client/reducers'; import { initialState as initialAppState } from 'loot-core/src/client/reducers/app'; import { send } from 'loot-core/src/platform/client/fetch'; +import { q } from 'loot-core/src/shared/query'; -import App from './components/App'; +import { App } from './components/App'; import { ServerProvider } from './components/ServerContext'; import { handleGlobalEvents } from './global-events'; import { type BoundActions } from './hooks/useActions'; diff --git a/packages/desktop-client/src/polyfills.ts b/packages/desktop-client/src/polyfills.ts index e85c5815cce..fd1d3b84f56 100644 --- a/packages/desktop-client/src/polyfills.ts +++ b/packages/desktop-client/src/polyfills.ts @@ -1,4 +1,4 @@ -export default async function installPolyfills(): Promise { +export async function installPolyfills(): Promise { if ('ResizeObserver' in window === false) { const module = await import( /* webpackChunkName: 'resize-observer-polyfill' */ '@juggle/resize-observer' diff --git a/packages/desktop-client/src/setupTests.js b/packages/desktop-client/src/setupTests.jsx similarity index 68% rename from packages/desktop-client/src/setupTests.js rename to packages/desktop-client/src/setupTests.jsx index 59b095c1e01..e04418579f3 100644 --- a/packages/desktop-client/src/setupTests.js +++ b/packages/desktop-client/src/setupTests.jsx @@ -1,17 +1,21 @@ import { resetStore } from 'loot-core/src/mocks/redux'; -import installPolyfills from './polyfills'; +import { installPolyfills } from './polyfills'; installPolyfills(); global.IS_TESTING = true; global.Actual = {}; -jest.mock( +vi.mock( 'react-virtualized-auto-sizer', - () => - ({ children }) => - children({ height: 1000, width: 600 }), + () => ({ + default: (props) => { + return ( + props.children({height: 1000, width: 600}) + ); + } + }) ); global.Date.now = () => 123456789; diff --git a/packages/desktop-client/src/style/styles.ts b/packages/desktop-client/src/style/styles.ts index 7cd0bb73f2c..b21ff1a4665 100644 --- a/packages/desktop-client/src/style/styles.ts +++ b/packages/desktop-client/src/style/styles.ts @@ -2,7 +2,7 @@ import { keyframes } from 'glamor'; import * as Platform from 'loot-core/src/client/platform'; -import tokens from '../tokens'; +import { tokens } from '../tokens'; import { theme } from './theme'; import { type CSSProperties } from './types'; diff --git a/packages/desktop-client/src/tokens.ts b/packages/desktop-client/src/tokens.ts index 280dc7f9eb7..e5eabe1ad1d 100644 --- a/packages/desktop-client/src/tokens.ts +++ b/packages/desktop-client/src/tokens.ts @@ -24,11 +24,9 @@ type BreakpointsPx = { // breakpoint_medium: '740px', // breakpoint_wide: '1100px', // } -const breakpointsInPx: BreakpointsPx = Object.entries( +export const tokens: BreakpointsPx = Object.entries( breakpoints, ).reduce((acc, [key, val]) => { acc[`breakpoint_${key}`] = `${val}px`; return acc; }, {} as BreakpointsPx); - -export default breakpointsInPx; diff --git a/packages/desktop-client/src/util/router-tools.ts b/packages/desktop-client/src/util/router-tools.ts index f35a33560fc..1bba51ee678 100644 --- a/packages/desktop-client/src/util/router-tools.ts +++ b/packages/desktop-client/src/util/router-tools.ts @@ -1,6 +1,6 @@ import { useLayoutEffect } from 'react'; -import useNavigate from '../hooks/useNavigate'; +import { useNavigate } from '../hooks/useNavigate'; export function ExposeNavigate() { const navigate = useNavigate(); diff --git a/packages/desktop-client/vite.config.mts b/packages/desktop-client/vite.config.mts new file mode 100644 index 00000000000..fd42f79250f --- /dev/null +++ b/packages/desktop-client/vite.config.mts @@ -0,0 +1,165 @@ +import * as path from 'path'; + +import inject from '@rollup/plugin-inject'; +import basicSsl from '@vitejs/plugin-basic-ssl'; +import react from '@vitejs/plugin-react-swc'; +import { visualizer } from 'rollup-plugin-visualizer'; +/// +import { defineConfig, loadEnv, Plugin } from 'vite'; +import viteTsconfigPaths from 'vite-tsconfig-paths'; + +const addWatchers = (): Plugin => ({ + name: 'add-watchers', + configureServer(server) { + server.watcher + .add([ + path.resolve('../loot-core/lib-dist/*.js'), + path.resolve('../loot-core/lib-dist/browser/*.js'), + ]) + .on('all', function () { + for (const wsc of server.ws.clients) { + wsc.send(JSON.stringify({ type: 'static-changed' })); + } + }); + }, +}); + +// Inject build shims using the inject plugin +const injectShims = (): Plugin[] => { + const buildShims = path.resolve('./src/build-shims.js'); + const commonInject = { + exclude: ['src/setupTests.jsx'], + global: [buildShims, 'global'], + }; + + return [ + { + name: 'inject-build-process', + config: () => ({ + // rename process.env in build mode so it doesn't get set to an empty object up by the vite:define plugin + // this isn't needed in serve mode, because vite:define doesn't empty it in serve mode. And defines also happen last anyways in serve mode. + define: { + 'process.env': `_process.env`, + }, + }), + apply: 'build', + }, + { + ...inject({ + ...commonInject, + process: [buildShims, 'process'], + }), + enforce: 'post', + apply: 'serve', + }, + { + ...inject({ + ...commonInject, + _process: [buildShims, 'process'], + }), + enforce: 'post', + apply: 'build', + }, + ]; +}; + +// https://vitejs.dev/config/ +// eslint-disable-next-line import/no-default-export +export default defineConfig(async ({ mode }) => { + const env = loadEnv(mode, process.cwd(), ''); + const devHeaders = { + 'Cross-Origin-Opener-Policy': 'same-origin', + 'Cross-Origin-Embedder-Policy': 'require-corp', + }; + + // Forward Netlify env variables + if (process.env.REVIEW_ID) { + process.env.REACT_APP_REVIEW_ID = process.env.REVIEW_ID; + } + + let resolveExtensions = [ + '.web.js', + '.web.jsx', + '.web.ts', + '.web.tsx', + '.mjs', + '.js', + '.mts', + '.ts', + '.jsx', + '.tsx', + '.json', + ]; + + if (env.IS_GENERIC_BROWSER) { + resolveExtensions = [ + '.browser.js', + '.browser.jsx', + '.browser.ts', + '.browser.tsx', + ...resolveExtensions, + ]; + } + + return { + base: '/', + envPrefix: 'REACT_APP_', + build: { + target: 'es2022', + sourcemap: true, + outDir: 'build', + assetsDir: 'static', + manifest: true, + assetsInlineLimit: 0, + chunkSizeWarningLimit: 1500, + rollupOptions: { + output: { + assetFileNames: assetInfo => { + const info = assetInfo.name.split('.'); + let extType = info[info.length - 1]; + if (/png|jpe?g|svg|gif|tiff|bmp|ico/i.test(extType)) { + extType = 'img'; + } else if (/woff|woff2/.test(extType)) { + extType = 'media'; + } + return `static/${extType}/[name]-[hash][extname]`; + }, + chunkFileNames: 'static/js/[name]-[hash].js', + entryFileNames: 'static/js/[name]-[hash].js', + }, + }, + }, + server: { + headers: mode === 'development' ? devHeaders : undefined, + port: +env.PORT || 5173, + open: env.BROWSER + ? ['chrome', 'firefox', 'edge', 'browser', 'browserPrivate'].includes( + env.BROWSER, + ) + : true, + watch: { + disableGlobbing: false, + }, + }, + resolve: { + extensions: resolveExtensions, + }, + plugins: [ + injectShims(), + addWatchers(), + react({ + plugins: [['@swc/plugin-remove-console', {}]], + devTarget: 'es2022', + }), + viteTsconfigPaths({ root: '../..' }), + visualizer({ template: 'raw-data' }), + !!env.HTTPS && basicSsl(), + ], + test: { + include: ['src/**/*.{test,spec}.?(c|m)[jt]s?(x)'], + environment: 'jsdom', + globals: true, + setupFiles: './src/setupTests.jsx', + }, + }; +}); diff --git a/packages/desktop-electron/about/index.js b/packages/desktop-electron/about/index.js index 0286f1c41fc..06678cbbf30 100644 --- a/packages/desktop-electron/about/index.js +++ b/packages/desktop-electron/about/index.js @@ -20,7 +20,6 @@ root.innerHTML = `
-
© 2020 Shift Reset LLC
`; const container = root.querySelector('#container'); diff --git a/packages/desktop-electron/afterSignHook.js b/packages/desktop-electron/afterSignHook.js deleted file mode 100644 index 492f58d848f..00000000000 --- a/packages/desktop-electron/afterSignHook.js +++ /dev/null @@ -1,44 +0,0 @@ -const fs = require('fs'); -const path = require('path'); - -const electron_notarize = require('electron-notarize'); - -// This is expected to be run by `electron-builder` after it signs the build. -// It's disabled for now as we currently don't sign builds after Actual being open sourced. -// To start signing builds again: -// - add the property `"afterSign": "./afterSignHook.js"` to the `build` object in package.json. -// - add the property `"certificateSubjectName": "Shift Reset LLC"` (or similar) to the `win` object in package.json. - -module.exports = async function (params) { - // Only notarize the app on Mac OS only. - if (process.platform !== 'darwin' || process.env['SKIP_NOTARIZATION']) { - return; - } - - // Same appId in electron-builder. - const appId = 'com.shiftreset.actual'; - - const appPath = path.join( - params.appOutDir, - `${params.packager.appInfo.productFilename}.app`, - ); - if (!fs.existsSync(appPath)) { - throw new Error(`Cannot find application at: ${appPath}`); - } - - console.log(`Notarizing ${appId} found at ${appPath}`); - - try { - await electron_notarize.notarize({ - appBundleId: appId, - appPath, - appleId: 'longster@gmail.com', - appleIdPassword: '@keychain:AC_PASSWORD', - ascProvider: 'JamesLong106746326', - }); - } catch (error) { - console.error(error); - } - - console.log(`Done notarizing ${appId}`); -}; diff --git a/packages/desktop-electron/index.js b/packages/desktop-electron/index.js index 0a07bfb34b2..d8e03335217 100644 --- a/packages/desktop-electron/index.js +++ b/packages/desktop-electron/index.js @@ -5,11 +5,6 @@ const fs = require('fs'); require('module').globalPaths.push(__dirname + '/..'); -// Allow unsecure in dev -if (isDev) { - process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0'; -} - const { app, ipcMain, @@ -18,6 +13,7 @@ const { dialog, shell, protocol, + utilityProcess, } = require('electron'); const promiseRetry = require('promise-retry'); @@ -30,15 +26,12 @@ protocol.registerSchemesAsPrivileged([ global.fetch = require('node-fetch'); const about = require('./about'); -const { getRandomPort } = require('get-port-please'); const getMenu = require('./menu'); const updater = require('./updater'); require('./security'); -const { fork } = require('child_process'); const path = require('path'); -const http = require('http'); require('./setRequireHook'); @@ -57,7 +50,6 @@ const WindowState = require('./window-state.js'); // be closed automatically when the JavaScript object is garbage collected. let clientWin; let serverProcess; -let serverSocket; updater.onEvent((type, data) => { // Notify both the app and the about window @@ -74,10 +66,10 @@ if (isDev) { process.traceProcessWarnings = true; } -function createBackgroundProcess(socketName) { - serverProcess = fork( +function createBackgroundProcess() { + serverProcess = utilityProcess.fork( __dirname + '/server.js', - ['--subprocess', app.getVersion(), socketName], + ['--subprocess', app.getVersion()], isDev ? { execArgv: ['--inspect'] } : undefined, ); @@ -93,52 +85,20 @@ function createBackgroundProcess(socketName) { updater.stop(); } break; + case 'reply': + case 'error': + case 'push': + if (clientWin) { + clientWin.webContents.send('message', msg); + } + break; default: console.log('Unknown server message: ' + msg.type); } }); - - return serverProcess; -} - -const isPortFree = port => - new Promise(resolve => { - const server = http - .createServer() - .listen(port, () => { - server.close(); - resolve(true); - }) - .on('error', () => { - resolve(false); - }); - }); - -async function createSocketConnection() { - if (!serverSocket) serverSocket = await getRandomPort(); - - // Spawn the child process if it is not already running - // (sometimes long child processes die, so we need to set them - // up again) - const isFree = await isPortFree(serverSocket); - if (isFree) { - await createBackgroundProcess(serverSocket); - } - - if (!clientWin) { - return; - } - - // Send a heartbeat to the client whenever we attempt to create a new - // sockets connection - clientWin.webContents.executeJavaScript( - `window.__actionsForMenu && window.__actionsForMenu.reconnect(${serverSocket})`, - ); } async function createWindow() { - await createSocketConnection(); - const windowState = await WindowState.get(); // Create the browser window. @@ -194,10 +154,6 @@ async function createWindow() { } }); - win.webContents.on('did-finish-load', () => { - win.webContents.send('set-socket', { name: serverSocket }); - }); - // hit when middle-clicking buttons or with a target set to _blank // always deny, optionally redirect to browser win.webContents.setWindowOpenHandler(({ url }) => { @@ -259,7 +215,7 @@ function updateMenu(isBudgetOpen) { } } -app.setAppUserModelId('com.shiftreset.actual'); +app.setAppUserModelId('com.actualbudget.actual'); app.on('ready', async () => { // Install an `app://` protocol that always returns the base HTML @@ -304,6 +260,8 @@ app.on('ready', async () => { require('electron').powerMonitor.on('suspend', () => { console.log('Suspending', new Date()); }); + + createBackgroundProcess(); }); app.on('window-all-closed', () => { @@ -326,14 +284,6 @@ app.on('activate', () => { } }); -app.on('did-become-active', () => { - // Reconnect whenever the window becomes active; - // We don't know what might have happened in-between, so it's better - // to be safe than sorry; the client can then decide if it wants to - // reconnect or not. - createSocketConnection(); -}); - ipcMain.on('get-bootstrap-data', event => { event.returnValue = { version: app.getVersion(), @@ -377,6 +327,14 @@ ipcMain.on('show-about', () => { about.openAboutWindow(); }); +ipcMain.on('message', (_event, msg) => { + if (!serverProcess) { + return; + } + + serverProcess.postMessage(msg.args); +}); + ipcMain.on('screenshot', () => { if (isDev) { const width = 1100; diff --git a/packages/desktop-electron/package.json b/packages/desktop-electron/package.json index 641bd974df3..4f80a76bbc1 100644 --- a/packages/desktop-electron/package.json +++ b/packages/desktop-electron/package.json @@ -1,8 +1,9 @@ { "name": "desktop-electron", + "author": "Actual", "productName": "Actual", "description": "A simple and powerful personal finance system", - "version": "23.12.0", + "version": "24.1.0", "scripts": { "clean": "rm -rf dist", "update-client": "bin/update-client", @@ -11,7 +12,7 @@ }, "main": "index.js", "build": { - "appId": "com.shiftreset.actual", + "appId": "com.actualbudget.actual", "files": [ "!node_modules/loot-core/src{,/**/*}", "!node_modules/loot-core/lib-dist/{browser,bundle.mobile*}", @@ -23,15 +24,18 @@ ], "publish": { "provider": "github", - "repo": "releases", + "repo": "actual", "owner": "actualbudget", - "vPrefixedTagName": false + "vPrefixedTagName": true }, "mac": { "category": "public.app-category.finance", "icon": "icons/icon.icns", "hardenedRuntime": true, - "gatekeeperAssess": false + "gatekeeperAssess": false, + "notarize": { + "teamId": "79ANZ983YF" + } }, "linux": { "target": "AppImage", @@ -45,18 +49,16 @@ "dependencies": { "electron-is-dev": "2.0.0", "electron-log": "4.4.8", - "electron-updater": "6.1.4", - "get-port-please": "3.0.1", + "electron-updater": "6.1.7", "loot-core": "*", "node-fetch": "^2.6.9", - "promise-retry": "^2.0.1", - "ws": "8.13.0" + "promise-retry": "^2.0.1" }, "devDependencies": { - "@electron/notarize": "2.1.0", - "@electron/rebuild": "3.3.0", + "@electron/notarize": "2.2.0", + "@electron/rebuild": "3.4.1", "cross-env": "^7.0.3", - "electron": "26.2.0", - "electron-builder": "24.6.4" + "electron": "27.2.0", + "electron-builder": "24.10.0" } } diff --git a/packages/desktop-electron/preload.js b/packages/desktop-electron/preload.js index 8aac6545db5..2625c58a85b 100644 --- a/packages/desktop-electron/preload.js +++ b/packages/desktop-electron/preload.js @@ -3,15 +3,6 @@ const { ipcRenderer, contextBridge } = require('electron'); const { version: VERSION, isDev: IS_DEV } = ipcRenderer.sendSync('get-bootstrap-data'); -let resolveSocketPromise; -const socketPromise = new Promise(resolve => { - resolveSocketPromise = resolve; -}); - -ipcRenderer.on('set-socket', (event, { name }) => { - resolveSocketPromise(name); -}); - contextBridge.exposeInMainWorld('Actual', { IS_DEV, ACTUAL_VERSION: VERSION, @@ -19,6 +10,17 @@ contextBridge.exposeInMainWorld('Actual', { require('console').log(...args); }, + ipcConnect: func => { + func({ + on(name, handler) { + return ipcRenderer.on(name, (_event, value) => handler(value)); + }, + emit(name, data) { + return ipcRenderer.send('message', { name, args: data }); + }, + }); + }, + relaunch: () => { ipcRenderer.invoke('relaunch'); }, @@ -52,7 +54,7 @@ contextBridge.exposeInMainWorld('Actual', { }, getServerSocket: () => { - return socketPromise; + return null; }, setTheme: theme => { diff --git a/packages/desktop-electron/server.js b/packages/desktop-electron/server.js index 109fb02336d..82cbacf80a6 100644 --- a/packages/desktop-electron/server.js +++ b/packages/desktop-electron/server.js @@ -9,22 +9,7 @@ function getBackend() { return require('loot-core/lib-dist/bundle.desktop.js'); } -if (process.argv[2] === '--subprocess') { - const isDev = false; - // let version = process.argv[3]; - const socketName = process.argv[4]; +const isDev = false; - // Start the app - getBackend().initApp(isDev, socketName); -} else if (process.argv[2] === '--standalone') { - require('source-map-support').install(); - getBackend().initApp(true, 'actual-standalone'); -} else { - const { ipcRenderer } = require('electron'); - const isDev = true; - - ipcRenderer.on('set-socket', (event, { name }) => { - // Start the app - getBackend().initApp(isDev, name); - }); -} +// Start the app +getBackend().initApp(isDev); diff --git a/packages/loot-core/package.json b/packages/loot-core/package.json index d6c155b264f..36d1d680e3f 100644 --- a/packages/loot-core/package.json +++ b/packages/loot-core/package.json @@ -24,7 +24,7 @@ "@types/adm-zip": "^0.5.0", "absurd-sql": "0.0.54", "assert": "^2.0.0", - "better-sqlite3": "^9.1.1", + "better-sqlite3": "^9.2.2", "browserify-zlib": "^0.2.0", "core-js": "^3.8.3", "csv-parse": "^4.10.1", @@ -37,8 +37,7 @@ "path-browserify": "^1.0.1", "process": "^0.11.10", "reselect": "^4.1.8", - "stream-browserify": "^3.0.0", - "ws": "8.13.0" + "stream-browserify": "^3.0.0" }, "devDependencies": { "@actual-app/api": "*", @@ -80,7 +79,6 @@ "webpack": "^5.88.2", "webpack-bundle-analyzer": "^4.9.1", "webpack-cli": "^5.1.4", - "ws": "^4.1.0", "yargs": "^9.0.1" } } diff --git a/packages/loot-core/src/client/actions/app.ts b/packages/loot-core/src/client/actions/app.ts index 9383b120491..dac6c7bb5ca 100644 --- a/packages/loot-core/src/client/actions/app.ts +++ b/packages/loot-core/src/client/actions/app.ts @@ -1,4 +1,4 @@ -import { init as initConnection, send } from '../../platform/client/fetch'; +import { send } from '../../platform/client/fetch'; import * as constants from '../constants'; import type { AppState, @@ -15,12 +15,6 @@ export function setAppState(state: Partial): SetAppStateAction { }; } -export function reconnect(connectionName: string) { - return () => { - initConnection(connectionName); - }; -} - export function updateApp() { return async (dispatch: Dispatch) => { global.Actual.applyAppUpdate(); diff --git a/packages/loot-core/src/client/data-hooks/accounts.tsx b/packages/loot-core/src/client/data-hooks/accounts.tsx index 7bcde4b7bfc..0d5de6c534f 100644 --- a/packages/loot-core/src/client/data-hooks/accounts.tsx +++ b/packages/loot-core/src/client/data-hooks/accounts.tsx @@ -1,7 +1,7 @@ import React, { createContext, useContext } from 'react'; +import { q } from '../../shared/query'; import { type AccountEntity } from '../../types/models'; -import q from '../query-helpers'; import { useLiveQuery } from '../query-hooks'; import { getAccountsById } from '../reducers/queries'; diff --git a/packages/loot-core/src/client/data-hooks/filters.ts b/packages/loot-core/src/client/data-hooks/filters.ts index f9b4a1188a3..6854928d97a 100644 --- a/packages/loot-core/src/client/data-hooks/filters.ts +++ b/packages/loot-core/src/client/data-hooks/filters.ts @@ -1,7 +1,7 @@ import { useMemo } from 'react'; +import { q } from '../../shared/query'; import { type TransactionFilterEntity } from '../../types/models'; -import q from '../query-helpers'; import { useLiveQuery } from '../query-hooks'; function toJS(rows) { diff --git a/packages/loot-core/src/client/data-hooks/payees.tsx b/packages/loot-core/src/client/data-hooks/payees.tsx index 8197d50e7af..feb3cbb532c 100644 --- a/packages/loot-core/src/client/data-hooks/payees.tsx +++ b/packages/loot-core/src/client/data-hooks/payees.tsx @@ -1,7 +1,7 @@ import React, { createContext, useContext } from 'react'; +import { q } from '../../shared/query'; import { type PayeeEntity } from '../../types/models'; -import q from '../query-helpers'; import { useLiveQuery } from '../query-hooks'; import { getPayeesById } from '../reducers/queries'; diff --git a/packages/loot-core/src/client/data-hooks/schedules.tsx b/packages/loot-core/src/client/data-hooks/schedules.tsx index 0a46c38e96f..e2db2d1fbd8 100644 --- a/packages/loot-core/src/client/data-hooks/schedules.tsx +++ b/packages/loot-core/src/client/data-hooks/schedules.tsx @@ -1,9 +1,9 @@ import React, { createContext, useEffect, useState, useContext } from 'react'; -import { type Query } from '../../shared/query'; +import { q, type Query } from '../../shared/query'; import { getStatus, getHasTransactionsQuery } from '../../shared/schedules'; import { type ScheduleEntity } from '../../types/models'; -import q, { liveQuery } from '../query-helpers'; +import { liveQuery } from '../query-helpers'; export type ScheduleStatusType = ReturnType; export type ScheduleStatuses = Map; diff --git a/packages/loot-core/src/client/privacy.ts b/packages/loot-core/src/client/privacy.ts index 7490f2451c4..295bba5e510 100644 --- a/packages/loot-core/src/client/privacy.ts +++ b/packages/loot-core/src/client/privacy.ts @@ -1,5 +1,5 @@ import { useSelector } from 'react-redux'; -export default function usePrivacyMode() { +export function usePrivacyMode() { return useSelector(state => state.prefs?.local?.isPrivacyEnabled ?? false); } diff --git a/packages/loot-core/src/client/queries.ts b/packages/loot-core/src/client/queries.ts index 1ed3d615b25..6a37151a387 100644 --- a/packages/loot-core/src/client/queries.ts +++ b/packages/loot-core/src/client/queries.ts @@ -7,7 +7,7 @@ import { getShortYearRegex, getShortYearFormat, } from '../shared/months'; -import q from '../shared/query'; +import { q } from '../shared/query'; import { currencyToAmount, amountToInteger } from '../shared/util'; export function getAccountFilter(accountId, field = 'account') { @@ -103,6 +103,26 @@ export function accountBalance(acct) { }; } +export function accountBalanceCleared(acct) { + return { + name: `balanceCleared-${acct.id}`, + query: q('transactions') + .filter({ account: acct.id, cleared: true }) + .options({ splits: 'none' }) + .calculate({ $sum: '$amount' }), + }; +} + +export function accountBalanceUncleared(acct) { + return { + name: `balanceUncleared-${acct.id}`, + query: q('transactions') + .filter({ account: acct.id, cleared: false }) + .options({ splits: 'none' }) + .calculate({ $sum: '$amount' }), + }; +} + export function allAccountBalance() { return { query: q('transactions') diff --git a/packages/loot-core/src/client/query-helpers.test.ts b/packages/loot-core/src/client/query-helpers.test.ts index c42bbdbec51..c99b3426fbc 100644 --- a/packages/loot-core/src/client/query-helpers.test.ts +++ b/packages/loot-core/src/client/query-helpers.test.ts @@ -1,6 +1,6 @@ import { initServer, serverPush } from '../platform/client/fetch'; import { subDays } from '../shared/months'; -import q from '../shared/query'; +import { q } from '../shared/query'; import { tracer } from '../shared/test-helpers'; import { runQuery, liveQuery, pagedQuery } from './query-helpers'; diff --git a/packages/loot-core/src/client/query-helpers.ts b/packages/loot-core/src/client/query-helpers.ts index 72a7156e390..1883bfd534d 100644 --- a/packages/loot-core/src/client/query-helpers.ts +++ b/packages/loot-core/src/client/query-helpers.ts @@ -1,7 +1,6 @@ import { listen, send } from '../platform/client/fetch'; import { once } from '../shared/async'; -import q, { getPrimaryOrderBy } from '../shared/query'; -export default q; +import { getPrimaryOrderBy } from '../shared/query'; export async function runQuery(query) { return send('query', query.serialize()); diff --git a/packages/loot-core/src/client/reducers/account.ts b/packages/loot-core/src/client/reducers/account.ts index 5e713db7ef6..7c36ee5f73c 100644 --- a/packages/loot-core/src/client/reducers/account.ts +++ b/packages/loot-core/src/client/reducers/account.ts @@ -7,10 +7,7 @@ const initialState: AccountState = { accountsSyncing: null, }; -export default function update( - state = initialState, - action: Action, -): AccountState { +export function update(state = initialState, action: Action): AccountState { switch (action.type) { case constants.SET_ACCOUNTS_SYNCING: return { diff --git a/packages/loot-core/src/client/reducers/app.ts b/packages/loot-core/src/client/reducers/app.ts index b85e12022c3..19d4f73d6bd 100644 --- a/packages/loot-core/src/client/reducers/app.ts +++ b/packages/loot-core/src/client/reducers/app.ts @@ -11,7 +11,7 @@ export const initialState: AppState = { lastSplitState: { current: null }, }; -export default function update(state = initialState, action: Action): AppState { +export function update(state = initialState, action: Action): AppState { switch (action.type) { case constants.SET_APP_STATE: return { diff --git a/packages/loot-core/src/client/reducers/budgets.ts b/packages/loot-core/src/client/reducers/budgets.ts index d0868706cc0..8111f24e0c5 100644 --- a/packages/loot-core/src/client/reducers/budgets.ts +++ b/packages/loot-core/src/client/reducers/budgets.ts @@ -125,10 +125,7 @@ const initialState: BudgetsState = { allFiles: null, }; -export default function update( - state = initialState, - action: Action, -): BudgetsState { +export function update(state = initialState, action: Action): BudgetsState { switch (action.type) { case constants.SET_BUDGETS: return { diff --git a/packages/loot-core/src/client/reducers/index.ts b/packages/loot-core/src/client/reducers/index.ts index 77c5c76518f..98f44d189d1 100644 --- a/packages/loot-core/src/client/reducers/index.ts +++ b/packages/loot-core/src/client/reducers/index.ts @@ -1,13 +1,13 @@ -import account from './account'; -import app from './app'; -import budgets from './budgets'; -import modals from './modals'; -import notifications from './notifications'; -import prefs from './prefs'; -import queries from './queries'; -import user from './user'; +import { update as account } from './account'; +import { update as app } from './app'; +import { update as budgets } from './budgets'; +import { update as modals } from './modals'; +import { update as notifications } from './notifications'; +import { update as prefs } from './prefs'; +import { update as queries } from './queries'; +import { update as user } from './user'; -const reducers = { +export const reducers = { app, queries, account, @@ -17,4 +17,3 @@ const reducers = { budgets, user, }; -export default reducers; diff --git a/packages/loot-core/src/client/reducers/modals.ts b/packages/loot-core/src/client/reducers/modals.ts index 57d32784bce..a600b186708 100644 --- a/packages/loot-core/src/client/reducers/modals.ts +++ b/packages/loot-core/src/client/reducers/modals.ts @@ -7,7 +7,7 @@ const initialState: ModalsState = { isHidden: false, }; -function update(state = initialState, action: Action): ModalsState { +export function update(state = initialState, action: Action): ModalsState { switch (action.type) { case constants.PUSH_MODAL: return { @@ -49,5 +49,3 @@ function update(state = initialState, action: Action): ModalsState { return state; } - -export default update; diff --git a/packages/loot-core/src/client/reducers/notifications.ts b/packages/loot-core/src/client/reducers/notifications.ts index 7c722d14c36..942f47c0d04 100644 --- a/packages/loot-core/src/client/reducers/notifications.ts +++ b/packages/loot-core/src/client/reducers/notifications.ts @@ -6,7 +6,7 @@ const initialState = { notifications: [], }; -export default function update( +export function update( state = initialState, action: Action, ): NotificationsState { diff --git a/packages/loot-core/src/client/reducers/prefs.ts b/packages/loot-core/src/client/reducers/prefs.ts index 45f95090fe0..d87b4073e5b 100644 --- a/packages/loot-core/src/client/reducers/prefs.ts +++ b/packages/loot-core/src/client/reducers/prefs.ts @@ -8,10 +8,7 @@ const initialState: PrefsState = { global: null, }; -export default function update( - state = initialState, - action: Action, -): PrefsState { +export function update(state = initialState, action: Action): PrefsState { switch (action.type) { case constants.SET_PREFS: if (action.prefs) { diff --git a/packages/loot-core/src/client/reducers/queries.ts b/packages/loot-core/src/client/reducers/queries.ts index f44c6ca863f..3966e5e53da 100644 --- a/packages/loot-core/src/client/reducers/queries.ts +++ b/packages/loot-core/src/client/reducers/queries.ts @@ -19,10 +19,7 @@ const initialState: QueriesState = { earliestTransaction: null, }; -export default function update( - state = initialState, - action: Action, -): QueriesState { +export function update(state = initialState, action: Action): QueriesState { switch (action.type) { case constants.SET_NEW_TRANSACTIONS: return { diff --git a/packages/loot-core/src/client/reducers/user.ts b/packages/loot-core/src/client/reducers/user.ts index d9ec3de90f3..fe715884bec 100644 --- a/packages/loot-core/src/client/reducers/user.ts +++ b/packages/loot-core/src/client/reducers/user.ts @@ -5,10 +5,7 @@ const initialState: UserState = { data: null, }; -export default function update( - state = initialState, - action: UserActions, -): UserState { +export function update(state = initialState, action: UserActions): UserState { switch (action.type) { case constants.GET_USER_DATA: return { ...state, data: action.data }; diff --git a/packages/loot-core/src/client/state-types/modals.d.ts b/packages/loot-core/src/client/state-types/modals.d.ts index 36771e2e984..c1d3a9ee339 100644 --- a/packages/loot-core/src/client/state-types/modals.d.ts +++ b/packages/loot-core/src/client/state-types/modals.d.ts @@ -131,6 +131,23 @@ type FinanceModals = { name: string; onSave: (id: string, notes: string) => void; }; + 'report-budget-summary': { month: string }; + 'rollover-budget-summary': { + month: string; + onBudgetAction: ( + month: string, + type: string, + args: unknown, + ) => Promise; + }; + 'new-category-group': { + onValidate?: (value: string) => string; + onSubmit: (value: string) => Promise; + }; + 'new-category': { + onValidate?: (value: string) => string; + onSubmit: (value: string) => Promise; + }; }; export type PushModalAction = { diff --git a/packages/loot-core/src/client/update-notification.ts b/packages/loot-core/src/client/update-notification.ts index d66b8c1c0da..e698daefb1f 100644 --- a/packages/loot-core/src/client/update-notification.ts +++ b/packages/loot-core/src/client/update-notification.ts @@ -1,4 +1,4 @@ -export default async function checkForUpdateNotification( +export async function checkForUpdateNotification( addNotification, getIsOutdated, getLatestVersion, diff --git a/packages/loot-core/src/mocks/budget.ts b/packages/loot-core/src/mocks/budget.ts index 308b64f17ef..4aa912cfe51 100644 --- a/packages/loot-core/src/mocks/budget.ts +++ b/packages/loot-core/src/mocks/budget.ts @@ -8,14 +8,15 @@ import * as prefs from '../server/prefs'; import * as sheet from '../server/sheet'; import { batchMessages, setSyncingMode } from '../server/sync'; import * as monthUtils from '../shared/months'; -import q from '../shared/query'; +import { q } from '../shared/query'; +import type { Handlers } from '../types/handlers'; import type { CategoryGroupEntity, PayeeEntity, NewTransactionEntity, } from '../types/models'; -import random from './random'; +import { random } from './random'; type MockPayeeEntity = PayeeEntity & { bill?: boolean }; @@ -566,7 +567,7 @@ async function createBudget(accounts, payees, groups) { await sheet.waitOnSpreadsheet(); } -export async function createTestBudget(handlers) { +export async function createTestBudget(handlers: Handlers) { setSyncingMode('import'); await db.execQuery('PRAGMA journal_mode = OFF'); @@ -577,15 +578,15 @@ export async function createTestBudget(handlers) { await db.runQuery('DELETE FROM categories;'); await db.runQuery('DELETE FROM category_groups'); - const accounts: { name: string; offBudget?: 1; id?: string }[] = [ + const accounts: { name: string; offBudget?: boolean; id?: string }[] = [ { name: 'Bank of America' }, { name: 'Ally Savings' }, { name: 'Capital One Checking' }, { name: 'HSBC' }, - { name: 'Vanguard 401k', offBudget: 1 }, - { name: 'Mortgage', offBudget: 1 }, - { name: 'House Asset', offBudget: 1 }, - { name: 'Roth IRA', offBudget: 1 }, + { name: 'Vanguard 401k', offBudget: true }, + { name: 'Mortgage', offBudget: true }, + { name: 'House Asset', offBudget: true }, + { name: 'Roth IRA', offBudget: true }, ]; await runMutator(() => batchMessages(async () => { @@ -657,7 +658,7 @@ export async function createTestBudget(handlers) { for (const group of categoryGroups) { group.id = await handlers['category-group-create']({ name: group.name, - isIncome: group.is_income ? 1 : 0, + isIncome: group.is_income, }); for (const category of group.categories) { diff --git a/packages/loot-core/src/mocks/index.ts b/packages/loot-core/src/mocks/index.ts index 1b67795bcee..bc056442e83 100644 --- a/packages/loot-core/src/mocks/index.ts +++ b/packages/loot-core/src/mocks/index.ts @@ -3,7 +3,7 @@ import { v4 as uuidv4 } from 'uuid'; import * as monthUtils from '../shared/months'; import type { TransactionEntity } from '../types/models'; -import random from './random'; +import { random } from './random'; export function generateAccount(name, isConnected, offbudget) { return { diff --git a/packages/loot-core/src/mocks/random.ts b/packages/loot-core/src/mocks/random.ts index 2dbf5f67ccb..911ddf53ffe 100644 --- a/packages/loot-core/src/mocks/random.ts +++ b/packages/loot-core/src/mocks/random.ts @@ -13,6 +13,4 @@ function pseudoRandom(): number { return pseudoRandomIterator; } -const random = Platform.isPlaywright ? pseudoRandom : Math.random; - -export default random; +export const random = Platform.isPlaywright ? pseudoRandom : Math.random; diff --git a/packages/loot-core/src/mocks/redux.tsx b/packages/loot-core/src/mocks/redux.tsx index 569c6ae8286..bb32a0fd1ce 100644 --- a/packages/loot-core/src/mocks/redux.tsx +++ b/packages/loot-core/src/mocks/redux.tsx @@ -4,7 +4,7 @@ import { Provider } from 'react-redux'; import { createStore, combineReducers, applyMiddleware } from 'redux'; import thunk from 'redux-thunk'; -import reducers from '../client/reducers'; +import { reducers } from '../client/reducers'; const appReducer = combineReducers(reducers); let store = null; diff --git a/packages/loot-core/src/mocks/spreadsheet.ts b/packages/loot-core/src/mocks/spreadsheet.ts index 7a79ed62dea..e6f2fed78a6 100644 --- a/packages/loot-core/src/mocks/spreadsheet.ts +++ b/packages/loot-core/src/mocks/spreadsheet.ts @@ -1,4 +1,4 @@ -function makeSpreadsheet() { +export function makeSpreadsheet() { const cells = {}; return { observers: [], @@ -98,5 +98,3 @@ function makeSpreadsheet() { }, }; } - -export default makeSpreadsheet; diff --git a/packages/loot-core/src/platform/client/fetch/index.web.ts b/packages/loot-core/src/platform/client/fetch/index.web.ts index cdf9e2c5fdf..c37e18a26c5 100644 --- a/packages/loot-core/src/platform/client/fetch/index.web.ts +++ b/packages/loot-core/src/platform/client/fetch/index.web.ts @@ -8,89 +8,76 @@ const replyHandlers = new Map(); const listeners = new Map(); let messageQueue = []; let socketClient = null; -let activePort = null; -function connectSocket(port, onOpen) { - // Do nothing if connection to this port is already active - if (socketClient && port === activePort) { - return; - } +function connectSocket(onOpen) { + global.Actual.ipcConnect(function (client) { + client.on('message', data => { + const msg = data; + + if (msg.type === 'error') { + // An error happened while handling a message so cleanup the + // current reply handler. We don't care about the actual error - + // generic backend errors are handled separately and if you want + // more specific handling you should manually forward the error + // through a normal reply. + const { id } = msg; + replyHandlers.delete(id); + } else if (msg.type === 'reply') { + let { result } = msg; + const { id, mutated, undoTag } = msg; + + // Check if the result is a serialized buffer, and if so + // convert it to a Uint8Array. This is only needed when working + // with node; the web version connection layer automatically + // supports buffers + if (result && result.type === 'Buffer' && Array.isArray(result.data)) { + result = new Uint8Array(result.data); + } - const client = new WebSocket('ws://localhost:' + port); - socketClient = client; - activePort = port; - - client.onmessage = event => { - const msg = JSON.parse(event.data); - - if (msg.type === 'error') { - // An error happened while handling a message so cleanup the - // current reply handler. We don't care about the actual error - - // generic backend errors are handled separately and if you want - // more specific handling you should manually forward the error - // through a normal reply. - const { id } = msg; - replyHandlers.delete(id); - } else if (msg.type === 'reply') { - let { result } = msg; - const { id, mutated, undoTag } = msg; - - // Check if the result is a serialized buffer, and if so - // convert it to a Uint8Array. This is only needed when working - // with node; the web version connection layer automatically - // supports buffers - if (result && result.type === 'Buffer' && Array.isArray(result.data)) { - result = new Uint8Array(result.data); - } + const handler = replyHandlers.get(id); + if (handler) { + replyHandlers.delete(id); - const handler = replyHandlers.get(id); - if (handler) { - replyHandlers.delete(id); + if (!mutated) { + undo.gc(undoTag); + } - if (!mutated) { - undo.gc(undoTag); + handler.resolve(result); } - - handler.resolve(result); - } - } else if (msg.type === 'push') { - const { name, args } = msg; - - const listens = listeners.get(name); - if (listens) { - for (let i = 0; i < listens.length; i++) { - const stop = listens[i](args); - if (stop === true) { - break; + } else if (msg.type === 'push') { + const { name, args } = msg; + + const listens = listeners.get(name); + if (listens) { + for (let i = 0; i < listens.length; i++) { + const stop = listens[i](args); + if (stop === true) { + break; + } } } + } else { + throw new Error('Unknown message type: ' + JSON.stringify(msg)); } - } else { - throw new Error('Unknown message type: ' + JSON.stringify(msg)); - } - }; + }); + + socketClient = client; - client.onopen = event => { // Send any messages that were queued while closed if (messageQueue.length > 0) { - messageQueue.forEach(msg => { - socketClient.send(msg); - }); + messageQueue.forEach(msg => client.emit('message', msg)); messageQueue = []; } onOpen(); - }; - - client.onclose = () => { - socketClient = null; - }; + }); } -export const init: T.Init = async function (socketName) { - return new Promise(resolve => connectSocket(socketName, resolve)); +export const init: T.Init = async function () { + return new Promise(connectSocket); }; +// @ts-expect-error Figure out why typechecker is suddenly breaking here export const send: T.Send = function ( name, args, @@ -101,28 +88,23 @@ export const send: T.Send = function ( replyHandlers.set(id, { resolve, reject }); if (socketClient) { - socketClient.send( - JSON.stringify({ - id, - name, - args, - undoTag: undo.snapshot(), - catchErrors: !!catchErrors, - }), - ); + socketClient.emit('message', { + id, + name, + args, + undoTag: undo.snapshot(), + catchErrors: !!catchErrors, + }); } else { - messageQueue.push( - JSON.stringify({ - id, - name, - args, - undoTag: undo.snapshot(), - catchErrors, - }), - ); + messageQueue.push({ + id, + name, + args, + undoTag: undo.snapshot(), + catchErrors, + }); } - // eslint-disable-next-line @typescript-eslint/no-explicit-any - }) as any; + }); }; export const sendCatch: T.SendCatch = function (name, args) { diff --git a/packages/loot-core/src/platform/server/connection/index.electron.ts b/packages/loot-core/src/platform/server/connection/index.electron.ts index 92206ff419c..4f974477fd3 100644 --- a/packages/loot-core/src/platform/server/connection/index.electron.ts +++ b/packages/loot-core/src/platform/server/connection/index.electron.ts @@ -3,12 +3,6 @@ import { captureException } from '../../exceptions'; import type * as T from '.'; -// for some reason import doesn't work -const WebSocketServer = require('ws').Server; - -// the websocket server -let wss = null; - function coerceError(error) { if (error.type && error.type === 'APIError') { return error; @@ -17,105 +11,74 @@ function coerceError(error) { return { type: 'InternalError', message: error.message }; } -export const init: T.Init = function (socketName, handlers) { - wss = new WebSocketServer({ port: socketName }); - - // websockets doesn't support sending objects so parse/stringify needed - wss.on('connection', function connection(ws) { - ws.on('error', console.error); - - ws.on('message', data => { - const msg = JSON.parse(data); - - if (ws.readyState !== 1) { - return; - } - - const { id, name, args, undoTag, catchErrors } = msg; +export const init: T.Init = function (_socketName, handlers) { + process.parentPort.on('message', ({ data }) => { + const { id, name, args, undoTag, catchErrors } = data; - if (handlers[name]) { - runHandler(handlers[name], args, { undoTag, name }).then( - result => { - if (ws.readyState !== 1) { - return; - } - if (catchErrors) { - result = { data: result, error: null }; - } + if (handlers[name]) { + runHandler(handlers[name], args, { undoTag, name }).then( + result => { + if (catchErrors) { + result = { data: result, error: null }; + } - ws.send( - JSON.stringify({ - type: 'reply', - id, - result, - mutated: - isMutating(handlers[name]) && - name !== 'undo' && - name !== 'redo', - undoTag, - }), - ); - }, - nativeError => { - if (ws.readyState !== 1) { - return; - } - const error = coerceError(nativeError); - - if (name.startsWith('api/')) { - // The API is newer and does automatically forward - // errors - ws.send(JSON.stringify({ type: 'reply', id, error })); - } else if (catchErrors) { - ws.send( - JSON.stringify({ - type: 'reply', - id, - result: { error, data: null }, - }), - ); - } else { - ws.send(JSON.stringify({ type: 'error', id })); - } - - if (error.type === 'InternalError' && name !== 'api/load-budget') { - captureException(nativeError); - } - - if (!catchErrors) { - // Notify the frontend that something bad happend - send('server-error'); - } - }, - ); - } else { - console.warn('Unknown method: ' + name); - captureException(new Error('Unknown server method: ' + name)); - ws.send( - JSON.stringify({ + process.parentPort.postMessage({ type: 'reply', id, - result: null, - error: { type: 'APIError', message: 'Unknown method: ' + name }, - }), - ); - } - }); + result, + mutated: + isMutating(handlers[name]) && name !== 'undo' && name !== 'redo', + undoTag, + }); + }, + nativeError => { + const error = coerceError(nativeError); + + if (name.startsWith('api/')) { + // The API is newer and does automatically forward + // errors + process.parentPort.postMessage({ + type: 'reply', + id, + error, + }); + } else if (catchErrors) { + process.parentPort.postMessage({ + type: 'reply', + id, + result: { error, data: null }, + }); + } else { + process.parentPort.postMessage({ type: 'error', id }); + } + + if (error.type === 'InternalError' && name !== 'api/load-budget') { + captureException(nativeError); + } + + if (!catchErrors) { + // Notify the frontend that something bad happend + send('server-error'); + } + }, + ); + } else { + console.warn('Unknown method: ' + name); + captureException(new Error('Unknown server method: ' + name)); + process.parentPort.postMessage({ + type: 'reply', + id, + result: null, + error: { type: 'APIError', message: 'Unknown method: ' + name }, + }); + } }); }; export const getNumClients: T.GetNumClients = function () { - if (wss) { - return wss.clients.length; - } - return 0; }; export const send: T.Send = function (name, args) { - if (wss) { - wss.clients.forEach(client => - client.send(JSON.stringify({ type: 'push', name, args })), - ); - } + process.parentPort.postMessage({ type: 'push', name, args }); }; diff --git a/packages/loot-core/src/platform/server/connection/index.web.ts b/packages/loot-core/src/platform/server/connection/index.web.ts index 8b8bcd5b488..c1e3af987fd 100644 --- a/packages/loot-core/src/platform/server/connection/index.web.ts +++ b/packages/loot-core/src/platform/server/connection/index.web.ts @@ -47,14 +47,10 @@ export const init: T.Init = function (serverChn, handlers) { if (handlers[name]) { runHandler(handlers[name], args, { undoTag, name }).then( result => { - if (catchErrors) { - result = { data: result, error: null }; - } - serverChannel.postMessage({ type: 'reply', id, - result, + result: catchErrors ? { data: result, error: null } : result, mutated: isMutating(handlers[name]), undoTag, }); diff --git a/packages/loot-core/src/platform/server/fs/index.d.ts b/packages/loot-core/src/platform/server/fs/index.d.ts index d9c1d8a60ea..d83079467f1 100644 --- a/packages/loot-core/src/platform/server/fs/index.d.ts +++ b/packages/loot-core/src/platform/server/fs/index.d.ts @@ -1,4 +1,4 @@ -export { default as join } from './path-join'; +export { join } from './path-join'; export function init(): void; export type Init = typeof init; diff --git a/packages/loot-core/src/platform/server/fs/index.web.ts b/packages/loot-core/src/platform/server/fs/index.web.ts index 45da2f6f69d..75df4de412e 100644 --- a/packages/loot-core/src/platform/server/fs/index.web.ts +++ b/packages/loot-core/src/platform/server/fs/index.web.ts @@ -5,7 +5,7 @@ import * as connection from '../connection'; import * as idb from '../indexeddb'; import { _getModule } from '../sqlite'; -import join from './path-join'; +import { join } from './path-join'; let FS = null; let BFS = null; diff --git a/packages/loot-core/src/platform/server/fs/path-join.d.ts b/packages/loot-core/src/platform/server/fs/path-join.d.ts index 305356b75d2..7954dc6831c 100644 --- a/packages/loot-core/src/platform/server/fs/path-join.d.ts +++ b/packages/loot-core/src/platform/server/fs/path-join.d.ts @@ -1,2 +1,2 @@ -export default function join(...args: string[]): string; +export function join(...args: string[]): string; export type Join = typeof join; diff --git a/packages/loot-core/src/platform/server/fs/path-join.electron.ts b/packages/loot-core/src/platform/server/fs/path-join.electron.ts index 8ec5406307c..911858b8d21 100644 --- a/packages/loot-core/src/platform/server/fs/path-join.electron.ts +++ b/packages/loot-core/src/platform/server/fs/path-join.electron.ts @@ -1,3 +1 @@ -import { join } from 'path'; - -export default join; +export { join } from 'path'; diff --git a/packages/loot-core/src/platform/server/fs/path-join.web.ts b/packages/loot-core/src/platform/server/fs/path-join.web.ts index 7c36099fb11..9620ba2b7f7 100644 --- a/packages/loot-core/src/platform/server/fs/path-join.web.ts +++ b/packages/loot-core/src/platform/server/fs/path-join.web.ts @@ -83,7 +83,7 @@ function normalizePath(path) { return path; } -const join: T.Join = (...args) => { +export const join: T.Join = (...args) => { if (args.length === 0) return '.'; let joined; for (let i = 0; i < args.length; ++i) { @@ -96,5 +96,3 @@ const join: T.Join = (...args) => { if (joined === undefined) return '.'; return normalizePath(joined); }; - -export default join; diff --git a/packages/loot-core/src/platform/server/fs/shared.ts b/packages/loot-core/src/platform/server/fs/shared.ts index bedc69b6c22..756bc578367 100644 --- a/packages/loot-core/src/platform/server/fs/shared.ts +++ b/packages/loot-core/src/platform/server/fs/shared.ts @@ -1,4 +1,4 @@ -import join from './path-join'; +import { join } from './path-join'; let documentDir; export const _setDocumentDir = dir => (documentDir = dir); diff --git a/packages/loot-core/src/platform/server/log/index.api.ts b/packages/loot-core/src/platform/server/log/index.api.ts index cd368c84532..a650c6323f8 100644 --- a/packages/loot-core/src/platform/server/log/index.api.ts +++ b/packages/loot-core/src/platform/server/log/index.api.ts @@ -1,6 +1,6 @@ import type * as T from '.'; -const logger: T.Logger = { +export const logger: T.Logger = { info: (...args) => { console.log(...args); }, @@ -8,4 +8,3 @@ const logger: T.Logger = { console.warn(...args); }, }; -export default logger; diff --git a/packages/loot-core/src/platform/server/log/index.d.ts b/packages/loot-core/src/platform/server/log/index.d.ts index 00b23ca4dbf..d8ca19d7a38 100644 --- a/packages/loot-core/src/platform/server/log/index.d.ts +++ b/packages/loot-core/src/platform/server/log/index.d.ts @@ -6,5 +6,4 @@ export interface Logger { transports?: Transports; } -const logger: Logger; -export default logger; +export const logger: Logger; diff --git a/packages/loot-core/src/platform/server/log/index.electron.ts b/packages/loot-core/src/platform/server/log/index.electron.ts index 9aba4ec63f5..24a3bebcf18 100644 --- a/packages/loot-core/src/platform/server/log/index.electron.ts +++ b/packages/loot-core/src/platform/server/log/index.electron.ts @@ -1,12 +1,12 @@ -import logger from 'electron-log'; +import electronLogger from 'electron-log'; import type * as T from '.'; -if (logger.transports) { - logger.transports.file.appName = 'Actual'; - logger.transports.file.level = 'info'; - logger.transports.file.maxSize = 7 * 1024 * 1024; - logger.transports.console.level = false; +if (electronLogger.transports) { + electronLogger.transports.file.appName = 'Actual'; + electronLogger.transports.file.level = 'info'; + electronLogger.transports.file.maxSize = 7 * 1024 * 1024; + electronLogger.transports.console.level = false; } -export default logger as T.Logger; +export const logger: T.Logger = electronLogger; diff --git a/packages/loot-core/src/platform/server/log/index.web.ts b/packages/loot-core/src/platform/server/log/index.web.ts index cd368c84532..a650c6323f8 100644 --- a/packages/loot-core/src/platform/server/log/index.web.ts +++ b/packages/loot-core/src/platform/server/log/index.web.ts @@ -1,6 +1,6 @@ import type * as T from '.'; -const logger: T.Logger = { +export const logger: T.Logger = { info: (...args) => { console.log(...args); }, @@ -8,4 +8,3 @@ const logger: T.Logger = { console.warn(...args); }, }; -export default logger; diff --git a/packages/loot-core/src/platform/server/sqlite/index.electron.ts b/packages/loot-core/src/platform/server/sqlite/index.electron.ts index 146e8ac192c..0374f34d8b5 100644 --- a/packages/loot-core/src/platform/server/sqlite/index.electron.ts +++ b/packages/loot-core/src/platform/server/sqlite/index.electron.ts @@ -98,9 +98,11 @@ export function openDatabase(pathOrBuffer: string | Buffer) { const db = new SQL(pathOrBuffer); // Define Unicode-aware LOWER and UPPER implementation. // This is necessary because better-sqlite3 uses SQLite build without ICU support. + // @ts-expect-error @types/better-sqlite3 does not support setting strict 3rd argument db.function('UNICODE_LOWER', { deterministic: true }, (arg: string | null) => arg?.toLowerCase(), ); + // @ts-expect-error @types/better-sqlite3 does not support setting strict 3rd argument db.function('UNICODE_UPPER', { deterministic: true }, (arg: string | null) => arg?.toUpperCase(), ); diff --git a/packages/loot-core/src/server/accounts/export-to-csv.ts b/packages/loot-core/src/server/accounts/export-to-csv.ts index da8aa17d621..838216cf209 100644 --- a/packages/loot-core/src/server/accounts/export-to-csv.ts +++ b/packages/loot-core/src/server/accounts/export-to-csv.ts @@ -31,13 +31,24 @@ export async function exportToCSV( }, {}); const transactionsForExport = transactions.map( - ({ account, date, payee, notes, category, amount }) => ({ + ({ + account, + date, + payee, + notes, + category, + amount, + cleared, + reconciled, + }) => ({ Account: accountNamesById[account], Date: date, Payee: payeeNamesById[payee], Notes: notes, Category: categoryNamesById[category], Amount: amount == null ? 0 : integerToAmount(amount), + Cleared: cleared, + Reconciled: reconciled, }), ); @@ -57,6 +68,8 @@ export async function exportQueryToCSV(query) { { Notes: 'notes' }, { Category: 'category.name' }, { Amount: 'amount' }, + { Cleared: 'cleared' }, + { Reconciled: 'reconciled' }, ]) .options({ splits: 'all' }), ); @@ -80,6 +93,12 @@ export async function exportQueryToCSV(query) { Notes: trans.Notes, Category: trans.Category, Amount: trans.Amount == null ? 0 : integerToAmount(trans.Amount), + Cleared: + trans.Reconciled === true + ? 'Reconciled' + : trans.Cleared === true + ? 'Cleared' + : 'Not cleared', }; }); diff --git a/packages/loot-core/src/server/accounts/ofx2json.ts b/packages/loot-core/src/server/accounts/ofx2json.ts index e009e76c97b..526c805f320 100644 --- a/packages/loot-core/src/server/accounts/ofx2json.ts +++ b/packages/loot-core/src/server/accounts/ofx2json.ts @@ -110,7 +110,7 @@ function mapOfxTransaction(stmtTrn): OFXTransaction { }; } -export default async function parse(ofx: string): Promise { +export async function ofx2json(ofx: string): Promise { // firstly, split into the header attributes and the footer sgml const contents = ofx.split('', 2); diff --git a/packages/loot-core/src/server/accounts/parse-file.ts b/packages/loot-core/src/server/accounts/parse-file.ts index f81e50b87b8..c47fce23270 100644 --- a/packages/loot-core/src/server/accounts/parse-file.ts +++ b/packages/loot-core/src/server/accounts/parse-file.ts @@ -4,8 +4,8 @@ import * as fs from '../../platform/server/fs'; import { dayFromDate } from '../../shared/months'; import { looselyParseAmount } from '../../shared/util'; -import ofx2json from './ofx2json'; -import qif2json from './qif2json'; +import { ofx2json } from './ofx2json'; +import { qif2json } from './qif2json'; type ParseError = { message: string; internal: string }; export type ParseFileResult = { diff --git a/packages/loot-core/src/server/accounts/qif2json.ts b/packages/loot-core/src/server/accounts/qif2json.ts index b3957c6cdef..17a91d51cc5 100644 --- a/packages/loot-core/src/server/accounts/qif2json.ts +++ b/packages/loot-core/src/server/accounts/qif2json.ts @@ -18,7 +18,7 @@ type QIFTransaction = { division?: Division[]; }; -export default function parse(qif, options: { dateFormat?: string } = {}) { +export function qif2json(qif, options: { dateFormat?: string } = {}) { const lines = qif.split('\n'); let line = lines.shift(); const type = /!Type:([^$]*)$/.exec(line.trim()); diff --git a/packages/loot-core/src/server/accounts/sync.ts b/packages/loot-core/src/server/accounts/sync.ts index 04c0c4ca112..d6f5f18857f 100644 --- a/packages/loot-core/src/server/accounts/sync.ts +++ b/packages/loot-core/src/server/accounts/sync.ts @@ -15,7 +15,7 @@ import { getServer } from '../server-config'; import { batchMessages } from '../sync'; import { getStartingBalancePayee } from './payees'; -import title from './title'; +import { title } from './title'; import { runRules } from './transaction-rules'; import { batchUpdateTransactions } from './transactions'; @@ -344,7 +344,8 @@ async function normalizeGoCardlessTransactions(transactions, acctId) { title( trans.debtorName || trans.remittanceInformationUnstructured || - (trans.remittanceInformationUnstructuredArray || []).join(', '), + (trans.remittanceInformationUnstructuredArray || []).join(', ') || + trans.additionalInformation, ), ); if (trans.debtorAccount && trans.debtorAccount.iban) { @@ -363,7 +364,8 @@ async function normalizeGoCardlessTransactions(transactions, acctId) { title( trans.creditorName || trans.remittanceInformationUnstructured || - (trans.remittanceInformationUnstructuredArray || []).join(', '), + (trans.remittanceInformationUnstructuredArray || []).join(', ') || + trans.additionalInformation, ), ); if (trans.creditorAccount && trans.creditorAccount.iban) { diff --git a/packages/loot-core/src/server/accounts/title/index.ts b/packages/loot-core/src/server/accounts/title/index.ts index 45ec9c58521..6330ef8b7bc 100644 --- a/packages/loot-core/src/server/accounts/title/index.ts +++ b/packages/loot-core/src/server/accounts/title/index.ts @@ -1,6 +1,6 @@ // Utilities -import lowerCase from './lower-case'; -import specials from './specials'; +import { lowerCaseSet } from './lower-case'; +import { specials } from './specials'; const character = '[0-9\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376-\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0523\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0621-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06E5-\u06E6\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4-\u07F5\u07FA\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0972\u097B-\u097F\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0-\u0AE1\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58-\u0C59\u0C60-\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D3D\u0D60-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32-\u0E33\u0E40-\u0E46\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDD\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8B\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10D0-\u10FA\u10FC\u1100-\u1159\u115F-\u11A2\u11A8-\u11F9\u1200-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u1676\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19A9\u19C1-\u19C7\u1A00-\u1A16\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u2094\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2C6F\u2C71-\u2C7D\u2C80-\u2CE4\u2D00-\u2D25\u2D30-\u2D65\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31B7\u31F0-\u31FF\u3400\u4DB5\u4E00\u9FC3\uA000-\uA48C\uA500-\uA60C\uA610-\uA61F\uA62A-\uA62B\uA640-\uA65F\uA662-\uA66E\uA67F-\uA697\uA717-\uA71F\uA722-\uA788\uA78B-\uA78C\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA90A-\uA925\uA930-\uA946\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAC00\uD7A3\uF900-\uFA2D\uFA30-\uFA6A\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]'; @@ -28,7 +28,7 @@ function parseMatch(match) { return match; } -export default function title(str, options = { special: undefined }) { +export function title(str, options = { special: undefined }) { str = str .toLowerCase() .replace(regex, (m, lead = '', forced, lower, rest) => { @@ -39,7 +39,7 @@ export default function title(str, options = { special: undefined }) { if (!forced) { const fullLower = lower + rest; - if (lowerCase.has(fullLower)) { + if (lowerCaseSet.has(fullLower)) { return parsedMatch; } } diff --git a/packages/loot-core/src/server/accounts/title/lower-case.ts b/packages/loot-core/src/server/accounts/title/lower-case.ts index 8f669a4e49e..eaecf439e77 100644 --- a/packages/loot-core/src/server/accounts/title/lower-case.ts +++ b/packages/loot-core/src/server/accounts/title/lower-case.ts @@ -86,5 +86,8 @@ const prepositions = [ 'without', ]; -const dictionary = new Set([...conjunctions, ...articles, ...prepositions]); -export default dictionary; +export const lowerCaseSet = new Set([ + ...conjunctions, + ...articles, + ...prepositions, +]); diff --git a/packages/loot-core/src/server/accounts/title/specials.ts b/packages/loot-core/src/server/accounts/title/specials.ts index 1beb793640e..bf66c498c45 100644 --- a/packages/loot-core/src/server/accounts/title/specials.ts +++ b/packages/loot-core/src/server/accounts/title/specials.ts @@ -1,4 +1,4 @@ -const intended = [ +export const specials = [ 'CLI', 'API', 'HTTP', @@ -19,5 +19,3 @@ const intended = [ 'Next.js', 'Node.js', ]; - -export default intended; diff --git a/packages/loot-core/src/server/accounts/transaction-rules.test.ts b/packages/loot-core/src/server/accounts/transaction-rules.test.ts index bc09dc15f6c..2144740c7df 100644 --- a/packages/loot-core/src/server/accounts/transaction-rules.test.ts +++ b/packages/loot-core/src/server/accounts/transaction-rules.test.ts @@ -1,4 +1,4 @@ -import q from '../../shared/query'; +import { q } from '../../shared/query'; import { runQuery } from '../aql'; import * as db from '../db'; import { loadMappings } from '../db/mappings'; diff --git a/packages/loot-core/src/server/api.ts b/packages/loot-core/src/server/api.ts index b87d4b14bd2..5934d77ecc4 100644 --- a/packages/loot-core/src/server/api.ts +++ b/packages/loot-core/src/server/api.ts @@ -7,7 +7,7 @@ import { getTestKeyError, } from '../shared/errors'; import * as monthUtils from '../shared/months'; -import q from '../shared/query'; +import { q } from '../shared/query'; import { ungroupTransactions, updateTransaction, @@ -602,7 +602,7 @@ handlers['api/payee-delete'] = withMutation(async function ({ id }) { return handlers['payees-batch-change']({ deleted: [{ id }] }); }); -export default function installAPI(serverHandlers: ServerHandlers) { +export function installAPI(serverHandlers: ServerHandlers) { const merged = Object.assign({}, serverHandlers, handlers); handlers = merged as Handlers; return merged; diff --git a/packages/loot-core/src/server/aql/compiler.test.ts b/packages/loot-core/src/server/aql/compiler.test.ts index 42712cb9aca..53984efa656 100644 --- a/packages/loot-core/src/server/aql/compiler.test.ts +++ b/packages/loot-core/src/server/aql/compiler.test.ts @@ -1,4 +1,4 @@ -import query from '../../shared/query'; +import { q } from '../../shared/query'; import { generateSQLWithState } from './compiler'; @@ -61,7 +61,7 @@ const schemaWithTombstone = { describe('sheet language', () => { it('`select` should select fields', () => { let result = generateSQLWithState( - query('accounts') + q('accounts') .select(['trans1', 'trans2']) .withoutValidatedRefs() .serialize(), @@ -73,7 +73,7 @@ describe('sheet language', () => { // Allows renaming result = generateSQLWithState( - query('accounts') + q('accounts') .select(['trans1', 'trans1.id', { transId: 'trans1.id' }]) .withoutValidatedRefs() .serialize(), @@ -85,7 +85,7 @@ describe('sheet language', () => { // Joined fields should be named by path result = generateSQLWithState( - query('accounts') + q('accounts') .select(['trans1.payee.name']) .withoutValidatedRefs() .serialize(), @@ -97,7 +97,7 @@ describe('sheet language', () => { // Renaming works with joined fields result = generateSQLWithState( - query('accounts') + q('accounts') .select([{ payeeName: 'trans1.payee.name' }]) .withoutValidatedRefs() .serialize(), @@ -109,7 +109,7 @@ describe('sheet language', () => { // By default, it should do id ref validation result = generateSQLWithState( - query('accounts').select(['trans1', 'trans2']).serialize(), + q('accounts').select(['trans1', 'trans2']).serialize(), schemaWithRefs, ); expect(sqlLines(result.sql)).toEqual( @@ -124,7 +124,7 @@ describe('sheet language', () => { it('`select` allows nested functions', () => { const result = generateSQLWithState( - query('transactions') + q('transactions') .select([{ num: { $idiv: [{ $neg: '$amount' }, 2] } }]) .serialize(), schemaWithRefs, @@ -136,7 +136,7 @@ describe('sheet language', () => { it('`select` allows selecting all fields with *', () => { let result = generateSQLWithState( - query('accounts').select(['*']).serialize(), + q('accounts').select(['*']).serialize(), schemaWithRefs, ); expect(sqlLines(result.sql)).toEqual( @@ -151,7 +151,7 @@ describe('sheet language', () => { // Test selecting from joined tables result = generateSQLWithState( - query('accounts').select(['*', 'trans1.*']).serialize(), + q('accounts').select(['*', 'trans1.*']).serialize(), schemaWithRefs, ); expect(sqlLines(result.sql)).toEqual( @@ -170,14 +170,14 @@ describe('sheet language', () => { // The tombstone flag is not added if not necessary (the table // doesn't have it ) let result = generateSQLWithState( - query('accounts').select(['trans']).withoutValidatedRefs().serialize(), + q('accounts').select(['trans']).withoutValidatedRefs().serialize(), schemaWithTombstone, ); expect(result.sql).not.toMatch('tombstone'); // By default, the tombstone flag should be added if necessary result = generateSQLWithState( - query('transactions').select(['amount']).serialize(), + q('transactions').select(['amount']).serialize(), schemaWithTombstone, ); expect(sqlLines(result.sql)).toEqual( @@ -189,7 +189,7 @@ describe('sheet language', () => { // `withDead` should not add the tombstone flag result = generateSQLWithState( - query('transactions').select(['amount']).withDead().serialize(), + q('transactions').select(['amount']).withDead().serialize(), schemaWithTombstone, ); expect(sqlLines(result.sql)).toEqual( @@ -201,9 +201,7 @@ describe('sheet language', () => { // The tombstone flag should also be added if joining result = generateSQLWithState( - query('accounts') - .select(['trans.amount', 'trans.payee.name']) - .serialize(), + q('accounts').select(['trans.amount', 'trans.payee.name']).serialize(), schemaWithTombstone, ); expect(sqlLines(result.sql)).toEqual( @@ -221,13 +219,13 @@ describe('sheet language', () => { it('`select` always includes the id', () => { let result = generateSQLWithState( - query('payees').select('name').serialize(), + q('payees').select('name').serialize(), schemaWithRefs, ); expect(result.sql).toMatch('payees.id AS id'); result = generateSQLWithState( - query('payees').select(['name', 'id']).serialize(), + q('payees').select(['name', 'id']).serialize(), schemaWithRefs, ); // id is only included once, we manually selected it @@ -236,7 +234,7 @@ describe('sheet language', () => { ); result = generateSQLWithState( - query('payees').select('name').groupBy('account').serialize(), + q('payees').select('name').groupBy('account').serialize(), schemaWithRefs, ); // id should not automatically by selected if using `groupBy` @@ -246,7 +244,7 @@ describe('sheet language', () => { it('automatically joins tables if referenced by path', () => { // Join a simple table let result = generateSQLWithState( - query('transactions') + q('transactions') .filter({ 'payee.name': 'kroger' }) .select(['amount']) .serialize(), @@ -262,7 +260,7 @@ describe('sheet language', () => { // Make sure it works in a `get` result = generateSQLWithState( - query('transactions') + q('transactions') .filter({ amount: 123 }) .select(['payee.name']) .serialize(), @@ -279,7 +277,7 @@ describe('sheet language', () => { // Join tables deeply result = generateSQLWithState( - query('transactions') + q('transactions') .filter({ 'payee.account.trans1.amount': 234 }) .select(['amount', 'payee.name']) .serialize(), @@ -303,7 +301,7 @@ describe('sheet language', () => { it('avoids unnecessary joins when deeply joining', () => { const { state, sql } = generateSQLWithState( - query('transactions') + q('transactions') .filter({ 'payee.account.trans1.amount': 1, 'payee.account.trans2.amount': 2, @@ -341,7 +339,7 @@ describe('sheet language', () => { it('groupBy should work', () => { let result = generateSQLWithState( - query('transactions').groupBy('payee.name').select('id').serialize(), + q('transactions').groupBy('payee.name').select('id').serialize(), schemaWithRefs, ); expect(sqlLines(result.sql)).toEqual( @@ -355,7 +353,7 @@ describe('sheet language', () => { // Allows functions result = generateSQLWithState( - query('transactions') + q('transactions') .groupBy({ $substr: ['$payee.name', 0, 4] }) .select('id') .serialize(), @@ -366,7 +364,7 @@ describe('sheet language', () => { it('orderBy should work', () => { let result = generateSQLWithState( - query('transactions').orderBy('payee.name').select('id').serialize(), + q('transactions').orderBy('payee.name').select('id').serialize(), schemaWithRefs, ); expect(sqlLines(result.sql)).toEqual( @@ -380,7 +378,7 @@ describe('sheet language', () => { // Allows complex ordering and specifying direction result = generateSQLWithState( - query('transactions') + q('transactions') .orderBy([ 'payee.id', { 'payee.name': 'desc' }, @@ -398,7 +396,7 @@ describe('sheet language', () => { it('allows functions in `select`', () => { let result = generateSQLWithState( - query('transactions') + q('transactions') .select(['id', { payeeName: { $substr: ['$payee.name', 0, 4] } }]) .serialize(), schemaWithRefs, @@ -408,7 +406,7 @@ describe('sheet language', () => { ); result = generateSQLWithState( - query('transactions') + q('transactions') .select([ 'id', { name: { $substr: [{ $substr: ['$payee.name', 1, 5] }, 3, 4] } }, @@ -423,7 +421,7 @@ describe('sheet language', () => { it('allows filtering with `filter`', () => { let result = generateSQLWithState( - query('transactions') + q('transactions') .filter({ date: [{ $lt: '2020-01-01' }], $or: [{ 'payee.name': 'foo' }, { 'payee.name': 'bar' }], @@ -444,7 +442,7 @@ describe('sheet language', () => { // Combining `$or` and `$and` works result = generateSQLWithState( - query('transactions') + q('transactions') .filter({ $or: [ { 'payee.name': 'foo' }, @@ -474,7 +472,7 @@ describe('sheet language', () => { // Giving a field an array implicitly ANDs the filters result = generateSQLWithState( - query('transactions') + q('transactions') .filter({ date: [{ $lt: '2020-01-01' }, { $gt: '2019-12-01' }] }) .select(['id']) .serialize(), @@ -489,7 +487,7 @@ describe('sheet language', () => { // Allows referencing fields result = generateSQLWithState( - query('transactions') + q('transactions') .filter({ amount: { $lt: '$amount2' } }) .select(['id']) .serialize(), @@ -505,7 +503,7 @@ describe('sheet language', () => { it('$and and $or allow the object form', () => { let result = generateSQLWithState( - query('transactions') + q('transactions') .filter({ $and: { payee: 'payee1', amount: 12 }, }) @@ -519,7 +517,7 @@ describe('sheet language', () => { ); result = generateSQLWithState( - query('transactions') + q('transactions') .filter({ $or: { payee: 'payee1', amount: 12 }, }) @@ -536,7 +534,7 @@ describe('sheet language', () => { it('allows functions in `filter`', () => { // Allows transforming the input let result = generateSQLWithState( - query('transactions') + q('transactions') .filter({ 'payee.name': { $transform: { $substr: ['$', 0, 4] }, $lt: 'foo' }, }) @@ -555,7 +553,7 @@ describe('sheet language', () => { // Allows transforming left-hand side and calling a function on // right-hand side result = generateSQLWithState( - query('transactions') + q('transactions') .filter({ date: { $transform: '$month', $lt: { $month: '$date' } }, }) @@ -569,7 +567,7 @@ describe('sheet language', () => { // Allows nesting functions result = generateSQLWithState( - query('transactions') + q('transactions') .filter({ 'payee.name': { $lt: { $substr: [{ $substr: ['$payee.name', 1, 5] }, 3, 4] }, @@ -586,19 +584,19 @@ describe('sheet language', () => { it('allows limit and offset', () => { let result = generateSQLWithState( - query('transactions').select(['id']).limit(10).serialize(), + q('transactions').select(['id']).limit(10).serialize(), schemaWithRefs, ); expect(result.sql).toMatch(/\s+LIMIT 10\s*$/); result = generateSQLWithState( - query('transactions').select(['id']).offset(11).serialize(), + q('transactions').select(['id']).offset(11).serialize(), schemaWithRefs, ); expect(result.sql).toMatch(/\s+OFFSET 11\s*$/); result = generateSQLWithState( - query('transactions').select(['id']).limit(10).offset(11).serialize(), + q('transactions').select(['id']).limit(10).offset(11).serialize(), schemaWithRefs, ); expect(result.sql).toMatch(/\s+LIMIT 10\s*\n\s*OFFSET 11\s*$/); @@ -606,7 +604,7 @@ describe('sheet language', () => { it('allows named parameters', () => { let result = generateSQLWithState( - query('transactions') + q('transactions') .filter({ amount: ':amount' }) .select(['id']) .serialize(), @@ -615,7 +613,7 @@ describe('sheet language', () => { expect(result.sql).toMatch('transactions.amount = ?'); result = generateSQLWithState( - query('transactions') + q('transactions') .filter({ amount: { $lt: { $neg: ':amount' } } }) .select(['id']) .serialize(), @@ -625,7 +623,7 @@ describe('sheet language', () => { // Infers the right type result = generateSQLWithState( - query('transactions') + q('transactions') .filter({ date: { $transform: '$month', $eq: { $month: ':month' } } }) .select() .serialize(), @@ -639,7 +637,7 @@ describe('sheet language', () => { it('allows customizing generated SQL', () => { let result = generateSQLWithState( - query('transactions').select(['amount']).serialize(), + q('transactions').select(['amount']).serialize(), schemaWithRefs, { tableViews: { transactions: 'v_transactions' }, @@ -656,7 +654,7 @@ describe('sheet language', () => { // Make sure the same customizations are applied when joining result = generateSQLWithState( - query('accounts').select(['trans1.amount']).serialize(), + q('accounts').select(['trans1.amount']).serialize(), schemaWithRefs, { tableViews: { transactions: 'v_transactions' }, @@ -681,7 +679,7 @@ describe('sheet language', () => { // Internal table filters can't use paths expect(() => generateSQLWithState( - query('accounts').select(['trans1.amount']).serialize(), + q('accounts').select(['trans1.amount']).serialize(), schemaWithRefs, { tableViews: { transactions: 'v_transactions' }, @@ -694,7 +692,7 @@ describe('sheet language', () => { it('raw mode avoids any internal filters', () => { const result = generateSQLWithState( - query('transactions').select(['amount']).raw().serialize(), + q('transactions').select(['amount']).raw().serialize(), schemaWithRefs, { tableViews: { transactions: 'v_transactions' }, @@ -714,7 +712,7 @@ describe('sheet language', () => { // select try { generateSQLWithState( - query('transactions') + q('transactions') .select({ month: { $month: '$payee.name2' } }) .serialize(), schemaWithRefs, @@ -730,7 +728,7 @@ describe('sheet language', () => { // filter try { generateSQLWithState( - query('transactions') + q('transactions') .filter({ date: { $transform: '$month', $eq: 10 } }) .select(['id']) .serialize(), @@ -748,7 +746,7 @@ describe('sheet language', () => { // group by try { generateSQLWithState( - query('transactions') + q('transactions') .groupBy({ $month: '$date2' }) .select({ amount: { $sum: '$amount' } }) .serialize(), @@ -765,7 +763,7 @@ describe('sheet language', () => { // order by try { generateSQLWithState( - query('transactions') + q('transactions') .orderBy({ $month: '$date2' }) .select({ amount: { $sum: '$amount' } }) .serialize(), @@ -782,7 +780,7 @@ describe('sheet language', () => { it('$oneof creates template for executor to run', () => { const result = generateSQLWithState( - query('transactions') + q('transactions') .filter({ id: { $oneof: ['one', 'two', 'three'] } }) .select(['amount']) .serialize(), @@ -795,7 +793,7 @@ describe('sheet language', () => { describe('Type conversions', () => { it('date literals are converted to ints on input', () => { let result = generateSQLWithState( - query('transactions') + q('transactions') .filter({ date: '2020-01-01' }) .select(['id']) .serialize(), @@ -804,7 +802,7 @@ describe('Type conversions', () => { expect(result.sql).toMatch('WHERE (transactions.date = 20200101)'); result = generateSQLWithState( - query('transactions') + q('transactions') .filter({ date: { $transform: '$month', $eq: '2020-01' } }) .select(['id']) .serialize(), @@ -816,7 +814,7 @@ describe('Type conversions', () => { // You can also specify a full date that is auto-converted to month result = generateSQLWithState( - query('transactions') + q('transactions') .filter({ date: { $transform: '$month', $eq: '2020-01-01' } }) .select(['id']) .serialize(), @@ -828,7 +826,7 @@ describe('Type conversions', () => { // You can also specify a full date that is auto-converted to month result = generateSQLWithState( - query('transactions') + q('transactions') .filter({ date: { $transform: '$year', $eq: '2020-01-01' } }) .select(['id']) .serialize(), @@ -841,7 +839,7 @@ describe('Type conversions', () => { it('date fields are converted to months and years', () => { let result = generateSQLWithState( - query('accounts') + q('accounts') .filter({ 'trans1.date': { $transform: '$month', $eq: '$trans2.date' }, }) @@ -855,7 +853,7 @@ describe('Type conversions', () => { // You can also specify a full date that is auto-converted to month result = generateSQLWithState( - query('accounts') + q('accounts') .filter({ 'trans1.date': { $transform: '$year', $eq: '$trans2.date' } }) .select(['id']) .serialize(), @@ -869,17 +867,14 @@ describe('Type conversions', () => { it('allows conversions from string to id', () => { expect(() => { generateSQLWithState( - query('transactions').filter({ id: 'foo' }).select(['id']).serialize(), + q('transactions').filter({ id: 'foo' }).select(['id']).serialize(), schemaWithRefs, ); }).not.toThrow(); expect(() => { generateSQLWithState( - query('accounts') - .filter({ id: '$trans1.id' }) - .select(['id']) - .serialize(), + q('accounts').filter({ id: '$trans1.id' }).select(['id']).serialize(), schemaWithRefs, ); }).not.toThrow(); @@ -887,7 +882,7 @@ describe('Type conversions', () => { // Numbers cannot be converted to ids expect(() => { generateSQLWithState( - query('transactions').filter({ id: 5 }).select(['id']).serialize(), + q('transactions').filter({ id: 5 }).select(['id']).serialize(), schemaWithRefs, ); }).toThrow(/Can’t convert/); @@ -896,10 +891,7 @@ describe('Type conversions', () => { it('allows conversions from integers to floats', () => { expect(() => { generateSQLWithState( - query('transactions') - .filter({ amount3: 45 }) - .select(['id']) - .serialize(), + q('transactions').filter({ amount3: 45 }).select(['id']).serialize(), basicSchema, ); }).not.toThrow(); @@ -907,10 +899,7 @@ describe('Type conversions', () => { // Floats cannot be converted to ints expect(() => { generateSQLWithState( - query('transactions') - .filter({ amount: 45.5 }) - .select(['id']) - .serialize(), + q('transactions').filter({ amount: 45.5 }).select(['id']).serialize(), basicSchema, ); }).toThrow(/Can’t convert/); @@ -919,14 +908,14 @@ describe('Type conversions', () => { it('allows fields to be nullable', () => { // With validated refs let result = generateSQLWithState( - query('transactions').filter({ payee: null }).select().serialize(), + q('transactions').filter({ payee: null }).select().serialize(), schemaWithRefs, ); expect(result.sql).toMatch('WHERE (payees1.id IS NULL)'); // Without validated refs result = generateSQLWithState( - query('transactions') + q('transactions') .filter({ payee: null }) .select() .withoutValidatedRefs() diff --git a/packages/loot-core/src/server/aql/compiler.ts b/packages/loot-core/src/server/aql/compiler.ts index ade3d1d0200..29b437ec38b 100644 --- a/packages/loot-core/src/server/aql/compiler.ts +++ b/packages/loot-core/src/server/aql/compiler.ts @@ -989,10 +989,21 @@ export function isAggregateQuery(queryState) { }); } -type SchemaConfig = { - tableViews?: Record | ((...args: unknown[]) => unknown); +export type SchemaConfig = { + tableViews?: + | Record + | ((name: string, config: { withDead; isJoin; tableOptions }) => unknown); tableFilters?: (name: string) => unknown[]; - customizeQuery?: (queryString: T) => T; + customizeQuery?: ( + queryString: T, + ) => T; + views?: Record< + string, + { + fields?: Record; + [key: `v_${string}`]: string | ((internalFields, publicFields) => string); + } + >; }; export function compileQuery( queryState, diff --git a/packages/loot-core/src/server/aql/exec.test.ts b/packages/loot-core/src/server/aql/exec.test.ts index 309f5d8af14..2dbee559e15 100644 --- a/packages/loot-core/src/server/aql/exec.test.ts +++ b/packages/loot-core/src/server/aql/exec.test.ts @@ -1,6 +1,6 @@ import { v4 as uuidv4 } from 'uuid'; -import query from '../../shared/query'; +import { q } from '../../shared/query'; import { makeChild } from '../../shared/transactions'; import * as db from '../db'; @@ -75,15 +75,13 @@ describe('runQuery', () => { await insertTransactions(); // date - let { data } = await runQuery( - query('transactions').select('date').serialize(), - ); + let { data } = await runQuery(q('transactions').select('date').serialize()); expect(data[0].date).toBe('2020-01-04'); // date-month data = ( await runQuery( - query('transactions') + q('transactions') .select({ month: { $month: '$date' } }) .serialize(), ) @@ -93,7 +91,7 @@ describe('runQuery', () => { // date-year data = ( await runQuery( - query('transactions') + q('transactions') .select({ year: { $year: '$date' } }) .serialize(), ) @@ -103,10 +101,7 @@ describe('runQuery', () => { // boolean data = ( await runQuery( - query('transactions') - .select(['is_child', 'is_parent']) - .raw() - .serialize(), + q('transactions').select(['is_child', 'is_parent']).raw().serialize(), ) ).data; expect(data[0].is_child).toBe(false); @@ -126,7 +121,7 @@ describe('runQuery', () => { }); let { data } = await runQuery( - query('transactions') + q('transactions') .filter({ amount: { $lt: { $neg: ':amount' } } }) .select() .serialize(), @@ -136,7 +131,7 @@ describe('runQuery', () => { data = ( await runQuery( - query('transactions') + q('transactions') .filter({ date: { $transform: '$month', $eq: { $month: ':month' } } }) .select('date') .serialize(), @@ -147,7 +142,7 @@ describe('runQuery', () => { data = ( await runQuery( - query('transactions') + q('transactions') .filter({ date: { $transform: '$year', $eq: { $year: ':month' } } }) .select('date') .serialize(), @@ -158,7 +153,7 @@ describe('runQuery', () => { data = ( await runQuery( - query('transactions') + q('transactions') .filter({ cleared: ':cleared' }) .select('date') .serialize(), @@ -184,7 +179,7 @@ describe('runQuery', () => { category: 'cat', }); - const queryState = query('transactions') + const queryState = q('transactions') .filter({ category: ':category' }) .select() .serialize(); @@ -206,7 +201,7 @@ describe('runQuery', () => { }); const { data } = await runQuery( - query('transactions') + q('transactions') .filter({ amount: { $lt: { $neg: ':amount' } }, date: [{ $lte: ':date' }, { $gte: ':date' }], @@ -226,7 +221,7 @@ describe('runQuery', () => { ids.sort(); const { data } = await runQuery( - query('transactions') + q('transactions') .filter({ id: { $oneof: repeat(ids, 1000) }, amount: { $lt: 50 } }) .select('id') .raw() diff --git a/packages/loot-core/src/server/aql/schema/executors.test.ts b/packages/loot-core/src/server/aql/schema/executors.test.ts index 3e588144f54..825ae8c94b2 100644 --- a/packages/loot-core/src/server/aql/schema/executors.test.ts +++ b/packages/loot-core/src/server/aql/schema/executors.test.ts @@ -2,7 +2,7 @@ import { setClock } from '@actual-app/crdt'; import fc from 'fast-check'; import * as arbs from '../../../mocks/arbitrary-schema'; -import query from '../../../shared/query'; +import { q } from '../../../shared/query'; import { groupById } from '../../../shared/util'; import * as db from '../../db'; import { batchMessages, setSyncingMode } from '../../sync/index'; @@ -139,7 +139,7 @@ describe('transaction executors', () => { await insertTransactions(arr); const { data } = await runQuery( - query('transactions') + q('transactions') .filter({ amount: { $lt: 0 } }) .select('*') .options({ splits: 'inline' }) @@ -150,7 +150,7 @@ describe('transaction executors', () => { expect(data.filter(t => t.tombstone).length).toBe(0); const { data: defaultData } = await runQuery( - query('transactions') + q('transactions') .filter({ amount: { $lt: 0 } }) .select('*') .serialize(), @@ -176,7 +176,7 @@ describe('transaction executors', () => { await insertTransactions(arr); const { data } = await runQuery( - query('transactions') + q('transactions') .filter({ amount: { $lt: 0 } }) .select('*') .options({ splits: 'none' }) @@ -200,7 +200,7 @@ describe('transaction executors', () => { async arr => { await insertTransactions(arr, payeeIds); - const aggQuery = query('transactions') + const aggQuery = q('transactions') .filter({ $or: [{ amount: { $lt: -5 } }, { amount: { $gt: -2 } }], 'payee.name': { $gt: '' }, @@ -346,7 +346,7 @@ describe('transaction executors', () => { // Even though we're applying some filters, these are always // guaranteed to return the full split transaction so they // should take the optimized path - const happyQuery = query('transactions') + const happyQuery = q('transactions') .filter({ date: { $gt: '2017-01-01' }, }) @@ -395,7 +395,7 @@ describe('transaction executors', () => { // Because why not? It should deduplicate them ids = repeat(ids, 100); - const unhappyQuery = query('transactions') + const unhappyQuery = q('transactions') .filter({ id: [{ $oneof: ids }], payee: { $gt: '' }, diff --git a/packages/loot-core/src/server/aql/schema/index.ts b/packages/loot-core/src/server/aql/schema/index.ts index 26af5205b07..1af6735bdc4 100644 --- a/packages/loot-core/src/server/aql/schema/index.ts +++ b/packages/loot-core/src/server/aql/schema/index.ts @@ -1,3 +1,5 @@ +import { SchemaConfig } from '../compiler'; + function f(type: string, opts?: Record) { return { type, ...opts }; } @@ -140,7 +142,7 @@ export const schema = { }, }; -export const schemaConfig = { +export const schemaConfig: SchemaConfig = { // Note: these views *must* represent the underlying table that we // are mapping here. The compiler makes optimizations with this // assumption diff --git a/packages/loot-core/src/server/budget/app.ts b/packages/loot-core/src/server/budget/app.ts index a7b5b23fc3e..7cca22aa5a5 100644 --- a/packages/loot-core/src/server/budget/app.ts +++ b/packages/loot-core/src/server/budget/app.ts @@ -7,7 +7,7 @@ import * as cleanupActions from './cleanup-template'; import * as goalActions from './goaltemplates'; import { BudgetHandlers } from './types/handlers'; -const app = createApp(); +export const app = createApp(); app.method('budget/budget-amount', mutator(undoable(actions.setBudget))); app.method( @@ -62,5 +62,3 @@ app.method( 'budget/set-carryover', mutator(undoable(actions.setCategoryCarryover)), ); - -export default app; diff --git a/packages/loot-core/src/server/budget/goals/goalsSchedule.ts b/packages/loot-core/src/server/budget/goals/goalsSchedule.ts index b311d5bcf9e..f71a0f7f379 100644 --- a/packages/loot-core/src/server/budget/goals/goalsSchedule.ts +++ b/packages/loot-core/src/server/budget/goals/goalsSchedule.ts @@ -8,82 +8,71 @@ import { } from '../../schedules/app'; import { isReflectBudget } from '../actions'; -export async function goalsSchedule( - scheduleFlag, - template_lines, - current_month, - balance, - remainder, - last_month_balance, - to_budget, - errors, - category, -) { - if (!scheduleFlag) { - scheduleFlag = true; - const template = template_lines.filter(t => t.type === 'schedule'); - //in the case of multiple templates per category, schedules may have wrong priority level - let t = []; - let totalScheduledGoal = 0; +async function createScheduleList(template, current_month, category) { + const t = []; + const errors = []; - for (let ll = 0; ll < template.length; ll++) { - const { id: sid, completed: complete } = await db.first( - 'SELECT * FROM schedules WHERE name = ?', - [template[ll].name], - ); - const rule = await getRuleForSchedule(sid); - const conditions = rule.serialize().conditions; - const { date: dateConditions, amount: amountCondition } = - extractScheduleConds(conditions); - const sign = category.is_income ? 1 : -1; - const target = - amountCondition.op === 'isbetween' - ? (sign * - Math.round( - amountCondition.value.num1 + amountCondition.value.num2, - )) / - 2 - : sign * amountCondition.value; - const next_date_string = getNextDate( - dateConditions, - monthUtils._parse(current_month), - ); - const target_interval = dateConditions.value.interval - ? dateConditions.value.interval - : 1; - const target_frequency = dateConditions.value.frequency; - const isRepeating = - Object(dateConditions.value) === dateConditions.value && - 'frequency' in dateConditions.value; - const num_months = monthUtils.differenceInCalendarMonths( - next_date_string, - current_month, - ); - const startDate = dateConditions.value.start ?? dateConditions.value; - const started = startDate <= monthUtils.addMonths(current_month, 1); + for (let ll = 0; ll < template.length; ll++) { + const { id: sid, completed: complete } = await db.first( + 'SELECT * FROM schedules WHERE name = ? AND tombstone = 0', + [template[ll].name], + ); + const rule = await getRuleForSchedule(sid); + const conditions = rule.serialize().conditions; + const { date: dateConditions, amount: amountCondition } = + extractScheduleConds(conditions); + const sign = category.is_income ? 1 : -1; + const target = + amountCondition.op === 'isbetween' + ? (sign * + Math.round( + amountCondition.value.num1 + amountCondition.value.num2, + )) / + 2 + : sign * amountCondition.value; + const next_date_string = getNextDate( + dateConditions, + monthUtils._parse(current_month), + ); + const target_interval = dateConditions.value.interval + ? dateConditions.value.interval + : 1; + const target_frequency = dateConditions.value.frequency; + const isRepeating = + Object(dateConditions.value) === dateConditions.value && + 'frequency' in dateConditions.value; + const num_months = monthUtils.differenceInCalendarMonths( + next_date_string, + current_month, + ); + if (num_months < 0) { + //non-repeating schedules could be negative + errors.push(`Schedule ${template[ll].name} is in the Past.`); + } else { t.push({ - template: template[ll], target, next_date_string, target_interval, target_frequency, num_months, completed: complete, - started, + //started, + full: template[ll].full === null ? false : template[ll].full, + repeat: isRepeating, + name: template[ll].name, }); - if (!complete && started) { + if (!complete) { if (isRepeating) { let monthlyTarget = 0; const nextMonth = monthUtils.addMonths( current_month, - t[ll].num_months + 1, + t[t.length - 1].num_months + 1, ); let nextBaseDate = getNextDate( dateConditions, monthUtils._parse(current_month), true, ); - let nextDate = dateConditions.value.skipWeekend ? monthUtils.dayFromDate( getDateWithSkippedWeekend( @@ -92,7 +81,6 @@ export async function goalsSchedule( ), ) : nextBaseDate; - while (nextDate < nextMonth) { monthlyTarget += -target; const currentDate = nextBaseDate; @@ -119,92 +107,129 @@ export async function goalsSchedule( break; } } - t[ll].target = -monthlyTarget; - totalScheduledGoal += target; + t[t.length - 1].target = -monthlyTarget; } } else { errors.push( - `Schedule ${t[ll].template.name} is not active during the month in question.`, + `Schedule ${t[ll].name} is not active during the month in question.`, ); } } + } + return { t: t.filter(c => c.completed === 0), errors }; +} - t = t.filter(t => t.completed === 0 && t.started); - t = t.sort((a, b) => b.target - a.target); +async function getPayMonthOfTotal(t) { + //return the contribution amounts of full or every month type schedules + let total = 0; + const schedules = t.filter(c => c.num_months === 0); + for (let ll = 0; ll < schedules.length; ll++) { + total += schedules[ll].target; + } + return total; +} - let increment = 0; - if (balance >= totalScheduledGoal) { - for (let ll = 0; ll < t.length; ll++) { - if (t[ll].num_months < 0) { - errors.push( - `Non-repeating schedule ${t[ll].template.name} was due on ${t[ll].next_date_string}, which is in the past.`, - ); - break; - } - if ( - (t[ll].template.full && t[ll].num_months === 0) || - t[ll].target_frequency === 'weekly' || - t[ll].target_frequency === 'daily' - ) { - increment += t[ll].target; - } else if (t[ll].template.full && t[ll].num_months > 0) { - increment += 0; - } else { - increment += t[ll].target / t[ll].target_interval; - } - } - } else if (balance < totalScheduledGoal) { - for (let ll = 0; ll < t.length; ll++) { - if (isReflectBudget()) { - if (!t[ll].template.full) { - errors.push( - `Report budgets require the full option for Schedules.`, - ); - break; - } - if (t[ll].template.full && t[ll].num_months === 0) { - to_budget += t[ll].target; - } - } - if (!isReflectBudget()) { - if (t[ll].num_months < 0) { - errors.push( - `Non-repeating schedule ${t[ll].template.name} was due on ${t[ll].next_date_string}, which is in the past.`, - ); - break; - } - if (t[ll].template.full && t[ll].num_months > 0) { - remainder = 0; - } else if (ll === 0 && !t[ll].template.full) { - remainder = t[ll].target - last_month_balance; - } else { - remainder = t[ll].target - remainder; - } - let tg = 0; - if (remainder >= 0) { - tg = remainder; - remainder = 0; - } else { - tg = 0; - remainder = Math.abs(remainder); - } - if ( - t[ll].template.full || - t[ll].num_months === 0 || - t[ll].target_frequency === 'weekly' || - t[ll].target_frequency === 'daily' - ) { - increment += tg; - } else if (t[ll].template.full && t[ll].num_months > 0) { - increment += 0; - } else { - increment += tg / (t[ll].num_months + 1); - } - } - } +async function getSinkingContributionTotal(t, remainder, last_month_balance) { + //return the contribution amount if there is a balance carried in the category + let total = 0; + for (let ll = 0; ll < t.length; ll++) { + remainder = + ll === 0 ? t[ll].target - last_month_balance : t[ll].target - remainder; + let tg = 0; + if (remainder >= 0) { + tg = remainder; + remainder = 0; + } else { + tg = 0; + remainder = Math.abs(remainder); + } + total += tg / (t[ll].num_months + 1); + } + return total; +} + +async function getSinkingBaseContributionTotal(t) { + //return only the base contribution of each schedule + let total = 0; + for (let ll = 0; ll < t.length; ll++) { + total += t[ll].target / t[ll].target_interval; + } + return total; +} + +async function getSinkingTotal(t) { + //sum the total of all upcoming schedules + let total = 0; + for (let ll = 0; ll < t.length; ll++) { + total += t[ll].target; + } + return total; +} + +export async function goalsSchedule( + scheduleFlag, + template_lines, + current_month, + balance, + remainder, + last_month_balance, + to_budget, + errors, + category, +) { + if (!scheduleFlag) { + scheduleFlag = true; + const template = template_lines.filter(t => t.type === 'schedule'); + //in the case of multiple templates per category, schedules may have wrong priority level + + const t = await createScheduleList(template, current_month, category); + errors = errors.concat(t.errors); + + const t_payMonthOf = t.t.filter( + c => + c.full || + (c.target_frequency === 'monthly' && + c.target_interval === 1 && + c.num_months === 0) || + (c.target_frequency === 'weekly' && + c.target_interval >= 0 && + c.num_months === 0) || + c.target_frequency === 'daily' || + isReflectBudget(), + ); + + const t_sinking = t.t + .filter( + c => + (!c.full && + c.target_frequency === 'monthly' && + c.target_interval > 1) || + (!c.full && + c.target_frequency === 'monthly' && + c.num_months > 0 && + c.target_interval === 1) || + (!c.full && c.target_frequency === 'yearly') || + (!c.full && c.target_frequency === undefined), + ) + .sort((a, b) => a.next_date_string.localeCompare(b.next_date_string)); + + const totalPayMonthOf = await getPayMonthOfTotal(t_payMonthOf); + + const totalSinking = await getSinkingTotal(t_sinking); + const totalSinkingBaseContribution = await getSinkingBaseContributionTotal( + t_sinking, + ); + + if (balance >= totalSinking + totalPayMonthOf) { + to_budget += Math.round(totalPayMonthOf + totalSinkingBaseContribution); + } else { + const totalSinkingContribution = await getSinkingContributionTotal( + t_sinking, + remainder, + last_month_balance, + ); + to_budget += Math.round(totalPayMonthOf + totalSinkingContribution); } - increment = Math.round(increment); - to_budget += increment; } return { to_budget, errors, remainder, scheduleFlag }; } diff --git a/packages/loot-core/src/server/filters/app.ts b/packages/loot-core/src/server/filters/app.ts index 3e3b5f62b77..6c528090de3 100644 --- a/packages/loot-core/src/server/filters/app.ts +++ b/packages/loot-core/src/server/filters/app.ts @@ -170,10 +170,8 @@ async function deleteFilter(id) { await db.delete_('transaction_filters', id); } -const app = createApp(); +export const app = createApp(); app.method('filter-create', mutator(createFilter)); app.method('filter-update', mutator(updateFilter)); app.method('filter-delete', mutator(undoable(deleteFilter))); - -export default app; diff --git a/packages/loot-core/src/server/importers/actual.ts b/packages/loot-core/src/server/importers/actual.ts index 69e5d178dd6..5f1d3041321 100644 --- a/packages/loot-core/src/server/importers/actual.ts +++ b/packages/loot-core/src/server/importers/actual.ts @@ -4,7 +4,7 @@ import * as cloudStorage from '../cloud-storage'; import { handlers } from '../main'; import { waitOnSpreadsheet } from '../sheet'; -export default async function importActual(_filepath: string, buffer: Buffer) { +export async function importActual(_filepath: string, buffer: Buffer) { // Importing Actual files is a special case because we can directly // write down the files, but because it doesn't go through the API // layer we need to duplicate some of the workflow diff --git a/packages/loot-core/src/server/importers/index.ts b/packages/loot-core/src/server/importers/index.ts index 41d5248ef56..a872e3e8d08 100644 --- a/packages/loot-core/src/server/importers/index.ts +++ b/packages/loot-core/src/server/importers/index.ts @@ -1,6 +1,6 @@ import { handlers } from '../main'; -import importActual from './actual'; +import { importActual } from './actual'; import * as YNAB4 from './ynab4'; import * as YNAB5 from './ynab5'; diff --git a/packages/loot-core/src/server/main-app.ts b/packages/loot-core/src/server/main-app.ts index e884b2332de..65c194a8220 100644 --- a/packages/loot-core/src/server/main-app.ts +++ b/packages/loot-core/src/server/main-app.ts @@ -4,10 +4,8 @@ import { Handlers } from '../types/handlers'; import { createApp } from './app'; // Main app -const app = createApp(); +export const app = createApp(); app.events.on('sync', info => { connection.send('sync-event', info); }); - -export default app; diff --git a/packages/loot-core/src/server/main.ts b/packages/loot-core/src/server/main.ts index 210f569b53c..662bac1a14c 100644 --- a/packages/loot-core/src/server/main.ts +++ b/packages/loot-core/src/server/main.ts @@ -8,11 +8,11 @@ import { captureException, captureBreadcrumb } from '../platform/exceptions'; import * as asyncStorage from '../platform/server/asyncStorage'; import * as connection from '../platform/server/connection'; import * as fs from '../platform/server/fs'; -import logger from '../platform/server/log'; +import { logger } from '../platform/server/log'; import * as sqlite from '../platform/server/sqlite'; import { isNonProductionEnvironment } from '../shared/environment'; import * as monthUtils from '../shared/months'; -import q, { Query } from '../shared/query'; +import { q, Query } from '../shared/query'; import { amountToInteger, stringToInteger } from '../shared/util'; import { Handlers } from '../types/handlers'; @@ -23,7 +23,7 @@ import { getStartingBalancePayee } from './accounts/payees'; import * as bankSync from './accounts/sync'; import * as rules from './accounts/transaction-rules'; import { batchUpdateTransactions } from './accounts/transactions'; -import installAPI from './api'; +import { installAPI } from './api'; import { runQuery as aqlQuery } from './aql'; import { getAvailableBackups, @@ -32,23 +32,23 @@ import { startBackupService, stopBackupService, } from './backups'; -import budgetApp from './budget/app'; +import { app as budgetApp } from './budget/app'; import * as budget from './budget/base'; import * as cloudStorage from './cloud-storage'; import * as db from './db'; import * as mappings from './db/mappings'; import * as encryption from './encryption'; import { APIError, TransactionError, PostError } from './errors'; -import filtersApp from './filters/app'; +import { app as filtersApp } from './filters/app'; import { handleBudgetImport } from './importers'; -import app from './main-app'; +import { app } from './main-app'; import { mutator, runHandler } from './mutators'; -import notesApp from './notes/app'; +import { app as notesApp } from './notes/app'; import * as Platform from './platform'; import { get, post } from './post'; import * as prefs from './prefs'; -import rulesApp from './rules/app'; -import schedulesApp from './schedules/app'; +import { app as rulesApp } from './rules/app'; +import { app as schedulesApp } from './schedules/app'; import { getServer, setServer } from './server-config'; import * as sheet from './sheet'; import { resolveName, unresolveName } from './spreadsheet/util'; @@ -63,7 +63,7 @@ import { repairSync, } from './sync'; import * as syncMigrations from './sync/migrate'; -import toolsApp from './tools/app'; +import { app as toolsApp } from './tools/app'; import { withUndo, clearUndo, undo, redo } from './undo'; import { updateVersion } from './update'; import { uniqueFileName, idFromFileName } from './util/budget-name'; @@ -1453,7 +1453,10 @@ handlers['save-global-prefs'] = async function (prefs) { } if ('autoUpdate' in prefs) { await asyncStorage.setItem('auto-update', '' + prefs.autoUpdate); - process.send({ type: 'shouldAutoUpdate', flag: prefs.autoUpdate }); + process.parentPort.postMessage({ + type: 'shouldAutoUpdate', + flag: prefs.autoUpdate, + }); } if ('documentDir' in prefs) { if (await fs.exists(prefs.documentDir)) { @@ -1775,14 +1778,11 @@ handlers['set-server-url'] = async function ({ url, validate = true }) { if (validate) { // Validate the server is running - const { error } = await runHandler( - handlers['subscribe-needs-bootstrap'], - { - url, - }, - ); - if (error) { - return { error }; + const result = await runHandler(handlers['subscribe-needs-bootstrap'], { + url, + }); + if ('error' in result) { + return { error: result.error }; } } } @@ -2340,7 +2340,7 @@ export async function initApp(isDev, socketName) { if (!isDev && !Platform.isMobile && !Platform.isWeb) { const autoUpdate = await asyncStorage.getItem('auto-update'); - process.send({ + process.parentPort.postMessage({ type: 'shouldAutoUpdate', flag: autoUpdate == null || autoUpdate === 'true', }); @@ -2398,7 +2398,10 @@ export async function init(config) { export const lib = { getDataDir: fs.getDataDir, sendMessage: (msg, args) => connection.send(msg, args), - send: async (name, args) => { + send: async ( + name: K, + args?: Parameters[0], + ): Promise>> => { const res = await runHandler(app.handlers[name], args); return res; }, diff --git a/packages/loot-core/src/server/mutators.ts b/packages/loot-core/src/server/mutators.ts index 3988e5c58f8..d7b60ea1e1c 100644 --- a/packages/loot-core/src/server/mutators.ts +++ b/packages/loot-core/src/server/mutators.ts @@ -1,6 +1,6 @@ import { captureException, captureBreadcrumb } from '../platform/exceptions'; import { sequential } from '../shared/async'; -import { type HandlerFunctions } from '../types/handlers'; +import { type HandlerFunctions, type Handlers } from '../types/handlers'; const runningMethods = new Set(); @@ -37,11 +37,11 @@ function wait(time) { return new Promise(resolve => setTimeout(resolve, time)); } -export async function runHandler( - handler, - args?, +export async function runHandler( + handler: T, + args?: Parameters[0], { undoTag, name }: { undoTag?; name? } = {}, -) { +): Promise> { // For debug reasons, track the latest handlers that have been // called _latestHandlerNames.push(name); diff --git a/packages/loot-core/src/server/notes/app.ts b/packages/loot-core/src/server/notes/app.ts index e410ab7f377..466ac86e1db 100644 --- a/packages/loot-core/src/server/notes/app.ts +++ b/packages/loot-core/src/server/notes/app.ts @@ -3,10 +3,8 @@ import * as db from '../db'; import { NotesHandlers } from './types/handlers'; -const app = createApp(); +export const app = createApp(); app.method('notes-save', async ({ id, note }) => { await db.update('notes', { id, note }); }); - -export default app; diff --git a/packages/loot-core/src/server/rules/app.ts b/packages/loot-core/src/server/rules/app.ts index a1de1d821d5..29675666da3 100644 --- a/packages/loot-core/src/server/rules/app.ts +++ b/packages/loot-core/src/server/rules/app.ts @@ -67,7 +67,7 @@ function validateRule(rule: Partial) { } // Expose functions to the client -const app = createApp(); +export const app = createApp(); app.method('rule-validate', async function (rule) { const error = validateRule(rule); @@ -153,5 +153,3 @@ app.method('rule-get', async function ({ id }) { app.method('rules-run', async function ({ transaction }) { return rules.runRules(transaction); }); - -export default app; diff --git a/packages/loot-core/src/server/schedules/app.test.ts b/packages/loot-core/src/server/schedules/app.test.ts index cee8b965711..1472633bcf8 100644 --- a/packages/loot-core/src/server/schedules/app.test.ts +++ b/packages/loot-core/src/server/schedules/app.test.ts @@ -1,6 +1,6 @@ import MockDate from 'mockdate'; -import q from '../../shared/query'; +import { q } from '../../shared/query'; import { loadRules, updateRule } from '../accounts/transaction-rules'; import { runQuery as aqlQuery } from '../aql'; import { loadMappings } from '../db/mappings'; diff --git a/packages/loot-core/src/server/schedules/app.ts b/packages/loot-core/src/server/schedules/app.ts index 6c4db056138..8b3cca93b5b 100644 --- a/packages/loot-core/src/server/schedules/app.ts +++ b/packages/loot-core/src/server/schedules/app.ts @@ -5,7 +5,7 @@ import { v4 as uuidv4 } from 'uuid'; import { captureBreadcrumb } from '../../platform/exceptions'; import * as connection from '../../platform/server/connection'; import { dayFromDate, currentDay, parseDate } from '../../shared/months'; -import q from '../../shared/query'; +import { q } from '../../shared/query'; import { extractScheduleConds, recurConfigToRSchedule, @@ -543,7 +543,7 @@ async function advanceSchedulesService(syncSuccess) { } // Expose functions to the client -const app = createApp(); +export const app = createApp(); app.method('schedule/create', mutator(undoable(createSchedule))); app.method('schedule/update', mutator(undoable(updateSchedule))); @@ -592,5 +592,3 @@ export function getDateWithSkippedWeekend( } return date; } - -export default app; diff --git a/packages/loot-core/src/server/schedules/find-schedules.ts b/packages/loot-core/src/server/schedules/find-schedules.ts index 6ac6e7999e7..9b7e76c3e31 100644 --- a/packages/loot-core/src/server/schedules/find-schedules.ts +++ b/packages/loot-core/src/server/schedules/find-schedules.ts @@ -2,7 +2,7 @@ import * as d from 'date-fns'; import { v4 as uuidv4 } from 'uuid'; import { dayFromDate, parseDate } from '../../shared/months'; -import q from '../../shared/query'; +import { q } from '../../shared/query'; import { getApproxNumberThreshold } from '../../shared/rules'; import { recurConfigToRSchedule } from '../../shared/schedules'; import { groupBy } from '../../shared/util'; diff --git a/packages/loot-core/src/server/schedules/types/handlers.ts b/packages/loot-core/src/server/schedules/types/handlers.ts index c15fb1479e8..293fcc24007 100644 --- a/packages/loot-core/src/server/schedules/types/handlers.ts +++ b/packages/loot-core/src/server/schedules/types/handlers.ts @@ -5,7 +5,7 @@ export interface SchedulesHandlers { schedule: { id?: string; name?: string; - post_transaction?: boolean; + posts_transaction?: boolean; }; conditions: unknown[]; }) => Promise; diff --git a/packages/loot-core/src/server/sheet.ts b/packages/loot-core/src/server/sheet.ts index 792b176a431..ebb4f743d9d 100644 --- a/packages/loot-core/src/server/sheet.ts +++ b/packages/loot-core/src/server/sheet.ts @@ -6,7 +6,7 @@ import { sheetForMonth } from '../shared/months'; import * as Platform from './platform'; import * as prefs from './prefs'; -import Spreadsheet from './spreadsheet/spreadsheet'; +import { Spreadsheet } from './spreadsheet/spreadsheet'; import { resolveName } from './spreadsheet/util'; let globalSheet: Spreadsheet; diff --git a/packages/loot-core/src/server/spreadsheet/graph-data-structure.ts b/packages/loot-core/src/server/spreadsheet/graph-data-structure.ts index 1ef929fee70..501a1339521 100644 --- a/packages/loot-core/src/server/spreadsheet/graph-data-structure.ts +++ b/packages/loot-core/src/server/spreadsheet/graph-data-structure.ts @@ -1,4 +1,4 @@ -function Graph() { +export function Graph() { const graph = { addNode, removeNode, @@ -120,5 +120,3 @@ function Graph() { return graph; } - -export default Graph; diff --git a/packages/loot-core/src/server/spreadsheet/spreadsheet.test.ts b/packages/loot-core/src/server/spreadsheet/spreadsheet.test.ts index f9cf6c970d6..e73cfa425ba 100644 --- a/packages/loot-core/src/server/spreadsheet/spreadsheet.test.ts +++ b/packages/loot-core/src/server/spreadsheet/spreadsheet.test.ts @@ -1,7 +1,7 @@ import { generateTransaction } from '../../mocks'; import * as db from '../db'; -import Spreadsheet from './spreadsheet'; +import { Spreadsheet } from './spreadsheet'; beforeEach(global.emptyDatabase()); diff --git a/packages/loot-core/src/server/spreadsheet/spreadsheet.ts b/packages/loot-core/src/server/spreadsheet/spreadsheet.ts index bdb57348057..5088a03e902 100644 --- a/packages/loot-core/src/server/spreadsheet/spreadsheet.ts +++ b/packages/loot-core/src/server/spreadsheet/spreadsheet.ts @@ -2,7 +2,7 @@ import mitt from 'mitt'; import { compileQuery, runCompiledQuery, schema, schemaConfig } from '../aql'; -import Graph from './graph-data-structure'; +import { Graph } from './graph-data-structure'; import { unresolveName, resolveName } from './util'; export type Node = { @@ -17,7 +17,7 @@ export type Node = { _dependencies?: string[]; }; -export default class Spreadsheet { +export class Spreadsheet { _meta; cacheBarrier; computeQueue; diff --git a/packages/loot-core/src/server/sync/index.ts b/packages/loot-core/src/server/sync/index.ts index 344ecfec2d0..f73eb3adb7d 100644 --- a/packages/loot-core/src/server/sync/index.ts +++ b/packages/loot-core/src/server/sync/index.ts @@ -9,14 +9,14 @@ import { import { captureException } from '../../platform/exceptions'; import * as asyncStorage from '../../platform/server/asyncStorage'; import * as connection from '../../platform/server/connection'; -import logger from '../../platform/server/log'; +import { logger } from '../../platform/server/log'; import { sequential, once } from '../../shared/async'; import { setIn, getIn } from '../../shared/util'; import { LocalPrefs } from '../../types/prefs'; import { triggerBudgetChanges, setType as setBudgetType } from '../budget/base'; import * as db from '../db'; import { PostError, SyncError } from '../errors'; -import app from '../main-app'; +import { app } from '../main-app'; import { runMutator } from '../mutators'; import { postBinary } from '../post'; import * as prefs from '../prefs'; @@ -28,9 +28,9 @@ import * as encoder from './encoder'; import { rebuildMerkleHash } from './repair'; import { isError } from './utils'; -export { default as makeTestMessage } from './make-test-message'; -export { default as resetSync } from './reset'; -export { default as repairSync } from './repair'; +export { makeTestMessage } from './make-test-message'; +export { resetSync } from './reset'; +export { repairSync } from './repair'; const FULL_SYNC_DELAY = 1000; let SYNCING_MODE = 'enabled'; diff --git a/packages/loot-core/src/server/sync/make-test-message.ts b/packages/loot-core/src/server/sync/make-test-message.ts index 7c864775933..bbafe573c0f 100644 --- a/packages/loot-core/src/server/sync/make-test-message.ts +++ b/packages/loot-core/src/server/sync/make-test-message.ts @@ -6,7 +6,7 @@ async function randomString() { return (await encryption.randomBytes(12)).toString(); } -export default async function makeTestMessage(keyId) { +export async function makeTestMessage(keyId) { const messagePb = new SyncProtoBuf.Message(); messagePb.setDataset(await randomString()); messagePb.setRow(await randomString()); diff --git a/packages/loot-core/src/server/sync/repair.ts b/packages/loot-core/src/server/sync/repair.ts index 1ec8fba70b2..e6c1e28fc94 100644 --- a/packages/loot-core/src/server/sync/repair.ts +++ b/packages/loot-core/src/server/sync/repair.ts @@ -23,7 +23,7 @@ export function rebuildMerkleHash(): { }; } -export default async function repairSync(): Promise { +export async function repairSync(): Promise { const rebuilt = rebuildMerkleHash(); const clock = getClock(); diff --git a/packages/loot-core/src/server/sync/reset.ts b/packages/loot-core/src/server/sync/reset.ts index 8a88c2abcea..4ad32a3129e 100644 --- a/packages/loot-core/src/server/sync/reset.ts +++ b/packages/loot-core/src/server/sync/reset.ts @@ -6,7 +6,7 @@ import * as db from '../db'; import { runMutator } from '../mutators'; import * as prefs from '../prefs'; -export default async function resetSync( +export async function resetSync( keyState?, ): Promise<{ error?: { reason: string; meta?: unknown } }> { if (!keyState) { diff --git a/packages/loot-core/src/server/sync/sync.property.test.ts b/packages/loot-core/src/server/sync/sync.property.test.ts index 346eb3f16ce..cbe5cefe01f 100644 --- a/packages/loot-core/src/server/sync/sync.property.test.ts +++ b/packages/loot-core/src/server/sync/sync.property.test.ts @@ -93,7 +93,8 @@ const baseTime = 1565374471903; const clientId1 = '80dd7da215247293'; const clientId2 = '90xU1sd5124329ac'; -function makeGen>({ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function makeGen>({ table, row, field, @@ -111,7 +112,7 @@ function makeGen>({ value, timestamp: jsc.integer(1000, 10000).smap( x => { - let clientId; + let clientId: string; switch (jsc.random(0, 1)) { case 0: clientId = clientId1; diff --git a/packages/loot-core/src/server/tools/app.ts b/packages/loot-core/src/server/tools/app.ts index e10e605ee3e..4363275df78 100644 --- a/packages/loot-core/src/server/tools/app.ts +++ b/packages/loot-core/src/server/tools/app.ts @@ -5,7 +5,7 @@ import { runMutator } from '../mutators'; import { ToolsHandlers } from './types/handlers'; -const app = createApp(); +export const app = createApp(); app.method('tools/fix-split-transactions', async () => { // 1. Check for child transactions that have a blank payee, and set @@ -59,5 +59,3 @@ app.method('tools/fix-split-transactions', async () => { numDeleted: deletedRows.length, }; }); - -export default app; diff --git a/packages/loot-core/src/shared/arithmetic.test.ts b/packages/loot-core/src/shared/arithmetic.test.ts index c0f5afa46c5..0475689b8dc 100644 --- a/packages/loot-core/src/shared/arithmetic.test.ts +++ b/packages/loot-core/src/shared/arithmetic.test.ts @@ -1,4 +1,4 @@ -import evalArithmetic from './arithmetic'; +import { evalArithmetic } from './arithmetic'; describe('arithmetic', () => { test('handles negative numbers', () => { diff --git a/packages/loot-core/src/shared/arithmetic.ts b/packages/loot-core/src/shared/arithmetic.ts index 2bf0eaa88b2..243afa7ed63 100644 --- a/packages/loot-core/src/shared/arithmetic.ts +++ b/packages/loot-core/src/shared/arithmetic.ts @@ -123,7 +123,7 @@ function evaluate(ast) { } } -export default function evalArithmetic(expression, defaultValue = null) { +export function evalArithmetic(expression, defaultValue = null) { // An empty expression always evals to the default if (expression === '') { return defaultValue; diff --git a/packages/loot-core/src/shared/query.ts b/packages/loot-core/src/shared/query.ts index b54ab392f49..1bd35e101d2 100644 --- a/packages/loot-core/src/shared/query.ts +++ b/packages/loot-core/src/shared/query.ts @@ -132,6 +132,6 @@ export function getPrimaryOrderBy(query, defaultOrderBy) { return { field, order: firstOrder[field] }; } -export default function q(table) { +export function q(table) { return new Query({ table }); } diff --git a/packages/loot-core/src/shared/rules.ts b/packages/loot-core/src/shared/rules.ts index 0bab72945b7..aa0b855329c 100644 --- a/packages/loot-core/src/shared/rules.ts +++ b/packages/loot-core/src/shared/rules.ts @@ -41,6 +41,7 @@ export const FIELD_TYPES = new Map( category: 'id', account: 'id', cleared: 'boolean', + reconciled: 'boolean', saved: 'saved', }), ); diff --git a/packages/loot-core/src/shared/schedules.ts b/packages/loot-core/src/shared/schedules.ts index 213e25af9bd..52d2e0092dd 100644 --- a/packages/loot-core/src/shared/schedules.ts +++ b/packages/loot-core/src/shared/schedules.ts @@ -1,7 +1,7 @@ import type { IRuleOptions } from '@rschedule/core'; import * as monthUtils from './months'; -import q from './query'; +import { q } from './query'; export function getStatus(nextDate, completed, hasTrans) { const today = monthUtils.currentDay(); diff --git a/packages/loot-core/src/types/api-handlers.d.ts b/packages/loot-core/src/types/api-handlers.d.ts index 71bc1530666..c4e8c2b11b8 100644 --- a/packages/loot-core/src/types/api-handlers.d.ts +++ b/packages/loot-core/src/types/api-handlers.d.ts @@ -59,7 +59,12 @@ export interface ApiHandlers { transactions; }) => Promise; - 'api/transactions-add': (arg: { accountId; transactions }) => Promise<'ok'>; + 'api/transactions-add': (arg: { + accountId; + transactions; + runTransfers?: boolean; + learnCategories?: boolean; + }) => Promise<'ok'>; 'api/transactions-get': (arg: { accountId; @@ -74,9 +79,11 @@ export interface ApiHandlers { 'api/transaction-delete': (arg: { id }) => Promise; - 'api/accounts-get': () => Promise; + 'api/sync': () => Promise; + + 'api/accounts-get': () => Promise; - 'api/account-create': (arg: { account; initialBalance }) => Promise; + 'api/account-create': (arg: { account; initialBalance? }) => Promise; 'api/account-update': (arg: { id; fields }) => Promise; @@ -90,9 +97,11 @@ export interface ApiHandlers { 'api/account-delete': (arg: { id }) => Promise; - 'api/categories-get': (arg: { grouped }) => Promise; + 'api/categories-get': (arg: { + grouped; + }) => Promise | Array>; - 'api/category-group-create': (arg: { group }) => Promise; + 'api/category-group-create': (arg: { group }) => Promise; 'api/category-group-update': (arg: { id; fields }) => Promise; @@ -101,15 +110,15 @@ export interface ApiHandlers { transferCategoryId; }) => Promise; - 'api/category-create': (arg: { category }) => Promise; + 'api/category-create': (arg: { category }) => Promise; 'api/category-update': (arg: { id; fields }) => Promise; 'api/category-delete': (arg: { id; transferCategoryId }) => Promise; - 'api/payees-get': () => Promise; + 'api/payees-get': () => Promise; - 'api/payee-create': (arg: { payee }) => Promise; + 'api/payee-create': (arg: { payee }) => Promise; 'api/payee-update': (arg: { id; fields }) => Promise; diff --git a/packages/loot-core/src/types/models/category-group.d.ts b/packages/loot-core/src/types/models/category-group.d.ts index 4225ad68387..19dfeab5693 100644 --- a/packages/loot-core/src/types/models/category-group.d.ts +++ b/packages/loot-core/src/types/models/category-group.d.ts @@ -1,3 +1,5 @@ +import { CategoryEntity } from './category'; + export interface CategoryGroupEntity { id?: string; name: string; diff --git a/packages/loot-core/src/types/server-handlers.d.ts b/packages/loot-core/src/types/server-handlers.d.ts index f5863125145..00e48beb1c1 100644 --- a/packages/loot-core/src/types/server-handlers.d.ts +++ b/packages/loot-core/src/types/server-handlers.d.ts @@ -5,13 +5,16 @@ import { Backup } from '../server/backups'; import { RemoteFile } from '../server/cloud-storage'; import { Node as SpreadsheetNode } from '../server/spreadsheet/spreadsheet'; import { Message } from '../server/sync'; +import { QueryState } from '../shared/query'; +import { Budget } from './budget'; import { AccountEntity, CategoryEntity, CategoryGroupEntity, GoCardlessToken, GoCardlessInstitution, + PayeeEntity, } from './models'; import { EmptyObject } from './util'; @@ -31,8 +34,6 @@ export interface ServerHandlers { 'transaction-add': (transaction) => Promise; - 'transaction-add': (transaction) => Promise; - 'transaction-delete': (transaction) => Promise; 'transactions-parse-file': (arg: { @@ -47,7 +48,7 @@ export interface ServerHandlers { payees; }) => Promise; - 'transactions-export-query': (arg: { query: queryState }) => Promise; + 'transactions-export-query': (arg: { query: QueryState }) => Promise; 'get-categories': () => Promise<{ grouped: Array; @@ -77,20 +78,20 @@ export interface ServerHandlers { 'category-create': (arg: { name; groupId; - isIncome; - hidden: boolean; - }) => Promise; + isIncome?; + hidden?: boolean; + }) => Promise; 'category-update': (category) => Promise; 'category-move': (arg: { id; groupId; targetId }) => Promise; - 'category-delete': (arg: { id; transferId }) => Promise<{ error?: string }>; + 'category-delete': (arg: { id; transferId? }) => Promise<{ error?: string }>; 'category-group-create': (arg: { name; isIncome?: boolean; - }) => Promise; + }) => Promise; 'category-group-update': (group) => Promise; @@ -100,7 +101,7 @@ export interface ServerHandlers { 'must-category-transfer': (arg: { id }) => Promise; - 'payee-create': (arg: { name }) => Promise; + 'payee-create': (arg: { name }) => Promise; 'payees-get': () => Promise; @@ -169,7 +170,7 @@ export interface ServerHandlers { institution; publicToken; accountIds; - offbudgetIds; + offbudgetIds?; }) => Promise; 'gocardless-accounts-connect': (arg: { @@ -181,7 +182,7 @@ export interface ServerHandlers { 'account-create': (arg: { name: string; - balance: number; + balance?: number; offBudget?: boolean; closed?: 0 | 1; }) => Promise; @@ -201,7 +202,7 @@ export interface ServerHandlers { 'poll-web-token-stop': () => Promise<'ok'>; - 'accounts-sync': (arg: { id }) => Promise<{ + 'accounts-sync': (arg: { id? }) => Promise<{ errors: unknown; newTransactions: unknown; matchedTransactions: unknown; @@ -261,10 +262,7 @@ export interface ServerHandlers { 'make-plaid-public-token': (arg: { bankId; - }) => Promise< - | { error: ''; code: data.error_code; type: data.error_type } - | { linkToken: data.link_token } - >; + }) => Promise<{ error: ''; code; type } | { linkToken }>; 'save-global-prefs': (prefs) => Promise<'ok'>; @@ -289,9 +287,9 @@ export interface ServerHandlers { 'get-did-bootstrap': () => Promise; - 'subscribe-needs-bootstrap': ( - args: { url } = {}, - ) => Promise< + 'subscribe-needs-bootstrap': (args: { + url; + }) => Promise< { error: string } | { bootstrapped: unknown; hasServer: boolean } >; @@ -327,7 +325,7 @@ export interface ServerHandlers { 'reset-budget-cache': () => Promise; - 'upload-budget': (arg: { id } = {}) => Promise<{ error?: string }>; + 'upload-budget': (arg: { id }) => Promise<{ error?: string }>; 'download-budget': (arg: { fileId; replace? }) => Promise<{ error; id }>; diff --git a/packages/loot-core/webpack/webpack.desktop.config.js b/packages/loot-core/webpack/webpack.desktop.config.js index a0f9b2c6dc2..b1df8510040 100644 --- a/packages/loot-core/webpack/webpack.desktop.config.js +++ b/packages/loot-core/webpack/webpack.desktop.config.js @@ -28,14 +28,7 @@ module.exports = { 'pegjs', ], }, - externals: [ - 'better-sqlite3', - 'electron-log', - 'node-fetch', - 'node-libofx', - 'ws', - 'fs', - ], + externals: ['better-sqlite3', 'electron-log', 'node-fetch', 'node-libofx'], plugins: [ new webpack.IgnorePlugin({ resourceRegExp: /original-fs/, diff --git a/packages/node-libofx/ffi.js b/packages/node-libofx/ffi.js index d2d38a01baf..5c4cc705f9a 100644 --- a/packages/node-libofx/ffi.js +++ b/packages/node-libofx/ffi.js @@ -1,4 +1,4 @@ -function create(libofx) { +export function create(libofx) { return { init: libofx.cwrap('init', null, ['number']), debug: libofx.cwrap('debug', null, []), @@ -34,5 +34,3 @@ function create(libofx) { ]), }; } - -export default create; diff --git a/packages/node-libofx/index.js b/packages/node-libofx/index.js index 8c8939325bf..59cdf5424ef 100644 --- a/packages/node-libofx/index.js +++ b/packages/node-libofx/index.js @@ -1,4 +1,4 @@ -import createFFI from './ffi'; +import { create as createFFI } from './ffi'; import libofxWrapper from './libofx'; let _libofxPromise; diff --git a/tsconfig.json b/tsconfig.json index 844bcaf11c4..e3c8887b301 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,11 +15,11 @@ "downlevelIteration": true, // TODO: enable once every file is ts // "strict": true, - // TODO: enable once the violations are fixed - // "strictFunctionTypes": true, + "strictFunctionTypes": true, "noFallthroughCasesInSwitch": true, "skipLibCheck": true, "jsx": "preserve", + "types": ["vite/client", "jest"], // Check JS files too "allowJs": true, "checkJs": false, diff --git a/upcoming-release-notes/1899.md b/upcoming-release-notes/1899.md deleted file mode 100644 index 107fbae012f..00000000000 --- a/upcoming-release-notes/1899.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Features -authors: [jfdoming] ---- - -Add end date/max occurrences field to schedules, useful for things like installments diff --git a/upcoming-release-notes/1906.md b/upcoming-release-notes/1906.md deleted file mode 100644 index 32868386f15..00000000000 --- a/upcoming-release-notes/1906.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Enhancements -authors: [spezzino] ---- - -Add support for automatic theme switching based on system theme \ No newline at end of file diff --git a/upcoming-release-notes/1964.md b/upcoming-release-notes/1964.md deleted file mode 100644 index 16d45249fb9..00000000000 --- a/upcoming-release-notes/1964.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Enhancements -authors: [joel-jeremy] ---- - -Category and group menu/modal in the mobile budget page to manage categories/groups and their notes. diff --git a/upcoming-release-notes/1988.md b/upcoming-release-notes/1988.md deleted file mode 100644 index 8943ac21619..00000000000 --- a/upcoming-release-notes/1988.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Enhancements -authors: [carkom] ---- - -Data loading performance improvements for custom reports \ No newline at end of file diff --git a/upcoming-release-notes/1991.md b/upcoming-release-notes/1991.md deleted file mode 100644 index 5fa4b94bddd..00000000000 --- a/upcoming-release-notes/1991.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Maintenance -authors: [twk3] ---- - -Add some initial api tests for budgets and accounts diff --git a/upcoming-release-notes/2002.md b/upcoming-release-notes/2002.md deleted file mode 100644 index de2fc7cba3d..00000000000 --- a/upcoming-release-notes/2002.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Bugfix -authors: [kymckay] ---- - -Prevent deleted categories blocking creation of new categories with the same name. diff --git a/upcoming-release-notes/2004.md b/upcoming-release-notes/2004.md deleted file mode 100644 index 0ff9d19d9bf..00000000000 --- a/upcoming-release-notes/2004.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Maintenance -authors: [MikesGlitch] ---- - -Convert BudgetTotals, GoCardlessLink, Import, WelcomeScreen components to Typescript. diff --git a/upcoming-release-notes/2005.md b/upcoming-release-notes/2005.md deleted file mode 100644 index e3c96ee60e9..00000000000 --- a/upcoming-release-notes/2005.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Maintenance -authors: [lucasboebel] ---- - -Maintenance: Update CashFlow.js to use typescript diff --git a/upcoming-release-notes/2007.md b/upcoming-release-notes/2007.md deleted file mode 100644 index cb0aa92f926..00000000000 --- a/upcoming-release-notes/2007.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Maintenance -authors: [ameekSinghUniversityAcc] ---- - -Migrating the DateRange and UseReport files to typescript diff --git a/upcoming-release-notes/2008.md b/upcoming-release-notes/2008.md deleted file mode 100644 index 2d170fd6cc3..00000000000 --- a/upcoming-release-notes/2008.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Bugfix -authors: [vishnukaushik] ---- - -Fix filter Amount formatting issue \ No newline at end of file diff --git a/upcoming-release-notes/2009.md b/upcoming-release-notes/2009.md deleted file mode 100644 index 43b60f981d9..00000000000 --- a/upcoming-release-notes/2009.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Maintenance -authors: [ghosetuhin] ---- - -Migrating the util.js and chartTheme.js files to typescript \ No newline at end of file diff --git a/upcoming-release-notes/2023.md b/upcoming-release-notes/2023.md deleted file mode 100644 index d75b90fdac5..00000000000 --- a/upcoming-release-notes/2023.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Maintenance -authors: [MatissJanis] ---- - -Added more strict typings to `utils.ts` and some of its dependencies diff --git a/upcoming-release-notes/2025.md b/upcoming-release-notes/2025.md deleted file mode 100644 index 2571d0a9427..00000000000 --- a/upcoming-release-notes/2025.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Maintenance -authors: [MikesGlitch] ---- - -Adding aria-labels to some buttons for greater accessibility diff --git a/upcoming-release-notes/2029.md b/upcoming-release-notes/2029.md deleted file mode 100644 index 68c09ee2a46..00000000000 --- a/upcoming-release-notes/2029.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Maintenance -authors: [MatissJanis] ---- - -Enable `react/no-children-prop` rule and fix the issues diff --git a/upcoming-release-notes/2031.md b/upcoming-release-notes/2031.md deleted file mode 100644 index cd7fa53c60a..00000000000 --- a/upcoming-release-notes/2031.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Bugfix -authors: [joel-jeremy] ---- - -Fix bulk edit field modal in desktop diff --git a/upcoming-release-notes/2032.md b/upcoming-release-notes/2032.md deleted file mode 100644 index 3d2ca382bba..00000000000 --- a/upcoming-release-notes/2032.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Maintenance -authors: [joel-jeremy] ---- - -Apply eslint prefer-const rule to loot-core server files. diff --git a/upcoming-release-notes/2036.md b/upcoming-release-notes/2036.md deleted file mode 100644 index 913201b7303..00000000000 --- a/upcoming-release-notes/2036.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Maintenance -authors: [twk3] ---- - -Add api tests for categories and category groups diff --git a/upcoming-release-notes/2046.md b/upcoming-release-notes/2046.md deleted file mode 100644 index 8ac334a1eee..00000000000 --- a/upcoming-release-notes/2046.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Enhancements -authors: [carkom] ---- - -Adding typescript to custom report files and small functional changes. \ No newline at end of file diff --git a/upcoming-release-notes/2056.md b/upcoming-release-notes/2056.md new file mode 100644 index 00000000000..6ddbe6a8396 --- /dev/null +++ b/upcoming-release-notes/2056.md @@ -0,0 +1,6 @@ +--- +category: Enhancements +authors: [HansiWursti] +--- + +Added cleared and uncleared Balances to Account Mobile View \ No newline at end of file diff --git a/upcoming-release-notes/2062.md b/upcoming-release-notes/2062.md deleted file mode 100644 index c8cb99f6039..00000000000 --- a/upcoming-release-notes/2062.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Enhancements -authors: [iOSLife] ---- - -Adds a property to the returned items in the API for category and categoryGroup to inform if it is hidden. \ No newline at end of file diff --git a/upcoming-release-notes/2065.md b/upcoming-release-notes/2065.md deleted file mode 100644 index 873d58604ec..00000000000 --- a/upcoming-release-notes/2065.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Maintenance -authors: [MatissJanis] ---- - -Fixing TypeScript issues when enabling `strictFunctionTypes`. diff --git a/upcoming-release-notes/2067.md b/upcoming-release-notes/2067.md deleted file mode 100644 index 72b9a7d05f0..00000000000 --- a/upcoming-release-notes/2067.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Enhancements -authors: [carkom] ---- - -Adding types for future typescript changes. diff --git a/upcoming-release-notes/2068.md b/upcoming-release-notes/2068.md deleted file mode 100644 index a4afd516438..00000000000 --- a/upcoming-release-notes/2068.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Features -authors: [joel-jeremy] ---- - -Mobile split transactions diff --git a/upcoming-release-notes/2069.md b/upcoming-release-notes/2069.md deleted file mode 100644 index e8b1f4db822..00000000000 --- a/upcoming-release-notes/2069.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Enhancements -authors: [carkom] ---- - -Updating variable naming for custom reports page. \ No newline at end of file diff --git a/upcoming-release-notes/2066.md b/upcoming-release-notes/2072.md similarity index 95% rename from upcoming-release-notes/2066.md rename to upcoming-release-notes/2072.md index 6ff11102d47..edad616bb1f 100644 --- a/upcoming-release-notes/2066.md +++ b/upcoming-release-notes/2072.md @@ -3,4 +3,4 @@ category: Maintenance authors: [MatissJanis] --- -Fixing TypeScript issues when enabling `strictFunctionTypes` (pt.2). +Fixing TypeScript issues when enabling `strictFunctionTypes` (pt.5). diff --git a/upcoming-release-notes/2073.md b/upcoming-release-notes/2073.md deleted file mode 100644 index ec82b1108c5..00000000000 --- a/upcoming-release-notes/2073.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Enhancements -authors: [IzStriker] ---- - -Migrate tooltips.js to typescript diff --git a/upcoming-release-notes/2074.md b/upcoming-release-notes/2074.md deleted file mode 100644 index 665f73d21bb..00000000000 --- a/upcoming-release-notes/2074.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Maintenance -authors: [MatissJanis] ---- - -ci: add helpful bot comments if CI jobs fail. diff --git a/upcoming-release-notes/2078.md b/upcoming-release-notes/2078.md deleted file mode 100644 index 56a60e0b50b..00000000000 --- a/upcoming-release-notes/2078.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Enhancements -authors: [carkom] ---- - -Enable Legend for custom reports. diff --git a/upcoming-release-notes/2080.md b/upcoming-release-notes/2080.md deleted file mode 100644 index c43aa923abc..00000000000 --- a/upcoming-release-notes/2080.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Enhancements -authors: [carkom] ---- - -Add live/static choice for date filters. diff --git a/upcoming-release-notes/2034.md b/upcoming-release-notes/2081.md similarity index 50% rename from upcoming-release-notes/2034.md rename to upcoming-release-notes/2081.md index 82aadd8c442..7f85c275938 100644 --- a/upcoming-release-notes/2034.md +++ b/upcoming-release-notes/2081.md @@ -3,4 +3,4 @@ category: Maintenance authors: [joel-jeremy] --- -Apply ESLint prefer-const on components folder part 2 +Refactored MobileBudget component to TypeScript diff --git a/upcoming-release-notes/2082.md b/upcoming-release-notes/2082.md deleted file mode 100644 index e27bde08a46..00000000000 --- a/upcoming-release-notes/2082.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Enhancements -authors: [joel-jeremy] ---- - -Add left and right margin to modals. diff --git a/upcoming-release-notes/2084.md b/upcoming-release-notes/2084.md new file mode 100644 index 00000000000..e008c0c482c --- /dev/null +++ b/upcoming-release-notes/2084.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [twk3] +--- + +Switch desktop-client to the Vite JS framework. diff --git a/upcoming-release-notes/2085.md b/upcoming-release-notes/2085.md deleted file mode 100644 index 5f3fefcdb98..00000000000 --- a/upcoming-release-notes/2085.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Bugfix -authors: [carkom] ---- - -Realign and fix header/totals row for table graph in custom reports diff --git a/upcoming-release-notes/2092.md b/upcoming-release-notes/2092.md deleted file mode 100644 index a09e8c46a7b..00000000000 --- a/upcoming-release-notes/2092.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Bugfix -authors: [HansiWursti] ---- - -Fix background color when pinning sidebar (Issue [#2089](https://github.com/actualbudget/actual/issues/2089)) diff --git a/upcoming-release-notes/2093.md b/upcoming-release-notes/2093.md deleted file mode 100644 index 995e6d68e92..00000000000 --- a/upcoming-release-notes/2093.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Bugfix -authors: [HansiWursti] ---- - -Fix missing divider bar issue [#1878](https://github.com/actualbudget/actual/issues/1878) diff --git a/upcoming-release-notes/2094.md b/upcoming-release-notes/2094.md deleted file mode 100644 index 8b11d74b738..00000000000 --- a/upcoming-release-notes/2094.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Enhancements -authors: [carkom] ---- - -Custom reports: Convert the view options (legend/summary/labels) to global preferences that apply to all graphs. \ No newline at end of file diff --git a/upcoming-release-notes/2096.md b/upcoming-release-notes/2096.md deleted file mode 100644 index ee37321c4a8..00000000000 --- a/upcoming-release-notes/2096.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Bugfix -authors: [MatissJanis] ---- - -Fix category spending report (experimental) not loading [#1981](https://github.com/actualbudget/actual/issues/1981) diff --git a/upcoming-release-notes/2098.md b/upcoming-release-notes/2098.md deleted file mode 100644 index fcfa29d54d6..00000000000 --- a/upcoming-release-notes/2098.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Enhancements -authors: [carkom] ---- - -Changing the view and functions for donut graph in custom reports. diff --git a/upcoming-release-notes/2099.md b/upcoming-release-notes/2099.md deleted file mode 100644 index 6482c922b5e..00000000000 --- a/upcoming-release-notes/2099.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Bugfix -authors: [youngcw] ---- - -[Goals]: Fix over budget condition with using apply instead of overwrite diff --git a/upcoming-release-notes/2100.md b/upcoming-release-notes/2100.md deleted file mode 100644 index 228149363a8..00000000000 --- a/upcoming-release-notes/2100.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Bugfix -authors: [youngcw] ---- - -Goals: Don't run templates on non-hidden categories inside of hidden groups diff --git a/upcoming-release-notes/2102.md b/upcoming-release-notes/2102.md new file mode 100644 index 00000000000..a632e1dd315 --- /dev/null +++ b/upcoming-release-notes/2102.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [shall0pass] +--- + +Goals: Refactor schedules file into functions and improve the readability of the code. \ No newline at end of file diff --git a/upcoming-release-notes/2108.md b/upcoming-release-notes/2108.md new file mode 100644 index 00000000000..6fbaec594be --- /dev/null +++ b/upcoming-release-notes/2108.md @@ -0,0 +1,6 @@ +--- +category: Enhancements +authors: [davidkus] +--- + +Adding filter for reconciled transactions. diff --git a/upcoming-release-notes/2111.md b/upcoming-release-notes/2111.md deleted file mode 100644 index 3da51c67cb9..00000000000 --- a/upcoming-release-notes/2111.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Maintenance -authors: [MatissJanis] ---- - -eslint: disallow unnecessary curly braces diff --git a/upcoming-release-notes/2112.md b/upcoming-release-notes/2112.md deleted file mode 100644 index ed16eda983c..00000000000 --- a/upcoming-release-notes/2112.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Maintenance -authors: [MatissJanis] ---- - -TypeScript: moving `DeleteFile` component to TS diff --git a/upcoming-release-notes/1993.md b/upcoming-release-notes/2115.md similarity index 60% rename from upcoming-release-notes/1993.md rename to upcoming-release-notes/2115.md index ea16e7de6e4..6de51450c3c 100644 --- a/upcoming-release-notes/1993.md +++ b/upcoming-release-notes/2115.md @@ -3,4 +3,4 @@ category: Maintenance authors: [joel-jeremy] --- -Use Page component for mobile pages +eslint: no default exports diff --git a/upcoming-release-notes/2113.md b/upcoming-release-notes/2116.md similarity index 54% rename from upcoming-release-notes/2113.md rename to upcoming-release-notes/2116.md index b78ebabc777..56222efbc89 100644 --- a/upcoming-release-notes/2113.md +++ b/upcoming-release-notes/2116.md @@ -3,4 +3,4 @@ category: Maintenance authors: [joel-jeremy] --- -Enable prefer-const ESLint rule project-wide +eslint: no default exports - part 2 diff --git a/upcoming-release-notes/2033.md b/upcoming-release-notes/2117.md similarity index 50% rename from upcoming-release-notes/2033.md rename to upcoming-release-notes/2117.md index afd0770965a..d8ccbfa0d5c 100644 --- a/upcoming-release-notes/2033.md +++ b/upcoming-release-notes/2117.md @@ -3,4 +3,4 @@ category: Maintenance authors: [joel-jeremy] --- -Apply ESLint prefer-const on components folder part 1 +eslint: no default exports - part 3 diff --git a/upcoming-release-notes/2118.md b/upcoming-release-notes/2118.md new file mode 100644 index 00000000000..8a5ec768c03 --- /dev/null +++ b/upcoming-release-notes/2118.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [joel-jeremy] +--- + +eslint: no default exports - part 4 diff --git a/upcoming-release-notes/2119.md b/upcoming-release-notes/2119.md new file mode 100644 index 00000000000..ae00aaa06e5 --- /dev/null +++ b/upcoming-release-notes/2119.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [joel-jeremy] +--- + +eslint: no default exports - part 5 diff --git a/upcoming-release-notes/2120.md b/upcoming-release-notes/2120.md new file mode 100644 index 00000000000..c2ae64aecdc --- /dev/null +++ b/upcoming-release-notes/2120.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [joel-jeremy] +--- + +eslint: no default exports - part 6 diff --git a/upcoming-release-notes/2125.md b/upcoming-release-notes/2125.md deleted file mode 100644 index 0197a4b53a3..00000000000 --- a/upcoming-release-notes/2125.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Bugfix -authors: [mk-french] ---- - -Goals: Negate schedule amount to budget if income diff --git a/upcoming-release-notes/2127.md b/upcoming-release-notes/2127.md deleted file mode 100644 index d217cfebb58..00000000000 --- a/upcoming-release-notes/2127.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Bugfix -authors: [mk-french] ---- - -Fix update transaction API bug diff --git a/upcoming-release-notes/2132.md b/upcoming-release-notes/2132.md new file mode 100644 index 00000000000..78a90f225e0 --- /dev/null +++ b/upcoming-release-notes/2132.md @@ -0,0 +1,6 @@ +--- +category: Bugfix +authors: [jasonmichalski] +--- + +Fix net worth graph to show more detail in compact card view diff --git a/upcoming-release-notes/2134.md b/upcoming-release-notes/2134.md new file mode 100644 index 00000000000..de428dbadd1 --- /dev/null +++ b/upcoming-release-notes/2134.md @@ -0,0 +1,6 @@ +--- +category: Enhancements +authors: [Jackenmen] +--- + +Ask for confirmation when editing date of a locked transaction diff --git a/upcoming-release-notes/2064.md b/upcoming-release-notes/2136.md similarity index 51% rename from upcoming-release-notes/2064.md rename to upcoming-release-notes/2136.md index 058182970f6..90a5e66c3b6 100644 --- a/upcoming-release-notes/2064.md +++ b/upcoming-release-notes/2136.md @@ -3,4 +3,4 @@ category: Maintenance authors: [twk3] --- -Cleanup older unused version of react-router +TypeScript: Add proper types to runHandler diff --git a/upcoming-release-notes/2138.md b/upcoming-release-notes/2138.md new file mode 100644 index 00000000000..9fd1d8b80bf --- /dev/null +++ b/upcoming-release-notes/2138.md @@ -0,0 +1,6 @@ +--- +category: Enhancements +authors: [kstockk] +--- + +Add cleared column in csv export diff --git a/upcoming-release-notes/2140.md b/upcoming-release-notes/2140.md deleted file mode 100644 index 91b0355db3e..00000000000 --- a/upcoming-release-notes/2140.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: Bugfix -authors: [MatissJanis] ---- - -Fix imported transactions overriding reconciled (locked) transaction data diff --git a/upcoming-release-notes/2070.md b/upcoming-release-notes/2142.md similarity index 95% rename from upcoming-release-notes/2070.md rename to upcoming-release-notes/2142.md index f04d8bd7ac7..e443cc99adc 100644 --- a/upcoming-release-notes/2070.md +++ b/upcoming-release-notes/2142.md @@ -3,4 +3,4 @@ category: Maintenance authors: [MatissJanis] --- -Fixing TypeScript issues when enabling `strictFunctionTypes` (pt.3). +Fixing TypeScript issues when enabling `strictFunctionTypes` (pt.4). diff --git a/upcoming-release-notes/2144.md b/upcoming-release-notes/2144.md new file mode 100644 index 00000000000..d03b7b0ce7d --- /dev/null +++ b/upcoming-release-notes/2144.md @@ -0,0 +1,6 @@ +--- +category: Bugfix +authors: [jasonmichalski] +--- + +Fix when pressing Enter adds an extra split transaction when no split remains diff --git a/upcoming-release-notes/2048.md b/upcoming-release-notes/2153.md similarity index 50% rename from upcoming-release-notes/2048.md rename to upcoming-release-notes/2153.md index fa8554f6096..8fab8116d45 100644 --- a/upcoming-release-notes/2048.md +++ b/upcoming-release-notes/2153.md @@ -3,4 +3,4 @@ category: Maintenance authors: [carkom] --- -Fixes and updates to dark theme colors. +Reorganize tableGraph files for custom reports. diff --git a/upcoming-release-notes/2163.md b/upcoming-release-notes/2163.md new file mode 100644 index 00000000000..2d7313306ba --- /dev/null +++ b/upcoming-release-notes/2163.md @@ -0,0 +1,6 @@ +--- +category: Enhancements +authors: [ScottFries, blakegearin, carkom] +--- + +Add ability to import categories from CSV \ No newline at end of file diff --git a/upcoming-release-notes/2101.md b/upcoming-release-notes/2168.md similarity index 52% rename from upcoming-release-notes/2101.md rename to upcoming-release-notes/2168.md index d7390fbc858..8362cc10cf6 100644 --- a/upcoming-release-notes/2101.md +++ b/upcoming-release-notes/2168.md @@ -3,4 +3,4 @@ category: Maintenance authors: [twk3] --- -Apply eslint filename extensions for jsx. \ No newline at end of file +Add api tests for payees and transactions diff --git a/upcoming-release-notes/2169.md b/upcoming-release-notes/2169.md new file mode 100644 index 00000000000..5a98cc427f9 --- /dev/null +++ b/upcoming-release-notes/2169.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [joel-jeremy] +--- + +eslint: no default exports - part 7 diff --git a/upcoming-release-notes/2170.md b/upcoming-release-notes/2170.md new file mode 100644 index 00000000000..c601b030498 --- /dev/null +++ b/upcoming-release-notes/2170.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [joel-jeremy] +--- + +eslint: no default exports - part 8 diff --git a/upcoming-release-notes/2171.md b/upcoming-release-notes/2171.md new file mode 100644 index 00000000000..68e4b45b2ee --- /dev/null +++ b/upcoming-release-notes/2171.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [joel-jeremy] +--- + +eslint: no default exports - part 9 diff --git a/upcoming-release-notes/2172.md b/upcoming-release-notes/2172.md new file mode 100644 index 00000000000..0214401ffd5 --- /dev/null +++ b/upcoming-release-notes/2172.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [joel-jeremy] +--- + +eslint: no default exports - part 10 diff --git a/upcoming-release-notes/2173.md b/upcoming-release-notes/2173.md new file mode 100644 index 00000000000..6a0d206b0bd --- /dev/null +++ b/upcoming-release-notes/2173.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [joel-jeremy] +--- + +eslint: no default exports - part 11 diff --git a/upcoming-release-notes/2176.md b/upcoming-release-notes/2176.md new file mode 100644 index 00000000000..78f25d4c87a --- /dev/null +++ b/upcoming-release-notes/2176.md @@ -0,0 +1,6 @@ +--- +category: Enhancements +authors: [rjwonder] +--- + +Update sync.ts with additionalInformation as last resort fallback to prevent Payee being empty diff --git a/upcoming-release-notes/2181.md b/upcoming-release-notes/2181.md new file mode 100644 index 00000000000..7d835a7ae4c --- /dev/null +++ b/upcoming-release-notes/2181.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [MatissJanis] +--- + +migration: rename `nordigen_*` secrets to `gocardless_*` diff --git a/upcoming-release-notes/2022.md b/upcoming-release-notes/2182.md similarity index 56% rename from upcoming-release-notes/2022.md rename to upcoming-release-notes/2182.md index 1f93be5403a..233bd0a47c9 100644 --- a/upcoming-release-notes/2022.md +++ b/upcoming-release-notes/2182.md @@ -3,4 +3,4 @@ category: Maintenance authors: [MatissJanis] --- -Refactored `FixedSizeList` to TypeScript +Electron-app app store (osx) release diff --git a/upcoming-release-notes/2184.md b/upcoming-release-notes/2184.md new file mode 100644 index 00000000000..446130490ac --- /dev/null +++ b/upcoming-release-notes/2184.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [joel-jeremy] +--- + +eslint: no default exports - part 12 diff --git a/upcoming-release-notes/2185.md b/upcoming-release-notes/2185.md new file mode 100644 index 00000000000..35bf6f7203a --- /dev/null +++ b/upcoming-release-notes/2185.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [joel-jeremy] +--- + +eslint: no default exports - part 13 diff --git a/upcoming-release-notes/2186.md b/upcoming-release-notes/2186.md new file mode 100644 index 00000000000..a9b4cdfea69 --- /dev/null +++ b/upcoming-release-notes/2186.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [twk3] +--- + +Revert to fix master: Add error Page for special accounts in Mobile diff --git a/upcoming-release-notes/2190.md b/upcoming-release-notes/2190.md new file mode 100644 index 00000000000..0e78c730bdf --- /dev/null +++ b/upcoming-release-notes/2190.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [MatissJanis] +--- + +electron: move back from WebSockets to IPC for internal communications. This should improve the stability of the desktop app. diff --git a/upcoming-release-notes/2195.md b/upcoming-release-notes/2195.md new file mode 100644 index 00000000000..597a969a7a5 --- /dev/null +++ b/upcoming-release-notes/2195.md @@ -0,0 +1,6 @@ +--- +category: Bugfix +authors: [youngcw] +--- + +Add missing borders in report budget table diff --git a/upcoming-release-notes/2196.md b/upcoming-release-notes/2196.md new file mode 100644 index 00000000000..8ef2f5e0a80 --- /dev/null +++ b/upcoming-release-notes/2196.md @@ -0,0 +1,6 @@ +--- +category: Bugfix +authors: [youngcw] +--- + +Improve report budget pie chart colors diff --git a/upcoming-release-notes/2199.md b/upcoming-release-notes/2199.md new file mode 100644 index 00000000000..7fa7eaa4f12 --- /dev/null +++ b/upcoming-release-notes/2199.md @@ -0,0 +1,6 @@ +--- +category: Bugfix +authors: [MatissJanis] +--- + +rules: add 'no rules' message and always show the rules table (even if no rules exist) diff --git a/upcoming-release-notes/2202.md b/upcoming-release-notes/2202.md new file mode 100644 index 00000000000..dec7a570033 --- /dev/null +++ b/upcoming-release-notes/2202.md @@ -0,0 +1,6 @@ +--- +category: Enhancements +authors: [subnut] +--- + +Fix site.webmanifest to make Actual installable as a Chromium PWA diff --git a/upcoming-release-notes/2204.md b/upcoming-release-notes/2204.md new file mode 100644 index 00000000000..34922bfefe6 --- /dev/null +++ b/upcoming-release-notes/2204.md @@ -0,0 +1,6 @@ +--- +category: Bugfix +authors: [HansiWursti] +--- + +Re implemented the mobile Account Error Page introduced in #2114 and reverted in #2186 \ No newline at end of file diff --git a/upcoming-release-notes/2206.md b/upcoming-release-notes/2206.md new file mode 100644 index 00000000000..67a9ce9cdcb --- /dev/null +++ b/upcoming-release-notes/2206.md @@ -0,0 +1,6 @@ +--- +category: Enhancements +authors: [shall0pass] +--- + +Add crossorigin assignment to use credentials for PWA with authentication diff --git a/upcoming-release-notes/2207.md b/upcoming-release-notes/2207.md new file mode 100644 index 00000000000..4db717c4aed --- /dev/null +++ b/upcoming-release-notes/2207.md @@ -0,0 +1,6 @@ +--- +category: Bugfix +authors: [MatissJanis] +--- + +Fix multi-autocomplete in rules page causing crashes diff --git a/upcoming-release-notes/2208.md b/upcoming-release-notes/2208.md new file mode 100644 index 00000000000..f34ec8acf62 --- /dev/null +++ b/upcoming-release-notes/2208.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [joel-jeremy] +--- + +ESLint to enforce Actual's useNavigate hook diff --git a/upcoming-release-notes/2209.md b/upcoming-release-notes/2209.md new file mode 100644 index 00000000000..2f7915f4ff0 --- /dev/null +++ b/upcoming-release-notes/2209.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [MatissJanis] +--- + +electron: split the build script in 2x parts to fix it failing when no code signing cert is provided (PRs from forks). diff --git a/yarn.lock b/yarn.lock index 03fe210bc28..d5d8a1fa69c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,10 +5,10 @@ __metadata: version: 8 cacheKey: 10 -"7zip-bin@npm:~5.1.1": - version: 5.1.1 - resolution: "7zip-bin@npm:5.1.1" - checksum: 853e636745131719b85650df93d1a3a9af0b0db1c0e2a0884451ec87e14c8b0f4fb911c04805984ece1211ff1235f7869547b780e06939469410f2da9b5e0da6 +"7zip-bin@npm:~5.2.0": + version: 5.2.0 + resolution: "7zip-bin@npm:5.2.0" + checksum: 5339c7a56f57f8d7d16ac8d15f588d155e5705cd4822e0d161ea45e6fbfe4a5226b464a331ec555a1ec9376ad04e5f61c125656cf3a1507900c1968ccbcfe80b languageName: node linkType: hard @@ -27,7 +27,7 @@ __metadata: "@swc/jest": "npm:^0.2.29" "@types/jest": "npm:^27.5.0" "@types/uuid": "npm:^9.0.2" - better-sqlite3: "npm:^9.1.1" + better-sqlite3: "npm:^9.2.2" compare-versions: "npm:^6.1.0" jest: "npm:^27.0.0" node-fetch: "npm:^3.3.2" @@ -57,8 +57,6 @@ __metadata: version: 0.0.0-use.local resolution: "@actual-app/web@workspace:packages/desktop-client" dependencies: - "@craco/craco": "npm:^7.1.0" - "@craco/types": "npm:^7.1.0" "@juggle/resize-observer": "npm:^3.1.2" "@playwright/test": "npm:^1.37.1" "@reach/listbox": "npm:^0.18.0" @@ -67,9 +65,11 @@ __metadata: "@react-aria/utils": "npm:^3.19.0" "@react-stately/collections": "npm:^3.10.0" "@react-stately/list": "npm:^3.9.1" + "@rollup/plugin-inject": "npm:^5.0.5" "@svgr/cli": "npm:^8.0.1" "@swc/core": "npm:^1.3.82" "@swc/helpers": "npm:^0.5.1" + "@swc/plugin-remove-console": "npm:^1.5.105" "@testing-library/react": "npm:14.0.0" "@testing-library/user-event": "npm:14.4.3" "@types/react": "npm:^18.2.0" @@ -79,6 +79,8 @@ __metadata: "@types/uuid": "npm:^9.0.2" "@types/webpack-bundle-analyzer": "npm:^4.6.0" "@use-gesture/react": "npm:^10.3.0" + "@vitejs/plugin-basic-ssl": "npm:^1.0.2" + "@vitejs/plugin-react-swc": "npm:^3.5.0" chokidar: "npm:^3.5.3" cross-env: "npm:^7.0.3" date-fns: "npm:^2.29.3" @@ -92,7 +94,7 @@ __metadata: jest-watch-typeahead: "npm:^2.2.2" mdast-util-newline-to-break: "npm:^2.0.0" memoize-one: "npm:^6.0.0" - pikaday: "npm:1.8.0" + pikaday: "npm:1.8.2" react: "npm:18.2.0" react-dnd: "npm:^16.0.1" react-dnd-html5-backend: "npm:^16.0.1" @@ -103,7 +105,6 @@ __metadata: react-modal: "npm:3.16.1" react-redux: "npm:7.2.1" react-router-dom: "npm:6.11.2" - react-scripts: "npm:^5.0.1" react-simple-pull-to-refresh: "npm:^1.3.3" react-spring: "npm:^9.7.1" react-virtualized-auto-sizer: "npm:^1.0.2" @@ -111,23 +112,20 @@ __metadata: redux: "npm:^4.0.5" redux-thunk: "npm:^2.3.0" remark-gfm: "npm:^3.0.1" + rollup-plugin-visualizer: "npm:^5.11.0" sass: "npm:^1.63.6" swc-loader: "npm:^0.2.3" terser-webpack-plugin: "npm:^5.3.9" uuid: "npm:^9.0.0" victory: "npm:^36.6.8" + vite: "npm:^5.0.10" + vite-tsconfig-paths: "npm:^4.2.2" + vitest: "npm:^1.0.4" webpack-bundle-analyzer: "npm:^4.9.1" xml2js: "npm:^0.6.2" languageName: unknown linkType: soft -"@alloc/quick-lru@npm:^5.2.0": - version: 5.2.0 - resolution: "@alloc/quick-lru@npm:5.2.0" - checksum: bdc35758b552bcf045733ac047fb7f9a07c4678b944c641adfbd41f798b4b91fffd0fdc0df2578d9b0afc7b4d636aa6e110ead5d6281a2adc1ab90efd7f057f8 - languageName: node - linkType: hard - "@ampproject/remapping@npm:^2.2.0": version: 2.2.1 resolution: "@ampproject/remapping@npm:2.2.1" @@ -138,20 +136,7 @@ __metadata: languageName: node linkType: hard -"@apideck/better-ajv-errors@npm:^0.3.1": - version: 0.3.6 - resolution: "@apideck/better-ajv-errors@npm:0.3.6" - dependencies: - json-schema: "npm:^0.4.0" - jsonpointer: "npm:^5.0.0" - leven: "npm:^3.1.0" - peerDependencies: - ajv: ">=8" - checksum: d638f4d5654081b874671a5729b111d1bea5960834968847e8b05d5f57bf2f50cf29fd29d0bbb7f0077640785daacec22cf018a5f01501e276ee96d271fe8330 - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.22.10, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.22.5, @babel/code-frame@npm:^7.8.3": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.22.13": version: 7.22.13 resolution: "@babel/code-frame@npm:7.22.13" dependencies: @@ -168,7 +153,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.1.0, @babel/core@npm:^7.11.1, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.16.0, @babel/core@npm:^7.21.3, @babel/core@npm:^7.7.2, @babel/core@npm:^7.8.0": +"@babel/core@npm:^7.1.0, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.16.0, @babel/core@npm:^7.21.3, @babel/core@npm:^7.7.2, @babel/core@npm:^7.8.0": version: 7.23.3 resolution: "@babel/core@npm:7.23.3" dependencies: @@ -205,19 +190,7 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.22.10, @babel/generator@npm:^7.7.2": - version: 7.22.10 - resolution: "@babel/generator@npm:7.22.10" - dependencies: - "@babel/types": "npm:^7.22.10" - "@jridgewell/gen-mapping": "npm:^0.3.2" - "@jridgewell/trace-mapping": "npm:^0.3.17" - jsesc: "npm:^2.5.1" - checksum: b0df0265694a4baa8e824f1c065769ebd83678a78b5ef16bc75b8471e27d17f7a68d3658d8ce401d3fbbe8bc2e4e9f1d9506c89931d3fc125ff32dfdea1c0f7e - languageName: node - linkType: hard - -"@babel/generator@npm:^7.23.3": +"@babel/generator@npm:^7.23.3, @babel/generator@npm:^7.7.2": version: 7.23.3 resolution: "@babel/generator@npm:7.23.3" dependencies: @@ -247,20 +220,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.10, @babel/helper-compilation-targets@npm:^7.22.5, @babel/helper-compilation-targets@npm:^7.22.6": - version: 7.22.10 - resolution: "@babel/helper-compilation-targets@npm:7.22.10" - dependencies: - "@babel/compat-data": "npm:^7.22.9" - "@babel/helper-validator-option": "npm:^7.22.5" - browserslist: "npm:^4.21.9" - lru-cache: "npm:^5.1.1" - semver: "npm:^6.3.1" - checksum: 974085237b34b3d5e7eb0ec62454e1855fce3e5285cdd9461f01e0058ffaefab2491305be2b218f6e9a0f3f1e7f3edcb2067932a9f5545c39c6a9079328e5931 - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.22.15": +"@babel/helper-compilation-targets@npm:^7.22.10, @babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.5, @babel/helper-compilation-targets@npm:^7.22.6": version: 7.22.15 resolution: "@babel/helper-compilation-targets@npm:7.22.15" dependencies: @@ -320,31 +280,14 @@ __metadata: languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.22.20": +"@babel/helper-environment-visitor@npm:^7.22.20, @babel/helper-environment-visitor@npm:^7.22.5": version: 7.22.20 resolution: "@babel/helper-environment-visitor@npm:7.22.20" checksum: d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69 languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-environment-visitor@npm:7.22.5" - checksum: 248532077d732a34cd0844eb7b078ff917c3a8ec81a7f133593f71a860a582f05b60f818dc5049c2212e5baa12289c27889a4b81d56ef409b4863db49646c4b1 - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-function-name@npm:7.22.5" - dependencies: - "@babel/template": "npm:^7.22.5" - "@babel/types": "npm:^7.22.5" - checksum: 6d02e304a45fe2a64d69dfa5b4fdfd6d68e08deb32b0a528e7b99403d664e9207e6b856787a8ff3f420e77d15987ac1de4eb869906e6ed764b67b07c804d20ba - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.23.0": +"@babel/helper-function-name@npm:^7.22.5, @babel/helper-function-name@npm:^7.23.0": version: 7.23.0 resolution: "@babel/helper-function-name@npm:7.23.0" dependencies: @@ -372,16 +315,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.10.4, @babel/helper-module-imports@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-module-imports@npm:7.22.5" - dependencies: - "@babel/types": "npm:^7.22.5" - checksum: d8296447c0cdc3c02417ba32864da3374e53bd2763a6c404aae118987c222c47238d9d1f4fd2a88250a85e0a68eff38d878c491b00c56d9bd20e809f91eb41b4 - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.22.15": +"@babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.22.5": version: 7.22.15 resolution: "@babel/helper-module-imports@npm:7.22.15" dependencies: @@ -390,22 +324,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.22.5, @babel/helper-module-transforms@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/helper-module-transforms@npm:7.22.9" - dependencies: - "@babel/helper-environment-visitor": "npm:^7.22.5" - "@babel/helper-module-imports": "npm:^7.22.5" - "@babel/helper-simple-access": "npm:^7.22.5" - "@babel/helper-split-export-declaration": "npm:^7.22.6" - "@babel/helper-validator-identifier": "npm:^7.22.5" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 80244f45e3f665305f8cf9412ee2efe44d1d30c201f869ceb0e87f9cddbbff06ebfed1dbe122a40875404867b747e7df73c0825c93765c108bcf2e86d2ef8b9b - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.23.3": +"@babel/helper-module-transforms@npm:^7.22.5, @babel/helper-module-transforms@npm:^7.22.9, @babel/helper-module-transforms@npm:^7.23.3": version: 7.23.3 resolution: "@babel/helper-module-transforms@npm:7.23.3" dependencies: @@ -496,34 +415,20 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.22.20": +"@babel/helper-validator-identifier@npm:^7.22.20, @babel/helper-validator-identifier@npm:^7.22.5": version: 7.22.20 resolution: "@babel/helper-validator-identifier@npm:7.22.20" checksum: df882d2675101df2d507b95b195ca2f86a3ef28cb711c84f37e79ca23178e13b9f0d8b522774211f51e40168bf5142be4c1c9776a150cddb61a0d5bf3e95750b languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-validator-identifier@npm:7.22.5" - checksum: 12cb7d4535b3f8d109a446f7bef08d20eebe94fd97b534cd415c936ab342e9634edc5c99961af976bd78bcae6e6ec4b2ab8483d0da2ac5926fbe9f7dd9ab28ab - languageName: node - linkType: hard - -"@babel/helper-validator-option@npm:^7.22.15": +"@babel/helper-validator-option@npm:^7.22.15, @babel/helper-validator-option@npm:^7.22.5": version: 7.22.15 resolution: "@babel/helper-validator-option@npm:7.22.15" checksum: 68da52b1e10002a543161494c4bc0f4d0398c8fdf361d5f7f4272e95c45d5b32d974896d44f6a0ea7378c9204988879d73613ca683e13bd1304e46d25ff67a8d languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-validator-option@npm:7.22.5" - checksum: bbeca8a85ee86990215c0424997438b388b8d642d69b9f86c375a174d3cdeb270efafd1ff128bc7a1d370923d13b6e45829ba8581c027620e83e3a80c5c414b3 - languageName: node - linkType: hard - "@babel/helper-wrap-function@npm:^7.22.9": version: 7.22.10 resolution: "@babel/helper-wrap-function@npm:7.22.10" @@ -557,16 +462,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.11, @babel/parser@npm:^7.22.5": - version: 7.22.14 - resolution: "@babel/parser@npm:7.22.14" - bin: - parser: ./bin/babel-parser.js - checksum: 59c3129233364c2101347a8c4ceaf685b0813c5ce644c7651a5742e365460b4d1e170ccacd12a5d69019ee5894a2ea48bde8efea42df3a6ff852ed58c674cc6f - languageName: node - linkType: hard - -"@babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.3": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.3": version: 7.23.3 resolution: "@babel/parser@npm:7.23.3" bin: @@ -1418,17 +1314,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-constant-elements@npm:^7.12.1": - version: 7.22.5 - resolution: "@babel/plugin-transform-react-constant-elements@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.22.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 0f2fc4d0a4025975f6cb4e1e80be1fe2e14546d86341beed8dbbbf9357b56908574e89476bd693431966c15b31f9c30f735636232058cf7812ca46b687d053be - languageName: node - linkType: hard - "@babel/plugin-transform-react-display-name@npm:^7.16.0, @babel/plugin-transform-react-display-name@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-transform-react-display-name@npm:7.22.5" @@ -1634,7 +1519,7 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:^7.11.0, @babel/preset-env@npm:^7.12.1, @babel/preset-env@npm:^7.16.4": +"@babel/preset-env@npm:^7.16.4": version: 7.22.14 resolution: "@babel/preset-env@npm:7.22.14" dependencies: @@ -1737,7 +1622,7 @@ __metadata: languageName: node linkType: hard -"@babel/preset-react@npm:^7.12.5, @babel/preset-react@npm:^7.16.0": +"@babel/preset-react@npm:^7.16.0": version: 7.22.5 resolution: "@babel/preset-react@npm:7.22.5" dependencies: @@ -1775,7 +1660,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.1.2": +"@babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.14.8, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2": version: 7.23.1 resolution: "@babel/runtime@npm:7.23.1" dependencies: @@ -1784,16 +1669,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.14.8, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2": - version: 7.22.11 - resolution: "@babel/runtime@npm:7.22.11" - dependencies: - regenerator-runtime: "npm:^0.14.0" - checksum: 789b566482e543819dbef980581fc570a1fe2249e443d5e6b463494e69b73ba4aabfd0493794409fb756c5d36ad894ab2a90c23678017407841b73c641d849d6 - languageName: node - linkType: hard - -"@babel/template@npm:^7.22.15": +"@babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5, @babel/template@npm:^7.3.3": version: 7.22.15 resolution: "@babel/template@npm:7.22.15" dependencies: @@ -1804,18 +1680,7 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.22.5, @babel/template@npm:^7.3.3": - version: 7.22.5 - resolution: "@babel/template@npm:7.22.5" - dependencies: - "@babel/code-frame": "npm:^7.22.5" - "@babel/parser": "npm:^7.22.5" - "@babel/types": "npm:^7.22.5" - checksum: 460634b1c5d61c779270968bd2f0817c19e3a5f20b469330dcab0a324dd29409b15ad1baa8530a21e09a9eb6c7db626500f437690c7be72987e40baa75357799 - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.23.3": +"@babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.23.3, @babel/traverse@npm:^7.7.2": version: 7.23.3 resolution: "@babel/traverse@npm:7.23.3" dependencies: @@ -1833,36 +1698,7 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.7.2": - version: 7.22.11 - resolution: "@babel/traverse@npm:7.22.11" - dependencies: - "@babel/code-frame": "npm:^7.22.10" - "@babel/generator": "npm:^7.22.10" - "@babel/helper-environment-visitor": "npm:^7.22.5" - "@babel/helper-function-name": "npm:^7.22.5" - "@babel/helper-hoist-variables": "npm:^7.22.5" - "@babel/helper-split-export-declaration": "npm:^7.22.6" - "@babel/parser": "npm:^7.22.11" - "@babel/types": "npm:^7.22.11" - debug: "npm:^4.1.0" - globals: "npm:^11.1.0" - checksum: d4ced0258e5eed00faeabf28a28985249ddc70bb6834e61e2c16f4704d25e2a9015966ea7fd0d0ed8a4e2241f08f0990694c8bc3e5935bae47faf4fd0dbf0f8e - languageName: node - linkType: hard - -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.12.6, @babel/types@npm:^7.19.3, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.22.10, @babel/types@npm:^7.22.11, @babel/types@npm:^7.22.5, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": - version: 7.22.11 - resolution: "@babel/types@npm:7.22.11" - dependencies: - "@babel/helper-string-parser": "npm:^7.22.5" - "@babel/helper-validator-identifier": "npm:^7.22.5" - to-fast-properties: "npm:^2.0.0" - checksum: fa31d8f8d8b6896faca5fd32ed279a154720a278d916b3cc4ddea79c7363ff1ab3ced7b83c5232cecc0347a5c12a00b787c71f3c3a974709aedd9328c3e3c4e3 - languageName: node - linkType: hard - -"@babel/types@npm:^7.22.15, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.3": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.22.10, @babel/types@npm:^7.22.11, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.3, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": version: 7.23.3 resolution: "@babel/types@npm:7.23.3" dependencies: @@ -1880,39 +1716,6 @@ __metadata: languageName: node linkType: hard -"@craco/craco@npm:^7.1.0": - version: 7.1.0 - resolution: "@craco/craco@npm:7.1.0" - dependencies: - autoprefixer: "npm:^10.4.12" - cosmiconfig: "npm:^7.0.1" - cosmiconfig-typescript-loader: "npm:^1.0.0" - cross-spawn: "npm:^7.0.3" - lodash: "npm:^4.17.21" - semver: "npm:^7.3.7" - webpack-merge: "npm:^5.8.0" - peerDependencies: - react-scripts: ^5.0.0 - bin: - craco: dist/bin/craco.js - checksum: 433e9d8beffa62711b6fff8e9510820caaefe0e45179ad9a219f238b844a3d422c12279880d3ea37cd2e344a0716fe6a82d72143662e65378c0709927c3f760d - languageName: node - linkType: hard - -"@craco/types@npm:^7.1.0": - version: 7.1.0 - resolution: "@craco/types@npm:7.1.0" - dependencies: - "@babel/types": "npm:^7.19.3" - "@jest/types": "npm:^27.5.1" - "@types/eslint": "npm:^8.4.6" - autoprefixer: "npm:^10.4.12" - eslint-webpack-plugin: "npm:^3.2.0" - webpack: "npm:^5.74.0" - checksum: efd064e0dedd9211598f19d5b4926689964429845d1f28c0bb7f08dcac154b9c651c3fc82e46310c69b02d2488a3f47ba279b898539b49abbdeaecd0132ff20c - languageName: node - linkType: hard - "@cspotcode/source-map-support@npm:^0.8.0": version: 0.8.1 resolution: "@cspotcode/source-map-support@npm:0.8.1" @@ -1922,179 +1725,6 @@ __metadata: languageName: node linkType: hard -"@csstools/normalize.css@npm:*": - version: 12.0.0 - resolution: "@csstools/normalize.css@npm:12.0.0" - checksum: d3c3ebeba561da21e2fc62425356dc3d9cc976f23f258d7c8d40343b97385ee243c0688effce6fd37ab4b8ef59793e1d3447749b3b1c9f500df7dfb87a1b4e24 - languageName: node - linkType: hard - -"@csstools/postcss-cascade-layers@npm:^1.1.1": - version: 1.1.1 - resolution: "@csstools/postcss-cascade-layers@npm:1.1.1" - dependencies: - "@csstools/selector-specificity": "npm:^2.0.2" - postcss-selector-parser: "npm:^6.0.10" - peerDependencies: - postcss: ^8.2 - checksum: 9e8172402ed8d0ac5a2300eabb2120aa455f8a9911fe6530dc68d74accde32dfc458b80966bb549846d7ac09e21ec44da24ad74d1d2d89d90afe659d6b6f24de - languageName: node - linkType: hard - -"@csstools/postcss-color-function@npm:^1.1.1": - version: 1.1.1 - resolution: "@csstools/postcss-color-function@npm:1.1.1" - dependencies: - "@csstools/postcss-progressive-custom-properties": "npm:^1.1.0" - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2 - checksum: 82824ae7ef9664c97b066da9981e0fe9b1be9ae811f9f95bbfecd988f06d5e896b88d2b35c58f0629ddc56048569abfd56b47863276a991fba7447f252033bb0 - languageName: node - linkType: hard - -"@csstools/postcss-font-format-keywords@npm:^1.0.1": - version: 1.0.1 - resolution: "@csstools/postcss-font-format-keywords@npm:1.0.1" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2 - checksum: 18af07bef7a92ea65572251cfe0ff483158aa0f43256d420a0a2e77eb19f84dca9b9ff0560beeaeef3bf07e62b1dba13582e425679fc72f73701cdf5b0d78845 - languageName: node - linkType: hard - -"@csstools/postcss-hwb-function@npm:^1.0.2": - version: 1.0.2 - resolution: "@csstools/postcss-hwb-function@npm:1.0.2" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2 - checksum: 7dc8dc71924fcf2f61e55cbf83602f6d7c08f8f8a47c8a9fe0bdc2c71742e03ecaf5284a55afc4ea6ed646feb8a0a9cfaec4f31cc3b83c5ab0c3e99847aceab8 - languageName: node - linkType: hard - -"@csstools/postcss-ic-unit@npm:^1.0.1": - version: 1.0.1 - resolution: "@csstools/postcss-ic-unit@npm:1.0.1" - dependencies: - "@csstools/postcss-progressive-custom-properties": "npm:^1.1.0" - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2 - checksum: e3bee4cdb258ff7471341fc0d814bab1d1e3ea061c13be64ef40b3be8576b75c855cf24ffd3967b3eeb435552d5910af5df35519705192e58309e440cacf02e5 - languageName: node - linkType: hard - -"@csstools/postcss-is-pseudo-class@npm:^2.0.7": - version: 2.0.7 - resolution: "@csstools/postcss-is-pseudo-class@npm:2.0.7" - dependencies: - "@csstools/selector-specificity": "npm:^2.0.0" - postcss-selector-parser: "npm:^6.0.10" - peerDependencies: - postcss: ^8.2 - checksum: b6d509a63d3130dd1e1a7dacb9fef9e68a80e32eafce6e951f51808441821dad025a9b9209c6b9d331f373ee4977c25e1d305b036ee770d9e974cc1ad96df807 - languageName: node - linkType: hard - -"@csstools/postcss-nested-calc@npm:^1.0.0": - version: 1.0.0 - resolution: "@csstools/postcss-nested-calc@npm:1.0.0" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2 - checksum: b02656b35dc2982649ba8a6318b6081e47f7c902c50c0c8d158b380c4b3d38d62018a02cc8863d85ba31e78eb4d0d06499735b8f847ddf24ceeff0e9308e8c83 - languageName: node - linkType: hard - -"@csstools/postcss-normalize-display-values@npm:^1.0.1": - version: 1.0.1 - resolution: "@csstools/postcss-normalize-display-values@npm:1.0.1" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2 - checksum: 9ea1b199d377fa2feaf6cae303afc316ea51ef5c770811e277a5a5403cee486ade2d2393fa622e41c56222bf664a3740eb62221bb157af0f8c84d8aed55e3234 - languageName: node - linkType: hard - -"@csstools/postcss-oklab-function@npm:^1.1.1": - version: 1.1.1 - resolution: "@csstools/postcss-oklab-function@npm:1.1.1" - dependencies: - "@csstools/postcss-progressive-custom-properties": "npm:^1.1.0" - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2 - checksum: 3d0f923e10a9378658a640f46f50740041346469dd965787d20646aaee55168ca5ef81c679e39cdd07b918c9f107d4d47067cbb06008bac5ac7798d71c9a2a25 - languageName: node - linkType: hard - -"@csstools/postcss-progressive-custom-properties@npm:^1.1.0, @csstools/postcss-progressive-custom-properties@npm:^1.3.0": - version: 1.3.0 - resolution: "@csstools/postcss-progressive-custom-properties@npm:1.3.0" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.3 - checksum: cc88ee26fa3b56434c38906ab13463c3510bab92b2c206c50fa6199266407942fdb035733869c75e75c6f43a48e3ef8a8538a605157d3a580ea4ef2bf93b3df7 - languageName: node - linkType: hard - -"@csstools/postcss-stepped-value-functions@npm:^1.0.1": - version: 1.0.1 - resolution: "@csstools/postcss-stepped-value-functions@npm:1.0.1" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2 - checksum: 5dbc3cf9edcbc7a43309e6378eb6f2455c6748ef26b83a781a9c9c7df2b8bbb748f887de760a355c798b0e6f0f41d551a10e51ed7276b0de17f6fc4c2f7dbefb - languageName: node - linkType: hard - -"@csstools/postcss-text-decoration-shorthand@npm:^1.0.0": - version: 1.0.0 - resolution: "@csstools/postcss-text-decoration-shorthand@npm:1.0.0" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2 - checksum: 2dc1394307fa8f9a8cea83f54f0df76a4f065b8364b572ce46221f47518b026c886f19334483c038f178e24004adcf3dbf36903cfa28112e17d932176cb2a21b - languageName: node - linkType: hard - -"@csstools/postcss-trigonometric-functions@npm:^1.0.2": - version: 1.0.2 - resolution: "@csstools/postcss-trigonometric-functions@npm:1.0.2" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2 - checksum: d971403ac69a12e5db31ab798e15be96aa9a06bcfbe20893ce40935da2bdea7c14de3522e2c050a457b6a428699711c0b717d396e05d5ff1d652f8beca0d5d48 - languageName: node - linkType: hard - -"@csstools/postcss-unset-value@npm:^1.0.2": - version: 1.0.2 - resolution: "@csstools/postcss-unset-value@npm:1.0.2" - peerDependencies: - postcss: ^8.2 - checksum: 58312dcb457b0f8c9bdcc45601e799da5270e09f6573041a00c50acff77089ceb2a33ed285990cd4a6d847677545a52cfd0919af26de9a40889c483a84df45d3 - languageName: node - linkType: hard - -"@csstools/selector-specificity@npm:^2.0.0, @csstools/selector-specificity@npm:^2.0.2": - version: 2.2.0 - resolution: "@csstools/selector-specificity@npm:2.2.0" - peerDependencies: - postcss-selector-parser: ^6.0.10 - checksum: 84ae0e902e8879d375406bd7d2e117b862e18cf8e5f82cecad62fcf729a8fc1527e2b3e2774b0e869a17e2006bd27ac5240f79220638183b273aeece97acd3f2 - languageName: node - linkType: hard - "@develar/schema-utils@npm:~2.6.5": version: 2.6.5 resolution: "@develar/schema-utils@npm:2.6.5" @@ -2156,6 +1786,17 @@ __metadata: languageName: node linkType: hard +"@electron/notarize@npm:2.2.0": + version: 2.2.0 + resolution: "@electron/notarize@npm:2.2.0" + dependencies: + debug: "npm:^4.1.1" + fs-extra: "npm:^9.0.1" + promise-retry: "npm:^2.0.1" + checksum: 31639c9ee54d5ff2be7882c24916716b678b3c931b90cdea359262826b643c4291853cbaba8ecfc7cfddd75331117ef120fbd9c6a7b87c7d099ad54b6a2b0427 + languageName: node + linkType: hard + "@electron/osx-sign@npm:1.0.5": version: 1.0.5 resolution: "@electron/osx-sign@npm:1.0.5" @@ -2173,9 +1814,9 @@ __metadata: languageName: node linkType: hard -"@electron/rebuild@npm:3.3.0": - version: 3.3.0 - resolution: "@electron/rebuild@npm:3.3.0" +"@electron/rebuild@npm:3.4.1": + version: 3.4.1 + resolution: "@electron/rebuild@npm:3.4.1" dependencies: "@malept/cross-spawn-promise": "npm:^2.0.0" chalk: "npm:^4.0.0" @@ -2187,12 +1828,13 @@ __metadata: node-api-version: "npm:^0.1.4" node-gyp: "npm:^9.0.0" ora: "npm:^5.1.0" + read-binary-file-arch: "npm:^1.0.6" semver: "npm:^7.3.5" tar: "npm:^6.0.5" yargs: "npm:^17.0.1" bin: electron-rebuild: lib/cli.js - checksum: 1cb27eb6370b0ad94ab5e38208ab07cb9ba77c855b18c64d0d7b5bf15bb107ed242fccc2e99a5a7682699deb57da3404caee794b222da2dff8fad01fa4d46846 + checksum: c6d9ade62f13b3c3642321ddcfed64a1ab839c25d19e2a7f444d0c4852bf6ee1fcb180d8c333516f9d656787e3d33ed2efc84f4d02d5196c32a0cc5f30e1f548 languageName: node linkType: hard @@ -2211,37 +1853,191 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.2.0": - version: 4.4.0 - resolution: "@eslint-community/eslint-utils@npm:4.4.0" - dependencies: - eslint-visitor-keys: "npm:^3.3.0" - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: 8d70bcdcd8cd279049183aca747d6c2ed7092a5cf0cf5916faac1ef37ffa74f0c245c2a3a3d3b9979d9dfdd4ca59257b4c5621db699d637b847a2c5e02f491c2 +"@esbuild/android-arm64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/android-arm64@npm:0.19.9" + conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.4.0, @eslint-community/regexpp@npm:^4.6.1": - version: 4.8.0 - resolution: "@eslint-community/regexpp@npm:4.8.0" - checksum: bca98aff5fd4236ef6030e91bd323e57b8d42705d4ddcdd56041e3c1ff7f4d9eb4a3f1fffcbf0e0400cba0703ea9e496f521ae0ad65f269024d07c56edfa5e08 +"@esbuild/android-arm@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/android-arm@npm:0.19.9" + conditions: os=android & cpu=arm languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.2": - version: 2.1.2 - resolution: "@eslint/eslintrc@npm:2.1.2" - dependencies: - ajv: "npm:^6.12.4" - debug: "npm:^4.3.2" - espree: "npm:^9.6.0" - globals: "npm:^13.19.0" - ignore: "npm:^5.2.0" - import-fresh: "npm:^3.2.1" - js-yaml: "npm:^4.1.0" - minimatch: "npm:^3.1.2" - strip-json-comments: "npm:^3.1.1" +"@esbuild/android-x64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/android-x64@npm:0.19.9" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/darwin-arm64@npm:0.19.9" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/darwin-x64@npm:0.19.9" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/freebsd-arm64@npm:0.19.9" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/freebsd-x64@npm:0.19.9" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/linux-arm64@npm:0.19.9" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/linux-arm@npm:0.19.9" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/linux-ia32@npm:0.19.9" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/linux-loong64@npm:0.19.9" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/linux-mips64el@npm:0.19.9" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/linux-ppc64@npm:0.19.9" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/linux-riscv64@npm:0.19.9" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/linux-s390x@npm:0.19.9" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/linux-x64@npm:0.19.9" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/netbsd-x64@npm:0.19.9" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/openbsd-x64@npm:0.19.9" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/sunos-x64@npm:0.19.9" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/win32-arm64@npm:0.19.9" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/win32-ia32@npm:0.19.9" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/win32-x64@npm:0.19.9" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@eslint-community/eslint-utils@npm:^4.2.0": + version: 4.4.0 + resolution: "@eslint-community/eslint-utils@npm:4.4.0" + dependencies: + eslint-visitor-keys: "npm:^3.3.0" + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: 8d70bcdcd8cd279049183aca747d6c2ed7092a5cf0cf5916faac1ef37ffa74f0c245c2a3a3d3b9979d9dfdd4ca59257b4c5621db699d637b847a2c5e02f491c2 + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.4.0, @eslint-community/regexpp@npm:^4.6.1": + version: 4.8.0 + resolution: "@eslint-community/regexpp@npm:4.8.0" + checksum: bca98aff5fd4236ef6030e91bd323e57b8d42705d4ddcdd56041e3c1ff7f4d9eb4a3f1fffcbf0e0400cba0703ea9e496f521ae0ad65f269024d07c56edfa5e08 + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^2.1.2": + version: 2.1.2 + resolution: "@eslint/eslintrc@npm:2.1.2" + dependencies: + ajv: "npm:^6.12.4" + debug: "npm:^4.3.2" + espree: "npm:^9.6.0" + globals: "npm:^13.19.0" + ignore: "npm:^5.2.0" + import-fresh: "npm:^3.2.1" + js-yaml: "npm:^4.1.0" + minimatch: "npm:^3.1.2" + strip-json-comments: "npm:^3.1.1" checksum: fa25638f2666cac6810f98ee7d0f4b912f191806467c1b40d72bac759fffef0b3357f12a1869817286837b258e4de3517e0c7408520e156ca860fc53a1fbaed9 languageName: node linkType: hard @@ -2435,20 +2231,6 @@ __metadata: languageName: node linkType: hard -"@jest/console@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/console@npm:28.1.3" - dependencies: - "@jest/types": "npm:^28.1.3" - "@types/node": "npm:*" - chalk: "npm:^4.0.0" - jest-message-util: "npm:^28.1.3" - jest-util: "npm:^28.1.3" - slash: "npm:^3.0.0" - checksum: 82153eb24e61bd442bff350a7537d598e7c49097aabd9545b340582dcf1f17e5749baa342a67e564816a3a6ce746038b618ed9f66702140264bfa1e1d5cc9e5e - languageName: node - linkType: hard - "@jest/console@npm:^29.5.0": version: 29.5.0 resolution: "@jest/console@npm:29.5.0" @@ -2597,21 +2379,12 @@ __metadata: languageName: node linkType: hard -"@jest/schemas@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/schemas@npm:28.1.3" +"@jest/schemas@npm:^29.4.3, @jest/schemas@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/schemas@npm:29.6.3" dependencies: - "@sinclair/typebox": "npm:^0.24.1" - checksum: 3cf1d4b66c9c4ffda58b246de1ddcba8e6ad085af63dccdf07922511f13b68c0cc480a7bc620cb4f3099a6f134801c747e1df7bfc7a4ef4dceefbdea3e31e1de - languageName: node - linkType: hard - -"@jest/schemas@npm:^29.4.3": - version: 29.4.3 - resolution: "@jest/schemas@npm:29.4.3" - dependencies: - "@sinclair/typebox": "npm:^0.25.16" - checksum: ac754e245c19dc39e10ebd41dce09040214c96a4cd8efa143b82148e383e45128f24599195ab4f01433adae4ccfbe2db6574c90db2862ccd8551a86704b5bebd + "@sinclair/typebox": "npm:^0.27.8" + checksum: 910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93 languageName: node linkType: hard @@ -2638,18 +2411,6 @@ __metadata: languageName: node linkType: hard -"@jest/test-result@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/test-result@npm:28.1.3" - dependencies: - "@jest/console": "npm:^28.1.3" - "@jest/types": "npm:^28.1.3" - "@types/istanbul-lib-coverage": "npm:^2.0.0" - collect-v8-coverage: "npm:^1.0.0" - checksum: d343f08e6e4971e8132540014711c5d29887651b036f03db8c7e9d6509fe9801316f0a6a393cd0af0431c50e6d1c1d310957f06b6cc20c08cab2e67b66a00c88 - languageName: node - linkType: hard - "@jest/test-result@npm:^29.5.0": version: 29.5.0 resolution: "@jest/test-result@npm:29.5.0" @@ -2733,20 +2494,6 @@ __metadata: languageName: node linkType: hard -"@jest/types@npm:^28.1.3": - version: 28.1.3 - resolution: "@jest/types@npm:28.1.3" - dependencies: - "@jest/schemas": "npm:^28.1.3" - "@types/istanbul-lib-coverage": "npm:^2.0.0" - "@types/istanbul-reports": "npm:^3.0.0" - "@types/node": "npm:*" - "@types/yargs": "npm:^17.0.8" - chalk: "npm:^4.0.0" - checksum: a90e636df760799b6c3d91e34e539e701ea803e80312257e674e345a3c23a7c892df7a301afbc7883ec1d623daf3ba266cde57c5965e0692e5f1e61915d3524b - languageName: node - linkType: hard - "@jest/types@npm:^29.5.0": version: 29.5.0 resolution: "@jest/types@npm:29.5.0" @@ -2817,7 +2564,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.10": +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.15": version: 1.4.15 resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" checksum: 89960ac087781b961ad918978975bcdf2051cd1741880469783c42de64239703eab9db5230d776d8e6a09d73bb5e4cb964e07d93ee6e2e7aea5a7d726e865c09 @@ -2851,13 +2598,6 @@ __metadata: languageName: node linkType: hard -"@leichtgewicht/ip-codec@npm:^2.0.1": - version: 2.0.4 - resolution: "@leichtgewicht/ip-codec@npm:2.0.4" - checksum: 3c7ffb0afb86c731a02813aa4370da27eac037abf8a15fce211226c11b644610382c8eca7efadace9471ee1959afe72fc1d43a62227d974b9fca8eae8b8d2124 - languageName: node - linkType: hard - "@malept/cross-spawn-promise@npm:^1.1.0": version: 1.1.1 resolution: "@malept/cross-spawn-promise@npm:1.1.1" @@ -2990,45 +2730,6 @@ __metadata: languageName: node linkType: hard -"@pmmmwh/react-refresh-webpack-plugin@npm:^0.5.3": - version: 0.5.11 - resolution: "@pmmmwh/react-refresh-webpack-plugin@npm:0.5.11" - dependencies: - ansi-html-community: "npm:^0.0.8" - common-path-prefix: "npm:^3.0.0" - core-js-pure: "npm:^3.23.3" - error-stack-parser: "npm:^2.0.6" - find-up: "npm:^5.0.0" - html-entities: "npm:^2.1.0" - loader-utils: "npm:^2.0.4" - schema-utils: "npm:^3.0.0" - source-map: "npm:^0.7.3" - peerDependencies: - "@types/webpack": 4.x || 5.x - react-refresh: ">=0.10.0 <1.0.0" - sockjs-client: ^1.4.0 - type-fest: ">=0.17.0 <5.0.0" - webpack: ">=4.43.0 <6.0.0" - webpack-dev-server: 3.x || 4.x - webpack-hot-middleware: 2.x - webpack-plugin-serve: 0.x || 1.x - peerDependenciesMeta: - "@types/webpack": - optional: true - sockjs-client: - optional: true - type-fest: - optional: true - webpack-dev-server: - optional: true - webpack-hot-middleware: - optional: true - webpack-plugin-serve: - optional: true - checksum: ee7eff63ef930c8ec37b341d12f180598a5173938a5b8d1d7c53306eab10b3f3f23adcba4824e5a93ddcd0cf185a90baa0b6f483f27a320dd86ad61941940eb6 - languageName: node - linkType: hard - "@polka/url@npm:^1.0.0-next.20": version: 1.0.0-next.21 resolution: "@polka/url@npm:1.0.0-next.21" @@ -3525,61 +3226,126 @@ __metadata: languageName: node linkType: hard -"@rollup/plugin-babel@npm:^5.2.0": - version: 5.3.1 - resolution: "@rollup/plugin-babel@npm:5.3.1" +"@rollup/plugin-inject@npm:^5.0.5": + version: 5.0.5 + resolution: "@rollup/plugin-inject@npm:5.0.5" dependencies: - "@babel/helper-module-imports": "npm:^7.10.4" - "@rollup/pluginutils": "npm:^3.1.0" + "@rollup/pluginutils": "npm:^5.0.1" + estree-walker: "npm:^2.0.2" + magic-string: "npm:^0.30.3" peerDependencies: - "@babel/core": ^7.0.0 - "@types/babel__core": ^7.1.9 - rollup: ^1.20.0||^2.0.0 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: - "@types/babel__core": + rollup: optional: true - checksum: eb3ee5fedd86fa39ad70c2f8e05f14f8b185261b9f63699a01ac7eae664167f2e5cf87377434bf6aadad7eaf2b13c955ac26f8332a02f8d6a46b3c91990a9fbc + checksum: 1d0e68dff0a8785398a1b6a7dac0dc0a7f2ded22319c0b4c411053f34cbe237ca897d1fc97e5150fddbc3486480f21cbeeb69f0ae7f44ab1ae7307c164c7e704 languageName: node linkType: hard -"@rollup/plugin-node-resolve@npm:^11.2.1": - version: 11.2.1 - resolution: "@rollup/plugin-node-resolve@npm:11.2.1" +"@rollup/pluginutils@npm:^5.0.1": + version: 5.1.0 + resolution: "@rollup/pluginutils@npm:5.1.0" dependencies: - "@rollup/pluginutils": "npm:^3.1.0" - "@types/resolve": "npm:1.17.1" - builtin-modules: "npm:^3.1.0" - deepmerge: "npm:^4.2.2" - is-module: "npm:^1.0.0" - resolve: "npm:^1.19.0" + "@types/estree": "npm:^1.0.0" + estree-walker: "npm:^2.0.2" + picomatch: "npm:^2.3.1" peerDependencies: - rollup: ^1.20.0||^2.0.0 - checksum: 8007f6a01d709da1078df19bb5ecb1339f43042786a68d98645e0a4c1765064d1500a1b86b65e12de6ae35d9b1ae693e22e63b3ebb69a627ce81172ea21cc228 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: abb15eaec5b36f159ec351b48578401bedcefdfa371d24a914cfdbb1e27d0ebfbf895299ec18ccc343d247e71f2502cba21202bc1362d7ef27d5ded699e5c2b2 languageName: node linkType: hard -"@rollup/plugin-replace@npm:^2.4.1": - version: 2.4.2 - resolution: "@rollup/plugin-replace@npm:2.4.2" - dependencies: - "@rollup/pluginutils": "npm:^3.1.0" - magic-string: "npm:^0.25.7" - peerDependencies: - rollup: ^1.20.0 || ^2.0.0 - checksum: fc4844c4cd7286013d4ccb51a7a2c86135024e3940797af1af1f24357622c8e874d9a17acfa4be9d2546542a87b68e158cc8d2c1f2a7926d17b9433eea00f6bf +"@rollup/rollup-android-arm-eabi@npm:4.9.4": + version: 4.9.4 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.9.4" + conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/pluginutils@npm:^3.1.0": - version: 3.1.0 - resolution: "@rollup/pluginutils@npm:3.1.0" - dependencies: - "@types/estree": "npm:0.0.39" - estree-walker: "npm:^1.0.1" - picomatch: "npm:^2.2.2" - peerDependencies: - rollup: ^1.20.0||^2.0.0 - checksum: 3b69f02893eea42455fb97b81f612ac6bfadf94ac73bebd481ea13e90a693eef52c163210a095b12e574a25603af5e55f86a020889019167f331aa8dd3ff30e0 +"@rollup/rollup-android-arm64@npm:4.9.4": + version: 4.9.4 + resolution: "@rollup/rollup-android-arm64@npm:4.9.4" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.9.4": + version: 4.9.4 + resolution: "@rollup/rollup-darwin-arm64@npm:4.9.4" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.9.4": + version: 4.9.4 + resolution: "@rollup/rollup-darwin-x64@npm:4.9.4" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.9.4": + version: 4.9.4 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.9.4" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.9.4": + version: 4.9.4 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.9.4" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.9.4": + version: 4.9.4 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.9.4" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.9.4": + version: 4.9.4 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.9.4" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.9.4": + version: 4.9.4 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.9.4" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.9.4": + version: 4.9.4 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.9.4" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.9.4": + version: 4.9.4 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.9.4" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.9.4": + version: 4.9.4 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.9.4" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.9.4": + version: 4.9.4 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.9.4" + conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -3648,17 +3414,10 @@ __metadata: languageName: node linkType: hard -"@sinclair/typebox@npm:^0.24.1": - version: 0.24.51 - resolution: "@sinclair/typebox@npm:0.24.51" - checksum: 7886847b9deda1d926934066fe69165a1d9bbe7b0f836543c25efb96173c17009ef7a98619f48b379294bf27958844da3428eb35e65f8d941ea43563ad6e961e - languageName: node - linkType: hard - -"@sinclair/typebox@npm:^0.25.16": - version: 0.25.24 - resolution: "@sinclair/typebox@npm:0.25.24" - checksum: d415546153478befa3c8386a4723e3061ac065867c7e22fe0374d36091991676d231e5381e66daa0ed21639217c6c80e0d6224a9c89aaac269e58b82b2f4a2f4 +"@sinclair/typebox@npm:^0.27.8": + version: 0.27.8 + resolution: "@sinclair/typebox@npm:0.27.8" + checksum: 297f95ff77c82c54de8c9907f186076e715ff2621c5222ba50b8d40a170661c0c5242c763cba2a4791f0f91cb1d8ffa53ea1d7294570cf8cd4694c0e383e484d languageName: node linkType: hard @@ -3687,18 +3446,6 @@ __metadata: languageName: node linkType: hard -"@surma/rollup-plugin-off-main-thread@npm:^2.2.3": - version: 2.2.3 - resolution: "@surma/rollup-plugin-off-main-thread@npm:2.2.3" - dependencies: - ejs: "npm:^3.1.6" - json5: "npm:^2.2.0" - magic-string: "npm:^0.25.0" - string.prototype.matchall: "npm:^4.0.6" - checksum: 0c7dc1c1fc396454513dec9ef34e743ffc8662adc20eeaf392a9cca4bd8a4a33af239c057022b6272c3fc438550e3c7099cdea5f50eb61c5058308989c7c48d6 - languageName: node - linkType: hard - "@svgr/babel-plugin-add-jsx-attribute@npm:8.0.0": version: 8.0.0 resolution: "@svgr/babel-plugin-add-jsx-attribute@npm:8.0.0" @@ -3708,13 +3455,6 @@ __metadata: languageName: node linkType: hard -"@svgr/babel-plugin-add-jsx-attribute@npm:^5.4.0": - version: 5.4.0 - resolution: "@svgr/babel-plugin-add-jsx-attribute@npm:5.4.0" - checksum: 1c538cf312b486598c6aea17f9b72d7fc308eb5dd32effd804630206a185493b8a828ff980ceb29d57d8319c085614c7cea967be709c71ae77702a4c30037011 - languageName: node - linkType: hard - "@svgr/babel-plugin-remove-jsx-attribute@npm:8.0.0": version: 8.0.0 resolution: "@svgr/babel-plugin-remove-jsx-attribute@npm:8.0.0" @@ -3724,13 +3464,6 @@ __metadata: languageName: node linkType: hard -"@svgr/babel-plugin-remove-jsx-attribute@npm:^5.4.0": - version: 5.4.0 - resolution: "@svgr/babel-plugin-remove-jsx-attribute@npm:5.4.0" - checksum: ad2231bfcb14daa944201df66236c222cde05a07c4cffaecab1d36d33f606b6caf17bda21844fc435780c1a27195e49beb8397536fe5e7545dfffcfbbcecb7f8 - languageName: node - linkType: hard - "@svgr/babel-plugin-remove-jsx-empty-expression@npm:8.0.0": version: 8.0.0 resolution: "@svgr/babel-plugin-remove-jsx-empty-expression@npm:8.0.0" @@ -3740,13 +3473,6 @@ __metadata: languageName: node linkType: hard -"@svgr/babel-plugin-remove-jsx-empty-expression@npm:^5.0.1": - version: 5.0.1 - resolution: "@svgr/babel-plugin-remove-jsx-empty-expression@npm:5.0.1" - checksum: 175c8f13ddcb0744f7c3910ebed3799cfb961a75bff130e1ed2071c87ca8b8df8964825c988e511b2e3c5dbf48ad3d4fbbb6989edc53294253df40cf2a24375e - languageName: node - linkType: hard - "@svgr/babel-plugin-replace-jsx-attribute-value@npm:8.0.0": version: 8.0.0 resolution: "@svgr/babel-plugin-replace-jsx-attribute-value@npm:8.0.0" @@ -3756,13 +3482,6 @@ __metadata: languageName: node linkType: hard -"@svgr/babel-plugin-replace-jsx-attribute-value@npm:^5.0.1": - version: 5.0.1 - resolution: "@svgr/babel-plugin-replace-jsx-attribute-value@npm:5.0.1" - checksum: 68f4e2a5b95eca44e22fce485dc2ddd10adabe2b38f6db3ef9071b35e84bf379685f7acab6c05b7a82f722328c02f6424f8252c6dd5c2c4ed2f00104072b1dfe - languageName: node - linkType: hard - "@svgr/babel-plugin-svg-dynamic-title@npm:8.0.0": version: 8.0.0 resolution: "@svgr/babel-plugin-svg-dynamic-title@npm:8.0.0" @@ -3772,13 +3491,6 @@ __metadata: languageName: node linkType: hard -"@svgr/babel-plugin-svg-dynamic-title@npm:^5.4.0": - version: 5.4.0 - resolution: "@svgr/babel-plugin-svg-dynamic-title@npm:5.4.0" - checksum: c46feb52454acea32031d1d881a81334f2e5f838ed25a2d9014acb5e9541d404405911e86dbee8bee9f1e43c9e07118123a07dc297962dbed0c4c5a86bdc4be9 - languageName: node - linkType: hard - "@svgr/babel-plugin-svg-em-dimensions@npm:8.0.0": version: 8.0.0 resolution: "@svgr/babel-plugin-svg-em-dimensions@npm:8.0.0" @@ -3788,13 +3500,6 @@ __metadata: languageName: node linkType: hard -"@svgr/babel-plugin-svg-em-dimensions@npm:^5.4.0": - version: 5.4.0 - resolution: "@svgr/babel-plugin-svg-em-dimensions@npm:5.4.0" - checksum: 0d19b26147bbba932bd973258dab4a80a7ea6b9d674713186f0e10fa21a9e3aa4327326b2bf1892e8051712bce0ea30561eb187ca27bb241d33c350cea51ac88 - languageName: node - linkType: hard - "@svgr/babel-plugin-transform-react-native-svg@npm:8.0.0": version: 8.0.0 resolution: "@svgr/babel-plugin-transform-react-native-svg@npm:8.0.0" @@ -3804,13 +3509,6 @@ __metadata: languageName: node linkType: hard -"@svgr/babel-plugin-transform-react-native-svg@npm:^5.4.0": - version: 5.4.0 - resolution: "@svgr/babel-plugin-transform-react-native-svg@npm:5.4.0" - checksum: 8ac5dc9fb2dee24addc74dbcb169860c95a69247606f986eabb0618fb300dd08e8f220891b758e62c051428ba04d8dd50f2c2bf877e15fa190e6d384d1ccd2ad - languageName: node - linkType: hard - "@svgr/babel-plugin-transform-svg-component@npm:8.0.0": version: 8.0.0 resolution: "@svgr/babel-plugin-transform-svg-component@npm:8.0.0" @@ -3820,13 +3518,6 @@ __metadata: languageName: node linkType: hard -"@svgr/babel-plugin-transform-svg-component@npm:^5.5.0": - version: 5.5.0 - resolution: "@svgr/babel-plugin-transform-svg-component@npm:5.5.0" - checksum: fcd5502c69303550eae36cdd659629799159d3598e57b06432a08aa7112ff5b6d6a3a0f8d3ce90c44754b8d333c2f5515724ad580cd8bdb6885295142039b0eb - languageName: node - linkType: hard - "@svgr/babel-preset@npm:8.0.0": version: 8.0.0 resolution: "@svgr/babel-preset@npm:8.0.0" @@ -3845,22 +3536,6 @@ __metadata: languageName: node linkType: hard -"@svgr/babel-preset@npm:^5.5.0": - version: 5.5.0 - resolution: "@svgr/babel-preset@npm:5.5.0" - dependencies: - "@svgr/babel-plugin-add-jsx-attribute": "npm:^5.4.0" - "@svgr/babel-plugin-remove-jsx-attribute": "npm:^5.4.0" - "@svgr/babel-plugin-remove-jsx-empty-expression": "npm:^5.0.1" - "@svgr/babel-plugin-replace-jsx-attribute-value": "npm:^5.0.1" - "@svgr/babel-plugin-svg-dynamic-title": "npm:^5.4.0" - "@svgr/babel-plugin-svg-em-dimensions": "npm:^5.4.0" - "@svgr/babel-plugin-transform-react-native-svg": "npm:^5.4.0" - "@svgr/babel-plugin-transform-svg-component": "npm:^5.5.0" - checksum: 90185ff3761b942e806eb127e2802e9b161f8c471de510c0d989aa9c1669f1328c258a1bf1924c8977faddd534107c36e8f49e416088b30c721f9919aea12255 - languageName: node - linkType: hard - "@svgr/cli@npm:^8.0.1": version: 8.0.1 resolution: "@svgr/cli@npm:8.0.1" @@ -3894,17 +3569,6 @@ __metadata: languageName: node linkType: hard -"@svgr/core@npm:^5.5.0": - version: 5.5.0 - resolution: "@svgr/core@npm:5.5.0" - dependencies: - "@svgr/plugin-jsx": "npm:^5.5.0" - camelcase: "npm:^6.2.0" - cosmiconfig: "npm:^7.0.0" - checksum: fc8621b8542052cdc38c031884d970ea25b325ae1ac4bebf72fba6351052ff13f490c029b6bb0d59f83d02ebbda9df938f94ca3bd442b731cf2c2f5e7adca561 - languageName: node - linkType: hard - "@svgr/hast-util-to-babel-ast@npm:8.0.0": version: 8.0.0 resolution: "@svgr/hast-util-to-babel-ast@npm:8.0.0" @@ -3915,15 +3579,6 @@ __metadata: languageName: node linkType: hard -"@svgr/hast-util-to-babel-ast@npm:^5.5.0": - version: 5.5.0 - resolution: "@svgr/hast-util-to-babel-ast@npm:5.5.0" - dependencies: - "@babel/types": "npm:^7.12.6" - checksum: a46c77510d0e5b08cf910959fb2199155932bcbf2a3280b737e2be2f8f7526abb70ebd790fe61be97e652008bc6a8e90b2e55dd8d61aaaae9fc69d3c104b4836 - languageName: node - linkType: hard - "@svgr/plugin-jsx@npm:8.0.1": version: 8.0.1 resolution: "@svgr/plugin-jsx@npm:8.0.1" @@ -3938,18 +3593,6 @@ __metadata: languageName: node linkType: hard -"@svgr/plugin-jsx@npm:^5.5.0": - version: 5.5.0 - resolution: "@svgr/plugin-jsx@npm:5.5.0" - dependencies: - "@babel/core": "npm:^7.12.3" - "@svgr/babel-preset": "npm:^5.5.0" - "@svgr/hast-util-to-babel-ast": "npm:^5.5.0" - svg-parser: "npm:^2.0.2" - checksum: e053f8dd6bfcd72377b432dd5b1db3c89d503d29839639a87f85b597a680d0b69e33a4db376f5a1074a89615f7157cd36f63f94bdb4083a0fd5bbe918c7fcb9b - languageName: node - linkType: hard - "@svgr/plugin-prettier@npm:8.0.1": version: 8.0.1 resolution: "@svgr/plugin-prettier@npm:8.0.1" @@ -3975,118 +3618,84 @@ __metadata: languageName: node linkType: hard -"@svgr/plugin-svgo@npm:^5.5.0": - version: 5.5.0 - resolution: "@svgr/plugin-svgo@npm:5.5.0" - dependencies: - cosmiconfig: "npm:^7.0.0" - deepmerge: "npm:^4.2.2" - svgo: "npm:^1.2.2" - checksum: 7cc92eabcaffe117d6f9ac5ab80207dc43b17d4f42ab3f84da202f93a44081ed6adc0fe4e23c2629a8e6ef227649b1083234dfa0728726c471dd0b4eb68221ae - languageName: node - linkType: hard - -"@svgr/webpack@npm:^5.5.0": - version: 5.5.0 - resolution: "@svgr/webpack@npm:5.5.0" - dependencies: - "@babel/core": "npm:^7.12.3" - "@babel/plugin-transform-react-constant-elements": "npm:^7.12.1" - "@babel/preset-env": "npm:^7.12.1" - "@babel/preset-react": "npm:^7.12.5" - "@svgr/core": "npm:^5.5.0" - "@svgr/plugin-jsx": "npm:^5.5.0" - "@svgr/plugin-svgo": "npm:^5.5.0" - loader-utils: "npm:^2.0.0" - checksum: 91f0b4176d22e8414d200f785d6cf9793ce39062f44be1eb2426c2f4415ee75d57e0670ae1e549b4a9222f20f4f06157fd9b121fa74c107d2cb821920874e79e - languageName: node - linkType: hard - -"@swc/core-darwin-arm64@npm:1.3.82": - version: 1.3.82 - resolution: "@swc/core-darwin-arm64@npm:1.3.82" +"@swc/core-darwin-arm64@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-darwin-arm64@npm:1.3.100" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.3.82": - version: 1.3.82 - resolution: "@swc/core-darwin-x64@npm:1.3.82" +"@swc/core-darwin-x64@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-darwin-x64@npm:1.3.100" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.3.82": - version: 1.3.82 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.82" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@swc/core-linux-arm64-gnu@npm:1.3.82": - version: 1.3.82 - resolution: "@swc/core-linux-arm64-gnu@npm:1.3.82" +"@swc/core-linux-arm64-gnu@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.100" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.3.82": - version: 1.3.82 - resolution: "@swc/core-linux-arm64-musl@npm:1.3.82" +"@swc/core-linux-arm64-musl@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.100" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.3.82": - version: 1.3.82 - resolution: "@swc/core-linux-x64-gnu@npm:1.3.82" +"@swc/core-linux-x64-gnu@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.100" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.3.82": - version: 1.3.82 - resolution: "@swc/core-linux-x64-musl@npm:1.3.82" +"@swc/core-linux-x64-musl@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-linux-x64-musl@npm:1.3.100" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.3.82": - version: 1.3.82 - resolution: "@swc/core-win32-arm64-msvc@npm:1.3.82" +"@swc/core-win32-arm64-msvc@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.100" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.3.82": - version: 1.3.82 - resolution: "@swc/core-win32-ia32-msvc@npm:1.3.82" +"@swc/core-win32-ia32-msvc@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.100" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.3.82": - version: 1.3.82 - resolution: "@swc/core-win32-x64-msvc@npm:1.3.82" +"@swc/core-win32-x64-msvc@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.100" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@swc/core@npm:^1.3.82": - version: 1.3.82 - resolution: "@swc/core@npm:1.3.82" +"@swc/core@npm:^1.3.82, @swc/core@npm:^1.3.96": + version: 1.3.100 + resolution: "@swc/core@npm:1.3.100" dependencies: - "@swc/core-darwin-arm64": "npm:1.3.82" - "@swc/core-darwin-x64": "npm:1.3.82" - "@swc/core-linux-arm-gnueabihf": "npm:1.3.82" - "@swc/core-linux-arm64-gnu": "npm:1.3.82" - "@swc/core-linux-arm64-musl": "npm:1.3.82" - "@swc/core-linux-x64-gnu": "npm:1.3.82" - "@swc/core-linux-x64-musl": "npm:1.3.82" - "@swc/core-win32-arm64-msvc": "npm:1.3.82" - "@swc/core-win32-ia32-msvc": "npm:1.3.82" - "@swc/core-win32-x64-msvc": "npm:1.3.82" - "@swc/types": "npm:^0.1.4" + "@swc/core-darwin-arm64": "npm:1.3.100" + "@swc/core-darwin-x64": "npm:1.3.100" + "@swc/core-linux-arm64-gnu": "npm:1.3.100" + "@swc/core-linux-arm64-musl": "npm:1.3.100" + "@swc/core-linux-x64-gnu": "npm:1.3.100" + "@swc/core-linux-x64-musl": "npm:1.3.100" + "@swc/core-win32-arm64-msvc": "npm:1.3.100" + "@swc/core-win32-ia32-msvc": "npm:1.3.100" + "@swc/core-win32-x64-msvc": "npm:1.3.100" + "@swc/counter": "npm:^0.1.1" + "@swc/types": "npm:^0.1.5" peerDependencies: "@swc/helpers": ^0.5.0 dependenciesMeta: @@ -4094,8 +3703,6 @@ __metadata: optional: true "@swc/core-darwin-x64": optional: true - "@swc/core-linux-arm-gnueabihf": - optional: true "@swc/core-linux-arm64-gnu": optional: true "@swc/core-linux-arm64-musl": @@ -4113,7 +3720,14 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: c3ba02f9875a9eb24838032e2173361858d9bb25e2745b02b31a27653167ea8a9dda2ea45f3ff4fa2780612c13644d762a1223b2ee7f02dd7f73c825228257d9 + checksum: 3dee9f42e810cd35fb16d1daf4e9a528a0ad249168f6795cc5b9d267cac0a79ccda95fc639ca4188ff79c866ecf187fea077dc3e43da2f108c312b4983ab925b + languageName: node + linkType: hard + +"@swc/counter@npm:^0.1.1": + version: 0.1.2 + resolution: "@swc/counter@npm:0.1.2" + checksum: 8427c594f1f0cf44b83885e9c8fe1e370c9db44ae96e07a37c117a6260ee97797d0709483efbcc244e77bac578690215f45b23254c4cd8a70fb25ddbb50bf33e languageName: node linkType: hard @@ -4138,10 +3752,17 @@ __metadata: languageName: node linkType: hard -"@swc/types@npm:^0.1.4": - version: 0.1.4 - resolution: "@swc/types@npm:0.1.4" - checksum: 82a11b3615add70e98a8ba825b711946303f21810afb0f73e36818942a9b55c62d0b0d5ac607aee5a25fa13dfe8f47804199ca7cc029e11e3ed4c8105e32c393 +"@swc/plugin-remove-console@npm:^1.5.105": + version: 1.5.105 + resolution: "@swc/plugin-remove-console@npm:1.5.105" + checksum: b82710090c3202a473771a9c6a67da3fd5136e19d8214b967de8d3010139d95727f0834920cbb3a4fb284d68f363a4650d32f692c5293854e902b5fa33c3fbab + languageName: node + linkType: hard + +"@swc/types@npm:^0.1.5": + version: 0.1.5 + resolution: "@swc/types@npm:0.1.5" + checksum: 5f4de8c60d2623bed607c7fa1e0cee4ffc682af28d5ffe88dc9ed9903a1c2088ccc39f684689d6bb314595c9fbb560beaec773d633be515fb856ffc81d738822 languageName: node linkType: hard @@ -4308,25 +3929,6 @@ __metadata: languageName: node linkType: hard -"@types/body-parser@npm:*": - version: 1.19.2 - resolution: "@types/body-parser@npm:1.19.2" - dependencies: - "@types/connect": "npm:*" - "@types/node": "npm:*" - checksum: e17840c7d747a549f00aebe72c89313d09fbc4b632b949b2470c5cb3b1cb73863901ae84d9335b567a79ec5efcfb8a28ff8e3f36bc8748a9686756b6d5681f40 - languageName: node - linkType: hard - -"@types/bonjour@npm:^3.5.9": - version: 3.5.10 - resolution: "@types/bonjour@npm:3.5.10" - dependencies: - "@types/node": "npm:*" - checksum: bfcadb042a41b124c4e3de4925e3be6d35b78f93f27c4535d5ff86980dc0f8bc407ed99b9b54528952dc62834d5a779392f7a12c2947dd19330eb05a6bcae15a - languageName: node - linkType: hard - "@types/cacheable-request@npm:^6.0.1": version: 6.0.3 resolution: "@types/cacheable-request@npm:6.0.3" @@ -4339,25 +3941,6 @@ __metadata: languageName: node linkType: hard -"@types/connect-history-api-fallback@npm:^1.3.5": - version: 1.5.0 - resolution: "@types/connect-history-api-fallback@npm:1.5.0" - dependencies: - "@types/express-serve-static-core": "npm:*" - "@types/node": "npm:*" - checksum: f180e7c540728d6dd3a1eb2376e445fe7f9de4ee8a5b460d5ad80062cdb6de6efc91c6851f39e9d5933b3dcd5cd370673c52343a959aa091238b6f863ea4447c - languageName: node - linkType: hard - -"@types/connect@npm:*": - version: 3.4.35 - resolution: "@types/connect@npm:3.4.35" - dependencies: - "@types/node": "npm:*" - checksum: fe81351470f2d3165e8b12ce33542eef89ea893e36dd62e8f7d72566dfb7e448376ae962f9f3ea888547ce8b55a40020ca0e01d637fab5d99567673084542641 - languageName: node - linkType: hard - "@types/d3-array@npm:^3.0.3": version: 3.0.4 resolution: "@types/d3-array@npm:3.0.4" @@ -4453,7 +4036,7 @@ __metadata: languageName: node linkType: hard -"@types/eslint@npm:*, @types/eslint@npm:^7.29.0 || ^8.4.1, @types/eslint@npm:^8.4.6": +"@types/eslint@npm:*": version: 8.44.2 resolution: "@types/eslint@npm:8.44.2" dependencies: @@ -4463,41 +4046,10 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:^1.0.0": - version: 1.0.1 - resolution: "@types/estree@npm:1.0.1" - checksum: f252569c002506c61ad913e778aa69415908078c46c78c901ccad77bc66cd34f1e1b9babefb8ff0d27c07a15fb0824755edd7bb3fa7ea828f32ae0fe5faa9962 - languageName: node - linkType: hard - -"@types/estree@npm:0.0.39": - version: 0.0.39 - resolution: "@types/estree@npm:0.0.39" - checksum: 9f0f20990dbf725470564d4d815d3758ac688b790f601ea98654b6e0b9797dc3c80306fb525abdacd9e75e014e3d09ad326098eaa2ed1851e4823a8e278538aa - languageName: node - linkType: hard - -"@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^4.17.33": - version: 4.17.36 - resolution: "@types/express-serve-static-core@npm:4.17.36" - dependencies: - "@types/node": "npm:*" - "@types/qs": "npm:*" - "@types/range-parser": "npm:*" - "@types/send": "npm:*" - checksum: 47d5c30a4a2a6de5dd1ceef6fed61a2e49e50e09ab3bab67a2bfa4375617c54b0397b3397ef4dad80ae3a7e400943464d857b437dabd9fed88b47256f2be774b - languageName: node - linkType: hard - -"@types/express@npm:*, @types/express@npm:^4.17.13": - version: 4.17.17 - resolution: "@types/express@npm:4.17.17" - dependencies: - "@types/body-parser": "npm:*" - "@types/express-serve-static-core": "npm:^4.17.33" - "@types/qs": "npm:*" - "@types/serve-static": "npm:*" - checksum: e2959a5fecdc53f8a524891a16e66dfc330ee0519e89c2579893179db686e10cfa6079a68e0fb8fd00eedbcaf3eabfd10916461939f3bc02ef671d848532c37e +"@types/estree@npm:*, @types/estree@npm:1.0.5, @types/estree@npm:^1.0.0": + version: 1.0.5 + resolution: "@types/estree@npm:1.0.5" + checksum: 7de6d928dd4010b0e20c6919e1a6c27b61f8d4567befa89252055fad503d587ecb9a1e3eab1b1901f923964d7019796db810b7fd6430acb26c32866d126fd408 languageName: node linkType: hard @@ -4538,13 +4090,6 @@ __metadata: languageName: node linkType: hard -"@types/html-minifier-terser@npm:^6.0.0": - version: 6.1.0 - resolution: "@types/html-minifier-terser@npm:6.1.0" - checksum: 06bb3e1e8ebff43602c826d67f53f1fd3a6b9c751bfbc67d7ea4e85679446a639e20e60adad8c9d44ab4baf1337b3861b91e7e5e2be798575caf0cc1a5712552 - languageName: node - linkType: hard - "@types/http-cache-semantics@npm:*": version: 4.0.1 resolution: "@types/http-cache-semantics@npm:4.0.1" @@ -4552,22 +4097,6 @@ __metadata: languageName: node linkType: hard -"@types/http-errors@npm:*": - version: 2.0.1 - resolution: "@types/http-errors@npm:2.0.1" - checksum: 3bb0c50b0a652e679a84c30cd0340d696c32ef6558518268c238840346c077f899315daaf1c26c09c57ddd5dc80510f2a7f46acd52bf949e339e35ed3ee9654f - languageName: node - linkType: hard - -"@types/http-proxy@npm:^1.17.8": - version: 1.17.11 - resolution: "@types/http-proxy@npm:1.17.11" - dependencies: - "@types/node": "npm:*" - checksum: 7cda456611b4adfdd87e4317745af643153d502576fb7095806d5b1b397b9a878b105e14abff9b7ab1d1c71132b61b5fc7052461f766165963950f1b46e18315 - languageName: node - linkType: hard - "@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": version: 2.0.4 resolution: "@types/istanbul-lib-coverage@npm:2.0.4" @@ -4613,7 +4142,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.4, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": version: 7.0.12 resolution: "@types/json-schema@npm:7.0.12" checksum: 7a72ba9cb7d2b45d7bb032e063c9eeb1ce4102d62551761e84c91f99f8273ba5aaffd34be835869456ec7c40761b4389009d9e777c0020a7227ca0f5e3238e94 @@ -4654,20 +4183,6 @@ __metadata: languageName: node linkType: hard -"@types/mime@npm:*": - version: 3.0.1 - resolution: "@types/mime@npm:3.0.1" - checksum: 4040fac73fd0cea2460e29b348c1a6173da747f3a87da0dbce80dd7a9355a3d0e51d6d9a401654f3e5550620e3718b5a899b2ec1debf18424e298a2c605346e7 - languageName: node - linkType: hard - -"@types/mime@npm:^1": - version: 1.3.2 - resolution: "@types/mime@npm:1.3.2" - checksum: 0493368244cced1a69cb791b485a260a422e6fcc857782e1178d1e6f219f1b161793e9f87f5fae1b219af0f50bee24fcbe733a18b4be8fdd07a38a8fb91146fd - languageName: node - linkType: hard - "@types/ms@npm:*": version: 0.7.31 resolution: "@types/ms@npm:0.7.31" @@ -4720,27 +4235,6 @@ __metadata: languageName: node linkType: hard -"@types/q@npm:^1.5.1": - version: 1.5.6 - resolution: "@types/q@npm:1.5.6" - checksum: 84af6989fb64b5061ef95c27cf3c0bcabd624a6209c7bcea30f5c8928ec05a78fd779d1219e3fab785260f59db65906e6be17abf4e723cf42c1198b3cfe3bae3 - languageName: node - linkType: hard - -"@types/qs@npm:*": - version: 6.9.8 - resolution: "@types/qs@npm:6.9.8" - checksum: c28e07d00d07970e5134c6eed184a0189b8a4649e28fdf36d9117fe671c067a44820890de6bdecef18217647a95e9c6aebdaaae69f5fe4b0bec9345db885f77e - languageName: node - linkType: hard - -"@types/range-parser@npm:*": - version: 1.2.4 - resolution: "@types/range-parser@npm:1.2.4" - checksum: b7c0dfd5080a989d6c8bb0b6750fc0933d9acabeb476da6fe71d8bdf1ab65e37c136169d84148034802f48378ab94e3c37bb4ef7656b2bec2cb9c0f8d4146a95 - languageName: node - linkType: hard - "@types/react-dom@npm:^18.0.0, @types/react-dom@npm:^18.2.1": version: 18.2.1 resolution: "@types/react-dom@npm:18.2.1" @@ -4782,15 +4276,6 @@ __metadata: languageName: node linkType: hard -"@types/resolve@npm:1.17.1": - version: 1.17.1 - resolution: "@types/resolve@npm:1.17.1" - dependencies: - "@types/node": "npm:*" - checksum: dc6a6df507656004e242dcb02c784479deca516d5f4b58a1707e708022b269ae147e1da0521f3e8ad0d63638869d87e0adc023f0bd5454aa6f72ac66c7525cf5 - languageName: node - linkType: hard - "@types/responselike@npm:^1.0.0": version: 1.0.0 resolution: "@types/responselike@npm:1.0.0" @@ -4800,13 +4285,6 @@ __metadata: languageName: node linkType: hard -"@types/retry@npm:0.12.0": - version: 0.12.0 - resolution: "@types/retry@npm:0.12.0" - checksum: bbd0b88f4b3eba7b7acfc55ed09c65ef6f2e1bcb4ec9b4dca82c66566934351534317d294a770a7cc6c0468d5573c5350abab6e37c65f8ef254443e1b028e44d - languageName: node - linkType: hard - "@types/scheduler@npm:*": version: 0.16.3 resolution: "@types/scheduler@npm:0.16.3" @@ -4821,45 +4299,6 @@ __metadata: languageName: node linkType: hard -"@types/send@npm:*": - version: 0.17.1 - resolution: "@types/send@npm:0.17.1" - dependencies: - "@types/mime": "npm:^1" - "@types/node": "npm:*" - checksum: 6420837887858f7aa82f2c0272f73edb42385bd0978f43095e83590a405d86c8cc6d918c30b2d542f1d8bddc9f3d16c2e8fdfca936940de71b97c45f228d1896 - languageName: node - linkType: hard - -"@types/serve-index@npm:^1.9.1": - version: 1.9.1 - resolution: "@types/serve-index@npm:1.9.1" - dependencies: - "@types/express": "npm:*" - checksum: 026f3995fb500f6df7c3fe5009e53bad6d739e20b84089f58ebfafb2f404bbbb6162bbe33f72d2f2af32d5b8d3799c8e179793f90d9ed5871fb8591190bb6056 - languageName: node - linkType: hard - -"@types/serve-static@npm:*, @types/serve-static@npm:^1.13.10": - version: 1.15.2 - resolution: "@types/serve-static@npm:1.15.2" - dependencies: - "@types/http-errors": "npm:*" - "@types/mime": "npm:*" - "@types/node": "npm:*" - checksum: d5f8f5aaa765be6417aa3f2ebe36591f4e9d2d8a7480edf7d3db041427420fd565cb921fc021271098dd2afafce2b443fc0d978faa3ae21a2a58ebde7d525e9e - languageName: node - linkType: hard - -"@types/sockjs@npm:^0.3.33": - version: 0.3.33 - resolution: "@types/sockjs@npm:0.3.33" - dependencies: - "@types/node": "npm:*" - checksum: b9bbb2b5c5ead2fb884bb019f61a014e37410bddd295de28184e1b2e71ee6b04120c5ba7b9954617f0bdf962c13d06249ce65004490889c747c80d3f628ea842 - languageName: node - linkType: hard - "@types/stack-utils@npm:^2.0.0": version: 2.0.1 resolution: "@types/stack-utils@npm:2.0.1" @@ -4867,13 +4306,6 @@ __metadata: languageName: node linkType: hard -"@types/trusted-types@npm:^2.0.2": - version: 2.0.3 - resolution: "@types/trusted-types@npm:2.0.3" - checksum: 4794804bc4a4a173d589841b6d26cf455ff5dc4f3e704e847de7d65d215f2e7043d8757e4741ce3a823af3f08260a8d04a1a6e9c5ec9b20b7b04586956a6b005 - languageName: node - linkType: hard - "@types/unist@npm:*, @types/unist@npm:^3.0.0": version: 3.0.0 resolution: "@types/unist@npm:3.0.0" @@ -4924,15 +4356,6 @@ __metadata: languageName: node linkType: hard -"@types/ws@npm:^8.5.5": - version: 8.5.5 - resolution: "@types/ws@npm:8.5.5" - dependencies: - "@types/node": "npm:*" - checksum: b2d7da5bd469c2ff1ddcfba1da33a556dc02c539e727001e7dc7b4182935154143e96a101cc091686acefb4e115c8ee38111c6634934748b8dd2db0c851c50ab - languageName: node - linkType: hard - "@types/yargs-parser@npm:*": version: 21.0.0 resolution: "@types/yargs-parser@npm:21.0.0" @@ -5117,6 +4540,79 @@ __metadata: languageName: node linkType: hard +"@vitejs/plugin-basic-ssl@npm:^1.0.2": + version: 1.0.2 + resolution: "@vitejs/plugin-basic-ssl@npm:1.0.2" + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + checksum: ee9be91254d848278dba3dbf5c73726bb181dcfba6972dfb657db0e1b0f3d25567aac3ed179924d5ae503848e74824f3284547d792e0f6d7ca02dbec32fb6510 + languageName: node + linkType: hard + +"@vitejs/plugin-react-swc@npm:^3.5.0": + version: 3.5.0 + resolution: "@vitejs/plugin-react-swc@npm:3.5.0" + dependencies: + "@swc/core": "npm:^1.3.96" + peerDependencies: + vite: ^4 || ^5 + checksum: ca3315e2000303aa6da35b6bedc3a5c57550c5576dfa12e12d097a2f69f8c7bc68e6ce7a068685ae13fcbe121d43c133b47a0d4637ac58e366471dd6645bf8ac + languageName: node + linkType: hard + +"@vitest/expect@npm:1.0.4": + version: 1.0.4 + resolution: "@vitest/expect@npm:1.0.4" + dependencies: + "@vitest/spy": "npm:1.0.4" + "@vitest/utils": "npm:1.0.4" + chai: "npm:^4.3.10" + checksum: 8339b7c7a14c7c8d006053868ddae4aa35b1df7fccd80761828152d61e4e7983d2b9856ac50f6ea57637815a7f283a0b26090f7ddd17a569f531892c4fd59aad + languageName: node + linkType: hard + +"@vitest/runner@npm:1.0.4": + version: 1.0.4 + resolution: "@vitest/runner@npm:1.0.4" + dependencies: + "@vitest/utils": "npm:1.0.4" + p-limit: "npm:^5.0.0" + pathe: "npm:^1.1.1" + checksum: b5ef63c71c810aaeb53b5366e661fc33674e414b01f6e24d7b2811201f34b7b11584d757f0f7fe652d7ae2a59987f2a74cf4df83a7f5e4d329371b888e1f47c7 + languageName: node + linkType: hard + +"@vitest/snapshot@npm:1.0.4": + version: 1.0.4 + resolution: "@vitest/snapshot@npm:1.0.4" + dependencies: + magic-string: "npm:^0.30.5" + pathe: "npm:^1.1.1" + pretty-format: "npm:^29.7.0" + checksum: 7a95eb6a29d87afd4adfdbde64858d4a9f130b5996fc0e160ce784c61f0555316655b6f98e9ac86ec1622062e9396ea157a7cec61a9e70af5be9c40d94785c6b + languageName: node + linkType: hard + +"@vitest/spy@npm:1.0.4": + version: 1.0.4 + resolution: "@vitest/spy@npm:1.0.4" + dependencies: + tinyspy: "npm:^2.2.0" + checksum: 4b8da875369199c23611b3287ff8e1f86ad5b0596ff52c0bf85fba33a35c46b092d9e9f5274dabe60b83be016042594ceab6e3bfe61bd401dca6dd4bef6296c8 + languageName: node + linkType: hard + +"@vitest/utils@npm:1.0.4": + version: 1.0.4 + resolution: "@vitest/utils@npm:1.0.4" + dependencies: + diff-sequences: "npm:^29.6.3" + loupe: "npm:^2.3.7" + pretty-format: "npm:^29.7.0" + checksum: a02779f57979e00afda71f42aa2c029c9857bcc2e9e33a7ae6560dc0a13fd748a9d088321c61061649dcd5de466811275f4c6c9a1725564c6ae3b3c886edfa90 + languageName: node + linkType: hard + "@webassemblyjs/ast@npm:1.11.5, @webassemblyjs/ast@npm:^1.11.5": version: 1.11.5 resolution: "@webassemblyjs/ast@npm:1.11.5" @@ -5352,16 +4848,6 @@ __metadata: languageName: node linkType: hard -"accepts@npm:~1.3.4, accepts@npm:~1.3.5, accepts@npm:~1.3.8": - version: 1.3.8 - resolution: "accepts@npm:1.3.8" - dependencies: - mime-types: "npm:~2.1.34" - negotiator: "npm:0.6.3" - checksum: 67eaaa90e2917c58418e7a9b89392002d2b1ccd69bcca4799135d0c632f3b082f23f4ae4ddeedbced5aa59bcc7bdf4699c69ebed4593696c922462b7bc5744d6 - languageName: node - linkType: hard - "acorn-globals@npm:^6.0.0": version: 6.0.0 resolution: "acorn-globals@npm:6.0.0" @@ -5397,10 +4883,10 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^8.0.0, acorn-walk@npm:^8.1.1": - version: 8.2.0 - resolution: "acorn-walk@npm:8.2.0" - checksum: e69f7234f2adfeb16db3671429a7c80894105bd7534cb2032acf01bb26e6a847952d11a062d071420b43f8d82e33d2e57f26fe87d9cce0853e8143d8910ff1de +"acorn-walk@npm:^8.0.0, acorn-walk@npm:^8.1.1, acorn-walk@npm:^8.3.0": + version: 8.3.1 + resolution: "acorn-walk@npm:8.3.1" + checksum: 64187f1377afcba01ec6a57950e3f6a31fff50e429cdb9c9ab2c24343375e711f0d552e5fce5b6ecf21f754566e7526b6d79e4da80bd83c7ad15644d285b2ad5 languageName: node linkType: hard @@ -5413,12 +4899,12 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.0.4, acorn@npm:^8.2.4, acorn@npm:^8.4.1, acorn@npm:^8.7.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": - version: 8.10.0 - resolution: "acorn@npm:8.10.0" +"acorn@npm:^8.0.4, acorn@npm:^8.10.0, acorn@npm:^8.2.4, acorn@npm:^8.4.1, acorn@npm:^8.7.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": + version: 8.11.2 + resolution: "acorn@npm:8.11.2" bin: acorn: bin/acorn - checksum: 522310c20fdc3c271caed3caf0f06c51d61cb42267279566edd1d58e83dbc12eebdafaab666a0f0be1b7ad04af9c6bc2a6f478690a9e6391c3c8b165ada917dd + checksum: ff559b891382ad4cd34cc3c493511d0a7075a51f5f9f02a03440e92be3705679367238338566c5fbd3521ecadd565d29301bc8e16cb48379206bffbff3d72500 languageName: node linkType: hard @@ -5443,23 +4929,6 @@ __metadata: languageName: unknown linkType: soft -"address@npm:^1.0.1, address@npm:^1.1.2": - version: 1.2.2 - resolution: "address@npm:1.2.2" - checksum: 57d80a0c6ccadc8769ad3aeb130c1599e8aee86a8d25f671216c40df9b8489d6c3ef879bc2752b40d1458aa768f947c2d91e5b2fedfe63cf702c40afdfda9ba9 - languageName: node - linkType: hard - -"adjust-sourcemap-loader@npm:^4.0.0": - version: 4.0.0 - resolution: "adjust-sourcemap-loader@npm:4.0.0" - dependencies: - loader-utils: "npm:^2.0.0" - regex-parser: "npm:^2.2.11" - checksum: 813004ae62b3b409208ae6994b2b95cdc833b52655706f487c5334221218add29f1b7c597a15128c7cbc2784c15d8a1bcb8e7f9a8ea0d1f156973998ea695c82 - languageName: node - linkType: hard - "adm-zip@npm:^0.5.9": version: 0.5.10 resolution: "adm-zip@npm:0.5.10" @@ -5497,20 +4966,6 @@ __metadata: languageName: node linkType: hard -"ajv-formats@npm:^2.1.1": - version: 2.1.1 - resolution: "ajv-formats@npm:2.1.1" - dependencies: - ajv: "npm:^8.0.0" - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - checksum: 70c263ded219bf277ffd9127f793b625f10a46113b2e901e150da41931fcfd7f5592da6d66862f4449bb157ffe65867c3294a7df1d661cc232c4163d5a1718ed - languageName: node - linkType: hard - "ajv-keywords@npm:^3.4.1, ajv-keywords@npm:^3.5.2": version: 3.5.2 resolution: "ajv-keywords@npm:3.5.2" @@ -5520,18 +4975,7 @@ __metadata: languageName: node linkType: hard -"ajv-keywords@npm:^5.1.0": - version: 5.1.0 - resolution: "ajv-keywords@npm:5.1.0" - dependencies: - fast-deep-equal: "npm:^3.1.3" - peerDependencies: - ajv: ^8.8.2 - checksum: 5021f96ab7ddd03a4005326bd06f45f448ebfbb0fe7018b1b70b6c28142fa68372bda2057359814b83fd0b2d4c8726c297f0a7557b15377be7b56ce5344533d8 - languageName: node - linkType: hard - -"ajv@npm:^6.10.0, ajv@npm:^6.12.0, ajv@npm:^6.12.2, ajv@npm:^6.12.4, ajv@npm:^6.12.5": +"ajv@npm:^6.10.0, ajv@npm:^6.12.0, ajv@npm:^6.12.4, ajv@npm:^6.12.5": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -5543,19 +4987,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^8.0.0, ajv@npm:^8.6.0, ajv@npm:^8.9.0": - version: 8.12.0 - resolution: "ajv@npm:8.12.0" - dependencies: - fast-deep-equal: "npm:^3.1.1" - json-schema-traverse: "npm:^1.0.0" - require-from-string: "npm:^2.0.2" - uri-js: "npm:^4.2.2" - checksum: b406f3b79b5756ac53bfe2c20852471b08e122bc1ee4cde08ae4d6a800574d9cd78d60c81c69c63ff81e4da7cd0b638fafbb2303ae580d49cf1600b9059efb85 - languageName: node - linkType: hard - -"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.1": +"ansi-escapes@npm:^4.2.1": version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" dependencies: @@ -5573,15 +5005,6 @@ __metadata: languageName: node linkType: hard -"ansi-html-community@npm:^0.0.8": - version: 0.0.8 - resolution: "ansi-html-community@npm:0.0.8" - bin: - ansi-html: bin/ansi-html - checksum: 08df3696720edacd001a8d53b197bb5728242c55484680117dab9f7633a6320e961a939bddd88ee5c71d4a64f3ddb49444d1c694bd0668adbb3f95ba114f2386 - languageName: node - linkType: hard - "ansi-regex@npm:^2.0.0": version: 2.1.1 resolution: "ansi-regex@npm:2.1.1" @@ -5642,13 +5065,6 @@ __metadata: languageName: node linkType: hard -"any-promise@npm:^1.0.0": - version: 1.3.0 - resolution: "any-promise@npm:1.3.0" - checksum: 6737469ba353b5becf29e4dc3680736b9caa06d300bda6548812a8fee63ae7d336d756f88572fa6b5219aed36698d808fa55f62af3e7e6845c7a1dc77d240edb - languageName: node - linkType: hard - "anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": version: 3.1.3 resolution: "anymatch@npm:3.1.3" @@ -5666,11 +5082,10 @@ __metadata: languageName: node linkType: hard -"app-builder-lib@npm:24.6.4": - version: 24.6.4 - resolution: "app-builder-lib@npm:24.6.4" +"app-builder-lib@npm:24.10.0": + version: 24.10.0 + resolution: "app-builder-lib@npm:24.10.0" dependencies: - 7zip-bin: "npm:~5.1.1" "@develar/schema-utils": "npm:~2.6.5" "@electron/notarize": "npm:2.1.0" "@electron/osx-sign": "npm:1.0.5" @@ -5679,12 +5094,12 @@ __metadata: "@types/fs-extra": "npm:9.0.13" async-exit-hook: "npm:^2.0.1" bluebird-lst: "npm:^1.0.9" - builder-util: "npm:24.5.0" - builder-util-runtime: "npm:9.2.1" + builder-util: "npm:24.9.4" + builder-util-runtime: "npm:9.2.3" chromium-pickle-js: "npm:^0.2.0" debug: "npm:^4.3.4" ejs: "npm:^3.1.8" - electron-publish: "npm:24.5.0" + electron-publish: "npm:24.9.4" form-data: "npm:^4.0.0" fs-extra: "npm:^10.1.0" hosted-git-info: "npm:^4.1.0" @@ -5698,7 +5113,7 @@ __metadata: semver: "npm:^7.3.8" tar: "npm:^6.1.12" temp-file: "npm:^3.4.0" - checksum: 682b0ed778f69bbba59b1ff7376373120cd17c59c9c9b953bfc994f72e3938c38f2ad3ce415eadab8e0e13e2e2a8a48ac6aa63e1d0f48ddff86cfc34ec58d90b + checksum: 8350e08488d13c239ae62d8b4e799d5017d186547538161f47ec6475a3b290152e644e01788f4e35ba0b5bebdf4ef5118450fb52e76bc1813eb81f3db8025976 languageName: node linkType: hard @@ -5726,13 +5141,6 @@ __metadata: languageName: node linkType: hard -"arg@npm:^5.0.2": - version: 5.0.2 - resolution: "arg@npm:5.0.2" - checksum: 92fe7de222054a060fd2329e92e867410b3ea260328147ee3fb7855f78efae005f4087e698d4e688a856893c56bb09951588c40f2c901cf6996cd8cd7bcfef2c - languageName: node - linkType: hard - "argparse@npm:^1.0.7": version: 1.0.10 resolution: "argparse@npm:1.0.10" @@ -5768,20 +5176,6 @@ __metadata: languageName: node linkType: hard -"array-flatten@npm:1.1.1": - version: 1.1.1 - resolution: "array-flatten@npm:1.1.1" - checksum: e13c9d247241be82f8b4ec71d035ed7204baa82fae820d4db6948d30d3c4a9f2b3905eb2eec2b937d4aa3565200bd3a1c500480114cff649fa748747d2a50feb - languageName: node - linkType: hard - -"array-flatten@npm:^2.1.2": - version: 2.1.2 - resolution: "array-flatten@npm:2.1.2" - checksum: e8988aac1fbfcdaae343d08c9a06a6fddd2c6141721eeeea45c3cf523bf4431d29a46602929455ed548c7a3e0769928cdc630405427297e7081bd118fdec9262 - languageName: node - linkType: hard - "array-includes@npm:^3.1.5, array-includes@npm:^3.1.6": version: 3.1.6 resolution: "array-includes@npm:3.1.6" @@ -5826,19 +5220,6 @@ __metadata: languageName: node linkType: hard -"array.prototype.reduce@npm:^1.0.6": - version: 1.0.6 - resolution: "array.prototype.reduce@npm:1.0.6" - dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - es-array-method-boxes-properly: "npm:^1.0.0" - is-string: "npm:^1.0.7" - checksum: 991989a3edb9716a3e3c6feb67a09abc8317e42535f1560156784e920f521418fff43abec57d14684015ef2d3f134830962b47b3d0be0c8a5dd68d8d7c65b9c1 - languageName: node - linkType: hard - "array.prototype.tosorted@npm:^1.1.1": version: 1.1.1 resolution: "array.prototype.tosorted@npm:1.1.1" @@ -5866,7 +5247,7 @@ __metadata: languageName: node linkType: hard -"asap@npm:~2.0.3, asap@npm:~2.0.6": +"asap@npm:~2.0.3": version: 2.0.6 resolution: "asap@npm:2.0.6" checksum: b244c0458c571945e4b3be0b14eb001bea5596f9868cc50cc711dc03d58a7e953517d3f0dad81ccde3ff37d1f074701fa76a6f07d41aaa992d7204a37b915dda @@ -5892,6 +5273,13 @@ __metadata: languageName: node linkType: hard +"assertion-error@npm:^1.1.0": + version: 1.1.0 + resolution: "assertion-error@npm:1.1.0" + checksum: fd9429d3a3d4fd61782eb3962ae76b6d08aa7383123fca0596020013b3ebd6647891a85b05ce821c47d1471ed1271f00b0545cf6a4326cf2fc91efcc3b0fbecf + languageName: node + linkType: hard + "ast-types-flow@npm:^0.0.7": version: 0.0.7 resolution: "ast-types-flow@npm:0.0.7" @@ -5913,13 +5301,6 @@ __metadata: languageName: node linkType: hard -"async-limiter@npm:~1.0.0": - version: 1.0.1 - resolution: "async-limiter@npm:1.0.1" - checksum: 2b849695b465d93ad44c116220dee29a5aeb63adac16c1088983c339b0de57d76e82533e8e364a93a9f997f28bbfc6a92948cefc120652bd07f3b59f8d75cf2b - languageName: node - linkType: hard - "async@npm:^3.2.3": version: 3.2.4 resolution: "async@npm:3.2.4" @@ -5941,24 +5322,6 @@ __metadata: languageName: node linkType: hard -"autoprefixer@npm:^10.4.12, autoprefixer@npm:^10.4.13": - version: 10.4.15 - resolution: "autoprefixer@npm:10.4.15" - dependencies: - browserslist: "npm:^4.21.10" - caniuse-lite: "npm:^1.0.30001520" - fraction.js: "npm:^4.2.0" - normalize-range: "npm:^0.1.2" - picocolors: "npm:^1.0.0" - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.1.0 - bin: - autoprefixer: bin/autoprefixer - checksum: 99ab82461d33bb79318dbf26c76d207eab8bf98680d8981aeddf7af4208fd57579b4c68dcf576b1d1baba8bd5410665b9406eac468f8119bd42e11b9ff0074b7 - languageName: node - linkType: hard - "available-typed-arrays@npm:^1.0.5": version: 1.0.5 resolution: "available-typed-arrays@npm:1.0.5" @@ -5982,7 +5345,7 @@ __metadata: languageName: node linkType: hard -"babel-jest@npm:^27.4.2, babel-jest@npm:^27.5.1": +"babel-jest@npm:^27.5.1": version: 27.5.1 resolution: "babel-jest@npm:27.5.1" dependencies: @@ -6000,24 +5363,9 @@ __metadata: languageName: node linkType: hard -"babel-loader@npm:^8.2.3": - version: 8.3.0 - resolution: "babel-loader@npm:8.3.0" - dependencies: - find-cache-dir: "npm:^3.3.1" - loader-utils: "npm:^2.0.0" - make-dir: "npm:^3.1.0" - schema-utils: "npm:^2.6.5" - peerDependencies: - "@babel/core": ^7.0.0 - webpack: ">=2" - checksum: e775e96f605f10d68adc693403ccda2470e856cc52e6017f3621c17dade003d0fc53facfce7b4ada02273a1c0a6a48167f798cc81b73110585d74bf890b39bd5 - languageName: node - linkType: hard - -"babel-plugin-istanbul@npm:^6.1.1": - version: 6.1.1 - resolution: "babel-plugin-istanbul@npm:6.1.1" +"babel-plugin-istanbul@npm:^6.1.1": + version: 6.1.1 + resolution: "babel-plugin-istanbul@npm:6.1.1" dependencies: "@babel/helper-plugin-utils": "npm:^7.0.0" "@istanbuljs/load-nyc-config": "npm:^1.0.0" @@ -6051,15 +5399,6 @@ __metadata: languageName: node linkType: hard -"babel-plugin-named-asset-import@npm:^0.3.8": - version: 0.3.8 - resolution: "babel-plugin-named-asset-import@npm:0.3.8" - peerDependencies: - "@babel/core": ^7.1.0 - checksum: d1e58df8cb75d91d070feea31087bc989906d3465144bde7e9f3c3690b514a90a55d3aebf3e65e76c5d4c743ecedde5f640f09f43a21fa60f1a5d413cb3f7a67 - languageName: node - linkType: hard - "babel-plugin-polyfill-corejs2@npm:^0.4.3, babel-plugin-polyfill-corejs2@npm:^0.4.5": version: 0.4.5 resolution: "babel-plugin-polyfill-corejs2@npm:0.4.5" @@ -6189,33 +5528,14 @@ __metadata: languageName: node linkType: hard -"batch@npm:0.6.1": - version: 0.6.1 - resolution: "batch@npm:0.6.1" - checksum: 61f9934c7378a51dce61b915586191078ef7f1c3eca707fdd58b96ff2ff56d9e0af2bdab66b1462301a73c73374239e6542d9821c0af787f3209a23365d07e7f - languageName: node - linkType: hard - -"better-sqlite3@npm:^9.1.1": - version: 9.1.1 - resolution: "better-sqlite3@npm:9.1.1" +"better-sqlite3@npm:^9.2.2": + version: 9.2.2 + resolution: "better-sqlite3@npm:9.2.2" dependencies: bindings: "npm:^1.5.0" node-gyp: "npm:latest" prebuild-install: "npm:^7.1.1" - checksum: 0e9dc50ebb449f1e2177a8960dcb0d87ef8cca85046920577de396955dd8783cf6b361c615e4f22a18227f5d66a9085500e9f4d840d92f970e51f84f7dea30f3 - languageName: node - linkType: hard - -"bfj@npm:^7.0.2": - version: 7.0.2 - resolution: "bfj@npm:7.0.2" - dependencies: - bluebird: "npm:^3.5.5" - check-types: "npm:^11.1.1" - hoopy: "npm:^0.1.4" - tryer: "npm:^1.0.1" - checksum: e1040fe6aec2afeb6f6c5231bbbc055616fa99c23c5249c7d20a2919507a69d8fd4d82d2245eca5ee08cbfcd3e70ce817328b8a20acda69af4638f1c11343bc7 + checksum: fc843a9ceb883e5c16eed8a3e7d85c15b52e3588a24424ad66391fc0bf5b94de2fa70016a716ad685cea8810e3233e958c0c1f350f35a5f18762021e313e297d languageName: node linkType: hard @@ -6226,13 +5546,6 @@ __metadata: languageName: node linkType: hard -"big.js@npm:^5.2.2": - version: 5.2.2 - resolution: "big.js@npm:5.2.2" - checksum: c04416aeb084f4aa1c5857722439c327cc0ada9bd99ab80b650e3f30e2e4f1b92a04527ed1e7df8ffcd7c0ea311745a04af12d53e2f091bf09a06f1292003827 - languageName: node - linkType: hard - "bin-build@npm:^3.0.0": version: 3.0.0 resolution: "bin-build@npm:3.0.0" @@ -6299,39 +5612,7 @@ __metadata: languageName: node linkType: hard -"body-parser@npm:1.20.1": - version: 1.20.1 - resolution: "body-parser@npm:1.20.1" - dependencies: - bytes: "npm:3.1.2" - content-type: "npm:~1.0.4" - debug: "npm:2.6.9" - depd: "npm:2.0.0" - destroy: "npm:1.2.0" - http-errors: "npm:2.0.0" - iconv-lite: "npm:0.4.24" - on-finished: "npm:2.4.1" - qs: "npm:6.11.0" - raw-body: "npm:2.5.1" - type-is: "npm:~1.6.18" - unpipe: "npm:1.0.0" - checksum: 5f8d128022a2fb8b6e7990d30878a0182f300b70e46b3f9d358a9433ad6275f0de46add6d63206da3637c01c3b38b6111a7480f7e7ac2e9f7b989f6133fe5510 - languageName: node - linkType: hard - -"bonjour-service@npm:^1.0.11": - version: 1.1.1 - resolution: "bonjour-service@npm:1.1.1" - dependencies: - array-flatten: "npm:^2.1.2" - dns-equal: "npm:^1.0.0" - fast-deep-equal: "npm:^3.1.3" - multicast-dns: "npm:^7.2.5" - checksum: 60a14328dff846a66ae5cddbba4f2e2845a4b3cf62f64d93b57808e08e5e1a8e8c4454e37e0e289741706b359a343444ba132957bf53be9e8f5eaebdebb06306 - languageName: node - linkType: hard - -"boolbase@npm:^1.0.0, boolbase@npm:~1.0.0": +"boolbase@npm:^1.0.0": version: 1.0.0 resolution: "boolbase@npm:1.0.0" checksum: 3e25c80ef626c3a3487c73dbfc70ac322ec830666c9ad915d11b701142fab25ec1e63eff2c450c74347acfd2de854ccde865cd79ef4db1683f7c7b046ea43bb0 @@ -6405,7 +5686,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.0.0, browserslist@npm:^4.14.5, browserslist@npm:^4.18.1, browserslist@npm:^4.21.10, browserslist@npm:^4.21.4, browserslist@npm:^4.21.9": +"browserslist@npm:^4.14.5, browserslist@npm:^4.21.10, browserslist@npm:^4.21.9": version: 4.21.10 resolution: "browserslist@npm:4.21.10" dependencies: @@ -6493,25 +5774,25 @@ __metadata: languageName: node linkType: hard -"builder-util-runtime@npm:9.2.1": - version: 9.2.1 - resolution: "builder-util-runtime@npm:9.2.1" +"builder-util-runtime@npm:9.2.3": + version: 9.2.3 + resolution: "builder-util-runtime@npm:9.2.3" dependencies: debug: "npm:^4.3.4" sax: "npm:^1.2.4" - checksum: 23a4cc0e65d1547d022c9ec9b84958c811b3ef064baff58a103b985f902fd4bce043547126eb834227445fa7da915169069837ffed38631a59cd64385e45fe43 + checksum: 15f9618af1a2224d0ade19fa7dca12f80bc2ceeb4fc89242f2505b44f58d13d3439bb08a5bec865bb0f8e930fa57bd112d9ee9024f22f1654925ffe2bed3925b languageName: node linkType: hard -"builder-util@npm:24.5.0": - version: 24.5.0 - resolution: "builder-util@npm:24.5.0" +"builder-util@npm:24.9.4": + version: 24.9.4 + resolution: "builder-util@npm:24.9.4" dependencies: - 7zip-bin: "npm:~5.1.1" + 7zip-bin: "npm:~5.2.0" "@types/debug": "npm:^4.1.6" app-builder-bin: "npm:4.0.0" bluebird-lst: "npm:^1.0.9" - builder-util-runtime: "npm:9.2.1" + builder-util-runtime: "npm:9.2.3" chalk: "npm:^4.1.2" cross-spawn: "npm:^7.0.3" debug: "npm:^4.3.4" @@ -6523,14 +5804,7 @@ __metadata: source-map-support: "npm:^0.5.19" stat-mode: "npm:^1.0.0" temp-file: "npm:^3.4.0" - checksum: 10c922f516ee68aa8b2fbdfd968b201fc92de022cb978e5a8af3681d7a099b131e9de9a5ea07e4e6a3f51ce027c77a900d54cafb4b1e831d30eb4f5b1b836d44 - languageName: node - linkType: hard - -"builtin-modules@npm:^3.1.0": - version: 3.3.0 - resolution: "builtin-modules@npm:3.3.0" - checksum: 62e063ab40c0c1efccbfa9ffa31873e4f9d57408cb396a2649981a0ecbce56aabc93c28feaccbc5658c95aab2703ad1d11980e62ec2e5e72637404e1eb60f39e + checksum: df830846d6149491616bdedf8e6829385cb968105762a835bda29eaeaea8f54254f5b14b9a3c4d060d0402d3bf886e48ab2a0c28c4615b4904fc25ad7c68ec90 languageName: node linkType: hard @@ -6543,17 +5817,10 @@ __metadata: languageName: node linkType: hard -"bytes@npm:3.0.0": - version: 3.0.0 - resolution: "bytes@npm:3.0.0" - checksum: a2b386dd8188849a5325f58eef69c3b73c51801c08ffc6963eddc9be244089ba32d19347caf6d145c86f315ae1b1fc7061a32b0c1aa6379e6a719090287ed101 - languageName: node - linkType: hard - -"bytes@npm:3.1.2": - version: 3.1.2 - resolution: "bytes@npm:3.1.2" - checksum: a10abf2ba70c784471d6b4f58778c0beeb2b5d405148e66affa91f23a9f13d07603d0a0354667310ae1d6dc141474ffd44e2a074be0f6e2254edb8fc21445388 +"cac@npm:^6.7.14": + version: 6.7.14 + resolution: "cac@npm:6.7.14" + checksum: 002769a0fbfc51c062acd2a59df465a2a947916b02ac50b56c69ec6c018ee99ac3e7f4dd7366334ea847f1ecacf4defaa61bcd2ac283db50156ce1f1d8c8ad42 languageName: node linkType: hard @@ -6642,23 +5909,6 @@ __metadata: languageName: node linkType: hard -"camel-case@npm:^4.1.2": - version: 4.1.2 - resolution: "camel-case@npm:4.1.2" - dependencies: - pascal-case: "npm:^3.1.2" - tslib: "npm:^2.0.3" - checksum: bcbd25cd253b3cbc69be3f535750137dbf2beb70f093bdc575f73f800acc8443d34fd52ab8f0a2413c34f1e8203139ffc88428d8863e4dfe530cfb257a379ad6 - languageName: node - linkType: hard - -"camelcase-css@npm:^2.0.1": - version: 2.0.1 - resolution: "camelcase-css@npm:2.0.1" - checksum: 1cec2b3b3dcb5026688a470b00299a8db7d904c4802845c353dbd12d9d248d3346949a814d83bfd988d4d2e5b9904c07efe76fecd195a1d4f05b543e7c0b56b1 - languageName: node - linkType: hard - "camelcase@npm:^4.1.0": version: 4.1.0 resolution: "camelcase@npm:4.1.0" @@ -6673,39 +5923,20 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:^6.2.0, camelcase@npm:^6.2.1": +"camelcase@npm:^6.2.0": version: 6.3.0 resolution: "camelcase@npm:6.3.0" checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d languageName: node linkType: hard -"caniuse-api@npm:^3.0.0": - version: 3.0.0 - resolution: "caniuse-api@npm:3.0.0" - dependencies: - browserslist: "npm:^4.0.0" - caniuse-lite: "npm:^1.0.0" - lodash.memoize: "npm:^4.1.2" - lodash.uniq: "npm:^4.5.0" - checksum: db2a229383b20d0529b6b589dde99d7b6cb56ba371366f58cbbfa2929c9f42c01f873e2b6ef641d4eda9f0b4118de77dbb2805814670bdad4234bf08e720b0b4 - languageName: node - linkType: hard - -"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001517, caniuse-lite@npm:^1.0.30001520": +"caniuse-lite@npm:^1.0.30001517": version: 1.0.30001525 resolution: "caniuse-lite@npm:1.0.30001525" checksum: a373f03a31d6be94ca3382748361b2aa59f6b42245f544f93b3c547379121674c863b28a9a3d272cac568a553b2e2e29349535c7f6a0b30870c169172a088066 languageName: node linkType: hard -"case-sensitive-paths-webpack-plugin@npm:^2.4.0": - version: 2.4.0 - resolution: "case-sensitive-paths-webpack-plugin@npm:2.4.0" - checksum: 8187f4a6d9c1342a62e76466d4f2ed53e6c0ea73fdbf7779751538f2abe49738bfd16b43592367f00f37fdd593accf92162c1043c016dd6d9ccb55180b6b5fa7 - languageName: node - linkType: hard - "caw@npm:^2.0.0": version: 2.0.1 resolution: "caw@npm:2.0.1" @@ -6725,6 +5956,21 @@ __metadata: languageName: node linkType: hard +"chai@npm:^4.3.10": + version: 4.3.10 + resolution: "chai@npm:4.3.10" + dependencies: + assertion-error: "npm:^1.1.0" + check-error: "npm:^1.0.3" + deep-eql: "npm:^4.1.3" + get-func-name: "npm:^2.0.2" + loupe: "npm:^2.3.6" + pathval: "npm:^1.1.1" + type-detect: "npm:^4.0.8" + checksum: 9e545fd60f5efee4f06f7ad62f7b1b142932b08fbb3454db69defd511e7c58771ce51843764212da1e129b2c9d1b029fbf5f98da030fe67a95a0853e8679524f + languageName: node + linkType: hard + "chalk@npm:^2.4.1, chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" @@ -6781,14 +6027,16 @@ __metadata: languageName: node linkType: hard -"check-types@npm:^11.1.1": - version: 11.2.2 - resolution: "check-types@npm:11.2.2" - checksum: a741fc4748d1923b0ff11003aab3fc18eaa8d8b6b3d5e93d21796fc6355f95557b9acc6189fe9e2411efe8724313b3123ba0bc1d728c0db30791c3b8a894a38a +"check-error@npm:^1.0.3": + version: 1.0.3 + resolution: "check-error@npm:1.0.3" + dependencies: + get-func-name: "npm:^2.0.2" + checksum: e2131025cf059b21080f4813e55b3c480419256914601750b0fee3bd9b2b8315b531e551ef12560419b8b6d92a3636511322752b1ce905703239e7cc451b6399 languageName: node linkType: hard -"chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.4.2, chokidar@npm:^3.5.3": +"chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.5.3": version: 3.5.3 resolution: "chokidar@npm:3.5.3" dependencies: @@ -6856,15 +6104,6 @@ __metadata: languageName: node linkType: hard -"clean-css@npm:^5.2.2": - version: 5.3.2 - resolution: "clean-css@npm:5.3.2" - dependencies: - source-map: "npm:~0.6.0" - checksum: efd9efbf400f38a12f99324bad5359bdd153211b048721e4d4ddb629a88865dff3012dca547a14bdd783d78ccf064746e39fd91835546a08e2d811866aff0857 - languageName: node - linkType: hard - "clean-stack@npm:^2.0.0": version: 2.2.0 resolution: "clean-stack@npm:2.2.0" @@ -6972,17 +6211,6 @@ __metadata: languageName: node linkType: hard -"coa@npm:^2.0.2": - version: 2.0.2 - resolution: "coa@npm:2.0.2" - dependencies: - "@types/q": "npm:^1.5.1" - chalk: "npm:^2.4.1" - q: "npm:^1.1.2" - checksum: 3934203d8c2bc0b824c2347cc19060db7affcc522da1f21a3dd79ac1e9d9c8a60124fd5d771a4d99b4a49005e26022cd4e11268d868fb19cabd9a51ab652583f - languageName: node - linkType: hard - "code-point-at@npm:^1.0.0": version: 1.1.0 resolution: "code-point-at@npm:1.1.0" @@ -7038,14 +6266,7 @@ __metadata: languageName: node linkType: hard -"colord@npm:^2.9.1": - version: 2.9.3 - resolution: "colord@npm:2.9.3" - checksum: 907a4506d7307e2f580b471b581e992181ed75ab0c6925ece9ca46d88161d2fc50ed15891cd0556d0d9321237ca75afc9d462e4c050b939ef88428517f047f30 - languageName: node - linkType: hard - -"colorette@npm:^2.0.10, colorette@npm:^2.0.14": +"colorette@npm:^2.0.14": version: 2.0.20 resolution: "colorette@npm:2.0.20" checksum: 0b8de48bfa5d10afc160b8eaa2b9938f34a892530b2f7d7897e0458d9535a066e3998b49da9d21161c78225b272df19ae3a64d6df28b4c9734c0e55bbd02406f @@ -7082,13 +6303,6 @@ __metadata: languageName: node linkType: hard -"commander@npm:^4.0.0": - version: 4.1.1 - resolution: "commander@npm:4.1.1" - checksum: 3b2dc4125f387dab73b3294dbcb0ab2a862f9c0ad748ee2b27e3544d25325b7a8cdfbcc228d103a98a716960b14478114a5206b5415bd48cdafa38797891562c - languageName: node - linkType: hard - "commander@npm:^5.0.0": version: 5.1.0 resolution: "commander@npm:5.1.0" @@ -7103,13 +6317,6 @@ __metadata: languageName: node linkType: hard -"commander@npm:^8.3.0": - version: 8.3.0 - resolution: "commander@npm:8.3.0" - checksum: 6b7b5d334483ce24bd73c5dac2eab901a7dbb25fd983ea24a1eeac6e7166bb1967f641546e8abf1920afbde86a45fbfe5812fbc69d0dc451bb45ca416a12a3a3 - languageName: node - linkType: hard - "commander@npm:^9.4.1": version: 9.5.0 resolution: "commander@npm:9.5.0" @@ -7117,27 +6324,6 @@ __metadata: languageName: node linkType: hard -"common-path-prefix@npm:^3.0.0": - version: 3.0.0 - resolution: "common-path-prefix@npm:3.0.0" - checksum: 09c180e8d8495d42990d617f4d4b7522b5da20f6b236afe310192d401d1da8147a7835ae1ea37797ba0c2238ef3d06f3492151591451df34539fdb4b2630f2b3 - languageName: node - linkType: hard - -"common-tags@npm:^1.8.0": - version: 1.8.2 - resolution: "common-tags@npm:1.8.2" - checksum: c665d0f463ee79dda801471ad8da6cb33ff7332ba45609916a508ad3d77ba07ca9deeb452e83f81f24c2b081e2c1315347f23d239210e63d1c5e1a0c7c019fe2 - languageName: node - linkType: hard - -"commondir@npm:^1.0.1": - version: 1.0.1 - resolution: "commondir@npm:1.0.1" - checksum: 4620bc4936a4ef12ce7dfcd272bb23a99f2ad68889a4e4ad766c9f8ad21af982511934d6f7050d4a8bde90011b1c15d56e61a1b4576d9913efbf697a20172d6c - languageName: node - linkType: hard - "compare-version@npm:^0.1.2": version: 0.1.2 resolution: "compare-version@npm:0.1.2" @@ -7152,30 +6338,6 @@ __metadata: languageName: node linkType: hard -"compressible@npm:~2.0.16": - version: 2.0.18 - resolution: "compressible@npm:2.0.18" - dependencies: - mime-db: "npm:>= 1.43.0 < 2" - checksum: 58321a85b375d39230405654721353f709d0c1442129e9a17081771b816302a012471a9b8f4864c7dbe02eef7f2aaac3c614795197092262e94b409c9be108f0 - languageName: node - linkType: hard - -"compression@npm:^1.7.4": - version: 1.7.4 - resolution: "compression@npm:1.7.4" - dependencies: - accepts: "npm:~1.3.5" - bytes: "npm:3.0.0" - compressible: "npm:~2.0.16" - debug: "npm:2.6.9" - on-headers: "npm:~1.0.2" - safe-buffer: "npm:5.1.2" - vary: "npm:~1.1.2" - checksum: 469cd097908fe1d3ff146596d4c24216ad25eabb565c5456660bdcb3a14c82ebc45c23ce56e19fc642746cf407093b55ab9aa1ac30b06883b27c6c736e6383c2 - languageName: node - linkType: hard - "compute-scroll-into-view@npm:^2.0.4": version: 2.0.4 resolution: "compute-scroll-into-view@npm:2.0.4" @@ -7217,13 +6379,6 @@ __metadata: languageName: node linkType: hard -"connect-history-api-fallback@npm:^2.0.0": - version: 2.0.0 - resolution: "connect-history-api-fallback@npm:2.0.0" - checksum: 3b26bf4041fdb33deacdcb3af9ae11e9a0b413fb14c95844d74a460b55e407625b364955dcf965c654605cde9d24ad5dad423c489aa430825aab2035859aba0c - languageName: node - linkType: hard - "console-control-strings@npm:^1.1.0": version: 1.1.0 resolution: "console-control-strings@npm:1.1.0" @@ -7231,7 +6386,7 @@ __metadata: languageName: node linkType: hard -"content-disposition@npm:0.5.4, content-disposition@npm:^0.5.2": +"content-disposition@npm:^0.5.2": version: 0.5.4 resolution: "content-disposition@npm:0.5.4" dependencies: @@ -7240,14 +6395,7 @@ __metadata: languageName: node linkType: hard -"content-type@npm:~1.0.4": - version: 1.0.5 - resolution: "content-type@npm:1.0.5" - checksum: 585847d98dc7fb8035c02ae2cb76c7a9bd7b25f84c447e5ed55c45c2175e83617c8813871b4ee22f368126af6b2b167df655829007b21aa10302873ea9c62662 - languageName: node - linkType: hard - -"convert-source-map@npm:^1.4.0, convert-source-map@npm:^1.6.0, convert-source-map@npm:^1.7.0": +"convert-source-map@npm:^1.4.0, convert-source-map@npm:^1.6.0": version: 1.9.0 resolution: "convert-source-map@npm:1.9.0" checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 @@ -7261,20 +6409,6 @@ __metadata: languageName: node linkType: hard -"cookie-signature@npm:1.0.6": - version: 1.0.6 - resolution: "cookie-signature@npm:1.0.6" - checksum: f4e1b0a98a27a0e6e66fd7ea4e4e9d8e038f624058371bf4499cfcd8f3980be9a121486995202ba3fca74fbed93a407d6d54d43a43f96fd28d0bd7a06761591a - languageName: node - linkType: hard - -"cookie@npm:0.5.0": - version: 0.5.0 - resolution: "cookie@npm:0.5.0" - checksum: aae7911ddc5f444a9025fbd979ad1b5d60191011339bce48e555cb83343d0f98b865ff5c4d71fecdfb8555a5cafdc65632f6fce172f32aaf6936830a883a0380 - languageName: node - linkType: hard - "core-js-compat@npm:^3.31.0": version: 3.32.1 resolution: "core-js-compat@npm:3.32.1" @@ -7284,13 +6418,6 @@ __metadata: languageName: node linkType: hard -"core-js-pure@npm:^3.23.3": - version: 3.32.1 - resolution: "core-js-pure@npm:3.32.1" - checksum: 6ebd41c95cf5da8e032f9c9100360196c5e2af8b0c074a6e151c96e6390329814e87ad737bc44566990928d9af73304252112b6c15d3f43784473d0260bbe0f4 - languageName: node - linkType: hard - "core-js@npm:^1.0.0": version: 1.2.7 resolution: "core-js@npm:1.2.7" @@ -7298,7 +6425,7 @@ __metadata: languageName: node linkType: hard -"core-js@npm:^3.19.2, core-js@npm:^3.4, core-js@npm:^3.8.3": +"core-js@npm:^3.4, core-js@npm:^3.8.3": version: 3.32.1 resolution: "core-js@npm:3.32.1" checksum: 8d76615ef67f2cf8d2af05e4ec8e5663c941a461c97ff3f53eca6b4ab6fb765ef1b88509827b510963044aa122153f25c3073f3de7fcad06cc1b3f6c06a725c3 @@ -7319,34 +6446,7 @@ __metadata: languageName: node linkType: hard -"cosmiconfig-typescript-loader@npm:^1.0.0": - version: 1.0.9 - resolution: "cosmiconfig-typescript-loader@npm:1.0.9" - dependencies: - cosmiconfig: "npm:^7" - ts-node: "npm:^10.7.0" - peerDependencies: - "@types/node": "*" - cosmiconfig: ">=7" - typescript: ">=3" - checksum: cab173838d492115c165b5ec90985cab3207bed5210a5f541917fc0c9d3b49b0d2ea8380f408a81ca3be0258a924fdaa6e8df7fdef7c51c5bb3b34585ce66fcb - languageName: node - linkType: hard - -"cosmiconfig@npm:^6.0.0": - version: 6.0.0 - resolution: "cosmiconfig@npm:6.0.0" - dependencies: - "@types/parse-json": "npm:^4.0.0" - import-fresh: "npm:^3.1.0" - parse-json: "npm:^5.0.0" - path-type: "npm:^4.0.0" - yaml: "npm:^1.7.2" - checksum: b184d2bfbced9ba6840fd097dbf3455c68b7258249bb9b1277913823d516d8dfdade8c5ccbf79db0ca8ebd4cc9b9be521ccc06a18396bd242d50023c208f1594 - languageName: node - linkType: hard - -"cosmiconfig@npm:^7, cosmiconfig@npm:^7.0.0, cosmiconfig@npm:^7.0.1": +"cosmiconfig@npm:^7.0.0": version: 7.1.0 resolution: "cosmiconfig@npm:7.1.0" dependencies: @@ -7441,48 +6541,6 @@ __metadata: languageName: node linkType: hard -"crypto-random-string@npm:^2.0.0": - version: 2.0.0 - resolution: "crypto-random-string@npm:2.0.0" - checksum: 0283879f55e7c16fdceacc181f87a0a65c53bc16ffe1d58b9d19a6277adcd71900d02bb2c4843dd55e78c51e30e89b0fec618a7f170ebcc95b33182c28f05fd6 - languageName: node - linkType: hard - -"css-blank-pseudo@npm:^3.0.3": - version: 3.0.3 - resolution: "css-blank-pseudo@npm:3.0.3" - dependencies: - postcss-selector-parser: "npm:^6.0.9" - peerDependencies: - postcss: ^8.4 - bin: - css-blank-pseudo: dist/cli.cjs - checksum: 3c4a258c27e719cd8f841b4c652247f2a25c0a04edff6a5a70bf91ad9fe539665013e0a2d357abd6f04f04cceaef99f4cbe29a2fc9bb8d7a5f1935d9b610209a - languageName: node - linkType: hard - -"css-declaration-sorter@npm:^6.3.1": - version: 6.4.1 - resolution: "css-declaration-sorter@npm:6.4.1" - peerDependencies: - postcss: ^8.0.9 - checksum: 06cbfd1f470b8accf5e235b0e658e2f82d33a1cea8c2a21b55dfef5280769b874a8979c50f2c035af9213836cf85fb7e4687748a9162d564d7638ed4a194888e - languageName: node - linkType: hard - -"css-has-pseudo@npm:^3.0.4": - version: 3.0.4 - resolution: "css-has-pseudo@npm:3.0.4" - dependencies: - postcss-selector-parser: "npm:^6.0.9" - peerDependencies: - postcss: ^8.4 - bin: - css-has-pseudo: dist/cli.cjs - checksum: bad885b0bb2b88d3753427f05ca6d6d833c1af89857222675c0742ef6c3461ae06f56a9be8a464bb6ac860c12581dfa2ae1cb8f15598ffb52d38cb3b6d291a48 - languageName: node - linkType: hard - "css-in-js-utils@npm:^2.0.0": version: 2.0.1 resolution: "css-in-js-utils@npm:2.0.1" @@ -7493,92 +6551,6 @@ __metadata: languageName: node linkType: hard -"css-loader@npm:^6.5.1": - version: 6.8.1 - resolution: "css-loader@npm:6.8.1" - dependencies: - icss-utils: "npm:^5.1.0" - postcss: "npm:^8.4.21" - postcss-modules-extract-imports: "npm:^3.0.0" - postcss-modules-local-by-default: "npm:^4.0.3" - postcss-modules-scope: "npm:^3.0.0" - postcss-modules-values: "npm:^4.0.0" - postcss-value-parser: "npm:^4.2.0" - semver: "npm:^7.3.8" - peerDependencies: - webpack: ^5.0.0 - checksum: f20bb2a181c64d2f49586ab3922cae884519cfc8ae9ba8513065032255ed7bbdb4de75362f99d641d39d36d3732b7932884cd0e6fc71c8b0fb8b99a654f9cd08 - languageName: node - linkType: hard - -"css-minimizer-webpack-plugin@npm:^3.2.0": - version: 3.4.1 - resolution: "css-minimizer-webpack-plugin@npm:3.4.1" - dependencies: - cssnano: "npm:^5.0.6" - jest-worker: "npm:^27.0.2" - postcss: "npm:^8.3.5" - schema-utils: "npm:^4.0.0" - serialize-javascript: "npm:^6.0.0" - source-map: "npm:^0.6.1" - peerDependencies: - webpack: ^5.0.0 - peerDependenciesMeta: - "@parcel/css": - optional: true - clean-css: - optional: true - csso: - optional: true - esbuild: - optional: true - checksum: d3b060fc3ab8747eb7c123378474e9b8fa884d93223c49995bd450f05a32f1f349cd23a912a27bb966faeb6dddc34445ffa45be17d11b80515bd55c8a81c8eea - languageName: node - linkType: hard - -"css-prefers-color-scheme@npm:^6.0.3": - version: 6.0.3 - resolution: "css-prefers-color-scheme@npm:6.0.3" - peerDependencies: - postcss: ^8.4 - bin: - css-prefers-color-scheme: dist/cli.cjs - checksum: 389f8d5b102270aaefd7f1db269d12bd883d9f7e13d139c2ef7ad6eb462c0c87f2dd466efeb8cc1b93432b07f94a3a5c82fc0ed6b950ba2da2f44d86f109fdc7 - languageName: node - linkType: hard - -"css-select-base-adapter@npm:^0.1.1": - version: 0.1.1 - resolution: "css-select-base-adapter@npm:0.1.1" - checksum: 0c99404c19123c3d270e80d5bf5af2b1990ed6b29a9b9db056d5b402660e5b7e5be48a86e00283b82e3240141c756879dbea14bab44230ca26396ba531c6d8a7 - languageName: node - linkType: hard - -"css-select@npm:^2.0.0": - version: 2.1.0 - resolution: "css-select@npm:2.1.0" - dependencies: - boolbase: "npm:^1.0.0" - css-what: "npm:^3.2.1" - domutils: "npm:^1.7.0" - nth-check: "npm:^1.0.2" - checksum: 87d514a6884c989df4d05d658cc2e7864b64ebf8f3dac5930a12930e712bbac7f16cfa765a22dc3f8fa00d3ae62ce0f3832624eedfac4b116694ea808749fb8a - languageName: node - linkType: hard - -"css-select@npm:^4.1.3": - version: 4.3.0 - resolution: "css-select@npm:4.3.0" - dependencies: - boolbase: "npm:^1.0.0" - css-what: "npm:^6.0.1" - domhandler: "npm:^4.3.1" - domutils: "npm:^2.8.0" - nth-check: "npm:^2.0.1" - checksum: 8f7310c9af30ccaba8f72cb4a54d32232c53bf9ba05d019b693e16bfd7ba5df0affc1f4d74b1ee55923643d23b80a837eedcf60938c53356e479b04049ff9994 - languageName: node - linkType: hard - "css-select@npm:^5.1.0": version: 5.1.0 resolution: "css-select@npm:5.1.0" @@ -7592,26 +6564,6 @@ __metadata: languageName: node linkType: hard -"css-tree@npm:1.0.0-alpha.37": - version: 1.0.0-alpha.37 - resolution: "css-tree@npm:1.0.0-alpha.37" - dependencies: - mdn-data: "npm:2.0.4" - source-map: "npm:^0.6.1" - checksum: a936e4276e797af951f3cae66acadcd10642493c221b4f34fbb8f7d2d3b5496730474695efe2645731be19443324c0cc26e09a09e87efcfd397ade1b92d1fd68 - languageName: node - linkType: hard - -"css-tree@npm:^1.1.2, css-tree@npm:^1.1.3": - version: 1.1.3 - resolution: "css-tree@npm:1.1.3" - dependencies: - mdn-data: "npm:2.0.14" - source-map: "npm:^0.6.1" - checksum: 29710728cc4b136f1e9b23ee1228ec403ec9f3d487bc94a9c5dbec563c1e08c59bc917dd6f82521a35e869ff655c298270f43ca673265005b0cd05b292eb05ab - languageName: node - linkType: hard - "css-tree@npm:^2.2.1": version: 2.3.1 resolution: "css-tree@npm:2.3.1" @@ -7639,106 +6591,13 @@ __metadata: languageName: node linkType: hard -"css-what@npm:^3.2.1": - version: 3.4.2 - resolution: "css-what@npm:3.4.2" - checksum: d5a5343619828499f0aa3fa5c1301123541eea41057a7da45516a3ceb19ed79e722e829913b71bce490bfdf08599a847e77ba4917bd2623c2d7fd4654e6b94f4 - languageName: node - linkType: hard - -"css-what@npm:^6.0.1, css-what@npm:^6.1.0": +"css-what@npm:^6.1.0": version: 6.1.0 resolution: "css-what@npm:6.1.0" checksum: c67a3a2d0d81843af87f8bf0a4d0845b0f952377714abbb2884e48942409d57a2110eabee003609d02ee487b054614bdfcfc59ee265728ff105bd5aa221c1d0e languageName: node linkType: hard -"cssdb@npm:^7.1.0": - version: 7.7.2 - resolution: "cssdb@npm:7.7.2" - checksum: 1a37343b6c7878b4014046b61f68ad0f093d1033232e957b1aa211d75a787171e4fc2ece197680dea1ebd42df7ab157938b087935fc7fedede41e46f96663aeb - languageName: node - linkType: hard - -"cssesc@npm:^3.0.0": - version: 3.0.0 - resolution: "cssesc@npm:3.0.0" - bin: - cssesc: bin/cssesc - checksum: 0e161912c1306861d8f46e1883be1cbc8b1b2879f0f509287c0db71796e4ddfb97ac96bdfca38f77f452e2c10554e1bb5678c99b07a5cf947a12778f73e47e12 - languageName: node - linkType: hard - -"cssnano-preset-default@npm:^5.2.14": - version: 5.2.14 - resolution: "cssnano-preset-default@npm:5.2.14" - dependencies: - css-declaration-sorter: "npm:^6.3.1" - cssnano-utils: "npm:^3.1.0" - postcss-calc: "npm:^8.2.3" - postcss-colormin: "npm:^5.3.1" - postcss-convert-values: "npm:^5.1.3" - postcss-discard-comments: "npm:^5.1.2" - postcss-discard-duplicates: "npm:^5.1.0" - postcss-discard-empty: "npm:^5.1.1" - postcss-discard-overridden: "npm:^5.1.0" - postcss-merge-longhand: "npm:^5.1.7" - postcss-merge-rules: "npm:^5.1.4" - postcss-minify-font-values: "npm:^5.1.0" - postcss-minify-gradients: "npm:^5.1.1" - postcss-minify-params: "npm:^5.1.4" - postcss-minify-selectors: "npm:^5.2.1" - postcss-normalize-charset: "npm:^5.1.0" - postcss-normalize-display-values: "npm:^5.1.0" - postcss-normalize-positions: "npm:^5.1.1" - postcss-normalize-repeat-style: "npm:^5.1.1" - postcss-normalize-string: "npm:^5.1.0" - postcss-normalize-timing-functions: "npm:^5.1.0" - postcss-normalize-unicode: "npm:^5.1.1" - postcss-normalize-url: "npm:^5.1.0" - postcss-normalize-whitespace: "npm:^5.1.1" - postcss-ordered-values: "npm:^5.1.3" - postcss-reduce-initial: "npm:^5.1.2" - postcss-reduce-transforms: "npm:^5.1.0" - postcss-svgo: "npm:^5.1.0" - postcss-unique-selectors: "npm:^5.1.1" - peerDependencies: - postcss: ^8.2.15 - checksum: 4103f879a594e24eef7b2f175cd46b59d777982be23f0d1b84e962d044e0bea2f26aa107dea59a711e6394fdd77faf313cee6ae4be61d34656fdf33ff278f69d - languageName: node - linkType: hard - -"cssnano-utils@npm:^3.1.0": - version: 3.1.0 - resolution: "cssnano-utils@npm:3.1.0" - peerDependencies: - postcss: ^8.2.15 - checksum: 975c84ce9174cf23bb1da1e9faed8421954607e9ea76440cd3bb0c1bea7e17e490d800fca5ae2812d1d9e9d5524eef23ede0a3f52497d7ccc628e5d7321536f2 - languageName: node - linkType: hard - -"cssnano@npm:^5.0.6": - version: 5.1.15 - resolution: "cssnano@npm:5.1.15" - dependencies: - cssnano-preset-default: "npm:^5.2.14" - lilconfig: "npm:^2.0.3" - yaml: "npm:^1.10.2" - peerDependencies: - postcss: ^8.2.15 - checksum: 8c5acbeabd10ffc05d01c63d3a82dcd8742299ead3f6da4016c853548b687d9b392de43e6d0f682dad1c2200d577c9360d8e709711c23721509aa4e55e052fb3 - languageName: node - linkType: hard - -"csso@npm:^4.0.2, csso@npm:^4.2.0": - version: 4.2.0 - resolution: "csso@npm:4.2.0" - dependencies: - css-tree: "npm:^1.1.2" - checksum: 8b6a2dc687f2a8165dde13f67999d5afec63cb07a00ab100fbb41e4e8b28d986cfa0bc466b4f5ba5de7260c2448a64e6ad26ec718dd204d3a7d109982f0bf1aa - languageName: node - linkType: hard - "csso@npm:^5.0.5": version: 5.0.5 resolution: "csso@npm:5.0.5" @@ -7940,15 +6799,6 @@ __metadata: languageName: node linkType: hard -"debug@npm:2.6.9, debug@npm:^2.6.0": - version: 2.6.9 - resolution: "debug@npm:2.6.9" - dependencies: - ms: "npm:2.0.0" - checksum: e07005f2b40e04f1bd14a3dd20520e9c4f25f60224cb006ce9d6781732c917964e9ec029fc7f1a151083cd929025ad5133814d4dc624a9aaf020effe4914ed14 - languageName: node - linkType: hard - "debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" @@ -8088,9 +6938,18 @@ __metadata: languageName: node linkType: hard -"deep-equal@npm:^2.0.5": - version: 2.2.1 - resolution: "deep-equal@npm:2.2.1" +"deep-eql@npm:^4.1.3": + version: 4.1.3 + resolution: "deep-eql@npm:4.1.3" + dependencies: + type-detect: "npm:^4.0.0" + checksum: 12ce93ae63de187e77b076d3d51bfc28b11f98910a22c18714cce112791195e86a94f97788180994614b14562a86c9763f67c69f785e4586f806b5df39bf9301 + languageName: node + linkType: hard + +"deep-equal@npm:^2.0.5": + version: 2.2.1 + resolution: "deep-equal@npm:2.2.1" dependencies: array-buffer-byte-length: "npm:^1.0.0" call-bind: "npm:^1.0.2" @@ -8157,15 +7016,6 @@ __metadata: languageName: node linkType: hard -"default-gateway@npm:^6.0.3": - version: 6.0.3 - resolution: "default-gateway@npm:6.0.3" - dependencies: - execa: "npm:^5.0.0" - checksum: 126f8273ecac8ee9ff91ea778e8784f6cd732d77c3157e8c5bdd6ed03651b5291f71446d05bc02d04073b1e67583604db5394ea3cf992ede0088c70ea15b7378 - languageName: node - linkType: hard - "defaults@npm:^1.0.3": version: 1.0.4 resolution: "defaults@npm:1.0.4" @@ -8236,20 +7086,13 @@ __metadata: languageName: node linkType: hard -"depd@npm:2.0.0, depd@npm:^2.0.0": +"depd@npm:^2.0.0": version: 2.0.0 resolution: "depd@npm:2.0.0" checksum: c0c8ff36079ce5ada64f46cc9d6fd47ebcf38241105b6e0c98f412e8ad91f084bcf906ff644cc3a4bd876ca27a62accb8b0fff72ea6ed1a414b89d8506f4a5ca languageName: node linkType: hard -"depd@npm:~1.1.2": - version: 1.1.2 - resolution: "depd@npm:1.1.2" - checksum: 2ed6966fc14463a9e85451db330ab8ba041efed0b9a1a472dbfc6fbf2f82bab66491915f996b25d8517dddc36c8c74e24c30879b34877f3c4410733444a51d1d - languageName: node - linkType: hard - "dequal@npm:^2.0.0": version: 2.0.3 resolution: "dequal@npm:2.0.3" @@ -8261,37 +7104,21 @@ __metadata: version: 0.0.0-use.local resolution: "desktop-electron@workspace:packages/desktop-electron" dependencies: - "@electron/notarize": "npm:2.1.0" - "@electron/rebuild": "npm:3.3.0" + "@electron/notarize": "npm:2.2.0" + "@electron/rebuild": "npm:3.4.1" cross-env: "npm:^7.0.3" - electron: "npm:26.2.0" - electron-builder: "npm:24.6.4" + electron: "npm:27.2.0" + electron-builder: "npm:24.10.0" electron-is-dev: "npm:2.0.0" electron-log: "npm:4.4.8" - electron-updater: "npm:6.1.4" - get-port-please: "npm:3.0.1" + electron-updater: "npm:6.1.7" loot-core: "npm:*" node-fetch: "npm:^2.6.9" promise-retry: "npm:^2.0.1" - ws: "npm:8.13.0" languageName: unknown linkType: soft -"destroy@npm:1.2.0": - version: 1.2.0 - resolution: "destroy@npm:1.2.0" - checksum: 0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38 - languageName: node - linkType: hard - -"detect-libc@npm:^2.0.0": - version: 2.0.1 - resolution: "detect-libc@npm:2.0.1" - checksum: f41b3d8c726127cc010c78bf4cdb6fda20a1a0731ae9fc34698e3b9887d82e19f249f4dc997b423f930d5be0c3ee05dc7fe6c2473dd058856c6b0700eb3e0dc6 - languageName: node - linkType: hard - -"detect-libc@npm:^2.0.1": +"detect-libc@npm:^2.0.0, detect-libc@npm:^2.0.1": version: 2.0.2 resolution: "detect-libc@npm:2.0.2" checksum: 6118f30c0c425b1e56b9d2609f29bec50d35a6af0b762b6ad127271478f3bbfda7319ce869230cf1a351f2b219f39332cde290858553336d652c77b970f15de8 @@ -8312,26 +7139,6 @@ __metadata: languageName: node linkType: hard -"detect-port-alt@npm:^1.1.6": - version: 1.1.6 - resolution: "detect-port-alt@npm:1.1.6" - dependencies: - address: "npm:^1.0.1" - debug: "npm:^2.6.0" - bin: - detect: ./bin/detect-port - detect-port: ./bin/detect-port - checksum: 35c9f9c69d12d2ca43d093f4f02d7763b47673910749bd12e6fedeb0ab5c546d27ab8e6425a9cbc65edd408490241390a8e680e8ec7e13940e84754ad81d632e - languageName: node - linkType: hard - -"didyoumean@npm:^1.2.2": - version: 1.2.2 - resolution: "didyoumean@npm:1.2.2" - checksum: de7f11b6a0c8c61018629b7f405bb9746d6e994ce87c1a4b7655c3c718442dc69037a3d46d804950604fd9cbe85c074f7b224a119fc1bda851690a74540c6cf8 - languageName: node - linkType: hard - "diff-sequences@npm:^27.5.1": version: 27.5.1 resolution: "diff-sequences@npm:27.5.1" @@ -8339,10 +7146,10 @@ __metadata: languageName: node linkType: hard -"diff-sequences@npm:^29.4.3": - version: 29.4.3 - resolution: "diff-sequences@npm:29.4.3" - checksum: 2287b259400513332d757f921eeda7c740863a919a00bd1d1b22ab2532b3e763538c404aec0953a813bbe33e660cbc77d0742875d6674d8dc5bc31d74ec88cc1 +"diff-sequences@npm:^29.4.3, diff-sequences@npm:^29.6.3": + version: 29.6.3 + resolution: "diff-sequences@npm:29.6.3" + checksum: 179daf9d2f9af5c57ad66d97cb902a538bcf8ed64963fa7aa0c329b3de3665ce2eb6ffdc2f69f29d445fa4af2517e5e55e5b6e00c00a9ae4f43645f97f7078cb languageName: node linkType: hard @@ -8379,20 +7186,13 @@ __metadata: languageName: node linkType: hard -"dlv@npm:^1.1.3": - version: 1.1.3 - resolution: "dlv@npm:1.1.3" - checksum: 836459ec6b50e43e9ed388a5fc28954be99e3481af3fa4b5d82a600762eb65ef8faacd454097ed7fc2f8a60aea2800d65a4cece5cd0d81ab82b2031f3f759e6e - languageName: node - linkType: hard - -"dmg-builder@npm:24.6.4": - version: 24.6.4 - resolution: "dmg-builder@npm:24.6.4" +"dmg-builder@npm:24.10.0": + version: 24.10.0 + resolution: "dmg-builder@npm:24.10.0" dependencies: - app-builder-lib: "npm:24.6.4" - builder-util: "npm:24.5.0" - builder-util-runtime: "npm:9.2.1" + app-builder-lib: "npm:24.10.0" + builder-util: "npm:24.9.4" + builder-util-runtime: "npm:9.2.3" dmg-license: "npm:^1.0.11" fs-extra: "npm:^10.1.0" iconv-lite: "npm:^0.6.2" @@ -8400,7 +7200,7 @@ __metadata: dependenciesMeta: dmg-license: optional: true - checksum: b3c1401ddb8b260c81a309568b4cfa26a018506bd4d03aedf8b2edb64189eb71070075cfaa5df3a3f063700f340d872a2d2c1a745d36c0a684193deb2d27ca0d + checksum: 237d071ed74b38ab817d85685790b1daf3d415377c0842de850226dd1885441ab5107d9a7193e23660b1c17054b6fca85d4d9c28e7efd4944c5b879aa5e0727c languageName: node linkType: hard @@ -8433,22 +7233,6 @@ __metadata: languageName: node linkType: hard -"dns-equal@npm:^1.0.0": - version: 1.0.0 - resolution: "dns-equal@npm:1.0.0" - checksum: c4f55af6f13536de39ebcfa15f504a5678d4fc2cf37b76fd41e73aa46dbd1fa596c9468c0c929aeb248ec443cb217fde949942c513312acf93c76cf783276617 - languageName: node - linkType: hard - -"dns-packet@npm:^5.2.2": - version: 5.6.1 - resolution: "dns-packet@npm:5.6.1" - dependencies: - "@leichtgewicht/ip-codec": "npm:^2.0.1" - checksum: ef5496dd5a906e22ed262cbe1a6f5d532c0893c4f1884a7aa37d4d0d8b8376a2b43f749aab087c8bb1354d67b40444f7fca8de4017b161a4cea468543061aed3 - languageName: node - linkType: hard - "doctrine@npm:^2.1.0": version: 2.1.0 resolution: "doctrine@npm:2.1.0" @@ -8474,15 +7258,6 @@ __metadata: languageName: node linkType: hard -"dom-converter@npm:^0.2.0": - version: 0.2.0 - resolution: "dom-converter@npm:0.2.0" - dependencies: - utila: "npm:~0.4" - checksum: 71b22f56bce6255a963694a72860a99f08763cf500f02ff38ce4c7489f95b07e7a0069f10b04c7d200e21375474abe01232833ca1600f104bdee7173e493a5b9 - languageName: node - linkType: hard - "dom-helpers@npm:^3.4.0": version: 3.4.0 resolution: "dom-helpers@npm:3.4.0" @@ -8492,27 +7267,6 @@ __metadata: languageName: node linkType: hard -"dom-serializer@npm:0": - version: 0.2.2 - resolution: "dom-serializer@npm:0.2.2" - dependencies: - domelementtype: "npm:^2.0.1" - entities: "npm:^2.0.0" - checksum: 376344893e4feccab649a14ca1a46473e9961f40fe62479ea692d4fee4d9df1c00ca8654811a79c1ca7b020096987e1ca4fb4d7f8bae32c1db800a680a0e5d5e - languageName: node - linkType: hard - -"dom-serializer@npm:^1.0.1": - version: 1.4.1 - resolution: "dom-serializer@npm:1.4.1" - dependencies: - domelementtype: "npm:^2.0.1" - domhandler: "npm:^4.2.0" - entities: "npm:^2.0.0" - checksum: 53b217bcfed4a0f90dd47f34f239b1c81fff53ffa39d164d722325817fdb554903b145c2d12c8421ce0df7d31c1b180caf7eacd3c86391dd925f803df8027dcc - languageName: node - linkType: hard - "dom-serializer@npm:^2.0.0": version: 2.0.0 resolution: "dom-serializer@npm:2.0.0" @@ -8524,14 +7278,7 @@ __metadata: languageName: node linkType: hard -"domelementtype@npm:1": - version: 1.3.1 - resolution: "domelementtype@npm:1.3.1" - checksum: 7893da40218ae2106ec6ffc146b17f203487a52f5228b032ea7aa470e41dfe03e1bd762d0ee0139e792195efda765434b04b43cddcf63207b098f6ae44b36ad6 - languageName: node - linkType: hard - -"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0, domelementtype@npm:^2.3.0": +"domelementtype@npm:^2.3.0": version: 2.3.0 resolution: "domelementtype@npm:2.3.0" checksum: ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6 @@ -8556,15 +7303,6 @@ __metadata: languageName: node linkType: hard -"domhandler@npm:^4.0.0, domhandler@npm:^4.2.0, domhandler@npm:^4.3.1": - version: 4.3.1 - resolution: "domhandler@npm:4.3.1" - dependencies: - domelementtype: "npm:^2.2.0" - checksum: e0d2af7403997a3ca040a9ace4a233b75ebe321e0ef628b417e46d619d65d47781b2f2038b6c2ef6e56e73e66aec99caf6a12c7e687ecff18ef74af6dfbde5de - languageName: node - linkType: hard - "domhandler@npm:^5.0.2, domhandler@npm:^5.0.3": version: 5.0.3 resolution: "domhandler@npm:5.0.3" @@ -8574,27 +7312,6 @@ __metadata: languageName: node linkType: hard -"domutils@npm:^1.7.0": - version: 1.7.0 - resolution: "domutils@npm:1.7.0" - dependencies: - dom-serializer: "npm:0" - domelementtype: "npm:1" - checksum: 8c1d879fd3bbfc0156c970d12ebdf530f541cbda895d7f631b2444d22bbb9d0e5a3a4c3210cffb17708ad67531d7d40e1bef95e915c53a218d268607b66b63c8 - languageName: node - linkType: hard - -"domutils@npm:^2.5.2, domutils@npm:^2.8.0": - version: 2.8.0 - resolution: "domutils@npm:2.8.0" - dependencies: - dom-serializer: "npm:^1.0.1" - domelementtype: "npm:^2.2.0" - domhandler: "npm:^4.2.0" - checksum: 1f316a03f00b09a8893d4a25d297d5cbffd02c564509dede28ef72d5ce38d93f6d61f1de88d439f31b14a1d9b42f587ed711b9e8b1b4d3bf6001399832bfc4e0 - languageName: node - linkType: hard - "domutils@npm:^3.0.1": version: 3.1.0 resolution: "domutils@npm:3.1.0" @@ -8623,13 +7340,6 @@ __metadata: languageName: node linkType: hard -"dotenv@npm:^10.0.0": - version: 10.0.0 - resolution: "dotenv@npm:10.0.0" - checksum: 55f701ae213e3afe3f4232fae5edfb6e0c49f061a363ff9f1c5a0c2bf3fb990a6e49aeada11b2a116efb5fdc3bc3f1ef55ab330be43033410b267f7c0809a9dc - languageName: node - linkType: hard - "dotenv@npm:^9.0.2": version: 9.0.2 resolution: "dotenv@npm:9.0.2" @@ -8692,14 +7402,7 @@ __metadata: languageName: node linkType: hard -"ee-first@npm:1.1.1": - version: 1.1.1 - resolution: "ee-first@npm:1.1.1" - checksum: 1b4cac778d64ce3b582a7e26b218afe07e207a0f9bfe13cc7395a6d307849cfe361e65033c3251e00c27dd060cab43014c2d6b2647676135e18b77d2d05b3f4f - languageName: node - linkType: hard - -"ejs@npm:^3.1.6, ejs@npm:^3.1.8": +"ejs@npm:^3.1.8": version: 3.1.9 resolution: "ejs@npm:3.1.9" dependencies: @@ -8710,15 +7413,15 @@ __metadata: languageName: node linkType: hard -"electron-builder@npm:24.6.4": - version: 24.6.4 - resolution: "electron-builder@npm:24.6.4" +"electron-builder@npm:24.10.0": + version: 24.10.0 + resolution: "electron-builder@npm:24.10.0" dependencies: - app-builder-lib: "npm:24.6.4" - builder-util: "npm:24.5.0" - builder-util-runtime: "npm:9.2.1" + app-builder-lib: "npm:24.10.0" + builder-util: "npm:24.9.4" + builder-util-runtime: "npm:9.2.3" chalk: "npm:^4.1.2" - dmg-builder: "npm:24.6.4" + dmg-builder: "npm:24.10.0" fs-extra: "npm:^10.1.0" is-ci: "npm:^3.0.0" lazy-val: "npm:^1.0.5" @@ -8728,7 +7431,7 @@ __metadata: bin: electron-builder: cli.js install-app-deps: install-app-deps.js - checksum: 070563186394b78492032a56753f6386343b579a5f5c81f4ac06c8127232066cf1d97afa6a00b0704593a43970552660ab59597f2c905eee1ff675f8b99284d3 + checksum: 0773bcafdcfa00f70d441f0a9cff1de8b6b87a8ad65285b6bcf4f2a9f6cc17640759b2b4bff408bf3bfbe15b00598de020a87f2cc7fe84b2338e7427dfd9a24f languageName: node linkType: hard @@ -8746,18 +7449,18 @@ __metadata: languageName: node linkType: hard -"electron-publish@npm:24.5.0": - version: 24.5.0 - resolution: "electron-publish@npm:24.5.0" +"electron-publish@npm:24.9.4": + version: 24.9.4 + resolution: "electron-publish@npm:24.9.4" dependencies: "@types/fs-extra": "npm:^9.0.11" - builder-util: "npm:24.5.0" - builder-util-runtime: "npm:9.2.1" + builder-util: "npm:24.9.4" + builder-util-runtime: "npm:9.2.3" chalk: "npm:^4.1.2" fs-extra: "npm:^10.1.0" lazy-val: "npm:^1.0.5" mime: "npm:^2.5.2" - checksum: 826a8c7b219f8ffcfa7274effbc8a83e4e0cad665298bf06ca4b9071f828224dfb3407b45cefac0c9dc40af1c6529473dabcb3e30ac951690c0d48d013c2b71e + checksum: c4e9397b5ef070dbede48fece9d36d3dcaec7df1052f49744df790ff9793da24d52c22d949067dd7a5cbf9f5f06cd2243c221ec5bfdab3080b4c37f5b39a0473 languageName: node linkType: hard @@ -8768,11 +7471,11 @@ __metadata: languageName: node linkType: hard -"electron-updater@npm:6.1.4": - version: 6.1.4 - resolution: "electron-updater@npm:6.1.4" +"electron-updater@npm:6.1.7": + version: 6.1.7 + resolution: "electron-updater@npm:6.1.7" dependencies: - builder-util-runtime: "npm:9.2.1" + builder-util-runtime: "npm:9.2.3" fs-extra: "npm:^10.1.0" js-yaml: "npm:^4.1.0" lazy-val: "npm:^1.0.5" @@ -8780,27 +7483,20 @@ __metadata: lodash.isequal: "npm:^4.5.0" semver: "npm:^7.3.8" tiny-typed-emitter: "npm:^2.1.0" - checksum: 278d8aa728690ca1cee8ec45cc657570b80da46ce2168ee191013d8ff4a109364f89156fd5268015b672861225c1784f460859909a2f60277190cba767b967cc + checksum: c6a5b566d70de550cd959a3af0bed98da868b997d7ef741ede488027a8c876af2e1bf981becfeac767c4dbf7af856ed4e53053e7fcd246dc2af5fc71fd5ef7cc languageName: node linkType: hard -"electron@npm:26.2.0": - version: 26.2.0 - resolution: "electron@npm:26.2.0" +"electron@npm:27.2.0": + version: 27.2.0 + resolution: "electron@npm:27.2.0" dependencies: "@electron/get": "npm:^2.0.0" "@types/node": "npm:^18.11.18" extract-zip: "npm:^2.0.1" bin: electron: cli.js - checksum: 27485e960a188c95c52bdad9797471fdcbeaadcdfecb48731816c143fb89be68ca259d97a74575c52c0c73465333b118eaea692e64265e8fc19fe99943042789 - languageName: node - linkType: hard - -"emittery@npm:^0.10.2": - version: 0.10.2 - resolution: "emittery@npm:0.10.2" - checksum: fa86fc2b1f4c792d7d479a4de1a6a1f74b0b597770bae770336f0be6501e64be0995aa07d284ae502b269f5cec960cd0c44c91dd090d06d8deecee6d9787e396 + checksum: 80f207756c4ff85ea8f54e4e6aa0d0fb223719873af550ce081c4846cbfcff612d3611ddef4f127e7a0d34547ad57d2701ad957b06f2d93a885905126973c576 languageName: node linkType: hard @@ -8832,20 +7528,6 @@ __metadata: languageName: node linkType: hard -"emojis-list@npm:^3.0.0": - version: 3.0.0 - resolution: "emojis-list@npm:3.0.0" - checksum: 114f47d6d45612621497d2b1556c8f142c35332a591780a54e863e42d281e72d6c7d7c419f2e419319d4eb7f6ebf1db82d9744905d90f275db20d06a763b5e19 - languageName: node - linkType: hard - -"encodeurl@npm:~1.0.2": - version: 1.0.2 - resolution: "encodeurl@npm:1.0.2" - checksum: e50e3d508cdd9c4565ba72d2012e65038e5d71bdc9198cb125beb6237b5b1ade6c0d343998da9e170fb2eae52c1bed37d4d6d98a46ea423a0cddbed5ac3f780c - languageName: node - linkType: hard - "encoding@npm:^0.1.11, encoding@npm:^0.1.13": version: 0.1.13 resolution: "encoding@npm:0.1.13" @@ -8874,13 +7556,6 @@ __metadata: languageName: node linkType: hard -"entities@npm:^2.0.0": - version: 2.2.0 - resolution: "entities@npm:2.2.0" - checksum: 2c765221ee324dbe25e1b8ca5d1bf2a4d39e750548f2e85cbf7ca1d167d709689ddf1796623e66666ae747364c11ed512c03b48c5bbe70968d30f2a4009509b7 - languageName: node - linkType: hard - "entities@npm:^4.2.0, entities@npm:^4.4.0": version: 4.5.0 resolution: "entities@npm:4.5.0" @@ -8920,16 +7595,7 @@ __metadata: languageName: node linkType: hard -"error-stack-parser@npm:^2.0.6": - version: 2.1.4 - resolution: "error-stack-parser@npm:2.1.4" - dependencies: - stackframe: "npm:^1.3.4" - checksum: 23db33135bfc6ba701e5eee45e1bb9bd2fe33c5d4f9927440d9a499c7ac538f91f455fcd878611361269893c56734419252c40d8105eb3b023cf8b0fc2ebb64e - languageName: node - linkType: hard - -"es-abstract@npm:^1.17.2, es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4, es-abstract@npm:^1.22.1": +"es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4, es-abstract@npm:^1.22.1": version: 1.22.1 resolution: "es-abstract@npm:1.22.1" dependencies: @@ -8976,13 +7642,6 @@ __metadata: languageName: node linkType: hard -"es-array-method-boxes-properly@npm:^1.0.0": - version: 1.0.0 - resolution: "es-array-method-boxes-properly@npm:1.0.0" - checksum: 27a8a21acf20f3f51f69dce8e643f151e380bffe569e95dc933b9ded9fcd89a765ee21b5229c93f9206c93f87395c6b75f80be8ac8c08a7ceb8771e1822ff1fb - languageName: node - linkType: hard - "es-get-iterator@npm:^1.1.3": version: 1.1.3 resolution: "es-get-iterator@npm:1.1.3" @@ -9052,6 +7711,83 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:^0.19.3": + version: 0.19.9 + resolution: "esbuild@npm:0.19.9" + dependencies: + "@esbuild/android-arm": "npm:0.19.9" + "@esbuild/android-arm64": "npm:0.19.9" + "@esbuild/android-x64": "npm:0.19.9" + "@esbuild/darwin-arm64": "npm:0.19.9" + "@esbuild/darwin-x64": "npm:0.19.9" + "@esbuild/freebsd-arm64": "npm:0.19.9" + "@esbuild/freebsd-x64": "npm:0.19.9" + "@esbuild/linux-arm": "npm:0.19.9" + "@esbuild/linux-arm64": "npm:0.19.9" + "@esbuild/linux-ia32": "npm:0.19.9" + "@esbuild/linux-loong64": "npm:0.19.9" + "@esbuild/linux-mips64el": "npm:0.19.9" + "@esbuild/linux-ppc64": "npm:0.19.9" + "@esbuild/linux-riscv64": "npm:0.19.9" + "@esbuild/linux-s390x": "npm:0.19.9" + "@esbuild/linux-x64": "npm:0.19.9" + "@esbuild/netbsd-x64": "npm:0.19.9" + "@esbuild/openbsd-x64": "npm:0.19.9" + "@esbuild/sunos-x64": "npm:0.19.9" + "@esbuild/win32-arm64": "npm:0.19.9" + "@esbuild/win32-ia32": "npm:0.19.9" + "@esbuild/win32-x64": "npm:0.19.9" + dependenciesMeta: + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: b76a6139954b4378aedd9a77c076d9a95ef7948192943266a35139745007650b8cbe0ce999cfdbea58ebf00412105430e09d42600f7de095eb2881643701aa29 + languageName: node + linkType: hard + "escalade@npm:^3.1.1": version: 3.1.1 resolution: "escalade@npm:3.1.1" @@ -9059,13 +7795,6 @@ __metadata: languageName: node linkType: hard -"escape-html@npm:~1.0.3": - version: 1.0.3 - resolution: "escape-html@npm:1.0.3" - checksum: 6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24 - languageName: node - linkType: hard - "escape-string-regexp@npm:^1.0.2, escape-string-regexp@npm:^1.0.5": version: 1.0.5 resolution: "escape-string-regexp@npm:1.0.5" @@ -9113,7 +7842,7 @@ __metadata: languageName: node linkType: hard -"eslint-config-react-app@npm:7.0.1, eslint-config-react-app@npm:^7.0.1": +"eslint-config-react-app@npm:7.0.1": version: 7.0.1 resolution: "eslint-config-react-app@npm:7.0.1" dependencies: @@ -9443,23 +8172,7 @@ __metadata: languageName: node linkType: hard -"eslint-webpack-plugin@npm:^3.1.1, eslint-webpack-plugin@npm:^3.2.0": - version: 3.2.0 - resolution: "eslint-webpack-plugin@npm:3.2.0" - dependencies: - "@types/eslint": "npm:^7.29.0 || ^8.4.1" - jest-worker: "npm:^28.0.2" - micromatch: "npm:^4.0.5" - normalize-path: "npm:^3.0.0" - schema-utils: "npm:^4.0.0" - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - webpack: ^5.0.0 - checksum: 3f78c2fb3c363bfc7284664686a1a445d9266bdc27b5a28a4f0ce0cefe7f769de5f6d9d1c5e2e1c08dc3cabca472afdaf32cff6fc260f97c39c08ec9a5180e84 - languageName: node - linkType: hard - -"eslint@npm:^8.3.0, eslint@npm:^8.37.0": +"eslint@npm:^8.37.0": version: 8.48.0 resolution: "eslint@npm:8.48.0" dependencies: @@ -9559,10 +8272,10 @@ __metadata: languageName: node linkType: hard -"estree-walker@npm:^1.0.1": - version: 1.0.1 - resolution: "estree-walker@npm:1.0.1" - checksum: 1cf11a0aff7613aa765dc535ed1d83e2a1986207d2353f4795df309a2c55726de3ca4948df635c09969a739dc59e8e2d69f88d3b3d2c6dfc5701257aafd1d11b +"estree-walker@npm:^2.0.2": + version: 2.0.2 + resolution: "estree-walker@npm:2.0.2" + checksum: b02109c5d46bc2ed47de4990eef770f7457b1159a229f0999a09224d2b85ffeed2d7679cffcff90aeb4448e94b0168feb5265b209cdec29aad50a3d6e93d21e2 languageName: node linkType: hard @@ -9573,14 +8286,7 @@ __metadata: languageName: node linkType: hard -"etag@npm:~1.8.1": - version: 1.8.1 - resolution: "etag@npm:1.8.1" - checksum: 571aeb3dbe0f2bbd4e4fadbdb44f325fc75335cd5f6f6b6a091e6a06a9f25ed5392f0863c5442acb0646787446e816f13cbfc6edce5b07658541dff573cab1ff - languageName: node - linkType: hard - -"eventemitter3@npm:^4.0.0, eventemitter3@npm:^4.0.1": +"eventemitter3@npm:^4.0.1": version: 4.0.7 resolution: "eventemitter3@npm:4.0.7" checksum: 8030029382404942c01d0037079f1b1bc8fed524b5849c237b80549b01e2fc49709e1d0c557fa65ca4498fc9e24cff1475ef7b855121fcc15f9d61f93e282346 @@ -9643,6 +8349,23 @@ __metadata: languageName: node linkType: hard +"execa@npm:^8.0.1": + version: 8.0.1 + resolution: "execa@npm:8.0.1" + dependencies: + cross-spawn: "npm:^7.0.3" + get-stream: "npm:^8.0.1" + human-signals: "npm:^5.0.0" + is-stream: "npm:^3.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^5.1.0" + onetime: "npm:^6.0.0" + signal-exit: "npm:^4.1.0" + strip-final-newline: "npm:^3.0.0" + checksum: d2ab5fe1e2bb92b9788864d0713f1fce9a07c4594e272c0c97bc18c90569897ab262e4ea58d27a694d288227a2e24f16f5e2575b44224ad9983b799dc7f1098d + languageName: node + linkType: hard + "exenv@npm:^1.2.0": version: 1.2.2 resolution: "exenv@npm:1.2.2" @@ -9696,45 +8419,6 @@ __metadata: languageName: node linkType: hard -"express@npm:^4.17.3": - version: 4.18.2 - resolution: "express@npm:4.18.2" - dependencies: - accepts: "npm:~1.3.8" - array-flatten: "npm:1.1.1" - body-parser: "npm:1.20.1" - content-disposition: "npm:0.5.4" - content-type: "npm:~1.0.4" - cookie: "npm:0.5.0" - cookie-signature: "npm:1.0.6" - debug: "npm:2.6.9" - depd: "npm:2.0.0" - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - etag: "npm:~1.8.1" - finalhandler: "npm:1.2.0" - fresh: "npm:0.5.2" - http-errors: "npm:2.0.0" - merge-descriptors: "npm:1.0.1" - methods: "npm:~1.1.2" - on-finished: "npm:2.4.1" - parseurl: "npm:~1.3.3" - path-to-regexp: "npm:0.1.7" - proxy-addr: "npm:~2.0.7" - qs: "npm:6.11.0" - range-parser: "npm:~1.2.1" - safe-buffer: "npm:5.2.1" - send: "npm:0.18.0" - serve-static: "npm:1.15.0" - setprototypeof: "npm:1.2.0" - statuses: "npm:2.0.1" - type-is: "npm:~1.6.18" - utils-merge: "npm:1.0.1" - vary: "npm:~1.1.2" - checksum: 869ae89ed6ff4bed7b373079dc58e5dddcf2915a2669b36037ff78c99d675ae930e5fe052b35c24f56557d28a023bb1cbe3e2f2fb87eaab96a1cedd7e597809d - languageName: node - linkType: hard - "ext-list@npm:^2.0.0": version: 2.2.2 resolution: "ext-list@npm:2.2.2" @@ -9867,15 +8551,6 @@ __metadata: languageName: node linkType: hard -"faye-websocket@npm:^0.11.3": - version: 0.11.4 - resolution: "faye-websocket@npm:0.11.4" - dependencies: - websocket-driver: "npm:>=0.5.1" - checksum: 22433c14c60925e424332d2794463a8da1c04848539b5f8db5fced62a7a7c71a25335a4a8b37334e3a32318835e2b87b1733d008561964121c4a0bd55f0878c3 - languageName: node - linkType: hard - "fb-watchman@npm:^2.0.0": version: 2.0.2 resolution: "fb-watchman@npm:2.0.2" @@ -9928,18 +8603,6 @@ __metadata: languageName: node linkType: hard -"file-loader@npm:^6.2.0": - version: 6.2.0 - resolution: "file-loader@npm:6.2.0" - dependencies: - loader-utils: "npm:^2.0.0" - schema-utils: "npm:^3.0.0" - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - checksum: 3a854be3a7501bdb0fd8a1c0d45c156c0dc8f0afced07cbdac0b13a79c2f2a03f7770d68cb555ff30b5ea7c20719df34e1b2bd896c93e3138ee31f0bdc560310 - languageName: node - linkType: hard - "file-type@npm:5.2.0, file-type@npm:^5.2.0": version: 5.2.0 resolution: "file-type@npm:5.2.0" @@ -9995,13 +8658,6 @@ __metadata: languageName: node linkType: hard -"filesize@npm:^8.0.6": - version: 8.0.7 - resolution: "filesize@npm:8.0.7" - checksum: e35f1799c314cef49a585af82fe2d15b362f743a74c95f06e3dd99cf0334ca45516ed144f6a58649ca0e2e5e63844c0ef476d9374d5d43736d26f7c13aa49dad - languageName: node - linkType: hard - "fill-range@npm:^7.0.1": version: 7.0.1 resolution: "fill-range@npm:7.0.1" @@ -10011,32 +8667,6 @@ __metadata: languageName: node linkType: hard -"finalhandler@npm:1.2.0": - version: 1.2.0 - resolution: "finalhandler@npm:1.2.0" - dependencies: - debug: "npm:2.6.9" - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - on-finished: "npm:2.4.1" - parseurl: "npm:~1.3.3" - statuses: "npm:2.0.1" - unpipe: "npm:~1.0.0" - checksum: 635718cb203c6d18e6b48dfbb6c54ccb08ea470e4f474ddcef38c47edcf3227feec316f886dd701235997d8af35240cae49856721ce18f539ad038665ebbf163 - languageName: node - linkType: hard - -"find-cache-dir@npm:^3.3.1": - version: 3.3.2 - resolution: "find-cache-dir@npm:3.3.2" - dependencies: - commondir: "npm:^1.0.1" - make-dir: "npm:^3.0.2" - pkg-dir: "npm:^4.1.0" - checksum: 3907c2e0b15132704ed67083686cd3e68ab7d9ecc22e50ae9da20678245d488b01fa22c0e34c0544dc6edc4354c766f016c8c186a787be7c17f7cde8c5281e85 - languageName: node - linkType: hard - "find-up@npm:^2.0.0": version: 2.1.0 resolution: "find-up@npm:2.1.0" @@ -10046,15 +8676,6 @@ __metadata: languageName: node linkType: hard -"find-up@npm:^3.0.0": - version: 3.0.0 - resolution: "find-up@npm:3.0.0" - dependencies: - locate-path: "npm:^3.0.0" - checksum: 38eba3fe7a66e4bc7f0f5a1366dc25508b7cfc349f852640e3678d26ad9a6d7e2c43eff0a472287de4a9753ef58f066a0ea892a256fa3636ad51b3fe1e17fae9 - languageName: node - linkType: hard - "find-up@npm:^4.0.0, find-up@npm:^4.1.0": version: 4.1.0 resolution: "find-up@npm:4.1.0" @@ -10099,16 +8720,6 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:^1.0.0": - version: 1.15.2 - resolution: "follow-redirects@npm:1.15.2" - peerDependenciesMeta: - debug: - optional: true - checksum: 8be0d39919770054812537d376850ccde0b4762b0501c440bd08724971a078123b55f57704f2984e0664fecc0c86adea85add63295804d9dce401cd9604c91d3 - languageName: node - linkType: hard - "for-each@npm:^0.3.3": version: 0.3.3 resolution: "for-each@npm:0.3.3" @@ -10128,37 +8739,6 @@ __metadata: languageName: node linkType: hard -"fork-ts-checker-webpack-plugin@npm:^6.5.0": - version: 6.5.3 - resolution: "fork-ts-checker-webpack-plugin@npm:6.5.3" - dependencies: - "@babel/code-frame": "npm:^7.8.3" - "@types/json-schema": "npm:^7.0.5" - chalk: "npm:^4.1.0" - chokidar: "npm:^3.4.2" - cosmiconfig: "npm:^6.0.0" - deepmerge: "npm:^4.2.2" - fs-extra: "npm:^9.0.0" - glob: "npm:^7.1.6" - memfs: "npm:^3.1.2" - minimatch: "npm:^3.0.4" - schema-utils: "npm:2.7.0" - semver: "npm:^7.3.2" - tapable: "npm:^1.0.0" - peerDependencies: - eslint: ">= 6" - typescript: ">= 2.7" - vue-template-compiler: "*" - webpack: ">= 4" - peerDependenciesMeta: - eslint: - optional: true - vue-template-compiler: - optional: true - checksum: 415263839afe11c291be60e3335ece3ccdc80c5e0d91eeecf0d3060cfb72c7b0cb33be326dd24b325939357d53215e10c41e8187edb5db8a08fe9aaa8aa6c510 - languageName: node - linkType: hard - "form-data@npm:^3.0.0": version: 3.0.1 resolution: "form-data@npm:3.0.1" @@ -10190,27 +8770,6 @@ __metadata: languageName: node linkType: hard -"forwarded@npm:0.2.0": - version: 0.2.0 - resolution: "forwarded@npm:0.2.0" - checksum: 29ba9fd347117144e97cbb8852baae5e8b2acb7d1b591ef85695ed96f5b933b1804a7fac4a15dd09ca7ac7d0cdc104410e8102aae2dd3faa570a797ba07adb81 - languageName: node - linkType: hard - -"fraction.js@npm:^4.2.0": - version: 4.2.0 - resolution: "fraction.js@npm:4.2.0" - checksum: 8f8e3c02a4d10cd03bae5c036c02ef0bd1a50be69ac56e5b9b25025ff07466c1d2288f383fb613ecec583e77bcfd586dee2d932f40e588c910bf55c5103014ab - languageName: node - linkType: hard - -"fresh@npm:0.5.2": - version: 0.5.2 - resolution: "fresh@npm:0.5.2" - checksum: 64c88e489b5d08e2f29664eb3c79c705ff9a8eb15d3e597198ef76546d4ade295897a44abb0abd2700e7ef784b2e3cbf1161e4fbf16f59129193fd1030d16da1 - languageName: node - linkType: hard - "fs-constants@npm:^1.0.0": version: 1.0.0 resolution: "fs-constants@npm:1.0.0" @@ -10277,13 +8836,6 @@ __metadata: languageName: node linkType: hard -"fs-monkey@npm:^1.0.4": - version: 1.0.4 - resolution: "fs-monkey@npm:1.0.4" - checksum: 9944223c25e62e176cbb9b0f9e0ee1697a1676419529e948ec013b49156863411a09b45671b56267d3118c867d3a0d5c08225845160a6148861cc16fc1eec79e - languageName: node - linkType: hard - "fs.realpath@npm:^1.0.0": version: 1.0.0 resolution: "fs.realpath@npm:1.0.0" @@ -10291,7 +8843,7 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:2.3.2, fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": +"fsevents@npm:2.3.2": version: 2.3.2 resolution: "fsevents@npm:2.3.2" dependencies: @@ -10301,7 +8853,17 @@ __metadata: languageName: node linkType: hard -"fsevents@patch:fsevents@npm%3A2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin": +"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" + dependencies: + node-gyp: "npm:latest" + checksum: 4c1ade961ded57cdbfbb5cac5106ec17bc8bccd62e16343c569a0ceeca83b9dfef87550b4dc5cbb89642da412b20c5071f304c8c464b80415446e8e155a038c0 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@npm%3A2.3.2#optional!builtin": version: 2.3.2 resolution: "fsevents@patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1" dependencies: @@ -10310,6 +8872,15 @@ __metadata: languageName: node linkType: hard +"fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" + dependencies: + node-gyp: "npm:latest" + conditions: os=darwin + languageName: node + linkType: hard + "function-bind@npm:^1.1.1": version: 1.1.1 resolution: "function-bind@npm:1.1.1" @@ -10373,6 +8944,13 @@ __metadata: languageName: node linkType: hard +"get-func-name@npm:^2.0.1, get-func-name@npm:^2.0.2": + version: 2.0.2 + resolution: "get-func-name@npm:2.0.2" + checksum: 3f62f4c23647de9d46e6f76d2b3eafe58933a9b3830c60669e4180d6c601ce1b4aa310ba8366143f55e52b139f992087a9f0647274e8745621fa2af7e0acf13b + languageName: node + linkType: hard + "get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.1": version: 1.2.1 resolution: "get-intrinsic@npm:1.2.1" @@ -10385,13 +8963,6 @@ __metadata: languageName: node linkType: hard -"get-own-enumerable-property-symbols@npm:^3.0.0": - version: 3.0.2 - resolution: "get-own-enumerable-property-symbols@npm:3.0.2" - checksum: 8f0331f14159f939830884799f937343c8c0a2c330506094bc12cbee3665d88337fe97a4ea35c002cc2bdba0f5d9975ad7ec3abb925015cdf2a93e76d4759ede - languageName: node - linkType: hard - "get-package-type@npm:^0.1.0": version: 0.1.0 resolution: "get-package-type@npm:0.1.0" @@ -10399,13 +8970,6 @@ __metadata: languageName: node linkType: hard -"get-port-please@npm:3.0.1": - version: 3.0.1 - resolution: "get-port-please@npm:3.0.1" - checksum: a5de771314986e45872354a72e24f27c13884c14be9e00b7332bc53de971c50787d2ae61dd81ef6d1eb2df5c35b1e3528906de29ac4a5127769f7ebee6e8f100 - languageName: node - linkType: hard - "get-proxy@npm:^2.0.0": version: 2.1.0 resolution: "get-proxy@npm:2.1.0" @@ -10448,6 +9012,13 @@ __metadata: languageName: node linkType: hard +"get-stream@npm:^8.0.1": + version: 8.0.1 + resolution: "get-stream@npm:8.0.1" + checksum: dde5511e2e65a48e9af80fea64aff11b4921b14b6e874c6f8294c50975095af08f41bfb0b680c887f28b566dd6ec2cb2f960f9d36a323359be324ce98b766e9e + languageName: node + linkType: hard + "get-symbol-description@npm:^1.0.0": version: 1.0.0 resolution: "get-symbol-description@npm:1.0.0" @@ -10512,20 +9083,6 @@ __metadata: languageName: node linkType: hard -"glob@npm:7.1.6": - version: 7.1.6 - resolution: "glob@npm:7.1.6" - dependencies: - fs.realpath: "npm:^1.0.0" - inflight: "npm:^1.0.4" - inherits: "npm:2" - minimatch: "npm:^3.0.4" - once: "npm:^1.3.0" - path-is-absolute: "npm:^1.0.0" - checksum: 7d6ec98bc746980d5fe4d764b9c7ada727e3fbd2a7d85cd96dd95fb18638c9c54a70c692fd2ab5d68a186dc8cd9d6a4192d3df220beed891f687db179c430237 - languageName: node - linkType: hard - "glob@npm:^10.2.2": version: 10.3.4 resolution: "glob@npm:10.3.4" @@ -10582,26 +9139,6 @@ __metadata: languageName: node linkType: hard -"global-modules@npm:^2.0.0": - version: 2.0.0 - resolution: "global-modules@npm:2.0.0" - dependencies: - global-prefix: "npm:^3.0.0" - checksum: 4aee73adf533fe82ead2ad15c8bfb6ea4fb29e16d2d067521ab39d3b45b8f834d71c47a807e4f8f696e79497c3946d4ccdcd708da6f3a4522d65b087b8852f64 - languageName: node - linkType: hard - -"global-prefix@npm:^3.0.0": - version: 3.0.0 - resolution: "global-prefix@npm:3.0.0" - dependencies: - ini: "npm:^1.3.5" - kind-of: "npm:^6.0.2" - which: "npm:^1.3.1" - checksum: a405b9f83c7d88a49dc1c1e458d6585e258356810d3d0f41094265152a06a0f393b14d911f45616e35a4ce3894176a73be2984883575e778f55e90bf812d7337 - languageName: node - linkType: hard - "globals@npm:^11.1.0": version: 11.12.0 resolution: "globals@npm:11.12.0" @@ -10627,7 +9164,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^11.0.4, globby@npm:^11.1.0": +"globby@npm:^11.1.0": version: 11.1.0 resolution: "globby@npm:11.1.0" dependencies: @@ -10654,6 +9191,13 @@ __metadata: languageName: node linkType: hard +"globrex@npm:^0.1.2": + version: 0.1.2 + resolution: "globrex@npm:0.1.2" + checksum: 81ce62ee6f800d823d6b7da7687f841676d60ee8f51f934ddd862e4057316d26665c4edc0358d4340a923ac00a514f8b67c787e28fe693aae16350f4e60d55e9 + languageName: node + linkType: hard + "google-protobuf@npm:^3.12.0-rc.1, google-protobuf@npm:^3.15.5": version: 3.21.2 resolution: "google-protobuf@npm:3.21.2" @@ -10741,20 +9285,6 @@ __metadata: languageName: node linkType: hard -"handle-thing@npm:^2.0.0": - version: 2.0.1 - resolution: "handle-thing@npm:2.0.1" - checksum: 441ec98b07f26819c70c702f6c874088eebeb551b242fe8fae4eab325746b82bf84ae7a1f6419547698accb3941fa26806c5f5f93c50e19f90e499065a711d61 - languageName: node - linkType: hard - -"harmony-reflect@npm:^1.4.6": - version: 1.6.2 - resolution: "harmony-reflect@npm:1.6.2" - checksum: 69d30ebfb5dbd6ff0553725c7922404cf1dfe5390db1618298eed27fe6c9bd2f3f677727e9da969d21648f4a6a39041e2f46e99976be4385f9e34bac23058cd4 - languageName: node - linkType: hard - "has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": version: 1.0.2 resolution: "has-bigints@npm:1.0.2" @@ -10799,7 +9329,7 @@ __metadata: languageName: node linkType: hard -"has-symbols@npm:^1.0.1, has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": +"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": version: 1.0.3 resolution: "has-symbols@npm:1.0.3" checksum: 464f97a8202a7690dadd026e6d73b1ceeddd60fe6acfd06151106f050303eaa75855aaa94969df8015c11ff7c505f196114d22f7386b4a471038da5874cf5e9b @@ -10847,15 +9377,6 @@ __metadata: languageName: node linkType: hard -"he@npm:^1.2.0": - version: 1.2.0 - resolution: "he@npm:1.2.0" - bin: - he: bin/he - checksum: d09b2243da4e23f53336e8de3093e5c43d2c39f8d0d18817abfa32ce3e9355391b2edb4bb5edc376aea5d4b0b59d6a0482aab4c52bc02ef95751e4b818e847f1 - languageName: node - linkType: hard - "hoist-non-react-statics@npm:^3.3.0, hoist-non-react-statics@npm:^3.3.2": version: 3.3.2 resolution: "hoist-non-react-statics@npm:3.3.2" @@ -10865,13 +9386,6 @@ __metadata: languageName: node linkType: hard -"hoopy@npm:^0.1.4": - version: 0.1.4 - resolution: "hoopy@npm:0.1.4" - checksum: 7a73f1839a7fd6b953356770dff2c3cff813d97d899cddd75b348926c4df36059d987c06bedb57b1b7711504dba83d3b7b986f979a08b1e415da73a51fefa767 - languageName: node - linkType: hard - "hosted-git-info@npm:^2.1.4": version: 2.8.9 resolution: "hosted-git-info@npm:2.8.9" @@ -10895,18 +9409,6 @@ __metadata: languageName: node linkType: hard -"hpack.js@npm:^2.1.6": - version: 2.1.6 - resolution: "hpack.js@npm:2.1.6" - dependencies: - inherits: "npm:^2.0.1" - obuf: "npm:^1.0.0" - readable-stream: "npm:^2.0.1" - wbuf: "npm:^1.1.0" - checksum: 6910e4b9d943a78fd8e84ac42729fdab9bd406789d6204ad160af9dc5aa4750fc01f208249bf7116c11dc0678207a387b4ade24e4b628b95385b251ceeeb719c - languageName: node - linkType: hard - "html-encoding-sniffer@npm:^2.0.1": version: 2.0.1 resolution: "html-encoding-sniffer@npm:2.0.1" @@ -10916,13 +9418,6 @@ __metadata: languageName: node linkType: hard -"html-entities@npm:^2.1.0, html-entities@npm:^2.3.2": - version: 2.4.0 - resolution: "html-entities@npm:2.4.0" - checksum: 646f2f19214bad751e060ceef4df98520654a1d0cd631b55d45504df2f0aaf8a14d8c0a5a4f92b353be298774d856157ac2d04a031d78889c9011892078ca157 - languageName: node - linkType: hard - "html-escaper@npm:^2.0.0": version: 2.0.2 resolution: "html-escaper@npm:2.0.2" @@ -10930,50 +9425,6 @@ __metadata: languageName: node linkType: hard -"html-minifier-terser@npm:^6.0.2": - version: 6.1.0 - resolution: "html-minifier-terser@npm:6.1.0" - dependencies: - camel-case: "npm:^4.1.2" - clean-css: "npm:^5.2.2" - commander: "npm:^8.3.0" - he: "npm:^1.2.0" - param-case: "npm:^3.0.4" - relateurl: "npm:^0.2.7" - terser: "npm:^5.10.0" - bin: - html-minifier-terser: cli.js - checksum: a244fa944e002b57c66cc829a3f2dfdb9514b1833c2d838ada624964bf8c0afaf61d36c371758c7e44dedae95cea740a84d8d1067b916ed204f35175184d0e27 - languageName: node - linkType: hard - -"html-webpack-plugin@npm:^5.5.0": - version: 5.5.3 - resolution: "html-webpack-plugin@npm:5.5.3" - dependencies: - "@types/html-minifier-terser": "npm:^6.0.0" - html-minifier-terser: "npm:^6.0.2" - lodash: "npm:^4.17.21" - pretty-error: "npm:^4.0.0" - tapable: "npm:^2.0.0" - peerDependencies: - webpack: ^5.20.0 - checksum: 01d302a434e3db9f0e2db370f06300fb613de0fb8bdcafd4693e44c2528b8608621e5e7ca5d8302446db3f20c5f8875f1f675926d469b13ebab139954d241055 - languageName: node - linkType: hard - -"htmlparser2@npm:^6.1.0": - version: 6.1.0 - resolution: "htmlparser2@npm:6.1.0" - dependencies: - domelementtype: "npm:^2.0.1" - domhandler: "npm:^4.0.0" - domutils: "npm:^2.5.2" - entities: "npm:^2.0.0" - checksum: c9c34b0b722f5923c4ae05e59268aeb768582152969e3338a1cd3342b87f8dd2c0420f4745e46d2fd87f1b677ea2f314c3a93436ed8831905997e6347e081a5d - languageName: node - linkType: hard - "http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.0, http-cache-semantics@npm:^4.1.1": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" @@ -10981,45 +9432,6 @@ __metadata: languageName: node linkType: hard -"http-deceiver@npm:^1.2.7": - version: 1.2.7 - resolution: "http-deceiver@npm:1.2.7" - checksum: 9ae293b0acbfad6ed45d52c1f85f58ab062465872fd9079c80d78c6527634002d73c2a9d8c0296cc12d178a0b689bb5291d9979aad3ce71ab17a7517588adbf7 - languageName: node - linkType: hard - -"http-errors@npm:2.0.0": - version: 2.0.0 - resolution: "http-errors@npm:2.0.0" - dependencies: - depd: "npm:2.0.0" - inherits: "npm:2.0.4" - setprototypeof: "npm:1.2.0" - statuses: "npm:2.0.1" - toidentifier: "npm:1.0.1" - checksum: 0e7f76ee8ff8a33e58a3281a469815b893c41357378f408be8f6d4aa7d1efafb0da064625518e7078381b6a92325949b119dc38fcb30bdbc4e3a35f78c44c439 - languageName: node - linkType: hard - -"http-errors@npm:~1.6.2": - version: 1.6.3 - resolution: "http-errors@npm:1.6.3" - dependencies: - depd: "npm:~1.1.2" - inherits: "npm:2.0.3" - setprototypeof: "npm:1.1.0" - statuses: "npm:>= 1.4.0 < 2" - checksum: e48732657ea0b4a09853d2696a584fa59fa2a8c1ba692af7af3137b5491a997d7f9723f824e7e08eb6a87098532c09ce066966ddf0f9f3dd30905e52301acadb - languageName: node - linkType: hard - -"http-parser-js@npm:>=0.5.1": - version: 0.5.8 - resolution: "http-parser-js@npm:0.5.8" - checksum: 2a78a567ee6366dae0129d819b799dce1f95ec9732c5ab164a78ee69804ffb984abfa0660274e94e890fc54af93546eb9f12b6d10edbaed017e2d41c29b7cf29 - languageName: node - linkType: hard - "http-proxy-agent@npm:^4.0.1": version: 4.0.1 resolution: "http-proxy-agent@npm:4.0.1" @@ -11042,35 +9454,6 @@ __metadata: languageName: node linkType: hard -"http-proxy-middleware@npm:^2.0.3": - version: 2.0.6 - resolution: "http-proxy-middleware@npm:2.0.6" - dependencies: - "@types/http-proxy": "npm:^1.17.8" - http-proxy: "npm:^1.18.1" - is-glob: "npm:^4.0.1" - is-plain-obj: "npm:^3.0.0" - micromatch: "npm:^4.0.2" - peerDependencies: - "@types/express": ^4.17.13 - peerDependenciesMeta: - "@types/express": - optional: true - checksum: 768e7ae5a422bbf4b866b64105b4c2d1f468916b7b0e9c96750551c7732383069b411aa7753eb7b34eab113e4f77fb770122cb7fb9c8ec87d138d5ddaafda891 - languageName: node - linkType: hard - -"http-proxy@npm:^1.18.1": - version: 1.18.1 - resolution: "http-proxy@npm:1.18.1" - dependencies: - eventemitter3: "npm:^4.0.0" - follow-redirects: "npm:^1.0.0" - requires-port: "npm:^1.0.0" - checksum: 2489e98aba70adbfd8b9d41ed1ff43528be4598c88616c558b109a09eaffe4bb35e551b6c75ac42ed7d948bb7530a22a2be6ef4f0cecacb5927be139f4274594 - languageName: node - linkType: hard - "http2-wrapper@npm:^1.0.0-beta.5.2": version: 1.0.3 resolution: "http2-wrapper@npm:1.0.3" @@ -11105,6 +9488,13 @@ __metadata: languageName: node linkType: hard +"human-signals@npm:^5.0.0": + version: 5.0.0 + resolution: "human-signals@npm:5.0.0" + checksum: 30f8870d831cdcd2d6ec0486a7d35d49384996742052cee792854273fa9dd9e7d5db06bb7985d4953e337e10714e994e0302e90dc6848069171b05ec836d65b0 + languageName: node + linkType: hard + "humanize-ms@npm:^1.2.1": version: 1.2.1 resolution: "humanize-ms@npm:1.2.1" @@ -11140,7 +9530,7 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:^0.6.2, iconv-lite@npm:^0.6.3": +"iconv-lite@npm:^0.6.2": version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" dependencies: @@ -11149,31 +9539,6 @@ __metadata: languageName: node linkType: hard -"icss-utils@npm:^5.0.0, icss-utils@npm:^5.1.0": - version: 5.1.0 - resolution: "icss-utils@npm:5.1.0" - peerDependencies: - postcss: ^8.1.0 - checksum: 5c324d283552b1269cfc13a503aaaa172a280f914e5b81544f3803bc6f06a3b585fb79f66f7c771a2c052db7982c18bf92d001e3b47282e3abbbb4c4cc488d68 - languageName: node - linkType: hard - -"idb@npm:^7.0.1": - version: 7.1.1 - resolution: "idb@npm:7.1.1" - checksum: 8e33eaebf21055129864acb89932e0739b8c96788e559df24c253ce114d8c6deb977a3b30ea47a9bb8a2ae8a55964861c3df65f360d95745e341cee40d5c17f4 - languageName: node - linkType: hard - -"identity-obj-proxy@npm:^3.0.0": - version: 3.0.0 - resolution: "identity-obj-proxy@npm:3.0.0" - dependencies: - harmony-reflect: "npm:^1.4.6" - checksum: 66fe4d2ffc67655174f6abe100ab3b36d2f5e4de5b28a7c3121e5f51bd4e7c8c1bee4f9a41ce0586ace57fb63bfedbfc39508b7cb43b9e3ed6dc42f762158b4e - languageName: node - linkType: hard - "ieee754@npm:^1.1.13, ieee754@npm:^1.2.1": version: 1.2.1 resolution: "ieee754@npm:1.2.1" @@ -11188,13 +9553,6 @@ __metadata: languageName: node linkType: hard -"immer@npm:^9.0.7": - version: 9.0.21 - resolution: "immer@npm:9.0.21" - checksum: 8455d6b4dc8abfe40f06eeec9bcc944d147c81279424c0f927a4d4905ae34e5af19ab6da60bcc700c14f51c452867d7089b3b9236f5a9a2248e39b4a09ee89de - languageName: node - linkType: hard - "immutable@npm:^4.0.0": version: 4.3.0 resolution: "immutable@npm:4.3.0" @@ -11202,7 +9560,7 @@ __metadata: languageName: node linkType: hard -"import-fresh@npm:^3.1.0, import-fresh@npm:^3.2.1": +"import-fresh@npm:^3.2.1": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" dependencies: @@ -11255,21 +9613,14 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3, inherits@npm:~2.0.4": +"inherits@npm:2, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3, inherits@npm:~2.0.4": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: cd45e923bee15186c07fa4c89db0aace24824c482fb887b528304694b2aa6ff8a898da8657046a5dcf3e46cd6db6c61629551f9215f208d7c3f157cf9b290521 languageName: node linkType: hard -"inherits@npm:2.0.3": - version: 2.0.3 - resolution: "inherits@npm:2.0.3" - checksum: 8771303d66c51be433b564427c16011a8e3fbc3449f1f11ea50efb30a4369495f1d0e89f0fc12bdec0bd7e49102ced5d137e031d39ea09821cb3c717fcf21e69 - languageName: node - linkType: hard - -"ini@npm:^1.3.4, ini@npm:^1.3.5, ini@npm:~1.3.0": +"ini@npm:^1.3.4, ini@npm:~1.3.0": version: 1.3.8 resolution: "ini@npm:1.3.8" checksum: 314ae176e8d4deb3def56106da8002b462221c174ddb7ce0c49ee72c8cd1f9044f7b10cc555a7d8850982c3b9ca96fc212122749f5234bc2b6fb05fb942ed566 @@ -11351,20 +9702,6 @@ __metadata: languageName: node linkType: hard -"ipaddr.js@npm:1.9.1": - version: 1.9.1 - resolution: "ipaddr.js@npm:1.9.1" - checksum: 864d0cced0c0832700e9621913a6429ccdc67f37c1bd78fb8c6789fff35c9d167cb329134acad2290497a53336813ab4798d2794fd675d5eb33b5fdf0982b9ca - languageName: node - linkType: hard - -"ipaddr.js@npm:^2.0.1": - version: 2.1.0 - resolution: "ipaddr.js@npm:2.1.0" - checksum: 42c16d95cf451399707c2c46e605b88db1ea2b1477b25774b5a7ee96852b0bb1efdc01adbff01fedbe702ff246e1aca5c5e915a6f5a1f1485233a5f7c2eb73c2 - languageName: node - linkType: hard - "is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.1": version: 1.1.1 resolution: "is-arguments@npm:1.1.1" @@ -11601,13 +9938,6 @@ __metadata: languageName: node linkType: hard -"is-module@npm:^1.0.0": - version: 1.0.0 - resolution: "is-module@npm:1.0.0" - checksum: 8cd5390730c7976fb4e8546dd0b38865ee6f7bacfa08dfbb2cc07219606755f0b01709d9361e01f13009bbbd8099fa2927a8ed665118a6105d66e40f1b838c3f - languageName: node - linkType: hard - "is-nan@npm:^1.2.1": version: 1.3.2 resolution: "is-nan@npm:1.3.2" @@ -11648,13 +9978,6 @@ __metadata: languageName: node linkType: hard -"is-obj@npm:^1.0.1": - version: 1.0.1 - resolution: "is-obj@npm:1.0.1" - checksum: 3ccf0efdea12951e0b9c784e2b00e77e87b2f8bd30b42a498548a8afcc11b3287342a2030c308e473e93a7a19c9ea7854c99a8832a476591c727df2a9c79796c - languageName: node - linkType: hard - "is-object@npm:^1.0.1": version: 1.0.2 resolution: "is-object@npm:1.0.2" @@ -11676,13 +9999,6 @@ __metadata: languageName: node linkType: hard -"is-plain-obj@npm:^3.0.0": - version: 3.0.0 - resolution: "is-plain-obj@npm:3.0.0" - checksum: a6ebdf8e12ab73f33530641972a72a4b8aed6df04f762070d823808303e4f76d87d5ea5bd76f96a7bbe83d93f04ac7764429c29413bd9049853a69cb630fb21c - languageName: node - linkType: hard - "is-plain-obj@npm:^4.0.0": version: 4.1.0 resolution: "is-plain-obj@npm:4.1.0" @@ -11723,13 +10039,6 @@ __metadata: languageName: node linkType: hard -"is-regexp@npm:^1.0.0": - version: 1.0.0 - resolution: "is-regexp@npm:1.0.0" - checksum: be692828e24cba479ec33644326fa98959ec68ba77965e0291088c1a741feaea4919d79f8031708f85fd25e39de002b4520622b55460660b9c369e6f7187faef - languageName: node - linkType: hard - "is-retry-allowed@npm:^1.0.0": version: 1.2.0 resolution: "is-retry-allowed@npm:1.2.0" @@ -11737,13 +10046,6 @@ __metadata: languageName: node linkType: hard -"is-root@npm:^2.1.0": - version: 2.1.0 - resolution: "is-root@npm:2.1.0" - checksum: 37eea0822a2a9123feb58a9d101558ba276771a6d830f87005683349a9acff15958a9ca590a44e778c6b335660b83e85c744789080d734f6081a935a4880aee2 - languageName: node - linkType: hard - "is-set@npm:^2.0.1, is-set@npm:^2.0.2": version: 2.0.2 resolution: "is-set@npm:2.0.2" @@ -12325,23 +10627,6 @@ __metadata: languageName: node linkType: hard -"jest-message-util@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-message-util@npm:28.1.3" - dependencies: - "@babel/code-frame": "npm:^7.12.13" - "@jest/types": "npm:^28.1.3" - "@types/stack-utils": "npm:^2.0.0" - chalk: "npm:^4.0.0" - graceful-fs: "npm:^4.2.9" - micromatch: "npm:^4.0.4" - pretty-format: "npm:^28.1.3" - slash: "npm:^3.0.0" - stack-utils: "npm:^2.0.3" - checksum: 91137a507e9eb79ef6156a3d17c882a181fa662da28cc1a86245ff53ba13726653c8d5fed2660e922aae020a9caca4d22c3689bfe61a215c8a17a43e01b7eb5c - languageName: node - linkType: hard - "jest-message-util@npm:^29.5.0": version: 29.5.0 resolution: "jest-message-util@npm:29.5.0" @@ -12388,13 +10673,6 @@ __metadata: languageName: node linkType: hard -"jest-regex-util@npm:^28.0.0": - version: 28.0.2 - resolution: "jest-regex-util@npm:28.0.2" - checksum: 0ea8c5c82ec88bc85e273c0ec82e0c0f35f7a1e2d055070e50f0cc2a2177f848eec55f73e37ae0d045c3db5014c42b2f90ac62c1ab3fdb354d2abd66a9e08add - languageName: node - linkType: hard - "jest-regex-util@npm:^29.0.0, jest-regex-util@npm:^29.4.3": version: 29.4.3 resolution: "jest-regex-util@npm:29.4.3" @@ -12413,7 +10691,7 @@ __metadata: languageName: node linkType: hard -"jest-resolve@npm:^27.4.2, jest-resolve@npm:^27.5.1": +"jest-resolve@npm:^27.5.1": version: 27.5.1 resolution: "jest-resolve@npm:27.5.1" dependencies: @@ -12575,20 +10853,6 @@ __metadata: languageName: node linkType: hard -"jest-util@npm:^28.1.3": - version: 28.1.3 - resolution: "jest-util@npm:28.1.3" - dependencies: - "@jest/types": "npm:^28.1.3" - "@types/node": "npm:*" - chalk: "npm:^4.0.0" - ci-info: "npm:^3.2.0" - graceful-fs: "npm:^4.2.9" - picomatch: "npm:^2.2.3" - checksum: 92895523d30ddde8f22bebbc20ed6e1be35b0a21c8e9df8a1fc289bf354f6a3f96e5d271340f2ed212a5aa0b55fd7717ff3167da8c5f247d623e2a93a3bf7b32 - languageName: node - linkType: hard - "jest-util@npm:^29.5.0": version: 29.5.0 resolution: "jest-util@npm:29.5.0" @@ -12617,23 +10881,6 @@ __metadata: languageName: node linkType: hard -"jest-watch-typeahead@npm:^1.0.0": - version: 1.1.0 - resolution: "jest-watch-typeahead@npm:1.1.0" - dependencies: - ansi-escapes: "npm:^4.3.1" - chalk: "npm:^4.0.0" - jest-regex-util: "npm:^28.0.0" - jest-watcher: "npm:^28.0.0" - slash: "npm:^4.0.0" - string-length: "npm:^5.0.1" - strip-ansi: "npm:^7.0.1" - peerDependencies: - jest: ^27.0.0 || ^28.0.0 - checksum: 59b0a494ac01e3801c9ec586de3209153eedb024b981e25443111c5703711d23b67ebc71b072986c1758307e0bfb5bf1c92bd323f73f58602d6f4f609dce6a0c - languageName: node - linkType: hard - "jest-watch-typeahead@npm:^2.2.2": version: 2.2.2 resolution: "jest-watch-typeahead@npm:2.2.2" @@ -12666,22 +10913,6 @@ __metadata: languageName: node linkType: hard -"jest-watcher@npm:^28.0.0": - version: 28.1.3 - resolution: "jest-watcher@npm:28.1.3" - dependencies: - "@jest/test-result": "npm:^28.1.3" - "@jest/types": "npm:^28.1.3" - "@types/node": "npm:*" - ansi-escapes: "npm:^4.2.1" - chalk: "npm:^4.0.0" - emittery: "npm:^0.10.2" - jest-util: "npm:^28.1.3" - string-length: "npm:^4.0.1" - checksum: e6d2c099d461408a992d144c230112fb282b2d8f54c49227bdb0c3efcfa5ecab70a019fc57d8ad6360000459087bb942c4f72670b52fc5b97ac0d9834f87d24e - languageName: node - linkType: hard - "jest-watcher@npm:^29.0.0": version: 29.5.0 resolution: "jest-watcher@npm:29.5.0" @@ -12698,18 +10929,7 @@ __metadata: languageName: node linkType: hard -"jest-worker@npm:^26.2.1": - version: 26.6.2 - resolution: "jest-worker@npm:26.6.2" - dependencies: - "@types/node": "npm:*" - merge-stream: "npm:^2.0.0" - supports-color: "npm:^7.0.0" - checksum: 5f6b94cf0e8701392a9402fc7af34a1324d334fc6a440d4d55d2d9348114659c035b8d9b259930f9c9e40cbdda0ef9bfe4d7c780e1107057bbe1202672b38533 - languageName: node - linkType: hard - -"jest-worker@npm:^27.0.2, jest-worker@npm:^27.4.5, jest-worker@npm:^27.5.1": +"jest-worker@npm:^27.4.5, jest-worker@npm:^27.5.1": version: 27.5.1 resolution: "jest-worker@npm:27.5.1" dependencies: @@ -12720,17 +10940,6 @@ __metadata: languageName: node linkType: hard -"jest-worker@npm:^28.0.2": - version: 28.1.3 - resolution: "jest-worker@npm:28.1.3" - dependencies: - "@types/node": "npm:*" - merge-stream: "npm:^2.0.0" - supports-color: "npm:^8.0.0" - checksum: 0b5992308276ac8440a789e5317ff8feaa496cd9a0512c9cd73dbb9b6d2ff81b717cef1aa20113633c7280c9e29319af00a4d53d6bb35adbd1e3c01f0c290152 - languageName: node - linkType: hard - "jest-worker@npm:^29.5.0": version: 29.5.0 resolution: "jest-worker@npm:29.5.0" @@ -12743,7 +10952,7 @@ __metadata: languageName: node linkType: hard -"jest@npm:^27.0.0, jest@npm:^27.4.3": +"jest@npm:^27.0.0": version: 27.5.1 resolution: "jest@npm:27.5.1" dependencies: @@ -12761,15 +10970,6 @@ __metadata: languageName: node linkType: hard -"jiti@npm:^1.18.2": - version: 1.19.3 - resolution: "jiti@npm:1.19.3" - bin: - jiti: bin/jiti.js - checksum: b4bc01fc27e5372efcbd82656e654b52043ff6d6e9f0054d6e87738776b042250a165726516e38704938bfbdfe703ff12b83ab985e059f3a5e23fee50c34ced9 - languageName: node - linkType: hard - "joi@npm:^17.4.0": version: 17.9.2 resolution: "joi@npm:17.9.2" @@ -12899,20 +11099,6 @@ __metadata: languageName: node linkType: hard -"json-schema-traverse@npm:^1.0.0": - version: 1.0.0 - resolution: "json-schema-traverse@npm:1.0.0" - checksum: 02f2f466cdb0362558b2f1fd5e15cce82ef55d60cd7f8fa828cf35ba74330f8d767fcae5c5c2adb7851fa811766c694b9405810879bc4e1ddd78a7c0e03658ad - languageName: node - linkType: hard - -"json-schema@npm:^0.4.0": - version: 0.4.0 - resolution: "json-schema@npm:0.4.0" - checksum: 8b3b64eff4a807dc2a3045b104ed1b9335cd8d57aa74c58718f07f0f48b8baa3293b00af4dcfbdc9144c3aafea1e97982cc27cc8e150fc5d93c540649507a458 - languageName: node - linkType: hard - "json-stable-stringify-without-jsonify@npm:^1.0.1": version: 1.0.1 resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" @@ -12938,7 +11124,7 @@ __metadata: languageName: node linkType: hard -"json5@npm:^2.1.2, json5@npm:^2.2.0, json5@npm:^2.2.3": +"json5@npm:^2.2.0, json5@npm:^2.2.3": version: 2.2.3 resolution: "json5@npm:2.2.3" bin: @@ -12979,13 +11165,6 @@ __metadata: languageName: node linkType: hard -"jsonpointer@npm:^5.0.0": - version: 5.0.1 - resolution: "jsonpointer@npm:5.0.1" - checksum: 0b40f712900ad0c846681ea2db23b6684b9d5eedf55807b4708c656f5894b63507d0e28ae10aa1bddbea551241035afe62b6df0800fc94c2e2806a7f3adecd7c - languageName: node - linkType: hard - "jsverify@npm:^0.8.4": version: 0.8.4 resolution: "jsverify@npm:0.8.4" @@ -13038,13 +11217,6 @@ __metadata: languageName: node linkType: hard -"klona@npm:^2.0.4, klona@npm:^2.0.5": - version: 2.0.6 - resolution: "klona@npm:2.0.6" - checksum: ed7e2c9af58cb646e758e60b75dec24bf72466066290f78c515a2bae23a06fa280f11ff3210c43b94a18744954aa5358f9d46583d5e4c36da073ecc3606355c4 - languageName: node - linkType: hard - "language-subtag-registry@npm:~0.3.2": version: 0.3.22 resolution: "language-subtag-registry@npm:0.3.22" @@ -13061,16 +11233,6 @@ __metadata: languageName: node linkType: hard -"launch-editor@npm:^2.6.0": - version: 2.6.0 - resolution: "launch-editor@npm:2.6.0" - dependencies: - picocolors: "npm:^1.0.0" - shell-quote: "npm:^1.7.3" - checksum: 48e4230643e8fdb5c14c11314706d58d9f3fbafe2606be3d6e37da1918ad8bfe39dd87875c726a1b59b9f4da99d87ec3e36d4c528464f0b820f9e91e5cb1c02d - languageName: node - linkType: hard - "lazy-seq@npm:^1.0.0": version: 1.0.0 resolution: "lazy-seq@npm:1.0.0" @@ -13121,13 +11283,6 @@ __metadata: languageName: node linkType: hard -"lilconfig@npm:^2.0.3, lilconfig@npm:^2.0.5, lilconfig@npm:^2.1.0": - version: 2.1.0 - resolution: "lilconfig@npm:2.1.0" - checksum: b1314a2e55319013d5e7d7d08be39015829d2764a1eaee130129545d40388499d81b1c31b0f9b3417d4db12775a88008b72ec33dd06e0184cf7503b32ca7cc0b - languageName: node - linkType: hard - "lines-and-columns@npm:^1.1.6": version: 1.2.4 resolution: "lines-and-columns@npm:1.2.4" @@ -13166,21 +11321,13 @@ __metadata: languageName: node linkType: hard -"loader-utils@npm:^2.0.0, loader-utils@npm:^2.0.4": - version: 2.0.4 - resolution: "loader-utils@npm:2.0.4" +"local-pkg@npm:^0.5.0": + version: 0.5.0 + resolution: "local-pkg@npm:0.5.0" dependencies: - big.js: "npm:^5.2.2" - emojis-list: "npm:^3.0.0" - json5: "npm:^2.1.2" - checksum: 28bd9af2025b0cb2fc6c9c2d8140a75a3ab61016e5a86edf18f63732216e985a50bf2479a662555beb472a54d12292e380423705741bfd2b54cab883aa067f18 - languageName: node - linkType: hard - -"loader-utils@npm:^3.2.0": - version: 3.2.1 - resolution: "loader-utils@npm:3.2.1" - checksum: 177f5bb9b4c651263714fcd1b50682c1367b06893462529f510287775f9e461ca27a41bf364c8dffa9cd74ed9e8b1fdb30c03a526f6bcf12573bdc1a1644d086 + mlly: "npm:^1.4.2" + pkg-types: "npm:^1.0.3" + checksum: 20f4caba50dc6fb00ffcc1a78bc94b5acb33995e0aadf4d4edcdeab257e891aa08f50afddf02f3240b2c3d02432bc2078f2a916a280ed716b64753a3d250db70 languageName: node linkType: hard @@ -13194,16 +11341,6 @@ __metadata: languageName: node linkType: hard -"locate-path@npm:^3.0.0": - version: 3.0.0 - resolution: "locate-path@npm:3.0.0" - dependencies: - p-locate: "npm:^3.0.0" - path-exists: "npm:^3.0.0" - checksum: 53db3996672f21f8b0bf2a2c645ae2c13ffdae1eeecfcd399a583bce8516c0b88dcb4222ca6efbbbeb6949df7e46860895be2c02e8d3219abd373ace3bfb4e11 - languageName: node - linkType: hard - "locate-path@npm:^5.0.0": version: 5.0.0 resolution: "locate-path@npm:5.0.0" @@ -13264,13 +11401,6 @@ __metadata: languageName: node linkType: hard -"lodash.memoize@npm:^4.1.2": - version: 4.1.2 - resolution: "lodash.memoize@npm:4.1.2" - checksum: 192b2168f310c86f303580b53acf81ab029761b9bd9caa9506a019ffea5f3363ea98d7e39e7e11e6b9917066c9d36a09a11f6fe16f812326390d8f3a54a1a6da - languageName: node - linkType: hard - "lodash.merge@npm:^4.6.2": version: 4.6.2 resolution: "lodash.merge@npm:4.6.2" @@ -13285,20 +11415,6 @@ __metadata: languageName: node linkType: hard -"lodash.sortby@npm:^4.7.0": - version: 4.7.0 - resolution: "lodash.sortby@npm:4.7.0" - checksum: 38df19ae28608af2c50ac342fc1f414508309d53e1d58ed9adfb2c3cd17c3af290058c0a0478028d932c5404df3d53349d19fa364ef6bed6145a6bc21320399e - languageName: node - linkType: hard - -"lodash.uniq@npm:^4.5.0": - version: 4.5.0 - resolution: "lodash.uniq@npm:4.5.0" - checksum: 86246ca64ac0755c612e5df6d93cfe92f9ecac2e5ff054b965efbbb1d9a647b6310969e78545006f70f52760554b03233ad0103324121ae31474c20d5f7a2812 - languageName: node - linkType: hard - "lodash.uniqby@npm:^4.7.0": version: 4.7.0 resolution: "lodash.uniqby@npm:4.7.0" @@ -13306,7 +11422,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.7.0": +"lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:^4.7.0": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: c08619c038846ea6ac754abd6dd29d2568aa705feb69339e836dfa8d8b09abbb2f859371e86863eda41848221f9af43714491467b5b0299122431e202bb0c532 @@ -13367,7 +11483,7 @@ __metadata: absurd-sql: "npm:0.0.54" adm-zip: "npm:^0.5.9" assert: "npm:^2.0.0" - better-sqlite3: "npm:^9.1.1" + better-sqlite3: "npm:^9.2.2" browserify-zlib: "npm:^0.2.0" buffer: "npm:^6.0.3" core-js: "npm:^3.8.3" @@ -13406,11 +11522,19 @@ __metadata: webpack: "npm:^5.88.2" webpack-bundle-analyzer: "npm:^4.9.1" webpack-cli: "npm:^5.1.4" - ws: "npm:^4.1.0" yargs: "npm:^9.0.1" languageName: unknown linkType: soft +"loupe@npm:^2.3.6, loupe@npm:^2.3.7": + version: 2.3.7 + resolution: "loupe@npm:2.3.7" + dependencies: + get-func-name: "npm:^2.0.1" + checksum: 635c8f0914c2ce7ecfe4e239fbaf0ce1d2c00e4246fafcc4ed000bfdb1b8f89d05db1a220054175cca631ebf3894872a26fffba0124477fcb562f78762848fb1 + languageName: node + linkType: hard + "lower-case@npm:^2.0.2": version: 2.0.2 resolution: "lower-case@npm:2.0.2" @@ -13485,12 +11609,12 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.25.0, magic-string@npm:^0.25.7": - version: 0.25.9 - resolution: "magic-string@npm:0.25.9" +"magic-string@npm:^0.30.3, magic-string@npm:^0.30.5": + version: 0.30.5 + resolution: "magic-string@npm:0.30.5" dependencies: - sourcemap-codec: "npm:^1.4.8" - checksum: 87a14b944bd169821cbd54b169a7ab6b0348fd44b5497266dc555dd70280744e9e88047da9dcb95675bdc23b1ce33f13398b0f70b3be7b858225ccb1d185ff51 + "@jridgewell/sourcemap-codec": "npm:^1.4.15" + checksum: c8a6b25f813215ca9db526f3a407d6dc0bf35429c2b8111d6f1c2cf6cf6afd5e2d9f9cd189416a0e3959e20ecd635f73639f9825c73de1074b29331fe36ace59 languageName: node linkType: hard @@ -13503,7 +11627,7 @@ __metadata: languageName: node linkType: hard -"make-dir@npm:^3.0.0, make-dir@npm:^3.0.2, make-dir@npm:^3.1.0": +"make-dir@npm:^3.0.0": version: 3.1.0 resolution: "make-dir@npm:3.1.0" dependencies: @@ -13788,13 +11912,6 @@ __metadata: languageName: node linkType: hard -"mdn-data@npm:2.0.14": - version: 2.0.14 - resolution: "mdn-data@npm:2.0.14" - checksum: 64c629fcf14807e30d6dc79f97cbcafa16db066f53a294299f3932b3beb0eb0d1386d3a7fe408fc67348c449a4e0999360c894ba4c81eb209d7be4e36503de0e - languageName: node - linkType: hard - "mdn-data@npm:2.0.28": version: 2.0.28 resolution: "mdn-data@npm:2.0.28" @@ -13809,20 +11926,6 @@ __metadata: languageName: node linkType: hard -"mdn-data@npm:2.0.4": - version: 2.0.4 - resolution: "mdn-data@npm:2.0.4" - checksum: 2236dbec301f7e148a9cc4f91c0c45fd0271a9a5e7defc80792da2d64d823f24be51dd28d24f328896fc504d84e00d1833eeac47a55e47729ec6ed0308aa824a - languageName: node - linkType: hard - -"media-typer@npm:0.3.0": - version: 0.3.0 - resolution: "media-typer@npm:0.3.0" - checksum: 38e0984db39139604756903a01397e29e17dcb04207bb3e081412ce725ab17338ecc47220c1b186b6bbe79a658aad1b0d41142884f5a481f36290cdefbe6aa46 - languageName: node - linkType: hard - "mem@npm:^1.1.0": version: 1.1.0 resolution: "mem@npm:1.1.0" @@ -13841,15 +11944,6 @@ __metadata: languageName: node linkType: hard -"memfs@npm:^3.1.2, memfs@npm:^3.4.3": - version: 3.5.3 - resolution: "memfs@npm:3.5.3" - dependencies: - fs-monkey: "npm:^1.0.4" - checksum: 7c9cdb453a6b06e87f11e2dbe6c518fd3c1c1581b370ffa24f42f3fd5b1db8c2203f596e43321a0032963f3e9b66400f2c3cf043904ac496d6ae33eafd0878fe - languageName: node - linkType: hard - "memoize-one@npm:^6.0.0": version: 6.0.0 resolution: "memoize-one@npm:6.0.0" @@ -13864,13 +11958,6 @@ __metadata: languageName: node linkType: hard -"merge-descriptors@npm:1.0.1": - version: 1.0.1 - resolution: "merge-descriptors@npm:1.0.1" - checksum: 5abc259d2ae25bb06d19ce2b94a21632583c74e2a9109ee1ba7fd147aa7362b380d971e0251069f8b3eb7d48c21ac839e21fa177b335e82c76ec172e30c31a26 - languageName: node - linkType: hard - "merge-stream@npm:^2.0.0": version: 2.0.0 resolution: "merge-stream@npm:2.0.0" @@ -13885,13 +11972,6 @@ __metadata: languageName: node linkType: hard -"methods@npm:~1.1.2": - version: 1.1.2 - resolution: "methods@npm:1.1.2" - checksum: a385dd974faa34b5dd021b2bbf78c722881bf6f003bfe6d391d7da3ea1ed625d1ff10ddd13c57531f628b3e785be38d3eed10ad03cebd90b76932413df9a1820 - languageName: node - linkType: hard - "micromark-core-commonmark@npm:^1.0.0, micromark-core-commonmark@npm:^1.0.1": version: 1.1.0 resolution: "micromark-core-commonmark@npm:1.1.0" @@ -14221,7 +12301,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": +"micromatch@npm:^4.0.4": version: 4.0.5 resolution: "micromatch@npm:4.0.5" dependencies: @@ -14231,14 +12311,14 @@ __metadata: languageName: node linkType: hard -"mime-db@npm:1.52.0, mime-db@npm:>= 1.43.0 < 2, mime-db@npm:^1.28.0": +"mime-db@npm:1.52.0, mime-db@npm:^1.28.0": version: 1.52.0 resolution: "mime-db@npm:1.52.0" checksum: 54bb60bf39e6f8689f6622784e668a3d7f8bed6b0d886f5c3c446cb3284be28b30bf707ed05d0fe44a036f8469976b2629bbea182684977b084de9da274694d7 languageName: node linkType: hard -"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.17, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": +"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27": version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: @@ -14247,15 +12327,6 @@ __metadata: languageName: node linkType: hard -"mime@npm:1.6.0": - version: 1.6.0 - resolution: "mime@npm:1.6.0" - bin: - mime: cli.js - checksum: b7d98bb1e006c0e63e2c91b590fe1163b872abf8f7ef224d53dd31499c2197278a6d3d0864c45239b1a93d22feaf6f9477e9fc847eef945838150b8c02d03170 - languageName: node - linkType: hard - "mime@npm:^2.5.2": version: 2.6.0 resolution: "mime@npm:2.6.0" @@ -14300,24 +12371,6 @@ __metadata: languageName: node linkType: hard -"mini-css-extract-plugin@npm:^2.4.5": - version: 2.7.6 - resolution: "mini-css-extract-plugin@npm:2.7.6" - dependencies: - schema-utils: "npm:^4.0.0" - peerDependencies: - webpack: ^5.0.0 - checksum: 1f718bfdcb7c2bf5e4336f694e5576432149d63f9dacaf94eae38ad046534050471a712a2d1bedf95e1722a2d3b56c3361d7352849e802e4875e716885e952c3 - languageName: node - linkType: hard - -"minimalistic-assert@npm:^1.0.0": - version: 1.0.1 - resolution: "minimalistic-assert@npm:1.0.1" - checksum: cc7974a9268fbf130fb055aff76700d7e2d8be5f761fb5c60318d0ed010d839ab3661a533ad29a5d37653133385204c503bfac995aaa4236f4e847461ea32ba7 - languageName: node - linkType: hard - "minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" @@ -14474,14 +12527,15 @@ __metadata: languageName: node linkType: hard -"mkdirp@npm:~0.5.1": - version: 0.5.6 - resolution: "mkdirp@npm:0.5.6" +"mlly@npm:^1.2.0, mlly@npm:^1.4.2": + version: 1.4.2 + resolution: "mlly@npm:1.4.2" dependencies: - minimist: "npm:^1.2.6" - bin: - mkdirp: bin/cmd.js - checksum: 0c91b721bb12c3f9af4b77ebf73604baf350e64d80df91754dc509491ae93bf238581e59c7188360cec7cb62fc4100959245a42cfe01834efedc5e9d068376c2 + acorn: "npm:^8.10.0" + pathe: "npm:^1.1.1" + pkg-types: "npm:^1.0.3" + ufo: "npm:^1.3.0" + checksum: ea5dc1a6cb2795cd15c6cdc84bbf431e0649917e673ef4de5d5ace6f74f74f02d22cd3c3faf7f868c3857115d33cccaaf5a070123b9a6c997af06ebeb8ab3bb5 languageName: node linkType: hard @@ -14506,13 +12560,6 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.0.0": - version: 2.0.0 - resolution: "ms@npm:2.0.0" - checksum: 0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4 - languageName: node - linkType: hard - "ms@npm:2.1.2": version: 2.1.2 resolution: "ms@npm:2.1.2" @@ -14520,25 +12567,13 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.1.3, ms@npm:^2.0.0, ms@npm:^2.1.1": +"ms@npm:^2.0.0, ms@npm:^2.1.1": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d languageName: node linkType: hard -"multicast-dns@npm:^7.2.5": - version: 7.2.5 - resolution: "multicast-dns@npm:7.2.5" - dependencies: - dns-packet: "npm:^5.2.2" - thunky: "npm:^1.0.2" - bin: - multicast-dns: cli.js - checksum: e9add8035fb7049ccbc87b1b069f05bb3b31e04fe057bf7d0116739d81295165afc2568291a4a962bee01a5074e475996816eed0f50c8110d652af5abb74f95a - languageName: node - linkType: hard - "murmurhash@npm:^2.0.1": version: 2.0.1 resolution: "murmurhash@npm:2.0.1" @@ -14546,23 +12581,12 @@ __metadata: languageName: node linkType: hard -"mz@npm:^2.7.0": - version: 2.7.0 - resolution: "mz@npm:2.7.0" - dependencies: - any-promise: "npm:^1.0.0" - object-assign: "npm:^4.0.1" - thenify-all: "npm:^1.0.0" - checksum: 8427de0ece99a07e9faed3c0c6778820d7543e3776f9a84d22cf0ec0a8eb65f6e9aee9c9d353ff9a105ff62d33a9463c6ca638974cc652ee8140cd1e35951c87 - languageName: node - linkType: hard - -"nanoid@npm:^3.3.6": - version: 3.3.6 - resolution: "nanoid@npm:3.3.6" +"nanoid@npm:^3.3.7": + version: 3.3.7 + resolution: "nanoid@npm:3.3.7" bin: nanoid: bin/nanoid.cjs - checksum: 67235c39d1bc05851383dadde5cf77ae1c90c2a1d189e845c7f20f646f0488d875ad5f5226bbba072a88cebbb085a3f784a6673117daf785bdf614a852550362 + checksum: ac1eb60f615b272bccb0e2b9cd933720dad30bf9708424f691b8113826bb91aca7e9d14ef5d9415a6ba15c266b37817256f58d8ce980c82b0ba3185352565679 languageName: node linkType: hard @@ -14587,7 +12611,7 @@ __metadata: languageName: node linkType: hard -"negotiator@npm:0.6.3, negotiator@npm:^0.6.3": +"negotiator@npm:^0.6.3": version: 0.6.3 resolution: "negotiator@npm:0.6.3" checksum: 2723fb822a17ad55c93a588a4bc44d53b22855bf4be5499916ca0cab1e7165409d0b288ba2577d7b029f10ce18cf2ed8e703e5af31c984e1e2304277ef979837 @@ -14618,16 +12642,7 @@ __metadata: languageName: node linkType: hard -"node-abi@npm:^3.3.0": - version: 3.40.0 - resolution: "node-abi@npm:3.40.0" - dependencies: - semver: "npm:^7.3.5" - checksum: e9f137f9e2eefb4d508514fd00f292d01cb77f695f1511e6f51f272a91c161ad15676ae9590ba53da09845b852b6c14a829e2f033c5488e03127ea502213be93 - languageName: node - linkType: hard - -"node-abi@npm:^3.45.0": +"node-abi@npm:^3.3.0, node-abi@npm:^3.45.0": version: 3.47.0 resolution: "node-abi@npm:3.47.0" dependencies: @@ -14705,13 +12720,6 @@ __metadata: languageName: node linkType: hard -"node-forge@npm:^1": - version: 1.3.1 - resolution: "node-forge@npm:1.3.1" - checksum: 05bab6868633bf9ad4c3b1dd50ec501c22ffd69f556cdf169a00998ca1d03e8107a6032ba013852f202035372021b845603aeccd7dfcb58cdb7430013b3daa8d - languageName: node - linkType: hard - "node-gyp@npm:^9.0.0": version: 9.4.0 resolution: "node-gyp@npm:9.4.0" @@ -14817,13 +12825,6 @@ __metadata: languageName: node linkType: hard -"normalize-range@npm:^0.1.2": - version: 0.1.2 - resolution: "normalize-range@npm:0.1.2" - checksum: 9b2f14f093593f367a7a0834267c24f3cb3e887a2d9809c77d8a7e5fd08738bcd15af46f0ab01cc3a3d660386f015816b5c922cea8bf2ee79777f40874063184 - languageName: node - linkType: hard - "normalize-url@npm:^6.0.1": version: 6.1.0 resolution: "normalize-url@npm:6.1.0" @@ -14901,15 +12902,6 @@ __metadata: languageName: node linkType: hard -"nth-check@npm:^1.0.2": - version: 1.0.2 - resolution: "nth-check@npm:1.0.2" - dependencies: - boolbase: "npm:~1.0.0" - checksum: 59e115fdd75b971d0030f42ada3aac23898d4c03aa13371fa8b3339d23461d1badf3fde5aad251fb956aaa75c0a3b9bfcd07c08a34a83b4f9dadfdce1d19337c - languageName: node - linkType: hard - "nth-check@npm:^2.0.1": version: 2.1.1 resolution: "nth-check@npm:2.1.1" @@ -14940,13 +12932,6 @@ __metadata: languageName: node linkType: hard -"object-hash@npm:^3.0.0": - version: 3.0.0 - resolution: "object-hash@npm:3.0.0" - checksum: f498d456a20512ba7be500cef4cf7b3c183cc72c65372a549c9a0e6dd78ce26f375e9b1315c07592d3fde8f10d5019986eba35970570d477ed9a2a702514432a - languageName: node - linkType: hard - "object-inspect@npm:^1.12.3, object-inspect@npm:^1.9.0": version: 1.12.3 resolution: "object-inspect@npm:1.12.3" @@ -15005,19 +12990,6 @@ __metadata: languageName: node linkType: hard -"object.getownpropertydescriptors@npm:^2.1.0": - version: 2.1.7 - resolution: "object.getownpropertydescriptors@npm:2.1.7" - dependencies: - array.prototype.reduce: "npm:^1.0.6" - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - safe-array-concat: "npm:^1.0.0" - checksum: c99e0f66873e7e5a4ffb3b4465ef57d139d2a232b26ea72571ab90069442db39a1b10c0f7ea228c8aab721437f39dbc97a73158bb68b892706a3d18b277a9bc7 - languageName: node - linkType: hard - "object.hasown@npm:^1.1.2": version: 1.1.2 resolution: "object.hasown@npm:1.1.2" @@ -15028,7 +13000,7 @@ __metadata: languageName: node linkType: hard -"object.values@npm:^1.1.0, object.values@npm:^1.1.6": +"object.values@npm:^1.1.6": version: 1.1.7 resolution: "object.values@npm:1.1.7" dependencies: @@ -15039,29 +13011,6 @@ __metadata: languageName: node linkType: hard -"obuf@npm:^1.0.0, obuf@npm:^1.1.2": - version: 1.1.2 - resolution: "obuf@npm:1.1.2" - checksum: 53ff4ab3a13cc33ba6c856cf281f2965c0aec9720967af450e8fd06cfd50aceeefc791986a16bcefa14e7898b3ca9acdfcf15b9d9a1b9c7e1366581a8ad6e65e - languageName: node - linkType: hard - -"on-finished@npm:2.4.1": - version: 2.4.1 - resolution: "on-finished@npm:2.4.1" - dependencies: - ee-first: "npm:1.1.1" - checksum: 8e81472c5028125c8c39044ac4ab8ba51a7cdc19a9fbd4710f5d524a74c6d8c9ded4dd0eed83f28d3d33ac1d7a6a439ba948ccb765ac6ce87f30450a26bfe2ea - languageName: node - linkType: hard - -"on-headers@npm:~1.0.2": - version: 1.0.2 - resolution: "on-headers@npm:1.0.2" - checksum: 870766c16345855e2012e9422ba1ab110c7e44ad5891a67790f84610bd70a72b67fdd71baf497295f1d1bf38dd4c92248f825d48729c53c0eae5262fb69fa171 - languageName: node - linkType: hard - "once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": version: 1.4.0 resolution: "once@npm:1.4.0" @@ -15089,7 +13038,7 @@ __metadata: languageName: node linkType: hard -"open@npm:^8.0.9, open@npm:^8.4.0": +"open@npm:^8.4.0": version: 8.4.2 resolution: "open@npm:8.4.2" dependencies: @@ -15216,7 +13165,7 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^2.0.0, p-limit@npm:^2.2.0": +"p-limit@npm:^2.2.0": version: 2.3.0 resolution: "p-limit@npm:2.3.0" dependencies: @@ -15234,6 +13183,15 @@ __metadata: languageName: node linkType: hard +"p-limit@npm:^5.0.0": + version: 5.0.0 + resolution: "p-limit@npm:5.0.0" + dependencies: + yocto-queue: "npm:^1.0.0" + checksum: 87bf5837dee6942f0dbeff318436179931d9a97848d1b07dbd86140a477a5d2e6b90d9701b210b4e21fe7beaea2979dfde366e4f576fa644a59bd4d6a6371da7 + languageName: node + linkType: hard + "p-locate@npm:^2.0.0": version: 2.0.0 resolution: "p-locate@npm:2.0.0" @@ -15243,15 +13201,6 @@ __metadata: languageName: node linkType: hard -"p-locate@npm:^3.0.0": - version: 3.0.0 - resolution: "p-locate@npm:3.0.0" - dependencies: - p-limit: "npm:^2.0.0" - checksum: 83991734a9854a05fe9dbb29f707ea8a0599391f52daac32b86f08e21415e857ffa60f0e120bfe7ce0cc4faf9274a50239c7895fc0d0579d08411e513b83a4ae - languageName: node - linkType: hard - "p-locate@npm:^4.1.0": version: 4.1.0 resolution: "p-locate@npm:4.1.0" @@ -15295,16 +13244,6 @@ __metadata: languageName: node linkType: hard -"p-retry@npm:^4.5.0": - version: 4.6.2 - resolution: "p-retry@npm:4.6.2" - dependencies: - "@types/retry": "npm:0.12.0" - retry: "npm:^0.13.1" - checksum: 45c270bfddaffb4a895cea16cb760dcc72bdecb6cb45fef1971fa6ea2e91ddeafddefe01e444ac73e33b1b3d5d29fb0dd18a7effb294262437221ddc03ce0f2e - languageName: node - linkType: hard - "p-timeout@npm:^1.1.1": version: 1.2.1 resolution: "p-timeout@npm:1.2.1" @@ -15335,16 +13274,6 @@ __metadata: languageName: node linkType: hard -"param-case@npm:^3.0.4": - version: 3.0.4 - resolution: "param-case@npm:3.0.4" - dependencies: - dot-case: "npm:^3.0.4" - tslib: "npm:^2.0.3" - checksum: b34227fd0f794e078776eb3aa6247442056cb47761e9cd2c4c881c86d84c64205f6a56ef0d70b41ee7d77da02c3f4ed2f88e3896a8fefe08bdfb4deca037c687 - languageName: node - linkType: hard - "parent-module@npm:^1.0.0": version: 1.0.1 resolution: "parent-module@npm:1.0.1" @@ -15392,23 +13321,6 @@ __metadata: languageName: node linkType: hard -"parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": - version: 1.3.3 - resolution: "parseurl@npm:1.3.3" - checksum: 407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2 - languageName: node - linkType: hard - -"pascal-case@npm:^3.1.2": - version: 3.1.2 - resolution: "pascal-case@npm:3.1.2" - dependencies: - no-case: "npm:^3.0.4" - tslib: "npm:^2.0.3" - checksum: ba98bfd595fc91ef3d30f4243b1aee2f6ec41c53b4546bfa3039487c367abaa182471dcfc830a1f9e1a0df00c14a370514fa2b3a1aacc68b15a460c31116873e - languageName: node - linkType: hard - "path-browserify@npm:^1.0.1": version: 1.0.1 resolution: "path-browserify@npm:1.0.1" @@ -15475,13 +13387,6 @@ __metadata: languageName: node linkType: hard -"path-to-regexp@npm:0.1.7": - version: 0.1.7 - resolution: "path-to-regexp@npm:0.1.7" - checksum: 701c99e1f08e3400bea4d701cf6f03517474bb1b608da71c78b1eb261415b645c5670dfae49808c89e12cea2dccd113b069f040a80de012da0400191c6dbd1c8 - languageName: node - linkType: hard - "path-type@npm:^2.0.0": version: 2.0.0 resolution: "path-type@npm:2.0.0" @@ -15507,6 +13412,20 @@ __metadata: languageName: node linkType: hard +"pathe@npm:^1.1.0, pathe@npm:^1.1.1": + version: 1.1.1 + resolution: "pathe@npm:1.1.1" + checksum: 603decdf751d511f0df10acb8807eab8cc25c1af529e6149e27166916f19db57235a7d374b125452ba6da4dd0f697656fdaf5a9236b3594929bb371726d31602 + languageName: node + linkType: hard + +"pathval@npm:^1.1.1": + version: 1.1.1 + resolution: "pathval@npm:1.1.1" + checksum: b50a4751068aa3a5428f5a0b480deecedc6f537666a3630a0c2ae2d5e7c0f4bf0ee77b48404441ec1220bef0c91625e6030b3d3cf5a32ab0d9764018d1d9dbb6 + languageName: node + linkType: hard + "peggy@npm:3.0.2": version: 3.0.2 resolution: "peggy@npm:3.0.2" @@ -15526,20 +13445,6 @@ __metadata: languageName: node linkType: hard -"performance-now@npm:^2.1.0": - version: 2.1.0 - resolution: "performance-now@npm:2.1.0" - checksum: 534e641aa8f7cba160f0afec0599b6cecefbb516a2e837b512be0adbe6c1da5550e89c78059c7fabc5c9ffdf6627edabe23eb7c518c4500067a898fa65c2b550 - languageName: node - linkType: hard - -"picocolors@npm:^0.2.1": - version: 0.2.1 - resolution: "picocolors@npm:0.2.1" - checksum: 3b0f441f0062def0c0f39e87b898ae7461c3a16ffc9f974f320b44c799418cabff17780ee647fda42b856a1dc45897e2c62047e1b546d94d6d5c6962f45427b2 - languageName: node - linkType: hard - "picocolors@npm:^1.0.0": version: 1.0.0 resolution: "picocolors@npm:1.0.0" @@ -15547,7 +13452,7 @@ __metadata: languageName: node linkType: hard -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" checksum: 60c2595003b05e4535394d1da94850f5372c9427ca4413b71210f437f7b2ca091dbd611c45e8b37d10036fa8eade25c1b8951654f9d3973bfa66a2ff4d3b08bc @@ -15577,10 +13482,10 @@ __metadata: languageName: node linkType: hard -"pikaday@npm:1.8.0": - version: 1.8.0 - resolution: "pikaday@npm:1.8.0" - checksum: c6bdaffd85b89f0a5e2e173503a30fa435489b8c5440d6edda7d7ad81362071df902f77c1fa9e3d710b710b4fda93c866fcd20884632d90ad5681bcb9c27de82 +"pikaday@npm:1.8.2": + version: 1.8.2 + resolution: "pikaday@npm:1.8.2" + checksum: 88dbf7cd9ac61340910e845dc7310160b50ec86bc4cfb59a766820caad805de05584287ba6982ea047219f2a8a49ff8fa89934332dc559062c45d7c65782d2ef languageName: node linkType: hard @@ -15600,14 +13505,14 @@ __metadata: languageName: node linkType: hard -"pirates@npm:^4.0.1, pirates@npm:^4.0.4": +"pirates@npm:^4.0.4": version: 4.0.6 resolution: "pirates@npm:4.0.6" checksum: d02dda76f4fec1cbdf395c36c11cf26f76a644f9f9a1bfa84d3167d0d3154d5289aacc72677aa20d599bb4a6937a471de1b65c995e2aea2d8687cbcd7e43ea5f languageName: node linkType: hard -"pkg-dir@npm:^4.1.0, pkg-dir@npm:^4.2.0": +"pkg-dir@npm:^4.2.0": version: 4.2.0 resolution: "pkg-dir@npm:4.2.0" dependencies: @@ -15616,12 +13521,14 @@ __metadata: languageName: node linkType: hard -"pkg-up@npm:^3.1.0": - version: 3.1.0 - resolution: "pkg-up@npm:3.1.0" +"pkg-types@npm:^1.0.3": + version: 1.0.3 + resolution: "pkg-types@npm:1.0.3" dependencies: - find-up: "npm:^3.0.0" - checksum: 5bac346b7c7c903613c057ae3ab722f320716199d753f4a7d053d38f2b5955460f3e6ab73b4762c62fd3e947f58e04f1343e92089e7bb6091c90877406fcd8c8 + jsonc-parser: "npm:^3.2.0" + mlly: "npm:^1.2.0" + pathe: "npm:^1.1.0" + checksum: e17e1819ce579c9ea390e4c41a9ed9701d8cff14b463f9577cc4f94688da8917c66dabc40feacd47a21eb3de9b532756a78becd882b76add97053af307c1240a languageName: node linkType: hard @@ -15634,17 +13541,7 @@ __metadata: languageName: node linkType: hard -"plist@npm:^3.0.4": - version: 3.0.6 - resolution: "plist@npm:3.0.6" - dependencies: - base64-js: "npm:^1.5.1" - xmlbuilder: "npm:^15.1.1" - checksum: 10218249de9904eeb570b76d864bd8fe5e2faacba098cb5ce1cf9932b9df44074d08da2178d5ed7c22c28448e25f687c8c6db46a3f8f243d88b973f4f9f123f3 - languageName: node - linkType: hard - -"plist@npm:^3.0.5": +"plist@npm:^3.0.4, plist@npm:^3.0.5": version: 3.1.0 resolution: "plist@npm:3.1.0" dependencies: @@ -15655,938 +13552,91 @@ __metadata: languageName: node linkType: hard -"postcss-attribute-case-insensitive@npm:^5.0.2": - version: 5.0.2 - resolution: "postcss-attribute-case-insensitive@npm:5.0.2" - dependencies: - postcss-selector-parser: "npm:^6.0.10" - peerDependencies: - postcss: ^8.2 - checksum: c0b8139f37e68dba372724cba03a53c30716224f0085f98485cada99489beb7c3da9d598ffc1d81519b59d9899291712c9041c250205e6ec0b034bb2c144dcf9 +"postcss-value-parser@npm:^3.3.0": + version: 3.3.1 + resolution: "postcss-value-parser@npm:3.3.1" + checksum: e8bc676092ad0c4a628e8d7b06ef1844a157bcce22e489d72ac661d6d47b8e8e7c342e5e0da807056a0a2fced1372fff0f67fbfd6e06fd8509828ac6190b54ae languageName: node linkType: hard -"postcss-browser-comments@npm:^4": - version: 4.0.0 - resolution: "postcss-browser-comments@npm:4.0.0" - peerDependencies: - browserslist: ">=4" - postcss: ">=8" - checksum: 41850023901eada80e41f7328874e458b4b1e38fcf8aea277ae02128d3585d6652063544f34b575561a8d4f53e154e8082cc82ac73e09118bbad41dc749f7a54 +"postcss@npm:^8.4.32": + version: 8.4.32 + resolution: "postcss@npm:8.4.32" + dependencies: + nanoid: "npm:^3.3.7" + picocolors: "npm:^1.0.0" + source-map-js: "npm:^1.0.2" + checksum: 28084864122f29148e1f632261c408444f5ead0e0b9ea9bd9729d0468818ebe73fe5dc0075acd50c1365dbe639b46a79cba27d355ec857723a24bc9af0f18525 languageName: node linkType: hard -"postcss-calc@npm:^8.2.3": - version: 8.2.4 - resolution: "postcss-calc@npm:8.2.4" +"prebuild-install@npm:^7.1.1": + version: 7.1.1 + resolution: "prebuild-install@npm:7.1.1" dependencies: - postcss-selector-parser: "npm:^6.0.9" - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2.2 - checksum: f34d0cbc5d2b02071cf4de9bacbb93681c22b29048726b500b5f5327e37b590d2552ba4d8ed179e2378037fd09cc6bf5ee3e25cbd8a803c57205795fa79479a8 + detect-libc: "npm:^2.0.0" + expand-template: "npm:^2.0.3" + github-from-package: "npm:0.0.0" + minimist: "npm:^1.2.3" + mkdirp-classic: "npm:^0.5.3" + napi-build-utils: "npm:^1.0.1" + node-abi: "npm:^3.3.0" + pump: "npm:^3.0.0" + rc: "npm:^1.2.7" + simple-get: "npm:^4.0.0" + tar-fs: "npm:^2.0.0" + tunnel-agent: "npm:^0.6.0" + bin: + prebuild-install: bin.js + checksum: 6c70a2f82fbda8903497c560a761b000d861a3e772322c8bed012be0f0a084b5aaca4438a3fad1bd3a24210765f4fae06ddd89ea04dc4c034dde693cc0d9d5f4 languageName: node linkType: hard -"postcss-clamp@npm:^4.1.0": - version: 4.1.0 - resolution: "postcss-clamp@npm:4.1.0" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.4.6 - checksum: fb38286d3e607a8b11ef28c89272bd572a077f5a496e2838c3996697bbc4cfb8f7a5be4b4a8987e6b0223db48c9ce5683c9d840f7afe54210ab0f77127628415 +"prelude-ls@npm:^1.2.1": + version: 1.2.1 + resolution: "prelude-ls@npm:1.2.1" + checksum: 0b9d2c76801ca652a7f64892dd37b7e3fab149a37d2424920099bf894acccc62abb4424af2155ab36dea8744843060a2d8ddc983518d0b1e22265a22324b72ed languageName: node linkType: hard -"postcss-color-functional-notation@npm:^4.2.4": - version: 4.2.4 - resolution: "postcss-color-functional-notation@npm:4.2.4" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2 - checksum: a64e24588538bdf182de43d093d622248c6b6b50ea8f2abbae302ec00e07c2af767841748181b28163e14bb25135d5b657ffde9c4dde2d6a9db71d0fae827cd8 +"prelude-ls@npm:~1.1.2": + version: 1.1.2 + resolution: "prelude-ls@npm:1.1.2" + checksum: 946a9f60d3477ca6b7d4c5e8e452ad1b98dc8aaa992cea939a6b926ac16cc4129d7217c79271dc808b5814b1537ad0af37f29a942e2eafbb92cfc5a1c87c38cb languageName: node linkType: hard -"postcss-color-hex-alpha@npm:^8.0.4": - version: 8.0.4 - resolution: "postcss-color-hex-alpha@npm:8.0.4" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.4 - checksum: a2f3173a60176cf0aea3b7ebbc799b2cb08229127f0fff708fa31efa14e4ded47ca49aff549d8ed92e74ffe24adee32d5b9d557dbde0524fde5fe389bc520b4e +"prepend-http@npm:^1.0.1": + version: 1.0.4 + resolution: "prepend-http@npm:1.0.4" + checksum: 01e7baf4ad38af02257b99098543469332fc42ae50df33d97a124bf8172295907352fa6138c9b1610c10c6dd0847ca736e53fda736387cc5cf8fcffe96b47f29 languageName: node linkType: hard -"postcss-color-rebeccapurple@npm:^7.1.1": - version: 7.1.1 - resolution: "postcss-color-rebeccapurple@npm:7.1.1" +"prettier-linter-helpers@npm:^1.0.0": + version: 1.0.0 + resolution: "prettier-linter-helpers@npm:1.0.0" dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2 - checksum: 4876acabfe6b41f78687253eaeb1fd398144bc7e6aae9ae9ffdd6dfcf16f1a315d5a405e730b5fde5312fc21207a99d0065cef286959663d97c8ad1cc5057a87 + fast-diff: "npm:^1.1.2" + checksum: 00ce8011cf6430158d27f9c92cfea0a7699405633f7f1d4a45f07e21bf78e99895911cbcdc3853db3a824201a7c745bd49bfea8abd5fb9883e765a90f74f8392 languageName: node linkType: hard -"postcss-colormin@npm:^5.3.1": - version: 5.3.1 - resolution: "postcss-colormin@npm:5.3.1" - dependencies: - browserslist: "npm:^4.21.4" - caniuse-api: "npm:^3.0.0" - colord: "npm:^2.9.1" - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2.15 - checksum: e5778baab30877cd1f51e7dc9d2242a162aeca6360a52956acd7f668c5bc235c2ccb7e4df0370a804d65ebe00c5642366f061db53aa823f9ed99972cebd16024 +"prettier@npm:2.8.2": + version: 2.8.2 + resolution: "prettier@npm:2.8.2" + bin: + prettier: bin-prettier.js + checksum: 2362d0902d7c5aa820e3b022ad5d7b0b0dca7beb847aa3f71d2fc53d0a8e412147278950482d3ac733c98718603b4bbd2ca64ad864d2af4fa2fb7d034e786ae7 languageName: node linkType: hard -"postcss-convert-values@npm:^5.1.3": - version: 5.1.3 - resolution: "postcss-convert-values@npm:5.1.3" - dependencies: - browserslist: "npm:^4.21.4" - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2.15 - checksum: dacb41296a4d730c9e84c1b6ba8a13f6515b65811689b8b62ad6c7174bb462b5c0bfa21803cc06d1d3af16dbc8f4be1e225970844297fab0bedfe2fef8dc603e - languageName: node - linkType: hard - -"postcss-custom-media@npm:^8.0.2": - version: 8.0.2 - resolution: "postcss-custom-media@npm:8.0.2" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.3 - checksum: 02d0dfd53d2f748f2904d6c380e790ec6d2dca0d96e70e2d261d504700ad9fdb1f1e3febeefb4611b9005e91c412725502ed2f5885455d6e1483cc016d65af34 - languageName: node - linkType: hard - -"postcss-custom-properties@npm:^12.1.10": - version: 12.1.11 - resolution: "postcss-custom-properties@npm:12.1.11" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2 - checksum: 3f049f07cc45c9debcc8d662374947eb3158bb66b2722c81368b36d60de0629e75d80ccfe2ca25ba21af8ce146c50dbc91c62c28e01c06635252e39678c1eb6d - languageName: node - linkType: hard - -"postcss-custom-selectors@npm:^6.0.3": - version: 6.0.3 - resolution: "postcss-custom-selectors@npm:6.0.3" - dependencies: - postcss-selector-parser: "npm:^6.0.4" - peerDependencies: - postcss: ^8.3 - checksum: da174daa68643b4c814ea1ef763551c7c48d0873bc101f9902e85ed271f3d5f46d50e0e496eec8dc49c9c88f68f021bb5ee16940136232d4bb7e765eb5a0ae03 - languageName: node - linkType: hard - -"postcss-dir-pseudo-class@npm:^6.0.5": - version: 6.0.5 - resolution: "postcss-dir-pseudo-class@npm:6.0.5" - dependencies: - postcss-selector-parser: "npm:^6.0.10" - peerDependencies: - postcss: ^8.2 - checksum: 70117146ff55225bcfe47186d7ff1bf68f4de551761797f60e475e923047caa0c373197b810133d52d2bca18e45040c4a9b20e92037847496509cf7089adc3ec - languageName: node - linkType: hard - -"postcss-discard-comments@npm:^5.1.2": - version: 5.1.2 - resolution: "postcss-discard-comments@npm:5.1.2" - peerDependencies: - postcss: ^8.2.15 - checksum: abfd064ebc27aeaf5037643dd51ffaff74d1fa4db56b0523d073ace4248cbb64ffd9787bd6924b0983a9d0bd0e9bf9f10d73b120e50391dc236e0d26c812fa2a - languageName: node - linkType: hard - -"postcss-discard-duplicates@npm:^5.1.0": - version: 5.1.0 - resolution: "postcss-discard-duplicates@npm:5.1.0" - peerDependencies: - postcss: ^8.2.15 - checksum: 88d6964201b1f4ed6bf7a32cefe68e86258bb6e42316ca01d9b32bdb18e7887d02594f89f4a2711d01b51ea6e3fcca8c54be18a59770fe5f4521c61d3eb6ca35 - languageName: node - linkType: hard - -"postcss-discard-empty@npm:^5.1.1": - version: 5.1.1 - resolution: "postcss-discard-empty@npm:5.1.1" - peerDependencies: - postcss: ^8.2.15 - checksum: 970adb12fae5c214c0768236ad9a821552626e77dedbf24a8213d19cc2c4a531a757cd3b8cdd3fc22fb1742471b8692a1db5efe436a71236dec12b1318ee8ff4 - languageName: node - linkType: hard - -"postcss-discard-overridden@npm:^5.1.0": - version: 5.1.0 - resolution: "postcss-discard-overridden@npm:5.1.0" - peerDependencies: - postcss: ^8.2.15 - checksum: d64d4a545aa2c81b22542895cfcddc787d24119f294d35d29b0599a1c818b3cc51f4ee80b80f5a0a09db282453dd5ac49f104c2117cc09112d0ac9b40b499a41 - languageName: node - linkType: hard - -"postcss-double-position-gradients@npm:^3.1.2": - version: 3.1.2 - resolution: "postcss-double-position-gradients@npm:3.1.2" - dependencies: - "@csstools/postcss-progressive-custom-properties": "npm:^1.1.0" - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2 - checksum: 5ed0561c3b64ba6fc6efc1069d469c98fe2b4b0460bdc3a5d859bc39224def7b3142c56a56336a7c24365aee9c94bb65aa61f498921ce8b77b4c89811beea857 - languageName: node - linkType: hard - -"postcss-env-function@npm:^4.0.6": - version: 4.0.6 - resolution: "postcss-env-function@npm:4.0.6" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.4 - checksum: 76e0c9de458a8938da92be7755f0a8a25fd2d1790e509b7b3c7975c1c121b3786095dcab19a884759ff2c701b5eeefac5f3c7e8d1a7394a4ffc5ad97d2e3c1fe - languageName: node - linkType: hard - -"postcss-flexbugs-fixes@npm:^5.0.2": - version: 5.0.2 - resolution: "postcss-flexbugs-fixes@npm:5.0.2" - peerDependencies: - postcss: ^8.1.4 - checksum: 022ddbcca8987303b9be75ff259e9de81b98643adac87a5fc6b52a0fcbbf95e1ac9fd508c4ed67cad76ac5d039b7123de8a0832329481b3c626f5d63f7a28f47 - languageName: node - linkType: hard - -"postcss-focus-visible@npm:^6.0.4": - version: 6.0.4 - resolution: "postcss-focus-visible@npm:6.0.4" - dependencies: - postcss-selector-parser: "npm:^6.0.9" - peerDependencies: - postcss: ^8.4 - checksum: efe1b14f72a590d6cd923f53e8023364a34397b377dba6caaada424f5a53621a08fec6f0bb9f3110ddabb00eb6e745746de39d1a03a2218cf89c0eb70ab11675 - languageName: node - linkType: hard - -"postcss-focus-within@npm:^5.0.4": - version: 5.0.4 - resolution: "postcss-focus-within@npm:5.0.4" - dependencies: - postcss-selector-parser: "npm:^6.0.9" - peerDependencies: - postcss: ^8.4 - checksum: 1d274e06312386190bc6cd006a92748aca59207021787a6f44b33760a549b5fa1baef2797ca839ae34a9edb36dbedc6700ab01e5b0926d6a96001223bcd674dd - languageName: node - linkType: hard - -"postcss-font-variant@npm:^5.0.0": - version: 5.0.0 - resolution: "postcss-font-variant@npm:5.0.0" - peerDependencies: - postcss: ^8.1.0 - checksum: 738328282cf71750f6efc72d72017f938a6e76c9c49602aae4cc4337beac6d13e72a4ade608567293cb87cad2af502e6aaef652fdcc500e09b4aba38c3e32fc6 - languageName: node - linkType: hard - -"postcss-gap-properties@npm:^3.0.5": - version: 3.0.5 - resolution: "postcss-gap-properties@npm:3.0.5" - peerDependencies: - postcss: ^8.2 - checksum: e4513d02424bd3ab1e472a81d54fe2825b7a21ff81991abd8bce1438cdc5d1006cb9c821875bd50afcd74c82a9b99d59ad36a12e8fd9da4e028b99a00793a565 - languageName: node - linkType: hard - -"postcss-image-set-function@npm:^4.0.7": - version: 4.0.7 - resolution: "postcss-image-set-function@npm:4.0.7" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2 - checksum: 17cba0b2bda98900dfe6adae88a9034cfc6fc6101b386144a27218bcdc5e65b52576326beb0d92a908423f4d144873998044e6f41c01e16165873225d3678889 - languageName: node - linkType: hard - -"postcss-import@npm:^15.1.0": - version: 15.1.0 - resolution: "postcss-import@npm:15.1.0" - dependencies: - postcss-value-parser: "npm:^4.0.0" - read-cache: "npm:^1.0.0" - resolve: "npm:^1.1.7" - peerDependencies: - postcss: ^8.0.0 - checksum: 33c91b7e6b794b5c33d7d7d4730e5f0729c131d2de1ada7fcc116955625a78c3ce613983f019fa9447681795cf3f851e9c38dfbe3f48a2d08a8aef917c70a32a - languageName: node - linkType: hard - -"postcss-initial@npm:^4.0.1": - version: 4.0.1 - resolution: "postcss-initial@npm:4.0.1" - peerDependencies: - postcss: ^8.0.0 - checksum: 556848de52b502696f0a28153e14d35aca03aa702eacd742f0518a68dfca882654b600ba8742a28c6d1c378888cee767d87aec41ecd2880f8b83434df3f2b20e - languageName: node - linkType: hard - -"postcss-js@npm:^4.0.1": - version: 4.0.1 - resolution: "postcss-js@npm:4.0.1" - dependencies: - camelcase-css: "npm:^2.0.1" - peerDependencies: - postcss: ^8.4.21 - checksum: ef2cfe8554daab4166cfcb290f376e7387964c36503f5bd42008778dba735685af8d4f5e0aba67cae999f47c855df40a1cd31ae840e0df320ded36352581045e - languageName: node - linkType: hard - -"postcss-lab-function@npm:^4.2.1": - version: 4.2.1 - resolution: "postcss-lab-function@npm:4.2.1" - dependencies: - "@csstools/postcss-progressive-custom-properties": "npm:^1.1.0" - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2 - checksum: 0cc25e4dec23a421da1a5652096c4114b2bf5df0a77ee27f1b579f0e7f3692137e1660d1b8d14f4208625f5e5ceb7ada5db67f75577d187879354733ee6fc3f2 - languageName: node - linkType: hard - -"postcss-load-config@npm:^4.0.1": - version: 4.0.1 - resolution: "postcss-load-config@npm:4.0.1" - dependencies: - lilconfig: "npm:^2.0.5" - yaml: "npm:^2.1.1" - peerDependencies: - postcss: ">=8.0.9" - ts-node: ">=9.0.0" - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - checksum: d841565bc3638ae4b6854d3046904e054e76fca0aea5cf3e730b47e171e3e0a041ffc5f9b7348b18ea59c5d1e315944fa657b1cf9c573eecb053117b0d31eb8d - languageName: node - linkType: hard - -"postcss-loader@npm:^6.2.1": - version: 6.2.1 - resolution: "postcss-loader@npm:6.2.1" - dependencies: - cosmiconfig: "npm:^7.0.0" - klona: "npm:^2.0.5" - semver: "npm:^7.3.5" - peerDependencies: - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 - checksum: ab4e4ffa1903611a6ee63bd77ac0fd02b17cf472037a3d6050b383ab3b3def5e4c3a49de5bb552e020e70d2ebde95400f49e4c423ad2a1c76675afda8d627911 - languageName: node - linkType: hard - -"postcss-logical@npm:^5.0.4": - version: 5.0.4 - resolution: "postcss-logical@npm:5.0.4" - peerDependencies: - postcss: ^8.4 - checksum: de03f1e3070c3fc9d8cb373481b34a911a795138159e74451dfd553155bec5c64d7eabb30b26f8840754960d10bf9e880223ce694dcd1ec5e7b3be3cfa6438e0 - languageName: node - linkType: hard - -"postcss-media-minmax@npm:^5.0.0": - version: 5.0.0 - resolution: "postcss-media-minmax@npm:5.0.0" - peerDependencies: - postcss: ^8.1.0 - checksum: a35a25b944bb70583ef301ce98560b2a2062da25867f3bef5f7c62a8738b7924b78a2f7b293bba823ea4365c00e828680f51efad773f2e2cfcfa21f95282e0eb - languageName: node - linkType: hard - -"postcss-merge-longhand@npm:^5.1.7": - version: 5.1.7 - resolution: "postcss-merge-longhand@npm:5.1.7" - dependencies: - postcss-value-parser: "npm:^4.2.0" - stylehacks: "npm:^5.1.1" - peerDependencies: - postcss: ^8.2.15 - checksum: 9002696bb245634c0542af9356b44082a4c1453261a1daac6ea2f85055a5d6e14ac3ae2ba603f5eae767ebfe0e1ef50c40447b099520b8f5fa14b557da8074ad - languageName: node - linkType: hard - -"postcss-merge-rules@npm:^5.1.4": - version: 5.1.4 - resolution: "postcss-merge-rules@npm:5.1.4" - dependencies: - browserslist: "npm:^4.21.4" - caniuse-api: "npm:^3.0.0" - cssnano-utils: "npm:^3.1.0" - postcss-selector-parser: "npm:^6.0.5" - peerDependencies: - postcss: ^8.2.15 - checksum: 659c3eaff9d573f07c227a7e4811159898f49a89b02bbd3a65a0ed7aaa434264443ab539bcbc273bf08986e6a185bd62af0847c9836f9e2901c5f07937c14f3f - languageName: node - linkType: hard - -"postcss-minify-font-values@npm:^5.1.0": - version: 5.1.0 - resolution: "postcss-minify-font-values@npm:5.1.0" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2.15 - checksum: 27e7023f06149e14db6cd30b75d233c92d34609233775d8542fe1dc70fe53170a13188ba80847d6d4f6e272beb98b9888e0f73097757a95a968a0d526e3dd495 - languageName: node - linkType: hard - -"postcss-minify-gradients@npm:^5.1.1": - version: 5.1.1 - resolution: "postcss-minify-gradients@npm:5.1.1" - dependencies: - colord: "npm:^2.9.1" - cssnano-utils: "npm:^3.1.0" - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2.15 - checksum: 8afc4c2240c0ddeb37b18f34e6d47d374c500376342c509b0fe577c56f9e94315a42db99a9573159efaf8853c7a1b9fee83b2f6f890a49273f3556b1ba9dbdde - languageName: node - linkType: hard - -"postcss-minify-params@npm:^5.1.4": - version: 5.1.4 - resolution: "postcss-minify-params@npm:5.1.4" - dependencies: - browserslist: "npm:^4.21.4" - cssnano-utils: "npm:^3.1.0" - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2.15 - checksum: bd63e2cc89edcf357bb5c2a16035f6d02ef676b8cede4213b2bddd42626b3d428403849188f95576fc9f03e43ebd73a29bf61d33a581be9a510b13b7f7f100d5 - languageName: node - linkType: hard - -"postcss-minify-selectors@npm:^5.2.1": - version: 5.2.1 - resolution: "postcss-minify-selectors@npm:5.2.1" - dependencies: - postcss-selector-parser: "npm:^6.0.5" - peerDependencies: - postcss: ^8.2.15 - checksum: 59eca33eb9ce45b688cca33cf7bb96b07c874f6d2b90f4a3363bc95067c514825c61dd8775c9aa73a161c922333474e6f249cc58677cd77b2be8cc04019e0810 - languageName: node - linkType: hard - -"postcss-modules-extract-imports@npm:^3.0.0": - version: 3.0.0 - resolution: "postcss-modules-extract-imports@npm:3.0.0" - peerDependencies: - postcss: ^8.1.0 - checksum: 8d68bb735cef4d43f9cdc1053581e6c1c864860b77fcfb670372b39c5feeee018dc5ddb2be4b07fef9bcd601edded4262418bbaeaf1bd4af744446300cebe358 - languageName: node - linkType: hard - -"postcss-modules-local-by-default@npm:^4.0.3": - version: 4.0.3 - resolution: "postcss-modules-local-by-default@npm:4.0.3" - dependencies: - icss-utils: "npm:^5.0.0" - postcss-selector-parser: "npm:^6.0.2" - postcss-value-parser: "npm:^4.1.0" - peerDependencies: - postcss: ^8.1.0 - checksum: 4f671d77cb6a025c8be09540fea00ce2d3dbf3375a3a15b48f927325c7418d7c3c87a83bacbf81c5de6ef8bd1660d5f6f2542b98de5877355a23b739379f8c79 - languageName: node - linkType: hard - -"postcss-modules-scope@npm:^3.0.0": - version: 3.0.0 - resolution: "postcss-modules-scope@npm:3.0.0" - dependencies: - postcss-selector-parser: "npm:^6.0.4" - peerDependencies: - postcss: ^8.1.0 - checksum: cc36b8111c6160a1c21ca0e82de9daf0147be95f3b5403aedd83bcaee44ee425cb62b77f677fc53d0c8d51f7981018c1c8f0a4ad3d6f0138b09326ac48c2b297 - languageName: node - linkType: hard - -"postcss-modules-values@npm:^4.0.0": - version: 4.0.0 - resolution: "postcss-modules-values@npm:4.0.0" - dependencies: - icss-utils: "npm:^5.0.0" - peerDependencies: - postcss: ^8.1.0 - checksum: 18021961a494e69e65da9e42b4436144c9ecee65845c9bfeff2b7a26ea73d60762f69e288be8bb645447965b8fd6b26a264771136810dc0172bd31b940aee4f2 - languageName: node - linkType: hard - -"postcss-nested@npm:^6.0.1": - version: 6.0.1 - resolution: "postcss-nested@npm:6.0.1" - dependencies: - postcss-selector-parser: "npm:^6.0.11" - peerDependencies: - postcss: ^8.2.14 - checksum: 02aaac682f599879fae6aab3210aee59b8b5bde3ba242527f6fd103726955b74ffa05c2b765920be5f403e758045582534d11b1e19add01586c19743ed99e3fe - languageName: node - linkType: hard - -"postcss-nesting@npm:^10.2.0": - version: 10.2.0 - resolution: "postcss-nesting@npm:10.2.0" - dependencies: - "@csstools/selector-specificity": "npm:^2.0.0" - postcss-selector-parser: "npm:^6.0.10" - peerDependencies: - postcss: ^8.2 - checksum: eb3531612243379ce43aeb864acc146b77fb61a3b34e8679b61226c3078f318a06def50c9468650e6eb904022d4de325e2555d09866ba893f413e4b0416059d8 - languageName: node - linkType: hard - -"postcss-normalize-charset@npm:^5.1.0": - version: 5.1.0 - resolution: "postcss-normalize-charset@npm:5.1.0" - peerDependencies: - postcss: ^8.2.15 - checksum: e79d92971fc05b8b3c9b72f3535a574e077d13c69bef68156a0965f397fdf157de670da72b797f57b0e3bac8f38155b5dd1735ecab143b9cc4032d72138193b4 - languageName: node - linkType: hard - -"postcss-normalize-display-values@npm:^5.1.0": - version: 5.1.0 - resolution: "postcss-normalize-display-values@npm:5.1.0" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2.15 - checksum: b6eb7b9b02c3bdd62bbc54e01e2b59733d73a1c156905d238e178762962efe0c6f5104544da39f32cade8a4fb40f10ff54b63a8ebfbdff51e8780afb9fbdcf86 - languageName: node - linkType: hard - -"postcss-normalize-positions@npm:^5.1.1": - version: 5.1.1 - resolution: "postcss-normalize-positions@npm:5.1.1" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2.15 - checksum: d9afc233729c496463c7b1cdd06732469f401deb387484c3a2422125b46ec10b4af794c101f8c023af56f01970b72b535e88373b9058ecccbbf88db81662b3c4 - languageName: node - linkType: hard - -"postcss-normalize-repeat-style@npm:^5.1.1": - version: 5.1.1 - resolution: "postcss-normalize-repeat-style@npm:5.1.1" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2.15 - checksum: 2c6ad2b0ae10a1fda156b948c34f78c8f1e185513593de4d7e2480973586675520edfec427645fa168c337b0a6b3ceca26f92b96149741ca98a9806dad30d534 - languageName: node - linkType: hard - -"postcss-normalize-string@npm:^5.1.0": - version: 5.1.0 - resolution: "postcss-normalize-string@npm:5.1.0" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2.15 - checksum: 227ddf520266d2f9847e799b9977aaa444636ba94e473137739539ef02e7cb6302826585ffda9897cfe2a9953e65632a08279cb1f572ca95e53d8b3dd6ba737f - languageName: node - linkType: hard - -"postcss-normalize-timing-functions@npm:^5.1.0": - version: 5.1.0 - resolution: "postcss-normalize-timing-functions@npm:5.1.0" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2.15 - checksum: da550f50e90b0b23e17b67449a7d1efd1aa68288e66d4aa7614ca6f5cc012896be1972b7168eee673d27da36504faccf7b9f835c0f7e81243f966a42c8c030aa - languageName: node - linkType: hard - -"postcss-normalize-unicode@npm:^5.1.1": - version: 5.1.1 - resolution: "postcss-normalize-unicode@npm:5.1.1" - dependencies: - browserslist: "npm:^4.21.4" - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2.15 - checksum: 4c24d26cc9f4b19a9397db4e71dd600dab690f1de8e14a3809e2aa1452dbc3791c208c38a6316bbc142f29e934fdf02858e68c94038c06174d78a4937e0f273c - languageName: node - linkType: hard - -"postcss-normalize-url@npm:^5.1.0": - version: 5.1.0 - resolution: "postcss-normalize-url@npm:5.1.0" - dependencies: - normalize-url: "npm:^6.0.1" - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2.15 - checksum: 3bd4b3246d6600230bc827d1760b24cb3101827ec97570e3016cbe04dc0dd28f4dbe763245d1b9d476e182c843008fbea80823061f1d2219b96f0d5c724a24c0 - languageName: node - linkType: hard - -"postcss-normalize-whitespace@npm:^5.1.1": - version: 5.1.1 - resolution: "postcss-normalize-whitespace@npm:5.1.1" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2.15 - checksum: 12d8fb6d1c1cba208cc08c1830959b7d7ad447c3f5581873f7e185f99a9a4230c43d3af21ca12c818e4690a5085a95b01635b762ad4a7bef69d642609b4c0e19 - languageName: node - linkType: hard - -"postcss-normalize@npm:^10.0.1": - version: 10.0.1 - resolution: "postcss-normalize@npm:10.0.1" - dependencies: - "@csstools/normalize.css": "npm:*" - postcss-browser-comments: "npm:^4" - sanitize.css: "npm:*" - peerDependencies: - browserslist: ">= 4" - postcss: ">= 8" - checksum: f2562ae30a75531436542cfd8ee5aec6c46f044cd410fed51d38dbecfc053f822ff5589687eeb1c0a1c5db3a16b25f6cebe0188c75be2cf4352d526212b760dc - languageName: node - linkType: hard - -"postcss-opacity-percentage@npm:^1.1.2": - version: 1.1.3 - resolution: "postcss-opacity-percentage@npm:1.1.3" - peerDependencies: - postcss: ^8.2 - checksum: 54d1b8ca68035bc1a5788aaabdbc3b66ffee34b5a2412cecf073627dad7e3f2bae07c01fac3bc7f46bbac5da3291ac9ddcf74bfee26dfd86f9f96c847a0afc13 - languageName: node - linkType: hard - -"postcss-ordered-values@npm:^5.1.3": - version: 5.1.3 - resolution: "postcss-ordered-values@npm:5.1.3" - dependencies: - cssnano-utils: "npm:^3.1.0" - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2.15 - checksum: 53dd26f480a18ffb0c008ae956d8a7e11e43c37629d0fb17a7716ff3b0cd8585f97e80deac12e7f3fe129681a980d83d356217b0b8fffb70ff83859993d6d82a - languageName: node - linkType: hard - -"postcss-overflow-shorthand@npm:^3.0.4": - version: 3.0.4 - resolution: "postcss-overflow-shorthand@npm:3.0.4" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2 - checksum: 0a44a922f2bf3370cffef6f97954e17cf5f8690102093d7adf3600a47099c5babdc51d7cb309976cecbb7eb9f852a380319e4badd02f1caa4d5915c8ffc04b56 - languageName: node - linkType: hard - -"postcss-page-break@npm:^3.0.4": - version: 3.0.4 - resolution: "postcss-page-break@npm:3.0.4" - peerDependencies: - postcss: ^8 - checksum: a7d08c945fc691f62c77ac701e64722218b14ec5c8fc1972b8af9c21553492d40808cf95e61b9697b1dacaf7e6180636876d7fee314f079e6c9e39ac1b1edc6f - languageName: node - linkType: hard - -"postcss-place@npm:^7.0.5": - version: 7.0.5 - resolution: "postcss-place@npm:7.0.5" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2 - checksum: a462b427c29e0276183aab717ef17893ac7fab3e0e5c459d4f54d24f936624bb71b3acc1660fd72be8bd0ecdb99ab99c40798d9846ad5a796cdc32e63ca06434 - languageName: node - linkType: hard - -"postcss-preset-env@npm:^7.0.1": - version: 7.8.3 - resolution: "postcss-preset-env@npm:7.8.3" - dependencies: - "@csstools/postcss-cascade-layers": "npm:^1.1.1" - "@csstools/postcss-color-function": "npm:^1.1.1" - "@csstools/postcss-font-format-keywords": "npm:^1.0.1" - "@csstools/postcss-hwb-function": "npm:^1.0.2" - "@csstools/postcss-ic-unit": "npm:^1.0.1" - "@csstools/postcss-is-pseudo-class": "npm:^2.0.7" - "@csstools/postcss-nested-calc": "npm:^1.0.0" - "@csstools/postcss-normalize-display-values": "npm:^1.0.1" - "@csstools/postcss-oklab-function": "npm:^1.1.1" - "@csstools/postcss-progressive-custom-properties": "npm:^1.3.0" - "@csstools/postcss-stepped-value-functions": "npm:^1.0.1" - "@csstools/postcss-text-decoration-shorthand": "npm:^1.0.0" - "@csstools/postcss-trigonometric-functions": "npm:^1.0.2" - "@csstools/postcss-unset-value": "npm:^1.0.2" - autoprefixer: "npm:^10.4.13" - browserslist: "npm:^4.21.4" - css-blank-pseudo: "npm:^3.0.3" - css-has-pseudo: "npm:^3.0.4" - css-prefers-color-scheme: "npm:^6.0.3" - cssdb: "npm:^7.1.0" - postcss-attribute-case-insensitive: "npm:^5.0.2" - postcss-clamp: "npm:^4.1.0" - postcss-color-functional-notation: "npm:^4.2.4" - postcss-color-hex-alpha: "npm:^8.0.4" - postcss-color-rebeccapurple: "npm:^7.1.1" - postcss-custom-media: "npm:^8.0.2" - postcss-custom-properties: "npm:^12.1.10" - postcss-custom-selectors: "npm:^6.0.3" - postcss-dir-pseudo-class: "npm:^6.0.5" - postcss-double-position-gradients: "npm:^3.1.2" - postcss-env-function: "npm:^4.0.6" - postcss-focus-visible: "npm:^6.0.4" - postcss-focus-within: "npm:^5.0.4" - postcss-font-variant: "npm:^5.0.0" - postcss-gap-properties: "npm:^3.0.5" - postcss-image-set-function: "npm:^4.0.7" - postcss-initial: "npm:^4.0.1" - postcss-lab-function: "npm:^4.2.1" - postcss-logical: "npm:^5.0.4" - postcss-media-minmax: "npm:^5.0.0" - postcss-nesting: "npm:^10.2.0" - postcss-opacity-percentage: "npm:^1.1.2" - postcss-overflow-shorthand: "npm:^3.0.4" - postcss-page-break: "npm:^3.0.4" - postcss-place: "npm:^7.0.5" - postcss-pseudo-class-any-link: "npm:^7.1.6" - postcss-replace-overflow-wrap: "npm:^4.0.0" - postcss-selector-not: "npm:^6.0.1" - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2 - checksum: e1f98019405b2f75d4e198ffa3be10ac99c2a2e0747d37ada548bc3ad6603370181045b43f55c4c79689ff5c25ff103f901eff07e12ba992e6fb015ea2eae748 - languageName: node - linkType: hard - -"postcss-pseudo-class-any-link@npm:^7.1.6": - version: 7.1.6 - resolution: "postcss-pseudo-class-any-link@npm:7.1.6" - dependencies: - postcss-selector-parser: "npm:^6.0.10" - peerDependencies: - postcss: ^8.2 - checksum: 2f2a6b35135033d02551ac7f260302cbe0fa306dc59428bb9a81dfc15d63093a24c3bb59a1e54d5a4661d2f4830aeaf9807d55e60d9027b9e4a378067b95a245 - languageName: node - linkType: hard - -"postcss-reduce-initial@npm:^5.1.2": - version: 5.1.2 - resolution: "postcss-reduce-initial@npm:5.1.2" - dependencies: - browserslist: "npm:^4.21.4" - caniuse-api: "npm:^3.0.0" - peerDependencies: - postcss: ^8.2.15 - checksum: 6234a85dab32cc3ece384f62c761c5c0dd646e2c6a419d93ee7cdb78b657e43381df39bd4620dfbdc2157e44b51305e4ebe852259d12c8b435f1aa534548db3e - languageName: node - linkType: hard - -"postcss-reduce-transforms@npm:^5.1.0": - version: 5.1.0 - resolution: "postcss-reduce-transforms@npm:5.1.0" - dependencies: - postcss-value-parser: "npm:^4.2.0" - peerDependencies: - postcss: ^8.2.15 - checksum: 49fffd474070a154764934b42d7d875ceadf54219f8346b4cadf931728ffba6a2dea7532ced3d267fd42d81c102211a5bf957af3b63b1ac428d454fa6ec2dbf4 - languageName: node - linkType: hard - -"postcss-replace-overflow-wrap@npm:^4.0.0": - version: 4.0.0 - resolution: "postcss-replace-overflow-wrap@npm:4.0.0" - peerDependencies: - postcss: ^8.0.3 - checksum: 0629ec17deae65e27dc3059ecec1c6bc833ee65291093b476fce151ab0af45c9e1a56ce250eb9ec4bbc306c19ab318cc982fdbcca8651d347d7dfaa3c9fc9201 - languageName: node - linkType: hard - -"postcss-selector-not@npm:^6.0.1": - version: 6.0.1 - resolution: "postcss-selector-not@npm:6.0.1" - dependencies: - postcss-selector-parser: "npm:^6.0.10" - peerDependencies: - postcss: ^8.2 - checksum: fe523a0219e4bd34f04498534bb9e8aec3193f3585eafe4c388d086955b41201cae71fd20980ca465acade7f182029b43dbd5ca7e9d50bf34bbcaf1d19fe3ee6 - languageName: node - linkType: hard - -"postcss-selector-parser@npm:^6.0.10, postcss-selector-parser@npm:^6.0.11, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.0.5, postcss-selector-parser@npm:^6.0.9": - version: 6.0.13 - resolution: "postcss-selector-parser@npm:6.0.13" - dependencies: - cssesc: "npm:^3.0.0" - util-deprecate: "npm:^1.0.2" - checksum: e779aa1f8ca9ee45d562400aac6109a2bccc59559b6e15adec8bc2a71d395ca563a378fd68f6a61963b4ef2ca190e0c0486e6dc6c41d755f3b82dd6e480e6941 - languageName: node - linkType: hard - -"postcss-svgo@npm:^5.1.0": - version: 5.1.0 - resolution: "postcss-svgo@npm:5.1.0" - dependencies: - postcss-value-parser: "npm:^4.2.0" - svgo: "npm:^2.7.0" - peerDependencies: - postcss: ^8.2.15 - checksum: d86eb5213d9f700cf5efe3073799b485fb7cacae0c731db3d7749c9c2b1c9bc85e95e0baeca439d699ff32ea24815fc916c4071b08f67ed8219df229ce1129bd - languageName: node - linkType: hard - -"postcss-unique-selectors@npm:^5.1.1": - version: 5.1.1 - resolution: "postcss-unique-selectors@npm:5.1.1" - dependencies: - postcss-selector-parser: "npm:^6.0.5" - peerDependencies: - postcss: ^8.2.15 - checksum: 637e7b786e8558265775c30400c54b6b3b24d4748923f4a39f16a65fd0e394f564ccc9f0a1d3c0e770618a7637a7502ea1d0d79f731d429cb202255253c23278 - languageName: node - linkType: hard - -"postcss-value-parser@npm:^3.3.0": - version: 3.3.1 - resolution: "postcss-value-parser@npm:3.3.1" - checksum: e8bc676092ad0c4a628e8d7b06ef1844a157bcce22e489d72ac661d6d47b8e8e7c342e5e0da807056a0a2fced1372fff0f67fbfd6e06fd8509828ac6190b54ae - languageName: node - linkType: hard - -"postcss-value-parser@npm:^4.0.0, postcss-value-parser@npm:^4.1.0, postcss-value-parser@npm:^4.2.0": - version: 4.2.0 - resolution: "postcss-value-parser@npm:4.2.0" - checksum: e4e4486f33b3163a606a6ed94f9c196ab49a37a7a7163abfcd469e5f113210120d70b8dd5e33d64636f41ad52316a3725655421eb9a1094f1bcab1db2f555c62 - languageName: node - linkType: hard - -"postcss@npm:^7.0.35": - version: 7.0.39 - resolution: "postcss@npm:7.0.39" - dependencies: - picocolors: "npm:^0.2.1" - source-map: "npm:^0.6.1" - checksum: 9635b3a444673d1e50ea67c68382201346b54d7bb69729fff5752a794d57ca5cae7f6fafd4157a9ab7f9ddac30a0d5e548c1196653468cbae3c2758dbc2f5662 - languageName: node - linkType: hard - -"postcss@npm:^8.3.5, postcss@npm:^8.4.21, postcss@npm:^8.4.23, postcss@npm:^8.4.4": - version: 8.4.29 - resolution: "postcss@npm:8.4.29" - dependencies: - nanoid: "npm:^3.3.6" - picocolors: "npm:^1.0.0" - source-map-js: "npm:^1.0.2" - checksum: cfde0096125a9d962d7acc4380922b4cf6af87b98cca78e89fdaa8da92d687b34344c6410d42723bcc154b5c66cc496aed8005c3884cea55a773a1cbc4774e70 - languageName: node - linkType: hard - -"prebuild-install@npm:^7.1.1": - version: 7.1.1 - resolution: "prebuild-install@npm:7.1.1" - dependencies: - detect-libc: "npm:^2.0.0" - expand-template: "npm:^2.0.3" - github-from-package: "npm:0.0.0" - minimist: "npm:^1.2.3" - mkdirp-classic: "npm:^0.5.3" - napi-build-utils: "npm:^1.0.1" - node-abi: "npm:^3.3.0" - pump: "npm:^3.0.0" - rc: "npm:^1.2.7" - simple-get: "npm:^4.0.0" - tar-fs: "npm:^2.0.0" - tunnel-agent: "npm:^0.6.0" - bin: - prebuild-install: bin.js - checksum: 6c70a2f82fbda8903497c560a761b000d861a3e772322c8bed012be0f0a084b5aaca4438a3fad1bd3a24210765f4fae06ddd89ea04dc4c034dde693cc0d9d5f4 - languageName: node - linkType: hard - -"prelude-ls@npm:^1.2.1": - version: 1.2.1 - resolution: "prelude-ls@npm:1.2.1" - checksum: 0b9d2c76801ca652a7f64892dd37b7e3fab149a37d2424920099bf894acccc62abb4424af2155ab36dea8744843060a2d8ddc983518d0b1e22265a22324b72ed - languageName: node - linkType: hard - -"prelude-ls@npm:~1.1.2": - version: 1.1.2 - resolution: "prelude-ls@npm:1.1.2" - checksum: 946a9f60d3477ca6b7d4c5e8e452ad1b98dc8aaa992cea939a6b926ac16cc4129d7217c79271dc808b5814b1537ad0af37f29a942e2eafbb92cfc5a1c87c38cb - languageName: node - linkType: hard - -"prepend-http@npm:^1.0.1": - version: 1.0.4 - resolution: "prepend-http@npm:1.0.4" - checksum: 01e7baf4ad38af02257b99098543469332fc42ae50df33d97a124bf8172295907352fa6138c9b1610c10c6dd0847ca736e53fda736387cc5cf8fcffe96b47f29 - languageName: node - linkType: hard - -"prettier-linter-helpers@npm:^1.0.0": - version: 1.0.0 - resolution: "prettier-linter-helpers@npm:1.0.0" - dependencies: - fast-diff: "npm:^1.1.2" - checksum: 00ce8011cf6430158d27f9c92cfea0a7699405633f7f1d4a45f07e21bf78e99895911cbcdc3853db3a824201a7c745bd49bfea8abd5fb9883e765a90f74f8392 - languageName: node - linkType: hard - -"prettier@npm:2.8.2": - version: 2.8.2 - resolution: "prettier@npm:2.8.2" - bin: - prettier: bin-prettier.js - checksum: 2362d0902d7c5aa820e3b022ad5d7b0b0dca7beb847aa3f71d2fc53d0a8e412147278950482d3ac733c98718603b4bbd2ca64ad864d2af4fa2fb7d034e786ae7 - languageName: node - linkType: hard - -"prettier@npm:^2.8.7": - version: 2.8.8 - resolution: "prettier@npm:2.8.8" - bin: - prettier: bin-prettier.js - checksum: 00cdb6ab0281f98306cd1847425c24cbaaa48a5ff03633945ab4c701901b8e96ad558eb0777364ffc312f437af9b5a07d0f45346266e8245beaf6247b9c62b24 - languageName: node - linkType: hard - -"pretty-bytes@npm:^5.3.0, pretty-bytes@npm:^5.4.1": - version: 5.6.0 - resolution: "pretty-bytes@npm:5.6.0" - checksum: 9c082500d1e93434b5b291bd651662936b8bd6204ec9fa17d563116a192d6d86b98f6d328526b4e8d783c07d5499e2614a807520249692da9ec81564b2f439cd - languageName: node - linkType: hard - -"pretty-error@npm:^4.0.0": - version: 4.0.0 - resolution: "pretty-error@npm:4.0.0" - dependencies: - lodash: "npm:^4.17.20" - renderkid: "npm:^3.0.0" - checksum: 0212ad8742f8bb6f412f95b07d7f6874c55514ac4384f4f7de0defe77e767cca99f667c2316529f62a041fa654194a99c1ee7e321e1b7f794b5cc700777634d6 +"prettier@npm:^2.8.7": + version: 2.8.8 + resolution: "prettier@npm:2.8.8" + bin: + prettier: bin-prettier.js + checksum: 00cdb6ab0281f98306cd1847425c24cbaaa48a5ff03633945ab4c701901b8e96ad558eb0777364ffc312f437af9b5a07d0f45346266e8245beaf6247b9c62b24 languageName: node linkType: hard @@ -16601,26 +13651,14 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^28.1.3": - version: 28.1.3 - resolution: "pretty-format@npm:28.1.3" - dependencies: - "@jest/schemas": "npm:^28.1.3" - ansi-regex: "npm:^5.0.1" - ansi-styles: "npm:^5.0.0" - react-is: "npm:^18.0.0" - checksum: 26626d33e201388174a1ce352be46b8087f28184bf3684a88b2f7cf633e28419ffc664628eec261ba13b0f03748c3a6f85db063a2022f75a354c7b9e4e06526b - languageName: node - linkType: hard - -"pretty-format@npm:^29.0.0, pretty-format@npm:^29.5.0": - version: 29.5.0 - resolution: "pretty-format@npm:29.5.0" +"pretty-format@npm:^29.0.0, pretty-format@npm:^29.5.0, pretty-format@npm:^29.7.0": + version: 29.7.0 + resolution: "pretty-format@npm:29.7.0" dependencies: - "@jest/schemas": "npm:^29.4.3" + "@jest/schemas": "npm:^29.6.3" ansi-styles: "npm:^5.0.0" react-is: "npm:^18.0.0" - checksum: b025cb1d2bf27b8dc338792b208811b196828ccf590a87014d9ac9406eb809324ef56151ba41d489c8a67fed94cdacc94ca003380c2795233e117a5874b2566b + checksum: dea96bc83c83cd91b2bfc55757b6b2747edcaac45b568e46de29deee80742f17bc76fe8898135a70d904f4928eafd8bb693cd1da4896e8bdd3c5e82cadf1d2bb languageName: node linkType: hard @@ -16671,16 +13709,7 @@ __metadata: languageName: node linkType: hard -"promise@npm:^8.1.0": - version: 8.3.0 - resolution: "promise@npm:8.3.0" - dependencies: - asap: "npm:~2.0.6" - checksum: 55e9d0d723c66810966bc055c6c77a3658c0af7e4a8cc88ea47aeaf2949ca0bd1de327d9c631df61236f5406ad478384fa19a77afb3f88c0303eba9e5eb0a8d8 - languageName: node - linkType: hard - -"prompts@npm:^2.0.1, prompts@npm:^2.4.2": +"prompts@npm:^2.0.1": version: 2.4.2 resolution: "prompts@npm:2.4.2" dependencies: @@ -16715,16 +13744,6 @@ __metadata: languageName: node linkType: hard -"proxy-addr@npm:~2.0.7": - version: 2.0.7 - resolution: "proxy-addr@npm:2.0.7" - dependencies: - forwarded: "npm:0.2.0" - ipaddr.js: "npm:1.9.1" - checksum: f24a0c80af0e75d31e3451398670d73406ec642914da11a2965b80b1898ca6f66a0e3e091a11a4327079b2b268795f6fa06691923fef91887215c3d0e8ea3f68 - languageName: node - linkType: hard - "pseudomap@npm:^1.0.2": version: 1.0.2 resolution: "pseudomap@npm:1.0.2" @@ -16763,22 +13782,6 @@ __metadata: languageName: node linkType: hard -"q@npm:^1.1.2": - version: 1.5.1 - resolution: "q@npm:1.5.1" - checksum: 70c4a30b300277165cd855889cd3aa681929840a5940413297645c5691e00a3549a2a4153131efdf43fe8277ee8cf5a34c9636dcb649d83ad47f311a015fd380 - languageName: node - linkType: hard - -"qs@npm:6.11.0": - version: 6.11.0 - resolution: "qs@npm:6.11.0" - dependencies: - side-channel: "npm:^1.0.4" - checksum: 5a3bfea3e2f359ede1bfa5d2f0dbe54001aa55e40e27dc3e60fab814362d83a9b30758db057c2011b6f53a2d4e4e5150194b5bac45372652aecb3e3c0d4b256e - languageName: node - linkType: hard - "querystringify@npm:^2.1.1": version: 2.2.0 resolution: "querystringify@npm:2.2.0" @@ -16800,15 +13803,6 @@ __metadata: languageName: node linkType: hard -"raf@npm:^3.4.1": - version: 3.4.1 - resolution: "raf@npm:3.4.1" - dependencies: - performance-now: "npm:^2.1.0" - checksum: 4c4b4c826b09d2aec6ca809f1a3c3c12136e7ec8d13fbb91f495dd2c99cd43345240e003da3bfd16036a432e635049fc6d9f69f9187f5f22ea88bb146ec75881 - languageName: node - linkType: hard - "randombytes@npm:^2.1.0": version: 2.1.0 resolution: "randombytes@npm:2.1.0" @@ -16818,25 +13812,6 @@ __metadata: languageName: node linkType: hard -"range-parser@npm:^1.2.1, range-parser@npm:~1.2.1": - version: 1.2.1 - resolution: "range-parser@npm:1.2.1" - checksum: ce21ef2a2dd40506893157970dc76e835c78cf56437e26e19189c48d5291e7279314477b06ac38abd6a401b661a6840f7b03bd0b1249da9b691deeaa15872c26 - languageName: node - linkType: hard - -"raw-body@npm:2.5.1": - version: 2.5.1 - resolution: "raw-body@npm:2.5.1" - dependencies: - bytes: "npm:3.1.2" - http-errors: "npm:2.0.0" - iconv-lite: "npm:0.4.24" - unpipe: "npm:1.0.0" - checksum: 280bedc12db3490ecd06f740bdcf66093a07535374b51331242382c0e130bb273ebb611b7bc4cba1b4b4e016cc7b1f4b05a6df885a6af39c2bc3b94c02291c84 - languageName: node - linkType: hard - "rc4@npm:~0.1.5": version: 0.1.5 resolution: "rc4@npm:0.1.5" @@ -16858,52 +13833,6 @@ __metadata: languageName: node linkType: hard -"react-app-polyfill@npm:^3.0.0": - version: 3.0.0 - resolution: "react-app-polyfill@npm:3.0.0" - dependencies: - core-js: "npm:^3.19.2" - object-assign: "npm:^4.1.1" - promise: "npm:^8.1.0" - raf: "npm:^3.4.1" - regenerator-runtime: "npm:^0.13.9" - whatwg-fetch: "npm:^3.6.2" - checksum: c544a1d9f5b3e4df1f51a01ceaa21d1350016520d0caf67549239ce112ea00b6014612f756e576609b986abe6eca1bb4f2625608bb9ae4501b74ca4398874be3 - languageName: node - linkType: hard - -"react-dev-utils@npm:^12.0.1": - version: 12.0.1 - resolution: "react-dev-utils@npm:12.0.1" - dependencies: - "@babel/code-frame": "npm:^7.16.0" - address: "npm:^1.1.2" - browserslist: "npm:^4.18.1" - chalk: "npm:^4.1.2" - cross-spawn: "npm:^7.0.3" - detect-port-alt: "npm:^1.1.6" - escape-string-regexp: "npm:^4.0.0" - filesize: "npm:^8.0.6" - find-up: "npm:^5.0.0" - fork-ts-checker-webpack-plugin: "npm:^6.5.0" - global-modules: "npm:^2.0.0" - globby: "npm:^11.0.4" - gzip-size: "npm:^6.0.0" - immer: "npm:^9.0.7" - is-root: "npm:^2.1.0" - loader-utils: "npm:^3.2.0" - open: "npm:^8.4.0" - pkg-up: "npm:^3.1.0" - prompts: "npm:^2.4.2" - react-error-overlay: "npm:^6.0.11" - recursive-readdir: "npm:^2.2.2" - shell-quote: "npm:^1.7.3" - strip-ansi: "npm:^6.0.1" - text-table: "npm:^0.2.0" - checksum: 4f6e04a3c4c6bc041bb85586646cff5e611049dd91f505e73cec47e284a854f28a25a4f50ff24b46e7df051b2a82c387870c8e08da232edbbbb36c01d4e94a2b - languageName: node - linkType: hard - "react-dnd-html5-backend@npm:^16.0.1": version: 16.0.1 resolution: "react-dnd-html5-backend@npm:16.0.1" @@ -16961,13 +13890,6 @@ __metadata: languageName: node linkType: hard -"react-error-overlay@npm:^6.0.11": - version: 6.0.11 - resolution: "react-error-overlay@npm:6.0.11" - checksum: b4ac746fc4fb50da733768aadbc638d34dd56d4e46ed4b2f2d1ac54dced0c5fa5fe47ebbbf90810ada44056ed0713bba5b9b930b69f4e45466e7f59fc806c44e - languageName: node - linkType: hard - "react-fast-compare@npm:^3.2.0": version: 3.2.1 resolution: "react-fast-compare@npm:3.2.1" @@ -17072,13 +13994,6 @@ __metadata: languageName: node linkType: hard -"react-refresh@npm:^0.11.0": - version: 0.11.0 - resolution: "react-refresh@npm:0.11.0" - checksum: 1275699e2edc39dbced9bdb00e2e167e3a2868e0c8ae117ba9551556368cfe70453068e5209240d827122aad5504a64c59a24b9b9a2a0ab932472c8750203ea3 - languageName: node - linkType: hard - "react-refresh@npm:^0.14.0": version: 0.14.0 resolution: "react-refresh@npm:0.14.0" @@ -17122,73 +14037,6 @@ __metadata: languageName: node linkType: hard -"react-scripts@npm:^5.0.1": - version: 5.0.1 - resolution: "react-scripts@npm:5.0.1" - dependencies: - "@babel/core": "npm:^7.16.0" - "@pmmmwh/react-refresh-webpack-plugin": "npm:^0.5.3" - "@svgr/webpack": "npm:^5.5.0" - babel-jest: "npm:^27.4.2" - babel-loader: "npm:^8.2.3" - babel-plugin-named-asset-import: "npm:^0.3.8" - babel-preset-react-app: "npm:^10.0.1" - bfj: "npm:^7.0.2" - browserslist: "npm:^4.18.1" - camelcase: "npm:^6.2.1" - case-sensitive-paths-webpack-plugin: "npm:^2.4.0" - css-loader: "npm:^6.5.1" - css-minimizer-webpack-plugin: "npm:^3.2.0" - dotenv: "npm:^10.0.0" - dotenv-expand: "npm:^5.1.0" - eslint: "npm:^8.3.0" - eslint-config-react-app: "npm:^7.0.1" - eslint-webpack-plugin: "npm:^3.1.1" - file-loader: "npm:^6.2.0" - fs-extra: "npm:^10.0.0" - fsevents: "npm:^2.3.2" - html-webpack-plugin: "npm:^5.5.0" - identity-obj-proxy: "npm:^3.0.0" - jest: "npm:^27.4.3" - jest-resolve: "npm:^27.4.2" - jest-watch-typeahead: "npm:^1.0.0" - mini-css-extract-plugin: "npm:^2.4.5" - postcss: "npm:^8.4.4" - postcss-flexbugs-fixes: "npm:^5.0.2" - postcss-loader: "npm:^6.2.1" - postcss-normalize: "npm:^10.0.1" - postcss-preset-env: "npm:^7.0.1" - prompts: "npm:^2.4.2" - react-app-polyfill: "npm:^3.0.0" - react-dev-utils: "npm:^12.0.1" - react-refresh: "npm:^0.11.0" - resolve: "npm:^1.20.0" - resolve-url-loader: "npm:^4.0.0" - sass-loader: "npm:^12.3.0" - semver: "npm:^7.3.5" - source-map-loader: "npm:^3.0.0" - style-loader: "npm:^3.3.1" - tailwindcss: "npm:^3.0.2" - terser-webpack-plugin: "npm:^5.2.5" - webpack: "npm:^5.64.4" - webpack-dev-server: "npm:^4.6.0" - webpack-manifest-plugin: "npm:^4.0.2" - workbox-webpack-plugin: "npm:^6.4.1" - peerDependencies: - react: ">= 16" - typescript: ^3.2.1 || ^4 - dependenciesMeta: - fsevents: - optional: true - peerDependenciesMeta: - typescript: - optional: true - bin: - react-scripts: bin/react-scripts.js - checksum: 1727f9b4606bedefd8e36c754b44181842ce81b9b6e961bcd21e8de44d5848fb5fa30790f4c45e5085f2365c7a37bff637fccc1b20096dc5cdd625d085fc117e - languageName: node - linkType: hard - "react-simple-pull-to-refresh@npm:^1.3.3": version: 1.3.3 resolution: "react-simple-pull-to-refresh@npm:1.3.3" @@ -17264,12 +14112,14 @@ __metadata: languageName: node linkType: hard -"read-cache@npm:^1.0.0": - version: 1.0.0 - resolution: "read-cache@npm:1.0.0" +"read-binary-file-arch@npm:^1.0.6": + version: 1.0.6 + resolution: "read-binary-file-arch@npm:1.0.6" dependencies: - pify: "npm:^2.3.0" - checksum: 83a39149d9dfa38f0c482ea0d77b34773c92fef07fe7599cdd914d255b14d0453e0229ef6379d8d27d6947f42d7581635296d0cfa7708f05a9bd8e789d398b31 + debug: "npm:^4.3.4" + bin: + read-binary-file-arch: cli.js + checksum: 7a25894816ff9caf5c27886b0aea1740bfab29483443a2859e5a0dc367c56ee9489f3cdba9da676a6d5913d3e421e71c6afbdbcfb636714ff49d93d152c72ba5 languageName: node linkType: hard @@ -17319,7 +14169,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^2.0.1, readable-stream@npm:^2.3.0, readable-stream@npm:^2.3.5": +"readable-stream@npm:^2.3.0, readable-stream@npm:^2.3.5": version: 2.3.8 resolution: "readable-stream@npm:2.3.8" dependencies: @@ -17334,7 +14184,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^3.0.6, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.5.0, readable-stream@npm:^3.6.0": +"readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.5.0, readable-stream@npm:^3.6.0": version: 3.6.2 resolution: "readable-stream@npm:3.6.2" dependencies: @@ -17405,15 +14255,6 @@ __metadata: languageName: node linkType: hard -"recursive-readdir@npm:^2.2.2": - version: 2.2.3 - resolution: "recursive-readdir@npm:2.2.3" - dependencies: - minimatch: "npm:^3.0.5" - checksum: 19298852b0b87810aed5f2c81a73bfaaeb9ade7c9bf363f350fc1443f2cc3df66ecade5e102dfbb153fcd9df20342c301848e11e149e5f78759c1d55aa2c9c39 - languageName: node - linkType: hard - "reduce-css-calc@npm:^2.1.8": version: 2.1.8 resolution: "reduce-css-calc@npm:2.1.8" @@ -17458,13 +14299,6 @@ __metadata: languageName: node linkType: hard -"regenerator-runtime@npm:^0.13.9": - version: 0.13.11 - resolution: "regenerator-runtime@npm:0.13.11" - checksum: d493e9e118abef5b099c78170834f18540c4933cedf9bfabc32d3af94abfb59a7907bd7950259cbab0a929ebca7db77301e8024e5121e6482a82f78283dfd20c - languageName: node - linkType: hard - "regenerator-runtime@npm:^0.14.0": version: 0.14.0 resolution: "regenerator-runtime@npm:0.14.0" @@ -17481,13 +14315,6 @@ __metadata: languageName: node linkType: hard -"regex-parser@npm:^2.2.11": - version: 2.2.11 - resolution: "regex-parser@npm:2.2.11" - checksum: 78200331ec0cc372302d287a4946c38681eb5fe435453fca572cb53cac0ba579e5eb3b9e25eac24c0c80a555fb3ea7a637814a35da1e9bc88e8819110ae5de24 - languageName: node - linkType: hard - "regexp.prototype.flags@npm:^1.5.0": version: 1.5.0 resolution: "regexp.prototype.flags@npm:1.5.0" @@ -17531,13 +14358,6 @@ __metadata: languageName: node linkType: hard -"relateurl@npm:^0.2.7": - version: 0.2.7 - resolution: "relateurl@npm:0.2.7" - checksum: f5d6ba58f2a5d5076389090600c243a0ba7072bcf347490a09e4241e2427ccdb260b4e22cea7be4f1fcd3c2bf05908b1e0d0bc9605e3199d4ecf37af1d5681fa - languageName: node - linkType: hard - "remark-gfm@npm:^3.0.1": version: 3.0.1 resolution: "remark-gfm@npm:3.0.1" @@ -17573,19 +14393,6 @@ __metadata: languageName: node linkType: hard -"renderkid@npm:^3.0.0": - version: 3.0.0 - resolution: "renderkid@npm:3.0.0" - dependencies: - css-select: "npm:^4.1.3" - dom-converter: "npm:^0.2.0" - htmlparser2: "npm:^6.1.0" - lodash: "npm:^4.17.21" - strip-ansi: "npm:^6.0.1" - checksum: 434bd56d9930dd344bcba3ef7683f3dd893396b6bc7e8caa551a4cacbe75a9466dc6cf3d75bc324a5979278a73ef968d7854f8f660dbf1a52c38a73f1fb59b20 - languageName: node - linkType: hard - "require-directory@npm:^2.1.1": version: 2.1.1 resolution: "require-directory@npm:2.1.1" @@ -17593,13 +14400,6 @@ __metadata: languageName: node linkType: hard -"require-from-string@npm:^2.0.2": - version: 2.0.2 - resolution: "require-from-string@npm:2.0.2" - checksum: 839a3a890102a658f4cb3e7b2aa13a1f80a3a976b512020c3d1efc418491c48a886b6e481ea56afc6c4cb5eef678f23b2a4e70575e7534eccadf5e30ed2e56eb - languageName: node - linkType: hard - "require-main-filename@npm:^1.0.1": version: 1.0.1 resolution: "require-main-filename@npm:1.0.1" @@ -17665,27 +14465,6 @@ __metadata: languageName: node linkType: hard -"resolve-url-loader@npm:^4.0.0": - version: 4.0.0 - resolution: "resolve-url-loader@npm:4.0.0" - dependencies: - adjust-sourcemap-loader: "npm:^4.0.0" - convert-source-map: "npm:^1.7.0" - loader-utils: "npm:^2.0.0" - postcss: "npm:^7.0.35" - source-map: "npm:0.6.1" - peerDependencies: - rework: 1.0.1 - rework-visit: 1.0.0 - peerDependenciesMeta: - rework: - optional: true - rework-visit: - optional: true - checksum: f61d8f31e621a8368d1a76118886cb6bccb536bd8fa0909d3527e0e2072d313f80017de6dfaa070ebdeb2dd80292ecd7099b2e08b627476fd2f0f0d593e35f08 - languageName: node - linkType: hard - "resolve.exports@npm:^1.1.0": version: 1.1.1 resolution: "resolve.exports@npm:1.1.1" @@ -17693,7 +14472,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.10.1, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.2": +"resolve@npm:^1.10.0, resolve@npm:^1.10.1, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1": version: 1.22.4 resolution: "resolve@npm:1.22.4" dependencies: @@ -17719,7 +14498,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.10.1#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin": +"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.10.1#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin": version: 1.22.4 resolution: "resolve@patch:resolve@npm%3A1.22.4#optional!builtin::version=1.22.4&hash=c3c19d" dependencies: @@ -17771,13 +14550,6 @@ __metadata: languageName: node linkType: hard -"retry@npm:^0.13.1": - version: 0.13.1 - resolution: "retry@npm:0.13.1" - checksum: 6125ec2e06d6e47e9201539c887defba4e47f63471db304c59e4b82fc63c8e89ca06a77e9d34939a9a42a76f00774b2f46c0d4a4cbb3e287268bd018ed69426d - languageName: node - linkType: hard - "reusify@npm:^1.0.4": version: 1.0.4 resolution: "reusify@npm:1.0.4" @@ -17810,31 +14582,76 @@ __metadata: languageName: node linkType: hard -"rollup-plugin-terser@npm:^7.0.0": - version: 7.0.2 - resolution: "rollup-plugin-terser@npm:7.0.2" +"rollup-plugin-visualizer@npm:^5.11.0": + version: 5.11.0 + resolution: "rollup-plugin-visualizer@npm:5.11.0" dependencies: - "@babel/code-frame": "npm:^7.10.4" - jest-worker: "npm:^26.2.1" - serialize-javascript: "npm:^4.0.0" - terser: "npm:^5.0.0" + open: "npm:^8.4.0" + picomatch: "npm:^2.3.1" + source-map: "npm:^0.7.4" + yargs: "npm:^17.5.1" peerDependencies: - rollup: ^2.0.0 - checksum: af84bb7a7a894cd00852b6486528dfb8653cf94df4c126f95f389a346f401d054b08c46bee519a2ab6a22b33804d1d6ac6d8c90b1b2bf8fffb097eed73fc3c72 - languageName: node - linkType: hard - -"rollup@npm:^2.43.1": - version: 2.79.1 - resolution: "rollup@npm:2.79.1" - dependencies: + rollup: 2.x || 3.x || 4.x + peerDependenciesMeta: + rollup: + optional: true + bin: + rollup-plugin-visualizer: dist/bin/cli.js + checksum: 947238aa22706a47a4d3e8ce616855f0e5cb969ed9f61b9a268eaede0a86f461ecb38e27b4e6bf00f4b5e3f63677667f65e0d4af89a659a5160f74add1f192bb + languageName: node + linkType: hard + +"rollup@npm:^4.2.0": + version: 4.9.4 + resolution: "rollup@npm:4.9.4" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.9.4" + "@rollup/rollup-android-arm64": "npm:4.9.4" + "@rollup/rollup-darwin-arm64": "npm:4.9.4" + "@rollup/rollup-darwin-x64": "npm:4.9.4" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.9.4" + "@rollup/rollup-linux-arm64-gnu": "npm:4.9.4" + "@rollup/rollup-linux-arm64-musl": "npm:4.9.4" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.9.4" + "@rollup/rollup-linux-x64-gnu": "npm:4.9.4" + "@rollup/rollup-linux-x64-musl": "npm:4.9.4" + "@rollup/rollup-win32-arm64-msvc": "npm:4.9.4" + "@rollup/rollup-win32-ia32-msvc": "npm:4.9.4" + "@rollup/rollup-win32-x64-msvc": "npm:4.9.4" + "@types/estree": "npm:1.0.5" fsevents: "npm:~2.3.2" dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true fsevents: optional: true bin: rollup: dist/bin/rollup - checksum: df087b701304432f30922bbee5f534ab189aa6938bd383b5686c03147e0d00cd1789ea10a462361326ce6b6ebe448ce272ad3f3cc40b82eeb3157df12f33663c + checksum: 1a1a78daf030e01cc651aa5bc2677678e3eee7c9039cc371b062d17abb6b62ec998c33479e3aad9db392c1b19d6589d7c6dda9df9fe239f9232caf78af20b64b languageName: node linkType: hard @@ -17884,20 +14701,20 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:5.1.2, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": - version: 5.1.2 - resolution: "safe-buffer@npm:5.1.2" - checksum: 7eb5b48f2ed9a594a4795677d5a150faa7eb54483b2318b568dc0c4fc94092a6cce5be02c7288a0500a156282f5276d5688bce7259299568d1053b2150ef374a - languageName: node - linkType: hard - -"safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:~5.2.0": +"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: 32872cd0ff68a3ddade7a7617b8f4c2ae8764d8b7d884c651b74457967a9e0e886267d3ecc781220629c44a865167b61c375d2da6c720c840ecd73f45d5d9451 languageName: node linkType: hard +"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": + version: 5.1.2 + resolution: "safe-buffer@npm:5.1.2" + checksum: 7eb5b48f2ed9a594a4795677d5a150faa7eb54483b2318b568dc0c4fc94092a6cce5be02c7288a0500a156282f5276d5688bce7259299568d1053b2150ef374a + languageName: node + linkType: hard + "safe-regex-test@npm:^1.0.0": version: 1.0.0 resolution: "safe-regex-test@npm:1.0.0" @@ -17925,38 +14742,6 @@ __metadata: languageName: node linkType: hard -"sanitize.css@npm:*": - version: 13.0.0 - resolution: "sanitize.css@npm:13.0.0" - checksum: 508cde59d1c99a885806387ca8350c594c4211cab16804fe66ed75cd7e1ba7ebd4079224128b1aea4d4227f0d1add3e83a85a51a6a7e4419c083f4cce70d010f - languageName: node - linkType: hard - -"sass-loader@npm:^12.3.0": - version: 12.6.0 - resolution: "sass-loader@npm:12.6.0" - dependencies: - klona: "npm:^2.0.4" - neo-async: "npm:^2.6.2" - peerDependencies: - fibers: ">= 3.1.0" - node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 - sass: ^1.3.0 - sass-embedded: "*" - webpack: ^5.0.0 - peerDependenciesMeta: - fibers: - optional: true - node-sass: - optional: true - sass: - optional: true - sass-embedded: - optional: true - checksum: 1a45bc2096644b7eebfff4095eb43fbbd620e86a9e7c1bcbb8f0b51acb3dbffb5d7020754f40690dfe95179fabbc7c3f310f38a61e0e2e7e4e986eeb7bb2c637 - languageName: node - linkType: hard - "sass@npm:^1.63.6": version: 1.63.6 resolution: "sass@npm:1.63.6" @@ -17970,7 +14755,7 @@ __metadata: languageName: node linkType: hard -"sax@npm:>=0.6.0, sax@npm:^1.2.4, sax@npm:~1.2.4": +"sax@npm:>=0.6.0, sax@npm:^1.2.4": version: 1.2.4 resolution: "sax@npm:1.2.4" checksum: 09b79ff6dc09689a24323352117c94593c69db348997b2af0edbd82fa08aba47d778055bf9616b57285bb73d25d790900c044bf631a8f10c8252412e3f3fe5dd @@ -17990,34 +14775,12 @@ __metadata: version: 0.23.0 resolution: "scheduler@npm:0.23.0" dependencies: - loose-envify: "npm:^1.1.0" - checksum: 0c4557aa37bafca44ff21dc0ea7c92e2dbcb298bc62eae92b29a39b029134f02fb23917d6ebc8b1fa536b4184934314c20d8864d156a9f6357f3398aaf7bfda8 - languageName: node - linkType: hard - -"schema-utils@npm:2.7.0": - version: 2.7.0 - resolution: "schema-utils@npm:2.7.0" - dependencies: - "@types/json-schema": "npm:^7.0.4" - ajv: "npm:^6.12.2" - ajv-keywords: "npm:^3.4.1" - checksum: e5afb6ecf8e9c63ce5f964cd8f2a2e7bdc8c3a63f6bc7dd5cfdc475aa90c1b9ade1555a749519c1673a0bfa203a12e04499e7d6d956163f8e7a77aaa3f12935c - languageName: node - linkType: hard - -"schema-utils@npm:^2.6.5": - version: 2.7.1 - resolution: "schema-utils@npm:2.7.1" - dependencies: - "@types/json-schema": "npm:^7.0.5" - ajv: "npm:^6.12.4" - ajv-keywords: "npm:^3.5.2" - checksum: 86c3038798981dbc702d5f6a86d4e4a308a2ec6e8eb1bf7d1a3ea95cb3f1972491833b76ce1c86a068652417019126d5b68219c33a9ad069358dd10429d4096d + loose-envify: "npm:^1.1.0" + checksum: 0c4557aa37bafca44ff21dc0ea7c92e2dbcb298bc62eae92b29a39b029134f02fb23917d6ebc8b1fa536b4184934314c20d8864d156a9f6357f3398aaf7bfda8 languageName: node linkType: hard -"schema-utils@npm:^3.0.0, schema-utils@npm:^3.1.1, schema-utils@npm:^3.2.0": +"schema-utils@npm:^3.1.1, schema-utils@npm:^3.2.0": version: 3.3.0 resolution: "schema-utils@npm:3.3.0" dependencies: @@ -18028,18 +14791,6 @@ __metadata: languageName: node linkType: hard -"schema-utils@npm:^4.0.0": - version: 4.0.1 - resolution: "schema-utils@npm:4.0.1" - dependencies: - "@types/json-schema": "npm:^7.0.9" - ajv: "npm:^8.9.0" - ajv-formats: "npm:^2.1.1" - ajv-keywords: "npm:^5.1.0" - checksum: f439ffa1eb8fc0893526181202b1e1869a1474a10dfc7fb634d160056510763efa29f1cad480abc1d4659b7725ac9b65438d87c3304c6cb42e54aee4cbe3049e - languageName: node - linkType: hard - "seek-bzip@npm:^1.0.5": version: 1.0.6 resolution: "seek-bzip@npm:1.0.6" @@ -18052,22 +14803,6 @@ __metadata: languageName: node linkType: hard -"select-hose@npm:^2.0.0": - version: 2.0.0 - resolution: "select-hose@npm:2.0.0" - checksum: 08cdd629a394d20e9005e7956f0624307c702cf950cc0458953e9b87ea961d3b1b72ac02266bdb93ac1eec4fcf42b41db9cabe93aa2b7683d71513d133c44fb5 - languageName: node - linkType: hard - -"selfsigned@npm:^2.1.1": - version: 2.1.1 - resolution: "selfsigned@npm:2.1.1" - dependencies: - node-forge: "npm:^1" - checksum: 6005206e0d005448274aceceaded5195b944f67a42b72d212a6169d2e5f4bdc87c15a3fe45732c544db8c7175702091aaf95403ad6632585294a6ec8cca63638 - languageName: node - linkType: hard - "semver-compare@npm:^1.0.0": version: 1.0.0 resolution: "semver-compare@npm:1.0.0" @@ -18104,27 +14839,6 @@ __metadata: languageName: node linkType: hard -"send@npm:0.18.0": - version: 0.18.0 - resolution: "send@npm:0.18.0" - dependencies: - debug: "npm:2.6.9" - depd: "npm:2.0.0" - destroy: "npm:1.2.0" - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - etag: "npm:~1.8.1" - fresh: "npm:0.5.2" - http-errors: "npm:2.0.0" - mime: "npm:1.6.0" - ms: "npm:2.1.3" - on-finished: "npm:2.4.1" - range-parser: "npm:~1.2.1" - statuses: "npm:2.0.1" - checksum: ec66c0ad109680ad8141d507677cfd8b4e40b9559de23191871803ed241718e99026faa46c398dcfb9250676076573bd6bfe5d0ec347f88f4b7b8533d1d391cb - languageName: node - linkType: hard - "serialize-error@npm:^7.0.1": version: 7.0.1 resolution: "serialize-error@npm:7.0.1" @@ -18134,16 +14848,7 @@ __metadata: languageName: node linkType: hard -"serialize-javascript@npm:^4.0.0": - version: 4.0.0 - resolution: "serialize-javascript@npm:4.0.0" - dependencies: - randombytes: "npm:^2.1.0" - checksum: df6809168973a84facade7d73e2d6dc418f5dee704d1e6cbe79e92fdb4c10af55237e99d2e67881ae3b29aa96ba596a0dfec4e609bd289ab8ec93c5ae78ede8e - languageName: node - linkType: hard - -"serialize-javascript@npm:^6.0.0, serialize-javascript@npm:^6.0.1": +"serialize-javascript@npm:^6.0.1": version: 6.0.1 resolution: "serialize-javascript@npm:6.0.1" dependencies: @@ -18152,33 +14857,6 @@ __metadata: languageName: node linkType: hard -"serve-index@npm:^1.9.1": - version: 1.9.1 - resolution: "serve-index@npm:1.9.1" - dependencies: - accepts: "npm:~1.3.4" - batch: "npm:0.6.1" - debug: "npm:2.6.9" - escape-html: "npm:~1.0.3" - http-errors: "npm:~1.6.2" - mime-types: "npm:~2.1.17" - parseurl: "npm:~1.3.2" - checksum: 2adce2878d7e30f197e66f30e39f4a404d9ae39295c0c13849bb25e7cf976b93e883204739efd1510559588bed56f8101e32191cbe75f374c6e1e803852194cb - languageName: node - linkType: hard - -"serve-static@npm:1.15.0": - version: 1.15.0 - resolution: "serve-static@npm:1.15.0" - dependencies: - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - parseurl: "npm:~1.3.3" - send: "npm:0.18.0" - checksum: 699b2d4c29807a51d9b5e0f24955346911437aebb0178b3c4833ad30d3eca93385ff9927254f5c16da345903cad39d9cd4a532198c95a5129cc4ed43911b15a4 - languageName: node - linkType: hard - "set-blocking@npm:^2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" @@ -18193,20 +14871,6 @@ __metadata: languageName: node linkType: hard -"setprototypeof@npm:1.1.0": - version: 1.1.0 - resolution: "setprototypeof@npm:1.1.0" - checksum: 02d2564e02a260551bab3ec95358dcfde775fe61272b1b7c488de3676a4bb79f280b5668a324aebe0ec73f0d8ba408bc2d816a609ee5d93b1a7936b9d4ba1208 - languageName: node - linkType: hard - -"setprototypeof@npm:1.2.0": - version: 1.2.0 - resolution: "setprototypeof@npm:1.2.0" - checksum: fde1630422502fbbc19e6844346778f99d449986b2f9cdcceb8326730d2f3d9964dbcb03c02aaadaefffecd0f2c063315ebea8b3ad895914bf1afc1747fc172e - languageName: node - linkType: hard - "shallow-clone@npm:^3.0.0": version: 3.0.1 resolution: "shallow-clone@npm:3.0.1" @@ -18248,7 +14912,7 @@ __metadata: languageName: node linkType: hard -"shell-quote@npm:^1.6.1, shell-quote@npm:^1.7.3": +"shell-quote@npm:^1.6.1": version: 1.8.1 resolution: "shell-quote@npm:1.8.1" checksum: af19ab5a1ec30cb4b2f91fd6df49a7442d5c4825a2e269b3712eded10eedd7f9efeaab96d57829880733fc55bcdd8e9b1d8589b4befb06667c731d08145e274d @@ -18266,6 +14930,13 @@ __metadata: languageName: node linkType: hard +"siginfo@npm:^2.0.0": + version: 2.0.0 + resolution: "siginfo@npm:2.0.0" + checksum: e93ff66c6531a079af8fb217240df01f980155b5dc408d2d7bebc398dd284e383eb318153bf8acd4db3c4fe799aa5b9a641e38b0ba3b1975700b1c89547ea4e7 + languageName: node + linkType: hard + "signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" @@ -18273,7 +14944,7 @@ __metadata: languageName: node linkType: hard -"signal-exit@npm:^4.0.1": +"signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0": version: 4.1.0 resolution: "signal-exit@npm:4.1.0" checksum: c9fa63bbbd7431066174a48ba2dd9986dfd930c3a8b59de9c29d7b6854ec1c12a80d15310869ea5166d413b99f041bfa3dd80a7947bcd44ea8e6eb3ffeabfa1f @@ -18387,17 +15058,6 @@ __metadata: languageName: node linkType: hard -"sockjs@npm:^0.3.24": - version: 0.3.24 - resolution: "sockjs@npm:0.3.24" - dependencies: - faye-websocket: "npm:^0.11.3" - uuid: "npm:^8.3.2" - websocket-driver: "npm:^0.7.4" - checksum: 36312ec9772a0e536b69b72e9d1c76bd3d6ecf885c5d8fd6e59811485c916b8ce75f46ec57532f436975815ee14aa9a0e22ae3d9e5c0b18ea37b56d0aaaf439c - languageName: node - linkType: hard - "socks-proxy-agent@npm:^7.0.0": version: 7.0.0 resolution: "socks-proxy-agent@npm:7.0.0" @@ -18437,13 +15097,6 @@ __metadata: languageName: node linkType: hard -"source-list-map@npm:^2.0.0, source-list-map@npm:^2.0.1": - version: 2.0.1 - resolution: "source-list-map@npm:2.0.1" - checksum: 3918ffba5fe8447bc816800026fe707aab233d9d05a3487225d880e23b7e37ed455b4e1b844e05644f6ecc7c9b837c0cc32da54dd37f77c993370ebcdb049246 - languageName: node - linkType: hard - "source-map-generator@npm:0.8.0": version: 0.8.0 resolution: "source-map-generator@npm:0.8.0" @@ -18458,19 +15111,6 @@ __metadata: languageName: node linkType: hard -"source-map-loader@npm:^3.0.0": - version: 3.0.2 - resolution: "source-map-loader@npm:3.0.2" - dependencies: - abab: "npm:^2.0.5" - iconv-lite: "npm:^0.6.3" - source-map-js: "npm:^1.0.1" - peerDependencies: - webpack: ^5.0.0 - checksum: 70161b49a155008a4b3f5097d3c1638ddf244ec82d6dbf092be142cefd85316ee0d1f625f498598031053c4f2de4751657ca8c38ee8e61f6af97698fb4fc4d0b - languageName: node - linkType: hard - "source-map-support@npm:^0.5.19, source-map-support@npm:^0.5.21, source-map-support@npm:^0.5.6, source-map-support@npm:~0.5.20": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" @@ -18481,36 +15121,20 @@ __metadata: languageName: node linkType: hard -"source-map@npm:0.6.1, source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.0, source-map@npm:~0.6.1": +"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.1": version: 0.6.1 resolution: "source-map@npm:0.6.1" checksum: 59ef7462f1c29d502b3057e822cdbdae0b0e565302c4dd1a95e11e793d8d9d62006cdc10e0fd99163ca33ff2071360cf50ee13f90440806e7ed57d81cba2f7ff languageName: node linkType: hard -"source-map@npm:^0.7.3": +"source-map@npm:^0.7.3, source-map@npm:^0.7.4": version: 0.7.4 resolution: "source-map@npm:0.7.4" checksum: a0f7c9b797eda93139842fd28648e868a9a03ea0ad0d9fa6602a0c1f17b7fb6a7dcca00c144476cccaeaae5042e99a285723b1a201e844ad67221bf5d428f1dc languageName: node linkType: hard -"source-map@npm:^0.8.0-beta.0": - version: 0.8.0-beta.0 - resolution: "source-map@npm:0.8.0-beta.0" - dependencies: - whatwg-url: "npm:^7.0.0" - checksum: c02e22ab9f8b8e38655ba1e9abae9fe1f8ba216cbbea922718d5e2ea45821606a74f10edec1db9055e7f7cfd1e6a62e5eade67ec30c017a02f4c8e990accbc1c - languageName: node - linkType: hard - -"sourcemap-codec@npm:^1.4.8": - version: 1.4.8 - resolution: "sourcemap-codec@npm:1.4.8" - checksum: 6fc57a151e982b5c9468362690c6d062f3a0d4d8520beb68a82f319c79e7a4d7027eeb1e396de0ecc2cd19491e1d602b2d06fd444feac9b63dd43fea4c55a857 - languageName: node - linkType: hard - "space-separated-tokens@npm:^2.0.0": version: 2.0.2 resolution: "space-separated-tokens@npm:2.0.2" @@ -18552,33 +15176,6 @@ __metadata: languageName: node linkType: hard -"spdy-transport@npm:^3.0.0": - version: 3.0.0 - resolution: "spdy-transport@npm:3.0.0" - dependencies: - debug: "npm:^4.1.0" - detect-node: "npm:^2.0.4" - hpack.js: "npm:^2.1.6" - obuf: "npm:^1.1.2" - readable-stream: "npm:^3.0.6" - wbuf: "npm:^1.7.3" - checksum: b93b606b209ca785456bd850b8925f21a76522ee5b46701235ecff3eba17686560c27575f91863842dc843a39772f6d2f5a8755df9eaff0924d20598df18828d - languageName: node - linkType: hard - -"spdy@npm:^4.0.2": - version: 4.0.2 - resolution: "spdy@npm:4.0.2" - dependencies: - debug: "npm:^4.1.0" - handle-thing: "npm:^2.0.0" - http-deceiver: "npm:^1.2.7" - select-hose: "npm:^2.0.0" - spdy-transport: "npm:^3.0.0" - checksum: d29b89e48e7d762e505a2f83b1bc2c92268bd518f1b411864ab42a9e032e387d10467bbce0d8dbf8647bf4914a063aa1d303dff85e248f7a57f81a7b18ac34ef - languageName: node - linkType: hard - "sprintf-js@npm:^1.1.2": version: 1.1.2 resolution: "sprintf-js@npm:1.1.2" @@ -18611,13 +15208,6 @@ __metadata: languageName: node linkType: hard -"stable@npm:^0.1.8": - version: 0.1.8 - resolution: "stable@npm:0.1.8" - checksum: 2ff482bb100285d16dd75cd8f7c60ab652570e8952c0bfa91828a2b5f646a0ff533f14596ea4eabd48bb7f4aeea408dce8f8515812b975d958a4cc4fa6b9dfeb - languageName: node - linkType: hard - "stack-utils@npm:^2.0.3": version: 2.0.6 resolution: "stack-utils@npm:2.0.6" @@ -18627,10 +15217,10 @@ __metadata: languageName: node linkType: hard -"stackframe@npm:^1.3.4": - version: 1.3.4 - resolution: "stackframe@npm:1.3.4" - checksum: 29ca71c1fd17974c1c178df0236b1407bc65f6ea389cc43dec000def6e42ff548d4453de9a85b76469e2ae2b2abdd802c6b6f3db947c05794efbd740d1cf4121 +"stackback@npm:0.0.2": + version: 0.0.2 + resolution: "stackback@npm:0.0.2" + checksum: 2d4dc4e64e2db796de4a3c856d5943daccdfa3dd092e452a1ce059c81e9a9c29e0b9badba91b43ef0d5ff5c04ee62feb3bcc559a804e16faf447bac2d883aa99 languageName: node linkType: hard @@ -18641,17 +15231,10 @@ __metadata: languageName: node linkType: hard -"statuses@npm:2.0.1": - version: 2.0.1 - resolution: "statuses@npm:2.0.1" - checksum: 18c7623fdb8f646fb213ca4051be4df7efb3484d4ab662937ca6fbef7ced9b9e12842709872eb3020cc3504b93bde88935c9f6417489627a7786f24f8031cbcb - languageName: node - linkType: hard - -"statuses@npm:>= 1.4.0 < 2": - version: 1.5.0 - resolution: "statuses@npm:1.5.0" - checksum: c469b9519de16a4bb19600205cffb39ee471a5f17b82589757ca7bd40a8d92ebb6ed9f98b5a540c5d302ccbc78f15dc03cc0280dd6e00df1335568a5d5758a5c +"std-env@npm:^3.5.0": + version: 3.6.0 + resolution: "std-env@npm:3.6.0" + checksum: ab1c2d000bfedb6338ac49810dc8a032d472ec0bc3fd7566254a7bef7f6a79a30392282e229ee46223bb7e4b707ac2a24978add8211b65ae96ef9652994071ac languageName: node linkType: hard @@ -18744,7 +15327,7 @@ __metadata: languageName: node linkType: hard -"string.prototype.matchall@npm:^4.0.6, string.prototype.matchall@npm:^4.0.8": +"string.prototype.matchall@npm:^4.0.8": version: 4.0.9 resolution: "string.prototype.matchall@npm:4.0.9" dependencies: @@ -18822,17 +15405,6 @@ __metadata: languageName: node linkType: hard -"stringify-object@npm:^3.3.0": - version: 3.3.0 - resolution: "stringify-object@npm:3.3.0" - dependencies: - get-own-enumerable-property-symbols: "npm:^3.0.0" - is-obj: "npm:^1.0.1" - is-regexp: "npm:^1.0.0" - checksum: 973782f09a3df3f39a2cf07dbf43fb9ba6cb32976f3616cd0f6c10e0a5c5415dd72b7b700e72920e8da2bf57c3001b8e37b5af7174bab9a748ce0416989e19b1 - languageName: node - linkType: hard - "strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": version: 6.0.1 resolution: "strip-ansi@npm:6.0.1" @@ -18883,13 +15455,6 @@ __metadata: languageName: node linkType: hard -"strip-comments@npm:^2.0.1": - version: 2.0.1 - resolution: "strip-comments@npm:2.0.1" - checksum: 43ea36189e4ba543c6ffb0384831e9e23c3b57ede5592c6edcbfc883f489f91d00328fe2670b4e467f61c7886eff68deae3e946f0f092346b2b3cb058b9cfdba - languageName: node - linkType: hard - "strip-dirs@npm:^2.0.0": version: 2.1.0 resolution: "strip-dirs@npm:2.1.0" @@ -18934,6 +15499,15 @@ __metadata: languageName: node linkType: hard +"strip-literal@npm:^1.3.0": + version: 1.3.0 + resolution: "strip-literal@npm:1.3.0" + dependencies: + acorn: "npm:^8.10.0" + checksum: f5fa7e289df8ebe82e90091fd393974faf8871be087ca50114327506519323cf15f2f8fee6ebe68b5e58bfc795269cae8bdc7cb5a83e27b02b3fe953f37b0a89 + languageName: node + linkType: hard + "strip-outer@npm:^1.0.0": version: 1.0.1 resolution: "strip-outer@npm:1.0.1" @@ -18943,15 +15517,6 @@ __metadata: languageName: node linkType: hard -"style-loader@npm:^3.3.1": - version: 3.3.3 - resolution: "style-loader@npm:3.3.3" - peerDependencies: - webpack: ^5.0.0 - checksum: 6c13d5075b5a5d69602215a242ef157460766e6e8a2e48276eb5da5b9852716910b48b3f120d492bbc7cd825dfa940b35fc84e1a9ab2a8792fd8d568b6b3e87a - languageName: node - linkType: hard - "style-to-object@npm:^0.4.0": version: 0.4.2 resolution: "style-to-object@npm:0.4.2" @@ -18961,36 +15526,6 @@ __metadata: languageName: node linkType: hard -"stylehacks@npm:^5.1.1": - version: 5.1.1 - resolution: "stylehacks@npm:5.1.1" - dependencies: - browserslist: "npm:^4.21.4" - postcss-selector-parser: "npm:^6.0.4" - peerDependencies: - postcss: ^8.2.15 - checksum: bddce1f5a8ba5a129995fc5585fa59fda6c8c580a8b39631955ee03810957eea62d13c7711a61f3a4f3bc2f9a4a9e019846f73b669c4aa0b5c52cd0198824b5c - languageName: node - linkType: hard - -"sucrase@npm:^3.32.0": - version: 3.34.0 - resolution: "sucrase@npm:3.34.0" - dependencies: - "@jridgewell/gen-mapping": "npm:^0.3.2" - commander: "npm:^4.0.0" - glob: "npm:7.1.6" - lines-and-columns: "npm:^1.1.6" - mz: "npm:^2.7.0" - pirates: "npm:^4.0.1" - ts-interface-checker: "npm:^0.1.9" - bin: - sucrase: bin/sucrase - sucrase-node: bin/sucrase-node - checksum: b64d154a7a7eaa4b39668c3124bd08cd505f683d36ac4fb94def6491fb3af155b24b6e41b55011e38582e7d59c440af79ffba8709f3da78aeedf2f07b6d51d84 - languageName: node - linkType: hard - "sumchecker@npm:^3.0.1": version: 3.0.1 resolution: "sumchecker@npm:3.0.1" @@ -19044,53 +15579,13 @@ __metadata: languageName: node linkType: hard -"svg-parser@npm:^2.0.2, svg-parser@npm:^2.0.4": +"svg-parser@npm:^2.0.4": version: 2.0.4 resolution: "svg-parser@npm:2.0.4" checksum: ec196da6ea21481868ab26911970e35488361c39ead1c6cdd977ba16c885c21a91ddcbfd113bfb01f79a822e2a751ef85b2f7f95e2cb9245558ebce12c34af1f languageName: node linkType: hard -"svgo@npm:^1.2.2": - version: 1.3.2 - resolution: "svgo@npm:1.3.2" - dependencies: - chalk: "npm:^2.4.1" - coa: "npm:^2.0.2" - css-select: "npm:^2.0.0" - css-select-base-adapter: "npm:^0.1.1" - css-tree: "npm:1.0.0-alpha.37" - csso: "npm:^4.0.2" - js-yaml: "npm:^3.13.1" - mkdirp: "npm:~0.5.1" - object.values: "npm:^1.1.0" - sax: "npm:~1.2.4" - stable: "npm:^0.1.8" - unquote: "npm:~1.1.1" - util.promisify: "npm:~1.0.0" - bin: - svgo: ./bin/svgo - checksum: c3679f0c68812c2823bcab66b46e76c8b52b37ff554f879b7ec5ebb8a91e450e9f0ebefbf8ac00962081c8ad99a1c490a0e258b10b9d42dc5054de18af19f02e - languageName: node - linkType: hard - -"svgo@npm:^2.7.0": - version: 2.8.0 - resolution: "svgo@npm:2.8.0" - dependencies: - "@trysound/sax": "npm:0.2.0" - commander: "npm:^7.2.0" - css-select: "npm:^4.1.3" - css-tree: "npm:^1.1.3" - csso: "npm:^4.2.0" - picocolors: "npm:^1.0.0" - stable: "npm:^0.1.8" - bin: - svgo: bin/svgo - checksum: 2b74544da1a9521852fe2784252d6083b336e32528d0e424ee54d1613f17312edc7020c29fa399086560e96cba42ede4a2205328a08edeefa26de84cd769a64a - languageName: node - linkType: hard - "svgo@npm:^3.0.2": version: 3.0.2 resolution: "svgo@npm:3.0.2" @@ -19141,47 +15636,7 @@ __metadata: languageName: node linkType: hard -"tailwindcss@npm:^3.0.2": - version: 3.3.3 - resolution: "tailwindcss@npm:3.3.3" - dependencies: - "@alloc/quick-lru": "npm:^5.2.0" - arg: "npm:^5.0.2" - chokidar: "npm:^3.5.3" - didyoumean: "npm:^1.2.2" - dlv: "npm:^1.1.3" - fast-glob: "npm:^3.2.12" - glob-parent: "npm:^6.0.2" - is-glob: "npm:^4.0.3" - jiti: "npm:^1.18.2" - lilconfig: "npm:^2.1.0" - micromatch: "npm:^4.0.5" - normalize-path: "npm:^3.0.0" - object-hash: "npm:^3.0.0" - picocolors: "npm:^1.0.0" - postcss: "npm:^8.4.23" - postcss-import: "npm:^15.1.0" - postcss-js: "npm:^4.0.1" - postcss-load-config: "npm:^4.0.1" - postcss-nested: "npm:^6.0.1" - postcss-selector-parser: "npm:^6.0.11" - resolve: "npm:^1.22.2" - sucrase: "npm:^3.32.0" - bin: - tailwind: lib/cli.js - tailwindcss: lib/cli.js - checksum: bc47f40cc33aca95fb9d523ecef0a450241e51d2259c354ac283c6a06c4dcd7edd1ffbd6f065fc496390ff3ab4dd8349c968b10cce7e11e0bde101705fa0f4f1 - languageName: node - linkType: hard - -"tapable@npm:^1.0.0": - version: 1.1.3 - resolution: "tapable@npm:1.1.3" - checksum: 1cec71f00f9a6cb1d88961b5d4f2dead4e185508b18b1bf1e688c8135039a391dd3e12b0887232b682ef28f1ef6f0c5e9a48794f6f5ef68f35d05de7e7a0a578 - languageName: node - linkType: hard - -"tapable@npm:^2.0.0, tapable@npm:^2.1.1, tapable@npm:^2.2.0": +"tapable@npm:^2.1.1, tapable@npm:^2.2.0": version: 2.2.1 resolution: "tapable@npm:2.2.1" checksum: 1769336dd21481ae6347611ca5fca47add0962fd8e80466515032125eca0084a4f0ede11e65341b9c0018ef4e1cf1ad820adbb0fba7cc99865c6005734000b0a @@ -19228,7 +15683,7 @@ __metadata: languageName: node linkType: hard -"tar@npm:^6.0.5, tar@npm:^6.1.12": +"tar@npm:^6.0.5, tar@npm:^6.1.11, tar@npm:^6.1.12, tar@npm:^6.1.2": version: 6.2.0 resolution: "tar@npm:6.2.0" dependencies: @@ -19242,20 +15697,6 @@ __metadata: languageName: node linkType: hard -"tar@npm:^6.1.11, tar@npm:^6.1.2": - version: 6.1.14 - resolution: "tar@npm:6.1.14" - dependencies: - chownr: "npm:^2.0.0" - fs-minipass: "npm:^2.0.0" - minipass: "npm:^5.0.0" - minizlib: "npm:^2.1.1" - mkdirp: "npm:^1.0.3" - yallist: "npm:^4.0.0" - checksum: 5bf69e135e82b6135767654940b8b4cdb984d1e01b3a2e1cb28d27ef4a9e2db8e4b305dac8fa0c26d18d5cea00d13bf85349a19998d0ead91393d8b9939910ac - languageName: node - linkType: hard - "temp-dir@npm:^1.0.0": version: 1.0.0 resolution: "temp-dir@npm:1.0.0" @@ -19300,18 +15741,6 @@ __metadata: languageName: node linkType: hard -"tempy@npm:^0.6.0": - version: 0.6.0 - resolution: "tempy@npm:0.6.0" - dependencies: - is-stream: "npm:^2.0.0" - temp-dir: "npm:^2.0.0" - type-fest: "npm:^0.16.0" - unique-string: "npm:^2.0.0" - checksum: 64f110666b3892ff00d2b5f9d89a5e0198813cc7e25aa187eca5ce310ff1697ef2cb7239f9eccbe0e8a23c1cdfaae949ce37511fe60ebfc637018ce7e9642a49 - languageName: node - linkType: hard - "terminal-link@npm:^2.0.0": version: 2.1.1 resolution: "terminal-link@npm:2.1.1" @@ -19322,7 +15751,7 @@ __metadata: languageName: node linkType: hard -"terser-webpack-plugin@npm:^5.2.5, terser-webpack-plugin@npm:^5.3.7, terser-webpack-plugin@npm:^5.3.9": +"terser-webpack-plugin@npm:^5.3.7, terser-webpack-plugin@npm:^5.3.9": version: 5.3.9 resolution: "terser-webpack-plugin@npm:5.3.9" dependencies: @@ -19344,7 +15773,7 @@ __metadata: languageName: node linkType: hard -"terser@npm:^5.0.0, terser@npm:^5.10.0, terser@npm:^5.16.8": +"terser@npm:^5.16.8": version: 5.19.3 resolution: "terser@npm:5.19.3" dependencies: @@ -19376,24 +15805,6 @@ __metadata: languageName: node linkType: hard -"thenify-all@npm:^1.0.0": - version: 1.6.0 - resolution: "thenify-all@npm:1.6.0" - dependencies: - thenify: "npm:>= 3.1.0 < 4" - checksum: dba7cc8a23a154cdcb6acb7f51d61511c37a6b077ec5ab5da6e8b874272015937788402fd271fdfc5f187f8cb0948e38d0a42dcc89d554d731652ab458f5343e - languageName: node - linkType: hard - -"thenify@npm:>= 3.1.0 < 4": - version: 3.3.1 - resolution: "thenify@npm:3.3.1" - dependencies: - any-promise: "npm:^1.0.0" - checksum: 486e1283a867440a904e36741ff1a177faa827cf94d69506f7e3ae4187b9afdf9ec368b3d8da225c192bfe2eb943f3f0080594156bf39f21b57cd1411e2e7f6d - languageName: node - linkType: hard - "throat@npm:^6.0.1": version: 6.0.2 resolution: "throat@npm:6.0.2" @@ -19415,13 +15826,6 @@ __metadata: languageName: node linkType: hard -"thunky@npm:^1.0.2": - version: 1.1.0 - resolution: "thunky@npm:1.1.0" - checksum: 825e3bd07ab3c9fd6f753c457a60957c628cacba5dd0656fd93b037c445e2828b43cf0805a9f2b16b0c5f5a10fd561206271acddb568df4f867f0aea0eb2772f - languageName: node - linkType: hard - "timed-out@npm:^4.0.0": version: 4.0.1 resolution: "timed-out@npm:4.0.1" @@ -19443,6 +15847,27 @@ __metadata: languageName: node linkType: hard +"tinybench@npm:^2.5.1": + version: 2.5.1 + resolution: "tinybench@npm:2.5.1" + checksum: f64ea142e048edc5010027eca36aff5aef74cd849ab9c6ba6e39475f911309694cb5a7ff894d47216ab4a3abcf4291e4bdc7a57796e96bf5b06e67452b5ac54d + languageName: node + linkType: hard + +"tinypool@npm:^0.8.1": + version: 0.8.1 + resolution: "tinypool@npm:0.8.1" + checksum: 3fae8acc22b7d0364eb202b64f61f0d8b10dcead6bef9b8fab1836857dcecd0e34fadc47ab309754ead2cb29bfa4b3467a9fc0daae23669b19ff403ae1364b5c + languageName: node + linkType: hard + +"tinyspy@npm:^2.2.0": + version: 2.2.0 + resolution: "tinyspy@npm:2.2.0" + checksum: bcc5a08c2dc7574d32e6dcc2e760ad95a3cf30249c22799815b6389179427c95573d27d2d965ebc5fca2b6d338c46678cd7337ea2a9cebacee3dc662176b07cb + languageName: node + linkType: hard + "titleize@npm:^3.0.0": version: 3.0.0 resolution: "titleize@npm:3.0.0" @@ -19498,13 +15923,6 @@ __metadata: languageName: node linkType: hard -"toidentifier@npm:1.0.1": - version: 1.0.1 - resolution: "toidentifier@npm:1.0.1" - checksum: 952c29e2a85d7123239b5cfdd889a0dde47ab0497f0913d70588f19c53f7e0b5327c95f4651e413c74b785147f9637b17410ac8c846d5d4a20a5a33eb6dc3a45 - languageName: node - linkType: hard - "totalist@npm:^3.0.0": version: 3.0.1 resolution: "totalist@npm:3.0.1" @@ -19524,15 +15942,6 @@ __metadata: languageName: node linkType: hard -"tr46@npm:^1.0.1": - version: 1.0.1 - resolution: "tr46@npm:1.0.1" - dependencies: - punycode: "npm:^2.1.0" - checksum: 6e80d75480cb6658f7f283c15f5f41c2d4dfa243ca99a0e1baf3de6cc823fc4c829f89782a7a11e029905781fccfea42d08d8a6674ba7948c7dbc595b6f27dd3 - languageName: node - linkType: hard - "tr46@npm:^2.1.0": version: 2.1.0 resolution: "tr46@npm:2.1.0" @@ -19588,20 +15997,6 @@ __metadata: languageName: node linkType: hard -"tryer@npm:^1.0.1": - version: 1.0.1 - resolution: "tryer@npm:1.0.1" - checksum: 4d869d187bd715136903b349f39d1cc3e5c19f742689a348190aff92408ee8dd3d7d9adc26dc9265c35d722731184c979ed316109b6c1239249a8707bb92cc49 - languageName: node - linkType: hard - -"ts-interface-checker@npm:^0.1.9": - version: 0.1.13 - resolution: "ts-interface-checker@npm:0.1.13" - checksum: 9f7346b9e25bade7a1050c001ec5a4f7023909c0e1644c5a96ae20703a131627f081479e6622a4ecee2177283d0069e651e507bedadd3904fc4010ab28ffce00 - languageName: node - linkType: hard - "ts-node@npm:^10.7.0": version: 10.9.1 resolution: "ts-node@npm:10.9.1" @@ -19651,6 +16046,20 @@ __metadata: languageName: node linkType: hard +"tsconfck@npm:^2.1.0": + version: 2.1.2 + resolution: "tsconfck@npm:2.1.2" + peerDependencies: + typescript: ^4.3.5 || ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + bin: + tsconfck: bin/tsconfck.js + checksum: 61df3b03b334a25eabb0a52e67a0c8d85770c631f2739db7703af8fdd102a2ebd598f1c851cc5fc6d6a59f2497a26c845be71c934ea16d838a3ff95a885034fb + languageName: node + linkType: hard + "tsconfig-paths@npm:^3.14.1": version: 3.14.2 resolution: "tsconfig-paths@npm:3.14.2" @@ -19715,7 +16124,7 @@ __metadata: languageName: node linkType: hard -"type-detect@npm:4.0.8": +"type-detect@npm:4.0.8, type-detect@npm:^4.0.0, type-detect@npm:^4.0.8": version: 4.0.8 resolution: "type-detect@npm:4.0.8" checksum: 5179e3b8ebc51fce1b13efb75fdea4595484433f9683bbc2dca6d99789dba4e602ab7922d2656f2ce8383987467f7770131d4a7f06a26287db0615d2f4c4ce7d @@ -19729,13 +16138,6 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^0.16.0": - version: 0.16.0 - resolution: "type-fest@npm:0.16.0" - checksum: fd8c47ccb90e9fe7bae8bfc0e116e200e096120200c1ab1737bf0bc9334b344dd4925f876ed698174ffd58cd179bb56a55467be96aedc22d5d72748eac428bc8 - languageName: node - linkType: hard - "type-fest@npm:^0.20.2": version: 0.20.2 resolution: "type-fest@npm:0.20.2" @@ -19759,16 +16161,6 @@ __metadata: languageName: node linkType: hard -"type-is@npm:~1.6.18": - version: 1.6.18 - resolution: "type-is@npm:1.6.18" - dependencies: - media-typer: "npm:0.3.0" - mime-types: "npm:~2.1.24" - checksum: 0bd9eeae5efd27d98fd63519f999908c009e148039d8e7179a074f105362d4fcc214c38b24f6cda79c87e563cbd12083a4691381ed28559220d4a10c2047bed4 - languageName: node - linkType: hard - "typed-array-buffer@npm:^1.0.0": version: 1.0.0 resolution: "typed-array-buffer@npm:1.0.0" @@ -19897,6 +16289,13 @@ __metadata: languageName: node linkType: hard +"ufo@npm:^1.3.0": + version: 1.3.2 + resolution: "ufo@npm:1.3.2" + checksum: 7133290d495e2b3f9416de69982019e81cff40d28cfd3a07accff1122ee52f23d9165e495a140a1b34b183244e88fc4001cb649591385ecbad1d3d0d2264fa6e + languageName: node + linkType: hard + "unbox-primitive@npm:^1.0.2": version: 1.0.2 resolution: "unbox-primitive@npm:1.0.2" @@ -20001,15 +16400,6 @@ __metadata: languageName: node linkType: hard -"unique-string@npm:^2.0.0": - version: 2.0.0 - resolution: "unique-string@npm:2.0.0" - dependencies: - crypto-random-string: "npm:^2.0.0" - checksum: 107cae65b0b618296c2c663b8e52e4d1df129e9af04ab38d53b4f2189e96da93f599c85f4589b7ffaf1a11c9327cbb8a34f04c71b8d4950d3e385c2da2a93828 - languageName: node - linkType: hard - "unist-util-generated@npm:^2.0.0": version: 2.0.1 resolution: "unist-util-generated@npm:2.0.1" @@ -20100,22 +16490,8 @@ __metadata: "universalify@npm:^2.0.0": version: 2.0.0 - resolution: "universalify@npm:2.0.0" - checksum: 2406a4edf4a8830aa6813278bab1f953a8e40f2f63a37873ffa9a3bc8f9745d06cc8e88f3572cb899b7e509013f7f6fcc3e37e8a6d914167a5381d8440518c44 - languageName: node - linkType: hard - -"unpipe@npm:1.0.0, unpipe@npm:~1.0.0": - version: 1.0.0 - resolution: "unpipe@npm:1.0.0" - checksum: 4fa18d8d8d977c55cb09715385c203197105e10a6d220087ec819f50cb68870f02942244f1017565484237f1f8c5d3cd413631b1ae104d3096f24fdfde1b4aa2 - languageName: node - linkType: hard - -"unquote@npm:~1.1.1": - version: 1.1.1 - resolution: "unquote@npm:1.1.1" - checksum: 71745867d09cba44ba2d26cb71d6dda7045a98b14f7405df4faaf2b0c90d24703ad027a9d90ba9a6e0d096de2c8d56f864fd03f1c0498c0b7a3990f73b4c8f5f + resolution: "universalify@npm:2.0.0" + checksum: 2406a4edf4a8830aa6813278bab1f953a8e40f2f63a37873ffa9a3bc8f9745d06cc8e88f3572cb899b7e509013f7f6fcc3e37e8a6d914167a5381d8440518c44 languageName: node linkType: hard @@ -20126,13 +16502,6 @@ __metadata: languageName: node linkType: hard -"upath@npm:^1.2.0": - version: 1.2.0 - resolution: "upath@npm:1.2.0" - checksum: ac07351d9e913eb7bc9bc0a17ed7d033a52575f0f2959e19726956c3e96f5d4d75aa6a7a777c4c9506e72372f58e06215e581f8dbff35611fc0a7b68ab4a6ddb - languageName: node - linkType: hard - "update-browserslist-db@npm:^1.0.11": version: 1.0.11 resolution: "update-browserslist-db@npm:1.0.11" @@ -20189,25 +16558,13 @@ __metadata: languageName: node linkType: hard -"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": +"util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 languageName: node linkType: hard -"util.promisify@npm:~1.0.0": - version: 1.0.1 - resolution: "util.promisify@npm:1.0.1" - dependencies: - define-properties: "npm:^1.1.3" - es-abstract: "npm:^1.17.2" - has-symbols: "npm:^1.0.1" - object.getownpropertydescriptors: "npm:^2.1.0" - checksum: f55ee259b22a9479cec4546b4724bb1e4b6c2d4fcd4627254a6483a63a609c9b223cb54fba084cd57b4d4105f7297f3197d57b30a1baee2e8e118fa7ae7e5750 - languageName: node - linkType: hard - "util@npm:^0.12.0": version: 0.12.5 resolution: "util@npm:0.12.5" @@ -20221,20 +16578,6 @@ __metadata: languageName: node linkType: hard -"utila@npm:~0.4": - version: 0.4.0 - resolution: "utila@npm:0.4.0" - checksum: b068d8cb140588da0d0c80ee3c14c6b75d3f68760d8a1c6c3908d0270e9e4056454ff16189586481b7382926c44674f6929d08e06eaf9ec8f62736cd900169c5 - languageName: node - linkType: hard - -"utils-merge@npm:1.0.1": - version: 1.0.1 - resolution: "utils-merge@npm:1.0.1" - checksum: 5d6949693d58cb2e636a84f3ee1c6e7b2f9c16cb1d42d0ecb386d8c025c69e327205aa1c69e2868cc06a01e5e20681fbba55a4e0ed0cce913d60334024eae798 - languageName: node - linkType: hard - "uuid@npm:^3.0.1, uuid@npm:^3.3.2": version: 3.4.0 resolution: "uuid@npm:3.4.0" @@ -20244,15 +16587,6 @@ __metadata: languageName: node linkType: hard -"uuid@npm:^8.3.2": - version: 8.3.2 - resolution: "uuid@npm:8.3.2" - bin: - uuid: dist/bin/uuid - checksum: 9a5f7aa1d6f56dd1e8d5f2478f855f25c645e64e26e347a98e98d95781d5ed20062d6cca2eecb58ba7c84bc3910be95c0451ef4161906abaab44f9cb68ffbdd1 - languageName: node - linkType: hard - "uuid@npm:^9.0.0": version: 9.0.0 resolution: "uuid@npm:9.0.0" @@ -20304,13 +16638,6 @@ __metadata: languageName: node linkType: hard -"vary@npm:~1.1.2": - version: 1.1.2 - resolution: "vary@npm:1.1.2" - checksum: 31389debef15a480849b8331b220782230b9815a8e0dbb7b9a8369559aed2e9a7800cd904d4371ea74f4c3527db456dc8e7ac5befce5f0d289014dbdf47b2242 - languageName: node - linkType: hard - "verror@npm:^1.10.0": version: 1.10.1 resolution: "verror@npm:1.10.1" @@ -20682,29 +17009,7 @@ __metadata: languageName: node linkType: hard -"victory-vendor@npm:^36.6.10": - version: 36.6.10 - resolution: "victory-vendor@npm:36.6.10" - dependencies: - "@types/d3-array": "npm:^3.0.3" - "@types/d3-ease": "npm:^3.0.0" - "@types/d3-interpolate": "npm:^3.0.1" - "@types/d3-scale": "npm:^4.0.2" - "@types/d3-shape": "npm:^3.1.0" - "@types/d3-time": "npm:^3.0.0" - "@types/d3-timer": "npm:^3.0.0" - d3-array: "npm:^3.1.6" - d3-ease: "npm:^3.0.1" - d3-interpolate: "npm:^3.0.1" - d3-scale: "npm:^4.0.2" - d3-shape: "npm:^3.1.0" - d3-time: "npm:^3.0.0" - d3-timer: "npm:^3.0.1" - checksum: 9672a3d3353fc83fab97ce857de2d0b92684de89e451c6b2ef07419a182b61b75061539311056b30bfab140f7110ec50d1bba905b4414e7664c596451135d44c - languageName: node - linkType: hard - -"victory-vendor@npm:^36.6.8": +"victory-vendor@npm:^36.6.10, victory-vendor@npm:^36.6.8": version: 36.6.11 resolution: "victory-vendor@npm:36.6.11" dependencies: @@ -20806,6 +17111,128 @@ __metadata: languageName: node linkType: hard +"vite-node@npm:1.0.4": + version: 1.0.4 + resolution: "vite-node@npm:1.0.4" + dependencies: + cac: "npm:^6.7.14" + debug: "npm:^4.3.4" + pathe: "npm:^1.1.1" + picocolors: "npm:^1.0.0" + vite: "npm:^5.0.0" + bin: + vite-node: vite-node.mjs + checksum: 0dd5b84322395296b5b85b9897460dcd9deb456fb7bef67ae2ddd120411080152d013cffe5e47d0a1098f75d2132e3d8726d033d459ddc7968e53c813e58507f + languageName: node + linkType: hard + +"vite-tsconfig-paths@npm:^4.2.2": + version: 4.2.2 + resolution: "vite-tsconfig-paths@npm:4.2.2" + dependencies: + debug: "npm:^4.1.1" + globrex: "npm:^0.1.2" + tsconfck: "npm:^2.1.0" + peerDependencies: + vite: "*" + peerDependenciesMeta: + vite: + optional: true + checksum: 790b9a48dd69b6e93bc41455ef0cc63fc8149b40a6d344784067fc2487b0a02f2d6a6d71396214dab7537a52c5e1ddfc88c363232fa707377db161d05e8f68cd + languageName: node + linkType: hard + +"vite@npm:^5.0.0, vite@npm:^5.0.10": + version: 5.0.10 + resolution: "vite@npm:5.0.10" + dependencies: + esbuild: "npm:^0.19.3" + fsevents: "npm:~2.3.3" + postcss: "npm:^8.4.32" + rollup: "npm:^4.2.0" + peerDependencies: + "@types/node": ^18.0.0 || >=20.0.0 + less: "*" + lightningcss: ^1.21.0 + sass: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + bin: + vite: bin/vite.js + checksum: 5421e9c7f8cf3152eace9a8b528269141635f367e5dc63c5f1fe2712a766d9757f8197733cf3f28be590afdd520130d38de90c955e6dba6edfa6f9056c1e5ea7 + languageName: node + linkType: hard + +"vitest@npm:^1.0.4": + version: 1.0.4 + resolution: "vitest@npm:1.0.4" + dependencies: + "@vitest/expect": "npm:1.0.4" + "@vitest/runner": "npm:1.0.4" + "@vitest/snapshot": "npm:1.0.4" + "@vitest/spy": "npm:1.0.4" + "@vitest/utils": "npm:1.0.4" + acorn-walk: "npm:^8.3.0" + cac: "npm:^6.7.14" + chai: "npm:^4.3.10" + debug: "npm:^4.3.4" + execa: "npm:^8.0.1" + local-pkg: "npm:^0.5.0" + magic-string: "npm:^0.30.5" + pathe: "npm:^1.1.1" + picocolors: "npm:^1.0.0" + std-env: "npm:^3.5.0" + strip-literal: "npm:^1.3.0" + tinybench: "npm:^2.5.1" + tinypool: "npm:^0.8.1" + vite: "npm:^5.0.0" + vite-node: "npm:1.0.4" + why-is-node-running: "npm:^2.2.2" + peerDependencies: + "@edge-runtime/vm": "*" + "@types/node": ^18.0.0 || >=20.0.0 + "@vitest/browser": ^1.0.0 + "@vitest/ui": ^1.0.0 + happy-dom: "*" + jsdom: "*" + peerDependenciesMeta: + "@edge-runtime/vm": + optional: true + "@types/node": + optional: true + "@vitest/browser": + optional: true + "@vitest/ui": + optional: true + happy-dom: + optional: true + jsdom: + optional: true + bin: + vitest: vitest.mjs + checksum: 3c86578f5bd47f4a6a208018cbb09623a400ccf328408804e2a20312b278f1ebc34f2ceabb05480a18226f2fede677c825290e0cce6db9fa99eac6b530dc3b41 + languageName: node + linkType: hard + "w3c-hr-time@npm:^1.0.2": version: 1.0.2 resolution: "w3c-hr-time@npm:1.0.2" @@ -20852,15 +17279,6 @@ __metadata: languageName: node linkType: hard -"wbuf@npm:^1.1.0, wbuf@npm:^1.7.3": - version: 1.7.3 - resolution: "wbuf@npm:1.7.3" - dependencies: - minimalistic-assert: "npm:^1.0.0" - checksum: c18b51c4e1fb19705c94b93c0cf093ba014606abceee949399d56074ef1863bf4897a8d884be24e8d224d18c9ce411cf6924006d0a5430492729af51256e067a - languageName: node - linkType: hard - "wcwidth@npm:^1.0.1": version: 1.0.1 resolution: "wcwidth@npm:1.0.1" @@ -20964,81 +17382,7 @@ __metadata: languageName: node linkType: hard -"webpack-dev-middleware@npm:^5.3.1": - version: 5.3.3 - resolution: "webpack-dev-middleware@npm:5.3.3" - dependencies: - colorette: "npm:^2.0.10" - memfs: "npm:^3.4.3" - mime-types: "npm:^2.1.31" - range-parser: "npm:^1.2.1" - schema-utils: "npm:^4.0.0" - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - checksum: 31a2f7a11e58a76bdcde1eb8da310b6643844d9b442f9916f48be5b46c103f23490c393c32a9af501ce68226fbb018b811f5a956635ed60a03f9481a4bcd6c76 - languageName: node - linkType: hard - -"webpack-dev-server@npm:^4.6.0": - version: 4.15.1 - resolution: "webpack-dev-server@npm:4.15.1" - dependencies: - "@types/bonjour": "npm:^3.5.9" - "@types/connect-history-api-fallback": "npm:^1.3.5" - "@types/express": "npm:^4.17.13" - "@types/serve-index": "npm:^1.9.1" - "@types/serve-static": "npm:^1.13.10" - "@types/sockjs": "npm:^0.3.33" - "@types/ws": "npm:^8.5.5" - ansi-html-community: "npm:^0.0.8" - bonjour-service: "npm:^1.0.11" - chokidar: "npm:^3.5.3" - colorette: "npm:^2.0.10" - compression: "npm:^1.7.4" - connect-history-api-fallback: "npm:^2.0.0" - default-gateway: "npm:^6.0.3" - express: "npm:^4.17.3" - graceful-fs: "npm:^4.2.6" - html-entities: "npm:^2.3.2" - http-proxy-middleware: "npm:^2.0.3" - ipaddr.js: "npm:^2.0.1" - launch-editor: "npm:^2.6.0" - open: "npm:^8.0.9" - p-retry: "npm:^4.5.0" - rimraf: "npm:^3.0.2" - schema-utils: "npm:^4.0.0" - selfsigned: "npm:^2.1.1" - serve-index: "npm:^1.9.1" - sockjs: "npm:^0.3.24" - spdy: "npm:^4.0.2" - webpack-dev-middleware: "npm:^5.3.1" - ws: "npm:^8.13.0" - peerDependencies: - webpack: ^4.37.0 || ^5.0.0 - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true - bin: - webpack-dev-server: bin/webpack-dev-server.js - checksum: fd6dfb6c71eb94696b21930ea4c2f25e95ba85fac1bbc15aa5d03af0a90712eba057901fa9131ed3e901665c95b2379208279aca61e9c48e7cda276c3caa95dd - languageName: node - linkType: hard - -"webpack-manifest-plugin@npm:^4.0.2": - version: 4.1.1 - resolution: "webpack-manifest-plugin@npm:4.1.1" - dependencies: - tapable: "npm:^2.0.0" - webpack-sources: "npm:^2.2.0" - peerDependencies: - webpack: ^4.44.2 || ^5.47.0 - checksum: d7b0fa36579bf7b6b093103b1484b7af1df76bc2691a08680b0d2cbbebfda6313749b63f19905e964f27c64f27c138bac0216d483df8acd41a1c5f0048fb123e - languageName: node - linkType: hard - -"webpack-merge@npm:^5.7.3, webpack-merge@npm:^5.8.0": +"webpack-merge@npm:^5.7.3": version: 5.9.0 resolution: "webpack-merge@npm:5.9.0" dependencies: @@ -21048,26 +17392,6 @@ __metadata: languageName: node linkType: hard -"webpack-sources@npm:^1.4.3": - version: 1.4.3 - resolution: "webpack-sources@npm:1.4.3" - dependencies: - source-list-map: "npm:^2.0.0" - source-map: "npm:~0.6.1" - checksum: 6237c5d1ba639a5d67bd1135c9bba487eadbd04c5e75a2849508013f13cb4b57387e689e0991c19a14a87085be7cc0b8dd1515422ae351f6e3f813ed100ccbb8 - languageName: node - linkType: hard - -"webpack-sources@npm:^2.2.0": - version: 2.3.1 - resolution: "webpack-sources@npm:2.3.1" - dependencies: - source-list-map: "npm:^2.0.1" - source-map: "npm:^0.6.1" - checksum: 0c4bb91f2899205648da25b68edf4495a360692af2c426cde98b188367478c93d5e33e2b08665e070ac0ece59ade8d52175da656a212b44701ce4a271ca66695 - languageName: node - linkType: hard - "webpack-sources@npm:^3.2.3": version: 3.2.3 resolution: "webpack-sources@npm:3.2.3" @@ -21075,7 +17399,7 @@ __metadata: languageName: node linkType: hard -"webpack@npm:^5, webpack@npm:^5.64.4, webpack@npm:^5.74.0, webpack@npm:^5.88.2": +"webpack@npm:^5, webpack@npm:^5.88.2": version: 5.88.2 resolution: "webpack@npm:5.88.2" dependencies: @@ -21112,24 +17436,6 @@ __metadata: languageName: node linkType: hard -"websocket-driver@npm:>=0.5.1, websocket-driver@npm:^0.7.4": - version: 0.7.4 - resolution: "websocket-driver@npm:0.7.4" - dependencies: - http-parser-js: "npm:>=0.5.1" - safe-buffer: "npm:>=5.1.0" - websocket-extensions: "npm:>=0.1.1" - checksum: 17197d265d5812b96c728e70fd6fe7d067471e121669768fe0c7100c939d997ddfc807d371a728556e24fc7238aa9d58e630ea4ff5fd4cfbb40f3d0a240ef32d - languageName: node - linkType: hard - -"websocket-extensions@npm:>=0.1.1": - version: 0.1.4 - resolution: "websocket-extensions@npm:0.1.4" - checksum: b5399b487d277c78cdd2aef63764b67764aa9899431e3a2fa272c6ad7236a0fb4549b411d89afa76d5afd664c39d62fc19118582dc937e5bb17deb694f42a0d1 - languageName: node - linkType: hard - "whatwg-encoding@npm:^1.0.5": version: 1.0.5 resolution: "whatwg-encoding@npm:1.0.5" @@ -21139,7 +17445,7 @@ __metadata: languageName: node linkType: hard -"whatwg-fetch@npm:>=0.10.0, whatwg-fetch@npm:^3.6.2": +"whatwg-fetch@npm:>=0.10.0": version: 3.6.18 resolution: "whatwg-fetch@npm:3.6.18" checksum: 05442d53fe108021e702f05cddb523d731c36d48058b2b2fe6b89d21f2484c05d469ed4a8906be4c3ea610ad094c340452ff29079317b3ad5ac89a7b65305add @@ -21163,17 +17469,6 @@ __metadata: languageName: node linkType: hard -"whatwg-url@npm:^7.0.0": - version: 7.1.0 - resolution: "whatwg-url@npm:7.1.0" - dependencies: - lodash.sortby: "npm:^4.7.0" - tr46: "npm:^1.0.1" - webidl-conversions: "npm:^4.0.2" - checksum: 769fd35838b4e50536ae08d836472e86adbedda1d5493ea34353c55468147e7868b91d2535b59e01a9e7331ab7e4cdfdf5490c279c045da23c327cf33e32f755 - languageName: node - linkType: hard - "whatwg-url@npm:^8.0.0, whatwg-url@npm:^8.4.0, whatwg-url@npm:^8.5.0": version: 8.7.0 resolution: "whatwg-url@npm:8.7.0" @@ -21230,7 +17525,7 @@ __metadata: languageName: node linkType: hard -"which@npm:^1.2.9, which@npm:^1.3.1": +"which@npm:^1.2.9": version: 1.3.1 resolution: "which@npm:1.3.1" dependencies: @@ -21252,6 +17547,18 @@ __metadata: languageName: node linkType: hard +"why-is-node-running@npm:^2.2.2": + version: 2.2.2 + resolution: "why-is-node-running@npm:2.2.2" + dependencies: + siginfo: "npm:^2.0.0" + stackback: "npm:0.0.2" + bin: + why-is-node-running: cli.js + checksum: f3582e0337f4b25537d492b1d40f00b978ce04b1d1eeea8f310bfa8aae8a7d11d118d672e2f0760c164ce3753a620a70aa29ff3620e340197624940cf9c08615 + languageName: node + linkType: hard + "wide-align@npm:^1.1.5": version: 1.1.5 resolution: "wide-align@npm:1.1.5" @@ -21275,211 +17582,6 @@ __metadata: languageName: node linkType: hard -"workbox-background-sync@npm:6.6.0": - version: 6.6.0 - resolution: "workbox-background-sync@npm:6.6.0" - dependencies: - idb: "npm:^7.0.1" - workbox-core: "npm:6.6.0" - checksum: fac828af1985de6f5e81715856c20592550ae2dfbf0014562b7a4eb75e31675f441085a42df9e16baf3ec0313f89173df2bc1159c9212b7e7c859bc36be19aea - languageName: node - linkType: hard - -"workbox-broadcast-update@npm:6.6.0": - version: 6.6.0 - resolution: "workbox-broadcast-update@npm:6.6.0" - dependencies: - workbox-core: "npm:6.6.0" - checksum: bdae00361dbd22d8728486abaa81db4c806c6b5f449c39149c1d6f62f21c4552f21f024e1aa67aa68ab365ae0705abfbccb042b91cc0e4533e9c87d6bf63a8bd - languageName: node - linkType: hard - -"workbox-build@npm:6.6.0": - version: 6.6.0 - resolution: "workbox-build@npm:6.6.0" - dependencies: - "@apideck/better-ajv-errors": "npm:^0.3.1" - "@babel/core": "npm:^7.11.1" - "@babel/preset-env": "npm:^7.11.0" - "@babel/runtime": "npm:^7.11.2" - "@rollup/plugin-babel": "npm:^5.2.0" - "@rollup/plugin-node-resolve": "npm:^11.2.1" - "@rollup/plugin-replace": "npm:^2.4.1" - "@surma/rollup-plugin-off-main-thread": "npm:^2.2.3" - ajv: "npm:^8.6.0" - common-tags: "npm:^1.8.0" - fast-json-stable-stringify: "npm:^2.1.0" - fs-extra: "npm:^9.0.1" - glob: "npm:^7.1.6" - lodash: "npm:^4.17.20" - pretty-bytes: "npm:^5.3.0" - rollup: "npm:^2.43.1" - rollup-plugin-terser: "npm:^7.0.0" - source-map: "npm:^0.8.0-beta.0" - stringify-object: "npm:^3.3.0" - strip-comments: "npm:^2.0.1" - tempy: "npm:^0.6.0" - upath: "npm:^1.2.0" - workbox-background-sync: "npm:6.6.0" - workbox-broadcast-update: "npm:6.6.0" - workbox-cacheable-response: "npm:6.6.0" - workbox-core: "npm:6.6.0" - workbox-expiration: "npm:6.6.0" - workbox-google-analytics: "npm:6.6.0" - workbox-navigation-preload: "npm:6.6.0" - workbox-precaching: "npm:6.6.0" - workbox-range-requests: "npm:6.6.0" - workbox-recipes: "npm:6.6.0" - workbox-routing: "npm:6.6.0" - workbox-strategies: "npm:6.6.0" - workbox-streams: "npm:6.6.0" - workbox-sw: "npm:6.6.0" - workbox-window: "npm:6.6.0" - checksum: ad7ef11dccc2558488de75e70747a52db6b80ddda1ef7bf3cce459d8ba3fe2076f8ffbb3ad4fc31451ba45c14bff46fa4b75fe945e5817637076a9438202962c - languageName: node - linkType: hard - -"workbox-cacheable-response@npm:6.6.0": - version: 6.6.0 - resolution: "workbox-cacheable-response@npm:6.6.0" - dependencies: - workbox-core: "npm:6.6.0" - checksum: 8864887ded61b36e8949ed415c7378e58b5fe64be808ceae27e670ff926a04f291798aaf0386b56540ea83c91e0ec6f3c33237981443531dd2749bcd9374914c - languageName: node - linkType: hard - -"workbox-core@npm:6.6.0": - version: 6.6.0 - resolution: "workbox-core@npm:6.6.0" - checksum: 575af5aa8c1e88129b4b56e1558e002aa349e86e505405e5a381f55c74e93c7362402e5e3992eaff61b6ebbe5795c6ab88e4703b41cdc337672df9203dff0391 - languageName: node - linkType: hard - -"workbox-expiration@npm:6.6.0": - version: 6.6.0 - resolution: "workbox-expiration@npm:6.6.0" - dependencies: - idb: "npm:^7.0.1" - workbox-core: "npm:6.6.0" - checksum: 0ad5ccd54d07b4e7a435329f623d9cb32a2a1f3cd54a9e73246dfa39c77c02203686eaa81e8313ab51b4c85e74531125cb29e8db0036770497e2ef3e2074354b - languageName: node - linkType: hard - -"workbox-google-analytics@npm:6.6.0": - version: 6.6.0 - resolution: "workbox-google-analytics@npm:6.6.0" - dependencies: - workbox-background-sync: "npm:6.6.0" - workbox-core: "npm:6.6.0" - workbox-routing: "npm:6.6.0" - workbox-strategies: "npm:6.6.0" - checksum: 3c649c96ef22720fac6b1c59f7966f9976c087d78f5efe4acc2ade3b41e31afff64f6e7996e9cf66a534c26d9f5e8565f25113f5894489117667eb52e0a0fde7 - languageName: node - linkType: hard - -"workbox-navigation-preload@npm:6.6.0": - version: 6.6.0 - resolution: "workbox-navigation-preload@npm:6.6.0" - dependencies: - workbox-core: "npm:6.6.0" - checksum: da499d23dc45f8b2d848c36cd179c6b63f6444e85ff384e03a21351b9844208a8c3ea50890ba1fcc4faf6e2b20cfcc1b11c96a139bfee089c8d3c1b570b0c9ff - languageName: node - linkType: hard - -"workbox-precaching@npm:6.6.0": - version: 6.6.0 - resolution: "workbox-precaching@npm:6.6.0" - dependencies: - workbox-core: "npm:6.6.0" - workbox-routing: "npm:6.6.0" - workbox-strategies: "npm:6.6.0" - checksum: 0990312fc2d71e4a4cdffd832939c7fae4a74847ec2a89a0857a7a0bf29a01ca07e45f3b5c0158e2e9dadd63e437b75b28d9a984dc8f5e5bf0d7cf4f980deee0 - languageName: node - linkType: hard - -"workbox-range-requests@npm:6.6.0": - version: 6.6.0 - resolution: "workbox-range-requests@npm:6.6.0" - dependencies: - workbox-core: "npm:6.6.0" - checksum: 9418035fce36f4a940e0ccae41cbc590c8e51bd3ed975b172d2f92fe5e364c5181030577c1c72a6b4f1730a68059ad4f6e99289063092ec2a88aa92fdc8b314f - languageName: node - linkType: hard - -"workbox-recipes@npm:6.6.0": - version: 6.6.0 - resolution: "workbox-recipes@npm:6.6.0" - dependencies: - workbox-cacheable-response: "npm:6.6.0" - workbox-core: "npm:6.6.0" - workbox-expiration: "npm:6.6.0" - workbox-precaching: "npm:6.6.0" - workbox-routing: "npm:6.6.0" - workbox-strategies: "npm:6.6.0" - checksum: 8c2a84f8eaf430e1a0e841ff340fcbb240d4ce0d02355228bc02c571859d8a660c3b731f47e5b89600b33d278e557e96e49bf4a2e57134be70dd1dc230bf35bf - languageName: node - linkType: hard - -"workbox-routing@npm:6.6.0": - version: 6.6.0 - resolution: "workbox-routing@npm:6.6.0" - dependencies: - workbox-core: "npm:6.6.0" - checksum: 0a7dcb0e881c1b79777b239a21b83eb0e7809296e59a0159ba17c7560b100e61e475cd1786ac040360058d43da32062f5356316d2276e13a247cbbbf15a1b135 - languageName: node - linkType: hard - -"workbox-strategies@npm:6.6.0": - version: 6.6.0 - resolution: "workbox-strategies@npm:6.6.0" - dependencies: - workbox-core: "npm:6.6.0" - checksum: 0800e611e46c256c4a4c81e48da23aeccac15bd78d61a67403c4fa9270df410300e505b4f23b19dae0865ea69b5b3248646b1a537598e93c532630e84df52a8f - languageName: node - linkType: hard - -"workbox-streams@npm:6.6.0": - version: 6.6.0 - resolution: "workbox-streams@npm:6.6.0" - dependencies: - workbox-core: "npm:6.6.0" - workbox-routing: "npm:6.6.0" - checksum: d11622eae28c394c7c7cfa760055cd68cfa909393bc5bd33d1d3bfff30d764d61a02034752e1c4e8896c2aef26d701effc59e919e4740d08ec78537daf4c0c77 - languageName: node - linkType: hard - -"workbox-sw@npm:6.6.0": - version: 6.6.0 - resolution: "workbox-sw@npm:6.6.0" - checksum: 9bdba15d7a92f409f253591ab4332239a238bc7b536ef3708984815fa731a451fcc75aaf27b6bfd9d1765983659695f918e9710fd578e58fb6835f0799f53a08 - languageName: node - linkType: hard - -"workbox-webpack-plugin@npm:^6.4.1": - version: 6.6.0 - resolution: "workbox-webpack-plugin@npm:6.6.0" - dependencies: - fast-json-stable-stringify: "npm:^2.1.0" - pretty-bytes: "npm:^5.4.1" - upath: "npm:^1.2.0" - webpack-sources: "npm:^1.4.3" - workbox-build: "npm:6.6.0" - peerDependencies: - webpack: ^4.4.0 || ^5.9.0 - checksum: 34a0236a73488c80597d6cb3a5e8ec3f295c34b75ad1ccd9a1ea5a1ead678b5993a19ae068d29ff34c69f367260e2d0f285b124271a98688daad7e5bc042b71c - languageName: node - linkType: hard - -"workbox-window@npm:6.6.0": - version: 6.6.0 - resolution: "workbox-window@npm:6.6.0" - dependencies: - "@types/trusted-types": "npm:^2.0.2" - workbox-core: "npm:6.6.0" - checksum: 2d6508c9455644a8ff2a48633366e0591ecd00ea8627e3c277803b47a5f67dc04d08dd21b651919644b06a3a6535cff1b07f7692addee70624d77d47b16cdcb6 - languageName: node - linkType: hard - "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": version: 7.0.0 resolution: "wrap-ansi@npm:7.0.0" @@ -21541,31 +17643,6 @@ __metadata: languageName: node linkType: hard -"ws@npm:8.13.0, ws@npm:^8.13.0": - version: 8.13.0 - resolution: "ws@npm:8.13.0" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ">=5.0.2" - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 1769532b6fdab9ff659f0b17810e7501831d34ecca23fd179ee64091dd93a51f42c59f6c7bb4c7a384b6c229aca8076fb312aa35626257c18081511ef62a161d - languageName: node - linkType: hard - -"ws@npm:^4.1.0": - version: 4.1.0 - resolution: "ws@npm:4.1.0" - dependencies: - async-limiter: "npm:~1.0.0" - safe-buffer: "npm:~5.1.0" - checksum: afdb3c55defe9ff39474fd769f7a7c718e3fa868b8bc945546bdcb1277ee0bc086c19ff688e551fdcd2a2359218724f9088acfad4bb05a6c7afc2068ea9ec144 - languageName: node - linkType: hard - "ws@npm:^7.3.1, ws@npm:^7.4.6": version: 7.5.9 resolution: "ws@npm:7.5.9" @@ -21661,20 +17738,13 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^1.10.0, yaml@npm:^1.10.2, yaml@npm:^1.7.2": +"yaml@npm:^1.10.0": version: 1.10.2 resolution: "yaml@npm:1.10.2" checksum: e088b37b4d4885b70b50c9fa1b7e54bd2e27f5c87205f9deaffd1fb293ab263d9c964feadb9817a7b129a5bf30a06582cb08750f810568ecc14f3cdbabb79cb3 languageName: node linkType: hard -"yaml@npm:^2.1.1": - version: 2.3.2 - resolution: "yaml@npm:2.3.2" - checksum: dba78b314c4b713a7dfa4412c88c1168ffe41fe26cdd4363cb3389194765895415b800f5a2d1a5bdfb0b2e31f1ad689f8e8f9cf78153f24142b68172e72afc95 - languageName: node - linkType: hard - "yargs-parser@npm:^20.2.2": version: 20.2.9 resolution: "yargs-parser@npm:20.2.9" @@ -21713,7 +17783,7 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^17.0.1, yargs@npm:^17.6.2": +"yargs@npm:^17.0.1, yargs@npm:^17.5.1, yargs@npm:^17.6.2": version: 17.7.2 resolution: "yargs@npm:17.7.2" dependencies: @@ -21773,6 +17843,13 @@ __metadata: languageName: node linkType: hard +"yocto-queue@npm:^1.0.0": + version: 1.0.0 + resolution: "yocto-queue@npm:1.0.0" + checksum: 2cac84540f65c64ccc1683c267edce396b26b1e931aa429660aefac8fbe0188167b7aee815a3c22fa59a28a58d898d1a2b1825048f834d8d629f4c2a5d443801 + languageName: node + linkType: hard + "zwitch@npm:^2.0.0": version: 2.0.4 resolution: "zwitch@npm:2.0.4"