From e2306f49786517ebd5e1d53f91d307b2d192fe65 Mon Sep 17 00:00:00 2001 From: Nathan Arthur Date: Mon, 12 Jun 2023 13:43:43 -0400 Subject: [PATCH 1/3] fix autodialer tests --- apps/autodial/functions/.eslintrc.js | 20 +- apps/autodial/functions/package.json | 3 + apps/autodial/functions/src/test/helpers.ts | 17 +- apps/autodial/package.json | 14 +- apps/autodial/src/App.spec.tsx | 22 +- .../src/component/molecule/goalRow.tsx | 1 + apps/autodial/src/lib/dial.spec.ts | 1 - apps/autodial/tsconfig.json | 11 +- pnpm-lock.yaml | 312 ++++++++++++------ 9 files changed, 257 insertions(+), 144 deletions(-) diff --git a/apps/autodial/functions/.eslintrc.js b/apps/autodial/functions/.eslintrc.js index 1736469..6673eba 100644 --- a/apps/autodial/functions/.eslintrc.js +++ b/apps/autodial/functions/.eslintrc.js @@ -9,7 +9,6 @@ module.exports = { "plugin:import/errors", "plugin:import/warnings", "plugin:import/typescript", - "google", "plugin:@typescript-eslint/recommended", ], parser: "@typescript-eslint/parser", @@ -20,19 +19,18 @@ module.exports = { ignorePatterns: [ "/lib/**/*", // Ignore built files. ], - plugins: [ - "@typescript-eslint", - "import", - ], + plugins: ["@typescript-eslint", "import"], rules: { - "quotes": ["error", "double"], + quotes: ["error", "double"], "import/no-unresolved": 0, "require-jsdoc": 0, }, - overrides: [{ - files: "**/*.spec.+(ts|tsx)", - rules: { - "@typescript-eslint/no-explicit-any": "off", + overrides: [ + { + files: "**/*.spec.+(ts|tsx)", + rules: { + "@typescript-eslint/no-explicit-any": "off", + }, }, - }], + ], }; diff --git a/apps/autodial/functions/package.json b/apps/autodial/functions/package.json index 01ee3c5..3012bf9 100644 --- a/apps/autodial/functions/package.json +++ b/apps/autodial/functions/package.json @@ -18,6 +18,9 @@ "displayName": "functions", "preset": "ts-jest", "testEnvironment": "node", + "testEnvironmentOptions": { + "url": "http://localhost/" + }, "resetMocks": true, "roots": [ "" diff --git a/apps/autodial/functions/src/test/helpers.ts b/apps/autodial/functions/src/test/helpers.ts index bbc491f..51b4bf9 100644 --- a/apps/autodial/functions/src/test/helpers.ts +++ b/apps/autodial/functions/src/test/helpers.ts @@ -1,4 +1,3 @@ -import {expect} from "@jest/globals"; import Matchers = jest.Matchers; import { fillroadall, @@ -7,9 +6,10 @@ import { fuzzyEquals, Datapoint, Goal, - GoalVerbose, DenseSegment, + GoalVerbose, + DenseSegment, } from "../../../src/lib"; -import {setLogger} from "react-query"; +import { setLogger } from "react-query"; interface MyMatchers extends Matchers { toFuzzyEqual(expected: number): R; @@ -20,14 +20,12 @@ expect.extend({ const pass = fuzzyEquals(expected, received); if (pass) { return { - message: () => - `expected ${received} not to fuzzy equal ${expected}`, + message: () => `expected ${received} not to fuzzy equal ${expected}`, pass: true, }; } else { return { - message: () => - `expected ${received} to fuzzy equal ${expected}`, + message: () => `expected ${received} to fuzzy equal ${expected}`, pass: false, }; } @@ -37,8 +35,7 @@ expect.extend({ export const e = expect as never as (actual: T) => MyMatchers; type DatapointInput = Omit & { timestamp?: number }; -export type GoalInput = Partial - & { datapoints?: DatapointInput[] } +export type GoalInput = Partial & { datapoints?: DatapointInput[] }; function getRate(g: GoalInput, mathishard: DenseSegment | undefined): number { if (g.rate !== undefined) { @@ -82,7 +79,7 @@ export function makeGoal(g: GoalInput = {}): GoalVerbose { } export async function withMutedReactQueryLogger( - func: () => Promise + func: () => Promise ): Promise { const noop = () => { // do nothing diff --git a/apps/autodial/package.json b/apps/autodial/package.json index bb4ddcb..cc0902e 100644 --- a/apps/autodial/package.json +++ b/apps/autodial/package.json @@ -10,7 +10,7 @@ "@mui/lab": "^5.0.0-alpha.63", "@mui/material": "^5.2.7", "@netlify/functions": "^0.7.2", - "@testing-library/jest-dom": "^5.11.4", + "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^11.1.0", "@testing-library/user-event": "^12.1.10", "@types/node": "^12.0.0", @@ -45,7 +45,10 @@ { "displayName": "web", "preset": "ts-jest", - "testEnvironment": "node", + "testEnvironment": "jest-environment-jsdom", + "testEnvironmentOptions": { + "url": "http://localhost/" + }, "resetMocks": true, "moduleNameMapper": { "\\.(css|jpg|jpeg|png|gif|eot|otf|webp|svg)$": "/src/__mocks__/fileMock.ts" @@ -78,8 +81,10 @@ ] }, "devDependencies": { - "@types/jest": "^26.0.23", + "@types/jest": "^29.5.2", + "@types/lodash": "^4.14.195", "@types/node-fetch": "^2.5.10", + "@types/testing-library__jest-dom": "^5.14.5", "@typescript-eslint/eslint-plugin": "^4.28.0", "@typescript-eslint/parser": "^4.28.0", "eslint": "^7.29.0", @@ -88,9 +93,10 @@ "eslint-plugin-import": "^2.23.4", "firebase-functions-test": "^0.3.0", "jest": "^29.5.0", + "jest-environment-jsdom": "^29.5.0", "netlify-cli": "^10.6.0", "prettier": "2.7.1", - "ts-jest": "^26.5.5", + "ts-jest": "^29.1.0", "typescript": "^4.3.4" } } diff --git a/apps/autodial/src/App.spec.tsx b/apps/autodial/src/App.spec.tsx index 7e86cde..6aea2f1 100644 --- a/apps/autodial/src/App.spec.tsx +++ b/apps/autodial/src/App.spec.tsx @@ -1,7 +1,3 @@ -/** - * @jest-environment jsdom - */ - import React from "react"; import { waitFor, screen } from "@testing-library/react"; import App from "./App"; @@ -223,23 +219,23 @@ describe("Home page", () => { }); it("displays min value", async () => { + setNow(2009, 3, 1); + loadGoals([{ slug: "the_slug", rate: 3, fineprint: "#autodialMin=1.5" }]); - const { getByText } = await r(); + r(); - await waitFor(() => { - expect(getByText("1.5/d")).toBeInTheDocument(); - }); + expect(await screen.findByText("1.5/d")).toBeInTheDocument(); }); it("displays positive value", async () => { - loadGoals([{ slug: "the_slug", rate: 3, fineprint: "#autodialMax=1" }]); + setNow(2009, 3, 1); - const { getByText } = await r(); + loadGoals([{ slug: "the_slug", rate: 3, fineprint: "#autodialMax=5" }]); - await waitFor(() => { - expect(getByText("1/d")).toBeInTheDocument(); - }); + r(); + + expect(await screen.findByText("5/d")).toBeInTheDocument(); }); it("removes login button when data loads successfully", async () => { diff --git a/apps/autodial/src/component/molecule/goalRow.tsx b/apps/autodial/src/component/molecule/goalRow.tsx index 4a47e2a..fffc89a 100644 --- a/apps/autodial/src/component/molecule/goalRow.tsx +++ b/apps/autodial/src/component/molecule/goalRow.tsx @@ -56,6 +56,7 @@ export default function GoalRow({ goal, username }: Props): JSX.Element { setPendingRate(newRate === null ? false : newRate); setArpn(arpn); } catch (e: unknown) { + console.error(e); if (e instanceof Error) { setError(e.message); } else { diff --git a/apps/autodial/src/lib/dial.spec.ts b/apps/autodial/src/lib/dial.spec.ts index fac31e7..5c80350 100644 --- a/apps/autodial/src/lib/dial.spec.ts +++ b/apps/autodial/src/lib/dial.spec.ts @@ -1,5 +1,4 @@ import { dial } from "./dial"; -import { describe, it } from "@jest/globals"; import { e, makeGoal } from "../../functions/src/test/helpers"; import { parseDate } from "./time"; import { setNow } from "./test/helpers"; diff --git a/apps/autodial/tsconfig.json b/apps/autodial/tsconfig.json index 6878d72..ec59e96 100644 --- a/apps/autodial/tsconfig.json +++ b/apps/autodial/tsconfig.json @@ -1,11 +1,7 @@ { "compilerOptions": { "target": "es5", - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], + "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "skipLibCheck": true, "esModuleInterop": true, @@ -21,8 +17,5 @@ "jsx": "react-jsx", "baseUrl": "." }, - "include": [ - "src", - "jest.config.js", - ], + "include": ["src", "jest.config.js", "./src/setupTests.ts"] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cc3e4af..c817c3f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,14 +22,16 @@ importers: '@mui/lab': ^5.0.0-alpha.63 '@mui/material': ^5.2.7 '@netlify/functions': ^0.7.2 - '@testing-library/jest-dom': ^5.11.4 + '@testing-library/jest-dom': ^5.16.5 '@testing-library/react': ^11.1.0 '@testing-library/user-event': ^12.1.10 - '@types/jest': ^26.0.23 + '@types/jest': ^29.5.2 + '@types/lodash': ^4.14.195 '@types/node': ^12.0.0 '@types/node-fetch': ^2.5.10 '@types/react': ^17.0.0 '@types/react-dom': ^17.0.0 + '@types/testing-library__jest-dom': ^5.14.5 '@typescript-eslint/eslint-plugin': ^4.28.0 '@typescript-eslint/parser': ^4.28.0 axios: ^0.24.0 @@ -42,6 +44,7 @@ importers: firebase-functions: ^3.14.1 firebase-functions-test: ^0.3.0 jest: ^29.5.0 + jest-environment-jsdom: ^29.5.0 jest-extended: ^0.11.5 lodash: ^4.17.21 moment: ^2.29.1 @@ -52,7 +55,7 @@ importers: react-dom: ^17.0.2 react-query: ^3.34.16 react-scripts: 4.0.3 - ts-jest: ^26.5.5 + ts-jest: ^29.1.0 ts-loader: 8.2.0 typescript: ^4.3.4 web-vitals: ^1.0.1 @@ -81,12 +84,14 @@ importers: react: 17.0.2 react-dom: 17.0.2_react@17.0.2 react-query: 3.39.3_sfoxds7t5ydpegc3knd667wn6m - react-scripts: 4.0.3_oatgdhaahtizs2uezdzbohxvne + react-scripts: 4.0.3_l5hyvwnnskx7g27xcaxotzm7m4 ts-loader: 8.2.0_ljwpxsohotkibzkqavx4ej2joq web-vitals: 1.1.2 devDependencies: - '@types/jest': 26.0.24 + '@types/jest': 29.5.2 + '@types/lodash': 4.14.195 '@types/node-fetch': 2.6.4 + '@types/testing-library__jest-dom': 5.14.6 '@typescript-eslint/eslint-plugin': 4.33.0_s2qqtxhzmb7vugvfoyripfgp7i '@typescript-eslint/parser': 4.33.0_jofidmxrjzhj7l6vknpw5ecvfe eslint: 7.32.0 @@ -95,9 +100,10 @@ importers: eslint-plugin-import: 2.27.5_ffi3uiz42rv3jyhs6cr7p7qqry firebase-functions-test: 0.3.3_bjf6tdgy4bxjdyfzeh7uonmcge jest: 29.5.0_@types+node@12.20.55 + jest-environment-jsdom: 29.5.0 netlify-cli: 10.18.0 prettier: 2.7.1 - ts-jest: 26.5.6_doipufordlnvh5g4adbwayvyvy + ts-jest: 29.1.0_ghzph5mwxocot4qig36mps7xdm typescript: 4.9.5 apps/bm: @@ -491,7 +497,6 @@ packages: source-map: 0.5.7 transitivePeerDependencies: - supports-color - dev: false /@babel/core/7.21.8: resolution: {integrity: sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==} @@ -2825,10 +2830,10 @@ packages: react-scripts: ^4.0.0 dependencies: cosmiconfig: 7.1.0 - cosmiconfig-typescript-loader: 1.0.9_prfxyxghnskheluimpb6dvby4q + cosmiconfig-typescript-loader: 1.0.9_5kbyudrvu2mmx7hr4ww4jk565e cross-spawn: 7.0.3 lodash: 4.17.21 - react-scripts: 4.0.3_oatgdhaahtizs2uezdzbohxvne + react-scripts: 4.0.3_l5hyvwnnskx7g27xcaxotzm7m4 semver: 7.5.1 webpack-merge: 4.2.2 transitivePeerDependencies: @@ -4273,7 +4278,7 @@ packages: engines: {node: ^8.13.0 || >=10.10.0} dependencies: '@grpc/proto-loader': 0.7.7 - '@types/node': 16.18.32 + '@types/node': 20.2.3 optional: true /@grpc/grpc-js/1.7.3: @@ -4289,7 +4294,7 @@ packages: engines: {node: ^8.13.0 || >=10.10.0} dependencies: '@grpc/proto-loader': 0.7.7 - '@types/node': 16.18.32 + '@types/node': 20.2.3 dev: false /@grpc/proto-loader/0.6.13: @@ -4417,7 +4422,7 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 16.18.32 + '@types/node': 20.2.3 chalk: 4.1.2 jest-message-util: 26.6.2 jest-util: 26.6.2 @@ -4429,7 +4434,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 16.18.32 + '@types/node': 20.2.3 chalk: 4.1.2 jest-message-util: 29.5.0 jest-util: 29.5.0 @@ -4445,7 +4450,7 @@ packages: '@jest/test-result': 26.6.2 '@jest/transform': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 16.18.32 + '@types/node': 20.2.3 ansi-escapes: 4.3.2 chalk: 4.1.2 exit: 0.1.2 @@ -4524,7 +4529,7 @@ packages: dependencies: '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 16.18.32 + '@types/node': 20.2.3 jest-mock: 26.6.2 dev: false @@ -4534,7 +4539,7 @@ packages: dependencies: '@jest/fake-timers': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 16.18.32 + '@types/node': 20.2.3 jest-mock: 29.5.0 dev: true @@ -4560,7 +4565,7 @@ packages: dependencies: '@jest/types': 26.6.2 '@sinonjs/fake-timers': 6.0.1 - '@types/node': 16.18.32 + '@types/node': 20.2.3 jest-message-util: 26.6.2 jest-mock: 26.6.2 jest-util: 26.6.2 @@ -4572,7 +4577,7 @@ packages: dependencies: '@jest/types': 29.5.0 '@sinonjs/fake-timers': 10.2.0 - '@types/node': 16.18.32 + '@types/node': 20.2.3 jest-message-util: 29.5.0 jest-mock: 29.5.0 jest-util: 29.5.0 @@ -4648,7 +4653,7 @@ packages: '@jest/transform': 29.5.0 '@jest/types': 29.5.0 '@jridgewell/trace-mapping': 0.3.18 - '@types/node': 16.18.32 + '@types/node': 20.2.3 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -4830,9 +4835,10 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 16.18.32 + '@types/node': 20.2.3 '@types/yargs': 15.0.15 chalk: 4.1.2 + dev: false /@jest/types/27.5.1: resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==} @@ -4840,7 +4846,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 16.18.32 + '@types/node': 20.2.3 '@types/yargs': 16.0.5 chalk: 4.1.2 dev: true @@ -6816,6 +6822,7 @@ packages: /@sinonjs/fake-timers/10.2.0: resolution: {integrity: sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg==} + deprecated: Use version 10.1.0. Version 10.2.0 has potential breaking issues dependencies: '@sinonjs/commons': 3.0.0 dev: true @@ -7319,14 +7326,14 @@ packages: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: '@types/connect': 3.4.35 - '@types/node': 16.18.32 + '@types/node': 20.2.3 /@types/cacheable-request/6.0.3: resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} dependencies: '@types/http-cache-semantics': 4.0.1 '@types/keyv': 3.1.4 - '@types/node': 16.18.32 + '@types/node': 20.2.3 '@types/responselike': 1.0.0 dev: true @@ -7343,7 +7350,7 @@ packages: /@types/connect/3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 16.18.32 + '@types/node': 20.2.3 /@types/cors/2.8.13: resolution: {integrity: sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==} @@ -7353,7 +7360,7 @@ packages: /@types/decompress/4.2.4: resolution: {integrity: sha512-/C8kTMRTNiNuWGl5nEyKbPiMv6HA+0RbEXzFhFBEzASM6+oa4tJro9b8nj7eRlOFfuLdzUU+DS/GPDlvvzMOhA==} dependencies: - '@types/node': 16.18.32 + '@types/node': 20.2.3 dev: true /@types/download/8.0.2: @@ -7361,7 +7368,7 @@ packages: dependencies: '@types/decompress': 4.2.4 '@types/got': 9.6.12 - '@types/node': 16.18.32 + '@types/node': 20.2.3 dev: true /@types/eslint/7.29.0: @@ -7380,7 +7387,7 @@ packages: /@types/express-serve-static-core/4.17.35: resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==} dependencies: - '@types/node': 16.18.32 + '@types/node': 20.2.3 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 '@types/send': 0.17.1 @@ -7404,12 +7411,12 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 16.18.32 + '@types/node': 20.2.3 /@types/got/9.6.12: resolution: {integrity: sha512-X4pj/HGHbXVLqTpKjA2ahI4rV/nNBc9mGO2I/0CgAra+F2dKgMXnENv2SRpemScBzBAI4vMelIVYViQxlSE6xA==} dependencies: - '@types/node': 16.18.32 + '@types/node': 20.2.3 '@types/tough-cookie': 4.0.2 form-data: 2.5.1 dev: true @@ -7417,7 +7424,7 @@ packages: /@types/graceful-fs/4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: - '@types/node': 16.18.32 + '@types/node': 20.2.3 /@types/history/4.7.11: resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} @@ -7434,7 +7441,7 @@ packages: /@types/http-proxy/1.17.11: resolution: {integrity: sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==} dependencies: - '@types/node': 16.18.32 + '@types/node': 20.2.3 dev: true /@types/humanize-duration/3.27.1: @@ -7460,19 +7467,20 @@ packages: dependencies: '@types/istanbul-lib-report': 3.0.0 - /@types/jest/26.0.24: - resolution: {integrity: sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w==} - dependencies: - jest-diff: 26.6.2 - pretty-format: 26.6.2 - dev: true - - /@types/jest/29.5.1: - resolution: {integrity: sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ==} + /@types/jest/29.5.2: + resolution: {integrity: sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg==} dependencies: expect: 29.5.0 pretty-format: 29.5.0 + /@types/jsdom/20.0.1: + resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} + dependencies: + '@types/node': 20.2.3 + '@types/tough-cookie': 4.0.2 + parse5: 7.1.2 + dev: true + /@types/json-schema/7.0.11: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} @@ -7482,16 +7490,16 @@ packages: /@types/jsonwebtoken/8.5.9: resolution: {integrity: sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==} dependencies: - '@types/node': 16.18.32 + '@types/node': 20.2.3 /@types/keyv/3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 16.18.32 + '@types/node': 20.2.3 dev: true - /@types/lodash/4.14.194: - resolution: {integrity: sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==} + /@types/lodash/4.14.195: + resolution: {integrity: sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg==} dev: true /@types/long/4.0.2: @@ -7621,7 +7629,7 @@ packages: /@types/resolve/0.0.8: resolution: {integrity: sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==} dependencies: - '@types/node': 16.18.32 + '@types/node': 20.2.3 dev: false /@types/resolve/1.17.1: @@ -7633,7 +7641,7 @@ packages: /@types/responselike/1.0.0: resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} dependencies: - '@types/node': 16.18.32 + '@types/node': 20.2.3 dev: true /@types/retry/0.12.1: @@ -7651,13 +7659,13 @@ packages: resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} dependencies: '@types/mime': 1.3.2 - '@types/node': 16.18.32 + '@types/node': 20.2.3 /@types/serve-static/1.15.1: resolution: {integrity: sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==} dependencies: '@types/mime': 3.0.1 - '@types/node': 16.18.32 + '@types/node': 20.2.3 /@types/source-list-map/0.1.2: resolution: {integrity: sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==} @@ -7677,7 +7685,7 @@ packages: /@types/testing-library__jest-dom/5.14.6: resolution: {integrity: sha512-FkHXCb+ikSoUP4Y4rOslzTdX5sqYwMxfefKh1GmZ8ce1GOkEHntSp6b5cGadmNfp5e4BMEWOMx+WSKd5/MqlDA==} dependencies: - '@types/jest': 29.5.1 + '@types/jest': 29.5.2 /@types/tough-cookie/4.0.2: resolution: {integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==} @@ -7704,7 +7712,7 @@ packages: /@types/webpack-sources/3.2.0: resolution: {integrity: sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==} dependencies: - '@types/node': 16.18.32 + '@types/node': 20.2.3 '@types/source-list-map': 0.1.2 source-map: 0.7.4 dev: false @@ -7712,7 +7720,7 @@ packages: /@types/webpack/4.41.33: resolution: {integrity: sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g==} dependencies: - '@types/node': 16.18.32 + '@types/node': 20.2.3 '@types/tapable': 1.0.8 '@types/uglify-js': 3.17.1 '@types/webpack-sources': 3.2.0 @@ -10880,11 +10888,12 @@ packages: object-assign: 4.1.1 vary: 1.1.2 - /cosmiconfig-typescript-loader/1.0.9_prfxyxghnskheluimpb6dvby4q: + /cosmiconfig-typescript-loader/1.0.9_5kbyudrvu2mmx7hr4ww4jk565e: resolution: {integrity: sha512-tRuMRhxN4m1Y8hP9SNYfz7jRwt8lZdWxdjg/ohg5esKmsndJIn4yT96oJVcf5x0eA11taXl+sIp+ielu529k6g==} engines: {node: '>=12', npm: '>=6'} peerDependencies: '@types/node': '*' + cosmiconfig: '>=7' typescript: '>=3' dependencies: '@types/node': 12.20.55 @@ -11103,7 +11112,7 @@ packages: postcss-modules-values: 3.0.0 postcss-value-parser: 4.2.0 schema-utils: 2.7.1 - semver: 7.3.2 + semver: 7.5.1 webpack: 4.44.2 dev: false @@ -11269,18 +11278,20 @@ packages: /cssom/0.3.8: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - dev: false /cssom/0.4.4: resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} dev: false + /cssom/0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + dev: true + /cssstyle/2.3.0: resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} engines: {node: '>=8'} dependencies: cssom: 0.3.8 - dev: false /cssstyle/3.0.0: resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==} @@ -11320,6 +11331,15 @@ packages: whatwg-url: 8.7.0 dev: false + /data-urls/3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} + dependencies: + abab: 2.0.6 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + dev: true + /data-urls/4.0.0: resolution: {integrity: sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==} engines: {node: '>=14'} @@ -11850,6 +11870,7 @@ packages: /diff-sequences/26.6.2: resolution: {integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==} engines: {node: '>= 10.14.2'} + dev: false /diff-sequences/29.4.3: resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==} @@ -13901,7 +13922,7 @@ packages: firebase-admin: '>=6.0.0' firebase-functions: '>=2.0.0' dependencies: - '@types/lodash': 4.14.194 + '@types/lodash': 4.14.195 firebase-admin: 9.12.0_qut2nla6d2mlm5hb6a72vara24 firebase-functions: 3.24.1_firebase-admin@9.12.0 lodash: 4.17.21 @@ -14052,7 +14073,7 @@ packages: vue-template-compiler: optional: true dependencies: - '@babel/code-frame': 7.10.4 + '@babel/code-frame': 7.21.4 chalk: 2.4.2 eslint: 7.32.0 micromatch: 3.1.10 @@ -15942,7 +15963,7 @@ packages: '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 '@types/babel__traverse': 7.18.5 - '@types/node': 16.18.32 + '@types/node': 20.2.3 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -15974,7 +15995,7 @@ packages: '@jest/expect': 29.5.0 '@jest/test-result': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 16.18.32 + '@types/node': 20.2.3 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -16139,6 +16160,7 @@ packages: diff-sequences: 26.6.2 jest-get-type: 26.3.0 pretty-format: 26.6.2 + dev: false /jest-diff/29.5.0: resolution: {integrity: sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==} @@ -16192,7 +16214,7 @@ packages: '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 16.18.32 + '@types/node': 20.2.3 jest-mock: 26.6.2 jest-util: 26.6.2 jsdom: 16.7.0 @@ -16203,6 +16225,29 @@ packages: - utf-8-validate dev: false + /jest-environment-jsdom/29.5.0: + resolution: {integrity: sha512-/KG8yEK4aN8ak56yFVdqFDzKNHgF4BAymCx2LbPNPsUshUlfAl0eX402Xm1pt+eoG9SLZEUVifqXtX8SK74KCw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + '@jest/environment': 29.5.0 + '@jest/fake-timers': 29.5.0 + '@jest/types': 29.5.0 + '@types/jsdom': 20.0.1 + '@types/node': 20.2.3 + jest-mock: 29.5.0 + jest-util: 29.5.0 + jsdom: 20.0.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /jest-environment-node/26.6.2: resolution: {integrity: sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==} engines: {node: '>= 10.14.2'} @@ -16210,7 +16255,7 @@ packages: '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 16.18.32 + '@types/node': 20.2.3 jest-mock: 26.6.2 jest-util: 26.6.2 dev: false @@ -16222,7 +16267,7 @@ packages: '@jest/environment': 29.5.0 '@jest/fake-timers': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 16.18.32 + '@types/node': 20.2.3 jest-mock: 29.5.0 jest-util: 29.5.0 dev: true @@ -16254,6 +16299,7 @@ packages: /jest-get-type/26.3.0: resolution: {integrity: sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==} engines: {node: '>= 10.14.2'} + dev: false /jest-get-type/27.5.1: resolution: {integrity: sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==} @@ -16270,7 +16316,7 @@ packages: dependencies: '@jest/types': 26.6.2 '@types/graceful-fs': 4.1.6 - '@types/node': 16.18.32 + '@types/node': 20.2.3 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -16293,7 +16339,7 @@ packages: dependencies: '@jest/types': 29.5.0 '@types/graceful-fs': 4.1.6 - '@types/node': 16.18.32 + '@types/node': 20.2.3 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -16315,7 +16361,7 @@ packages: '@jest/source-map': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 16.18.32 + '@types/node': 20.2.3 chalk: 4.1.2 co: 4.6.0 expect: 26.6.2 @@ -16439,7 +16485,7 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 16.18.32 + '@types/node': 20.2.3 dev: false /jest-mock/29.5.0: @@ -16447,7 +16493,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 16.18.32 + '@types/node': 20.2.3 jest-util: 29.5.0 dev: true @@ -16574,7 +16620,7 @@ packages: '@jest/environment': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 16.18.32 + '@types/node': 20.2.3 chalk: 4.1.2 emittery: 0.7.2 exit: 0.1.2 @@ -16607,7 +16653,7 @@ packages: '@jest/test-result': 29.5.0 '@jest/transform': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 16.18.32 + '@types/node': 20.2.3 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -16678,7 +16724,7 @@ packages: '@jest/test-result': 29.5.0 '@jest/transform': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 16.18.32 + '@types/node': 20.2.3 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 @@ -16701,7 +16747,7 @@ packages: resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} engines: {node: '>= 10.14.2'} dependencies: - '@types/node': 16.18.32 + '@types/node': 20.2.3 graceful-fs: 4.2.11 dev: false @@ -16724,7 +16770,7 @@ packages: jest-resolve: 26.6.2 natural-compare: 1.4.0 pretty-format: 26.6.2 - semver: 7.3.2 + semver: 7.5.1 transitivePeerDependencies: - supports-color dev: false @@ -16765,18 +16811,19 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 12.20.55 + '@types/node': 20.2.3 chalk: 4.1.2 graceful-fs: 4.2.11 is-ci: 2.0.0 micromatch: 4.0.5 + dev: false /jest-util/29.5.0: resolution: {integrity: sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 16.18.32 + '@types/node': 20.2.3 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -16852,7 +16899,7 @@ packages: dependencies: '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 16.18.32 + '@types/node': 20.2.3 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 26.6.2 @@ -16865,7 +16912,7 @@ packages: dependencies: '@jest/test-result': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 16.18.32 + '@types/node': 20.2.3 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -16893,7 +16940,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 16.18.32 + '@types/node': 20.2.3 merge-stream: 2.0.0 supports-color: 8.1.1 dev: false @@ -16902,7 +16949,7 @@ packages: resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 16.18.32 + '@types/node': 20.2.3 jest-util: 29.5.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -17018,6 +17065,47 @@ packages: - utf-8-validate dev: false + /jsdom/20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + acorn: 8.8.2 + acorn-globals: 7.0.1 + cssom: 0.5.0 + cssstyle: 2.3.0 + data-urls: 3.0.2 + decimal.js: 10.4.3 + domexception: 4.0.0 + escodegen: 2.0.0 + form-data: 4.0.0 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.4 + parse5: 7.1.2 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.2 + w3c-xmlserializer: 4.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + ws: 8.13.0 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /jsdom/21.1.2: resolution: {integrity: sha512-sCpFmK2jv+1sjff4u7fzft+pUh2KSUbUrEHYHyfSIbGTIcmnjyp83qg6qLwdJ/I3LpTXx33ACxeRL7Lsyc6lGQ==} engines: {node: '>=14'} @@ -20302,6 +20390,7 @@ packages: ansi-regex: 5.0.1 ansi-styles: 4.3.0 react-is: 17.0.2 + dev: false /pretty-format/27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} @@ -20411,7 +20500,7 @@ packages: '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 '@types/long': 4.0.2 - '@types/node': 16.18.32 + '@types/node': 20.2.3 long: 4.0.0 /protobufjs/7.2.3: @@ -20429,7 +20518,7 @@ packages: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 16.18.32 + '@types/node': 20.2.3 long: 5.2.3 /proxy-addr/2.0.7: @@ -20686,6 +20775,12 @@ packages: /react-dev-utils/11.0.4_73mvphemx5yrjoz5ocxp4i3m2y: resolution: {integrity: sha512-dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A==} engines: {node: '>=10'} + peerDependencies: + typescript: '>=2.7' + webpack: '>=4' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@babel/code-frame': 7.10.4 address: 1.1.2 @@ -20716,9 +20811,7 @@ packages: transitivePeerDependencies: - eslint - supports-color - - typescript - vue-template-compiler - - webpack dev: false /react-dom/17.0.2_react@17.0.2: @@ -20834,11 +20927,12 @@ packages: react: 18.2.0 dev: false - /react-scripts/4.0.3_oatgdhaahtizs2uezdzbohxvne: + /react-scripts/4.0.3_l5hyvwnnskx7g27xcaxotzm7m4: resolution: {integrity: sha512-S5eO4vjUzUisvkIPB7jVsKtuH2HhWcASREYWHAQ1FP5HyCv3xgn+wpILAEWkmy+A+tTNbSZClhxjT3qz6g4L1A==} engines: {node: ^10.12.0 || >=12.0.0} hasBin: true peerDependencies: + eslint: '*' react: '>= 16' typescript: ^3.2.1 || ^4 peerDependenciesMeta: @@ -21283,7 +21377,6 @@ packages: dependencies: is-core-module: 2.12.1 path-parse: 1.0.7 - dev: false /resolve/1.22.2: resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} @@ -21498,7 +21591,7 @@ packages: hasBin: true dependencies: '@types/estree': 1.0.1 - '@types/node': 16.18.32 + '@types/node': 20.2.3 acorn: 7.4.1 dev: false @@ -21645,7 +21738,7 @@ packages: loader-utils: 2.0.4 neo-async: 2.6.2 schema-utils: 3.1.2 - semver: 7.3.2 + semver: 7.5.1 webpack: 4.44.2 dev: false @@ -23111,6 +23204,13 @@ packages: punycode: 2.3.0 dev: false + /tr46/3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} + dependencies: + punycode: 2.3.0 + dev: true + /tr46/4.1.1: resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} engines: {node: '>=14'} @@ -23133,26 +23233,38 @@ packages: resolution: {integrity: sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==} dev: false - /ts-jest/26.5.6_doipufordlnvh5g4adbwayvyvy: - resolution: {integrity: sha512-rua+rCP8DxpA8b4DQD/6X2HQS8Zy/xzViVYfEs2OQu68tkCuKLV0Md8pmX55+W24uRIyAsf/BajRfxOs+R2MKA==} - engines: {node: '>= 10'} + /ts-jest/29.1.0_ghzph5mwxocot4qig36mps7xdm: + resolution: {integrity: sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: - jest: '>=26 <27' - typescript: '>=3.8 <5.0' + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 + esbuild: '*' + jest: ^29.0.0 + typescript: '>=4.3 <6' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true dependencies: + '@babel/core': 7.12.3 bs-logger: 0.2.6 - buffer-from: 1.1.2 fast-json-stable-stringify: 2.1.0 jest: 29.5.0_@types+node@12.20.55 - jest-util: 26.6.2 + jest-util: 29.5.0 json5: 2.2.3 - lodash: 4.17.21 + lodash.memoize: 4.1.2 make-error: 1.3.6 - mkdirp: 1.0.4 semver: 7.5.1 typescript: 4.9.5 - yargs-parser: 20.2.9 + yargs-parser: 21.1.1 dev: true /ts-loader/8.2.0_ljwpxsohotkibzkqavx4ej2joq: @@ -24478,6 +24590,14 @@ packages: engines: {node: '>=12'} dev: true + /whatwg-url/11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + dependencies: + tr46: 3.0.0 + webidl-conversions: 7.0.0 + dev: true + /whatwg-url/12.0.1: resolution: {integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==} engines: {node: '>=14'} From 271bd8ec5ed9f067e75ac5f2a5ad16acbe64a2be Mon Sep 17 00:00:00 2001 From: Nathan Arthur Date: Mon, 12 Jun 2023 14:35:00 -0400 Subject: [PATCH 2/3] fix taskratchet-web tests --- .../__mocks__/@mui/x-date-pickers.tsx | 2 +- apps/taskratchet-web/global-setup.ts | 3 +- apps/taskratchet-web/package.json | 68 +- apps/taskratchet-web/src/App.tsx | 22 +- .../src/components/organisms/DueForm.tsx | 42 +- .../src/components/organisms/TaskCopy.tsx | 7 - .../src/components/pages/Register.spec.tsx | 39 +- .../src/components/pages/Register.tsx | 8 +- apps/taskratchet-web/src/lib/api/addTask.ts | 8 - apps/taskratchet-web/src/lib/api/editTask.ts | 8 - apps/taskratchet-web/src/lib/api/login.ts | 7 - apps/taskratchet-web/src/lib/api/register.ts | 13 +- .../src/lib/api/requestResetEmail.ts | 13 +- .../src/lib/api/resetPassword.ts | 13 +- apps/taskratchet-web/src/lib/api/updateMe.ts | 7 - .../src/lib/api/updatePassword.ts | 11 +- .../taskratchet-web/src/lib/api/updateTask.ts | 22 +- apps/taskratchet-web/src/lib/api/useMe.ts | 22 +- .../taskratchet-web/src/lib/api/useSession.ts | 7 - apps/taskratchet-web/src/lib/logEvent.ts | 55 - apps/taskratchet-web/src/lib/saveFeedback.ts | 16 - pnpm-lock.yaml | 1881 +++++++++++++---- 22 files changed, 1591 insertions(+), 683 deletions(-) delete mode 100644 apps/taskratchet-web/src/lib/logEvent.ts delete mode 100644 apps/taskratchet-web/src/lib/saveFeedback.ts diff --git a/apps/taskratchet-web/__mocks__/@mui/x-date-pickers.tsx b/apps/taskratchet-web/__mocks__/@mui/x-date-pickers.tsx index 6004b75..30f42cb 100644 --- a/apps/taskratchet-web/__mocks__/@mui/x-date-pickers.tsx +++ b/apps/taskratchet-web/__mocks__/@mui/x-date-pickers.tsx @@ -9,7 +9,7 @@ function makePicker({ }) { return function MockPicker(p: any) { const [value, setValue] = React.useState(formatValue(p.value)); - return p.renderInput({ + return p.slots.textField({ label: p.label, value, onChange: (e: any) => { diff --git a/apps/taskratchet-web/global-setup.ts b/apps/taskratchet-web/global-setup.ts index 6c9117e..3c587ac 100644 --- a/apps/taskratchet-web/global-setup.ts +++ b/apps/taskratchet-web/global-setup.ts @@ -43,7 +43,7 @@ function deleteAllCookies() { } } -const fetchMock = createFetchMock(vi); +const fetchMock = createFetchMock(vi as any); fetchMock.enableMocks(); window.FreshworksWidget = vi.fn() as any; @@ -52,6 +52,7 @@ beforeEach(() => { fetchMock.resetMocks(); deleteAllCookies(); window.localStorage.clear(); + vi.mocked(getCheckoutSession).mockResolvedValue({ id: 'session', }); diff --git a/apps/taskratchet-web/package.json b/apps/taskratchet-web/package.json index ee4ea09..c1283e1 100644 --- a/apps/taskratchet-web/package.json +++ b/apps/taskratchet-web/package.json @@ -38,57 +38,55 @@ ] }, "dependencies": { - "@emotion/react": "^11.10.5", - "@emotion/styled": "^11.10.5", - "@highlight-run/react": "^1.2.1", - "@mui/icons-material": "^5.11.0", - "@mui/lab": "^5.0.0-alpha.119", - "@mui/material": "^5.11.8", - "@mui/x-date-pickers": "^5.0.18", - "dayjs": "^1.11.7", - "firebase": "^9.17.1", - "highlight.run": "5.1.5", + "@emotion/react": "^11.11.1", + "@emotion/styled": "^11.11.0", + "@mui/icons-material": "^5.11.16", + "@mui/lab": "5.0.0-alpha.134", + "@mui/material": "^5.13.5", + "@mui/x-date-pickers": "^6.7.0", + "dayjs": "^1.11.8", + "firebase": "^9.22.2", "humanize-duration": "^3.28.0", - "query-string": "^7.1.3", + "query-string": "^8.1.0", "react": "^18.2.0", "react-beforeunload": "^2.5.3", "react-dom": "^18.2.0", "react-list": "^0.8.17", - "react-query": "3.39.2", - "react-router-dom": "^6.8.1", - "react-toastify": "^5.5.0" + "react-query": "3.39.3", + "react-router-dom": "^6.12.1", + "react-toastify": "^9.1.3" }, "devDependencies": { "@testing-library/jest-dom": "^5.16.5", - "@testing-library/react": "^13.4.0", + "@testing-library/react": "^14.0.0", "@testing-library/user-event": "^14.4.3", "@types/humanize-duration": "^3.27.1", - "@types/node": "^18.13.0", - "@types/react": "^18.0.28", + "@types/node": "^20.3.0", + "@types/react": "^18.2.11", "@types/react-beforeunload": "^2.1.1", - "@types/react-dom": "^18.0.10", + "@types/react-dom": "^18.2.4", "@types/react-list": "^0.8.7", "@types/react-router-dom": "^5.3.3", - "@types/testing-library__jest-dom": "^5.14.5", - "@typescript-eslint/eslint-plugin": "^5.52.0", - "@typescript-eslint/parser": "^5.52.0", - "@vitejs/plugin-react": "3.1.0", - "@vitest/ui": "^0.28.5", - "eslint": "^8.34.0", - "eslint-config-prettier": "^8.6.0", + "@types/testing-library__jest-dom": "^5.14.6", + "@typescript-eslint/eslint-plugin": "^5.59.11", + "@typescript-eslint/parser": "^5.59.11", + "@vitejs/plugin-react": "4.0.0", + "@vitest/ui": "^0.32.0", + "eslint": "^8.42.0", + "eslint-config-prettier": "^8.8.0", "eslint-plugin-lodash": "^7.4.0", "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-regex": "^1.10.0", - "eslint-plugin-testing-library": "^5.10.1", - "jsdom": "^21.1.0", - "prettier": "2.8.4", - "rollup-plugin-visualizer": "^5.9.0", - "sass": "^1.58.0", - "type-fest": "^3.5.7", - "typescript": "^4.9.5", - "vite": "^4.1.1", - "vitest": "^0.28.5", - "vitest-fetch-mock": "^0.2.1" + "eslint-plugin-testing-library": "^5.11.0", + "jsdom": "^22.1.0", + "prettier": "2.8.8", + "rollup-plugin-visualizer": "^5.9.2", + "sass": "^1.63.3", + "type-fest": "^3.11.1", + "typescript": "^5.1.3", + "vite": "^4.3.9", + "vitest": "^0.32.0", + "vitest-fetch-mock": "^0.2.2" } } diff --git a/apps/taskratchet-web/src/App.tsx b/apps/taskratchet-web/src/App.tsx index 87e3e9f..98c335a 100644 --- a/apps/taskratchet-web/src/App.tsx +++ b/apps/taskratchet-web/src/App.tsx @@ -9,29 +9,18 @@ import { } from 'react-router-dom'; import Authenticated from './components/pages/Authenticated'; import ResetPassword from './components/pages/ResetPassword'; -import { toast } from 'react-toastify'; +import { ToastContainer } from 'react-toastify'; import 'react-toastify/dist/ReactToastify.css'; import { IS_PRODUCTION } from './tr_constants'; import { QueryClientProvider } from 'react-query'; import NavBar from './components/organisms/NavBar'; import * as browser from './lib/browser'; import { Box, Container, Stack, Alert, Link } from '@mui/material'; -import { H } from 'highlight.run'; import getQueryClient from './lib/getQueryClient'; -import { ErrorBoundary } from '@highlight-run/react'; import Account from './components/pages/Account'; import Tasks from './components/pages/Tasks'; import AndTheme from './components/HOCs/AndTheme'; -toast.configure(); - -H.init('qe9174g1', { - environment: process.env.NODE_ENV, - feedbackWidget: { - enabled: true, - }, -}); - window.stripe_key = IS_PRODUCTION ? 'pk_live_inP66DVvlOOA4r3CpaD73dFo00oWsfSpLd' : 'pk_test_JNeCMPdZ5zUUb5PV9D1bf9Dz00qqwCo9wp'; @@ -58,6 +47,7 @@ export function App(): JSX.Element { return ( + @@ -132,10 +122,8 @@ export function App(): JSX.Element { export default function AppWithRouter(): JSX.Element { return ( - - - - - + + + ); } diff --git a/apps/taskratchet-web/src/components/organisms/DueForm.tsx b/apps/taskratchet-web/src/components/organisms/DueForm.tsx index 801f5e8..5680dd0 100644 --- a/apps/taskratchet-web/src/components/organisms/DueForm.tsx +++ b/apps/taskratchet-web/src/components/organisms/DueForm.tsx @@ -48,20 +48,24 @@ export default function DueForm(props: DueFormProps): JSX.Element { onChange({ due: formatDue(d) }); }} - OpenPickerButtonProps={{ - 'aria-label': 'change date', + slots={{ + textField: (params) => ( + + ), + }} + slotProps={{ + openPickerButton: { + 'aria-label': 'change date', + }, }} disablePast - renderInput={(params) => ( - - )} maxDate={maxDue} minDate={minDue} /> @@ -84,12 +88,16 @@ export default function DueForm(props: DueFormProps): JSX.Element { ); onChange({ due: formatDue(d) }); }} - OpenPickerButtonProps={{ - 'aria-label': 'change time', + slots={{ + textField: (params) => ( + + ), + }} + slotProps={{ + openPickerButton: { + 'aria-label': 'change time', + }, }} - renderInput={(params) => ( - - )} /> ); diff --git a/apps/taskratchet-web/src/components/organisms/TaskCopy.tsx b/apps/taskratchet-web/src/components/organisms/TaskCopy.tsx index 16c3468..60292f1 100644 --- a/apps/taskratchet-web/src/components/organisms/TaskCopy.tsx +++ b/apps/taskratchet-web/src/components/organisms/TaskCopy.tsx @@ -1,8 +1,6 @@ import MenuItem from '@mui/material/MenuItem'; import React, { useState } from 'react'; -import logEvent from '../../lib/logEvent'; import TaskAdd from './TaskAdd'; -import { EventCategory, EventAction } from '../../lib/logEvent'; export default function TaskCopy({ task, @@ -21,11 +19,6 @@ export default function TaskCopy({ if (onOpen) { onOpen(); } - logEvent({ - category: EventCategory.Task, - action: EventAction.TaskCopy, - value: task.cents / 100, - }); }} > Copy diff --git a/apps/taskratchet-web/src/components/pages/Register.spec.tsx b/apps/taskratchet-web/src/components/pages/Register.spec.tsx index b93f26d..8587331 100644 --- a/apps/taskratchet-web/src/components/pages/Register.spec.tsx +++ b/apps/taskratchet-web/src/components/pages/Register.spec.tsx @@ -5,11 +5,10 @@ import Register from './Register'; import { waitFor, screen, within } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { getTimezones } from '../../lib/api/getTimezones'; -import { vi, expect, it, describe } from 'vitest'; +import { vi, expect, it, describe, beforeEach } from 'vitest'; import register from '../../lib/api/register'; import { getCheckoutSession } from '../../lib/api/getCheckoutSession'; import { redirectToCheckout } from '../../lib/stripe'; -import saveFeedback from '../../lib/saveFeedback'; import { toast } from 'react-toastify'; vi.mock('../../lib/api/getCheckoutSession'); @@ -58,6 +57,12 @@ async function fillForm() { } describe('registration page', () => { + beforeEach(() => { + vi.mocked(getCheckoutSession).mockResolvedValue({ + id: 'session_id', + }); + }); + it('uses Input for name field', async () => { renderWithQueryProvider(); @@ -96,7 +101,7 @@ describe('registration page', () => { 'the_email', 'the_password', 'the_timezone', - 'session' + 'session_id' ); }); @@ -114,34 +119,6 @@ describe('registration page', () => { }); }); - it('collects how they learned about TaskRatchet', async () => { - await fillForm(); - - await userEvent.type( - await screen.findByLabelText('How did you hear about us?'), - 'the_referral' - ); - - await userEvent.click(await screen.findByText('Add payment method')); - - await waitFor(() => { - expect(saveFeedback).toBeCalledWith({ - userName: 'the_name', - userEmail: 'the_email', - prompt: 'How did you hear about us?', - response: 'the_referral', - }); - }); - }); - - it('skips sending referral if none provided', async () => { - await fillForm(); - - await userEvent.click(await screen.findByText('Add payment method')); - - expect(saveFeedback).not.toBeCalled(); - }); - it('shows missing email error if none provided', async () => { await fillForm(); diff --git a/apps/taskratchet-web/src/components/pages/Register.tsx b/apps/taskratchet-web/src/components/pages/Register.tsx index ebbd69f..84422ae 100644 --- a/apps/taskratchet-web/src/components/pages/Register.tsx +++ b/apps/taskratchet-web/src/components/pages/Register.tsx @@ -10,7 +10,6 @@ import FormControl from '@mui/material/FormControl'; import InputLabel from '@mui/material/InputLabel'; import Select from '@mui/material/Select'; import MenuItem from '@mui/material/MenuItem'; -import saveFeedback from '../../lib/saveFeedback'; import useDocumentTitle from '../../lib/useDocumentTitle'; import FormHelperText from '@mui/material/FormHelperText'; import Checkbox from '@mui/material/Checkbox'; @@ -40,12 +39,7 @@ const Register = (): JSX.Element => { if (!passes || !checkoutSession) return; if (referral) { - saveFeedback({ - userName: name, - userEmail: email, - prompt: 'How did you hear about us?', - response: referral, - }); + // TODO: Log referral } const response = await register( diff --git a/apps/taskratchet-web/src/lib/api/addTask.ts b/apps/taskratchet-web/src/lib/api/addTask.ts index a0413b8..6f3892e 100644 --- a/apps/taskratchet-web/src/lib/api/addTask.ts +++ b/apps/taskratchet-web/src/lib/api/addTask.ts @@ -1,6 +1,4 @@ -import logEvent from '../logEvent'; import fetch1 from './fetch1'; -import { EventCategory, EventAction } from '../logEvent'; type Input = { task: string; @@ -16,11 +14,5 @@ export async function addTask(input: Input): Promise { throw new Error('Failed to add task'); } - logEvent({ - category: EventCategory.Task, - action: EventAction.TaskCreate, - value: input.cents / 100, - }); - return response; } diff --git a/apps/taskratchet-web/src/lib/api/editTask.ts b/apps/taskratchet-web/src/lib/api/editTask.ts index 5b4395f..625a551 100644 --- a/apps/taskratchet-web/src/lib/api/editTask.ts +++ b/apps/taskratchet-web/src/lib/api/editTask.ts @@ -1,6 +1,4 @@ -import logEvent from '../logEvent'; import fetch1 from './fetch1'; -import { EventCategory, EventAction } from '../logEvent'; // Requires that user be authenticated. export async function editTask( @@ -18,11 +16,5 @@ export async function editTask( throw new Error(error); } - logEvent({ - category: EventCategory.Task, - action: EventAction.TaskUpdate, - value: cents / 100, - }); - return response; } diff --git a/apps/taskratchet-web/src/lib/api/login.ts b/apps/taskratchet-web/src/lib/api/login.ts index d7d6852..e01dee9 100644 --- a/apps/taskratchet-web/src/lib/api/login.ts +++ b/apps/taskratchet-web/src/lib/api/login.ts @@ -1,7 +1,5 @@ import { publishSession } from './useSession'; import fetch1 from './fetch1'; -import logEvent from '../logEvent'; -import { EventCategory, EventAction } from '../logEvent'; import { signInWithEmailAndPassword, getAuth } from 'firebase/auth'; import { initializeApp } from 'firebase/app'; @@ -38,10 +36,5 @@ export async function login(email: string, password: string): Promise { publishSession(); - logEvent({ - category: EventCategory.Authentication, - action: EventAction.Login, - }); - return true; } diff --git a/apps/taskratchet-web/src/lib/api/register.ts b/apps/taskratchet-web/src/lib/api/register.ts index 77fdecb..10e08fb 100644 --- a/apps/taskratchet-web/src/lib/api/register.ts +++ b/apps/taskratchet-web/src/lib/api/register.ts @@ -1,6 +1,4 @@ -import logEvent from '../logEvent'; import fetch1 from './fetch1'; -import { EventCategory, EventAction } from '../logEvent'; export default async function register( name: string, @@ -9,20 +7,11 @@ export default async function register( timezone: string, checkoutSessionId: string | null ): Promise { - const result = await fetch1('account/register', false, 'POST', { + return fetch1('account/register', false, 'POST', { name: name, email: email, password: password, timezone: timezone, checkout_session_id: checkoutSessionId, }); - - if (result.ok) { - logEvent({ - category: EventCategory.Authentication, - action: EventAction.Signup, - }); - } - - return result; } diff --git a/apps/taskratchet-web/src/lib/api/requestResetEmail.ts b/apps/taskratchet-web/src/lib/api/requestResetEmail.ts index da5cc5b..ebac27b 100644 --- a/apps/taskratchet-web/src/lib/api/requestResetEmail.ts +++ b/apps/taskratchet-web/src/lib/api/requestResetEmail.ts @@ -1,18 +1,7 @@ -import logEvent from '../logEvent'; import fetch1 from './fetch1'; -import { EventCategory, EventAction } from '../logEvent'; export async function requestResetEmail(email: string): Promise { - const result = await fetch1('account/forgot-password', false, 'POST', { + return fetch1('account/forgot-password', false, 'POST', { email: email, }); - - if (result.ok) { - logEvent({ - category: EventCategory.Authentication, - action: EventAction.PasswordResetRequest, - }); - } - - return result; } diff --git a/apps/taskratchet-web/src/lib/api/resetPassword.ts b/apps/taskratchet-web/src/lib/api/resetPassword.ts index c94c570..988537a 100644 --- a/apps/taskratchet-web/src/lib/api/resetPassword.ts +++ b/apps/taskratchet-web/src/lib/api/resetPassword.ts @@ -1,22 +1,11 @@ -import logEvent from '../logEvent'; import fetch1 from './fetch1'; -import { EventCategory, EventAction } from '../logEvent'; export async function resetPassword( token: string, password: string ): Promise { - const result = await fetch1('account/reset-password', false, 'POST', { + return fetch1('account/reset-password', false, 'POST', { token: token, password: password, }); - - if (result.ok) { - logEvent({ - category: EventCategory.Authentication, - action: EventAction.PasswordReset, - }); - } - - return result; } diff --git a/apps/taskratchet-web/src/lib/api/updateMe.ts b/apps/taskratchet-web/src/lib/api/updateMe.ts index dcd1c5d..5c36cc4 100644 --- a/apps/taskratchet-web/src/lib/api/updateMe.ts +++ b/apps/taskratchet-web/src/lib/api/updateMe.ts @@ -1,7 +1,5 @@ -import logEvent from '../logEvent'; import pipeMap from '../pipeMap'; import fetch1 from './fetch1'; -import { EventCategory, EventAction } from '../logEvent'; export interface MeInput { name?: string | null; @@ -30,10 +28,5 @@ export async function updateMe(input: MeInput): Promise { throw new Error('Failed to update me'); } - logEvent({ - category: EventCategory.User, - action: EventAction.UserUpdate, - }); - return response; } diff --git a/apps/taskratchet-web/src/lib/api/updatePassword.ts b/apps/taskratchet-web/src/lib/api/updatePassword.ts index 1a823dd..7d06939 100644 --- a/apps/taskratchet-web/src/lib/api/updatePassword.ts +++ b/apps/taskratchet-web/src/lib/api/updatePassword.ts @@ -1,20 +1,11 @@ -import logEvent from '../logEvent'; import fetch1 from './fetch1'; -import { EventCategory, EventAction } from '../logEvent'; export async function updatePassword( oldPassword: string, newPassword: string ): Promise { - const result = await fetch1('me', true, 'PUT', { + return fetch1('me', true, 'PUT', { old_password: oldPassword, new_password: newPassword, }); - - logEvent({ - category: EventCategory.Authentication, - action: EventAction.PasswordUpdate, - }); - - return result; } diff --git a/apps/taskratchet-web/src/lib/api/updateTask.ts b/apps/taskratchet-web/src/lib/api/updateTask.ts index ce4724e..a40a38a 100644 --- a/apps/taskratchet-web/src/lib/api/updateTask.ts +++ b/apps/taskratchet-web/src/lib/api/updateTask.ts @@ -1,6 +1,4 @@ -import logEvent from '../logEvent'; import fetch1 from './fetch1'; -import { EventCategory, EventAction } from '../logEvent'; export interface TaskInput { complete?: boolean; @@ -12,23 +10,5 @@ export async function updateTask( taskId: string, data: TaskInput ): Promise { - const result = await fetch1('me/tasks/' + taskId, true, 'PUT', data); - - if (result.ok) { - if (data.complete) { - logEvent({ - category: EventCategory.Task, - action: EventAction.TaskComplete, - }); - } - - if (data.uncle) { - logEvent({ - category: EventCategory.Task, - action: EventAction.TaskUncle, - }); - } - } - - return result; + return fetch1('me/tasks/' + taskId, true, 'PUT', data); } diff --git a/apps/taskratchet-web/src/lib/api/useMe.ts b/apps/taskratchet-web/src/lib/api/useMe.ts index b07df67..b793c7f 100644 --- a/apps/taskratchet-web/src/lib/api/useMe.ts +++ b/apps/taskratchet-web/src/lib/api/useMe.ts @@ -1,33 +1,13 @@ import { QueryObserverResult, useQuery } from 'react-query'; import { getMe } from './getMe'; import { UseQueryOptions } from 'react-query'; -import { H } from 'highlight.run'; -import { useEffect } from 'react'; export function useMe( queryOptions: UseQueryOptions | undefined = {} ): QueryObserverResult { - const result = useQuery({ + return useQuery({ queryKey: 'me', queryFn: getMe, ...queryOptions, }); - - const { data } = result; - - useEffect(() => { - if (!data) return; - - const metadata = Object.keys(data).reduce((prev, key) => { - const value = data[key as keyof User]; - - prev[key] = typeof value === 'string' ? value : JSON.stringify(value); - - return prev; - }, {} as Record); - - H.identify(data.id, metadata); - }, [data]); - - return result; } diff --git a/apps/taskratchet-web/src/lib/api/useSession.ts b/apps/taskratchet-web/src/lib/api/useSession.ts index d744614..3311de9 100644 --- a/apps/taskratchet-web/src/lib/api/useSession.ts +++ b/apps/taskratchet-web/src/lib/api/useSession.ts @@ -1,6 +1,4 @@ import { useEffect, useState } from 'react'; -import logEvent from '../logEvent'; -import { EventCategory, EventAction } from '../logEvent'; import { getAuth, signOut } from 'firebase/auth'; // TODO: Add proper type @@ -33,11 +31,6 @@ export function publishSession(): void { // TODO: Should this function be in separate file? export function logout(): void { - logEvent({ - category: EventCategory.Authentication, - action: EventAction.Logout, - }); - window.localStorage.removeItem('email'); window.localStorage.removeItem('token'); window.localStorage.removeItem('firebase_token'); diff --git a/apps/taskratchet-web/src/lib/logEvent.ts b/apps/taskratchet-web/src/lib/logEvent.ts deleted file mode 100644 index 8ee075e..0000000 --- a/apps/taskratchet-web/src/lib/logEvent.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { H } from 'highlight.run'; - -export enum EventCategory { - Authentication = 'Authentication', - Task = 'Task', - User = 'User', -} - -export enum EventAction { - Login = 'Login', - Logout = 'Logout', - PasswordResetRequest = 'PasswordResetRequest', - PasswordReset = 'PasswordReset', - PasswordUpdate = 'PasswordUpdate', - Signup = 'Signup', - TaskCreate = 'TaskCreate', - TaskCopy = 'TaskCopy', - TaskComplete = 'TaskComplete', - TaskUncle = 'TaskUncle', - TaskUpdate = 'TaskUpdate', - UserUpdate = 'UserUpdate', -} - -type GaEvent = - | { - category: EventCategory.Authentication; - action: - | EventAction.Login - | EventAction.Logout - | EventAction.PasswordResetRequest - | EventAction.PasswordReset - | EventAction.PasswordUpdate - | EventAction.Signup; - } - | { - category: EventCategory.Task; - action: EventAction.TaskCreate | EventAction.TaskCopy; - value: number; - } - | { - category: EventCategory.Task; - action: - | EventAction.TaskComplete - | EventAction.TaskUncle - | EventAction.TaskUpdate; - value?: number; - } - | { - category: EventCategory.User; - action: EventAction.UserUpdate; - }; - -export default function logEvent(event: GaEvent) { - H.track(event.action, event); -} diff --git a/apps/taskratchet-web/src/lib/saveFeedback.ts b/apps/taskratchet-web/src/lib/saveFeedback.ts deleted file mode 100644 index 2df7a25..0000000 --- a/apps/taskratchet-web/src/lib/saveFeedback.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { H } from 'highlight.run'; - -type Options = { - userName?: string; - userEmail?: string; - prompt?: string; - response: string; -}; - -export default function saveFeedback({ prompt, response }: Options): void { - const verbatim = `${prompt ? `${prompt}: ` : ''}${response}`; - - H.addSessionFeedback({ - verbatim, - }); -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c817c3f..ef00e59 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -216,108 +216,104 @@ importers: apps/taskratchet-web: specifiers: - '@emotion/react': ^11.10.5 - '@emotion/styled': ^11.10.5 - '@highlight-run/react': ^1.2.1 - '@mui/icons-material': ^5.11.0 - '@mui/lab': ^5.0.0-alpha.119 - '@mui/material': ^5.11.8 - '@mui/x-date-pickers': ^5.0.18 + '@emotion/react': ^11.11.1 + '@emotion/styled': ^11.11.0 + '@mui/icons-material': ^5.11.16 + '@mui/lab': 5.0.0-alpha.134 + '@mui/material': ^5.13.5 + '@mui/x-date-pickers': ^6.7.0 '@testing-library/jest-dom': ^5.16.5 - '@testing-library/react': ^13.4.0 + '@testing-library/react': ^14.0.0 '@testing-library/user-event': ^14.4.3 '@types/humanize-duration': ^3.27.1 - '@types/node': ^18.13.0 - '@types/react': ^18.0.28 + '@types/node': ^20.3.0 + '@types/react': ^18.2.11 '@types/react-beforeunload': ^2.1.1 - '@types/react-dom': ^18.0.10 + '@types/react-dom': ^18.2.4 '@types/react-list': ^0.8.7 '@types/react-router-dom': ^5.3.3 - '@types/testing-library__jest-dom': ^5.14.5 - '@typescript-eslint/eslint-plugin': ^5.52.0 - '@typescript-eslint/parser': ^5.52.0 - '@vitejs/plugin-react': 3.1.0 - '@vitest/ui': ^0.28.5 - dayjs: ^1.11.7 - eslint: ^8.34.0 - eslint-config-prettier: ^8.6.0 + '@types/testing-library__jest-dom': ^5.14.6 + '@typescript-eslint/eslint-plugin': ^5.59.11 + '@typescript-eslint/parser': ^5.59.11 + '@vitejs/plugin-react': 4.0.0 + '@vitest/ui': ^0.32.0 + dayjs: ^1.11.8 + eslint: ^8.42.0 + eslint-config-prettier: ^8.8.0 eslint-plugin-lodash: ^7.4.0 eslint-plugin-react: ^7.32.2 eslint-plugin-react-hooks: ^4.6.0 eslint-plugin-regex: ^1.10.0 - eslint-plugin-testing-library: ^5.10.1 - firebase: ^9.17.1 - highlight.run: 5.1.5 + eslint-plugin-testing-library: ^5.11.0 + firebase: ^9.22.2 humanize-duration: ^3.28.0 - jsdom: ^21.1.0 - prettier: 2.8.4 - query-string: ^7.1.3 + jsdom: ^22.1.0 + prettier: 2.8.8 + query-string: ^8.1.0 react: ^18.2.0 react-beforeunload: ^2.5.3 react-dom: ^18.2.0 react-list: ^0.8.17 - react-query: 3.39.2 - react-router-dom: ^6.8.1 - react-toastify: ^5.5.0 - rollup-plugin-visualizer: ^5.9.0 - sass: ^1.58.0 - type-fest: ^3.5.7 - typescript: ^4.9.5 - vite: ^4.1.1 - vitest: ^0.28.5 - vitest-fetch-mock: ^0.2.1 - dependencies: - '@emotion/react': 11.11.0_bfoz4c5kom3f237nig75ykjhhy - '@emotion/styled': 11.11.0_a2i5n5lojrfshkutjtdzmeomky - '@highlight-run/react': 1.2.1_biqbaboplfbrettd7655fr4n2y - '@mui/icons-material': 5.11.16_6hbl4khqhrefackclj4yen3xku - '@mui/lab': 5.0.0-alpha.131_n45mwpqfp37amclvxr3l7u6rri - '@mui/material': 5.13.2_rcyk3p3henusk3yzgoxovlybni - '@mui/x-date-pickers': 5.0.20_agp2y6jbdxq2gjyzwpkajpjvtu - dayjs: 1.11.7 - firebase: 9.22.0 - highlight.run: 5.1.5 + react-query: 3.39.3 + react-router-dom: ^6.12.1 + react-toastify: ^9.1.3 + rollup-plugin-visualizer: ^5.9.2 + sass: ^1.63.3 + type-fest: ^3.11.1 + typescript: ^5.1.3 + vite: ^4.3.9 + vitest: ^0.32.0 + vitest-fetch-mock: ^0.2.2 + dependencies: + '@emotion/react': 11.11.1_j4swkgacdxrhexoapez3itylte + '@emotion/styled': 11.11.0_nu4qc6kdcs236nxv7mh5bc5le4 + '@mui/icons-material': 5.11.16_blmi2km3nwxbobeuj7tqgm2pxm + '@mui/lab': 5.0.0-alpha.134_yli66o5dp3cmyz67ihwukr6bwm + '@mui/material': 5.13.5_juzjxnossgkja5qzwfnv7rirzi + '@mui/x-date-pickers': 6.7.0_h77fixxj6awxrtlxc6jikqis6y + dayjs: 1.11.8 + firebase: 9.22.2 humanize-duration: 3.28.0 - query-string: 7.1.3 + query-string: 8.1.0 react: 18.2.0 react-beforeunload: 2.5.3_react@18.2.0 react-dom: 18.2.0_react@18.2.0 react-list: 0.8.17_react@18.2.0 - react-query: 3.39.2_biqbaboplfbrettd7655fr4n2y - react-router-dom: 6.11.2_biqbaboplfbrettd7655fr4n2y - react-toastify: 5.5.0_biqbaboplfbrettd7655fr4n2y + react-query: 3.39.3_biqbaboplfbrettd7655fr4n2y + react-router-dom: 6.12.1_biqbaboplfbrettd7655fr4n2y + react-toastify: 9.1.3_biqbaboplfbrettd7655fr4n2y devDependencies: '@testing-library/jest-dom': 5.16.5 - '@testing-library/react': 13.4.0_biqbaboplfbrettd7655fr4n2y + '@testing-library/react': 14.0.0_biqbaboplfbrettd7655fr4n2y '@testing-library/user-event': 14.4.3_@testing-library+dom@9.3.0 '@types/humanize-duration': 3.27.1 - '@types/node': 18.16.14 - '@types/react': 18.2.7 + '@types/node': 20.3.0 + '@types/react': 18.2.11 '@types/react-beforeunload': 2.1.1 '@types/react-dom': 18.2.4 '@types/react-list': 0.8.7 '@types/react-router-dom': 5.3.3 '@types/testing-library__jest-dom': 5.14.6 - '@typescript-eslint/eslint-plugin': 5.59.7_gnnf3trwikzd6jkxh7av7rnt5e - '@typescript-eslint/parser': 5.59.7_5ujgynla27k2qkzlnkldjwsutm - '@vitejs/plugin-react': 3.1.0_vite@4.3.8 - '@vitest/ui': 0.28.5 - eslint: 8.41.0 - eslint-config-prettier: 8.8.0_eslint@8.41.0 - eslint-plugin-lodash: 7.4.0_eslint@8.41.0 - eslint-plugin-react: 7.32.2_eslint@8.41.0 - eslint-plugin-react-hooks: 4.6.0_eslint@8.41.0 - eslint-plugin-regex: 1.10.0_eslint@8.41.0 - eslint-plugin-testing-library: 5.11.0_5ujgynla27k2qkzlnkldjwsutm - jsdom: 21.1.2 - prettier: 2.8.4 - rollup-plugin-visualizer: 5.9.0 - sass: 1.62.1 - type-fest: 3.11.0 - typescript: 4.9.5 - vite: 4.3.8_3cl3pib2kx7jaftbqhg3ux7t34 - vitest: 0.28.5_b3g4h3kgwirtbdsvsta5lur7ky - vitest-fetch-mock: 0.2.2_vitest@0.28.5 + '@typescript-eslint/eslint-plugin': 5.59.11_sqfi766b7p7jf53aqxvjxvblnq + '@typescript-eslint/parser': 5.59.11_tizxnkcvjrb4cldxgwq5h3lj5u + '@vitejs/plugin-react': 4.0.0_vite@4.3.9 + '@vitest/ui': 0.32.0_vitest@0.32.0 + eslint: 8.42.0 + eslint-config-prettier: 8.8.0_eslint@8.42.0 + eslint-plugin-lodash: 7.4.0_eslint@8.42.0 + eslint-plugin-react: 7.32.2_eslint@8.42.0 + eslint-plugin-react-hooks: 4.6.0_eslint@8.42.0 + eslint-plugin-regex: 1.10.0_eslint@8.42.0 + eslint-plugin-testing-library: 5.11.0_tizxnkcvjrb4cldxgwq5h3lj5u + jsdom: 22.1.0 + prettier: 2.8.8 + rollup-plugin-visualizer: 5.9.2 + sass: 1.63.3 + type-fest: 3.11.1 + typescript: 5.1.3 + vite: 4.3.9_gdkma3dmudcb7fwmb357cck6sa + vitest: 0.32.0_qurakq6av5alithdcy42uvw7r4 + vitest-fetch-mock: 0.2.2_vitest@0.32.0 packages: @@ -471,10 +467,21 @@ packages: dependencies: '@babel/highlight': 7.18.6 + /@babel/code-frame/7.22.5: + resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.22.5 + /@babel/compat-data/7.21.9: resolution: {integrity: sha512-FUGed8kfhyWvbYug/Un/VPJD41rDIgoVVcR+FuzhzOYyRz5uED+Gd3SLZml0Uw2l2aHFb7ZgdW5mGA3G2cCCnQ==} engines: {node: '>=6.9.0'} + /@babel/compat-data/7.22.5: + resolution: {integrity: sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/core/7.12.3: resolution: {integrity: sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==} engines: {node: '>=6.9.0'} @@ -520,6 +527,29 @@ packages: transitivePeerDependencies: - supports-color + /@babel/core/7.22.5: + resolution: {integrity: sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.22.5 + '@babel/generator': 7.22.5 + '@babel/helper-compilation-targets': 7.22.5_@babel+core@7.22.5 + '@babel/helper-module-transforms': 7.22.5 + '@babel/helpers': 7.22.5 + '@babel/parser': 7.22.5 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.5 + '@babel/types': 7.22.5 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/eslint-parser/7.21.8_fnsrarlmvgqcaofxh5pcbbd6rm: resolution: {integrity: sha512-HLhI+2q+BP3sf78mFUZNCGc10KEmoUqtUT1OCdMZsN+qr4qFeLUod62/zAnF3jNQstwyasDkZnVXwfK2Bml7MQ==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} @@ -543,6 +573,16 @@ packages: '@jridgewell/trace-mapping': 0.3.18 jsesc: 2.5.2 + /@babel/generator/7.22.5: + resolution: {integrity: sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.18 + jsesc: 2.5.2 + dev: true + /@babel/helper-annotate-as-pure/7.18.6: resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} engines: {node: '>=6.9.0'} @@ -582,6 +622,20 @@ packages: lru-cache: 5.1.1 semver: 6.3.0 + /@babel/helper-compilation-targets/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.22.5 + '@babel/core': 7.22.5 + '@babel/helper-validator-option': 7.22.5 + browserslist: 4.21.7 + lru-cache: 5.1.1 + semver: 6.3.0 + dev: true + /@babel/helper-create-class-features-plugin/7.21.8_@babel+core@7.12.3: resolution: {integrity: sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw==} engines: {node: '>=6.9.0'} @@ -679,6 +733,11 @@ packages: resolution: {integrity: sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==} engines: {node: '>=6.9.0'} + /@babel/helper-environment-visitor/7.22.5: + resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-function-name/7.21.0: resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} engines: {node: '>=6.9.0'} @@ -686,12 +745,27 @@ packages: '@babel/template': 7.21.9 '@babel/types': 7.21.5 + /@babel/helper-function-name/7.22.5: + resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.5 + '@babel/types': 7.22.5 + dev: true + /@babel/helper-hoist-variables/7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.21.5 + /@babel/helper-hoist-variables/7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: true + /@babel/helper-member-expression-to-functions/7.21.5: resolution: {integrity: sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg==} engines: {node: '>=6.9.0'} @@ -704,6 +778,12 @@ packages: dependencies: '@babel/types': 7.21.5 + /@babel/helper-module-imports/7.22.5: + resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + /@babel/helper-module-transforms/7.21.5: resolution: {integrity: sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==} engines: {node: '>=6.9.0'} @@ -719,6 +799,22 @@ packages: transitivePeerDependencies: - supports-color + /@babel/helper-module-transforms/7.22.5: + resolution: {integrity: sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.5 + '@babel/helper-validator-identifier': 7.22.5 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.5 + '@babel/types': 7.22.5 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helper-optimise-call-expression/7.18.6: resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} engines: {node: '>=6.9.0'} @@ -729,6 +825,11 @@ packages: resolution: {integrity: sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==} engines: {node: '>=6.9.0'} + /@babel/helper-plugin-utils/7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.12.3: resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} engines: {node: '>=6.9.0'} @@ -777,6 +878,13 @@ packages: dependencies: '@babel/types': 7.21.5 + /@babel/helper-simple-access/7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: true + /@babel/helper-skip-transparent-expression-wrappers/7.20.0: resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} engines: {node: '>=6.9.0'} @@ -789,18 +897,38 @@ packages: dependencies: '@babel/types': 7.21.5 + /@babel/helper-split-export-declaration/7.22.5: + resolution: {integrity: sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: true + /@babel/helper-string-parser/7.21.5: resolution: {integrity: sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==} engines: {node: '>=6.9.0'} + /@babel/helper-string-parser/7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier/7.19.1: resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier/7.22.5: + resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} + engines: {node: '>=6.9.0'} + /@babel/helper-validator-option/7.21.0: resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} engines: {node: '>=6.9.0'} + /@babel/helper-validator-option/7.22.5: + resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-wrap-function/7.20.5: resolution: {integrity: sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==} engines: {node: '>=6.9.0'} @@ -822,6 +950,17 @@ packages: transitivePeerDependencies: - supports-color + /@babel/helpers/7.22.5: + resolution: {integrity: sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.5 + '@babel/types': 7.22.5 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/highlight/7.18.6: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} engines: {node: '>=6.9.0'} @@ -830,6 +969,14 @@ packages: chalk: 2.4.2 js-tokens: 4.0.0 + /@babel/highlight/7.22.5: + resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.5 + chalk: 2.4.2 + js-tokens: 4.0.0 + /@babel/parser/7.16.4: resolution: {integrity: sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==} engines: {node: '>=6.0.0'} @@ -853,6 +1000,14 @@ packages: dependencies: '@babel/types': 7.21.5 + /@babel/parser/7.22.5: + resolution: {integrity: sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.22.5 + dev: true + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.12.3: resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} engines: {node: '>=6.9.0'} @@ -2181,24 +2336,24 @@ packages: '@babel/core': 7.21.8 '@babel/plugin-transform-react-jsx': 7.21.5_@babel+core@7.21.8 - /@babel/plugin-transform-react-jsx-self/7.21.0_@babel+core@7.21.8: - resolution: {integrity: sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==} + /@babel/plugin-transform-react-jsx-self/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx-source/7.19.6_@babel+core@7.21.8: - resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==} + /@babel/plugin-transform-react-jsx-source/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.8 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 dev: true /@babel/plugin-transform-react-jsx/7.21.5_@babel+core@7.12.3: @@ -2720,6 +2875,12 @@ packages: dependencies: regenerator-runtime: 0.13.11 + /@babel/runtime/7.22.5: + resolution: {integrity: sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + /@babel/template/7.21.9: resolution: {integrity: sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==} engines: {node: '>=6.9.0'} @@ -2728,6 +2889,15 @@ packages: '@babel/parser': 7.21.9 '@babel/types': 7.21.5 + /@babel/template/7.22.5: + resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.5 + '@babel/parser': 7.22.5 + '@babel/types': 7.22.5 + dev: true + /@babel/traverse/7.21.5: resolution: {integrity: sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==} engines: {node: '>=6.9.0'} @@ -2745,6 +2915,24 @@ packages: transitivePeerDependencies: - supports-color + /@babel/traverse/7.22.5: + resolution: {integrity: sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.5 + '@babel/generator': 7.22.5 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.5 + '@babel/parser': 7.22.5 + '@babel/types': 7.22.5 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/types/7.21.5: resolution: {integrity: sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==} engines: {node: '>=6.9.0'} @@ -2753,6 +2941,14 @@ packages: '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 + /@babel/types/7.22.5: + resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.5 + to-fast-properties: 2.0.0 + /@bcoe/v8-coverage/0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -2866,55 +3062,6 @@ packages: kuler: 2.0.0 dev: true - /@date-io/core/2.16.0: - resolution: {integrity: sha512-DYmSzkr+jToahwWrsiRA2/pzMEtz9Bq1euJwoOuYwuwIYXnZFtHajY2E6a1VNVDc9jP8YUXK1BvnZH9mmT19Zg==} - dev: false - - /@date-io/date-fns/2.16.0: - resolution: {integrity: sha512-bfm5FJjucqlrnQcXDVU5RD+nlGmL3iWgkHTq3uAZWVIuBu6dDmGa3m8a6zo2VQQpu8ambq9H22UyUpn7590joA==} - peerDependencies: - date-fns: ^2.0.0 - peerDependenciesMeta: - date-fns: - optional: true - dependencies: - '@date-io/core': 2.16.0 - dev: false - - /@date-io/dayjs/2.16.0_dayjs@1.11.7: - resolution: {integrity: sha512-y5qKyX2j/HG3zMvIxTobYZRGnd1FUW2olZLS0vTj7bEkBQkjd2RO7/FEwDY03Z1geVGlXKnzIATEVBVaGzV4Iw==} - peerDependencies: - dayjs: ^1.8.17 - peerDependenciesMeta: - dayjs: - optional: true - dependencies: - '@date-io/core': 2.16.0 - dayjs: 1.11.7 - dev: false - - /@date-io/luxon/2.16.1: - resolution: {integrity: sha512-aeYp5K9PSHV28946pC+9UKUi/xMMYoaGelrpDibZSgHu2VWHXrr7zWLEr+pMPThSs5vt8Ei365PO+84pCm37WQ==} - peerDependencies: - luxon: ^1.21.3 || ^2.x || ^3.x - peerDependenciesMeta: - luxon: - optional: true - dependencies: - '@date-io/core': 2.16.0 - dev: false - - /@date-io/moment/2.16.1: - resolution: {integrity: sha512-JkxldQxUqZBfZtsaCcCMkm/dmytdyq5pS1RxshCQ4fHhsvP5A7gSqPD22QbVXMcJydi3d3v1Y8BQdUKEuGACZQ==} - peerDependencies: - moment: ^2.24.0 - peerDependenciesMeta: - moment: - optional: true - dependencies: - '@date-io/core': 2.16.0 - dev: false - /@dependents/detective-less/3.0.2: resolution: {integrity: sha512-1YUvQ+e0eeTWAHoN8Uz2x2U37jZs6IGutiIE5LXId7cxfUGhtZjzxE06FdUiuiRrW+UE0vNCdSNPH2lY4dQCOQ==} engines: {node: '>=12'} @@ -2964,8 +3111,8 @@ packages: /@emotion/babel-plugin/11.11.0: resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==} dependencies: - '@babel/helper-module-imports': 7.21.4 - '@babel/runtime': 7.21.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/runtime': 7.22.5 '@emotion/hash': 0.9.1 '@emotion/memoize': 0.8.1 '@emotion/serialize': 1.1.2 @@ -3043,6 +3190,27 @@ packages: react: 17.0.2 dev: false + /@emotion/react/11.11.1_j4swkgacdxrhexoapez3itylte: + resolution: {integrity: sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==} + peerDependencies: + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.5 + '@emotion/babel-plugin': 11.11.0 + '@emotion/cache': 11.11.0 + '@emotion/serialize': 1.1.2 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1_react@18.2.0 + '@emotion/utils': 1.2.1 + '@emotion/weak-memoize': 0.3.1 + '@types/react': 18.2.11 + hoist-non-react-statics: 3.3.2 + react: 18.2.0 + dev: false + /@emotion/serialize/1.1.2: resolution: {integrity: sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==} dependencies: @@ -3099,6 +3267,27 @@ packages: react: 17.0.2 dev: false + /@emotion/styled/11.11.0_nu4qc6kdcs236nxv7mh5bc5le4: + resolution: {integrity: sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==} + peerDependencies: + '@emotion/react': ^11.0.0-rc.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.5 + '@emotion/babel-plugin': 11.11.0 + '@emotion/is-prop-valid': 1.2.1 + '@emotion/react': 11.11.1_j4swkgacdxrhexoapez3itylte + '@emotion/serialize': 1.1.2 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1_react@18.2.0 + '@emotion/utils': 1.2.1 + '@types/react': 18.2.11 + react: 18.2.0 + dev: false + /@emotion/unitless/0.8.1: resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} dev: false @@ -3344,6 +3533,16 @@ packages: eslint-visitor-keys: 3.4.1 dev: true + /@eslint-community/eslint-utils/4.4.0_eslint@8.42.0: + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.42.0 + eslint-visitor-keys: 3.4.1 + dev: true + /@eslint-community/regexpp/4.5.1: resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -3387,6 +3586,11 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@eslint/js/8.42.0: + resolution: {integrity: sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + /@firebase/analytics-compat/0.2.6_7ojv3jwoyhxvcvq36w2wrks3za: resolution: {integrity: sha512-4MqpVLFkGK7NJf/5wPEEP7ePBJatwYpyjgJ+wQHQGHfzaCDgntOnl9rL2vbVGGKCnRqWtZDIWhctB86UWXaX2Q==} peerDependencies: @@ -3402,6 +3606,21 @@ packages: - '@firebase/app' dev: false + /@firebase/analytics-compat/0.2.6_q7henfwtppzleilrecduigslne: + resolution: {integrity: sha512-4MqpVLFkGK7NJf/5wPEEP7ePBJatwYpyjgJ+wQHQGHfzaCDgntOnl9rL2vbVGGKCnRqWtZDIWhctB86UWXaX2Q==} + peerDependencies: + '@firebase/app-compat': 0.x + dependencies: + '@firebase/analytics': 0.10.0_@firebase+app@0.9.12 + '@firebase/analytics-types': 0.8.0 + '@firebase/app-compat': 0.2.12 + '@firebase/component': 0.6.4 + '@firebase/util': 1.9.3 + tslib: 2.5.3 + transitivePeerDependencies: + - '@firebase/app' + dev: false + /@firebase/analytics-types/0.6.0: resolution: {integrity: sha512-kbMawY0WRPyL/lbknBkme4CNLl+Gw+E9G4OpNeXAauqoQiNkBgpIvZYy7BRT4sNGhZbxdxXxXbruqUwDzLmvTw==} dev: false @@ -3423,6 +3642,19 @@ packages: tslib: 2.5.2 dev: false + /@firebase/analytics/0.10.0_@firebase+app@0.9.12: + resolution: {integrity: sha512-Locv8gAqx0e+GX/0SI3dzmBY5e9kjVDtD+3zCFLJ0tH2hJwuCAiL+5WkHuxKj92rqQj/rvkBUCfA1ewlX2hehg==} + peerDependencies: + '@firebase/app': 0.x + dependencies: + '@firebase/app': 0.9.12 + '@firebase/component': 0.6.4 + '@firebase/installations': 0.6.4_@firebase+app@0.9.12 + '@firebase/logger': 0.4.0 + '@firebase/util': 1.9.3 + tslib: 2.5.3 + dev: false + /@firebase/analytics/0.6.18_z3hxu6tufpxc3mjsqzr74ipb4a: resolution: {integrity: sha512-FXNtYDxbs9ynPbzUVuG94BjFPOPpgJ7156660uvCBuKgoBCIVcNqKkJQQ7TH8384fqvGjbjdcgARY9jgAHbtog==} peerDependencies: @@ -3455,6 +3687,22 @@ packages: - '@firebase/app' dev: false + /@firebase/app-check-compat/0.3.7_q7henfwtppzleilrecduigslne: + resolution: {integrity: sha512-cW682AxsyP1G+Z0/P7pO/WT2CzYlNxoNe5QejVarW2o5ZxeWSSPAiVEwpEpQR/bUlUmdeWThYTMvBWaopdBsqw==} + peerDependencies: + '@firebase/app-compat': 0.x + dependencies: + '@firebase/app-check': 0.8.0_@firebase+app@0.9.12 + '@firebase/app-check-types': 0.5.0 + '@firebase/app-compat': 0.2.12 + '@firebase/component': 0.6.4 + '@firebase/logger': 0.4.0 + '@firebase/util': 1.9.3 + tslib: 2.5.3 + transitivePeerDependencies: + - '@firebase/app' + dev: false + /@firebase/app-check-interop-types/0.1.0: resolution: {integrity: sha512-uZfn9s4uuRsaX5Lwx+gFP3B6YsyOKUE+Rqa6z9ojT4VSRAsZFko9FRn6OxQUA1z5t5d08fY4pf+/+Dkd5wbdbA==} dev: false @@ -3463,6 +3711,10 @@ packages: resolution: {integrity: sha512-+3PQIeX6/eiVK+x/yg8r6xTNR97fN7MahFDm+jiQmDjcyvSefoGuTTNQuuMScGyx3vYUBeZn+Cp9kC0yY/9uxQ==} dev: false + /@firebase/app-check-interop-types/0.3.0: + resolution: {integrity: sha512-xAxHPZPIgFXnI+vb4sbBjZcde7ZluzPPaSK7Lx3/nmuVk4TjZvnL8ONnkd4ERQKL8WePQySU+pRcWkh8rDf5Sg==} + dev: false + /@firebase/app-check-types/0.3.1: resolution: {integrity: sha512-KJ+BqJbdNsx4QT/JIT1yDj5p6D+QN97iJs3GuHnORrqL+DU3RWc9nSYQsrY6Tv9jVWcOkMENXAgDT484vzsm2w==} dev: false @@ -3499,14 +3751,36 @@ packages: tslib: 2.5.2 dev: false - /@firebase/app-compat/0.2.10: - resolution: {integrity: sha512-kulrAW9JKkWeLeXKYjipCh60MmZcRC626NYpNWKxnjZ3YsVk6vgMuM+BHvhHQVp0fgfOq3hMNp5tyhlAB1Q1EQ==} + /@firebase/app-check/0.8.0_@firebase+app@0.9.12: + resolution: {integrity: sha512-dRDnhkcaC2FspMiRK/Vbp+PfsOAEP6ZElGm9iGFJ9fDqHoPs0HOPn7dwpJ51lCFi1+2/7n5pRPGhqF/F03I97g==} + peerDependencies: + '@firebase/app': 0.x dependencies: - '@firebase/app': 0.9.10 + '@firebase/app': 0.9.12 '@firebase/component': 0.6.4 '@firebase/logger': 0.4.0 '@firebase/util': 1.9.3 - tslib: 2.5.2 + tslib: 2.5.3 + dev: false + + /@firebase/app-compat/0.2.10: + resolution: {integrity: sha512-kulrAW9JKkWeLeXKYjipCh60MmZcRC626NYpNWKxnjZ3YsVk6vgMuM+BHvhHQVp0fgfOq3hMNp5tyhlAB1Q1EQ==} + dependencies: + '@firebase/app': 0.9.10 + '@firebase/component': 0.6.4 + '@firebase/logger': 0.4.0 + '@firebase/util': 1.9.3 + tslib: 2.5.2 + + /@firebase/app-compat/0.2.12: + resolution: {integrity: sha512-3EfputoACcXvgi2uN9RUQVDYSmRSR4R4TWJW9Wvs4hTib2I26ldvVhDHaheQq90IwGYrRa+TTWuzr4a5dCRkVQ==} + dependencies: + '@firebase/app': 0.9.12 + '@firebase/component': 0.6.4 + '@firebase/logger': 0.4.0 + '@firebase/util': 1.9.3 + tslib: 2.5.3 + dev: false /@firebase/app-types/0.6.3: resolution: {integrity: sha512-/M13DPPati7FQHEQ9Minjk1HGLm/4K4gs9bR4rzLCWJg64yGtVC0zNg9gDpkw9yc2cvol/mNFxqTtd4geGrwdw==} @@ -3538,6 +3812,16 @@ packages: idb: 7.1.1 tslib: 2.5.2 + /@firebase/app/0.9.12: + resolution: {integrity: sha512-VsE/WHZU8M9BCnHMbOi3FqIVIsoG4FlEehjp+XCDNE0zxn4BGgnpLdBu6/r9Bg565b1ND7dm6LSVRtewmeRb3w==} + dependencies: + '@firebase/component': 0.6.4 + '@firebase/logger': 0.4.0 + '@firebase/util': 1.9.3 + idb: 7.1.1 + tslib: 2.5.3 + dev: false + /@firebase/auth-compat/0.4.2_jrbxz4fs42uy26dcxayyy3ntay: resolution: {integrity: sha512-Q30e77DWXFmXEt5dg5JbqEDpjw9y3/PcP9LslDPR7fARmAOTIY9MM6HXzm9KC+dlrKH/+p6l8g9ifJiam9mc4A==} peerDependencies: @@ -3556,6 +3840,24 @@ packages: - encoding dev: false + /@firebase/auth-compat/0.4.2_m6m4sdusuiflqbhnqlemhbfiyu: + resolution: {integrity: sha512-Q30e77DWXFmXEt5dg5JbqEDpjw9y3/PcP9LslDPR7fARmAOTIY9MM6HXzm9KC+dlrKH/+p6l8g9ifJiam9mc4A==} + peerDependencies: + '@firebase/app-compat': 0.x + dependencies: + '@firebase/app-compat': 0.2.12 + '@firebase/auth': 0.23.2_@firebase+app@0.9.12 + '@firebase/auth-types': 0.12.0_pe7cbgjgh7vzd7cjsjzacprt4m + '@firebase/component': 0.6.4 + '@firebase/util': 1.9.3 + node-fetch: 2.6.7 + tslib: 2.5.3 + transitivePeerDependencies: + - '@firebase/app' + - '@firebase/app-types' + - encoding + dev: false + /@firebase/auth-interop-types/0.1.6_btkbmd3h5b2xery5rhjafs7ybe: resolution: {integrity: sha512-etIi92fW3CctsmR9e3sYM3Uqnoq861M0Id9mdOPF6PWIg38BXL5k4upCNBggGUpLIS0H1grMOvy/wn1xymwe2g==} peerDependencies: @@ -3626,6 +3928,21 @@ packages: - encoding dev: false + /@firebase/auth/0.23.2_@firebase+app@0.9.12: + resolution: {integrity: sha512-dM9iJ0R6tI1JczuGSxXmQbXAgtYie0K4WvKcuyuSTCu9V8eEDiz4tfa1sO3txsfvwg7nOY3AjoCyMYEdqZ8hdg==} + peerDependencies: + '@firebase/app': 0.x + dependencies: + '@firebase/app': 0.9.12 + '@firebase/component': 0.6.4 + '@firebase/logger': 0.4.0 + '@firebase/util': 1.9.3 + node-fetch: 2.6.7 + tslib: 2.5.3 + transitivePeerDependencies: + - encoding + dev: false + /@firebase/component/0.5.13: resolution: {integrity: sha512-hxhJtpD8Ppf/VU2Rlos6KFCEV77TGIGD5bJlkPK1+B/WUe0mC6dTjW7KhZtXTc+qRBp9nFHWcsIORnT8liHP9w==} dependencies: @@ -3643,7 +3960,7 @@ packages: resolution: {integrity: sha512-rLMyrXuO9jcAUCaQXCMjCMUsWrba5fzHlNK24xz5j2W6A/SRmK8mZJ/hn7V0fViLbxC0lPMtrK1eYzk6Fg03jA==} dependencies: '@firebase/util': 1.9.3 - tslib: 2.5.2 + tslib: 2.5.3 /@firebase/database-compat/0.1.8_qut2nla6d2mlm5hb6a72vara24: resolution: {integrity: sha512-dhXr5CSieBuKNdU96HgeewMQCT9EgOIkfF1GNy+iRrdl7BWLxmlKuvLfK319rmIytSs/vnCzcD9uqyxTeU/A3A==} @@ -3668,7 +3985,7 @@ packages: '@firebase/database-types': 0.10.4 '@firebase/logger': 0.4.0 '@firebase/util': 1.9.3 - tslib: 2.5.2 + tslib: 2.5.3 dev: false /@firebase/database-types/0.10.4: @@ -3730,7 +4047,24 @@ packages: '@firebase/logger': 0.4.0 '@firebase/util': 1.9.3 faye-websocket: 0.11.4 - tslib: 2.5.2 + tslib: 2.5.3 + dev: false + + /@firebase/firestore-compat/0.3.11_m6m4sdusuiflqbhnqlemhbfiyu: + resolution: {integrity: sha512-jPhySBBp6+Vt750WmeCK4it/NV9YHQEX+jJ7Va8wHOhVejy0zUhL5TsLF6Bz3hCjb4Dxn6XVgvuSqiuqY16yWw==} + peerDependencies: + '@firebase/app-compat': 0.x + dependencies: + '@firebase/app-compat': 0.2.12 + '@firebase/component': 0.6.4 + '@firebase/firestore': 3.12.2_@firebase+app@0.9.12 + '@firebase/firestore-types': 2.5.1_pe7cbgjgh7vzd7cjsjzacprt4m + '@firebase/util': 1.9.3 + tslib: 2.5.3 + transitivePeerDependencies: + - '@firebase/app' + - '@firebase/app-types' + - encoding dev: false /@firebase/firestore-compat/0.3.9_jrbxz4fs42uy26dcxayyy3ntay: @@ -3811,6 +4145,25 @@ packages: - encoding dev: false + /@firebase/firestore/3.12.2_@firebase+app@0.9.12: + resolution: {integrity: sha512-6EDIJ2V4hlUkPvAb1uH5DAz65ZvhStIM1oYGSUx6mt2UdEDu/0CAVS7xYBY6niTyM/+2r6XBW3hYG/1x1V27vg==} + engines: {node: '>=10.10.0'} + peerDependencies: + '@firebase/app': 0.x + dependencies: + '@firebase/app': 0.9.12 + '@firebase/component': 0.6.4 + '@firebase/logger': 0.4.0 + '@firebase/util': 1.9.3 + '@firebase/webchannel-wrapper': 0.10.1 + '@grpc/grpc-js': 1.7.3 + '@grpc/proto-loader': 0.6.13 + node-fetch: 2.6.7 + tslib: 2.5.3 + transitivePeerDependencies: + - encoding + dev: false + /@firebase/functions-compat/0.3.4_7ojv3jwoyhxvcvq36w2wrks3za: resolution: {integrity: sha512-kxVxTGyLV1MBR3sp3mI+eQ6JBqz0G5bk310F8eX4HzDFk4xjk5xY0KdHktMH+edM2xs1BOg0vwvvsAHczIjB+w==} peerDependencies: @@ -3827,6 +4180,22 @@ packages: - encoding dev: false + /@firebase/functions-compat/0.3.5_q7henfwtppzleilrecduigslne: + resolution: {integrity: sha512-uD4jwgwVqdWf6uc3NRKF8cSZ0JwGqSlyhPgackyUPe+GAtnERpS4+Vr66g0b3Gge0ezG4iyHo/EXW/Hjx7QhHw==} + peerDependencies: + '@firebase/app-compat': 0.x + dependencies: + '@firebase/app-compat': 0.2.12 + '@firebase/component': 0.6.4 + '@firebase/functions': 0.10.0_@firebase+app@0.9.12 + '@firebase/functions-types': 0.6.0 + '@firebase/util': 1.9.3 + tslib: 2.5.3 + transitivePeerDependencies: + - '@firebase/app' + - encoding + dev: false + /@firebase/functions-types/0.4.0: resolution: {integrity: sha512-3KElyO3887HNxtxNF1ytGFrNmqD+hheqjwmT3sI09FaDCuaxGbOnsXAXH2eQ049XRXw9YQpHMgYws/aUNgXVyQ==} dev: false @@ -3835,6 +4204,23 @@ packages: resolution: {integrity: sha512-hfEw5VJtgWXIRf92ImLkgENqpL6IWpYaXVYiRkFY1jJ9+6tIhWM7IzzwbevwIIud/jaxKVdRzD7QBWfPmkwCYw==} dev: false + /@firebase/functions/0.10.0_@firebase+app@0.9.12: + resolution: {integrity: sha512-2U+fMNxTYhtwSpkkR6WbBcuNMOVaI7MaH3cZ6UAeNfj7AgEwHwMIFLPpC13YNZhno219F0lfxzTAA0N62ndWzA==} + peerDependencies: + '@firebase/app': 0.x + dependencies: + '@firebase/app': 0.9.12 + '@firebase/app-check-interop-types': 0.3.0 + '@firebase/auth-interop-types': 0.2.1 + '@firebase/component': 0.6.4 + '@firebase/messaging-interop-types': 0.2.0 + '@firebase/util': 1.9.3 + node-fetch: 2.6.7 + tslib: 2.5.3 + transitivePeerDependencies: + - encoding + dev: false + /@firebase/functions/0.6.16_z3hxu6tufpxc3mjsqzr74ipb4a: resolution: {integrity: sha512-KDPjLKSjtR/zEH06YXXbdWTi8gzbKHGRzL/+ibZQA/1MLq0IilfM+1V1Fh8bADsMCUkxkqoc1yiA4SUbH5ajJA==} peerDependencies: @@ -3885,6 +4271,22 @@ packages: - '@firebase/app-types' dev: false + /@firebase/installations-compat/0.2.4_m6m4sdusuiflqbhnqlemhbfiyu: + resolution: {integrity: sha512-LI9dYjp0aT9Njkn9U4JRrDqQ6KXeAmFbRC0E7jI7+hxl5YmRWysq5qgQl22hcWpTk+cm3es66d/apoDU/A9n6Q==} + peerDependencies: + '@firebase/app-compat': 0.x + dependencies: + '@firebase/app-compat': 0.2.12 + '@firebase/component': 0.6.4 + '@firebase/installations': 0.6.4_@firebase+app@0.9.12 + '@firebase/installations-types': 0.5.0_@firebase+app-types@0.9.0 + '@firebase/util': 1.9.3 + tslib: 2.5.3 + transitivePeerDependencies: + - '@firebase/app' + - '@firebase/app-types' + dev: false + /@firebase/installations-types/0.3.4_@firebase+app-types@0.6.3: resolution: {integrity: sha512-RfePJFovmdIXb6rYwtngyxuEcWnOrzdZd9m7xAW0gRxDIjBT20n3BOhjpmgRWXo/DAxRmS7bRjWAyTHY9cqN7Q==} peerDependencies: @@ -3928,6 +4330,18 @@ packages: tslib: 2.5.2 dev: false + /@firebase/installations/0.6.4_@firebase+app@0.9.12: + resolution: {integrity: sha512-u5y88rtsp7NYkCHC3ElbFBrPtieUybZluXyzl7+4BsIz4sqb4vSAuwHEUgCgCeaQhvsnxDEU6icly8U9zsJigA==} + peerDependencies: + '@firebase/app': 0.x + dependencies: + '@firebase/app': 0.9.12 + '@firebase/component': 0.6.4 + '@firebase/util': 1.9.3 + idb: 7.0.1 + tslib: 2.5.3 + dev: false + /@firebase/logger/0.2.6: resolution: {integrity: sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw==} dev: false @@ -3940,7 +4354,7 @@ packages: /@firebase/logger/0.4.0: resolution: {integrity: sha512-eRKSeykumZ5+cJPdxxJRgAC3G5NknY2GwEbKfymdnXtnT0Ucm4pspfR6GT4MUQEDuJwRVbVcSx85kgJulMoFFA==} dependencies: - tslib: 2.5.2 + tslib: 2.5.3 /@firebase/messaging-compat/0.2.4_7ojv3jwoyhxvcvq36w2wrks3za: resolution: {integrity: sha512-lyFjeUhIsPRYDPNIkYX1LcZMpoVbBWXX4rPl7c/rqc7G+EUea7IEtSt4MxTvh6fDfPuzLn7+FZADfscC+tNMfg==} @@ -3956,6 +4370,20 @@ packages: - '@firebase/app' dev: false + /@firebase/messaging-compat/0.2.4_q7henfwtppzleilrecduigslne: + resolution: {integrity: sha512-lyFjeUhIsPRYDPNIkYX1LcZMpoVbBWXX4rPl7c/rqc7G+EUea7IEtSt4MxTvh6fDfPuzLn7+FZADfscC+tNMfg==} + peerDependencies: + '@firebase/app-compat': 0.x + dependencies: + '@firebase/app-compat': 0.2.12 + '@firebase/component': 0.6.4 + '@firebase/messaging': 0.12.4_@firebase+app@0.9.12 + '@firebase/util': 1.9.3 + tslib: 2.5.3 + transitivePeerDependencies: + - '@firebase/app' + dev: false + /@firebase/messaging-interop-types/0.2.0: resolution: {integrity: sha512-ujA8dcRuVeBixGR9CtegfpU4YmZf3Lt7QYkcj693FFannwNuZgfAYaTmbJ40dtjB81SAu6tbFPL9YLNT15KmOQ==} dev: false @@ -3982,6 +4410,20 @@ packages: tslib: 2.5.2 dev: false + /@firebase/messaging/0.12.4_@firebase+app@0.9.12: + resolution: {integrity: sha512-6JLZct6zUaex4g7HI3QbzeUrg9xcnmDAPTWpkoMpd/GoSVWH98zDoWXMGrcvHeCAIsLpFMe4MPoZkJbrPhaASw==} + peerDependencies: + '@firebase/app': 0.x + dependencies: + '@firebase/app': 0.9.12 + '@firebase/component': 0.6.4 + '@firebase/installations': 0.6.4_@firebase+app@0.9.12 + '@firebase/messaging-interop-types': 0.2.0 + '@firebase/util': 1.9.3 + idb: 7.0.1 + tslib: 2.5.3 + dev: false + /@firebase/messaging/0.8.0_z3hxu6tufpxc3mjsqzr74ipb4a: resolution: {integrity: sha512-hkFHDyVe1kMcY9KEG+prjCbvS6MtLUgVFUbbQqq7JQfiv58E07YCzRUcMrJolbNi/1QHH6Jv16DxNWjJB9+/qA==} peerDependencies: @@ -4014,6 +4456,22 @@ packages: - '@firebase/app' dev: false + /@firebase/performance-compat/0.2.4_q7henfwtppzleilrecduigslne: + resolution: {integrity: sha512-nnHUb8uP9G8islzcld/k6Bg5RhX62VpbAb/Anj7IXs/hp32Eb2LqFPZK4sy3pKkBUO5wcrlRWQa6wKOxqlUqsg==} + peerDependencies: + '@firebase/app-compat': 0.x + dependencies: + '@firebase/app-compat': 0.2.12 + '@firebase/component': 0.6.4 + '@firebase/logger': 0.4.0 + '@firebase/performance': 0.6.4_@firebase+app@0.9.12 + '@firebase/performance-types': 0.2.0 + '@firebase/util': 1.9.3 + tslib: 2.5.3 + transitivePeerDependencies: + - '@firebase/app' + dev: false + /@firebase/performance-types/0.0.13: resolution: {integrity: sha512-6fZfIGjQpwo9S5OzMpPyqgYAUZcFzZxHFqOyNtorDIgNXq33nlldTL/vtaUZA8iT9TT5cJlCrF/jthKU7X21EA==} dev: false @@ -4051,6 +4509,19 @@ packages: tslib: 2.5.2 dev: false + /@firebase/performance/0.6.4_@firebase+app@0.9.12: + resolution: {integrity: sha512-HfTn/bd8mfy/61vEqaBelNiNnvAbUtME2S25A67Nb34zVuCSCRIX4SseXY6zBnOFj3oLisaEqhVcJmVPAej67g==} + peerDependencies: + '@firebase/app': 0.x + dependencies: + '@firebase/app': 0.9.12 + '@firebase/component': 0.6.4 + '@firebase/installations': 0.6.4_@firebase+app@0.9.12 + '@firebase/logger': 0.4.0 + '@firebase/util': 1.9.3 + tslib: 2.5.3 + dev: false + /@firebase/polyfill/0.3.36: resolution: {integrity: sha512-zMM9oSJgY6cT2jx3Ce9LYqb0eIpDE52meIzd/oe/y70F+v9u1LDqk5kUF5mf16zovGBWMNFmgzlsh6Wj0OsFtg==} dependencies: @@ -4075,6 +4546,22 @@ packages: - '@firebase/app' dev: false + /@firebase/remote-config-compat/0.2.4_q7henfwtppzleilrecduigslne: + resolution: {integrity: sha512-FKiki53jZirrDFkBHglB3C07j5wBpitAaj8kLME6g8Mx+aq7u9P7qfmuSRytiOItADhWUj7O1JIv7n9q87SuwA==} + peerDependencies: + '@firebase/app-compat': 0.x + dependencies: + '@firebase/app-compat': 0.2.12 + '@firebase/component': 0.6.4 + '@firebase/logger': 0.4.0 + '@firebase/remote-config': 0.4.4_@firebase+app@0.9.12 + '@firebase/remote-config-types': 0.3.0 + '@firebase/util': 1.9.3 + tslib: 2.5.3 + transitivePeerDependencies: + - '@firebase/app' + dev: false + /@firebase/remote-config-types/0.1.9: resolution: {integrity: sha512-G96qnF3RYGbZsTRut7NBX0sxyczxt1uyCgXQuH/eAfUCngxjEGcZQnBdy6mvSdqdJh5mC31rWPO4v9/s7HwtzA==} dev: false @@ -4112,6 +4599,19 @@ packages: tslib: 2.5.2 dev: false + /@firebase/remote-config/0.4.4_@firebase+app@0.9.12: + resolution: {integrity: sha512-x1ioTHGX8ZwDSTOVp8PBLv2/wfwKzb4pxi0gFezS5GCJwbLlloUH4YYZHHS83IPxnua8b6l0IXUaWd0RgbWwzQ==} + peerDependencies: + '@firebase/app': 0.x + dependencies: + '@firebase/app': 0.9.12 + '@firebase/component': 0.6.4 + '@firebase/installations': 0.6.4_@firebase+app@0.9.12 + '@firebase/logger': 0.4.0 + '@firebase/util': 1.9.3 + tslib: 2.5.3 + dev: false + /@firebase/storage-compat/0.3.2_jrbxz4fs42uy26dcxayyy3ntay: resolution: {integrity: sha512-wvsXlLa9DVOMQJckbDNhXKKxRNNewyUhhbXev3t8kSgoCotd1v3MmqhKKz93ePhDnhHnDs7bYHy+Qa8dRY6BXw==} peerDependencies: @@ -4129,6 +4629,23 @@ packages: - encoding dev: false + /@firebase/storage-compat/0.3.2_m6m4sdusuiflqbhnqlemhbfiyu: + resolution: {integrity: sha512-wvsXlLa9DVOMQJckbDNhXKKxRNNewyUhhbXev3t8kSgoCotd1v3MmqhKKz93ePhDnhHnDs7bYHy+Qa8dRY6BXw==} + peerDependencies: + '@firebase/app-compat': 0.x + dependencies: + '@firebase/app-compat': 0.2.12 + '@firebase/component': 0.6.4 + '@firebase/storage': 0.11.2_@firebase+app@0.9.12 + '@firebase/storage-types': 0.8.0_pe7cbgjgh7vzd7cjsjzacprt4m + '@firebase/util': 1.9.3 + tslib: 2.5.3 + transitivePeerDependencies: + - '@firebase/app' + - '@firebase/app-types' + - encoding + dev: false + /@firebase/storage-types/0.5.0_btkbmd3h5b2xery5rhjafs7ybe: resolution: {integrity: sha512-6Wv3Lu7s18hsgW7HG4BFwycTquZ3m/C8bjBoOsmPu0TD6M1GKwCzOC7qBdN7L6tRYPh8ipTj5+rPFrmhGfUVKA==} peerDependencies: @@ -4163,6 +4680,20 @@ packages: - encoding dev: false + /@firebase/storage/0.11.2_@firebase+app@0.9.12: + resolution: {integrity: sha512-CtvoFaBI4hGXlXbaCHf8humajkbXhs39Nbh6MbNxtwJiCqxPy9iH3D3CCfXAvP0QvAAwmJUTK3+z9a++Kc4nkA==} + peerDependencies: + '@firebase/app': 0.x + dependencies: + '@firebase/app': 0.9.12 + '@firebase/component': 0.6.4 + '@firebase/util': 1.9.3 + node-fetch: 2.6.7 + tslib: 2.5.3 + transitivePeerDependencies: + - encoding + dev: false + /@firebase/storage/0.7.1_z3hxu6tufpxc3mjsqzr74ipb4a: resolution: {integrity: sha512-T7uH6lAgNs/Zq8V3ElvR3ypTQSGWon/R7WRM2I5Td/d0PTsNIIHSAGB6q4Au8mQEOz3HDTfjNQ9LuQ07R6S2ug==} peerDependencies: @@ -4194,12 +4725,16 @@ packages: /@firebase/util/1.9.3: resolution: {integrity: sha512-DY02CRhOZwpzO36fHpuVysz6JZrscPiBXD0fXp6qSrL9oNOx5KWICKdR95C0lSITzxp0TZosVyHqzatE8JbcjA==} dependencies: - tslib: 2.5.2 + tslib: 2.5.3 /@firebase/webchannel-wrapper/0.10.0: resolution: {integrity: sha512-2I8y+vJVrPfPFJrnRGpao1Qc2Gu7wmYoo5ed2s5zK/DUGgcyY1Yr/xC0YdnKM4pi7rG3HqwW9ehAKUXoTMLdoA==} dev: false + /@firebase/webchannel-wrapper/0.10.1: + resolution: {integrity: sha512-Dq5rYfEpdeel0bLVN+nfD1VWmzCkK+pJbSjIawGE+RY4+NIJqhbUDDQjvV0NUK84fMfwxvtFoCtEe70HfZjFcw==} + dev: false + /@firebase/webchannel-wrapper/0.5.1: resolution: {integrity: sha512-dZMzN0uAjwJXWYYAcnxIwXqRTZw3o14hGe7O6uhwjD1ZQWPVYA5lASgnNskEBra0knVBsOXB4KXg+HnlKewN/A==} dev: false @@ -4286,7 +4821,7 @@ packages: engines: {node: ^8.13.0 || >=10.10.0} dependencies: '@grpc/proto-loader': 0.7.7 - '@types/node': 20.2.3 + '@types/node': 20.3.0 dev: false /@grpc/grpc-js/1.8.14: @@ -4351,15 +4886,16 @@ packages: '@hapi/hoek': 8.5.1 dev: false - /@highlight-run/react/1.2.1_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-1jNQSvxXdE8gplA59xFiefX4M4lzqlpX1Y9StsuE6kcZ+5Um/EDAzv5HxPUd83VGx3CIy94T5ABD9BSi0M+7hg==} - peerDependencies: - react: '>=16' - react-dom: '>=16' + /@humanwhocodes/config-array/0.11.10: + resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} + engines: {node: '>=10.10.0'} dependencies: - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - dev: false + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true /@humanwhocodes/config-array/0.11.8: resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} @@ -4858,7 +5394,7 @@ packages: '@jest/schemas': 29.4.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 12.20.55 + '@types/node': 20.3.0 '@types/yargs': 17.0.24 chalk: 4.1.2 @@ -5026,11 +5562,39 @@ packages: react-is: 18.2.0 dev: false + /@mui/base/5.0.0-beta.4_qov4cjxi5tqn7nekji4kvvduvu: + resolution: {integrity: sha512-ejhtqYJpjDgHGEljjMBQWZ22yEK0OzIXNa7toJmmXsP4TT3W7xVy8bTJ0TniPDf+JNjrsgfgiFTDGdlEhV1E+g==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.5 + '@emotion/is-prop-valid': 1.2.1 + '@mui/types': 7.2.4_@types+react@18.2.11 + '@mui/utils': 5.13.1_react@18.2.0 + '@popperjs/core': 2.11.8 + '@types/react': 18.2.11 + clsx: 1.2.1 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-is: 18.2.0 + dev: false + /@mui/core-downloads-tracker/5.13.2: resolution: {integrity: sha512-aOLCXMCySMFL2WmUhnz+DjF84AoFVu8rn35OsL759HXOZMz8zhEwVf5w/xxkWx7DycM2KXDTgAvYW48nTfqTLA==} dev: false - /@mui/icons-material/5.11.16_6hbl4khqhrefackclj4yen3xku: + /@mui/core-downloads-tracker/5.13.4: + resolution: {integrity: sha512-yFrMWcrlI0TqRN5jpb6Ma9iI7sGTHpytdzzL33oskFHNQ8UgrtPas33Y1K7sWAMwCrr1qbWDrOHLAQG4tAzuSw==} + dev: false + + /@mui/icons-material/5.11.16_blmi2km3nwxbobeuj7tqgm2pxm: resolution: {integrity: sha512-oKkx9z9Kwg40NtcIajF9uOXhxiyTZrrm9nmIJ4UjkU2IdHpd4QVLbCc/5hZN/y0C6qzi2Zlxyr9TGddQx2vx2A==} engines: {node: '>=12.0.0'} peerDependencies: @@ -5041,9 +5605,9 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.21.5 - '@mui/material': 5.13.2_rcyk3p3henusk3yzgoxovlybni - '@types/react': 18.2.7 + '@babel/runtime': 7.22.5 + '@mui/material': 5.13.5_juzjxnossgkja5qzwfnv7rirzi + '@types/react': 18.2.11 react: 18.2.0 dev: false @@ -5132,8 +5696,8 @@ packages: react-is: 18.2.0 dev: false - /@mui/lab/5.0.0-alpha.131_n45mwpqfp37amclvxr3l7u6rri: - resolution: {integrity: sha512-NVC5ZqC0iJ1Cn6VMxyazB1EPhWKztLnKXXtFO0/nZaFuADu1BlLHg+0eTMKZwEXFbJybcAopCkA5hmuk/R7INA==} + /@mui/lab/5.0.0-alpha.134_yli66o5dp3cmyz67ihwukr6bwm: + resolution: {integrity: sha512-GhvuM2dNOi6hzjbeGEocWVozgyyeUn7RBmZhLFtniROauxmPCZMcTsEU+GAxmpyYppqHuI8flP6tGKgMuEAK/g==} engines: {node: '>=12.0.0'} peerDependencies: '@emotion/react': ^11.5.0 @@ -5150,15 +5714,15 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.21.5 - '@emotion/react': 11.11.0_bfoz4c5kom3f237nig75ykjhhy - '@emotion/styled': 11.11.0_a2i5n5lojrfshkutjtdzmeomky - '@mui/base': 5.0.0-beta.2_psemcf34ovg2dno52nagbe3daa - '@mui/material': 5.13.2_rcyk3p3henusk3yzgoxovlybni - '@mui/system': 5.13.2_w23gqpxud6khtzkrfd5q73try4 - '@mui/types': 7.2.4_@types+react@18.2.7 + '@babel/runtime': 7.22.5 + '@emotion/react': 11.11.1_j4swkgacdxrhexoapez3itylte + '@emotion/styled': 11.11.0_nu4qc6kdcs236nxv7mh5bc5le4 + '@mui/base': 5.0.0-beta.4_qov4cjxi5tqn7nekji4kvvduvu + '@mui/material': 5.13.5_juzjxnossgkja5qzwfnv7rirzi + '@mui/system': 5.13.5_wmjbzybowvnc3inhzdbctozd7q + '@mui/types': 7.2.4_@types+react@18.2.11 '@mui/utils': 5.13.1_react@18.2.0 - '@types/react': 18.2.7 + '@types/react': 18.2.11 clsx: 1.2.1 prop-types: 15.8.1 react: 18.2.0 @@ -5238,6 +5802,42 @@ packages: react-transition-group: 4.4.5_sfoxds7t5ydpegc3knd667wn6m dev: false + /@mui/material/5.13.5_juzjxnossgkja5qzwfnv7rirzi: + resolution: {integrity: sha512-eMay+Ue1OYXOFMQA5Aau7qbAa/kWHLAyi0McsbPTWssCbGehqkF6CIdPsfVGw6tlO+xPee1hUitphHJNL3xpOQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.5 + '@emotion/react': 11.11.1_j4swkgacdxrhexoapez3itylte + '@emotion/styled': 11.11.0_nu4qc6kdcs236nxv7mh5bc5le4 + '@mui/base': 5.0.0-beta.4_qov4cjxi5tqn7nekji4kvvduvu + '@mui/core-downloads-tracker': 5.13.4 + '@mui/system': 5.13.5_wmjbzybowvnc3inhzdbctozd7q + '@mui/types': 7.2.4_@types+react@18.2.11 + '@mui/utils': 5.13.1_react@18.2.0 + '@types/react': 18.2.11 + '@types/react-transition-group': 4.4.6 + clsx: 1.2.1 + csstype: 3.1.2 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-is: 18.2.0 + react-transition-group: 4.4.5_biqbaboplfbrettd7655fr4n2y + dev: false + /@mui/private-theming/5.13.1_bfoz4c5kom3f237nig75ykjhhy: resolution: {integrity: sha512-HW4npLUD9BAkVppOUZHeO1FOKUJWAwbpy0VQoGe3McUYTlck1HezGHQCfBQ5S/Nszi7EViqiimECVl9xi+/WjQ==} engines: {node: '>=12.0.0'} @@ -5255,6 +5855,23 @@ packages: react: 18.2.0 dev: false + /@mui/private-theming/5.13.1_j4swkgacdxrhexoapez3itylte: + resolution: {integrity: sha512-HW4npLUD9BAkVppOUZHeO1FOKUJWAwbpy0VQoGe3McUYTlck1HezGHQCfBQ5S/Nszi7EViqiimECVl9xi+/WjQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.5 + '@mui/utils': 5.13.1_react@18.2.0 + '@types/react': 18.2.11 + prop-types: 15.8.1 + react: 18.2.0 + dev: false + /@mui/private-theming/5.13.1_wfmuqocisy6ijxsutdsg4s4lmy: resolution: {integrity: sha512-HW4npLUD9BAkVppOUZHeO1FOKUJWAwbpy0VQoGe3McUYTlck1HezGHQCfBQ5S/Nszi7EViqiimECVl9xi+/WjQ==} engines: {node: '>=12.0.0'} @@ -5272,6 +5889,28 @@ packages: react: 17.0.2 dev: false + /@mui/styled-engine/5.13.2_5uavjbr3lmuxf4a3t6dmknaeea: + resolution: {integrity: sha512-VCYCU6xVtXOrIN8lcbuPmoG+u7FYuOERG++fpY74hPpEWkyFQG97F+/XfTQVYzlR2m7nPjnwVUgATcTCMEaMvw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.4.1 + '@emotion/styled': ^11.3.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + dependencies: + '@babel/runtime': 7.22.5 + '@emotion/cache': 11.11.0 + '@emotion/react': 11.11.1_j4swkgacdxrhexoapez3itylte + '@emotion/styled': 11.11.0_nu4qc6kdcs236nxv7mh5bc5le4 + csstype: 3.1.2 + prop-types: 15.8.1 + react: 18.2.0 + dev: false + /@mui/styled-engine/5.13.2_yiqp6zyzlsf3e67mwwqwha2b2u: resolution: {integrity: sha512-VCYCU6xVtXOrIN8lcbuPmoG+u7FYuOERG++fpY74hPpEWkyFQG97F+/XfTQVYzlR2m7nPjnwVUgATcTCMEaMvw==} engines: {node: '>=12.0.0'} @@ -5376,6 +6015,36 @@ packages: react: 18.2.0 dev: false + /@mui/system/5.13.5_wmjbzybowvnc3inhzdbctozd7q: + resolution: {integrity: sha512-n0gzUxoZ2ZHZgnExkh2Htvo9uW2oakofgPRQrDoa/GQOWyRD0NH9MDszBwOb6AAoXZb+OV5TE7I4LeZ/dzgHYA==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.5 + '@emotion/react': 11.11.1_j4swkgacdxrhexoapez3itylte + '@emotion/styled': 11.11.0_nu4qc6kdcs236nxv7mh5bc5le4 + '@mui/private-theming': 5.13.1_j4swkgacdxrhexoapez3itylte + '@mui/styled-engine': 5.13.2_5uavjbr3lmuxf4a3t6dmknaeea + '@mui/types': 7.2.4_@types+react@18.2.11 + '@mui/utils': 5.13.1_react@18.2.0 + '@types/react': 18.2.11 + clsx: 1.2.1 + csstype: 3.1.2 + prop-types: 15.8.1 + react: 18.2.0 + dev: false + /@mui/types/7.2.4_@types+react@17.0.59: resolution: {integrity: sha512-LBcwa8rN84bKF+f5sDyku42w1NTxaPgPyYKODsh01U1fVstTClbUoSA96oyRBnSNyEiAVjKm6Gwx9vjR+xyqHA==} peerDependencies: @@ -5387,6 +6056,17 @@ packages: '@types/react': 17.0.59 dev: false + /@mui/types/7.2.4_@types+react@18.2.11: + resolution: {integrity: sha512-LBcwa8rN84bKF+f5sDyku42w1NTxaPgPyYKODsh01U1fVstTClbUoSA96oyRBnSNyEiAVjKm6Gwx9vjR+xyqHA==} + peerDependencies: + '@types/react': '*' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.11 + dev: false + /@mui/types/7.2.4_@types+react@18.2.7: resolution: {integrity: sha512-LBcwa8rN84bKF+f5sDyku42w1NTxaPgPyYKODsh01U1fVstTClbUoSA96oyRBnSNyEiAVjKm6Gwx9vjR+xyqHA==} peerDependencies: @@ -5418,7 +6098,7 @@ packages: peerDependencies: react: ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': 7.22.5 '@types/prop-types': 15.7.5 '@types/react-is': 18.2.0 prop-types: 15.8.1 @@ -5426,20 +6106,24 @@ packages: react-is: 18.2.0 dev: false - /@mui/x-date-pickers/5.0.20_agp2y6jbdxq2gjyzwpkajpjvtu: - resolution: {integrity: sha512-ERukSeHIoNLbI1C2XRhF9wRhqfsr+Q4B1SAw2ZlU7CWgcG8UBOxgqRKDEOVAIoSWL+DWT6GRuQjOKvj6UXZceA==} - engines: {node: '>=12.0.0'} + /@mui/x-date-pickers/6.7.0_h77fixxj6awxrtlxc6jikqis6y: + resolution: {integrity: sha512-Nf1wpBKp1DHS4gSrPXbxUfEBSVeqxVuZqJRh8oqreBG4ogZ8Sas3QpWIMGehpjmBjMXGyeWl0RUlTyUwMwhdng==} + engines: {node: '>=14.0.0'} peerDependencies: '@emotion/react': ^11.9.0 '@emotion/styled': ^11.8.1 - '@mui/material': ^5.4.1 - '@mui/system': ^5.4.1 + '@mui/base': ^5.0.0-alpha.87 + '@mui/material': ^5.8.6 + '@mui/system': ^5.8.0 date-fns: ^2.25.0 + date-fns-jalali: ^2.13.0-0 dayjs: ^1.10.7 - luxon: ^1.28.0 || ^2.0.0 || ^3.0.0 - moment: ^2.29.1 - react: ^17.0.2 || ^18.0.0 - react-dom: ^17.0.2 || ^18.0.0 + luxon: ^3.0.2 + moment: ^2.29.4 + moment-hijri: ^2.1.2 + moment-jalaali: ^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 peerDependenciesMeta: '@emotion/react': optional: true @@ -5447,32 +6131,33 @@ packages: optional: true date-fns: optional: true + date-fns-jalali: + optional: true dayjs: optional: true luxon: optional: true moment: optional: true + moment-hijri: + optional: true + moment-jalaali: + optional: true dependencies: - '@babel/runtime': 7.21.5 - '@date-io/core': 2.16.0 - '@date-io/date-fns': 2.16.0 - '@date-io/dayjs': 2.16.0_dayjs@1.11.7 - '@date-io/luxon': 2.16.1 - '@date-io/moment': 2.16.1 - '@emotion/react': 11.11.0_bfoz4c5kom3f237nig75ykjhhy - '@emotion/styled': 11.11.0_a2i5n5lojrfshkutjtdzmeomky - '@mui/material': 5.13.2_rcyk3p3henusk3yzgoxovlybni - '@mui/system': 5.13.2_w23gqpxud6khtzkrfd5q73try4 + '@babel/runtime': 7.22.5 + '@emotion/react': 11.11.1_j4swkgacdxrhexoapez3itylte + '@emotion/styled': 11.11.0_nu4qc6kdcs236nxv7mh5bc5le4 + '@mui/base': 5.0.0-beta.4_qov4cjxi5tqn7nekji4kvvduvu + '@mui/material': 5.13.5_juzjxnossgkja5qzwfnv7rirzi + '@mui/system': 5.13.5_wmjbzybowvnc3inhzdbctozd7q '@mui/utils': 5.13.1_react@18.2.0 '@types/react-transition-group': 4.4.6 clsx: 1.2.1 - dayjs: 1.11.7 + dayjs: 1.11.8 prop-types: 15.8.1 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 react-transition-group: 4.4.5_biqbaboplfbrettd7655fr4n2y - rifm: 0.12.1_react@18.2.0 dev: false /@netlify/binary-info/1.0.0: @@ -6522,6 +7207,10 @@ packages: resolution: {integrity: sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw==} dev: false + /@popperjs/core/2.11.8: + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + dev: false + /@preact/preset-vite/2.5.0_tfrjk6grgmkdf6fkownsttio4e: resolution: {integrity: sha512-BUhfB2xQ6ex0yPkrT1Z3LbfPzjpJecOZwQ/xJrXGFSZD84+ObyS//41RdEoQCMWsM0t7UHGaujUxUBub7WM1Jw==} peerDependencies: @@ -6614,6 +7303,11 @@ packages: engines: {node: '>=14'} dev: false + /@remix-run/router/1.6.3: + resolution: {integrity: sha512-EXJysQ7J3veRECd0kZFQwYYd5sJMcq2O/m60zu1W2l3oVQ9xtub8jTOtYRE0+M2iomyG/W3Ps7+vp2kna0C27Q==} + engines: {node: '>=14'} + dev: false + /@rollup/plugin-babel/5.3.1_ixpapmkxoyzypvxfdre42vzpgy: resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} @@ -7162,8 +7856,8 @@ packages: resolution: {integrity: sha512-d9ULIT+a4EXLX3UU8FBjauG9NnsZHkHztXoIcTsOKoOw030fyjheN9svkTULjJxtYag9DZz5Jz5qkWZDPxTFwA==} engines: {node: '>=12'} dependencies: - '@babel/code-frame': 7.21.4 - '@babel/runtime': 7.21.5 + '@babel/code-frame': 7.22.5 + '@babel/runtime': 7.22.5 '@types/aria-query': 5.0.1 aria-query: 5.1.3 chalk: 4.1.2 @@ -7176,8 +7870,8 @@ packages: resolution: {integrity: sha512-Dffe68pGwI6WlLRYR2I0piIkyole9cSBH5jGQKCGMRpHW5RHCqAUaqc2Kv0tUyd4dU4DLPKhJIjyKOnjv4tuUw==} engines: {node: '>=14'} dependencies: - '@babel/code-frame': 7.21.4 - '@babel/runtime': 7.21.5 + '@babel/code-frame': 7.22.5 + '@babel/runtime': 7.22.5 '@types/aria-query': 5.0.1 aria-query: 5.1.3 chalk: 4.1.2 @@ -7190,7 +7884,7 @@ packages: engines: {node: '>=8', npm: '>=6', yarn: '>=1'} dependencies: '@adobe/css-tools': 4.2.0 - '@babel/runtime': 7.21.5 + '@babel/runtime': 7.22.5 '@types/testing-library__jest-dom': 5.14.6 aria-query: 5.1.3 chalk: 3.0.0 @@ -7222,20 +7916,6 @@ packages: react-dom: 17.0.2_react@17.0.2 dev: false - /@testing-library/react/13.4.0_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==} - engines: {node: '>=12'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - dependencies: - '@babel/runtime': 7.21.5 - '@testing-library/dom': 8.20.0 - '@types/react-dom': 18.2.4 - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - dev: true - /@testing-library/react/14.0.0_biqbaboplfbrettd7655fr4n2y: resolution: {integrity: sha512-S04gSNJbYE30TlIMLTzv6QCTzt9AqIF5y6s6SzVFILNcNvbV/jU96GeiTPillGQo+Ny64M/5PV7klNYYgv5Dfg==} engines: {node: '>=14'} @@ -7243,7 +7923,7 @@ packages: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': 7.22.5 '@testing-library/dom': 9.3.0 '@types/react-dom': 18.2.4 react: 18.2.0 @@ -7484,6 +8164,10 @@ packages: /@types/json-schema/7.0.11: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + /@types/json-schema/7.0.12: + resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} + dev: true + /@types/json5/0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} @@ -7531,13 +8215,12 @@ packages: /@types/node/16.18.32: resolution: {integrity: sha512-zpnXe4dEz6PrWz9u7dqyRoq9VxwCvoXRPy/ewhmMa1CgEyVmtL1NJPQ2MX+4pf97vetquVKkpiMx0MwI8pjNOw==} - /@types/node/18.16.14: - resolution: {integrity: sha512-+ImzUB3mw2c5ISJUq0punjDilUQ5GnUim0ZRvchHIWJmOC0G+p0kzhXBqj6cDjK0QdPFwzrHWgrJp3RPvCG5qg==} - dev: true - /@types/node/20.2.3: resolution: {integrity: sha512-pg9d0yC4rVNWQzX8U7xb4olIOFuuVL9za3bzMT2pu2SU0SNEi66i2qrvhE2qt0HvkhuCaWJu7pLNOt/Pj8BIrw==} + /@types/node/20.3.0: + resolution: {integrity: sha512-cumHmIAf6On83X7yP+LrsEyUOf/YlociZelmpRYaGFydoaPdxdt80MAbu6vWerQT2COCp2nPvHdsbD7tHn/YlQ==} + /@types/normalize-package-data/2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -7563,7 +8246,7 @@ packages: /@types/react-beforeunload/2.1.1: resolution: {integrity: sha512-KER+M11lrXhp++tHDm9P7YWaKKBWwNyZkwnHSV3QQXGU2ZcP9x+O0Y7ZDZqGQD1OlGF4P8fmcpll3ol3a8KXsQ==} dependencies: - '@types/react': 18.2.7 + '@types/react': 18.2.11 dev: true /@types/react-dom/17.0.20: @@ -7575,26 +8258,26 @@ packages: /@types/react-dom/18.2.4: resolution: {integrity: sha512-G2mHoTMTL4yoydITgOGwWdWMVd8sNgyEP85xVmMKAPUBwQWm9wBPQUmvbeF4V3WBY1P7mmL4BkjQ0SqUpf1snw==} dependencies: - '@types/react': 18.2.7 + '@types/react': 18.2.11 dev: true /@types/react-is/18.2.0: resolution: {integrity: sha512-1vz2yObaQkLL7YFe/pme2cpvDsCwI1WXIfL+5eLz0MI9gFG24Re16RzUsI8t9XZn9ZWvgLNDrJBmrqXJO7GNQQ==} dependencies: - '@types/react': 18.2.7 + '@types/react': 18.2.11 dev: false /@types/react-list/0.8.7: resolution: {integrity: sha512-TaPwZNx+sNY2djMWPqf81SfimnWIob/jjZbQJkJRZMf/G6Zu+gFpUoou/70MkZhbKhREk1eTNZFmbokBwAmbBg==} dependencies: - '@types/react': 18.2.7 + '@types/react': 18.2.11 dev: true /@types/react-router-dom/5.3.3: resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.2.7 + '@types/react': 18.2.11 '@types/react-router': 5.1.20 dev: true @@ -7602,13 +8285,13 @@ packages: resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.2.7 + '@types/react': 18.2.11 dev: true /@types/react-transition-group/4.4.6: resolution: {integrity: sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==} dependencies: - '@types/react': 17.0.59 + '@types/react': 18.2.11 dev: false /@types/react/17.0.59: @@ -7619,6 +8302,13 @@ packages: csstype: 3.1.2 dev: false + /@types/react/18.2.11: + resolution: {integrity: sha512-+hsJr9hmwyDecSMQAmX7drgbDpyE+EgSF6t7+5QEBAn1tQK7kl1vWZ4iRf6SjQ8lk7dyEULxUmZOIpN0W5baZA==} + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.3 + csstype: 3.1.2 + /@types/react/18.2.7: resolution: {integrity: sha512-ojrXpSH2XFCmHm7Jy3q44nXDyN54+EYKP2lBhJ2bqfyPj6cIUW/FZW/Csdia34NQgq7KYcAlHi5184m4X88+yw==} dependencies: @@ -7778,6 +8468,34 @@ packages: transitivePeerDependencies: - supports-color + /@typescript-eslint/eslint-plugin/5.59.11_sqfi766b7p7jf53aqxvjxvblnq: + resolution: {integrity: sha512-XxuOfTkCUiOSyBWIvHlUraLw/JT/6Io1365RO6ZuI88STKMavJZPNMU0lFcUTeQXEhHiv64CbxYxBNoDVSmghg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.5.1 + '@typescript-eslint/parser': 5.59.11_tizxnkcvjrb4cldxgwq5h3lj5u + '@typescript-eslint/scope-manager': 5.59.11 + '@typescript-eslint/type-utils': 5.59.11_tizxnkcvjrb4cldxgwq5h3lj5u + '@typescript-eslint/utils': 5.59.11_tizxnkcvjrb4cldxgwq5h3lj5u + debug: 4.3.4 + eslint: 8.42.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + natural-compare-lite: 1.4.0 + semver: 7.5.1 + tsutils: 3.21.0_typescript@5.1.3 + typescript: 5.1.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/eslint-plugin/5.59.7_4aqcww3lmhn63lzs6egjlcvgfi: resolution: {integrity: sha512-BL+jYxUFIbuYwy+4fF86k5vdT9lT0CNJ6HtwrIvGh0PhH8s0yy5rjaKH2fDCrz5ITHy07WCzVGNvAmjJh4IJFA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -7900,6 +8618,26 @@ packages: transitivePeerDependencies: - supports-color + /@typescript-eslint/parser/5.59.11_tizxnkcvjrb4cldxgwq5h3lj5u: + resolution: {integrity: sha512-s9ZF3M+Nym6CAZEkJJeO2TFHHDsKAM3ecNkLuH4i4s8/RCPnF5JRip2GyviYkeEAcwGMJxkqG9h2dAsnA1nZpA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.59.11 + '@typescript-eslint/types': 5.59.11 + '@typescript-eslint/typescript-estree': 5.59.11_typescript@5.1.3 + debug: 4.3.4 + eslint: 8.42.0 + typescript: 5.1.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/parser/5.59.7_5ujgynla27k2qkzlnkldjwsutm: resolution: {integrity: sha512-VhpsIEuq/8i5SF+mPg9jSdIwgMBBp0z9XqjiEay+81PYLJuroN+ET1hM5IhkiYMJd9MkTz8iJLt7aaGAgzWUbQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -7947,6 +8685,14 @@ packages: '@typescript-eslint/types': 4.33.0 '@typescript-eslint/visitor-keys': 4.33.0 + /@typescript-eslint/scope-manager/5.59.11: + resolution: {integrity: sha512-dHFOsxoLFtrIcSj5h0QoBT/89hxQONwmn3FOQ0GOQcLOOXm+MIrS8zEAhs4tWl5MraxCY3ZJpaXQQdFMc2Tu+Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.59.11 + '@typescript-eslint/visitor-keys': 5.59.11 + dev: true + /@typescript-eslint/scope-manager/5.59.7: resolution: {integrity: sha512-FL6hkYWK9zBGdxT2wWEd2W8ocXMu3K94i3gvMrjXpx+koFYdYV7KprKfirpgY34vTGzEPPuKoERpP8kD5h7vZQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -7955,6 +8701,26 @@ packages: '@typescript-eslint/visitor-keys': 5.59.7 dev: true + /@typescript-eslint/type-utils/5.59.11_tizxnkcvjrb4cldxgwq5h3lj5u: + resolution: {integrity: sha512-LZqVY8hMiVRF2a7/swmkStMYSoXMFlzL6sXV6U/2gL5cwnLWQgLEG8tjWPpaE4rMIdZ6VKWwcffPlo1jPfk43g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.59.11_typescript@5.1.3 + '@typescript-eslint/utils': 5.59.11_tizxnkcvjrb4cldxgwq5h3lj5u + debug: 4.3.4 + eslint: 8.42.0 + tsutils: 3.21.0_typescript@5.1.3 + typescript: 5.1.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/type-utils/5.59.7_5ujgynla27k2qkzlnkldjwsutm: resolution: {integrity: sha512-ozuz/GILuYG7osdY5O5yg0QxXUAEoI4Go3Do5xeu+ERH9PorHBPSdvD3Tjp2NN2bNLh1NJQSsQu2TPu/Ly+HaQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -8004,6 +8770,11 @@ packages: resolution: {integrity: sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + /@typescript-eslint/types/5.59.11: + resolution: {integrity: sha512-epoN6R6tkvBYSc+cllrz+c2sOFWkbisJZWkOE+y3xHtvYaOE6Wk6B8e114McRJwFRjGvYdJwLXQH5c9osME/AA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + /@typescript-eslint/types/5.59.7: resolution: {integrity: sha512-UnVS2MRRg6p7xOSATscWkKjlf/NDKuqo5TdbWck6rIRZbmKpVNTLALzNvcjIfHBE7736kZOFc/4Z3VcZwuOM/A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -8051,6 +8822,27 @@ packages: transitivePeerDependencies: - supports-color + /@typescript-eslint/typescript-estree/5.59.11_typescript@5.1.3: + resolution: {integrity: sha512-YupOpot5hJO0maupJXixi6l5ETdrITxeo5eBOeuV7RSKgYdU3G5cxO49/9WRnJq9EMrB7AuTSLH/bqOsXi7wPA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.59.11 + '@typescript-eslint/visitor-keys': 5.59.11 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.1 + tsutils: 3.21.0_typescript@5.1.3 + typescript: 5.1.3 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/typescript-estree/5.59.7_f3ayjdur22n6pzwmkq7wnsyriu: resolution: {integrity: sha512-4A1NtZ1I3wMN2UGDkU9HMBL+TIQfbrh4uS0WDMMpf3xMRursDbqEf1ahh6vAAe3mObt8k3ZATnezwG4pdtWuUQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -8114,6 +8906,26 @@ packages: - supports-color dev: true + /@typescript-eslint/utils/5.59.11_tizxnkcvjrb4cldxgwq5h3lj5u: + resolution: {integrity: sha512-didu2rHSOMUdJThLk4aZ1Or8IcO3HzCw/ZvEjTTIfjIrcdd5cvSIwwDy2AOlE7htSNp7QIZ10fLMyRCveesMLg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0_eslint@8.42.0 + '@types/json-schema': 7.0.12 + '@types/semver': 7.5.0 + '@typescript-eslint/scope-manager': 5.59.11 + '@typescript-eslint/types': 5.59.11 + '@typescript-eslint/typescript-estree': 5.59.11_typescript@5.1.3 + eslint: 8.42.0 + eslint-scope: 5.1.1 + semver: 7.5.1 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + /@typescript-eslint/utils/5.59.7_5ujgynla27k2qkzlnkldjwsutm: resolution: {integrity: sha512-yCX9WpdQKaLufz5luG4aJbOpdXf/fjwGMcLFXZVPUz3QqLirG5QcwwnIHNf8cjLjxK4qtzTO8udUtMQSAToQnQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -8168,6 +8980,14 @@ packages: '@typescript-eslint/types': 4.33.0 eslint-visitor-keys: 2.1.0 + /@typescript-eslint/visitor-keys/5.59.11: + resolution: {integrity: sha512-KGYniTGG3AMTuKF9QBD7EIrvufkB6O6uX3knP73xbKLMpH+QRPcgnCxjWXSHjMRuOxFLovljqQgQpR0c7GvjoA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.59.11 + eslint-visitor-keys: 3.4.1 + dev: true + /@typescript-eslint/visitor-keys/5.59.7: resolution: {integrity: sha512-tyN+X2jvMslUszIiYbF0ZleP+RqQsFVpGrKI6e0Eet1w8WmhsAtmzaqm8oM8WJQ1ysLwhnsK/4hYHJjOgJVfQQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -8228,18 +9048,17 @@ packages: - '@swc/helpers' dev: true - /@vitejs/plugin-react/3.1.0_vite@4.3.8: - resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} + /@vitejs/plugin-react/4.0.0_vite@4.3.9: + resolution: {integrity: sha512-HX0XzMjL3hhOYm+0s95pb0Z7F8O81G7joUHgfDd/9J/ZZf5k4xX6QAMFkKsHFxaHlf6X7GD7+XuaZ66ULiJuhQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: ^4.1.0-beta.0 + vite: ^4.2.0 dependencies: - '@babel/core': 7.21.8 - '@babel/plugin-transform-react-jsx-self': 7.21.0_@babel+core@7.21.8 - '@babel/plugin-transform-react-jsx-source': 7.19.6_@babel+core@7.21.8 - magic-string: 0.27.0 + '@babel/core': 7.22.5 + '@babel/plugin-transform-react-jsx-self': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-react-jsx-source': 7.22.5_@babel+core@7.22.5 react-refresh: 0.14.0 - vite: 4.3.8_3cl3pib2kx7jaftbqhg3ux7t34 + vite: 4.3.9_gdkma3dmudcb7fwmb357cck6sa transitivePeerDependencies: - supports-color dev: true @@ -8271,12 +9090,20 @@ packages: chai: 4.3.7 dev: true + /@vitest/expect/0.32.0: + resolution: {integrity: sha512-VxVHhIxKw9Lux+O9bwLEEk2gzOUe93xuFHy9SzYWnnoYZFYg1NfBtnfnYWiJN7yooJ7KNElCK5YtA7DTZvtXtg==} + dependencies: + '@vitest/spy': 0.32.0 + '@vitest/utils': 0.32.0 + chai: 4.3.7 + dev: true + /@vitest/runner/0.28.5: resolution: {integrity: sha512-NKkHtLB+FGjpp5KmneQjTcPLWPTDfB7ie+MmF1PnUBf/tGe2OjGxWyB62ySYZ25EYp9krR5Bw0YPLS/VWh1QiA==} dependencies: '@vitest/utils': 0.28.5 p-limit: 4.0.0 - pathe: 1.1.0 + pathe: 1.1.1 dev: true /@vitest/runner/0.31.1: @@ -8288,6 +9115,15 @@ packages: pathe: 1.1.0 dev: true + /@vitest/runner/0.32.0: + resolution: {integrity: sha512-QpCmRxftHkr72xt5A08xTEs9I4iWEXIOCHWhQQguWOKE4QH7DXSKZSOFibuwEIMAD7G0ERvtUyQn7iPWIqSwmw==} + dependencies: + '@vitest/utils': 0.32.0 + concordance: 5.0.4 + p-limit: 4.0.0 + pathe: 1.1.1 + dev: true + /@vitest/snapshot/0.31.1: resolution: {integrity: sha512-L3w5uU9bMe6asrNzJ8WZzN+jUTX4KSgCinEJPXyny0o90fG4FPQMV0OWsq7vrCWfQlAilMjDnOF9nP8lidsJ+g==} dependencies: @@ -8296,6 +9132,14 @@ packages: pretty-format: 27.5.1 dev: true + /@vitest/snapshot/0.32.0: + resolution: {integrity: sha512-yCKorPWjEnzpUxQpGlxulujTcSPgkblwGzAUEL+z01FTUg/YuCDZ8dxr9sHA08oO2EwxzHXNLjQKWJ2zc2a19Q==} + dependencies: + magic-string: 0.30.0 + pathe: 1.1.1 + pretty-format: 27.5.1 + dev: true + /@vitest/spy/0.28.5: resolution: {integrity: sha512-7if6rsHQr9zbmvxN7h+gGh2L9eIIErgf8nSKYDlg07HHimCxp4H6I/X/DPXktVPPLQfiZ1Cw2cbDIx9fSqDjGw==} dependencies: @@ -8308,14 +9152,25 @@ packages: tinyspy: 2.1.0 dev: true - /@vitest/ui/0.28.5: - resolution: {integrity: sha512-hzzZzv38mH/LMFh54QEJpWFuGixZZBOD+C0fHU81d1lsvochPwNZhWJbuRJQNyZLSMZYCYW4hF6PpNQJXDHDmg==} + /@vitest/spy/0.32.0: + resolution: {integrity: sha512-MruAPlM0uyiq3d53BkwTeShXY0rYEfhNGQzVO5GHBmmX3clsxcWp79mMnkOVcV244sNTeDcHbcPFWIjOI4tZvw==} + dependencies: + tinyspy: 2.1.1 + dev: true + + /@vitest/ui/0.32.0_vitest@0.32.0: + resolution: {integrity: sha512-55gugh6+owrOqW83RCgLm9q+o3SlzvFVgl1lyfnr0WB8ABxLoM+3pgusEjosscgEYGzTjTXaZY6xLd4qlfH/RQ==} + peerDependencies: + vitest: '>=0.30.1 <1' dependencies: + '@vitest/utils': 0.32.0 fast-glob: 3.2.12 + fflate: 0.7.4 flatted: 3.2.7 - pathe: 1.1.0 + pathe: 1.1.1 picocolors: 1.0.0 sirv: 2.0.3 + vitest: 0.32.0_qurakq6av5alithdcy42uvw7r4 dev: true /@vitest/utils/0.28.5: @@ -8336,6 +9191,14 @@ packages: pretty-format: 27.5.1 dev: true + /@vitest/utils/0.32.0: + resolution: {integrity: sha512-53yXunzx47MmbuvcOPpLaVljHaeSu1G2dHdmy7+9ngMnQIkBQcvwOcoclWFnxDMxFbnq8exAfh3aKSZaK71J5A==} + dependencies: + concordance: 5.0.4 + loupe: 2.3.6 + pretty-format: 27.5.1 + dev: true + /@vue/compiler-core/3.3.4: resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} dependencies: @@ -9395,7 +10258,7 @@ packages: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} engines: {node: '>=10', npm: '>=6'} dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': 7.22.5 cosmiconfig: 7.1.0 resolve: 1.22.2 dev: false @@ -9862,7 +10725,7 @@ packages: /broadcast-channel/3.7.0: resolution: {integrity: sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==} dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': 7.22.5 detect-node: 2.1.0 js-sha3: 0.8.0 microseconds: 0.2.0 @@ -9956,6 +10819,17 @@ packages: node-releases: 2.0.12 update-browserslist-db: 1.0.11_browserslist@4.21.5 + /browserslist/4.21.7: + resolution: {integrity: sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001502 + electron-to-chromium: 1.4.427 + node-releases: 2.0.12 + update-browserslist-db: 1.0.11_browserslist@4.21.7 + dev: true + /bs-logger/0.2.6: resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} engines: {node: '>= 6'} @@ -10224,6 +11098,10 @@ packages: /caniuse-lite/1.0.30001489: resolution: {integrity: sha512-x1mgZEXK8jHIfAxm+xgdpHpk50IN3z3q3zP261/WS+uvePxW8izXuCu6AHz0lkuYTlATDehiZ/tNyYBdSQsOUQ==} + /caniuse-lite/1.0.30001502: + resolution: {integrity: sha512-AZ+9tFXw1sS0o0jcpJQIXvFTOB/xGiQ4OQ2t98QX3NDn2EZTSRBC801gxrsGgViuq2ak/NLkNgSNEPtCr5lfKg==} + dev: true + /capture-exit/2.0.0: resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} engines: {node: 6.* || 8.* || >= 10.*} @@ -10415,10 +11293,6 @@ packages: isobject: 3.0.1 static-extend: 0.1.2 - /classnames/2.3.2: - resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==} - dev: false - /clean-css/4.2.4: resolution: {integrity: sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==} engines: {node: '>= 4.0'} @@ -11367,8 +12241,8 @@ packages: time-zone: 1.0.0 dev: true - /dayjs/1.11.7: - resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==} + /dayjs/1.11.8: + resolution: {integrity: sha512-LcgxzFoWMEPO7ggRv1Y2N31hUf2R0Vj7fuy/m+Bg1K8rr+KAs1AEy4y9jd5DXe8pbHgX+srkHNS7TH6Q6ZhYeQ==} dev: false /debug/2.6.9: @@ -11482,6 +12356,11 @@ packages: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} engines: {node: '>=0.10'} + /decode-uri-component/0.4.1: + resolution: {integrity: sha512-+8VxcR21HhTy8nOt6jf20w0c9CADrw1O8d+VZ/YzzCt4bJ3uBjw+D1q2osAB8RnpwwaeYBxy0HyKQxD5JBMuuQ==} + engines: {node: '>=14.16'} + dev: false + /decompress-response/3.3.0: resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} engines: {node: '>=4'} @@ -11951,7 +12830,7 @@ packages: /dom-helpers/5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': 7.22.5 csstype: 3.1.2 dev: false @@ -12136,6 +13015,10 @@ packages: /electron-to-chromium/1.4.405: resolution: {integrity: sha512-JdDgnwU69FMZURoesf9gNOej2Cms1XJFfLk24y1IBtnAdhTcJY/mXnokmpmxHN59PcykBP4bgUU98vLY44Lhuw==} + /electron-to-chromium/1.4.427: + resolution: {integrity: sha512-HK3r9l+Jm8dYAm1ctXEWIC+hV60zfcjS9UA5BDlYvnI5S7PU/yytjpvSrTNrSSRRkuu3tDyZhdkwIczh+0DWaw==} + dev: true + /elegant-spinner/1.0.1: resolution: {integrity: sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==} engines: {node: '>=0.10.0'} @@ -12690,6 +13573,15 @@ packages: eslint: 8.41.0 dev: true + /eslint-config-prettier/8.8.0_eslint@8.42.0: + resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.42.0 + dev: true + /eslint-config-react-app/6.0.0_kohjzaa6aqi6ukoymo4oeljby4: resolution: {integrity: sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A==} engines: {node: ^10.12.0 || >=12.0.0} @@ -12890,13 +13782,13 @@ packages: semver: 6.3.0 dev: false - /eslint-plugin-lodash/7.4.0_eslint@8.41.0: + /eslint-plugin-lodash/7.4.0_eslint@8.42.0: resolution: {integrity: sha512-Tl83UwVXqe1OVeBRKUeWcfg6/pCW1GTRObbdnbEJgYwjxp5Q92MEWQaH9+dmzbRt6kvYU1Mp893E79nJiCSM8A==} engines: {node: '>=10'} peerDependencies: eslint: '>=2' dependencies: - eslint: 8.41.0 + eslint: 8.42.0 lodash: 4.17.21 dev: true @@ -12918,6 +13810,15 @@ packages: eslint: 8.41.0 dev: true + /eslint-plugin-react-hooks/4.6.0_eslint@8.42.0: + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.42.0 + dev: true + /eslint-plugin-react/7.32.2_eslint@7.32.0: resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} engines: {node: '>=4'} @@ -12966,13 +13867,37 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-regex/1.10.0_eslint@8.41.0: + /eslint-plugin-react/7.32.2_eslint@8.42.0: + resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.6 + array.prototype.flatmap: 1.3.1 + array.prototype.tosorted: 1.1.1 + doctrine: 2.1.0 + eslint: 8.42.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.3 + minimatch: 3.1.2 + object.entries: 1.1.6 + object.fromentries: 2.0.6 + object.hasown: 1.1.2 + object.values: 1.1.6 + prop-types: 15.8.1 + resolve: 2.0.0-next.4 + semver: 6.3.0 + string.prototype.matchall: 4.0.8 + dev: true + + /eslint-plugin-regex/1.10.0_eslint@8.42.0: resolution: {integrity: sha512-C8/qYKkkbIb0epxKzaz4aw7oVAOmm19fJpR/moUrUToq/vc4xW4sEKMlTQqH6EtNGpvLjYsbbZRlWNWwQGeTSA==} engines: {node: '>=6.0.0'} peerDependencies: eslint: '>=4.0.0' dependencies: - eslint: 8.41.0 + eslint: 8.42.0 dev: true /eslint-plugin-testing-library/3.10.2_jofidmxrjzhj7l6vknpw5ecvfe: @@ -12988,14 +13913,14 @@ packages: - typescript dev: false - /eslint-plugin-testing-library/5.11.0_5ujgynla27k2qkzlnkldjwsutm: + /eslint-plugin-testing-library/5.11.0_tizxnkcvjrb4cldxgwq5h3lj5u: resolution: {integrity: sha512-ELY7Gefo+61OfXKlQeXNIDVVLPcvKTeiQOoMZG9TeuWa7Ln4dUNRv8JdRWBQI9Mbb427XGlVB1aa1QPZxBJM8Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} peerDependencies: eslint: ^7.5.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.59.7_5ujgynla27k2qkzlnkldjwsutm - eslint: 8.41.0 + '@typescript-eslint/utils': 5.59.11_tizxnkcvjrb4cldxgwq5h3lj5u + eslint: 8.42.0 transitivePeerDependencies: - supports-color - typescript @@ -13111,22 +14036,70 @@ packages: semver: 7.5.1 strip-ansi: 6.0.1 strip-json-comments: 3.1.1 - table: 6.8.1 + table: 6.8.1 + text-table: 0.2.0 + v8-compile-cache: 2.3.0 + transitivePeerDependencies: + - supports-color + + /eslint/8.41.0: + resolution: {integrity: sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0_eslint@8.41.0 + '@eslint-community/regexpp': 4.5.1 + '@eslint/eslintrc': 2.0.3 + '@eslint/js': 8.41.0 + '@humanwhocodes/config-array': 0.11.8 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.0 + eslint-visitor-keys: 3.4.1 + espree: 9.5.2 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.20.0 + graphemer: 1.4.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 text-table: 0.2.0 - v8-compile-cache: 2.3.0 transitivePeerDependencies: - supports-color + dev: true - /eslint/8.41.0: - resolution: {integrity: sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==} + /eslint/8.42.0: + resolution: {integrity: sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.41.0 + '@eslint-community/eslint-utils': 4.4.0_eslint@8.42.0 '@eslint-community/regexpp': 4.5.1 '@eslint/eslintrc': 2.0.3 - '@eslint/js': 8.41.0 - '@humanwhocodes/config-array': 0.11.8 + '@eslint/js': 8.42.0 + '@humanwhocodes/config-array': 0.11.10 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 @@ -13676,6 +14649,10 @@ packages: jest-validate: 25.5.0 dev: true + /fflate/0.7.4: + resolution: {integrity: sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==} + dev: true + /figgy-pudding/3.5.2: resolution: {integrity: sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==} dev: false @@ -13799,11 +14776,6 @@ packages: dependencies: to-regex-range: 5.0.1 - /filter-obj/1.1.0: - resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} - engines: {node: '>=0.10.0'} - dev: false - /filter-obj/2.0.2: resolution: {integrity: sha512-lO3ttPjHZRfjMcxWKb1j1eDhTFsu4meeR3lnMcnBFhk6RuLhvEiuALu2TlfL310ph4lCYYwgF/ElIjdP739tdg==} engines: {node: '>=8'} @@ -13814,6 +14786,11 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true + /filter-obj/5.1.0: + resolution: {integrity: sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==} + engines: {node: '>=14.16'} + dev: false + /finalhandler/1.2.0: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} @@ -14002,6 +14979,39 @@ packages: - encoding dev: false + /firebase/9.22.2: + resolution: {integrity: sha512-eBXsaTzXPx3Y0QhuuluG/qR58tlOx2X/W0GKNoF004FcG9L2gHuvGu5/bIczvrPyfNOCqDF+I5I/kOQi8l9m0A==} + dependencies: + '@firebase/analytics': 0.10.0_@firebase+app@0.9.12 + '@firebase/analytics-compat': 0.2.6_q7henfwtppzleilrecduigslne + '@firebase/app': 0.9.12 + '@firebase/app-check': 0.8.0_@firebase+app@0.9.12 + '@firebase/app-check-compat': 0.3.7_q7henfwtppzleilrecduigslne + '@firebase/app-compat': 0.2.12 + '@firebase/app-types': 0.9.0 + '@firebase/auth': 0.23.2_@firebase+app@0.9.12 + '@firebase/auth-compat': 0.4.2_m6m4sdusuiflqbhnqlemhbfiyu + '@firebase/database': 0.14.4 + '@firebase/database-compat': 0.3.4 + '@firebase/firestore': 3.12.2_@firebase+app@0.9.12 + '@firebase/firestore-compat': 0.3.11_m6m4sdusuiflqbhnqlemhbfiyu + '@firebase/functions': 0.10.0_@firebase+app@0.9.12 + '@firebase/functions-compat': 0.3.5_q7henfwtppzleilrecduigslne + '@firebase/installations': 0.6.4_@firebase+app@0.9.12 + '@firebase/installations-compat': 0.2.4_m6m4sdusuiflqbhnqlemhbfiyu + '@firebase/messaging': 0.12.4_@firebase+app@0.9.12 + '@firebase/messaging-compat': 0.2.4_q7henfwtppzleilrecduigslne + '@firebase/performance': 0.6.4_@firebase+app@0.9.12 + '@firebase/performance-compat': 0.2.4_q7henfwtppzleilrecduigslne + '@firebase/remote-config': 0.4.4_@firebase+app@0.9.12 + '@firebase/remote-config-compat': 0.2.4_q7henfwtppzleilrecduigslne + '@firebase/storage': 0.11.2_@firebase+app@0.9.12 + '@firebase/storage-compat': 0.3.2_m6m4sdusuiflqbhnqlemhbfiyu + '@firebase/util': 1.9.3 + transitivePeerDependencies: + - encoding + dev: false + /flat-cache/3.0.4: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -14887,10 +15897,6 @@ packages: resolution: {integrity: sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==} dev: false - /highlight.run/5.1.5: - resolution: {integrity: sha512-LKMa17NZ/Amfo6pdemiIpHAud/Gw6ZDt37jwBJcHfdmeR5PKYUojnTWiisqC+letK9+nSoAXeqvcXmXAzaCMqw==} - dev: false - /hmac-drbg/1.0.1: resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} dependencies: @@ -16470,7 +17476,7 @@ packages: resolution: {integrity: sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/code-frame': 7.21.4 + '@babel/code-frame': 7.22.5 '@jest/types': 29.5.0 '@types/stack-utils': 2.0.1 chalk: 4.1.2 @@ -16823,7 +17829,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 20.2.3 + '@types/node': 20.3.0 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -17128,12 +18134,50 @@ packages: http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.4 + nwsapi: 2.2.5 parse5: 7.1.2 rrweb-cssom: 0.6.0 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 4.1.2 + tough-cookie: 4.1.3 + w3c-xmlserializer: 4.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 12.0.1 + ws: 8.13.0 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /jsdom/22.1.0: + resolution: {integrity: sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==} + engines: {node: '>=16'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + cssstyle: 3.0.0 + data-urls: 4.0.0 + decimal.js: 10.4.3 + domexception: 4.0.0 + form-data: 4.0.0 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.5 + parse5: 7.1.2 + rrweb-cssom: 0.6.0 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.3 w3c-xmlserializer: 4.0.0 webidl-conversions: 7.0.0 whatwg-encoding: 2.0.0 @@ -17850,7 +18894,7 @@ packages: /match-sorter/6.3.1: resolution: {integrity: sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw==} dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': 7.22.5 remove-accents: 0.4.2 dev: false @@ -18200,7 +19244,7 @@ packages: resolution: {integrity: sha512-HT5mcgIQKkOrZecOjOX3DJorTikWXwsBfpcr/MGBkhfWcjiqvnaL/9ppxvIUXfjT6xt4DVIAsN9fMUz1ev4bIw==} dependencies: acorn: 8.8.2 - pathe: 1.1.0 + pathe: 1.1.1 pkg-types: 1.0.3 ufo: 1.1.2 dev: true @@ -18850,6 +19894,10 @@ packages: /nwsapi/2.2.4: resolution: {integrity: sha512-NHj4rzRo0tQdijE9ZqAx6kYDcoRwYwSYzCA8MY3JzfxlrvEU0jhnhJT9BhqhJs7I/dKcrDm6TyulaRqZPIhN5g==} + /nwsapi/2.2.5: + resolution: {integrity: sha512-6xpotnECFy/og7tKSBVmUNft7J3jyXAka4XvG6AUhFWRz+Q/Ljus7znJAA3bxColfQLdS+XsjoodtJfCgeTEFQ==} + dev: true + /object-assign/4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -19355,7 +20403,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.21.4 + '@babel/code-frame': 7.22.5 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -19459,6 +20507,10 @@ packages: resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==} dev: true + /pathe/1.1.1: + resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} + dev: true + /pathval/1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} dev: true @@ -19545,7 +20597,7 @@ packages: dependencies: jsonc-parser: 3.2.0 mlly: 1.3.0 - pathe: 1.1.0 + pathe: 1.1.1 dev: true /pkg-up/3.1.0: @@ -20253,6 +21305,15 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 + /postcss/8.4.24: + resolution: {integrity: sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + /preact/10.15.0: resolution: {integrity: sha512-nZSa8M2R2m1n7nJSBlzDpxRJaIsejrTO1vlFbdpFvyC8qM1iU+On2y0otfoUm6SRB5o0lF0CKDFxg6grEFU0iQ==} @@ -20327,12 +21388,6 @@ packages: hasBin: true dev: true - /prettier/2.8.4: - resolution: {integrity: sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==} - engines: {node: '>=10.13.0'} - hasBin: true - dev: true - /prettier/2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} @@ -20500,7 +21555,7 @@ packages: '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 '@types/long': 4.0.2 - '@types/node': 20.2.3 + '@types/node': 20.3.0 long: 4.0.0 /protobufjs/7.2.3: @@ -20518,7 +21573,7 @@ packages: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.2.3 + '@types/node': 20.3.0 long: 5.2.3 /proxy-addr/2.0.7: @@ -20658,14 +21713,13 @@ packages: strict-uri-encode: 1.1.0 dev: true - /query-string/7.1.3: - resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} - engines: {node: '>=6'} + /query-string/8.1.0: + resolution: {integrity: sha512-BFQeWxJOZxZGix7y+SByG3F36dA0AbTy9o6pSmKFcFz7DAj0re9Frkty3saBn3nHo3D0oZJ/+rx3r8H8r8Jbpw==} + engines: {node: '>=14.16'} dependencies: - decode-uri-component: 0.2.2 - filter-obj: 1.1.0 - split-on-first: 1.1.0 - strict-uri-encode: 2.0.0 + decode-uri-component: 0.4.1 + filter-obj: 5.1.0 + split-on-first: 3.0.0 dev: false /querystring-es3/0.2.1: @@ -20856,8 +21910,8 @@ packages: react: 18.2.0 dev: false - /react-query/3.39.2_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-F6hYDKyNgDQfQOuR1Rsp3VRzJnWHx6aRnnIZHMNGGgbL3SBgpZTDg8MQwmxOgpCAoqZJA+JSNCydF1xGJqKOCA==} + /react-query/3.39.3_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: '*' @@ -20868,7 +21922,7 @@ packages: react-native: optional: true dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': 7.22.5 broadcast-channel: 3.7.0 match-sorter: 6.3.1 react: 18.2.0 @@ -20917,6 +21971,19 @@ packages: react-router: 6.11.2_react@18.2.0 dev: false + /react-router-dom/6.12.1_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-POIZN9UDKWwEDga054LvYr2KnK8V+0HR4Ny4Bwv8V7/FZCPxJgsCjYxXGxqxzHs7VBxMKZfgvtKhafuJkJSPGA==} + engines: {node: '>=14'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@remix-run/router': 1.6.3 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-router: 6.12.1_react@18.2.0 + dev: false + /react-router/6.11.2_react@18.2.0: resolution: {integrity: sha512-74z9xUSaSX07t3LM+pS6Un0T55ibUE/79CzfZpy5wsPDZaea1F8QkrsiyRnA2YQ7LwE/umaydzXZV80iDCPkMg==} engines: {node: '>=14'} @@ -20927,6 +21994,16 @@ packages: react: 18.2.0 dev: false + /react-router/6.12.1_react@18.2.0: + resolution: {integrity: sha512-evd/GrKJOeOypD0JB9e1r7pQh2gWCsTbUfq059Wm1AFT/K2MNZuDo19lFtAgIhlBrp0MmpgpqtvZC7LPAs7vSw==} + engines: {node: '>=14'} + peerDependencies: + react: '>=16.8' + dependencies: + '@remix-run/router': 1.6.3 + react: 18.2.0 + dev: false + /react-scripts/4.0.3_l5hyvwnnskx7g27xcaxotzm7m4: resolution: {integrity: sha512-S5eO4vjUzUisvkIPB7jVsKtuH2HhWcASREYWHAQ1FP5HyCv3xgn+wpILAEWkmy+A+tTNbSZClhxjT3qz6g4L1A==} engines: {node: ^10.12.0 || >=12.0.0} @@ -21023,18 +22100,15 @@ packages: - webpack-plugin-serve dev: false - /react-toastify/5.5.0_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-jsVme7jALIFGRyQsri/g4YTsRuaaGI70T6/ikjwZMB4mwTZaCWqj5NqxhGrRStKlJc5npXKKvKeqTiRGQl78LQ==} + /react-toastify/9.1.3_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-fPfb8ghtn/XMxw3LkxQBk3IyagNpF/LIKjOBflbexr2AWxAH1MJgvnESwEwBn9liLFXgTKWgBSdZpw9m4OTHTg==} peerDependencies: - react: '>=15.0.0' - react-dom: '>=15.0.0' + react: '>=16' + react-dom: '>=16' dependencies: - '@babel/runtime': 7.21.5 - classnames: 2.3.2 - prop-types: 15.8.1 + clsx: 1.2.1 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 - react-transition-group: 4.4.5_biqbaboplfbrettd7655fr4n2y dev: false /react-transition-group/4.4.5_biqbaboplfbrettd7655fr4n2y: @@ -21043,7 +22117,7 @@ packages: react: '>=16.6.0' react-dom: '>=16.6.0' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': 7.22.5 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -21480,14 +22554,6 @@ packages: resolution: {integrity: sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg==} dev: false - /rifm/0.12.1_react@18.2.0: - resolution: {integrity: sha512-OGA1Bitg/dSJtI/c4dh90svzaUPt228kzFsUkJbtA2c964IqEAwWXeL9ZJi86xWv3j5SMqRvGULl7bA6cK0Bvg==} - peerDependencies: - react: '>=16.8' - dependencies: - react: 18.2.0 - dev: false - /rimraf/2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} hasBin: true @@ -21548,7 +22614,7 @@ packages: terser: 5.17.6 dev: true - /rollup-plugin-visualizer/5.9.0: + /rollup-plugin-visualizer/5.9.0_rollup@3.23.0: resolution: {integrity: sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==} engines: {node: '>=14'} hasBin: true @@ -21560,12 +22626,13 @@ packages: dependencies: open: 8.4.2 picomatch: 2.3.1 + rollup: 3.23.0 source-map: 0.7.4 yargs: 17.7.2 dev: true - /rollup-plugin-visualizer/5.9.0_rollup@3.23.0: - resolution: {integrity: sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==} + /rollup-plugin-visualizer/5.9.2: + resolution: {integrity: sha512-waHktD5mlWrYFrhOLbti4YgQCn1uR24nYsNuXxg7LkPH8KdTXVWR9DNY1WU0QqokyMixVXJS4J04HNrVTMP01A==} engines: {node: '>=14'} hasBin: true peerDependencies: @@ -21576,7 +22643,6 @@ packages: dependencies: open: 8.4.2 picomatch: 2.3.1 - rollup: 3.23.0 source-map: 0.7.4 yargs: 17.7.2 dev: true @@ -21619,6 +22685,14 @@ packages: fsevents: 2.3.2 dev: true + /rollup/3.25.1: + resolution: {integrity: sha512-tywOR+rwIt5m2ZAWSe5AIJcTat8vGlnPFAv15ycCrw33t6iFsXZ6mzHVFh2psSjxQPmI+xgzMZZizUAukBI4aQ==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + /rrweb-cssom/0.6.0: resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} dev: true @@ -21752,6 +22826,16 @@ packages: source-map-js: 1.0.2 dev: true + /sass/1.63.3: + resolution: {integrity: sha512-ySdXN+DVpfwq49jG1+hmtDslYqpS7SkOR5GpF6o2bmb1RL/xS+wvPmegMvMywyfsmAV6p7TgwXYGrCZIFFbAHg==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + chokidar: 3.5.3 + immutable: 4.3.0 + source-map-js: 1.0.2 + dev: true + /sax/1.2.4: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} dev: false @@ -22303,9 +23387,9 @@ packages: - supports-color dev: false - /split-on-first/1.1.0: - resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} - engines: {node: '>=6'} + /split-on-first/3.0.0: + resolution: {integrity: sha512-qxQJTx2ryR0Dw0ITYyekNQWpz6f8dGd7vffGNflQQ3Iqj9NJ6qiZ7ELpZsJ/QBhIVAiDfXdag3+Gp8RvWa62AA==} + engines: {node: '>=12'} dev: false /split-string/3.1.0: @@ -22454,11 +23538,6 @@ packages: resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} engines: {node: '>=0.10.0'} - /strict-uri-encode/2.0.0: - resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} - engines: {node: '>=4'} - dev: false - /string-length/4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} engines: {node: '>=10'} @@ -22515,7 +23594,7 @@ packages: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 - strip-ansi: 7.0.1 + strip-ansi: 7.1.0 dev: true /string.prototype.matchall/4.0.8: @@ -22621,6 +23700,13 @@ packages: ansi-regex: 6.0.1 dev: true + /strip-ansi/7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + /strip-bom/3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -23089,6 +24175,11 @@ packages: engines: {node: '>=14.0.0'} dev: true + /tinyspy/2.1.1: + resolution: {integrity: sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w==} + engines: {node: '>=14.0.0'} + dev: true + /tmp-promise/3.0.3: resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} dependencies: @@ -23188,6 +24279,16 @@ packages: universalify: 0.2.0 url-parse: 1.5.10 + /tough-cookie/4.1.3: + resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} + engines: {node: '>=6'} + dependencies: + psl: 1.9.0 + punycode: 2.3.0 + universalify: 0.2.0 + url-parse: 1.5.10 + dev: true + /tr46/0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} @@ -23371,6 +24472,9 @@ packages: /tslib/2.5.2: resolution: {integrity: sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==} + /tslib/2.5.3: + resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==} + /tsutils/3.21.0_typescript@4.9.5: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -23390,6 +24494,16 @@ packages: typescript: 5.0.4 dev: true + /tsutils/3.21.0_typescript@5.1.3: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 5.1.3 + dev: true + /tty-browserify/0.0.0: resolution: {integrity: sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==} dev: false @@ -23451,8 +24565,8 @@ packages: engines: {node: '>=12.20'} dev: true - /type-fest/3.11.0: - resolution: {integrity: sha512-JaPw5U9ixP0XcpUbQoVSbxSDcK/K4nww20C3kjm9yE6cDRRhptU28AH60VWf9ltXmCrIfIbtt9J+2OUk2Uqiaw==} + /type-fest/3.11.1: + resolution: {integrity: sha512-aCuRNRERRVh33lgQaJRlUxZqzfhzwTrsE98Mc3o3VXqmiaQdHacgUtJ0esp+7MvZ92qhtzKPeusaX6vIEcoreA==} engines: {node: '>=14.16'} dev: true @@ -23498,6 +24612,12 @@ packages: hasBin: true dev: true + /typescript/5.1.3: + resolution: {integrity: sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==} + engines: {node: '>=14.17'} + hasBin: true + dev: true + /ufo/1.1.2: resolution: {integrity: sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==} dev: true @@ -23612,7 +24732,7 @@ packages: /unload/2.2.0: resolution: {integrity: sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==} dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': 7.22.5 detect-node: 2.1.0 dev: false @@ -23650,6 +24770,17 @@ packages: escalade: 3.1.1 picocolors: 1.0.0 + /update-browserslist-db/1.0.11_browserslist@4.21.7: + resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.7 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + /update-notifier/5.1.0: resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==} engines: {node: '>=10'} @@ -23859,7 +24990,7 @@ packages: - rollup dev: true - /vite-node/0.28.5_3cl3pib2kx7jaftbqhg3ux7t34: + /vite-node/0.28.5_@types+node@20.2.3: resolution: {integrity: sha512-LmXb9saMGlrMZbXTvOveJKwMTBTNUH66c8rJnQ0ZPNX+myPEol64+szRzXtV5ORb0Hb/91yq+/D3oERoyAt6LA==} engines: {node: '>=v14.16.0'} hasBin: true @@ -23871,7 +25002,7 @@ packages: picocolors: 1.0.0 source-map: 0.6.1 source-map-support: 0.5.21 - vite: 4.3.8_3cl3pib2kx7jaftbqhg3ux7t34 + vite: 4.3.8_@types+node@20.2.3 transitivePeerDependencies: - '@types/node' - less @@ -23882,9 +25013,9 @@ packages: - terser dev: true - /vite-node/0.28.5_@types+node@20.2.3: - resolution: {integrity: sha512-LmXb9saMGlrMZbXTvOveJKwMTBTNUH66c8rJnQ0ZPNX+myPEol64+szRzXtV5ORb0Hb/91yq+/D3oERoyAt6LA==} - engines: {node: '>=v14.16.0'} + /vite-node/0.31.1_@types+node@20.2.3: + resolution: {integrity: sha512-BajE/IsNQ6JyizPzu9zRgHrBwczkAs0erQf/JRpgTIESpKvNj9/Gd0vxX905klLkb0I0SJVCKbdrl5c6FnqYKA==} + engines: {node: '>=v14.18.0'} hasBin: true dependencies: cac: 6.7.14 @@ -23892,8 +25023,6 @@ packages: mlly: 1.3.0 pathe: 1.1.0 picocolors: 1.0.0 - source-map: 0.6.1 - source-map-support: 0.5.21 vite: 4.3.8_@types+node@20.2.3 transitivePeerDependencies: - '@types/node' @@ -23905,17 +25034,17 @@ packages: - terser dev: true - /vite-node/0.31.1_@types+node@20.2.3: - resolution: {integrity: sha512-BajE/IsNQ6JyizPzu9zRgHrBwczkAs0erQf/JRpgTIESpKvNj9/Gd0vxX905klLkb0I0SJVCKbdrl5c6FnqYKA==} + /vite-node/0.32.0_gdkma3dmudcb7fwmb357cck6sa: + resolution: {integrity: sha512-220P/y8YacYAU+daOAqiGEFXx2A8AwjadDzQqos6wSukjvvTWNqleJSwoUn0ckyNdjHIKoxn93Nh1vWBqEKr3Q==} engines: {node: '>=v14.18.0'} hasBin: true dependencies: cac: 6.7.14 debug: 4.3.4 mlly: 1.3.0 - pathe: 1.1.0 + pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.3.8_@types+node@20.2.3 + vite: 4.3.9_gdkma3dmudcb7fwmb357cck6sa transitivePeerDependencies: - '@types/node' - less @@ -23968,7 +25097,7 @@ packages: fsevents: 2.3.2 dev: true - /vite/4.3.8_3cl3pib2kx7jaftbqhg3ux7t34: + /vite/4.3.8_@types+node@20.2.3: resolution: {integrity: sha512-uYB8PwN7hbMrf4j1xzGDk/lqjsZvCDbt/JC5dyfxc19Pg8kRm14LinK/uq+HSLNswZEoKmweGdtpbnxRtrAXiQ==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -23993,17 +25122,16 @@ packages: terser: optional: true dependencies: - '@types/node': 18.16.14 + '@types/node': 20.2.3 esbuild: 0.17.19 postcss: 8.4.23 rollup: 3.23.0 - sass: 1.62.1 optionalDependencies: fsevents: 2.3.2 dev: true - /vite/4.3.8_@types+node@20.2.3: - resolution: {integrity: sha512-uYB8PwN7hbMrf4j1xzGDk/lqjsZvCDbt/JC5dyfxc19Pg8kRm14LinK/uq+HSLNswZEoKmweGdtpbnxRtrAXiQ==} + /vite/4.3.9_gdkma3dmudcb7fwmb357cck6sa: + resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -24027,10 +25155,11 @@ packages: terser: optional: true dependencies: - '@types/node': 20.2.3 + '@types/node': 20.3.0 esbuild: 0.17.19 - postcss: 8.4.23 - rollup: 3.23.0 + postcss: 8.4.24 + rollup: 3.25.1 + sass: 1.63.3 optionalDependencies: fsevents: 2.3.2 dev: true @@ -24074,19 +25203,19 @@ packages: vitest: 0.31.1_happy-dom@8.9.0 dev: true - /vitest-fetch-mock/0.2.2_vitest@0.28.5: + /vitest-fetch-mock/0.2.2_vitest@0.32.0: resolution: {integrity: sha512-XmH6QgTSjCWrqXoPREIdbj40T7i1xnGmAsTAgfckoO75W1IEHKR8hcPCQ7SO16RsdW1t85oUm6pcQRLeBgjVYQ==} engines: {node: '>=14.14.0'} peerDependencies: vitest: '>=0.16.0' dependencies: cross-fetch: 3.1.6 - vitest: 0.28.5_b3g4h3kgwirtbdsvsta5lur7ky + vitest: 0.32.0_qurakq6av5alithdcy42uvw7r4 transitivePeerDependencies: - encoding dev: true - /vitest/0.28.5_b3g4h3kgwirtbdsvsta5lur7ky: + /vitest/0.28.5_jsdom@21.1.2: resolution: {integrity: sha512-pyCQ+wcAOX7mKMcBNkzDwEHRGqQvHUl0XnoHR+3Pb1hytAHISgSxv9h0gUiSiYtISXUU3rMrKiKzFYDrI6ZIHA==} engines: {node: '>=v14.16.0'} hasBin: true @@ -24110,11 +25239,10 @@ packages: dependencies: '@types/chai': 4.3.5 '@types/chai-subset': 1.3.3 - '@types/node': 18.16.14 + '@types/node': 20.2.3 '@vitest/expect': 0.28.5 '@vitest/runner': 0.28.5 '@vitest/spy': 0.28.5 - '@vitest/ui': 0.28.5 '@vitest/utils': 0.28.5 acorn: 8.8.2 acorn-walk: 8.2.0 @@ -24131,8 +25259,8 @@ packages: tinybench: 2.5.0 tinypool: 0.3.1 tinyspy: 1.1.1 - vite: 4.3.8_3cl3pib2kx7jaftbqhg3ux7t34 - vite-node: 0.28.5_3cl3pib2kx7jaftbqhg3ux7t34 + vite: 4.3.8_@types+node@20.2.3 + vite-node: 0.28.5_@types+node@20.2.3 why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -24143,9 +25271,9 @@ packages: - terser dev: true - /vitest/0.28.5_jsdom@21.1.2: - resolution: {integrity: sha512-pyCQ+wcAOX7mKMcBNkzDwEHRGqQvHUl0XnoHR+3Pb1hytAHISgSxv9h0gUiSiYtISXUU3rMrKiKzFYDrI6ZIHA==} - engines: {node: '>=v14.16.0'} + /vitest/0.31.1_happy-dom@8.9.0: + resolution: {integrity: sha512-/dOoOgzoFk/5pTvg1E65WVaobknWREN15+HF+0ucudo3dDG/vCZoXTQrjIfEaWvQXmqScwkRodrTbM/ScMpRcQ==} + engines: {node: '>=v14.18.0'} hasBin: true peerDependencies: '@edge-runtime/vm': '*' @@ -24153,6 +25281,9 @@ packages: '@vitest/ui': '*' happy-dom: '*' jsdom: '*' + playwright: '*' + safaridriver: '*' + webdriverio: '*' peerDependenciesMeta: '@edge-runtime/vm': optional: true @@ -24164,31 +25295,38 @@ packages: optional: true jsdom: optional: true + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true dependencies: '@types/chai': 4.3.5 '@types/chai-subset': 1.3.3 '@types/node': 20.2.3 - '@vitest/expect': 0.28.5 - '@vitest/runner': 0.28.5 - '@vitest/spy': 0.28.5 - '@vitest/utils': 0.28.5 + '@vitest/expect': 0.31.1 + '@vitest/runner': 0.31.1 + '@vitest/snapshot': 0.31.1 + '@vitest/spy': 0.31.1 + '@vitest/utils': 0.31.1 acorn: 8.8.2 acorn-walk: 8.2.0 cac: 6.7.14 chai: 4.3.7 + concordance: 5.0.4 debug: 4.3.4 - jsdom: 21.1.2 + happy-dom: 8.9.0 local-pkg: 0.4.3 + magic-string: 0.30.0 pathe: 1.1.0 picocolors: 1.0.0 - source-map: 0.6.1 std-env: 3.3.3 strip-literal: 1.0.1 tinybench: 2.5.0 - tinypool: 0.3.1 - tinyspy: 1.1.1 + tinypool: 0.5.0 vite: 4.3.8_@types+node@20.2.3 - vite-node: 0.28.5_@types+node@20.2.3 + vite-node: 0.31.1_@types+node@20.2.3 why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -24199,8 +25337,8 @@ packages: - terser dev: true - /vitest/0.31.1_happy-dom@8.9.0: - resolution: {integrity: sha512-/dOoOgzoFk/5pTvg1E65WVaobknWREN15+HF+0ucudo3dDG/vCZoXTQrjIfEaWvQXmqScwkRodrTbM/ScMpRcQ==} + /vitest/0.32.0_qurakq6av5alithdcy42uvw7r4: + resolution: {integrity: sha512-SW83o629gCqnV3BqBnTxhB10DAwzwEx3z+rqYZESehUB+eWsJxwcBQx7CKy0otuGMJTYh7qCVuUX23HkftGl/Q==} engines: {node: '>=v14.18.0'} hasBin: true peerDependencies: @@ -24232,29 +25370,30 @@ packages: dependencies: '@types/chai': 4.3.5 '@types/chai-subset': 1.3.3 - '@types/node': 20.2.3 - '@vitest/expect': 0.31.1 - '@vitest/runner': 0.31.1 - '@vitest/snapshot': 0.31.1 - '@vitest/spy': 0.31.1 - '@vitest/utils': 0.31.1 + '@types/node': 20.3.0 + '@vitest/expect': 0.32.0 + '@vitest/runner': 0.32.0 + '@vitest/snapshot': 0.32.0 + '@vitest/spy': 0.32.0 + '@vitest/ui': 0.32.0_vitest@0.32.0 + '@vitest/utils': 0.32.0 acorn: 8.8.2 acorn-walk: 8.2.0 cac: 6.7.14 chai: 4.3.7 concordance: 5.0.4 debug: 4.3.4 - happy-dom: 8.9.0 + jsdom: 22.1.0 local-pkg: 0.4.3 magic-string: 0.30.0 - pathe: 1.1.0 + pathe: 1.1.1 picocolors: 1.0.0 std-env: 3.3.3 strip-literal: 1.0.1 tinybench: 2.5.0 tinypool: 0.5.0 - vite: 4.3.8_@types+node@20.2.3 - vite-node: 0.31.1_@types+node@20.2.3 + vite: 4.3.9_gdkma3dmudcb7fwmb357cck6sa + vite-node: 0.32.0_gdkma3dmudcb7fwmb357cck6sa why-is-node-running: 2.2.2 transitivePeerDependencies: - less From f92dcd8f4218ba6ff39c5994c69374f08de7c4c8 Mon Sep 17 00:00:00 2001 From: Nathan Arthur Date: Mon, 12 Jun 2023 14:48:20 -0400 Subject: [PATCH 3/3] fix focusqueue tests --- apps/focusqueue/package.json | 47 +- apps/focusqueue/src/App.flow.spec.tsx | 2 +- apps/focusqueue/src/App.spec.tsx | 2 +- apps/focusqueue/src/App.tsx | 6 +- .../src/components/AuthControls.tsx | 2 +- .../src/components/Countdown.spec.tsx | 2 +- apps/focusqueue/src/components/Countdown.tsx | 4 +- apps/focusqueue/src/components/Dump.spec.tsx | 8 +- apps/focusqueue/src/components/Dump.tsx | 4 +- apps/focusqueue/src/components/Flow.tsx | 10 +- apps/focusqueue/src/components/Settings.tsx | 4 +- .../src/components/TrelloDialog.spec.tsx | 8 +- .../src/components/TrelloDialog.tsx | 6 +- apps/focusqueue/src/lib/withAuth.tsx | 2 +- apps/focusqueue/src/services/firebase/app.ts | 2 +- apps/focusqueue/src/services/trello.ts | 2 +- apps/focusqueue/tsconfig.json | 100 +- apps/focusqueue/vite.config.ts | 2 +- apps/focusqueue/vitest.setup.ts | 18 +- pnpm-lock.yaml | 1179 ++++------------- 20 files changed, 341 insertions(+), 1069 deletions(-) diff --git a/apps/focusqueue/package.json b/apps/focusqueue/package.json index 8896a23..f4825bb 100644 --- a/apps/focusqueue/package.json +++ b/apps/focusqueue/package.json @@ -10,40 +10,41 @@ "preview": "vite preview", "test": "vitest", "lint": "eslint .", - "unused": "depcheck" + "unused": "depcheck", + "checkTs": "tsc --noEmit" }, "dependencies": { "@bradgarropy/use-countdown": "^1.5.2", - "@emotion/react": "^11.10.6", - "@emotion/styled": "^11.10.6", - "@mui/lab": "5.0.0-alpha.120", - "@mui/material": "^5.11.10", - "@tanstack/react-query": "^4.24.10", - "axios": "^1.3.4", - "firebase": "^9.17.1", + "@emotion/react": "^11.11.1", + "@emotion/styled": "^11.11.0", + "@mui/lab": "5.0.0-alpha.134", + "@mui/material": "^5.13.5", + "@tanstack/react-query": "^4.29.12", + "axios": "^1.4.0", + "firebase": "^9.22.2", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-router-dom": "^6.8.1" + "react-router-dom": "^6.12.1" }, "devDependencies": { "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^14.0.0", "@testing-library/user-event": "^14.4.3", - "@types/react": "^18.0.28", - "@types/react-dom": "^18.0.11", - "@types/testing-library__jest-dom": "^5.14.5", - "@typescript-eslint/eslint-plugin": "^5.53.0", - "@typescript-eslint/parser": "^5.53.0", - "@vitejs/plugin-react-swc": "^3.2.0", + "@types/react": "^18.2.11", + "@types/react-dom": "^18.2.5", + "@types/testing-library__jest-dom": "^5.14.6", + "@typescript-eslint/eslint-plugin": "^5.59.11", + "@typescript-eslint/parser": "^5.59.11", + "@vitejs/plugin-react-swc": "^3.3.2", "depcheck": "^1.4.3", - "eslint": "^8.34.0", + "eslint": "^8.42.0", "eslint-plugin-react": "^7.32.2", - "jsdom": "^21.1.0", - "prettier": "^2.8.4", - "tslib": "^2.5.0", - "typescript": "^4.9.5", - "vite": "^4.1.4", - "vite-aliases": "^0.10.0", - "vitest": "^0.28.5" + "jsdom": "^22.1.0", + "prettier": "^2.8.8", + "tslib": "^2.5.3", + "typescript": "^5.1.3", + "vite": "^4.3.9", + "vite-aliases": "^0.11.2", + "vitest": "^0.32.0" } } diff --git a/apps/focusqueue/src/App.flow.spec.tsx b/apps/focusqueue/src/App.flow.spec.tsx index ca72019..a3c10c9 100644 --- a/apps/focusqueue/src/App.flow.spec.tsx +++ b/apps/focusqueue/src/App.flow.spec.tsx @@ -2,7 +2,7 @@ import { describe, it, expect, beforeEach, vi } from "vitest"; import { render, screen } from "@testing-library/react"; import App from "./App"; import userEvent from "@testing-library/user-event"; -import { useAuthenticatedUser } from "@services/firebase/auth"; +import { useAuthenticatedUser } from "~services/firebase/auth"; import React from "react"; // TODO: Consider making this Flow.spec since describe has Flow diff --git a/apps/focusqueue/src/App.spec.tsx b/apps/focusqueue/src/App.spec.tsx index b0cba0e..5a3dd45 100644 --- a/apps/focusqueue/src/App.spec.tsx +++ b/apps/focusqueue/src/App.spec.tsx @@ -7,7 +7,7 @@ import { loginWithGoogle, logout, useAuthenticatedUser, -} from "@services/firebase/auth"; +} from "~services/firebase/auth"; import React from "react"; vi.mock("./lib/speak"); diff --git a/apps/focusqueue/src/App.tsx b/apps/focusqueue/src/App.tsx index df659b7..b29152a 100644 --- a/apps/focusqueue/src/App.tsx +++ b/apps/focusqueue/src/App.tsx @@ -1,7 +1,7 @@ import CssBaseline from "@mui/material/CssBaseline"; import Container from "@mui/material/Container"; -import Flow from "@components/Flow"; -import AuthControls from "@components/AuthControls"; +import Flow from "~components/Flow"; +import AuthControls from "~components/AuthControls"; import { Action, initialState, reducer, State } from "./App.reducer"; import React, { createContext, Dispatch, useReducer } from "react"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; @@ -9,7 +9,7 @@ import AppBar from "@mui/material/AppBar"; import Toolbar from "@mui/material/Toolbar"; import Typography from "@mui/material/Typography"; import { createBrowserRouter, RouterProvider } from "react-router-dom"; -import Settings from "@components/Settings"; +import Settings from "~components/Settings"; const queryClient = new QueryClient(); diff --git a/apps/focusqueue/src/components/AuthControls.tsx b/apps/focusqueue/src/components/AuthControls.tsx index a9131de..9340c01 100644 --- a/apps/focusqueue/src/components/AuthControls.tsx +++ b/apps/focusqueue/src/components/AuthControls.tsx @@ -4,7 +4,7 @@ import { useAuthenticatedUser, logout, loginWithGithub, -} from "@services/firebase/auth"; +} from "~services/firebase/auth"; import Stack from "@mui/material/Stack"; import Dialog from "@mui/material/Dialog"; import { DialogContent } from "@mui/material"; diff --git a/apps/focusqueue/src/components/Countdown.spec.tsx b/apps/focusqueue/src/components/Countdown.spec.tsx index fdb3957..96a5c81 100644 --- a/apps/focusqueue/src/components/Countdown.spec.tsx +++ b/apps/focusqueue/src/components/Countdown.spec.tsx @@ -2,7 +2,7 @@ import { describe, it, expect, vi } from "vitest"; import { render, screen, act, waitFor } from "@testing-library/react"; import Countdown from "./Countdown"; import userEvent from "@testing-library/user-event"; -import speak from "@lib/speak"; +import speak from "~lib/speak"; import React from "react"; import { __advance, __complete, __reset } from "@bradgarropy/use-countdown"; diff --git a/apps/focusqueue/src/components/Countdown.tsx b/apps/focusqueue/src/components/Countdown.tsx index 695e21b..3fd0e82 100644 --- a/apps/focusqueue/src/components/Countdown.tsx +++ b/apps/focusqueue/src/components/Countdown.tsx @@ -4,8 +4,8 @@ import Button from "@mui/material/Button"; import useCountdown from "@bradgarropy/use-countdown"; import Stack from "@mui/material/Stack"; import Typography from "@mui/material/Typography"; -import speak from "@lib/speak"; -import convertStringToNumericSeconds from "@lib/convertStringToNumericSeconds"; +import speak from "~lib/speak"; +import convertStringToNumericSeconds from "~lib/convertStringToNumericSeconds"; import React from "react"; export default function Countdown({ diff --git a/apps/focusqueue/src/components/Dump.spec.tsx b/apps/focusqueue/src/components/Dump.spec.tsx index 8eea54b..6ac095d 100644 --- a/apps/focusqueue/src/components/Dump.spec.tsx +++ b/apps/focusqueue/src/components/Dump.spec.tsx @@ -1,11 +1,11 @@ import { render, screen, waitFor } from "@testing-library/react"; import { describe, it, expect, beforeEach, vi } from "vitest"; import Dump from "./Dump"; -import { State } from "@/App.reducer"; +import { State } from "~/App.reducer"; import userEvent from "@testing-library/user-event"; -import { authenticate, getBoards } from "@services/trello"; -import { updateMe } from "@services/firebase/firestore"; -import { useMe } from "@services/firebase/firestore"; +import { authenticate, getBoards } from "~services/trello"; +import { updateMe } from "~services/firebase/firestore"; +import { useMe } from "~services/firebase/firestore"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import React from "react"; diff --git a/apps/focusqueue/src/components/Dump.tsx b/apps/focusqueue/src/components/Dump.tsx index 928b760..6b85f7f 100644 --- a/apps/focusqueue/src/components/Dump.tsx +++ b/apps/focusqueue/src/components/Dump.tsx @@ -1,8 +1,8 @@ import TextField from "@mui/material/TextField"; import Button from "@mui/material/Button"; import { useEffect } from "react"; -import { addTask, updateMe, useMe } from "@services/firebase/firestore"; -import { State, Action } from "@/App.reducer"; +import { addTask, updateMe, useMe } from "~services/firebase/firestore"; +import { State, Action } from "~/App.reducer"; import TrelloDialog from "./TrelloDialog"; import { Stack } from "@mui/material"; import React from "react"; diff --git a/apps/focusqueue/src/components/Flow.tsx b/apps/focusqueue/src/components/Flow.tsx index 4ec7425..539f07a 100644 --- a/apps/focusqueue/src/components/Flow.tsx +++ b/apps/focusqueue/src/components/Flow.tsx @@ -5,11 +5,11 @@ import Typography from "@mui/material/Typography"; import Stack from "@mui/material/Stack"; import Dump from "./Dump"; import { useContext } from "react"; -import { AppContext } from "@/App"; -import withAuth from "@lib/withAuth"; -import { createDatapoint } from "@services/beeminder"; -import { useMe } from "@services/firebase/firestore"; -import convertStringToNumericSeconds from "@lib/convertStringToNumericSeconds"; +import { AppContext } from "~/App"; +import withAuth from "~lib/withAuth"; +import { createDatapoint } from "~services/beeminder"; +import { useMe } from "~services/firebase/firestore"; +import convertStringToNumericSeconds from "~lib/convertStringToNumericSeconds"; import React from "react"; function Flow() { diff --git a/apps/focusqueue/src/components/Settings.tsx b/apps/focusqueue/src/components/Settings.tsx index 065e8f5..d948479 100644 --- a/apps/focusqueue/src/components/Settings.tsx +++ b/apps/focusqueue/src/components/Settings.tsx @@ -1,9 +1,9 @@ import React, { useEffect, useState } from "react"; import { Button, Input } from "@mui/material"; -import { updateMe, useMe } from "@services/firebase/firestore"; +import { updateMe, useMe } from "~services/firebase/firestore"; import { useMutation } from "@tanstack/react-query"; import LoadingButton from "@mui/lab/LoadingButton"; -import withAuth from "@lib/withAuth"; +import withAuth from "~lib/withAuth"; const redirectUri = "http://localhost:5173/settings"; const clientId = "3yyb3d0ywheam1gjui40gn4eh"; diff --git a/apps/focusqueue/src/components/TrelloDialog.spec.tsx b/apps/focusqueue/src/components/TrelloDialog.spec.tsx index 26b286d..4f6717d 100644 --- a/apps/focusqueue/src/components/TrelloDialog.spec.tsx +++ b/apps/focusqueue/src/components/TrelloDialog.spec.tsx @@ -1,12 +1,12 @@ import { render, screen, waitFor } from "@testing-library/react"; import { describe, it, vi, expect } from "vitest"; import TrelloDialog from "./TrelloDialog"; -import { AppContext } from "@/App"; -import { initialState } from "@/App.reducer"; +import { AppContext } from "~/App"; +import { initialState } from "~/App.reducer"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; -import { getBoards } from "@services/trello"; +import { getBoards } from "~services/trello"; import userEvent from "@testing-library/user-event"; -import { useMe } from "@services/firebase/firestore"; +import { useMe } from "~services/firebase/firestore"; import React from "react"; vi.mock("@services/trello"); diff --git a/apps/focusqueue/src/components/TrelloDialog.tsx b/apps/focusqueue/src/components/TrelloDialog.tsx index 916cbc0..dd7ca6b 100644 --- a/apps/focusqueue/src/components/TrelloDialog.tsx +++ b/apps/focusqueue/src/components/TrelloDialog.tsx @@ -1,12 +1,12 @@ import { useContext, useEffect, useState } from "react"; -import { AppContext } from "@/App"; +import { AppContext } from "~/App"; import Dialog from "@mui/material/Dialog"; import DialogTitle from "@mui/material/DialogTitle"; import DialogContent from "@mui/material/DialogContent"; import DialogActions from "@mui/material/DialogActions"; import Button from "@mui/material/Button"; -import { authenticate, getBoards, getCards } from "@services/trello"; -import { useMe } from "@services/firebase/firestore"; +import { authenticate, getBoards, getCards } from "~services/trello"; +import { useMe } from "~services/firebase/firestore"; import { useQuery } from "@tanstack/react-query"; import FormGroup from "@mui/material/FormGroup"; import FormControlLabel from "@mui/material/FormControlLabel"; diff --git a/apps/focusqueue/src/lib/withAuth.tsx b/apps/focusqueue/src/lib/withAuth.tsx index a06959e..93dc4d2 100644 --- a/apps/focusqueue/src/lib/withAuth.tsx +++ b/apps/focusqueue/src/lib/withAuth.tsx @@ -1,4 +1,4 @@ -import { useAuthenticatedUser } from "@services/firebase/auth"; +import { useAuthenticatedUser } from "~services/firebase/auth"; import React from "react"; export default function withAuth(Component: React.FunctionComponent) { diff --git a/apps/focusqueue/src/services/firebase/app.ts b/apps/focusqueue/src/services/firebase/app.ts index df6b732..b619c2f 100644 --- a/apps/focusqueue/src/services/firebase/app.ts +++ b/apps/focusqueue/src/services/firebase/app.ts @@ -1,5 +1,5 @@ import { initializeApp } from "firebase/app"; -import getEnvValue from "@lib/getEnvValue"; +import getEnvValue from "~lib/getEnvValue"; import { getFirestore } from "firebase/firestore"; const e = (k: string) => getEnvValue(k); diff --git a/apps/focusqueue/src/services/trello.ts b/apps/focusqueue/src/services/trello.ts index 5ead6d1..7b1bd8c 100644 --- a/apps/focusqueue/src/services/trello.ts +++ b/apps/focusqueue/src/services/trello.ts @@ -1,4 +1,4 @@ -import getEnvValue from "@lib/getEnvValue"; +import getEnvValue from "~lib/getEnvValue"; export function authenticate() { // Redirect user to Trello login page diff --git a/apps/focusqueue/tsconfig.json b/apps/focusqueue/tsconfig.json index bc8b9f4..6aec366 100644 --- a/apps/focusqueue/tsconfig.json +++ b/apps/focusqueue/tsconfig.json @@ -1,53 +1,53 @@ { - "compilerOptions": { - "target": "ESNext", - "useDefineForClassFields": true, - "lib": [ - "DOM", - "DOM.Iterable", - "ESNext" - ], - "allowJs": false, - "skipLibCheck": true, - "esModuleInterop": false, - "allowSyntheticDefaultImports": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "module": "ESNext", - "moduleResolution": "Node", - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react-jsx", - "baseUrl": ".", - "types": [ - "@testing-library/jest-dom" - ], - "paths": { - "@assets/*": [ - "src/assets/*" - ], - "@components/*": [ - "src/components/*" - ], - "@lib/*": [ - "src/lib/*" - ], - "@services/*": [ - "src/services/*" - ], - "@/*": [ - "src/*" - ] - } - }, - "include": [ - "src", - "./vite.d.ts", - "./vitest.setup.ts", - "__mocks__" + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": [ + "DOM", + "DOM.Iterable", + "ESNext" ], - "exclude": [ - ".eslintrc.cjs" - ] + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "baseUrl": ".", + "types": [ + "@testing-library/jest-dom" + ], + "paths": { + "~assets/*": [ + "src/assets/*" + ], + "~components/*": [ + "src/components/*" + ], + "~lib/*": [ + "src/lib/*" + ], + "~services/*": [ + "src/services/*" + ], + "~/*": [ + "src/*" + ] + } + }, + "include": [ + "src", + "./vite.d.ts", + "./vitest.setup.ts", + "__mocks__" + ], + "exclude": [ + ".eslintrc.cjs" + ] } \ No newline at end of file diff --git a/apps/focusqueue/vite.config.ts b/apps/focusqueue/vite.config.ts index 3832de5..9a6cdd1 100644 --- a/apps/focusqueue/vite.config.ts +++ b/apps/focusqueue/vite.config.ts @@ -6,7 +6,7 @@ import { ViteAliases } from "vite-aliases"; export default defineConfig(({ mode }) => { const env = loadEnv(mode, process.cwd()); return { - plugins: [react(), ViteAliases({ useConfig: true, useTypescript: true })], + plugins: [react(), ViteAliases({ useConfig: true })], test: { setupFiles: "vitest.setup.ts", environment: "jsdom", diff --git a/apps/focusqueue/vitest.setup.ts b/apps/focusqueue/vitest.setup.ts index 9b7271c..0231ff3 100644 --- a/apps/focusqueue/vitest.setup.ts +++ b/apps/focusqueue/vitest.setup.ts @@ -4,9 +4,9 @@ import matchers, { } from "@testing-library/jest-dom/matchers"; import { expect, afterEach, beforeEach } from "vitest"; import { cleanup } from "@testing-library/react"; -import { loginWithGoogle } from "@services/firebase/auth"; -import getEnvValue from "@lib/getEnvValue"; -import { getCards } from "@services/trello"; +import { loginWithGoogle } from "~services/firebase/auth"; +import getEnvValue from "~lib/getEnvValue"; +import { getCards } from "~services/trello"; const m: TestingLibraryMatchers = matchers; @@ -14,12 +14,12 @@ const m: TestingLibraryMatchers = matchers; expect.extend(m); vi.mock("axios"); -vi.mock("@lib/getEnvValue"); -vi.mock("@lib/speak"); -vi.mock("@services/firebase/app"); -vi.mock("@services/firebase/auth"); -vi.mock("@services/firebase/firestore"); -vi.mock("@services/trello"); +vi.mock("~lib/getEnvValue"); +vi.mock("~lib/speak"); +vi.mock("~services/firebase/app"); +vi.mock("~services/firebase/auth"); +vi.mock("~services/firebase/firestore"); +vi.mock("~services/trello"); beforeEach(() => { vi.mocked(loginWithGoogle).mockResolvedValue({} as any); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ef00e59..ecef5a9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -152,67 +152,67 @@ importers: apps/focusqueue: specifiers: '@bradgarropy/use-countdown': ^1.5.2 - '@emotion/react': ^11.10.6 - '@emotion/styled': ^11.10.6 - '@mui/lab': 5.0.0-alpha.120 - '@mui/material': ^5.11.10 - '@tanstack/react-query': ^4.24.10 + '@emotion/react': ^11.11.1 + '@emotion/styled': ^11.11.0 + '@mui/lab': 5.0.0-alpha.134 + '@mui/material': ^5.13.5 + '@tanstack/react-query': ^4.29.12 '@testing-library/jest-dom': ^5.16.5 '@testing-library/react': ^14.0.0 '@testing-library/user-event': ^14.4.3 - '@types/react': ^18.0.28 - '@types/react-dom': ^18.0.11 - '@types/testing-library__jest-dom': ^5.14.5 - '@typescript-eslint/eslint-plugin': ^5.53.0 - '@typescript-eslint/parser': ^5.53.0 - '@vitejs/plugin-react-swc': ^3.2.0 - axios: ^1.3.4 + '@types/react': ^18.2.11 + '@types/react-dom': ^18.2.5 + '@types/testing-library__jest-dom': ^5.14.6 + '@typescript-eslint/eslint-plugin': ^5.59.11 + '@typescript-eslint/parser': ^5.59.11 + '@vitejs/plugin-react-swc': ^3.3.2 + axios: ^1.4.0 depcheck: ^1.4.3 - eslint: ^8.34.0 + eslint: ^8.42.0 eslint-plugin-react: ^7.32.2 - firebase: ^9.17.1 - jsdom: ^21.1.0 - prettier: ^2.8.4 + firebase: ^9.22.2 + jsdom: ^22.1.0 + prettier: ^2.8.8 react: ^18.2.0 react-dom: ^18.2.0 - react-router-dom: ^6.8.1 - tslib: ^2.5.0 - typescript: ^4.9.5 - vite: ^4.1.4 - vite-aliases: ^0.10.0 - vitest: ^0.28.5 + react-router-dom: ^6.12.1 + tslib: ^2.5.3 + typescript: ^5.1.3 + vite: ^4.3.9 + vite-aliases: ^0.11.2 + vitest: ^0.32.0 dependencies: '@bradgarropy/use-countdown': 1.5.2_react@18.2.0 - '@emotion/react': 11.11.0_bfoz4c5kom3f237nig75ykjhhy - '@emotion/styled': 11.11.0_a2i5n5lojrfshkutjtdzmeomky - '@mui/lab': 5.0.0-alpha.120_n45mwpqfp37amclvxr3l7u6rri - '@mui/material': 5.13.2_rcyk3p3henusk3yzgoxovlybni - '@tanstack/react-query': 4.29.7_biqbaboplfbrettd7655fr4n2y + '@emotion/react': 11.11.1_j4swkgacdxrhexoapez3itylte + '@emotion/styled': 11.11.0_nu4qc6kdcs236nxv7mh5bc5le4 + '@mui/lab': 5.0.0-alpha.134_yli66o5dp3cmyz67ihwukr6bwm + '@mui/material': 5.13.5_juzjxnossgkja5qzwfnv7rirzi + '@tanstack/react-query': 4.29.12_biqbaboplfbrettd7655fr4n2y axios: 1.4.0 - firebase: 9.22.0 + firebase: 9.22.2 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 - react-router-dom: 6.11.2_biqbaboplfbrettd7655fr4n2y + react-router-dom: 6.12.1_biqbaboplfbrettd7655fr4n2y devDependencies: '@testing-library/jest-dom': 5.16.5 '@testing-library/react': 14.0.0_biqbaboplfbrettd7655fr4n2y '@testing-library/user-event': 14.4.3_@testing-library+dom@9.3.0 - '@types/react': 18.2.7 - '@types/react-dom': 18.2.4 + '@types/react': 18.2.11 + '@types/react-dom': 18.2.5 '@types/testing-library__jest-dom': 5.14.6 - '@typescript-eslint/eslint-plugin': 5.59.7_gnnf3trwikzd6jkxh7av7rnt5e - '@typescript-eslint/parser': 5.59.7_5ujgynla27k2qkzlnkldjwsutm - '@vitejs/plugin-react-swc': 3.3.1_vite@4.3.8 + '@typescript-eslint/eslint-plugin': 5.59.11_sqfi766b7p7jf53aqxvjxvblnq + '@typescript-eslint/parser': 5.59.11_tizxnkcvjrb4cldxgwq5h3lj5u + '@vitejs/plugin-react-swc': 3.3.2_vite@4.3.9 depcheck: 1.4.3 - eslint: 8.41.0 - eslint-plugin-react: 7.32.2_eslint@8.41.0 - jsdom: 21.1.2 + eslint: 8.42.0 + eslint-plugin-react: 7.32.2_eslint@8.42.0 + jsdom: 22.1.0 prettier: 2.8.8 - tslib: 2.5.2 - typescript: 4.9.5 - vite: 4.3.8_@types+node@20.2.3 - vite-aliases: 0.10.0_@types+node@20.2.3 - vitest: 0.28.5_jsdom@21.1.2 + tslib: 2.5.3 + typescript: 5.1.3 + vite: 4.3.9 + vite-aliases: 0.11.2 + vitest: 0.32.0_jsdom@22.1.0 apps/taskratchet-web: specifiers: @@ -982,7 +982,7 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.22.5 dev: true /@babel/parser/7.16.8: @@ -3148,27 +3148,6 @@ packages: resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} dev: false - /@emotion/react/11.11.0_bfoz4c5kom3f237nig75ykjhhy: - resolution: {integrity: sha512-ZSK3ZJsNkwfjT3JpDAWJZlrGD81Z3ytNDsxw1LKq1o+xkmO5pnWfr6gmCC8gHEFf3nSSX/09YrG67jybNPxSUw==} - peerDependencies: - '@types/react': '*' - react: '>=16.8.0' - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.21.5 - '@emotion/babel-plugin': 11.11.0 - '@emotion/cache': 11.11.0 - '@emotion/serialize': 1.1.2 - '@emotion/use-insertion-effect-with-fallbacks': 1.0.1_react@18.2.0 - '@emotion/utils': 1.2.1 - '@emotion/weak-memoize': 0.3.1 - '@types/react': 18.2.7 - hoist-non-react-statics: 3.3.2 - react: 18.2.0 - dev: false - /@emotion/react/11.11.0_wfmuqocisy6ijxsutdsg4s4lmy: resolution: {integrity: sha512-ZSK3ZJsNkwfjT3JpDAWJZlrGD81Z3ytNDsxw1LKq1o+xkmO5pnWfr6gmCC8gHEFf3nSSX/09YrG67jybNPxSUw==} peerDependencies: @@ -3225,27 +3204,6 @@ packages: resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==} dev: false - /@emotion/styled/11.11.0_a2i5n5lojrfshkutjtdzmeomky: - resolution: {integrity: sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==} - peerDependencies: - '@emotion/react': ^11.0.0-rc.0 - '@types/react': '*' - react: '>=16.8.0' - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.21.5 - '@emotion/babel-plugin': 11.11.0 - '@emotion/is-prop-valid': 1.2.1 - '@emotion/react': 11.11.0_bfoz4c5kom3f237nig75ykjhhy - '@emotion/serialize': 1.1.2 - '@emotion/use-insertion-effect-with-fallbacks': 1.0.1_react@18.2.0 - '@emotion/utils': 1.2.1 - '@types/react': 18.2.7 - react: 18.2.0 - dev: false - /@emotion/styled/11.11.0_g43vdmz5dh73hgqvu2fikye3ui: resolution: {integrity: sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==} peerDependencies: @@ -3591,21 +3549,6 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@firebase/analytics-compat/0.2.6_7ojv3jwoyhxvcvq36w2wrks3za: - resolution: {integrity: sha512-4MqpVLFkGK7NJf/5wPEEP7ePBJatwYpyjgJ+wQHQGHfzaCDgntOnl9rL2vbVGGKCnRqWtZDIWhctB86UWXaX2Q==} - peerDependencies: - '@firebase/app-compat': 0.x - dependencies: - '@firebase/analytics': 0.10.0_@firebase+app@0.9.10 - '@firebase/analytics-types': 0.8.0 - '@firebase/app-compat': 0.2.10 - '@firebase/component': 0.6.4 - '@firebase/util': 1.9.3 - tslib: 2.5.2 - transitivePeerDependencies: - - '@firebase/app' - dev: false - /@firebase/analytics-compat/0.2.6_q7henfwtppzleilrecduigslne: resolution: {integrity: sha512-4MqpVLFkGK7NJf/5wPEEP7ePBJatwYpyjgJ+wQHQGHfzaCDgntOnl9rL2vbVGGKCnRqWtZDIWhctB86UWXaX2Q==} peerDependencies: @@ -3629,19 +3572,6 @@ packages: resolution: {integrity: sha512-iRP+QKI2+oz3UAh4nPEq14CsEjrjD6a5+fuypjScisAh9kXKFvdJOZJDwk7kikLvWVLGEs9+kIUS4LPQV7VZVw==} dev: false - /@firebase/analytics/0.10.0_@firebase+app@0.9.10: - resolution: {integrity: sha512-Locv8gAqx0e+GX/0SI3dzmBY5e9kjVDtD+3zCFLJ0tH2hJwuCAiL+5WkHuxKj92rqQj/rvkBUCfA1ewlX2hehg==} - peerDependencies: - '@firebase/app': 0.x - dependencies: - '@firebase/app': 0.9.10 - '@firebase/component': 0.6.4 - '@firebase/installations': 0.6.4_@firebase+app@0.9.10 - '@firebase/logger': 0.4.0 - '@firebase/util': 1.9.3 - tslib: 2.5.2 - dev: false - /@firebase/analytics/0.10.0_@firebase+app@0.9.12: resolution: {integrity: sha512-Locv8gAqx0e+GX/0SI3dzmBY5e9kjVDtD+3zCFLJ0tH2hJwuCAiL+5WkHuxKj92rqQj/rvkBUCfA1ewlX2hehg==} peerDependencies: @@ -3671,22 +3601,6 @@ packages: tslib: 2.5.2 dev: false - /@firebase/app-check-compat/0.3.6_7ojv3jwoyhxvcvq36w2wrks3za: - resolution: {integrity: sha512-azHAeHi9igoaIo04E6Yfuc7aIbWoWuBXuqjyYyWbeCc8Zz/NfJvIAgmXugN4LdxsHJ7XGlZTvwJ6YaYROdSa7A==} - peerDependencies: - '@firebase/app-compat': 0.x - dependencies: - '@firebase/app-check': 0.7.0_@firebase+app@0.9.10 - '@firebase/app-check-types': 0.5.0 - '@firebase/app-compat': 0.2.10 - '@firebase/component': 0.6.4 - '@firebase/logger': 0.4.0 - '@firebase/util': 1.9.3 - tslib: 2.5.2 - transitivePeerDependencies: - - '@firebase/app' - dev: false - /@firebase/app-check-compat/0.3.7_q7henfwtppzleilrecduigslne: resolution: {integrity: sha512-cW682AxsyP1G+Z0/P7pO/WT2CzYlNxoNe5QejVarW2o5ZxeWSSPAiVEwpEpQR/bUlUmdeWThYTMvBWaopdBsqw==} peerDependencies: @@ -3707,10 +3621,6 @@ packages: resolution: {integrity: sha512-uZfn9s4uuRsaX5Lwx+gFP3B6YsyOKUE+Rqa6z9ojT4VSRAsZFko9FRn6OxQUA1z5t5d08fY4pf+/+Dkd5wbdbA==} dev: false - /@firebase/app-check-interop-types/0.2.0: - resolution: {integrity: sha512-+3PQIeX6/eiVK+x/yg8r6xTNR97fN7MahFDm+jiQmDjcyvSefoGuTTNQuuMScGyx3vYUBeZn+Cp9kC0yY/9uxQ==} - dev: false - /@firebase/app-check-interop-types/0.3.0: resolution: {integrity: sha512-xAxHPZPIgFXnI+vb4sbBjZcde7ZluzPPaSK7Lx3/nmuVk4TjZvnL8ONnkd4ERQKL8WePQySU+pRcWkh8rDf5Sg==} dev: false @@ -3739,18 +3649,6 @@ packages: tslib: 2.5.2 dev: false - /@firebase/app-check/0.7.0_@firebase+app@0.9.10: - resolution: {integrity: sha512-y0raLJpEtiL+wonfInFMaSfBV/EDvr356ZHMWbpr5F7fR0/I3cC0h7U6SKpKhrbSHJ0fOYIe0xbih20KTlpcnA==} - peerDependencies: - '@firebase/app': 0.x - dependencies: - '@firebase/app': 0.9.10 - '@firebase/component': 0.6.4 - '@firebase/logger': 0.4.0 - '@firebase/util': 1.9.3 - tslib: 2.5.2 - dev: false - /@firebase/app-check/0.8.0_@firebase+app@0.9.12: resolution: {integrity: sha512-dRDnhkcaC2FspMiRK/Vbp+PfsOAEP6ZElGm9iGFJ9fDqHoPs0HOPn7dwpJ51lCFi1+2/7n5pRPGhqF/F03I97g==} peerDependencies: @@ -3822,24 +3720,6 @@ packages: tslib: 2.5.3 dev: false - /@firebase/auth-compat/0.4.2_jrbxz4fs42uy26dcxayyy3ntay: - resolution: {integrity: sha512-Q30e77DWXFmXEt5dg5JbqEDpjw9y3/PcP9LslDPR7fARmAOTIY9MM6HXzm9KC+dlrKH/+p6l8g9ifJiam9mc4A==} - peerDependencies: - '@firebase/app-compat': 0.x - dependencies: - '@firebase/app-compat': 0.2.10 - '@firebase/auth': 0.23.2_@firebase+app@0.9.10 - '@firebase/auth-types': 0.12.0_pe7cbgjgh7vzd7cjsjzacprt4m - '@firebase/component': 0.6.4 - '@firebase/util': 1.9.3 - node-fetch: 2.6.7 - tslib: 2.5.2 - transitivePeerDependencies: - - '@firebase/app' - - '@firebase/app-types' - - encoding - dev: false - /@firebase/auth-compat/0.4.2_m6m4sdusuiflqbhnqlemhbfiyu: resolution: {integrity: sha512-Q30e77DWXFmXEt5dg5JbqEDpjw9y3/PcP9LslDPR7fARmAOTIY9MM6HXzm9KC+dlrKH/+p6l8g9ifJiam9mc4A==} peerDependencies: @@ -3913,21 +3793,6 @@ packages: - '@firebase/util' dev: false - /@firebase/auth/0.23.2_@firebase+app@0.9.10: - resolution: {integrity: sha512-dM9iJ0R6tI1JczuGSxXmQbXAgtYie0K4WvKcuyuSTCu9V8eEDiz4tfa1sO3txsfvwg7nOY3AjoCyMYEdqZ8hdg==} - peerDependencies: - '@firebase/app': 0.x - dependencies: - '@firebase/app': 0.9.10 - '@firebase/component': 0.6.4 - '@firebase/logger': 0.4.0 - '@firebase/util': 1.9.3 - node-fetch: 2.6.7 - tslib: 2.5.2 - transitivePeerDependencies: - - encoding - dev: false - /@firebase/auth/0.23.2_@firebase+app@0.9.12: resolution: {integrity: sha512-dM9iJ0R6tI1JczuGSxXmQbXAgtYie0K4WvKcuyuSTCu9V8eEDiz4tfa1sO3txsfvwg7nOY3AjoCyMYEdqZ8hdg==} peerDependencies: @@ -4067,23 +3932,6 @@ packages: - encoding dev: false - /@firebase/firestore-compat/0.3.9_jrbxz4fs42uy26dcxayyy3ntay: - resolution: {integrity: sha512-u4fGeuaDaMnAPp20PAm6vrhktVGCtfmC3iup5ymMkOUNIqbuQ/+WLL3zUlJi+Ytl4hX0vVNg4UQEh4vfMorc4Q==} - peerDependencies: - '@firebase/app-compat': 0.x - dependencies: - '@firebase/app-compat': 0.2.10 - '@firebase/component': 0.6.4 - '@firebase/firestore': 3.12.0_@firebase+app@0.9.10 - '@firebase/firestore-types': 2.5.1_pe7cbgjgh7vzd7cjsjzacprt4m - '@firebase/util': 1.9.3 - tslib: 2.5.2 - transitivePeerDependencies: - - '@firebase/app' - - '@firebase/app-types' - - encoding - dev: false - /@firebase/firestore-types/2.4.0_btkbmd3h5b2xery5rhjafs7ybe: resolution: {integrity: sha512-0dgwfuNP7EN6/OlK2HSNSQiQNGLGaRBH0gvgr1ngtKKJuJFuq0Z48RBMeJX9CGjV4TP9h2KaB+KrUKJ5kh1hMg==} peerDependencies: @@ -4126,25 +3974,6 @@ packages: - encoding dev: false - /@firebase/firestore/3.12.0_@firebase+app@0.9.10: - resolution: {integrity: sha512-mZdwIJBOIAdkaykqZqMYQZldSH19gf7u1Y77UVxh4igm1zaG8ZiGE8qYVXQ/vGc+BvvUZ8OpnqLI5Z0JSJtDIg==} - engines: {node: '>=10.10.0'} - peerDependencies: - '@firebase/app': 0.x - dependencies: - '@firebase/app': 0.9.10 - '@firebase/component': 0.6.4 - '@firebase/logger': 0.4.0 - '@firebase/util': 1.9.3 - '@firebase/webchannel-wrapper': 0.10.0 - '@grpc/grpc-js': 1.7.3 - '@grpc/proto-loader': 0.6.13 - node-fetch: 2.6.7 - tslib: 2.5.2 - transitivePeerDependencies: - - encoding - dev: false - /@firebase/firestore/3.12.2_@firebase+app@0.9.12: resolution: {integrity: sha512-6EDIJ2V4hlUkPvAb1uH5DAz65ZvhStIM1oYGSUx6mt2UdEDu/0CAVS7xYBY6niTyM/+2r6XBW3hYG/1x1V27vg==} engines: {node: '>=10.10.0'} @@ -4164,22 +3993,6 @@ packages: - encoding dev: false - /@firebase/functions-compat/0.3.4_7ojv3jwoyhxvcvq36w2wrks3za: - resolution: {integrity: sha512-kxVxTGyLV1MBR3sp3mI+eQ6JBqz0G5bk310F8eX4HzDFk4xjk5xY0KdHktMH+edM2xs1BOg0vwvvsAHczIjB+w==} - peerDependencies: - '@firebase/app-compat': 0.x - dependencies: - '@firebase/app-compat': 0.2.10 - '@firebase/component': 0.6.4 - '@firebase/functions': 0.9.4_@firebase+app@0.9.10 - '@firebase/functions-types': 0.6.0 - '@firebase/util': 1.9.3 - tslib: 2.5.2 - transitivePeerDependencies: - - '@firebase/app' - - encoding - dev: false - /@firebase/functions-compat/0.3.5_q7henfwtppzleilrecduigslne: resolution: {integrity: sha512-uD4jwgwVqdWf6uc3NRKF8cSZ0JwGqSlyhPgackyUPe+GAtnERpS4+Vr66g0b3Gge0ezG4iyHo/EXW/Hjx7QhHw==} peerDependencies: @@ -4238,39 +4051,6 @@ packages: - encoding dev: false - /@firebase/functions/0.9.4_@firebase+app@0.9.10: - resolution: {integrity: sha512-3H2qh6U+q+nepO5Hds+Ddl6J0pS+zisuBLqqQMRBHv9XpWfu0PnDHklNmE8rZ+ccTEXvBj6zjkPfdxt6NisvlQ==} - peerDependencies: - '@firebase/app': 0.x - dependencies: - '@firebase/app': 0.9.10 - '@firebase/app-check-interop-types': 0.2.0 - '@firebase/auth-interop-types': 0.2.1 - '@firebase/component': 0.6.4 - '@firebase/messaging-interop-types': 0.2.0 - '@firebase/util': 1.9.3 - node-fetch: 2.6.7 - tslib: 2.5.2 - transitivePeerDependencies: - - encoding - dev: false - - /@firebase/installations-compat/0.2.4_jrbxz4fs42uy26dcxayyy3ntay: - resolution: {integrity: sha512-LI9dYjp0aT9Njkn9U4JRrDqQ6KXeAmFbRC0E7jI7+hxl5YmRWysq5qgQl22hcWpTk+cm3es66d/apoDU/A9n6Q==} - peerDependencies: - '@firebase/app-compat': 0.x - dependencies: - '@firebase/app-compat': 0.2.10 - '@firebase/component': 0.6.4 - '@firebase/installations': 0.6.4_@firebase+app@0.9.10 - '@firebase/installations-types': 0.5.0_@firebase+app-types@0.9.0 - '@firebase/util': 1.9.3 - tslib: 2.5.2 - transitivePeerDependencies: - - '@firebase/app' - - '@firebase/app-types' - dev: false - /@firebase/installations-compat/0.2.4_m6m4sdusuiflqbhnqlemhbfiyu: resolution: {integrity: sha512-LI9dYjp0aT9Njkn9U4JRrDqQ6KXeAmFbRC0E7jI7+hxl5YmRWysq5qgQl22hcWpTk+cm3es66d/apoDU/A9n6Q==} peerDependencies: @@ -4318,18 +4098,6 @@ packages: tslib: 2.5.2 dev: false - /@firebase/installations/0.6.4_@firebase+app@0.9.10: - resolution: {integrity: sha512-u5y88rtsp7NYkCHC3ElbFBrPtieUybZluXyzl7+4BsIz4sqb4vSAuwHEUgCgCeaQhvsnxDEU6icly8U9zsJigA==} - peerDependencies: - '@firebase/app': 0.x - dependencies: - '@firebase/app': 0.9.10 - '@firebase/component': 0.6.4 - '@firebase/util': 1.9.3 - idb: 7.0.1 - tslib: 2.5.2 - dev: false - /@firebase/installations/0.6.4_@firebase+app@0.9.12: resolution: {integrity: sha512-u5y88rtsp7NYkCHC3ElbFBrPtieUybZluXyzl7+4BsIz4sqb4vSAuwHEUgCgCeaQhvsnxDEU6icly8U9zsJigA==} peerDependencies: @@ -4356,20 +4124,6 @@ packages: dependencies: tslib: 2.5.3 - /@firebase/messaging-compat/0.2.4_7ojv3jwoyhxvcvq36w2wrks3za: - resolution: {integrity: sha512-lyFjeUhIsPRYDPNIkYX1LcZMpoVbBWXX4rPl7c/rqc7G+EUea7IEtSt4MxTvh6fDfPuzLn7+FZADfscC+tNMfg==} - peerDependencies: - '@firebase/app-compat': 0.x - dependencies: - '@firebase/app-compat': 0.2.10 - '@firebase/component': 0.6.4 - '@firebase/messaging': 0.12.4_@firebase+app@0.9.10 - '@firebase/util': 1.9.3 - tslib: 2.5.2 - transitivePeerDependencies: - - '@firebase/app' - dev: false - /@firebase/messaging-compat/0.2.4_q7henfwtppzleilrecduigslne: resolution: {integrity: sha512-lyFjeUhIsPRYDPNIkYX1LcZMpoVbBWXX4rPl7c/rqc7G+EUea7IEtSt4MxTvh6fDfPuzLn7+FZADfscC+tNMfg==} peerDependencies: @@ -4396,32 +4150,18 @@ packages: '@firebase/app-types': 0.6.3 dev: false - /@firebase/messaging/0.12.4_@firebase+app@0.9.10: + /@firebase/messaging/0.12.4_@firebase+app@0.9.12: resolution: {integrity: sha512-6JLZct6zUaex4g7HI3QbzeUrg9xcnmDAPTWpkoMpd/GoSVWH98zDoWXMGrcvHeCAIsLpFMe4MPoZkJbrPhaASw==} peerDependencies: '@firebase/app': 0.x dependencies: - '@firebase/app': 0.9.10 + '@firebase/app': 0.9.12 '@firebase/component': 0.6.4 - '@firebase/installations': 0.6.4_@firebase+app@0.9.10 + '@firebase/installations': 0.6.4_@firebase+app@0.9.12 '@firebase/messaging-interop-types': 0.2.0 '@firebase/util': 1.9.3 idb: 7.0.1 - tslib: 2.5.2 - dev: false - - /@firebase/messaging/0.12.4_@firebase+app@0.9.12: - resolution: {integrity: sha512-6JLZct6zUaex4g7HI3QbzeUrg9xcnmDAPTWpkoMpd/GoSVWH98zDoWXMGrcvHeCAIsLpFMe4MPoZkJbrPhaASw==} - peerDependencies: - '@firebase/app': 0.x - dependencies: - '@firebase/app': 0.9.12 - '@firebase/component': 0.6.4 - '@firebase/installations': 0.6.4_@firebase+app@0.9.12 - '@firebase/messaging-interop-types': 0.2.0 - '@firebase/util': 1.9.3 - idb: 7.0.1 - tslib: 2.5.3 + tslib: 2.5.3 dev: false /@firebase/messaging/0.8.0_z3hxu6tufpxc3mjsqzr74ipb4a: @@ -4440,22 +4180,6 @@ packages: tslib: 2.5.2 dev: false - /@firebase/performance-compat/0.2.4_7ojv3jwoyhxvcvq36w2wrks3za: - resolution: {integrity: sha512-nnHUb8uP9G8islzcld/k6Bg5RhX62VpbAb/Anj7IXs/hp32Eb2LqFPZK4sy3pKkBUO5wcrlRWQa6wKOxqlUqsg==} - peerDependencies: - '@firebase/app-compat': 0.x - dependencies: - '@firebase/app-compat': 0.2.10 - '@firebase/component': 0.6.4 - '@firebase/logger': 0.4.0 - '@firebase/performance': 0.6.4_@firebase+app@0.9.10 - '@firebase/performance-types': 0.2.0 - '@firebase/util': 1.9.3 - tslib: 2.5.2 - transitivePeerDependencies: - - '@firebase/app' - dev: false - /@firebase/performance-compat/0.2.4_q7henfwtppzleilrecduigslne: resolution: {integrity: sha512-nnHUb8uP9G8islzcld/k6Bg5RhX62VpbAb/Anj7IXs/hp32Eb2LqFPZK4sy3pKkBUO5wcrlRWQa6wKOxqlUqsg==} peerDependencies: @@ -4496,19 +4220,6 @@ packages: tslib: 2.5.2 dev: false - /@firebase/performance/0.6.4_@firebase+app@0.9.10: - resolution: {integrity: sha512-HfTn/bd8mfy/61vEqaBelNiNnvAbUtME2S25A67Nb34zVuCSCRIX4SseXY6zBnOFj3oLisaEqhVcJmVPAej67g==} - peerDependencies: - '@firebase/app': 0.x - dependencies: - '@firebase/app': 0.9.10 - '@firebase/component': 0.6.4 - '@firebase/installations': 0.6.4_@firebase+app@0.9.10 - '@firebase/logger': 0.4.0 - '@firebase/util': 1.9.3 - tslib: 2.5.2 - dev: false - /@firebase/performance/0.6.4_@firebase+app@0.9.12: resolution: {integrity: sha512-HfTn/bd8mfy/61vEqaBelNiNnvAbUtME2S25A67Nb34zVuCSCRIX4SseXY6zBnOFj3oLisaEqhVcJmVPAej67g==} peerDependencies: @@ -4530,22 +4241,6 @@ packages: whatwg-fetch: 2.0.4 dev: false - /@firebase/remote-config-compat/0.2.4_7ojv3jwoyhxvcvq36w2wrks3za: - resolution: {integrity: sha512-FKiki53jZirrDFkBHglB3C07j5wBpitAaj8kLME6g8Mx+aq7u9P7qfmuSRytiOItADhWUj7O1JIv7n9q87SuwA==} - peerDependencies: - '@firebase/app-compat': 0.x - dependencies: - '@firebase/app-compat': 0.2.10 - '@firebase/component': 0.6.4 - '@firebase/logger': 0.4.0 - '@firebase/remote-config': 0.4.4_@firebase+app@0.9.10 - '@firebase/remote-config-types': 0.3.0 - '@firebase/util': 1.9.3 - tslib: 2.5.2 - transitivePeerDependencies: - - '@firebase/app' - dev: false - /@firebase/remote-config-compat/0.2.4_q7henfwtppzleilrecduigslne: resolution: {integrity: sha512-FKiki53jZirrDFkBHglB3C07j5wBpitAaj8kLME6g8Mx+aq7u9P7qfmuSRytiOItADhWUj7O1JIv7n9q87SuwA==} peerDependencies: @@ -4586,19 +4281,6 @@ packages: tslib: 2.5.2 dev: false - /@firebase/remote-config/0.4.4_@firebase+app@0.9.10: - resolution: {integrity: sha512-x1ioTHGX8ZwDSTOVp8PBLv2/wfwKzb4pxi0gFezS5GCJwbLlloUH4YYZHHS83IPxnua8b6l0IXUaWd0RgbWwzQ==} - peerDependencies: - '@firebase/app': 0.x - dependencies: - '@firebase/app': 0.9.10 - '@firebase/component': 0.6.4 - '@firebase/installations': 0.6.4_@firebase+app@0.9.10 - '@firebase/logger': 0.4.0 - '@firebase/util': 1.9.3 - tslib: 2.5.2 - dev: false - /@firebase/remote-config/0.4.4_@firebase+app@0.9.12: resolution: {integrity: sha512-x1ioTHGX8ZwDSTOVp8PBLv2/wfwKzb4pxi0gFezS5GCJwbLlloUH4YYZHHS83IPxnua8b6l0IXUaWd0RgbWwzQ==} peerDependencies: @@ -4612,23 +4294,6 @@ packages: tslib: 2.5.3 dev: false - /@firebase/storage-compat/0.3.2_jrbxz4fs42uy26dcxayyy3ntay: - resolution: {integrity: sha512-wvsXlLa9DVOMQJckbDNhXKKxRNNewyUhhbXev3t8kSgoCotd1v3MmqhKKz93ePhDnhHnDs7bYHy+Qa8dRY6BXw==} - peerDependencies: - '@firebase/app-compat': 0.x - dependencies: - '@firebase/app-compat': 0.2.10 - '@firebase/component': 0.6.4 - '@firebase/storage': 0.11.2_@firebase+app@0.9.10 - '@firebase/storage-types': 0.8.0_pe7cbgjgh7vzd7cjsjzacprt4m - '@firebase/util': 1.9.3 - tslib: 2.5.2 - transitivePeerDependencies: - - '@firebase/app' - - '@firebase/app-types' - - encoding - dev: false - /@firebase/storage-compat/0.3.2_m6m4sdusuiflqbhnqlemhbfiyu: resolution: {integrity: sha512-wvsXlLa9DVOMQJckbDNhXKKxRNNewyUhhbXev3t8kSgoCotd1v3MmqhKKz93ePhDnhHnDs7bYHy+Qa8dRY6BXw==} peerDependencies: @@ -4666,20 +4331,6 @@ packages: '@firebase/util': 1.9.3 dev: false - /@firebase/storage/0.11.2_@firebase+app@0.9.10: - resolution: {integrity: sha512-CtvoFaBI4hGXlXbaCHf8humajkbXhs39Nbh6MbNxtwJiCqxPy9iH3D3CCfXAvP0QvAAwmJUTK3+z9a++Kc4nkA==} - peerDependencies: - '@firebase/app': 0.x - dependencies: - '@firebase/app': 0.9.10 - '@firebase/component': 0.6.4 - '@firebase/util': 1.9.3 - node-fetch: 2.6.7 - tslib: 2.5.2 - transitivePeerDependencies: - - encoding - dev: false - /@firebase/storage/0.11.2_@firebase+app@0.9.12: resolution: {integrity: sha512-CtvoFaBI4hGXlXbaCHf8humajkbXhs39Nbh6MbNxtwJiCqxPy9iH3D3CCfXAvP0QvAAwmJUTK3+z9a++Kc4nkA==} peerDependencies: @@ -4727,10 +4378,6 @@ packages: dependencies: tslib: 2.5.3 - /@firebase/webchannel-wrapper/0.10.0: - resolution: {integrity: sha512-2I8y+vJVrPfPFJrnRGpao1Qc2Gu7wmYoo5ed2s5zK/DUGgcyY1Yr/xC0YdnKM4pi7rG3HqwW9ehAKUXoTMLdoA==} - dev: false - /@firebase/webchannel-wrapper/0.10.1: resolution: {integrity: sha512-Dq5rYfEpdeel0bLVN+nfD1VWmzCkK+pJbSjIawGE+RY4+NIJqhbUDDQjvV0NUK84fMfwxvtFoCtEe70HfZjFcw==} dev: false @@ -5490,30 +5137,6 @@ packages: glob-to-regexp: 0.3.0 dev: true - /@mui/base/5.0.0-alpha.118_psemcf34ovg2dno52nagbe3daa: - resolution: {integrity: sha512-GAEpqhnuHjRaAZLdxFNuOf2GDTp9sUawM46oHZV4VnYPFjXJDkIYFWfIQLONb0nga92OiqS5DD/scGzVKCL0Mw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.21.5 - '@emotion/is-prop-valid': 1.2.1 - '@mui/types': 7.2.4_@types+react@18.2.7 - '@mui/utils': 5.13.1_react@18.2.0 - '@popperjs/core': 2.11.7 - '@types/react': 18.2.7 - clsx: 1.2.1 - prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - react-is: 18.2.0 - dev: false - /@mui/base/5.0.0-beta.2_67ls2tg6s4m7k3le76ov6hhyyu: resolution: {integrity: sha512-R9R+aqrl1QhZJaO05rhvooqxOaf7SKpQ+EjW80sbP3ticTVmLmrn4YBLQS7/ML+WXdrkrPtqSmKFdSE5Ik3gBQ==} engines: {node: '>=12.0.0'} @@ -5538,30 +5161,6 @@ packages: react-is: 18.2.0 dev: false - /@mui/base/5.0.0-beta.2_psemcf34ovg2dno52nagbe3daa: - resolution: {integrity: sha512-R9R+aqrl1QhZJaO05rhvooqxOaf7SKpQ+EjW80sbP3ticTVmLmrn4YBLQS7/ML+WXdrkrPtqSmKFdSE5Ik3gBQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.21.5 - '@emotion/is-prop-valid': 1.2.1 - '@mui/types': 7.2.4_@types+react@18.2.7 - '@mui/utils': 5.13.1_react@18.2.0 - '@popperjs/core': 2.11.7 - '@types/react': 18.2.7 - clsx: 1.2.1 - prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - react-is: 18.2.0 - dev: false - /@mui/base/5.0.0-beta.4_qov4cjxi5tqn7nekji4kvvduvu: resolution: {integrity: sha512-ejhtqYJpjDgHGEljjMBQWZ22yEK0OzIXNa7toJmmXsP4TT3W7xVy8bTJ0TniPDf+JNjrsgfgiFTDGdlEhV1E+g==} engines: {node: '>=12.0.0'} @@ -5628,40 +5227,6 @@ packages: react: 17.0.2 dev: false - /@mui/lab/5.0.0-alpha.120_n45mwpqfp37amclvxr3l7u6rri: - resolution: {integrity: sha512-vjlF2jTKSZnNxtUO0xxHEDfpL5cG0LLNRsfKv8TYOiPs0Q1bbqO3YfqJsqxv8yh+wx7EFZc8lwJ4NSAQdenW3A==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@emotion/react': ^11.5.0 - '@emotion/styled': ^11.3.0 - '@mui/material': ^5.0.0 - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@emotion/react': - optional: true - '@emotion/styled': - optional: true - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.21.5 - '@emotion/react': 11.11.0_bfoz4c5kom3f237nig75ykjhhy - '@emotion/styled': 11.11.0_a2i5n5lojrfshkutjtdzmeomky - '@mui/base': 5.0.0-alpha.118_psemcf34ovg2dno52nagbe3daa - '@mui/material': 5.13.2_rcyk3p3henusk3yzgoxovlybni - '@mui/system': 5.13.2_w23gqpxud6khtzkrfd5q73try4 - '@mui/types': 7.2.4_@types+react@18.2.7 - '@mui/utils': 5.13.1_react@18.2.0 - '@types/react': 18.2.7 - clsx: 1.2.1 - prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - react-is: 18.2.0 - dev: false - /@mui/lab/5.0.0-alpha.131_atvbty7dqbqwjt6egokw5r5ywu: resolution: {integrity: sha512-NVC5ZqC0iJ1Cn6VMxyazB1EPhWKztLnKXXtFO0/nZaFuADu1BlLHg+0eTMKZwEXFbJybcAopCkA5hmuk/R7INA==} engines: {node: '>=12.0.0'} @@ -5730,42 +5295,6 @@ packages: react-is: 18.2.0 dev: false - /@mui/material/5.13.2_rcyk3p3henusk3yzgoxovlybni: - resolution: {integrity: sha512-Pfke1l0GG2OJb/Nr10aVr8huoBFcBTdWKV5iFSTEHqf9c2C1ZlyYMISn7ui6X3Gix8vr+hP5kVqH1LAWwQSb6w==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@emotion/react': ^11.5.0 - '@emotion/styled': ^11.3.0 - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@emotion/react': - optional: true - '@emotion/styled': - optional: true - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.21.5 - '@emotion/react': 11.11.0_bfoz4c5kom3f237nig75ykjhhy - '@emotion/styled': 11.11.0_a2i5n5lojrfshkutjtdzmeomky - '@mui/base': 5.0.0-beta.2_psemcf34ovg2dno52nagbe3daa - '@mui/core-downloads-tracker': 5.13.2 - '@mui/system': 5.13.2_w23gqpxud6khtzkrfd5q73try4 - '@mui/types': 7.2.4_@types+react@18.2.7 - '@mui/utils': 5.13.1_react@18.2.0 - '@types/react': 18.2.7 - '@types/react-transition-group': 4.4.6 - clsx: 1.2.1 - csstype: 3.1.2 - prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - react-is: 18.2.0 - react-transition-group: 4.4.5_biqbaboplfbrettd7655fr4n2y - dev: false - /@mui/material/5.13.2_tn4wpgotrfebequcwko5a5gkni: resolution: {integrity: sha512-Pfke1l0GG2OJb/Nr10aVr8huoBFcBTdWKV5iFSTEHqf9c2C1ZlyYMISn7ui6X3Gix8vr+hP5kVqH1LAWwQSb6w==} engines: {node: '>=12.0.0'} @@ -5838,23 +5367,6 @@ packages: react-transition-group: 4.4.5_biqbaboplfbrettd7655fr4n2y dev: false - /@mui/private-theming/5.13.1_bfoz4c5kom3f237nig75ykjhhy: - resolution: {integrity: sha512-HW4npLUD9BAkVppOUZHeO1FOKUJWAwbpy0VQoGe3McUYTlck1HezGHQCfBQ5S/Nszi7EViqiimECVl9xi+/WjQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.21.5 - '@mui/utils': 5.13.1_react@18.2.0 - '@types/react': 18.2.7 - prop-types: 15.8.1 - react: 18.2.0 - dev: false - /@mui/private-theming/5.13.1_j4swkgacdxrhexoapez3itylte: resolution: {integrity: sha512-HW4npLUD9BAkVppOUZHeO1FOKUJWAwbpy0VQoGe3McUYTlck1HezGHQCfBQ5S/Nszi7EViqiimECVl9xi+/WjQ==} engines: {node: '>=12.0.0'} @@ -5911,28 +5423,6 @@ packages: react: 18.2.0 dev: false - /@mui/styled-engine/5.13.2_yiqp6zyzlsf3e67mwwqwha2b2u: - resolution: {integrity: sha512-VCYCU6xVtXOrIN8lcbuPmoG+u7FYuOERG++fpY74hPpEWkyFQG97F+/XfTQVYzlR2m7nPjnwVUgATcTCMEaMvw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@emotion/react': ^11.4.1 - '@emotion/styled': ^11.3.0 - react: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@emotion/react': - optional: true - '@emotion/styled': - optional: true - dependencies: - '@babel/runtime': 7.21.5 - '@emotion/cache': 11.11.0 - '@emotion/react': 11.11.0_bfoz4c5kom3f237nig75ykjhhy - '@emotion/styled': 11.11.0_a2i5n5lojrfshkutjtdzmeomky - csstype: 3.1.2 - prop-types: 15.8.1 - react: 18.2.0 - dev: false - /@mui/styled-engine/5.13.2_zidkww7mvbtmop3qqsk37bcyi4: resolution: {integrity: sha512-VCYCU6xVtXOrIN8lcbuPmoG+u7FYuOERG++fpY74hPpEWkyFQG97F+/XfTQVYzlR2m7nPjnwVUgATcTCMEaMvw==} engines: {node: '>=12.0.0'} @@ -5985,36 +5475,6 @@ packages: react: 17.0.2 dev: false - /@mui/system/5.13.2_w23gqpxud6khtzkrfd5q73try4: - resolution: {integrity: sha512-TPyWmRJPt0JPVxacZISI4o070xEJ7ftxpVtu6LWuYVOUOINlhoGOclam4iV8PDT3EMQEHuUrwU49po34UdWLlw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@emotion/react': ^11.5.0 - '@emotion/styled': ^11.3.0 - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@emotion/react': - optional: true - '@emotion/styled': - optional: true - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.21.5 - '@emotion/react': 11.11.0_bfoz4c5kom3f237nig75ykjhhy - '@emotion/styled': 11.11.0_a2i5n5lojrfshkutjtdzmeomky - '@mui/private-theming': 5.13.1_bfoz4c5kom3f237nig75ykjhhy - '@mui/styled-engine': 5.13.2_yiqp6zyzlsf3e67mwwqwha2b2u - '@mui/types': 7.2.4_@types+react@18.2.7 - '@mui/utils': 5.13.1_react@18.2.0 - '@types/react': 18.2.7 - clsx: 1.2.1 - csstype: 3.1.2 - prop-types: 15.8.1 - react: 18.2.0 - dev: false - /@mui/system/5.13.5_wmjbzybowvnc3inhzdbctozd7q: resolution: {integrity: sha512-n0gzUxoZ2ZHZgnExkh2Htvo9uW2oakofgPRQrDoa/GQOWyRD0NH9MDszBwOb6AAoXZb+OV5TE7I4LeZ/dzgHYA==} engines: {node: '>=12.0.0'} @@ -6067,17 +5527,6 @@ packages: '@types/react': 18.2.11 dev: false - /@mui/types/7.2.4_@types+react@18.2.7: - resolution: {integrity: sha512-LBcwa8rN84bKF+f5sDyku42w1NTxaPgPyYKODsh01U1fVstTClbUoSA96oyRBnSNyEiAVjKm6Gwx9vjR+xyqHA==} - peerDependencies: - '@types/react': '*' - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.2.7 - dev: false - /@mui/utils/5.13.1_react@17.0.2: resolution: {integrity: sha512-6lXdWwmlUbEU2jUI8blw38Kt+3ly7xkmV9ljzY4Q20WhsJMWiNry9CX8M+TaP/HbtuyR8XKsdMgQW7h7MM3n3A==} engines: {node: '>=12.0.0'} @@ -7298,11 +6747,6 @@ packages: /@protobufjs/utf8/1.1.0: resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - /@remix-run/router/1.6.2: - resolution: {integrity: sha512-LzqpSrMK/3JBAVBI9u3NWtOhWNw5AMQfrUFYB0+bDHTSw17z++WJLsPsxAuK+oSddsxk4d7F/JcdDPM1M5YAhA==} - engines: {node: '>=14'} - dev: false - /@remix-run/router/1.6.3: resolution: {integrity: sha512-EXJysQ7J3veRECd0kZFQwYYd5sJMcq2O/m60zu1W2l3oVQ9xtub8jTOtYRE0+M2iomyG/W3Ps7+vp2kna0C27Q==} engines: {node: '>=14'} @@ -7652,8 +7096,8 @@ packages: - supports-color dev: false - /@swc/core-darwin-arm64/1.3.59: - resolution: {integrity: sha512-AnqWFBgEKHP0jb4iZqx7eVQT9/rX45+DE4Ox7GpwCahUKxxrsDLyXzKhwLwQuAjUvtu5JcSB77szKpPGDM49fQ==} + /@swc/core-darwin-arm64/1.3.62: + resolution: {integrity: sha512-MmGilibITz68LEje6vJlKzc2gUUSgzvB3wGLSjEORikTNeM7P8jXVxE4A8fgZqDeudJUm9HVWrxCV+pHDSwXhA==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] @@ -7661,8 +7105,8 @@ packages: dev: true optional: true - /@swc/core-darwin-x64/1.3.59: - resolution: {integrity: sha512-iqDs+yii9mOsmpJez82SEi4d4prWDRlapHxKnDVJ0x1AqRo41vIq8t3fujrvCHYU5VQgOYGh4ooXQpaP2H3B2A==} + /@swc/core-darwin-x64/1.3.62: + resolution: {integrity: sha512-Xl93MMB3sCWVlYWuQIB+v6EQgzoiuQYK5tNt9lsHoIEVu2zLdkQjae+5FUHZb1VYqCXIiWcULFfVz0R4Sjb7JQ==} engines: {node: '>=10'} cpu: [x64] os: [darwin] @@ -7670,8 +7114,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm-gnueabihf/1.3.59: - resolution: {integrity: sha512-PB0PP+SgkCSd/kYmltnPiGv42cOSaih1OjXCEjxvNwUFEmWqluW6uGdWaNiR1LoYMxhcHZTc336jL2+O3l6p0Q==} + /@swc/core-linux-arm-gnueabihf/1.3.62: + resolution: {integrity: sha512-nJsp6O7kCtAjTTMcIjVB0g5y1JNiYAa5q630eiwrnaHUusEFoANDdORI3Z9vXeikMkng+6yIv9/V8Rb093xLjQ==} engines: {node: '>=10'} cpu: [arm] os: [linux] @@ -7679,8 +7123,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm64-gnu/1.3.59: - resolution: {integrity: sha512-Ol/JPszWZ+OZ44FOdJe35TfJ1ckG4pYaisZJ4E7PzfwfVe2ygX85C5WWR4e5L0Y1zFvzpcI7gdyC2wzcXk4Cig==} + /@swc/core-linux-arm64-gnu/1.3.62: + resolution: {integrity: sha512-XGsV93vpUAopDt5y6vPwbK1Nc/MlL55L77bAZUPIiosWD1cWWPHNtNSpriE6+I+JiMHe0pqtfS/SSTk6ZkFQVw==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -7688,8 +7132,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm64-musl/1.3.59: - resolution: {integrity: sha512-PtTTtGbj9GiY5gJdoSFL2A0vL6BRaS1haAhp6g3hZvLDkTTg+rJURmzwBMMjaQlnGC62x/lLf6MoszHG/05//Q==} + /@swc/core-linux-arm64-musl/1.3.62: + resolution: {integrity: sha512-ESUmJjSlTTkoBy9dMG49opcNn8BmviqStMhwyeD1G8XRnmRVCZZgoBOKdvCXmJhw8bQXDhZumeaTUB+OFUKVXg==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -7697,8 +7141,8 @@ packages: dev: true optional: true - /@swc/core-linux-x64-gnu/1.3.59: - resolution: {integrity: sha512-XBW9AGi0YsIN76IfesnDSBn/5sjR69J75KUNte8sH6seYlHJ0/kblqUMbUcfr0CiGoJadbzAZeKZZmfN7EsHpg==} + /@swc/core-linux-x64-gnu/1.3.62: + resolution: {integrity: sha512-wnHJkt3ZBrax3SFnUHDcncG6mrSg9ZZjMhQV9Mc3JL1x1s1Gy9rGZCoBNnV/BUZWTemxIBcQbANRSDut/WO+9A==} engines: {node: '>=10'} cpu: [x64] os: [linux] @@ -7706,8 +7150,8 @@ packages: dev: true optional: true - /@swc/core-linux-x64-musl/1.3.59: - resolution: {integrity: sha512-Cy5E939SdWPQ34cg6UABNO0RyEe0FuWqzZ/GLKtK11Ir4fjttVlucZiY59uQNyUVUc8T2qE0VBFCyD/zYGuHtg==} + /@swc/core-linux-x64-musl/1.3.62: + resolution: {integrity: sha512-9oRbuTC/VshB66Rgwi3pTq3sPxSTIb8k9L1vJjES+dDMKa29DAjPtWCXG/pyZ00ufpFZgkGEuAHH5uqUcr1JQg==} engines: {node: '>=10'} cpu: [x64] os: [linux] @@ -7715,8 +7159,8 @@ packages: dev: true optional: true - /@swc/core-win32-arm64-msvc/1.3.59: - resolution: {integrity: sha512-z5ZJxizRvRoSAaevRIi3YjQh74OFWEIhonSDWNdqDL7RbjEivcatYcG7OikH6s+rtPhOcwNm3PbGV2Prcgh/gg==} + /@swc/core-win32-arm64-msvc/1.3.62: + resolution: {integrity: sha512-zv14vlF2VRrxS061XkfzGjCYnOrEo5glKJjLK5PwUKysIoVrx/L8nAbFxjkX5cObdlyoqo+ekelyBPAO+4bS0w==} engines: {node: '>=10'} cpu: [arm64] os: [win32] @@ -7724,8 +7168,8 @@ packages: dev: true optional: true - /@swc/core-win32-ia32-msvc/1.3.59: - resolution: {integrity: sha512-vxpsn+hrKAhi5YusQfB/JXUJJVX40rIRE/L49ilBEqdbH8Khkoego6AD+2vWqTdJcUHo1WiAIAEZ0rTsjyorLQ==} + /@swc/core-win32-ia32-msvc/1.3.62: + resolution: {integrity: sha512-8MC/PZQSsOP2iA/81tAfNRqMWyEqTS/8zKUI67vPuLvpx6NAjRn3E9qBv7iFqH79iqZNzqSMo3awnLrKZyFbcw==} engines: {node: '>=10'} cpu: [ia32] os: [win32] @@ -7733,8 +7177,8 @@ packages: dev: true optional: true - /@swc/core-win32-x64-msvc/1.3.59: - resolution: {integrity: sha512-Ris/cJbURylcLwqz4RZUUBCEGsuaIHOJsvf69W5pGKHKBryVoOTNhBKpo3Km2hoAi5qFQ/ou0trAT4hBsVPZvQ==} + /@swc/core-win32-x64-msvc/1.3.62: + resolution: {integrity: sha512-GJSmUJ95HKHZXAxiuPUmrcm/S3ivQvEzXhOZaIqYBIwUsm02vFZkClsV7eIKzWjso1t0+I/8MjrnUNaSWqh1rQ==} engines: {node: '>=10'} cpu: [x64] os: [win32] @@ -7742,8 +7186,8 @@ packages: dev: true optional: true - /@swc/core/1.3.59: - resolution: {integrity: sha512-ZBw31zd2E5SXiodwGvjQdx5ZC90b2uyX/i2LeMMs8LKfXD86pfOfQac+JVrnyEKDhASXj9icgsF9NXBhaMr3Kw==} + /@swc/core/1.3.62: + resolution: {integrity: sha512-J58hWY+/G8vOr4J6ZH9hLg0lMSijZtqIIf4HofZezGog/pVX6sJyBJ40dZ1ploFkDIlWTWvJyqtpesBKS73gkQ==} engines: {node: '>=10'} requiresBuild: true peerDependencies: @@ -7752,16 +7196,16 @@ packages: '@swc/helpers': optional: true optionalDependencies: - '@swc/core-darwin-arm64': 1.3.59 - '@swc/core-darwin-x64': 1.3.59 - '@swc/core-linux-arm-gnueabihf': 1.3.59 - '@swc/core-linux-arm64-gnu': 1.3.59 - '@swc/core-linux-arm64-musl': 1.3.59 - '@swc/core-linux-x64-gnu': 1.3.59 - '@swc/core-linux-x64-musl': 1.3.59 - '@swc/core-win32-arm64-msvc': 1.3.59 - '@swc/core-win32-ia32-msvc': 1.3.59 - '@swc/core-win32-x64-msvc': 1.3.59 + '@swc/core-darwin-arm64': 1.3.62 + '@swc/core-darwin-x64': 1.3.62 + '@swc/core-linux-arm-gnueabihf': 1.3.62 + '@swc/core-linux-arm64-gnu': 1.3.62 + '@swc/core-linux-arm64-musl': 1.3.62 + '@swc/core-linux-x64-gnu': 1.3.62 + '@swc/core-linux-x64-musl': 1.3.62 + '@swc/core-win32-arm64-msvc': 1.3.62 + '@swc/core-win32-ia32-msvc': 1.3.62 + '@swc/core-win32-x64-msvc': 1.3.62 dev: true /@szmarczak/http-timer/1.1.2: @@ -7778,6 +7222,10 @@ packages: defer-to-connect: 2.0.1 dev: true + /@tanstack/query-core/4.29.11: + resolution: {integrity: sha512-8C+hF6SFAb/TlFZyS9FItgNwrw4PMa7YeX+KQYe2ZAiEz6uzg6yIr+QBzPkUwZ/L0bXvGd1sufTm3wotoz+GwQ==} + dev: false + /@tanstack/query-core/4.29.7: resolution: {integrity: sha512-GXG4b5hV2Loir+h2G+RXhJdoZhJLnrBWsuLB2r0qBRyhWuXq9w/dWxzvpP89H0UARlH6Mr9DiVj4SMtpkF/aUA==} dev: false @@ -7803,8 +7251,8 @@ packages: '@tanstack/react-query': 4.29.7_react@18.2.0 dev: false - /@tanstack/react-query/4.29.7_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-ijBWEzAIo09fB1yd22slRZzprrZ5zMdWYzBnCg5qiXuFbH78uGN1qtGz8+Ed4MuhaPaYSD+hykn+QEKtQviEtg==} + /@tanstack/react-query/4.29.12_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-zhcN6+zF6cxprxhTHQajHGlvxgK8npnp9uLe9yaWhGc6sYcPWXzyO4raL4HomUzQOPzu3jLvkriJQ7BOrDM8vA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -7815,7 +7263,7 @@ packages: react-native: optional: true dependencies: - '@tanstack/query-core': 4.29.7 + '@tanstack/query-core': 4.29.11 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 use-sync-external-store: 1.2.0_react@18.2.0 @@ -7925,7 +7373,7 @@ packages: dependencies: '@babel/runtime': 7.22.5 '@testing-library/dom': 9.3.0 - '@types/react-dom': 18.2.4 + '@types/react-dom': 18.2.5 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true @@ -8261,6 +7709,12 @@ packages: '@types/react': 18.2.11 dev: true + /@types/react-dom/18.2.5: + resolution: {integrity: sha512-sRQsOS/sCLnpQhR4DSKGTtWFE3FZjpQa86KPVbhUqdYMRZ9FEFcfAytKhR/vUG2rH1oFbOOej6cuD7MFSobDRQ==} + dependencies: + '@types/react': 18.2.11 + dev: true + /@types/react-is/18.2.0: resolution: {integrity: sha512-1vz2yObaQkLL7YFe/pme2cpvDsCwI1WXIfL+5eLz0MI9gFG24Re16RzUsI8t9XZn9ZWvgLNDrJBmrqXJO7GNQQ==} dependencies: @@ -8309,13 +7763,6 @@ packages: '@types/scheduler': 0.16.3 csstype: 3.1.2 - /@types/react/18.2.7: - resolution: {integrity: sha512-ojrXpSH2XFCmHm7Jy3q44nXDyN54+EYKP2lBhJ2bqfyPj6cIUW/FZW/Csdia34NQgq7KYcAlHi5184m4X88+yw==} - dependencies: - '@types/prop-types': 15.7.5 - '@types/scheduler': 0.16.3 - csstype: 3.1.2 - /@types/resolve/0.0.8: resolution: {integrity: sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==} dependencies: @@ -8524,34 +7971,6 @@ packages: - supports-color dev: true - /@typescript-eslint/eslint-plugin/5.59.7_gnnf3trwikzd6jkxh7av7rnt5e: - resolution: {integrity: sha512-BL+jYxUFIbuYwy+4fF86k5vdT9lT0CNJ6HtwrIvGh0PhH8s0yy5rjaKH2fDCrz5ITHy07WCzVGNvAmjJh4IJFA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@eslint-community/regexpp': 4.5.1 - '@typescript-eslint/parser': 5.59.7_5ujgynla27k2qkzlnkldjwsutm - '@typescript-eslint/scope-manager': 5.59.7 - '@typescript-eslint/type-utils': 5.59.7_5ujgynla27k2qkzlnkldjwsutm - '@typescript-eslint/utils': 5.59.7_5ujgynla27k2qkzlnkldjwsutm - debug: 4.3.4 - eslint: 8.41.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.4 - natural-compare-lite: 1.4.0 - semver: 7.5.1 - tsutils: 3.21.0_typescript@4.9.5 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/experimental-utils/3.10.1_jofidmxrjzhj7l6vknpw5ecvfe: resolution: {integrity: sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw==} engines: {node: ^10.12.0 || >=12.0.0} @@ -8638,26 +8057,6 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.59.7_5ujgynla27k2qkzlnkldjwsutm: - resolution: {integrity: sha512-VhpsIEuq/8i5SF+mPg9jSdIwgMBBp0z9XqjiEay+81PYLJuroN+ET1hM5IhkiYMJd9MkTz8iJLt7aaGAgzWUbQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 5.59.7 - '@typescript-eslint/types': 5.59.7 - '@typescript-eslint/typescript-estree': 5.59.7_typescript@4.9.5 - debug: 4.3.4 - eslint: 8.41.0 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/parser/5.59.7_opaykosi7ysrbskpnffskmbrki: resolution: {integrity: sha512-VhpsIEuq/8i5SF+mPg9jSdIwgMBBp0z9XqjiEay+81PYLJuroN+ET1hM5IhkiYMJd9MkTz8iJLt7aaGAgzWUbQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -8721,26 +8120,6 @@ packages: - supports-color dev: true - /@typescript-eslint/type-utils/5.59.7_5ujgynla27k2qkzlnkldjwsutm: - resolution: {integrity: sha512-ozuz/GILuYG7osdY5O5yg0QxXUAEoI4Go3Do5xeu+ERH9PorHBPSdvD3Tjp2NN2bNLh1NJQSsQu2TPu/Ly+HaQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '*' - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/typescript-estree': 5.59.7_typescript@4.9.5 - '@typescript-eslint/utils': 5.59.7_5ujgynla27k2qkzlnkldjwsutm - debug: 4.3.4 - eslint: 8.41.0 - tsutils: 3.21.0_typescript@4.9.5 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/type-utils/5.59.7_opaykosi7ysrbskpnffskmbrki: resolution: {integrity: sha512-ozuz/GILuYG7osdY5O5yg0QxXUAEoI4Go3Do5xeu+ERH9PorHBPSdvD3Tjp2NN2bNLh1NJQSsQu2TPu/Ly+HaQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -8906,39 +8285,19 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.59.11_tizxnkcvjrb4cldxgwq5h3lj5u: - resolution: {integrity: sha512-didu2rHSOMUdJThLk4aZ1Or8IcO3HzCw/ZvEjTTIfjIrcdd5cvSIwwDy2AOlE7htSNp7QIZ10fLMyRCveesMLg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.42.0 - '@types/json-schema': 7.0.12 - '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 5.59.11 - '@typescript-eslint/types': 5.59.11 - '@typescript-eslint/typescript-estree': 5.59.11_typescript@5.1.3 - eslint: 8.42.0 - eslint-scope: 5.1.1 - semver: 7.5.1 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/utils/5.59.7_5ujgynla27k2qkzlnkldjwsutm: - resolution: {integrity: sha512-yCX9WpdQKaLufz5luG4aJbOpdXf/fjwGMcLFXZVPUz3QqLirG5QcwwnIHNf8cjLjxK4qtzTO8udUtMQSAToQnQ==} + /@typescript-eslint/utils/5.59.11_tizxnkcvjrb4cldxgwq5h3lj5u: + resolution: {integrity: sha512-didu2rHSOMUdJThLk4aZ1Or8IcO3HzCw/ZvEjTTIfjIrcdd5cvSIwwDy2AOlE7htSNp7QIZ10fLMyRCveesMLg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.41.0 - '@types/json-schema': 7.0.11 + '@eslint-community/eslint-utils': 4.4.0_eslint@8.42.0 + '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 5.59.7 - '@typescript-eslint/types': 5.59.7 - '@typescript-eslint/typescript-estree': 5.59.7_typescript@4.9.5 - eslint: 8.41.0 + '@typescript-eslint/scope-manager': 5.59.11 + '@typescript-eslint/types': 5.59.11 + '@typescript-eslint/typescript-estree': 5.59.11_typescript@5.1.3 + eslint: 8.42.0 eslint-scope: 5.1.1 semver: 7.5.1 transitivePeerDependencies: @@ -9037,13 +8396,13 @@ packages: - supports-color dev: true - /@vitejs/plugin-react-swc/3.3.1_vite@4.3.8: - resolution: {integrity: sha512-ZoYjGxMniXP7X+5ry/W1tpY7w0OeLUEsBF5RHFPmAhpgwwNWie8OF4056MRXRi9QgvYYoZPDzdOXGK3wlCoTfQ==} + /@vitejs/plugin-react-swc/3.3.2_vite@4.3.9: + resolution: {integrity: sha512-VJFWY5sfoZerQRvJrh518h3AcQt6f/yTuWn4/TRB+dqmYU0NX1qz7qM5Wfd+gOQqUzQW4gxKqKN3KpE/P3+zrA==} peerDependencies: vite: ^4 dependencies: - '@swc/core': 1.3.59 - vite: 4.3.8_@types+node@20.2.3 + '@swc/core': 1.3.62 + vite: 4.3.9 transitivePeerDependencies: - '@swc/helpers' dev: true @@ -9074,14 +8433,6 @@ packages: vue: 3.3.4 dev: true - /@vitest/expect/0.28.5: - resolution: {integrity: sha512-gqTZwoUTwepwGIatnw4UKpQfnoyV0Z9Czn9+Lo2/jLIt4/AXLTn+oVZxlQ7Ng8bzcNkR+3DqLJ08kNr8jRmdNQ==} - dependencies: - '@vitest/spy': 0.28.5 - '@vitest/utils': 0.28.5 - chai: 4.3.7 - dev: true - /@vitest/expect/0.31.1: resolution: {integrity: sha512-BV1LyNvhnX+eNYzJxlHIGPWZpwJFZaCcOIzp2CNG0P+bbetenTupk6EO0LANm4QFt0TTit+yqx7Rxd1qxi/SQA==} dependencies: @@ -9098,14 +8449,6 @@ packages: chai: 4.3.7 dev: true - /@vitest/runner/0.28.5: - resolution: {integrity: sha512-NKkHtLB+FGjpp5KmneQjTcPLWPTDfB7ie+MmF1PnUBf/tGe2OjGxWyB62ySYZ25EYp9krR5Bw0YPLS/VWh1QiA==} - dependencies: - '@vitest/utils': 0.28.5 - p-limit: 4.0.0 - pathe: 1.1.1 - dev: true - /@vitest/runner/0.31.1: resolution: {integrity: sha512-imWuc82ngOtxdCUpXwtEzZIuc1KMr+VlQ3Ondph45VhWoQWit5yvG/fFcldbnCi8DUuFi+NmNx5ehMUw/cGLUw==} dependencies: @@ -9140,12 +8483,6 @@ packages: pretty-format: 27.5.1 dev: true - /@vitest/spy/0.28.5: - resolution: {integrity: sha512-7if6rsHQr9zbmvxN7h+gGh2L9eIIErgf8nSKYDlg07HHimCxp4H6I/X/DPXktVPPLQfiZ1Cw2cbDIx9fSqDjGw==} - dependencies: - tinyspy: 1.1.1 - dev: true - /@vitest/spy/0.31.1: resolution: {integrity: sha512-1cTpt2m9mdo3hRLDyCG2hDQvRrePTDgEJBFQQNz1ydHHZy03EiA6EpFxY+7ODaY7vMRCie+WlFZBZ0/dQWyssQ==} dependencies: @@ -9173,16 +8510,6 @@ packages: vitest: 0.32.0_qurakq6av5alithdcy42uvw7r4 dev: true - /@vitest/utils/0.28.5: - resolution: {integrity: sha512-UyZdYwdULlOa4LTUSwZ+Paz7nBHGTT72jKwdFSV4IjHF1xsokp+CabMdhjvVhYwkLfO88ylJT46YMilnkSARZA==} - dependencies: - cli-truncate: 3.1.0 - diff: 5.1.0 - loupe: 2.3.6 - picocolors: 1.0.0 - pretty-format: 27.5.1 - dev: true - /@vitest/utils/0.31.1: resolution: {integrity: sha512-yFyRD5ilwojsZfo3E0BnH72pSVSuLg2356cN1tCEe/0RtDzxTPYwOomIC+eQbot7m6DRy4tPZw+09mB7NkbMmA==} dependencies: @@ -9202,7 +8529,7 @@ packages: /@vue/compiler-core/3.3.4: resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} dependencies: - '@babel/parser': 7.21.9 + '@babel/parser': 7.22.5 '@vue/shared': 3.3.4 estree-walker: 2.0.2 source-map-js: 1.0.2 @@ -9218,7 +8545,7 @@ packages: /@vue/compiler-sfc/3.3.4: resolution: {integrity: sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==} dependencies: - '@babel/parser': 7.21.9 + '@babel/parser': 7.22.5 '@vue/compiler-core': 3.3.4 '@vue/compiler-dom': 3.3.4 '@vue/compiler-ssr': 3.3.4 @@ -9226,7 +8553,7 @@ packages: '@vue/shared': 3.3.4 estree-walker: 2.0.2 magic-string: 0.30.0 - postcss: 8.4.23 + postcss: 8.4.24 source-map-js: 1.0.2 dev: true @@ -9244,7 +8571,7 @@ packages: /@vue/reactivity-transform/3.3.4: resolution: {integrity: sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==} dependencies: - '@babel/parser': 7.21.9 + '@babel/parser': 7.22.5 '@vue/compiler-core': 3.3.4 '@vue/shared': 3.3.4 estree-walker: 2.0.2 @@ -11366,14 +10693,6 @@ packages: string-width: 1.0.2 dev: true - /cli-truncate/3.1.0: - resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - slice-ansi: 5.0.0 - string-width: 5.1.2 - dev: true - /cli-width/2.2.1: resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==} dev: true @@ -11644,8 +10963,8 @@ packages: engines: {node: '>=0.8'} dev: false - /consola/2.15.3: - resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} + /consola/3.1.0: + resolution: {integrity: sha512-rrrJE6rP0qzl/Srg+C9x/AE5Kxfux7reVm1Wh0wCjuXvih6DqZgqDZe8auTD28fzJ9TF0mHlSDrPpWlujQRo1Q==} dev: true /console-browserify/1.2.0: @@ -12231,7 +11550,7 @@ packages: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': 7.22.5 dev: false /date-time/3.1.0: @@ -12578,7 +11897,7 @@ packages: hasBin: true dependencies: '@babel/parser': 7.16.4 - '@babel/traverse': 7.21.5 + '@babel/traverse': 7.22.5 '@vue/compiler-sfc': 3.3.4 camelcase: 6.3.0 cosmiconfig: 7.1.0 @@ -12596,7 +11915,7 @@ packages: readdirp: 3.6.0 require-package-name: 2.0.1 resolve: 1.22.2 - sass: 1.62.1 + sass: 1.63.3 scss-parser: 1.0.6 semver: 7.5.1 yargs: 16.2.0 @@ -12759,11 +12078,6 @@ packages: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - /diff/5.1.0: - resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} - engines: {node: '>=0.3.1'} - dev: true - /diffie-hellman/5.0.3: resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} dependencies: @@ -14946,39 +14260,6 @@ packages: - encoding dev: false - /firebase/9.22.0: - resolution: {integrity: sha512-Ay1u8IOfhPh58RFAHF7A9cKHACCgV6uI2bhkzKdkjnV0n2AAxn4tDtdXvJ3BEbfhF4WWBC2dFcEXH8cd14ptaw==} - dependencies: - '@firebase/analytics': 0.10.0_@firebase+app@0.9.10 - '@firebase/analytics-compat': 0.2.6_7ojv3jwoyhxvcvq36w2wrks3za - '@firebase/app': 0.9.10 - '@firebase/app-check': 0.7.0_@firebase+app@0.9.10 - '@firebase/app-check-compat': 0.3.6_7ojv3jwoyhxvcvq36w2wrks3za - '@firebase/app-compat': 0.2.10 - '@firebase/app-types': 0.9.0 - '@firebase/auth': 0.23.2_@firebase+app@0.9.10 - '@firebase/auth-compat': 0.4.2_jrbxz4fs42uy26dcxayyy3ntay - '@firebase/database': 0.14.4 - '@firebase/database-compat': 0.3.4 - '@firebase/firestore': 3.12.0_@firebase+app@0.9.10 - '@firebase/firestore-compat': 0.3.9_jrbxz4fs42uy26dcxayyy3ntay - '@firebase/functions': 0.9.4_@firebase+app@0.9.10 - '@firebase/functions-compat': 0.3.4_7ojv3jwoyhxvcvq36w2wrks3za - '@firebase/installations': 0.6.4_@firebase+app@0.9.10 - '@firebase/installations-compat': 0.2.4_jrbxz4fs42uy26dcxayyy3ntay - '@firebase/messaging': 0.12.4_@firebase+app@0.9.10 - '@firebase/messaging-compat': 0.2.4_7ojv3jwoyhxvcvq36w2wrks3za - '@firebase/performance': 0.6.4_@firebase+app@0.9.10 - '@firebase/performance-compat': 0.2.4_7ojv3jwoyhxvcvq36w2wrks3za - '@firebase/remote-config': 0.4.4_@firebase+app@0.9.10 - '@firebase/remote-config-compat': 0.2.4_7ojv3jwoyhxvcvq36w2wrks3za - '@firebase/storage': 0.11.2_@firebase+app@0.9.10 - '@firebase/storage-compat': 0.3.2_jrbxz4fs42uy26dcxayyy3ntay - '@firebase/util': 1.9.3 - transitivePeerDependencies: - - encoding - dev: false - /firebase/9.22.2: resolution: {integrity: sha512-eBXsaTzXPx3Y0QhuuluG/qR58tlOx2X/W0GKNoF004FcG9L2gHuvGu5/bIczvrPyfNOCqDF+I5I/kOQi8l9m0A==} dependencies: @@ -18112,47 +17393,6 @@ packages: - utf-8-validate dev: true - /jsdom/21.1.2: - resolution: {integrity: sha512-sCpFmK2jv+1sjff4u7fzft+pUh2KSUbUrEHYHyfSIbGTIcmnjyp83qg6qLwdJ/I3LpTXx33ACxeRL7Lsyc6lGQ==} - engines: {node: '>=14'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - abab: 2.0.6 - acorn: 8.8.2 - acorn-globals: 7.0.1 - cssstyle: 3.0.0 - data-urls: 4.0.0 - decimal.js: 10.4.3 - domexception: 4.0.0 - escodegen: 2.0.0 - form-data: 4.0.0 - html-encoding-sniffer: 3.0.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.5 - parse5: 7.1.2 - rrweb-cssom: 0.6.0 - saxes: 6.0.0 - symbol-tree: 3.2.4 - tough-cookie: 4.1.3 - w3c-xmlserializer: 4.0.0 - webidl-conversions: 7.0.0 - whatwg-encoding: 2.0.0 - whatwg-mimetype: 3.0.0 - whatwg-url: 12.0.1 - ws: 8.13.0 - xml-name-validator: 4.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - /jsdom/22.1.0: resolution: {integrity: sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==} engines: {node: '>=16'} @@ -21958,19 +21198,6 @@ packages: engines: {node: '>=0.10.0'} dev: false - /react-router-dom/6.11.2_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-JNbKtAeh1VSJQnH6RvBDNhxNwemRj7KxCzc5jb7zvDSKRnPWIFj9pO+eXqjM69gQJ0r46hSz1x4l9y0651DKWw==} - engines: {node: '>=14'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - dependencies: - '@remix-run/router': 1.6.2 - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - react-router: 6.11.2_react@18.2.0 - dev: false - /react-router-dom/6.12.1_biqbaboplfbrettd7655fr4n2y: resolution: {integrity: sha512-POIZN9UDKWwEDga054LvYr2KnK8V+0HR4Ny4Bwv8V7/FZCPxJgsCjYxXGxqxzHs7VBxMKZfgvtKhafuJkJSPGA==} engines: {node: '>=14'} @@ -21984,16 +21211,6 @@ packages: react-router: 6.12.1_react@18.2.0 dev: false - /react-router/6.11.2_react@18.2.0: - resolution: {integrity: sha512-74z9xUSaSX07t3LM+pS6Un0T55ibUE/79CzfZpy5wsPDZaea1F8QkrsiyRnA2YQ7LwE/umaydzXZV80iDCPkMg==} - engines: {node: '>=14'} - peerDependencies: - react: '>=16.8' - dependencies: - '@remix-run/router': 1.6.2 - react: 18.2.0 - dev: false - /react-router/6.12.1_react@18.2.0: resolution: {integrity: sha512-evd/GrKJOeOypD0JB9e1r7pQh2gWCsTbUfq059Wm1AFT/K2MNZuDo19lFtAgIhlBrp0MmpgpqtvZC7LPAs7vSw==} engines: {node: '>=14'} @@ -22816,16 +22033,6 @@ packages: webpack: 4.44.2 dev: false - /sass/1.62.1: - resolution: {integrity: sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==} - engines: {node: '>=14.0.0'} - hasBin: true - dependencies: - chokidar: 3.5.3 - immutable: 4.3.0 - source-map-js: 1.0.2 - dev: true - /sass/1.63.3: resolution: {integrity: sha512-ySdXN+DVpfwq49jG1+hmtDslYqpS7SkOR5GpF6o2bmb1RL/xS+wvPmegMvMywyfsmAV6p7TgwXYGrCZIFFbAHg==} engines: {node: '>=14.0.0'} @@ -24155,21 +23362,11 @@ packages: resolution: {integrity: sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==} dev: true - /tinypool/0.3.1: - resolution: {integrity: sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==} - engines: {node: '>=14.0.0'} - dev: true - /tinypool/0.5.0: resolution: {integrity: sha512-paHQtnrlS1QZYKF/GnLoOM/DN9fqaGOFbCbxzAhwniySnzl9Ebk8w73/dd34DAhe/obUbPAOldTyYXQZxnPBPQ==} engines: {node: '>=14.0.0'} dev: true - /tinyspy/1.1.1: - resolution: {integrity: sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==} - engines: {node: '>=14.0.0'} - dev: true - /tinyspy/2.1.0: resolution: {integrity: sha512-7eORpyqImoOvkQJCSkL0d0mB4NHHIFAy4b1u8PHdDa7SjGS2njzl6/lyGoZLm+eyYEtlUmFGE0rFj66SWxZgQQ==} engines: {node: '>=14.0.0'} @@ -24962,15 +24159,16 @@ packages: resolution: {integrity: sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==} dev: false - /vite-aliases/0.10.0_@types+node@20.2.3: - resolution: {integrity: sha512-bwGsT1vupnR2ntO8VwznZwEv9U3ysBs4q3m5tKEKbCMNk72mZUnxSfN/D/ly4ghkLoJ7/sT/jQRiHdjm32E5rw==} + /vite-aliases/0.11.2: + resolution: {integrity: sha512-ZSy+Mf3yRZxx+lgDwh5BjbuBtLBdd6BIHvu0KfZwjOkQlP2S7gIM5vNyRozEFXK93bRcrfoHBECpoFwwOtFt6g==} engines: {node: '>=16.6.0'} dependencies: chokidar: 3.5.3 comment-json: 4.2.3 - consola: 2.15.3 + consola: 3.1.0 fast-glob: 3.2.12 - vite: 4.3.8_@types+node@20.2.3 + local-pkg: 0.4.3 + vite: 4.3.9 transitivePeerDependencies: - '@types/node' - less @@ -24990,9 +24188,9 @@ packages: - rollup dev: true - /vite-node/0.28.5_@types+node@20.2.3: - resolution: {integrity: sha512-LmXb9saMGlrMZbXTvOveJKwMTBTNUH66c8rJnQ0ZPNX+myPEol64+szRzXtV5ORb0Hb/91yq+/D3oERoyAt6LA==} - engines: {node: '>=v14.16.0'} + /vite-node/0.31.1_@types+node@20.2.3: + resolution: {integrity: sha512-BajE/IsNQ6JyizPzu9zRgHrBwczkAs0erQf/JRpgTIESpKvNj9/Gd0vxX905klLkb0I0SJVCKbdrl5c6FnqYKA==} + engines: {node: '>=v14.18.0'} hasBin: true dependencies: cac: 6.7.14 @@ -25000,8 +24198,6 @@ packages: mlly: 1.3.0 pathe: 1.1.0 picocolors: 1.0.0 - source-map: 0.6.1 - source-map-support: 0.5.21 vite: 4.3.8_@types+node@20.2.3 transitivePeerDependencies: - '@types/node' @@ -25013,17 +24209,17 @@ packages: - terser dev: true - /vite-node/0.31.1_@types+node@20.2.3: - resolution: {integrity: sha512-BajE/IsNQ6JyizPzu9zRgHrBwczkAs0erQf/JRpgTIESpKvNj9/Gd0vxX905klLkb0I0SJVCKbdrl5c6FnqYKA==} + /vite-node/0.32.0_@types+node@20.3.0: + resolution: {integrity: sha512-220P/y8YacYAU+daOAqiGEFXx2A8AwjadDzQqos6wSukjvvTWNqleJSwoUn0ckyNdjHIKoxn93Nh1vWBqEKr3Q==} engines: {node: '>=v14.18.0'} hasBin: true dependencies: cac: 6.7.14 debug: 4.3.4 mlly: 1.3.0 - pathe: 1.1.0 + pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.3.8_@types+node@20.2.3 + vite: 4.3.9_@types+node@20.3.0 transitivePeerDependencies: - '@types/node' - less @@ -25130,6 +24326,71 @@ packages: fsevents: 2.3.2 dev: true + /vite/4.3.9: + resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.17.19 + postcss: 8.4.24 + rollup: 3.25.1 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /vite/4.3.9_@types+node@20.3.0: + resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.3.0 + esbuild: 0.17.19 + postcss: 8.4.24 + rollup: 3.25.1 + optionalDependencies: + fsevents: 2.3.2 + dev: true + /vite/4.3.9_gdkma3dmudcb7fwmb357cck6sa: resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==} engines: {node: ^14.18.0 || >=16.0.0} @@ -25215,9 +24476,9 @@ packages: - encoding dev: true - /vitest/0.28.5_jsdom@21.1.2: - resolution: {integrity: sha512-pyCQ+wcAOX7mKMcBNkzDwEHRGqQvHUl0XnoHR+3Pb1hytAHISgSxv9h0gUiSiYtISXUU3rMrKiKzFYDrI6ZIHA==} - engines: {node: '>=v14.16.0'} + /vitest/0.31.1_happy-dom@8.9.0: + resolution: {integrity: sha512-/dOoOgzoFk/5pTvg1E65WVaobknWREN15+HF+0ucudo3dDG/vCZoXTQrjIfEaWvQXmqScwkRodrTbM/ScMpRcQ==} + engines: {node: '>=v14.18.0'} hasBin: true peerDependencies: '@edge-runtime/vm': '*' @@ -25225,6 +24486,9 @@ packages: '@vitest/ui': '*' happy-dom: '*' jsdom: '*' + playwright: '*' + safaridriver: '*' + webdriverio: '*' peerDependenciesMeta: '@edge-runtime/vm': optional: true @@ -25236,31 +24500,38 @@ packages: optional: true jsdom: optional: true + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true dependencies: '@types/chai': 4.3.5 '@types/chai-subset': 1.3.3 '@types/node': 20.2.3 - '@vitest/expect': 0.28.5 - '@vitest/runner': 0.28.5 - '@vitest/spy': 0.28.5 - '@vitest/utils': 0.28.5 + '@vitest/expect': 0.31.1 + '@vitest/runner': 0.31.1 + '@vitest/snapshot': 0.31.1 + '@vitest/spy': 0.31.1 + '@vitest/utils': 0.31.1 acorn: 8.8.2 acorn-walk: 8.2.0 cac: 6.7.14 chai: 4.3.7 + concordance: 5.0.4 debug: 4.3.4 - jsdom: 21.1.2 + happy-dom: 8.9.0 local-pkg: 0.4.3 + magic-string: 0.30.0 pathe: 1.1.0 picocolors: 1.0.0 - source-map: 0.6.1 std-env: 3.3.3 strip-literal: 1.0.1 tinybench: 2.5.0 - tinypool: 0.3.1 - tinyspy: 1.1.1 + tinypool: 0.5.0 vite: 4.3.8_@types+node@20.2.3 - vite-node: 0.28.5_@types+node@20.2.3 + vite-node: 0.31.1_@types+node@20.2.3 why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -25271,8 +24542,8 @@ packages: - terser dev: true - /vitest/0.31.1_happy-dom@8.9.0: - resolution: {integrity: sha512-/dOoOgzoFk/5pTvg1E65WVaobknWREN15+HF+0ucudo3dDG/vCZoXTQrjIfEaWvQXmqScwkRodrTbM/ScMpRcQ==} + /vitest/0.32.0_jsdom@22.1.0: + resolution: {integrity: sha512-SW83o629gCqnV3BqBnTxhB10DAwzwEx3z+rqYZESehUB+eWsJxwcBQx7CKy0otuGMJTYh7qCVuUX23HkftGl/Q==} engines: {node: '>=v14.18.0'} hasBin: true peerDependencies: @@ -25304,29 +24575,29 @@ packages: dependencies: '@types/chai': 4.3.5 '@types/chai-subset': 1.3.3 - '@types/node': 20.2.3 - '@vitest/expect': 0.31.1 - '@vitest/runner': 0.31.1 - '@vitest/snapshot': 0.31.1 - '@vitest/spy': 0.31.1 - '@vitest/utils': 0.31.1 + '@types/node': 20.3.0 + '@vitest/expect': 0.32.0 + '@vitest/runner': 0.32.0 + '@vitest/snapshot': 0.32.0 + '@vitest/spy': 0.32.0 + '@vitest/utils': 0.32.0 acorn: 8.8.2 acorn-walk: 8.2.0 cac: 6.7.14 chai: 4.3.7 concordance: 5.0.4 debug: 4.3.4 - happy-dom: 8.9.0 + jsdom: 22.1.0 local-pkg: 0.4.3 magic-string: 0.30.0 - pathe: 1.1.0 + pathe: 1.1.1 picocolors: 1.0.0 std-env: 3.3.3 strip-literal: 1.0.1 tinybench: 2.5.0 tinypool: 0.5.0 - vite: 4.3.8_@types+node@20.2.3 - vite-node: 0.31.1_@types+node@20.2.3 + vite: 4.3.9_@types+node@20.3.0 + vite-node: 0.32.0_@types+node@20.3.0 why-is-node-running: 2.2.2 transitivePeerDependencies: - less