diff --git a/.envrc b/.envrc deleted file mode 100644 index 51c08746..00000000 --- a/.envrc +++ /dev/null @@ -1,21 +0,0 @@ -export NODE_PATH="src/modules/default:src/" -export CUSTOM_MODULES="default" - -export NODE_ENV="development" -export SESSION_KEYS="sessionkeys" -export HOST="localhost" -export PORT="3000" - -export WALLET_NAME="Galoy" -export SUPPORT_EMAIL="support@galoy.io" -export SHARE_URL="https://pay.mainnet.galoy.io/" - -export NETWORK="regtest" -export GRAPHQL_URL="http://localhost:4002/graphql" -export GRAPHQL_SUBSCRIPTION_URL="ws://localhost:4002/graphql" -export AUTH_ENDPOINT="http://localhost:3000/api/login" -export KRATOS_API_URL="http://localhost:4433" -export KRATOS_BROWSER_URL="http://localhost:4433" -export GALOY_AUTH_ENDPOINT="http://localhost:4002/auth/" - -export KRATOS_FEATURE_FLAG="false" diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index bb4876c9..00000000 --- a/.eslintrc.js +++ /dev/null @@ -1,180 +0,0 @@ -module.exports = { - env: { - browser: true, - es6: true, - jest: true, - node: true, - }, - ignorePatterns: ["/*.js", "lib", "coverage", "src/types/graphql.d.ts", "bulid"], - parser: "@typescript-eslint/parser", - parserOptions: { - project: "tsconfig.json", - sourceType: "module", - }, - plugins: [ - "eslint-plugin-import", - "@typescript-eslint", - "eslint-plugin-react", - "eslint-plugin-react-hooks", - ], - extends: [ - "eslint:recommended", - "plugin:import/recommended", - "plugin:import/typescript", - "plugin:@typescript-eslint/recommended", - "plugin:react/recommended", - "plugin:react-hooks/recommended", - ], - rules: { - // Customized rules - "@typescript-eslint/no-extra-semi": "off", // Prettier work - "@typescript-eslint/no-unused-vars": [ - "error", - { - args: "after-used", - ignoreRestSiblings: true, - varsIgnorePattern: "^_", - argsIgnorePattern: "^_", - }, - ], - "@typescript-eslint/explicit-module-boundary-types": "off", - "@typescript-eslint/no-empty-function": "off", - "@typescript-eslint/prefer-for-of": "error", - "@typescript-eslint/unified-signatures": "error", - "@typescript-eslint/no-shadow": ["error"], - - "import/no-deprecated": "error", - "import/no-extraneous-dependencies": "error", - "import/no-unresolved": "off", - - "react/no-unescaped-entities": ["error", { forbid: [">", "}"] }], - "react/prop-types": "off", - "react/react-in-jsx-scope": "off", - - "accessor-pairs": "error", - "array-callback-return": "error", - "block-scoped-var": "error", - "camelcase": "error", - "consistent-this": "error", - "curly": "error", - "default-case-last": "error", - "default-param-last": "error", - "dot-notation": "error", - "eol-last": "error", - "eqeqeq": "error", - "func-name-matching": "error", - "func-names": "error", - "func-style": "error", - "grouped-accessor-pairs": "error", - "guard-for-in": "error", - "id-length": ["error", { min: 2 }], - "init-declarations": "error", - "jsx-quotes": "error", - "linebreak-style": ["error", "unix"], - "max-depth": ["error", { max: 4 }], - "max-lines-per-function": ["error", { max: 500 }], - "max-lines": ["error", { max: 500 }], - "max-nested-callbacks": ["error", { max: 3 }], - "max-params": ["error", { max: 3 }], - "max-statements-per-line": ["error", { max: 1 }], - "max-statements": ["error", { max: 100 }], - "new-parens": "error", - "no-alert": "error", - "no-array-constructor": "error", - "no-await-in-loop": "error", - "no-bitwise": "error", - "no-caller": "error", - "no-confusing-arrow": "error", - "no-console": ["warn", { allow: ["error", "info", "debug"] }], - "no-constructor-return": "error", - "no-continue": "error", - "no-div-regex": "error", - "no-duplicate-imports": "error", - "no-else-return": "error", - "no-empty": ["error", { allowEmptyCatch: true }], - "no-eq-null": "error", - "no-eval": "error", - "no-extend-native": "error", - "no-extra-bind": "error", - "no-floating-decimal": "error", - "no-implicit-coercion": "error", - "no-implicit-globals": "error", - "no-implied-eval": "error", - "no-invalid-this": "error", - "no-iterator": "error", - "no-labels": "error", - "no-lone-blocks": "error", - "no-lonely-if": "error", - "no-loop-func": "error", - "no-loss-of-precision": "error", - "no-multi-assign": "error", - "no-negated-condition": "error", - "no-nested-ternary": "error", - "no-new-func": "error", - "no-new-object": "error", - "no-new-wrappers": "error", - "no-new": "error", - "no-nonoctal-decimal-escape": "error", - "no-octal-escape": "error", - "no-param-reassign": "error", - "no-plusplus": "error", - "no-promise-executor-return": "error", - "no-proto": "error", - "no-restricted-imports": ["error", { patterns: ["import*.*"] }], - "no-return-assign": "error", - "no-return-await": "error", - "no-script-url": "error", - "no-self-compare": "error", - "no-sequences": "error", - "no-shadow": "off", - "no-template-curly-in-string": "error", - "no-throw-literal": "error", - "no-unmodified-loop-condition": "error", - "no-unneeded-ternary": "error", - "no-unreachable-loop": "error", - "no-unsafe-optional-chaining": "error", - "no-unused-expressions": "error", - "no-use-before-define": "error", - "no-useless-call": "error", - "no-useless-computed-key": "error", - "no-useless-concat": "error", - "no-useless-constructor": "error", - "no-useless-rename": "error", - "no-useless-return": "error", - "no-var": "error", - "no-void": "error", - "object-shorthand": "error", - "prefer-const": ["error", { destructuring: "all" }], - "prefer-numeric-literals": "error", - "prefer-object-spread": "error", - "prefer-promise-reject-errors": "error", - "prefer-regex-literals": "error", - "prefer-rest-params": "error", - "prefer-spread": "error", - "quote-props": ["error", "consistent-as-needed"], - "radix": "error", - "require-atomic-updates": "error", - "require-unicode-regexp": "error", - "spaced-comment": "error", - "symbol-description": "error", - "yoda": "error", - }, - overrides: [ - { - files: ["*.spec.ts*"], - rules: { - "no-restricted-imports": "off", - }, - }, - ], - settings: { - "import/resolver": { - node: { - paths: ["."], - }, - }, - "react": { - version: "detect", - }, - }, -} diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 00000000..50fceff8 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,20 @@ +{ + "env": { + "browser": true, + "es6": true, + "jest": true, + "node": true + }, + "extends": ["next/core-web-vitals", "plugin:@typescript-eslint/recommended"], + "rules": { + "@typescript-eslint/no-unused-vars": [ + "error", + { + "args": "after-used", + "ignoreRestSiblings": true, + "varsIgnorePattern": "^_", + "argsIgnorePattern": "^_" + } + ] + } +} diff --git a/.gitignore b/.gitignore index b2716d96..66a35853 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,25 @@ node_modules/ -public/bundles/ -build/ -src/dist/ coverage/ -.gvars.json yarn-error.log -.env .vscode/ .DS_Store src/modules + +public/bundles + +# next.js +/.next/ +/out/ + +# production +/build + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/.prettierignore b/.prettierignore index 5737f1ab..367ffeb1 100644 --- a/.prettierignore +++ b/.prettierignore @@ -6,7 +6,8 @@ public/vendor/ build/ coverage/ .vscode -.gvars.json + +.next/ **/*.yaml **/*.yml diff --git a/README.md b/README.md index e41758cc..ac4c53ca 100644 --- a/README.md +++ b/README.md @@ -20,10 +20,7 @@ In the project directory: yarn install # In a terminal -yarn dev:bundler - -# In another terminal -yarn dev:server +yarn dev ``` Open [http://localhost:3000](http://localhost:3000) to view it in the browser. @@ -36,8 +33,8 @@ In the project directory: yarn install # To build the app under the `build` folder -yarn build:all +yarn build # To start the app -yarn prod:start +yarn start ``` diff --git a/jest-globals.js b/jest-globals.js new file mode 100644 index 00000000..5c4dbdc2 --- /dev/null +++ b/jest-globals.js @@ -0,0 +1,4 @@ +import { TextDecoder, TextEncoder } from "util" + +global.TextEncoder = TextEncoder +global.TextDecoder = TextDecoder diff --git a/jest.config.js b/jest.config.js index 0e34aec7..b5633ada 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,10 +1,30 @@ -module.exports = { - roots: ["/src"], - transform: { - "^.+\\.tsx?$": "ts-jest", +// eslint-disable-next-line @typescript-eslint/no-var-requires +const nextJest = require("next/jest") + +const createJestConfig = nextJest({ + // Provide the path to your Next.js app to load next.config.js and .env files in your test environment + dir: "./", +}) + +// Add any custom config to be passed to Jest +/** @type {import('jest').Config} */ +const customJestConfig = { + // Add more setup options before each test is run + // setupFilesAfterEnv: ['/jest.setup.js'], + // if using TypeScript with a baseUrl set to the root directory then you need the below for alias' to work + moduleDirectories: ["node_modules", "/"], + + // If you're using [Module Path Aliases](https://nextjs.org/docs/advanced-features/module-path-aliases), + // you will have to add the moduleNameMapper in order for jest to resolve your absolute paths. + // The paths have to be matching with the paths option within the compilerOptions in the tsconfig.json + // For example: + + moduleNameMapper: { + "@/(.*)$": "/src/$1", }, - modulePaths: ["/src"], - setupFilesAfterEnv: ["/src/jest/setupTests.ts"], - testEnvironment: "/src/jest/custom-env.ts", - testPathIgnorePatterns: ["/node_modules/"], + testEnvironment: "jest-environment-jsdom", + setupFilesAfterEnv: ["/jest-globals.js"], } + +// createJestConfig is exported this way to ensure that next/jest can load the Next.js config which is async +module.exports = createJestConfig(customJestConfig) diff --git a/next.config.js b/next.config.js new file mode 100644 index 00000000..a843cbee --- /dev/null +++ b/next.config.js @@ -0,0 +1,6 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + reactStrictMode: true, +} + +module.exports = nextConfig diff --git a/package.json b/package.json index bea1b5a9..a6809d08 100644 --- a/package.json +++ b/package.json @@ -1,22 +1,17 @@ { "name": "web-wallet", - "version": "0.2.0", + "version": "0.3.0", "private": true, "license": "MIT", "scripts": { - "build:all": "yarn install && yarn build:node && yarn build:files && yarn build:bundler", - "build:bundler": "webpack --mode=production --env=prod", - "build:files": "copyfiles -u 1 -e \"src/**/*.ts\" -e \"src/**/*.tsx\" -e \"src/**/*.js\" \"src/**/*\" build/", - "build:node": "rm -rf build && tsc --sourceMap false --skipLibCheck true", - "code:check": "yarn tsc:check && yarn eslint:check && yarn prettier:check", - "dev:bundler": ". ./.envrc && webpack -w --mode=development --env=dev", + "build": "next build", + "code:check": "yarn tsc:check && yarn lint && yarn prettier:check", "dev:codegen": "graphql-codegen --config codegen.yml", - "dev:server": ". ./.envrc && tsnd --files --respawn src/server/server.ts --ignore-watch node_modules,public", - "eslint:check": "eslint . --ext ts --ext tsx", - "eslint:fix": "eslint . --ext ts --ext tsx --fix", + "dev": "next dev", + "lint": "next lint", "prettier:check": "prettier --check .", "prettier:fix": "prettier --write .", - "prod:start": "node build/server/server.js", + "start": "next start", "test:verify": "jest --coverage", "test": "jest", "tsc:check": "tsc --pretty --noEmit --skipLibCheck" @@ -32,6 +27,7 @@ "@graphql-codegen/cli": "^2.16.4", "@graphql-codegen/typescript": "^2.8.7", "@graphql-codegen/typescript-operations": "^2.5.12", + "@next/font": "13.1.5", "@opentelemetry/api": "^1.4.0", "@opentelemetry/core": "^1.9.0", "@opentelemetry/exporter-jaeger": "^1.9.0", @@ -55,6 +51,7 @@ "@types/express-rate-limit": "^6.0.0", "@types/i18n-js": "^3.8.4", "@types/morgan": "^1.9.4", + "@types/node": "18.11.18", "@types/react": "^18.0.27", "@types/react-dom": "^18.0.10", "@types/serialize-javascript": "^5.0.2", @@ -72,6 +69,9 @@ "cross-fetch": "^3.1.5", "css-loader": "^6.7.3", "ejs": "^3.1.8", + "eslint-plugin-next": "^0.0.0", + "eslint-plugin-react": "^7.32.1", + "eslint-plugin-react-hooks": "^4.6.0", "express": "^4.18.2", "express-rate-limit": "^6.7.0", "graphql": "^16.6.0", @@ -82,6 +82,7 @@ "lnurl-pay": "^1.0.1", "mini-css-extract-plugin": "^2.7.2", "morgan": "^1.10.0", + "next": "13.1.5", "normalize.css": "^8.0.1", "postcss": "^8.4.21", "postcss-import": "^15.1.0", @@ -111,9 +112,7 @@ "@typescript-eslint/parser": "^5.48.2", "babel-jest": "^29.3.1", "eslint": "^8.32.0", - "eslint-plugin-import": "^2.27.5", - "eslint-plugin-react": "^7.32.1", - "eslint-plugin-react-hooks": "^4.6.0", + "eslint-config-next": "13.1.5", "jest": "^29.3.1", "prettier": "^2.8.3", "ts-jest": "^29.0.5", diff --git a/postcss.config.js b/postcss.config.js index 18993e48..14768c01 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,8 +1,3 @@ module.exports = { - plugins: [ - require("postcss-import"), - require("postcss-mixins"), - require("postcss-nested"), - require("autoprefixer"), - ], + plugins: ["postcss-import", "postcss-mixins", "postcss-nested", "autoprefixer"], } diff --git a/src/components/__snapshots__/root.spec.tsx.snap b/src/components/__snapshots__/root.spec.tsx.snap index f3410a03..93e81a2b 100644 --- a/src/components/__snapshots__/root.spec.tsx.snap +++ b/src/components/__snapshots__/root.spec.tsx.snap @@ -1423,57 +1423,6 @@ exports[`Root appRoutes renders Settings and matches snapshot 1`] = `
-
-
- - - -
-
- Email -
- (not logged in) -
-
-
- - - -
-
@@ -1888,113 +1837,6721 @@ exports[`Root authRoutes renders Login and matches snapshot 1`] = ` id="main-container" > -
diff --git a/src/components/auth-provider.tsx b/src/components/auth-provider.tsx index f73ef868..77d3f8a2 100644 --- a/src/components/auth-provider.tsx +++ b/src/components/auth-provider.tsx @@ -1,7 +1,7 @@ import { useMemo, useState, ReactNode, useCallback } from "react" import { useErrorHandler } from "react-error-boundary" -import { GaloyClient, GaloyProvider } from "store/client" +import { GaloyClient, GaloyProvider } from "@/store/client" import { AuthContext, @@ -12,7 +12,7 @@ import { createClient, storage, useAppDispatcher, -} from "store/index" +} from "@/store/index" const galoySessionName = "galoy-session" diff --git a/src/components/auth-wrapper.tsx b/src/components/auth-wrapper.tsx index 4421074d..c79dd313 100644 --- a/src/components/auth-wrapper.tsx +++ b/src/components/auth-wrapper.tsx @@ -1,5 +1,5 @@ import * as React from "react" -import { useAuthContext } from "store/index" +import { useAuthContext } from "@/store/index" const AuthWrapper: React.FC<{ children: React.ReactNode; destination?: string }> = ({ children, diff --git a/src/components/balance.tsx b/src/components/balance.tsx index fde47a2f..4450a0fb 100644 --- a/src/components/balance.tsx +++ b/src/components/balance.tsx @@ -1,9 +1,9 @@ import { formatUsd } from "@galoymoney/client" import { SatFormat, Spinner } from "@galoymoney/react" -import useMainQuery from "hooks/use-main-query" -import useMyUpdates from "hooks/use-my-updates" -import { translate, history, useAuthContext, NoPropsFCT } from "store/index" +import useMainQuery from "@/hooks/use-main-query" +import useMyUpdates from "@/hooks/use-my-updates" +import { translate, history, useAuthContext, NoPropsFCT } from "@/store/index" const navigateToHome = () => { history.push("/") diff --git a/src/components/convert/confirmation.tsx b/src/components/convert/confirmation.tsx index 13c58675..c112eb00 100644 --- a/src/components/convert/confirmation.tsx +++ b/src/components/convert/confirmation.tsx @@ -2,11 +2,11 @@ import { useState } from "react" import { formatCurrencyAmount } from "@galoymoney/client" -import { translate, useMutation } from "store/index" +import { translate, useMutation } from "@/store/index" -import { ConversionData } from "components/pages/conversion-flow" -import useMyUpdates from "hooks/use-my-updates" -import Link from "components/link" +import { ConversionData } from "@/components/pages/conversion-flow" +import useMyUpdates from "@/hooks/use-my-updates" +import Link from "@/components/link" const ConversionConfirmation: React.FC<{ conversionInput: ConversionData diff --git a/src/components/convert/input.tsx b/src/components/convert/input.tsx index ad57f760..322fa2ba 100644 --- a/src/components/convert/input.tsx +++ b/src/components/convert/input.tsx @@ -8,16 +8,16 @@ import { Spinner, } from "@galoymoney/react" -import { translate, GaloyGQL } from "store/index" -import useMainQuery from "hooks/use-main-query" -import useMyUpdates from "hooks/use-my-updates" +import { translate, GaloyGQL } from "@/store/index" +import useMainQuery from "@/hooks/use-main-query" +import useMyUpdates from "@/hooks/use-my-updates" -import Header from "components/header" +import Header from "@/components/header" import { ConversionData, ConvertAmount, WalletDescriptor, -} from "components/pages/conversion-flow" +} from "@/components/pages/conversion-flow" const ConversionInput: React.FC<{ navigateToNextStep: (data: ConversionData) => void diff --git a/src/components/convert/status.tsx b/src/components/convert/status.tsx index edddbd8d..331a895f 100644 --- a/src/components/convert/status.tsx +++ b/src/components/convert/status.tsx @@ -2,10 +2,10 @@ import { useEffect } from "react" import { SuccessCheckmark } from "@galoymoney/react" -import { translate, history, translateUnknown } from "store/index" -import useMainQuery from "hooks/use-main-query" +import { translate, history, translateUnknown } from "@/store/index" +import useMainQuery from "@/hooks/use-main-query" -import Link from "components/link" +import Link from "@/components/link" const CALLBACK_DELAY = 3_000 diff --git a/src/components/discardable-message.tsx b/src/components/discardable-message.tsx index 1c63281b..6baf2f3e 100644 --- a/src/components/discardable-message.tsx +++ b/src/components/discardable-message.tsx @@ -1,6 +1,6 @@ import { useState } from "react" -import { translate } from "store/index" +import { translate } from "@/store/index" const messages = { emailVerified: translate("Your email address has been verified"), diff --git a/src/components/error-fallback.tsx b/src/components/error-fallback.tsx index 905a1a1d..4b831c1e 100644 --- a/src/components/error-fallback.tsx +++ b/src/components/error-fallback.tsx @@ -1,6 +1,7 @@ import { FallbackProps } from "react-error-boundary" +import Link from "next/link" -import { config, translate } from "store/index" +import { config, translate } from "@/store/index" type FCT = React.FC @@ -23,7 +24,7 @@ const ErrorFallback: FCT = ({ error }) => { {translate("Email Support")}
|
- {translate("Reload Application")} + {translate("Reload Application")}
|
{translate("Logout")}
diff --git a/src/components/error-message.tsx b/src/components/error-message.tsx index 6cb5b454..95389c81 100644 --- a/src/components/error-message.tsx +++ b/src/components/error-message.tsx @@ -1,4 +1,4 @@ -import { translate, translateUnknown } from "store/index" +import { translate, translateUnknown } from "@/store/index" type FCT = React.FC<{ message?: string }> diff --git a/src/components/header.tsx b/src/components/header.tsx index 07de23a2..f340a43b 100644 --- a/src/components/header.tsx +++ b/src/components/header.tsx @@ -1,19 +1,19 @@ import { useState } from "react" -import { translate, useAuthContext, useAppState } from "store/index" +import { translate, useAuthContext, useAppState } from "@/store/index" -import Balance from "components/balance" -import WalletsHeader from "components/wallets-header" -import Link from "components/link" -import LoginLink from "components/login-link" -import LogoutLink from "components/logout-link" -import DiscardableMessage from "components/discardable-message" -import Icon from "components/icon" +import Balance from "@/components/balance" +import WalletsHeader from "@/components/wallets-header" +import Link from "@/components/link" +import LoginLink from "@/components/login-link" +import LogoutLink from "@/components/logout-link" +import DiscardableMessage from "@/components/discardable-message" +import Icon from "@/components/icon" const headerNavPages = ["home"] as const type Page = - | typeof headerNavPages[number] + | (typeof headerNavPages)[number] | "conversion-flow" | "send-bitcoin" | "receive-bitcoin" diff --git a/src/components/index.tsx b/src/components/index.tsx new file mode 100644 index 00000000..587817ef --- /dev/null +++ b/src/components/index.tsx @@ -0,0 +1,24 @@ +import { ErrorBoundary } from "react-error-boundary" + +import Root from "@/components/root" +import ErrorFallback from "@/components/error-fallback" +import { ValidPath } from "@/server/routes" + +import { setColorThemeFromStorage } from "@/store/index" + +setColorThemeFromStorage() + +const initialState = { + key: 0, + path: "/" as ValidPath, +} + +const App = () => { + return ( + + + + ) +} + +export default App diff --git a/src/components/kratos/Flow.tsx b/src/components/kratos/Flow.tsx index 8d6c1439..2b1e59d1 100644 --- a/src/components/kratos/Flow.tsx +++ b/src/components/kratos/Flow.tsx @@ -14,8 +14,8 @@ import { UiNode, } from "@ory/client" -import { Messages } from "components/kratos/Messages" -import { Node } from "components/kratos/Node" +import { Messages } from "@/components/kratos/Messages" +import { Node } from "@/components/kratos/Node" export type Values = Partial< | SubmitSelfServiceLoginFlowBody diff --git a/src/components/kratos/Messages.tsx b/src/components/kratos/Messages.tsx index d215b955..4fb3e585 100644 --- a/src/components/kratos/Messages.tsx +++ b/src/components/kratos/Messages.tsx @@ -1,6 +1,6 @@ import { UiText } from "@ory/client" -import { translateUnknown } from "store/index" +import { translateUnknown } from "@/store/index" interface MessageProps { message: UiText diff --git a/src/components/kratos/Node.tsx b/src/components/kratos/Node.tsx index 17df044e..6b684e5a 100644 --- a/src/components/kratos/Node.tsx +++ b/src/components/kratos/Node.tsx @@ -7,12 +7,12 @@ import { } from "@ory/integrations/ui" import { UiNode } from "@ory/client" -import { NodeAnchor } from "components/kratos/NodeAnchor" -import { NodeImage } from "components/kratos/NodeImage" -import { NodeInput } from "components/kratos/NodeInput" -import { NodeScript } from "components/kratos/NodeScript" -import { NodeText } from "components/kratos/NodeText" -import { FormDispatcher, ValueSetter } from "components/kratos/helpers" +import { NodeAnchor } from "@/components/kratos/NodeAnchor" +import { NodeImage } from "@/components/kratos/NodeImage" +import { NodeInput } from "@/components/kratos/NodeInput" +import { NodeScript } from "@/components/kratos/NodeScript" +import { NodeText } from "@/components/kratos/NodeText" +import { FormDispatcher, ValueSetter } from "@/components/kratos/helpers" interface Props { node: UiNode diff --git a/src/components/kratos/NodeImage.tsx b/src/components/kratos/NodeImage.tsx index 2ee16483..a8c46df4 100644 --- a/src/components/kratos/NodeImage.tsx +++ b/src/components/kratos/NodeImage.tsx @@ -1,3 +1,5 @@ +import Image from "next/image" + import { UiNode, UiNodeImageAttributes } from "@ory/client" interface Props { @@ -7,10 +9,10 @@ interface Props { export const NodeImage = ({ node, attributes }: Props) => { return ( - {node.meta.label?.text} ) } diff --git a/src/components/kratos/NodeInput.tsx b/src/components/kratos/NodeInput.tsx index 70974f4b..61ecad18 100644 --- a/src/components/kratos/NodeInput.tsx +++ b/src/components/kratos/NodeInput.tsx @@ -1,9 +1,9 @@ -import { NodeInputButton } from "components/kratos/NodeInputButton" -import { NodeInputCheckbox } from "components/kratos/NodeInputCheckbox" -import { NodeInputDefault } from "components/kratos/NodeInputDefault" -import { NodeInputHidden } from "components/kratos/NodeInputHidden" -import { NodeInputSubmit } from "components/kratos/NodeInputSubmit" -import { NodeInputProps } from "components/kratos/helpers" +import { NodeInputButton } from "@/components/kratos/NodeInputButton" +import { NodeInputCheckbox } from "@/components/kratos/NodeInputCheckbox" +import { NodeInputDefault } from "@/components/kratos/NodeInputDefault" +import { NodeInputHidden } from "@/components/kratos/NodeInputHidden" +import { NodeInputSubmit } from "@/components/kratos/NodeInputSubmit" +import { NodeInputProps } from "@/components/kratos/helpers" export const NodeInput = (props: NodeInputProps) => { const { attributes } = props diff --git a/src/components/kratos/NodeInputButton.tsx b/src/components/kratos/NodeInputButton.tsx index 5593cda3..6d396e22 100644 --- a/src/components/kratos/NodeInputButton.tsx +++ b/src/components/kratos/NodeInputButton.tsx @@ -1,8 +1,8 @@ import { getNodeLabel } from "@ory/integrations/ui" -import { NodeInputProps } from "components/kratos/helpers" +import { NodeInputProps } from "@/components/kratos/helpers" -import Button from "components/kratos/Button" +import Button from "@/components/kratos/Button" export const NodeInputButton = ({ node, diff --git a/src/components/kratos/NodeInputCheckbox.tsx b/src/components/kratos/NodeInputCheckbox.tsx index 6f866975..6374c6f2 100644 --- a/src/components/kratos/NodeInputCheckbox.tsx +++ b/src/components/kratos/NodeInputCheckbox.tsx @@ -1,7 +1,7 @@ import { getNodeLabel } from "@ory/integrations/ui" import { Checkbox } from "@ory/themes" -import { NodeInputProps } from "components/kratos/helpers" +import { NodeInputProps } from "@/components/kratos/helpers" export const NodeInputCheckbox = ({ node, diff --git a/src/components/kratos/NodeInputDefault.tsx b/src/components/kratos/NodeInputDefault.tsx index 35ddb94d..19fc3b97 100644 --- a/src/components/kratos/NodeInputDefault.tsx +++ b/src/components/kratos/NodeInputDefault.tsx @@ -1,5 +1,5 @@ -import { NodeInputProps } from "components/kratos/helpers" -import TextInput from "components/kratos/TextInput" +import { NodeInputProps } from "@/components/kratos/helpers" +import TextInput from "@/components/kratos/TextInput" export const NodeInputDefault = function NodeInputDefault(props: NodeInputProps) { const { node, attributes, value = "", setValue, disabled } = props diff --git a/src/components/kratos/NodeInputHidden.tsx b/src/components/kratos/NodeInputHidden.tsx index f35e3e1b..a9fac5fc 100644 --- a/src/components/kratos/NodeInputHidden.tsx +++ b/src/components/kratos/NodeInputHidden.tsx @@ -1,4 +1,4 @@ -import { NodeInputProps } from "components/kratos/helpers" +import { NodeInputProps } from "@/components/kratos/helpers" export const NodeInputHidden = function NodeInputHidden({ attributes }: NodeInputProps) { // Render a hidden input field diff --git a/src/components/kratos/NodeInputSubmit.tsx b/src/components/kratos/NodeInputSubmit.tsx index b881d2ab..6eeb289e 100644 --- a/src/components/kratos/NodeInputSubmit.tsx +++ b/src/components/kratos/NodeInputSubmit.tsx @@ -1,7 +1,7 @@ import { getNodeLabel } from "@ory/integrations/ui" import { ReactNode } from "react" -import { NodeInputProps } from "components/kratos/helpers" +import { NodeInputProps } from "@/components/kratos/helpers" type ButtonProps = { helper?: ReactNode diff --git a/src/components/kratos/index.tsx b/src/components/kratos/index.tsx index bb2cdbeb..2d733ee6 100644 --- a/src/components/kratos/index.tsx +++ b/src/components/kratos/index.tsx @@ -1,6 +1,6 @@ -export * from "components/kratos/Flow" -export * from "components/kratos/Messages" -export * from "components/kratos/Node" -export * from "components/kratos/NodeImage" -export * from "components/kratos/NodeInput" -export * from "components/kratos/NodeText" +export * from "@/components/kratos/Flow" +export * from "@/components/kratos/Messages" +export * from "@/components/kratos/Node" +export * from "@/components/kratos/NodeImage" +export * from "@/components/kratos/NodeInput" +export * from "@/components/kratos/NodeText" diff --git a/src/components/layout.tsx b/src/components/layout.tsx new file mode 100644 index 00000000..c7a3a26c --- /dev/null +++ b/src/components/layout.tsx @@ -0,0 +1,7 @@ +import { IconName, Icon as DefaultIcon } from "@galoymoney/react" + +const Icon: React.FC<{ name: IconName }> = ({ name }) => { + return +} + +export default Icon diff --git a/src/components/link.tsx b/src/components/link.tsx index 8db92a3a..d4359511 100644 --- a/src/components/link.tsx +++ b/src/components/link.tsx @@ -1,8 +1,8 @@ import * as React from "react" -import { checkAuthRoute, ValidPath } from "server/routes" +import { checkAuthRoute, ValidPath } from "@/server/routes" -import { history, config } from "store/index" +import { history, config } from "@/store/index" const navigateTo = (to: string) => { const authRoute = checkAuthRoute(to) diff --git a/src/components/login-link.tsx b/src/components/login-link.tsx index fce6a31a..b5c5e80a 100644 --- a/src/components/login-link.tsx +++ b/src/components/login-link.tsx @@ -1,7 +1,7 @@ -import { translate } from "store/index" +import { translate } from "@/store/index" -import Link from "components/link" -import Icon from "components/icon" +import Link from "@/components/link" +import Icon from "@/components/icon" const LoginLink = () => ( diff --git a/src/components/login/auth-code.tsx b/src/components/login/auth-code.tsx index 51dd8e66..80558423 100644 --- a/src/components/login/auth-code.tsx +++ b/src/components/login/auth-code.tsx @@ -2,9 +2,9 @@ import { ChangeEvent, useState } from "react" import { Spinner } from "@galoymoney/react" -import { config, translate, ajax, history, useAuthContext } from "store/index" +import { config, translate, ajax, history, useAuthContext } from "@/store/index" -import Icon from "components/icon" +import Icon from "@/components/icon" type FCT = React.FC<{ phoneNumber: string }> diff --git a/src/components/login/captcha-callenge.tsx b/src/components/login/captcha-callenge.tsx index fd80e10e..303bb11c 100644 --- a/src/components/login/captcha-callenge.tsx +++ b/src/components/login/captcha-callenge.tsx @@ -2,9 +2,9 @@ import { memo, useCallback, useEffect, useState } from "react" import { Spinner } from "@galoymoney/react" -import { translate, useMutation } from "store/index" +import { translate, useMutation } from "@/store/index" -import AuthCode from "components/login/auth-code" +import AuthCode from "@/components/login/auth-code" const CaptchaChallengeComponent: React.FC<{ phoneNumber: string }> = ({ phoneNumber, diff --git a/src/components/logout-link.tsx b/src/components/logout-link.tsx index d4460ba5..02bdb34d 100644 --- a/src/components/logout-link.tsx +++ b/src/components/logout-link.tsx @@ -5,9 +5,9 @@ import { config, ajax, useResetClient, -} from "store/index" +} from "@/store/index" -import Icon from "components/icon" +import Icon from "@/components/icon" const LogoutLink: NoPropsFCT = () => { const { setAuthSession } = useAuthContext() diff --git a/src/components/pages/contacts.tsx b/src/components/pages/contacts.tsx index 627ad777..44a97a03 100644 --- a/src/components/pages/contacts.tsx +++ b/src/components/pages/contacts.tsx @@ -1,11 +1,11 @@ import { truncatedDisplay } from "@galoymoney/client" import { Spinner } from "@galoymoney/react" -import { translate, history, useAuthContext, NoPropsFCT, useQuery } from "store/index" +import { translate, history, useAuthContext, NoPropsFCT, useQuery } from "@/store/index" -import ErrorMessage from "components/error-message" -import Header from "components/header" -import Icon from "components/icon" +import ErrorMessage from "@/components/error-message" +import Header from "@/components/header" +import Icon from "@/components/icon" const ContactsList: NoPropsFCT = () => { const { loading, errorsMessage, data } = useQuery.contacts() diff --git a/src/components/pages/conversion-flow.tsx b/src/components/pages/conversion-flow.tsx index 0ddf138e..720e36c9 100644 --- a/src/components/pages/conversion-flow.tsx +++ b/src/components/pages/conversion-flow.tsx @@ -1,10 +1,10 @@ import { useState } from "react" -import { GaloyGQL } from "store/index" +import { GaloyGQL } from "@/store/index" -import ConversionInput from "components/convert/input" -import ConversionConfirmation from "components/convert/confirmation" -import ConversionStatus from "components/convert/status" +import ConversionInput from "@/components/convert/input" +import ConversionConfirmation from "@/components/convert/confirmation" +import ConversionStatus from "@/components/convert/status" export type ConvertAmount = { id: number diff --git a/src/components/pages/home.tsx b/src/components/pages/home.tsx index 7907f627..1b18580a 100644 --- a/src/components/pages/home.tsx +++ b/src/components/pages/home.tsx @@ -1,7 +1,7 @@ -import { translate, useAuthContext, NoPropsFCT } from "store/index" +import { translate, useAuthContext, NoPropsFCT } from "@/store/index" -import Header from "components/header" -import TransactionList from "components/transactions/list" +import Header from "@/components/header" +import TransactionList from "@/components/transactions/list" const Home: NoPropsFCT = () => { const { isAuthenticated } = useAuthContext() diff --git a/src/components/pages/login-email.tsx b/src/components/pages/login-email.tsx index dd1a88a8..f9f27acd 100644 --- a/src/components/pages/login-email.tsx +++ b/src/components/pages/login-email.tsx @@ -9,12 +9,12 @@ import { getNodesForFlow, KratosFlowData, KratosError, -} from "kratos/index" -import { config, translate, history, useAuthContext } from "store/index" +} from "@/kratos/index" +import { config, translate, history, useAuthContext } from "@/store/index" -import Link from "components/link" -import { Messages } from "components/kratos" -import Icon from "components/icon" +import Link from "@/components/link" +import { Messages } from "@/components/kratos" +import Icon from "@/components/icon" type FCT = React.FC<{ flowData?: KratosFlowData diff --git a/src/components/pages/login-phone.tsx b/src/components/pages/login-phone.tsx index 875c0563..7bb41a90 100644 --- a/src/components/pages/login-phone.tsx +++ b/src/components/pages/login-phone.tsx @@ -1,9 +1,9 @@ import { useCallback, useState } from "react" -import { translate } from "store/index" +import { translate } from "@/store/index" import { PhoneNumberInput } from "@galoymoney/react" -import { CaptchaChallenge } from "components/login/captcha-callenge" +import { CaptchaChallenge } from "@/components/login/captcha-callenge" type FCT = React.FC diff --git a/src/components/pages/receive.tsx b/src/components/pages/receive.tsx index 60c8b325..4af815a5 100644 --- a/src/components/pages/receive.tsx +++ b/src/components/pages/receive.tsx @@ -1,11 +1,11 @@ import { useState } from "react" -import { translate, GaloyGQL, NoPropsFCT, useAppDispatcher } from "store/index" +import { translate, GaloyGQL, NoPropsFCT, useAppDispatcher } from "@/store/index" -import Header from "components/header" -import InvoiceOverview from "components/receive/overview" -import InvoiceInput from "components/receive/input" -import useMainQuery from "hooks/use-main-query" +import Header from "@/components/header" +import InvoiceOverview from "@/components/receive/overview" +import InvoiceInput from "@/components/receive/input" +import useMainQuery from "@/hooks/use-main-query" import { SuccessCheckmark } from "@galoymoney/react" export type ReceiveScreenInput = { diff --git a/src/components/pages/recovery.tsx b/src/components/pages/recovery.tsx index 0ee0c158..19687763 100644 --- a/src/components/pages/recovery.tsx +++ b/src/components/pages/recovery.tsx @@ -2,17 +2,17 @@ import { useState, useEffect, useCallback } from "react" import { SelfServiceRecoveryFlow, SubmitSelfServiceRecoveryFlowBody } from "@ory/client" -import { config, translate, history } from "store/index" +import { config, translate, history } from "@/store/index" import { KratosSdk, handleFlowError, getNodesForFlow, KratosFlowData, KratosError, -} from "kratos/index" +} from "@/kratos/index" -import { Messages } from "components/kratos" -import Link from "components/link" +import { Messages } from "@/components/kratos" +import Link from "@/components/link" type FCT = React.FC<{ flowData?: KratosFlowData diff --git a/src/components/pages/register.tsx b/src/components/pages/register.tsx index 5ea88980..168fed9d 100644 --- a/src/components/pages/register.tsx +++ b/src/components/pages/register.tsx @@ -6,18 +6,18 @@ import { SubmitSelfServiceRegistrationFlowBody, } from "@ory/client" -import { config, translate, history, useAuthContext } from "store/index" +import { config, translate, history, useAuthContext } from "@/store/index" import { KratosSdk, handleFlowError, getNodesForFlow, KratosFlowData, KratosError, -} from "kratos/index" +} from "@/kratos/index" -import Link from "components/link" -import { Messages } from "components/kratos" -import Icon from "components/icon" +import Link from "@/components/link" +import { Messages } from "@/components/kratos" +import Icon from "@/components/icon" type FCT = React.FC<{ flowData?: KratosFlowData diff --git a/src/components/pages/send.tsx b/src/components/pages/send.tsx index b916f2a4..7fa9b51d 100644 --- a/src/components/pages/send.tsx +++ b/src/components/pages/send.tsx @@ -2,14 +2,14 @@ import { useState } from "react" import { PaymentType } from "@galoymoney/client" -import { translate, GaloyGQL } from "store/index" -import useMainQuery from "hooks/use-main-query" - -import Link from "components/link" -import Header from "components/header" -import SendDestination from "components/send/send-destination" -import SendAmountLabel from "components/send/send-amount-label" -import SendConfirm from "components/send/send-confirm" +import { translate, GaloyGQL } from "@/store/index" +import useMainQuery from "@/hooks/use-main-query" + +import Link from "@/components/link" +import Header from "@/components/header" +import SendDestination from "@/components/send/send-destination" +import SendAmountLabel from "@/components/send/send-amount-label" +import SendConfirm from "@/components/send/send-confirm" export type SendScreenInput = { view?: "destination" | "amount" | "confirm" diff --git a/src/components/pages/settings.tsx b/src/components/pages/settings.tsx index edcf2f65..2a673bf9 100644 --- a/src/components/pages/settings.tsx +++ b/src/components/pages/settings.tsx @@ -2,26 +2,26 @@ import { useCallback, useEffect, useState } from "react" import { SelfServiceSettingsFlow, SubmitSelfServiceSettingsFlowBody } from "@ory/client" -import { translate } from "store/translate" +import { translate } from "@/store/translate" -import { config, history, NoPropsFCT, useAuthContext } from "store/index" +import { config, history, NoPropsFCT, useAuthContext } from "@/store/index" import { KratosSdk, handleFlowError, getNodesForFlow, KratosFlowData, KratosError, -} from "kratos/index" - -import SettingsLayout from "components/settings/layout" -import ColorThemeSetting from "components/settings/color-theme" -import LanguageSetting from "components/settings/language" -import UsernameSetting from "components/settings/username" -import EmailSetting from "components/settings/email" -import { Messages } from "components/kratos" -import LoginLink from "components/login-link" -import LogoutLink from "components/logout-link" -import Link from "components/link" +} from "@/kratos/index" + +import SettingsLayout from "@/components/settings/layout" +import ColorThemeSetting from "@/components/settings/color-theme" +import LanguageSetting from "@/components/settings/language" +import UsernameSetting from "@/components/settings/username" +import EmailSetting from "@/components/settings/email" +import { Messages } from "@/components/kratos" +import LoginLink from "@/components/login-link" +import LogoutLink from "@/components/logout-link" +import Link from "@/components/link" type FCT = React.FC<{ flowData?: KratosFlowData diff --git a/src/components/pages/transactions.tsx b/src/components/pages/transactions.tsx index 3d80c248..10e0a894 100644 --- a/src/components/pages/transactions.tsx +++ b/src/components/pages/transactions.tsx @@ -3,10 +3,10 @@ import { useCallback, useRef } from "react" import { isThisMonth, isToday, isYesterday } from "@galoymoney/client" import { Spinner } from "@galoymoney/react" -import { translate, GaloyGQL, useQuery } from "store/index" +import { translate, GaloyGQL, useQuery } from "@/store/index" -import Header from "components/header" -import TransactionItem from "components/transactions/item" +import Header from "@/components/header" +import TransactionItem from "@/components/transactions/item" const TRANSACTIONS_PER_PAGE = 25 const EMPTY_CONNECTION = { diff --git a/src/components/receive/input.tsx b/src/components/receive/input.tsx index 3339d030..eb276656 100644 --- a/src/components/receive/input.tsx +++ b/src/components/receive/input.tsx @@ -11,9 +11,9 @@ import { Spinner, } from "@galoymoney/react" -import useMyUpdates from "hooks/use-my-updates" -import { translate } from "store/index" -import { ReceiveScreenInput } from "components/pages/receive" +import useMyUpdates from "@/hooks/use-my-updates" +import { translate } from "@/store/index" +import { ReceiveScreenInput } from "@/components/pages/receive" type FCT = React.FC<{ input: ReceiveScreenInput diff --git a/src/components/receive/invoice-details.tsx b/src/components/receive/invoice-details.tsx index 6bb48f5e..43631397 100644 --- a/src/components/receive/invoice-details.tsx +++ b/src/components/receive/invoice-details.tsx @@ -5,10 +5,10 @@ import copy from "copy-to-clipboard" import { formatUsd, satsToBTC } from "@galoymoney/client" import { SatFormat } from "@galoymoney/react" -import { translate, GaloyGQL } from "store/index" +import { translate, GaloyGQL } from "@/store/index" -import useMyUpdates from "hooks/use-my-updates" -import useMainQuery from "hooks/use-main-query" +import useMyUpdates from "@/hooks/use-my-updates" +import useMainQuery from "@/hooks/use-main-query" type LightningInvoiceFCT = React.FC<{ invoice: Pick diff --git a/src/components/receive/invoice-generator.tsx b/src/components/receive/invoice-generator.tsx index e20066f4..578e44d8 100644 --- a/src/components/receive/invoice-generator.tsx +++ b/src/components/receive/invoice-generator.tsx @@ -7,10 +7,10 @@ import { } from "@galoymoney/client" import { SatFormat, Spinner, useCountdownTimer } from "@galoymoney/react" -import { translate, GaloyGQL, useMutation } from "store/index" +import { translate, GaloyGQL, useMutation } from "@/store/index" -import { LightningInvoice, OnChainInvoice } from "components/receive/invoice-details" -import ErrorMessage from "components/error-message" +import { LightningInvoice, OnChainInvoice } from "@/components/receive/invoice-details" +import ErrorMessage from "@/components/error-message" const INVOICE_EXPIRE_INTERVAL = 60 * 60 * 1000 diff --git a/src/components/receive/overview.tsx b/src/components/receive/overview.tsx index 7641dd6f..4eb1a4c7 100644 --- a/src/components/receive/overview.tsx +++ b/src/components/receive/overview.tsx @@ -1,12 +1,12 @@ import { useCallback, useEffect } from "react" -import { translate, useMutation } from "store/index" -import useMyUpdates from "hooks/use-my-updates" -import useMainQuery from "hooks/use-main-query" +import { translate, useMutation } from "@/store/index" +import useMyUpdates from "@/hooks/use-my-updates" +import useMainQuery from "@/hooks/use-main-query" -import InvoiceGenerator from "components/receive/invoice-generator" -import Link, { ButtonLink } from "components/link" -import { ReceiveScreenInput } from "components/pages/receive" +import InvoiceGenerator from "@/components/receive/invoice-generator" +import Link, { ButtonLink } from "@/components/link" +import { ReceiveScreenInput } from "@/components/pages/receive" type FCT = React.FC<{ input: ReceiveScreenInput @@ -34,7 +34,7 @@ const InvoiceOverview: FCT = ({ input, setInput, toggleWallet }) => { }, [input.wallet, generateBtcAddress, input.layer]) useEffect(() => { - if (satsToUsd && input.wallet.walletCurrency !== "USD") { + if (satsToUsd && input?.wallet?.walletCurrency !== "USD") { setInput((currInput) => ({ ...currInput, usdAmount: satsToUsd(currInput.satAmount as number), diff --git a/src/components/root-component.tsx b/src/components/root-component.tsx index 88b87856..04e3f261 100644 --- a/src/components/root-component.tsx +++ b/src/components/root-component.tsx @@ -9,12 +9,12 @@ import { authRoutes, checkAuthRoute, ValidPath, -} from "server/routes" +} from "@/server/routes" -import { KratosFlowData } from "kratos/index" -import useMainQuery from "hooks/use-main-query" +import { KratosFlowData } from "@/kratos/index" +import useMainQuery from "@/hooks/use-main-query" -import ErrorFallback from "components/error-fallback" +import ErrorFallback from "@/components/error-fallback" type FCT = React.FC<{ path: ValidPath diff --git a/src/components/root.tsx b/src/components/root.tsx index a198fe36..6c4d1371 100644 --- a/src/components/root.tsx +++ b/src/components/root.tsx @@ -1,6 +1,6 @@ import { useEffect, useReducer } from "react" -import { ValidPath } from "server/routes" +import { ValidPath } from "@/server/routes" import { GaloyClient, @@ -9,11 +9,11 @@ import { GwwStateType, history, mainReducer, -} from "store/index" -import { KratosFlowData } from "kratos/index" +} from "@/store/index" +import { KratosFlowData } from "@/kratos/index" -import { AuthProvider } from "components/auth-provider" -import RootComponent from "components/root-component" +import { AuthProvider } from "@/components/auth-provider" +import RootComponent from "@/components/root-component" type RootFCT = React.FC<{ GwwState: GwwStateType }> diff --git a/src/components/send/send-action-display.tsx b/src/components/send/send-action-display.tsx index 7f426eff..4522d8b9 100644 --- a/src/components/send/send-action-display.tsx +++ b/src/components/send/send-action-display.tsx @@ -3,9 +3,9 @@ import { MouseEvent } from "react" import { formatUsd } from "@galoymoney/client" import { SatFormat, Spinner, SuccessCheckmark } from "@galoymoney/react" -import { GaloyGQL, translate } from "store/index" +import { GaloyGQL, translate } from "@/store/index" -import useMyUpdates from "hooks/use-my-updates" +import useMyUpdates from "@/hooks/use-my-updates" type FeeAmount = { amount: number | undefined diff --git a/src/components/send/send-action.tsx b/src/components/send/send-action.tsx index a5bfdc93..8d20160c 100644 --- a/src/components/send/send-action.tsx +++ b/src/components/send/send-action.tsx @@ -1,35 +1,35 @@ import { useCallback } from "react" -import { translate, useAppDispatcher } from "store/index" -import useMainQuery from "hooks/use-main-query" +import { translate, useAppDispatcher } from "@/store/index" +import useMainQuery from "@/hooks/use-main-query" -import { ButtonLink } from "components/link" +import { ButtonLink } from "@/components/link" import SendIntraLedgerAction, { SendIntraLedgerActionProps, -} from "components/send/send-intra-ledger-action" +} from "@/components/send/send-intra-ledger-action" import SendIntraLedgerUsdAction, { SendIntraLedgerUsdActionProps, -} from "components/send/send-intra-ledger-usd-action" +} from "@/components/send/send-intra-ledger-usd-action" import { SendLnActionProps, SendLnInvoiceAction, SendLnNoAmountActionProps, SendLnNoAmountInvoiceAction, -} from "components/send/send-ln-action" +} from "@/components/send/send-ln-action" import { SendLnUsdActionProps, SendLnUsdInvoiceAction, SendLnNoAmountUsdActionProps, SendLnNoAmountUsdInvoiceAction, -} from "components/send/send-ln-usd-action" +} from "@/components/send/send-ln-usd-action" import SendOnChainAction, { SendOnChainActionProps, -} from "components/send/send-onchain-action" +} from "@/components/send/send-onchain-action" -import { SendScreenInput } from "components/pages/send" +import { SendScreenInput } from "@/components/pages/send" import { Spinner } from "@galoymoney/react" import { formatSats, formatUsd } from "@galoymoney/client" diff --git a/src/components/send/send-amount-label.tsx b/src/components/send/send-amount-label.tsx index 61e7e050..608a0830 100644 --- a/src/components/send/send-amount-label.tsx +++ b/src/components/send/send-amount-label.tsx @@ -11,12 +11,12 @@ import { Icon, } from "@galoymoney/react" -import { translate } from "store/index" -import useMyUpdates from "hooks/use-my-updates" -import useMainQuery from "hooks/use-main-query" +import { translate } from "@/store/index" +import useMyUpdates from "@/hooks/use-my-updates" +import useMainQuery from "@/hooks/use-main-query" -import { SendScreenInput } from "components/pages/send" -import SendAction from "components/send/send-action" +import { SendScreenInput } from "@/components/pages/send" +import SendAction from "@/components/send/send-action" type FCT = React.FC<{ input: SendScreenInput diff --git a/src/components/send/send-confirm.tsx b/src/components/send/send-confirm.tsx index 45105f07..923acbfe 100644 --- a/src/components/send/send-confirm.tsx +++ b/src/components/send/send-confirm.tsx @@ -3,11 +3,11 @@ import { useMemo } from "react" import { formatUsd } from "@galoymoney/client" import { SatFormat } from "@galoymoney/react" -import { translate } from "store/index" -import useMyUpdates from "hooks/use-my-updates" +import { translate } from "@/store/index" +import useMyUpdates from "@/hooks/use-my-updates" -import { SendScreenInput } from "components/pages/send" -import SendAction from "components/send/send-action" +import { SendScreenInput } from "@/components/pages/send" +import SendAction from "@/components/send/send-action" type FCT = React.FC<{ input: SendScreenInput }> diff --git a/src/components/send/send-destination.tsx b/src/components/send/send-destination.tsx index db722b95..8bdb4b9c 100644 --- a/src/components/send/send-destination.tsx +++ b/src/components/send/send-destination.tsx @@ -14,12 +14,12 @@ import { SatFormat, } from "@galoymoney/react" -import { config, translate, useDelayedQuery } from "store/index" -import useMainQuery from "hooks/use-main-query" -import useMyUpdates from "hooks/use-my-updates" +import { config, translate, useDelayedQuery } from "@/store/index" +import useMainQuery from "@/hooks/use-main-query" +import useMyUpdates from "@/hooks/use-my-updates" -import { SendScreenInput } from "components/pages/send" -import SendAction from "components/send/send-action" +import { SendScreenInput } from "@/components/pages/send" +import SendAction from "@/components/send/send-action" type FCT = React.FC<{ input: SendScreenInput diff --git a/src/components/send/send-intra-ledger-action.tsx b/src/components/send/send-intra-ledger-action.tsx index a1d776c2..6bb239f2 100644 --- a/src/components/send/send-intra-ledger-action.tsx +++ b/src/components/send/send-intra-ledger-action.tsx @@ -1,10 +1,10 @@ import { MouseEvent } from "react" -import { useMutation } from "store/index" +import { useMutation } from "@/store/index" -import SendActionDisplay from "components/send/send-action-display" -import { SendActionProps } from "components/send/send-action" -import useMainQuery from "hooks/use-main-query" +import SendActionDisplay from "@/components/send/send-action-display" +import { SendActionProps } from "@/components/send/send-action" +import useMainQuery from "@/hooks/use-main-query" export type SendIntraLedgerActionProps = SendActionProps & { recipientWalletId: string diff --git a/src/components/send/send-intra-ledger-usd-action.tsx b/src/components/send/send-intra-ledger-usd-action.tsx index 4983e7f0..fa1bd456 100644 --- a/src/components/send/send-intra-ledger-usd-action.tsx +++ b/src/components/send/send-intra-ledger-usd-action.tsx @@ -1,10 +1,10 @@ import { MouseEvent } from "react" -import { useMutation } from "store/index" +import { useMutation } from "@/store/index" -import SendActionDisplay from "components/send/send-action-display" -import { SendActionProps } from "components/send/send-action" -import useMainQuery from "hooks/use-main-query" +import SendActionDisplay from "@/components/send/send-action-display" +import { SendActionProps } from "@/components/send/send-action" +import useMainQuery from "@/hooks/use-main-query" export type SendIntraLedgerUsdActionProps = SendActionProps & { usdWalletId: string diff --git a/src/components/send/send-ln-action.tsx b/src/components/send/send-ln-action.tsx index 5a0ebc1d..d0b6bb19 100644 --- a/src/components/send/send-ln-action.tsx +++ b/src/components/send/send-ln-action.tsx @@ -1,10 +1,10 @@ import { MouseEvent, useEffect } from "react" -import { useMutation } from "store/index" +import { useMutation } from "@/store/index" -import SendActionDisplay from "components/send/send-action-display" -import { SendActionProps } from "components/send/send-action" -import useMainQuery from "hooks/use-main-query" +import SendActionDisplay from "@/components/send/send-action-display" +import { SendActionProps } from "@/components/send/send-action" +import useMainQuery from "@/hooks/use-main-query" export type SendLnActionProps = SendActionProps & { paymentRequest: string diff --git a/src/components/send/send-ln-usd-action.tsx b/src/components/send/send-ln-usd-action.tsx index 51e3df2f..e6eabc27 100644 --- a/src/components/send/send-ln-usd-action.tsx +++ b/src/components/send/send-ln-usd-action.tsx @@ -1,10 +1,10 @@ import { MouseEvent, useEffect } from "react" -import { GaloyGQL, useMutation } from "store/index" +import { GaloyGQL, useMutation } from "@/store/index" -import SendActionDisplay from "components/send/send-action-display" -import { SendActionProps } from "components/send/send-action" -import useMainQuery from "hooks/use-main-query" +import SendActionDisplay from "@/components/send/send-action-display" +import { SendActionProps } from "@/components/send/send-action" +import useMainQuery from "@/hooks/use-main-query" export type SendLnUsdActionProps = SendActionProps & { fromWallet: GaloyGQL.Wallet diff --git a/src/components/send/send-onchain-action.tsx b/src/components/send/send-onchain-action.tsx index a5282198..66c2f86a 100644 --- a/src/components/send/send-onchain-action.tsx +++ b/src/components/send/send-onchain-action.tsx @@ -1,10 +1,10 @@ import { MouseEvent } from "react" -import { useMutation, useQuery } from "store/index" +import { useMutation, useQuery } from "@/store/index" -import SendActionDisplay from "components/send/send-action-display" -import { SendActionProps } from "components/send/send-action" -import useMainQuery from "hooks/use-main-query" +import SendActionDisplay from "@/components/send/send-action-display" +import { SendActionProps } from "@/components/send/send-action" +import useMainQuery from "@/hooks/use-main-query" export type SendOnChainActionProps = SendActionProps & { address: string diff --git a/src/components/settings/color-theme.tsx b/src/components/settings/color-theme.tsx index ef100bda..a760f5e6 100644 --- a/src/components/settings/color-theme.tsx +++ b/src/components/settings/color-theme.tsx @@ -7,9 +7,9 @@ import { NoPropsFCT, setColorTheme, storage, -} from "store/index" +} from "@/store/index" -import Icon from "components/icon" +import Icon from "@/components/icon" const ColorThemeSetting: NoPropsFCT = () => { const [colorTheme, setColorThemeState] = useState("DEFAULT") diff --git a/src/components/settings/email.tsx b/src/components/settings/email.tsx index 1666f77f..b15b6f91 100644 --- a/src/components/settings/email.tsx +++ b/src/components/settings/email.tsx @@ -1,6 +1,6 @@ -import { translate, useAuthContext } from "store/index" +import { translate, useAuthContext } from "@/store/index" -import Icon from "components/icon" +import Icon from "@/components/icon" type FCT = React.FC<{ guestView: boolean }> diff --git a/src/components/settings/language.tsx b/src/components/settings/language.tsx index ed8176d7..e0ae2b3c 100644 --- a/src/components/settings/language.tsx +++ b/src/components/settings/language.tsx @@ -1,9 +1,9 @@ import { ChangeEvent } from "react" -import useMainQuery from "hooks/use-main-query" -import { setLocale, translate, useAppState, useMutation } from "store/index" +import useMainQuery from "@/hooks/use-main-query" +import { setLocale, translate, useAppState, useMutation } from "@/store/index" -import Icon from "components/icon" +import Icon from "@/components/icon" const languageLabels = { "DEFAULT": "Default (OS)", diff --git a/src/components/settings/layout.tsx b/src/components/settings/layout.tsx index 5bc3648d..316129d2 100644 --- a/src/components/settings/layout.tsx +++ b/src/components/settings/layout.tsx @@ -1,4 +1,4 @@ -import Header from "components/header" +import Header from "@/components/header" const SettingsLayout: React.FC<{ children: React.ReactNode }> = ({ children }) => { return ( diff --git a/src/components/settings/username.tsx b/src/components/settings/username.tsx index 27f1b79d..38bd28f4 100644 --- a/src/components/settings/username.tsx +++ b/src/components/settings/username.tsx @@ -1,9 +1,9 @@ import { Spinner } from "@galoymoney/react" -import { translate, useMutation } from "store/index" -import useMainQuery from "hooks/use-main-query" +import { translate, useMutation } from "@/store/index" +import useMainQuery from "@/hooks/use-main-query" -import Icon from "components/icon" +import Icon from "@/components/icon" const UsernameInput: React.FC<{ lightningAddressDomain: string }> = ({ lightningAddressDomain, diff --git a/src/components/transactions/item.tsx b/src/components/transactions/item.tsx index d602fb18..8924052d 100644 --- a/src/components/transactions/item.tsx +++ b/src/components/transactions/item.tsx @@ -3,9 +3,9 @@ import { useState } from "react" import { formatForLocale, formatUsd, truncatedDisplay } from "@galoymoney/client" import { SatFormat } from "@galoymoney/react" -import { GaloyGQL, config, translate, getLocale } from "store/index" +import { GaloyGQL, config, translate, getLocale } from "@/store/index" -import Icon from "components/icon" +import Icon from "@/components/icon" export const BLOCKCHAIN_EXPLORER_URL = "https://mempool.space/tx/" diff --git a/src/components/transactions/list.tsx b/src/components/transactions/list.tsx index 39b062c3..70a8a7cb 100644 --- a/src/components/transactions/list.tsx +++ b/src/components/transactions/list.tsx @@ -2,9 +2,9 @@ import { useRef } from "react" import { Spinner } from "@galoymoney/react" -import useMainQuery from "hooks/use-main-query" -import TransactionItem from "components/transactions/item" -import { translate, GaloyGQL, useDelayedQuery, NoPropsFCT } from "store/index" +import useMainQuery from "@/hooks/use-main-query" +import TransactionItem from "@/components/transactions/item" +import { translate, GaloyGQL, useDelayedQuery, NoPropsFCT } from "@/store/index" const TRANSACTIONS_PER_PAGE = 25 const EMPTY_CONNECTION = { diff --git a/src/components/wallets-header.tsx b/src/components/wallets-header.tsx index 51887a51..52c5ae74 100644 --- a/src/components/wallets-header.tsx +++ b/src/components/wallets-header.tsx @@ -1,12 +1,12 @@ import { formatUsd } from "@galoymoney/client" import { SatFormat } from "@galoymoney/react" -import Link from "components/link" -import Icon from "components/icon" +import Link from "@/components/link" +import Icon from "@/components/icon" -import useMainQuery from "hooks/use-main-query" -import useMyUpdates from "hooks/use-my-updates" -import { NoPropsFCT } from "store/index" +import useMainQuery from "@/hooks/use-main-query" +import useMyUpdates from "@/hooks/use-my-updates" +import { NoPropsFCT } from "@/store/index" const WalletsHeader: NoPropsFCT = () => { const { btcWalletBalance, usdWalletBalance, wallets } = useMainQuery() diff --git a/src/hooks/use-main-query.ts b/src/hooks/use-main-query.ts index d2f66137..3fd766bc 100644 --- a/src/hooks/use-main-query.ts +++ b/src/hooks/use-main-query.ts @@ -1,4 +1,4 @@ -import { setLocale, useAppState, useAuthContext, GaloyGQL, useQuery } from "store/index" +import { setLocale, useAppState, useAuthContext, GaloyGQL, useQuery } from "@/store/index" // FIX: should come from the client type Language = "" | "en-US" | "es-SV" diff --git a/src/hooks/use-my-updates.ts b/src/hooks/use-my-updates.ts index 3c289b36..d0cf7889 100644 --- a/src/hooks/use-my-updates.ts +++ b/src/hooks/use-my-updates.ts @@ -1,7 +1,7 @@ import { useMemo, useRef } from "react" -import { GaloyGQL, PriceCacheStore, useSubscription } from "store/index" -import useMainQuery from "hooks/use-main-query" +import { GaloyGQL, PriceCacheStore, useSubscription } from "@/store/index" +import useMainQuery from "@/hooks/use-main-query" export type PriceData = { formattedAmount: string diff --git a/src/jest/custom-env.ts b/src/jest/custom-env.ts deleted file mode 100644 index 93c9f606..00000000 --- a/src/jest/custom-env.ts +++ /dev/null @@ -1,13 +0,0 @@ -import Environment from "jest-environment-jsdom" -import { TextEncoder } from "util" - -class CustomTestEnvironment extends Environment { - async setup() { - await super.setup() - if (typeof this.global.TextEncoder === "undefined") { - this.global.TextEncoder = TextEncoder - } - } -} - -export default CustomTestEnvironment diff --git a/src/jest/setupTests.ts b/src/jest/setupTests.ts deleted file mode 100644 index c11c1eea..00000000 --- a/src/jest/setupTests.ts +++ /dev/null @@ -1,11 +0,0 @@ -if (typeof window !== "undefined") { - Object.defineProperty(window, "__G_DATA", { - value: { - GwwConfig: { - graphqlUrl: "https://api.staging.galoy.io/graphql", - network: "signet", - kratosFeatureFlag: true, - }, - }, - }) -} diff --git a/src/kratos/browser.ts b/src/kratos/browser.ts index 88b8b886..3565292a 100644 --- a/src/kratos/browser.ts +++ b/src/kratos/browser.ts @@ -1,6 +1,6 @@ import { History } from "history" -import { KratosError } from "kratos/server" +import { KratosError } from "@/kratos/server" // A small function to help us deal with errors coming from fetching a flow. export const handleFlowError = ({ diff --git a/src/kratos/helpers.ts b/src/kratos/helpers.ts index 437c800c..d1f256f4 100644 --- a/src/kratos/helpers.ts +++ b/src/kratos/helpers.ts @@ -1,4 +1,4 @@ -import { KratosFlowData } from "kratos/server" +import { KratosFlowData } from "@/kratos/server" // eslint-disable-next-line @typescript-eslint/no-explicit-any export const isQuerySet = (query: any): query is string => @@ -18,7 +18,7 @@ export const getUrlForFlow = ({ kratosBrowserUrl, query, }: { - flow: typeof KratosFlow[keyof typeof KratosFlow] + flow: (typeof KratosFlow)[keyof typeof KratosFlow] kratosBrowserUrl: string query?: URLSearchParams }) => diff --git a/src/kratos/index.ts b/src/kratos/index.ts index f81e1247..a661fdb2 100644 --- a/src/kratos/index.ts +++ b/src/kratos/index.ts @@ -1,4 +1,4 @@ -export * from "kratos/server" -export * from "kratos/browser" -export * from "kratos/helpers" -export * from "kratos/sdk" +export * from "@/kratos/server" +export * from "@/kratos/browser" +export * from "@/kratos/helpers" +export * from "@/kratos/sdk" diff --git a/src/kratos/server.ts b/src/kratos/server.ts index 5b7497c6..448bec70 100644 --- a/src/kratos/server.ts +++ b/src/kratos/server.ts @@ -9,8 +9,8 @@ import { } from "@ory/client" import { Request } from "express" -import { KratosSdk } from "kratos/sdk" -import { getUrlForFlow, isQuerySet, KratosFlow } from "kratos/helpers" +import { KratosSdk } from "@/kratos/sdk" +import { getUrlForFlow, isQuerySet, KratosFlow } from "@/kratos/helpers" import { AxiosError } from "axios" export type KratosFlowData = { diff --git a/src/modules/default/styles/index.css b/src/modules/default/styles/index.css deleted file mode 100644 index 99ec6ba6..00000000 --- a/src/modules/default/styles/index.css +++ /dev/null @@ -1,3 +0,0 @@ -@import "./colors"; - -@import "../../../styles"; diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx new file mode 100644 index 00000000..079c4264 --- /dev/null +++ b/src/pages/_app.tsx @@ -0,0 +1,7 @@ +import "@/styles/index.css" + +import type { AppProps } from "next/app" + +export default function App({ Component, pageProps }: AppProps) { + return +} diff --git a/src/pages/_document.tsx b/src/pages/_document.tsx new file mode 100644 index 00000000..c63a9e21 --- /dev/null +++ b/src/pages/_document.tsx @@ -0,0 +1,19 @@ +import { Html, Head, Main, NextScript } from "next/document" +import Script from "next/script" + +export default function Document() { + return ( + + + + + + - - - - -
-
Loading...
-
- - - - - diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index c9e1840c..00000000 --- a/webpack.config.js +++ /dev/null @@ -1,106 +0,0 @@ -const path = require("path") -const fs = require("fs") -const webpack = require("webpack") - -const MiniCssExtractPlugin = require("mini-css-extract-plugin") - -const customModules = process.env.CUSTOM_MODULES - -if (!customModules) { - throw new Error("ENV variable CUSTOM_MODULES must be set") -} - -const config = (env) => ({ - devtool: env.dev ? "inline-source-map" : false, - resolve: { - modules: [ - path.resolve("./src/modules/" + customModules), - path.resolve("./src"), - "node_modules", - ], - extensions: [".ts", ".tsx", ".js", ".json"], - fallback: { - buffer: require.resolve("buffer/"), - events: require.resolve("events/"), - stream: require.resolve("stream-browserify"), - url: require.resolve("url"), - }, - }, - entry: { - main: ["./src/renderers/dom.tsx"], - }, - output: { - path: path.resolve("public", "bundles"), - filename: env.dev ? "[name].js" : "[name].[chunkhash].js", - }, - module: { - rules: [ - { - test: /\.tsx?$/, - exclude: /node_modules/, - use: { - loader: "ts-loader", - options: { configFile: "tsconfig.fe.json" }, - }, - }, - { - test: /\.css$/, - exclude: /node_modules/, - use: [ - MiniCssExtractPlugin.loader, - { - loader: "css-loader?url=false", - options: { - importLoaders: 1, - }, - }, - { - loader: "postcss-loader", - }, - ], - }, - ], - }, - optimization: { - splitChunks: { - cacheGroups: { - commons: { - test: /[\\/]node_modules[\\/]/, - name: "vendor", - chunks: "all", - }, - }, - }, - }, - plugins: [ - new webpack.ProvidePlugin({ Buffer: ["buffer", "Buffer"] }), - new webpack.DefinePlugin({ - "process.env.NODE_ENV": JSON.stringify(env.dev ? "development" : "production"), - }), - - new MiniCssExtractPlugin({ - filename: env.dev ? "[name].css" : "[name].[fullhash].css", - chunkFilename: env.dev ? "[id].css" : "[id].[fullhash].css", - }), - function (compiler) { - compiler.hooks.done.tap("gvars", (stats) => { - let gVars = {} - try { - gVars = require("./.gvars.json") - } catch (err) { - // do nothing - } - fs.writeFileSync( - path.resolve(".gvars.json"), - JSON.stringify( - Object.assign({}, gVars, stats.toJson()["assetsByChunkName"]), - null, - 2, - ), - ) - }) - }, - ], -}) - -module.exports = config diff --git a/yarn.lock b/yarn.lock index b25083fc..b41971b1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -804,7 +804,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.9" -"@babel/runtime@^7.0.0": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.20.7": version "7.20.13" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b" integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA== @@ -1760,71 +1760,153 @@ resolved "https://registry.yarnpkg.com/@next/env/-/env-12.3.0.tgz#85f971fdc668cc312342761057c59cb8ab1abadf" integrity sha512-PTJpjAFVbzBQ9xXpzMTroShvD5YDIIy46jQ7d4LrWpY+/5a8H90Tm8hE3Hvkc5RBRspVo7kvEOnqQms0A+2Q6w== +"@next/env@13.1.5": + version "13.1.5" + resolved "https://registry.yarnpkg.com/@next/env/-/env-13.1.5.tgz#72b24d3726a6b752be6b7b9a937f7af31b3ce410" + integrity sha512-0Ry4NhJy6qLbXhvxPRUQ1H6RzgtryGdUto7hfgAK0Iw/bScgeVjwLZdfhm2iT7qsOS32apo9cWzLCxjc6iGPsA== + +"@next/eslint-plugin-next@13.1.5": + version "13.1.5" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-13.1.5.tgz#3eebea0835d2ec549a7b4b8976bf1d7796cca632" + integrity sha512-3kvLTX35bOWOCKU8KY74Ygczc55Qk/kB2TQy0tH7Rti6hzZ6Aij7WQ8zHdIVjmnlD0n/zXWXrIf5y56RKcLQkQ== + dependencies: + glob "7.1.7" + +"@next/font@13.1.5": + version "13.1.5" + resolved "https://registry.yarnpkg.com/@next/font/-/font-13.1.5.tgz#9e47e5986173ffab2c3300ac1c63bc39887dfe64" + integrity sha512-6M5R6yC3JkdJiqo/YJxDp6+0vDn0smXOAzl8uHt4qmDS2u53ji/19K0HM51d+5kg8xntDi+N2hw7YjaU9inkNA== + "@next/swc-android-arm-eabi@12.3.0": version "12.3.0" resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.3.0.tgz#9a934904643591cb6f66eb09803a92d2b10ada13" integrity sha512-/PuirPnAKsYBw93w/7Q9hqy+KGOU9mjYprZ/faxMUJh/dc6v3rYLxkZKNG9nFPIW4QKNTCnhP40xF9hLnxO+xg== +"@next/swc-android-arm-eabi@13.1.5": + version "13.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.1.5.tgz#0ea6f76754562ab8092efe7e492906790261b7cb" + integrity sha512-QAEf3YM9U0qWVQTxgF3Tsh4OeCN1i9Smsf6cVlwZsPzoLyj2nQ879joCoN+ONqDknkBgG6OG/ajefywL3jw9Cg== + "@next/swc-android-arm64@12.3.0": version "12.3.0" resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.3.0.tgz#c1e3e24d0625efe88f45a2135c8f5c4dff594749" integrity sha512-OaI+FhAM6P9B6Ybwbn0Zl8YwWido0lLwhDBi9WiYCh4RQmIXAyVIoIJPHo4fP05+mXaJ/k1trvDvuURvHOq2qw== +"@next/swc-android-arm64@13.1.5": + version "13.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-13.1.5.tgz#8d4a91d77811c6c7057a41f4f32ecee1ac963981" + integrity sha512-ZmtGPTghRuT5YKL0nNcC2bBVSiG1O0is16eIZ2rWSP/hRW64ZCcAew6pxw2rihntNp22UfequjSTHd91WE/tyQ== + "@next/swc-darwin-arm64@12.3.0": version "12.3.0" resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.3.0.tgz#37a9f971b9ad620184af69f38243a36757126fb9" integrity sha512-9s4d3Mhii+WFce8o8Jok7WC3Bawkr9wEUU++SJRptjU1L5tsfYJMrSYCACHLhZujziNDLyExe4Hwwsccps1sfg== +"@next/swc-darwin-arm64@13.1.5": + version "13.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.1.5.tgz#3f206d22201c6500acce3a9274a807fb07878565" + integrity sha512-aeFXK+M/zmG/CNdMJ0tGNs0MWcLueUe7vZ2V6fa+2yz/ZgYJLI7fEfFvVh1p1yBMzupSbZDowvMuCSFTaeg3MA== + "@next/swc-darwin-x64@12.3.0": version "12.3.0" resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.3.0.tgz#fb017f1066c8cf2b8da49ef3588c8731d8bf1bf3" integrity sha512-2scC4MqUTwGwok+wpVxP+zWp7WcCAVOtutki2E1n99rBOTnUOX6qXkgxSy083yBN6GqwuC/dzHeN7hIKjavfRA== +"@next/swc-darwin-x64@13.1.5": + version "13.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.1.5.tgz#3b0775ed190a6b35cd0ba61510dcd133dcb8c4bf" + integrity sha512-6mPX0GNRg8NzjV70at8I8pD9YBnPHDpxJCoMuIqysdTjtQhd09Xk6GUhquNhp1kEJzzVk7OW5l2ch4XIJjtY3A== + "@next/swc-freebsd-x64@12.3.0": version "12.3.0" resolved "https://registry.yarnpkg.com/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.3.0.tgz#e7955b016f41e0f95088e3459ff4197027871fbf" integrity sha512-xAlruUREij/bFa+qsE1tmsP28t7vz02N4ZDHt2lh3uJUniE0Ne9idyIDLc1Ed0IF2RjfgOp4ZVunuS3OM0sngw== +"@next/swc-freebsd-x64@13.1.5": + version "13.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-freebsd-x64/-/swc-freebsd-x64-13.1.5.tgz#a9f2b39434b52867860afbd32638f9742c45c82a" + integrity sha512-nR4a/SNblG0w8hhYRflTZjk4yD99ld18w/FCftw99ziw8sgciBlOXRICJIiRIaMRU8UH7QLSgBOQVnfNcVNKMA== + "@next/swc-linux-arm-gnueabihf@12.3.0": version "12.3.0" resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.3.0.tgz#d2233267bffaa24378245b328f2f8a01a37eab29" integrity sha512-jin2S4VT/cugc2dSZEUIabhYDJNgrUh7fufbdsaAezgcQzqfdfJqfxl4E9GuafzB4cbRPTaqA0V5uqbp0IyGkQ== +"@next/swc-linux-arm-gnueabihf@13.1.5": + version "13.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-13.1.5.tgz#4ae5dcdea5aa5cb6b9ce14bbf86e3afe7dc3df1a" + integrity sha512-EzkltCVKg3gUzamoeKPhGeSgXTTLAhSzc7v/+g1Y+HQa7JKMrlzdRkrJf+H4LJXcz7lnxgNKHGRyZBSXnmJKJw== + "@next/swc-linux-arm64-gnu@12.3.0": version "12.3.0" resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.3.0.tgz#149a0cb877352ab63e81cf1dd53b37f382929d2a" integrity sha512-RqJHDKe0WImeUrdR0kayTkRWgp4vD/MS7g0r6Xuf8+ellOFH7JAAJffDW3ayuVZeMYOa7RvgNFcOoWnrTUl9Nw== +"@next/swc-linux-arm64-gnu@13.1.5": + version "13.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.1.5.tgz#92d816a430390642aa1ce1969a255b6a0b2d9833" + integrity sha512-E7HMkdoxStmTUJU4KzBUU4vZ5DHT4Gd327tC3KFZS5lda0NRerJAOCfsRg+fBj22FvCb1UWsX6XI+weL6xhyeQ== + "@next/swc-linux-arm64-musl@12.3.0": version "12.3.0" resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.3.0.tgz#73ec7f121f56fd7cf99cf2b00cf41f62c4560e90" integrity sha512-nvNWoUieMjvDjpYJ/4SQe9lQs2xMj6ZRs8N+bmTrVu9leY2Fg3WD6W9p/1uU9hGO8u+OdF13wc4iRShu/WYIHg== +"@next/swc-linux-arm64-musl@13.1.5": + version "13.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.1.5.tgz#b44ba6866802ee0f6d655e7184b7c2f29485219f" + integrity sha512-qlO0Fd3GQwJS6YpbF9NyL5NGHVZ43dKtZDC/jP4vdeMIYDtSu13HcY/nmA1NdW+RpMwDxSCpx4WKsCCEZGIX8Q== + "@next/swc-linux-x64-gnu@12.3.0": version "12.3.0" resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.3.0.tgz#6812e52ef21bfd091810f271dd61da11d82b66b9" integrity sha512-4ajhIuVU9PeQCMMhdDgZTLrHmjbOUFuIyg6J19hZqwEwDTSqQyrSLkbJs2Nd7IRiM6Ul/XyrtEFCpk4k+xD2+w== +"@next/swc-linux-x64-gnu@13.1.5": + version "13.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.1.5.tgz#f70afe2654d8ca6e488964ed0ebef11f38d56675" + integrity sha512-GftSBFAay2nocGl+KNqFsj6EVSvomaM/bp86hzezbKsTwQmu76PjOCVcejI1gE+4k7f5zPDgCuorF6F04BV0HQ== + "@next/swc-linux-x64-musl@12.3.0": version "12.3.0" resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.3.0.tgz#c9e7ffb6d44da330961c1ce651c5b03a1becfe22" integrity sha512-U092RBYbaGxoMAwpauePJEu2PuZSEoUCGJBvsptQr2/2XIMwAJDYM4c/M5NfYEsBr+yjvsYNsOpYfeQ88D82Yg== +"@next/swc-linux-x64-musl@13.1.5": + version "13.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.1.5.tgz#6e4aa45a6ee1cea7e6c3295dfde69250afd4c714" + integrity sha512-UD+3lxU4yuAjd+uBkCDfBpAcbGAVfEcE8mX/efIxUGIImmzN0QzgTHYEpKFnY3Lxu02dIBcwQRT3Q5mfO4obng== + "@next/swc-win32-arm64-msvc@12.3.0": version "12.3.0" resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.3.0.tgz#e0d9d26297f52b0d3b3c2f5138ddcce30601bc98" integrity sha512-pzSzaxjDEJe67bUok9Nxf9rykbJfHXW0owICFsPBsqHyc+cr8vpF7g9e2APTCddtVhvjkga9ILoZJ9NxWS7Yiw== +"@next/swc-win32-arm64-msvc@13.1.5": + version "13.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.1.5.tgz#1ef6d453b021b26ed2d0e317c1cb658eb57d66c2" + integrity sha512-uzsvkQY+K3EbL+97IUHPWZPwjsCmCkdH/O5Cf9wCnh0k0gaj7ob1mGKqr1vNNak+9U7HloGwuHcXnZpijWSP7w== + "@next/swc-win32-ia32-msvc@12.3.0": version "12.3.0" resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.3.0.tgz#37daeac1acc68537b8e76cd81fde96dce11f78b4" integrity sha512-MQGUpMbYhQmTZ06a9e0hPQJnxFMwETo2WtyAotY3GEzbNCQVbCGhsvqEKcl+ZEHgShlHXUWvSffq1ZscY6gK7A== +"@next/swc-win32-ia32-msvc@13.1.5": + version "13.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.1.5.tgz#a708ed168a5d83b28519b4fcba396ab329c1a2b0" + integrity sha512-v0NaC1w8mPf620GlJaHBdEm3dm4G4AEQMasDqjzQvo0yCRrvtvzMgCIe8MocBxFHzaF6868NybMqvumxP5YxEg== + "@next/swc-win32-x64-msvc@12.3.0": version "12.3.0" resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.3.0.tgz#c1b983316307f8f55fee491942b5d244bd2036e2" integrity sha512-C/nw6OgQpEULWqs+wgMHXGvlJLguPRFFGqR2TAqWBerQ8J+Sg3z1ZTqwelkSi4FoqStGuZ2UdFHIDN1ySmR1xA== +"@next/swc-win32-x64-msvc@13.1.5": + version "13.1.5" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.1.5.tgz#8c7bef3dc41e624050eecb336cbd944a91fa7198" + integrity sha512-IZHwvd649ccbWyLCfu92IXEpR250NpmBkaRelPV+WVm4jrd62FKRFCNdqdCXq6TrEg9wN8cK4YG8tm44uEZqLA== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -2010,11 +2092,28 @@ tslib "^2.4.1" webcrypto-core "^1.7.4" +"@pkgr/utils@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.3.1.tgz#0a9b06ffddee364d6642b3cd562ca76f55b34a03" + integrity sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw== + dependencies: + cross-spawn "^7.0.3" + is-glob "^4.0.3" + open "^8.4.0" + picocolors "^1.0.0" + tiny-glob "^0.2.9" + tslib "^2.4.0" + "@repeaterjs/repeater@3.0.4": version "3.0.4" resolved "https://registry.yarnpkg.com/@repeaterjs/repeater/-/repeater-3.0.4.tgz#a04d63f4d1bf5540a41b01a921c9a7fddc3bd1ca" integrity sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA== +"@rushstack/eslint-patch@^1.1.3": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz#8be36a1f66f3265389e90b5f9c9962146758f728" + integrity sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg== + "@sinclair/typebox@^0.24.1": version "0.24.20" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.20.tgz#11a657875de6008622d53f56e063a6347c51a6dd" @@ -2041,6 +2140,13 @@ dependencies: tslib "^2.4.0" +"@swc/helpers@0.4.14": + version "0.4.14" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.14.tgz#1352ac6d95e3617ccb7c1498ff019654f1e12a74" + integrity sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw== + dependencies: + tslib "^2.4.0" + "@testing-library/dom@^8.5.0": version "8.17.1" resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.17.1.tgz#2d7af4ff6dad8d837630fecd08835aee08320ad7" @@ -2374,6 +2480,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.18.tgz#1d3ca764718915584fcd9f6344621b7672665c67" integrity sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ== +"@types/node@18.11.18": + version "18.11.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" + integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== + "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" @@ -2540,6 +2651,16 @@ semver "^7.3.7" tsutils "^3.21.0" +"@typescript-eslint/parser@^5.42.0": + version "5.49.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.49.0.tgz#d699734b2f20e16351e117417d34a2bc9d7c4b90" + integrity sha512-veDlZN9mUhGqU31Qiv2qEp+XrJj5fgZpJ8PW30sHU+j/8/e5ruAhLaVDAeznS7A7i4ucb/s8IozpDtt9NqCkZg== + dependencies: + "@typescript-eslint/scope-manager" "5.49.0" + "@typescript-eslint/types" "5.49.0" + "@typescript-eslint/typescript-estree" "5.49.0" + debug "^4.3.4" + "@typescript-eslint/parser@^5.48.2": version "5.48.2" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.48.2.tgz#c9edef2a0922d26a37dba03be20c5fff378313b3" @@ -2558,6 +2679,14 @@ "@typescript-eslint/types" "5.48.2" "@typescript-eslint/visitor-keys" "5.48.2" +"@typescript-eslint/scope-manager@5.49.0": + version "5.49.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.49.0.tgz#81b5d899cdae446c26ddf18bd47a2f5484a8af3e" + integrity sha512-clpROBOiMIzpbWNxCe1xDK14uPZh35u4QaZO1GddilEzoCLAEz4szb51rBpdgurs5k2YzPtJeTEN3qVbG+LRUQ== + dependencies: + "@typescript-eslint/types" "5.49.0" + "@typescript-eslint/visitor-keys" "5.49.0" + "@typescript-eslint/type-utils@5.48.2": version "5.48.2" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz#7d3aeca9fa37a7ab7e3d9056a99b42f342c48ad7" @@ -2573,6 +2702,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.48.2.tgz#635706abb1ec164137f92148f06f794438c97b8e" integrity sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA== +"@typescript-eslint/types@5.49.0": + version "5.49.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.49.0.tgz#ad66766cb36ca1c89fcb6ac8b87ec2e6dac435c3" + integrity sha512-7If46kusG+sSnEpu0yOz2xFv5nRz158nzEXnJFCGVEHWnuzolXKwrH5Bsf9zsNlOQkyZuk0BZKKoJQI+1JPBBg== + "@typescript-eslint/typescript-estree@5.48.2": version "5.48.2" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz#6e206b462942b32383582a6c9251c05021cc21b0" @@ -2586,6 +2720,19 @@ semver "^7.3.7" tsutils "^3.21.0" +"@typescript-eslint/typescript-estree@5.49.0": + version "5.49.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.49.0.tgz#ebd6294c0ea97891fce6af536048181e23d729c8" + integrity sha512-PBdx+V7deZT/3GjNYPVQv1Nc0U46dAHbIuOG8AZ3on3vuEKiPDwFE/lG1snN2eUB9IhF7EyF7K1hmTcLztNIsA== + dependencies: + "@typescript-eslint/types" "5.49.0" + "@typescript-eslint/visitor-keys" "5.49.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + "@typescript-eslint/utils@5.48.2": version "5.48.2" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.48.2.tgz#3777a91dcb22b8499a25519e06eef2e9569295a3" @@ -2608,6 +2755,14 @@ "@typescript-eslint/types" "5.48.2" eslint-visitor-keys "^3.3.0" +"@typescript-eslint/visitor-keys@5.49.0": + version "5.49.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.49.0.tgz#2561c4da3f235f5c852759bf6c5faec7524f90fe" + integrity sha512-v9jBMjpNWyn8B6k/Mjt6VbUS4J1GvUlR4x3Y+ibnP1z7y7V4n0WRz+50DY6+Myj0UaXVSuUlHohO+eZ8IJEnkg== + dependencies: + "@typescript-eslint/types" "5.49.0" + eslint-visitor-keys "^3.3.0" + "@webassemblyjs/ast@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" @@ -2990,6 +3145,13 @@ aria-query@^5.0.0: resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.0.2.tgz#0b8a744295271861e1d933f8feca13f9b70cfdc1" integrity sha512-eigU3vhqSO+Z8BKDnVLN/ompjhf3pYzecKXz8+whRy+9gZu8n1TCGfwzQUUPnqdHl9ax1Hr9031orZ+UOEYr7Q== +aria-query@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" + integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== + dependencies: + deep-equal "^2.0.5" + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -3079,6 +3241,11 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== +ast-types-flow@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== + astral-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" @@ -3147,6 +3314,11 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== +axe-core@^4.6.2: + version "4.6.3" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece" + integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg== + axios@^0.21.4: version "0.21.4" resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" @@ -3171,6 +3343,13 @@ axios@^1.2.3: form-data "^4.0.0" proxy-from-env "^1.1.0" +axobject-query@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" + integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg== + dependencies: + deep-equal "^2.0.5" + babel-jest@^29.3.1: version "29.3.1" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.3.1.tgz#05c83e0d128cd48c453eea851482a38782249f44" @@ -3638,6 +3817,11 @@ caniuse-lite@^1.0.30001400: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001409.tgz#6135da9dcab34cd9761d9cdb12a68e6740c5e96e" integrity sha512-V0mnJ5dwarmhYv8/MzhJ//aW68UpvnQBXv8lJ2QUsvn2pHcmAuNtu8hQEDz37XnA1iE+lRR9CIfGWWpgJ5QedQ== +caniuse-lite@^1.0.30001406: + version "1.0.30001448" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001448.tgz#ca7550b1587c92a392a2b377cd9c508b3b4395bf" + integrity sha512-tq2YI+MJnooG96XpbTRYkBxLxklZPOdLmNIOdIhvf7SNJan6u5vCKum8iT7ZfCt70m1GPkuC7P3TtX6UuhupuA== + caniuse-lite@^1.0.30001426: version "1.0.30001446" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001446.tgz#6d4ba828ab19f49f9bcd14a8430d30feebf1e0c5" @@ -3810,6 +3994,11 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +client-only@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" + integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== + cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -4209,6 +4398,11 @@ csstype@^3.0.2: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== +damerau-levenshtein@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" + integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -4278,6 +4472,29 @@ dedent@^0.7.0: resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= +deep-equal@^2.0.5: + version "2.2.0" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.0.tgz#5caeace9c781028b9ff459f33b779346637c43e6" + integrity sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw== + dependencies: + call-bind "^1.0.2" + es-get-iterator "^1.1.2" + get-intrinsic "^1.1.3" + is-arguments "^1.1.1" + is-array-buffer "^3.0.1" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" @@ -4295,6 +4512,11 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + define-properties@^1.1.3, define-properties@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" @@ -4474,6 +4696,11 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -4587,6 +4814,21 @@ es-abstract@^1.20.4: unbox-primitive "^1.0.2" which-typed-array "^1.1.9" +es-get-iterator@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + es-module-lexer@^0.9.0: version "0.9.3" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" @@ -4654,7 +4896,22 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-import-resolver-node@^0.3.7: +eslint-config-next@13.1.5: + version "13.1.5" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-13.1.5.tgz#38daeaa1463197ef5b6cec9136ce6838ea776cf3" + integrity sha512-7FqkjkvGCQfvYUiPTFRiRYPR1uI6Ew+4f4mVp16lLSWcaChtWoZxQCZHM5n0yxzKKVmuEg1aM4uvDQfSXSjTww== + dependencies: + "@next/eslint-plugin-next" "13.1.5" + "@rushstack/eslint-patch" "^1.1.3" + "@typescript-eslint/parser" "^5.42.0" + eslint-import-resolver-node "^0.3.6" + eslint-import-resolver-typescript "^3.5.2" + eslint-plugin-import "^2.26.0" + eslint-plugin-jsx-a11y "^6.5.1" + eslint-plugin-react "^7.31.7" + eslint-plugin-react-hooks "^4.5.0" + +eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.7: version "0.3.7" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== @@ -4663,6 +4920,19 @@ eslint-import-resolver-node@^0.3.7: is-core-module "^2.11.0" resolve "^1.22.1" +eslint-import-resolver-typescript@^3.5.2: + version "3.5.3" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.3.tgz#db5ed9e906651b7a59dd84870aaef0e78c663a05" + integrity sha512-njRcKYBc3isE42LaTcJNVANR3R99H9bAxBDMNDr2W7yq5gYPxbU3MkdhsQukxZ/Xg9C2vcyLlDsbKfRDg0QvCQ== + dependencies: + debug "^4.3.4" + enhanced-resolve "^5.10.0" + get-tsconfig "^4.2.0" + globby "^13.1.2" + is-core-module "^2.10.0" + is-glob "^4.0.3" + synckit "^0.8.4" + eslint-module-utils@^2.7.4: version "2.7.4" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" @@ -4670,7 +4940,7 @@ eslint-module-utils@^2.7.4: dependencies: debug "^3.2.7" -eslint-plugin-import@^2.27.5: +eslint-plugin-import@^2.26.0: version "2.27.5" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== @@ -4691,12 +4961,39 @@ eslint-plugin-import@^2.27.5: semver "^6.3.0" tsconfig-paths "^3.14.1" -eslint-plugin-react-hooks@^4.6.0: +eslint-plugin-jsx-a11y@^6.5.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976" + integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA== + dependencies: + "@babel/runtime" "^7.20.7" + aria-query "^5.1.3" + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" + ast-types-flow "^0.0.7" + axe-core "^4.6.2" + axobject-query "^3.1.1" + damerau-levenshtein "^1.0.8" + emoji-regex "^9.2.2" + has "^1.0.3" + jsx-ast-utils "^3.3.3" + language-tags "=1.0.5" + minimatch "^3.1.2" + object.entries "^1.1.6" + object.fromentries "^2.0.6" + semver "^6.3.0" + +eslint-plugin-next@^0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-next/-/eslint-plugin-next-0.0.0.tgz#f9ef680e8f68763c716ab44697c4b3cc3e0b2069" + integrity sha512-IldNDVb6WNduggwRbYzSGZhaskUwVecJ6fhmqwX01+S1aohwAWNzU4me6y47DDzpD/g0fdayNBGxEdt9vKkUtg== + +eslint-plugin-react-hooks@^4.5.0, eslint-plugin-react-hooks@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== -eslint-plugin-react@^7.32.1: +eslint-plugin-react@^7.31.7, eslint-plugin-react@^7.32.1: version "7.32.1" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.1.tgz#88cdeb4065da8ca0b64e1274404f53a0f9890200" integrity sha512-vOjdgyd0ZHBXNsmvU+785xY8Bfe57EFbTYYk8XrROzWpr9QBvpjITvAXt9xqcE6+8cjR/g1+mfumPToxsl1www== @@ -5292,6 +5589,11 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" +get-tsconfig@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.3.0.tgz#4c26fae115d1050e836aea65d6fe56b507ee249b" + integrity sha512-YCcF28IqSay3fqpIu5y3Krg/utCBHBeoflkZyHj/QcqI2nrLPC3ZegS9CmIo+hJb8K7aiGsuUl7PwWVjNG2HQQ== + getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" @@ -5318,6 +5620,18 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== +glob@7.1.7: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^7.0.5, glob@^7.1.4, glob@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" @@ -5361,6 +5675,11 @@ globalthis@^1.0.3: dependencies: define-properties "^1.1.3" +globalyzer@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/globalyzer/-/globalyzer-0.1.0.tgz#cb76da79555669a1519d5a8edf093afaa0bf1465" + integrity sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q== + globby@^11.0.3, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" @@ -5373,6 +5692,22 @@ globby@^11.0.3, globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" +globby@^13.1.2: + version "13.1.3" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.3.tgz#f62baf5720bcb2c1330c8d4ef222ee12318563ff" + integrity sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.2.11" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^4.0.0" + +globrex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" + integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== + gopd@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" @@ -5796,6 +6131,14 @@ is-absolute@^1.0.0: is-relative "^1.0.0" is-windows "^1.0.1" +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + is-array-buffer@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz#deb1db4fcae48308d54ef2442706c0393997052a" @@ -5842,7 +6185,7 @@ is-callable@^1.1.4, is-callable@^1.2.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.6.tgz#fd6170b0b8c7e2cc73de342ef8284a2202023c44" integrity sha512-krO72EO2NptOGAX2KYyqbP9vYMlNAXdB53rq6f8LXY6RY7JdSR/3BD6wLUlPHSAesmY9vstNrjvqGaCiRK/91Q== -is-core-module@^2.11.0: +is-core-module@^2.10.0, is-core-module@^2.11.0: version "2.11.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== @@ -5863,13 +6206,18 @@ is-core-module@^2.9.0: dependencies: has "^1.0.3" -is-date-object@^1.0.1: +is-date-object@^1.0.1, is-date-object@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: has-tostringtag "^1.0.0" +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -5904,6 +6252,11 @@ is-lower-case@^2.0.2: dependencies: tslib "^2.0.3" +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" @@ -5953,6 +6306,11 @@ is-relative@^1.0.0: dependencies: is-unc-path "^1.0.0" +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" @@ -6019,6 +6377,11 @@ is-url@^1.2.4: resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -6026,16 +6389,36 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + is-windows@^1.0.0, is-windows@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -6747,7 +7130,7 @@ jsprim@^1.2.2: json-schema "0.4.0" verror "1.10.0" -"jsx-ast-utils@^2.4.1 || ^3.0.0": +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== @@ -6794,6 +7177,18 @@ klona@^2.0.5: resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== +language-subtag-registry@~0.3.2: + version "0.3.22" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" + integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== + +language-tags@=1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" + integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== + dependencies: + language-subtag-registry "~0.3.2" + leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -7177,6 +7572,31 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== +next@13.1.5: + version "13.1.5" + resolved "https://registry.yarnpkg.com/next/-/next-13.1.5.tgz#d0c230ccecf18414db78d180537d0474c53fdf73" + integrity sha512-rmpYZFCxxWAi2nJCT9sSqMLGC3cu+Pf689hx9clcyP0KbVIhh/7Dus5QcKrVd/PrAd6AjsuogSRR1mCP7BoYRw== + dependencies: + "@next/env" "13.1.5" + "@swc/helpers" "0.4.14" + caniuse-lite "^1.0.30001406" + postcss "8.4.14" + styled-jsx "5.1.1" + optionalDependencies: + "@next/swc-android-arm-eabi" "13.1.5" + "@next/swc-android-arm64" "13.1.5" + "@next/swc-darwin-arm64" "13.1.5" + "@next/swc-darwin-x64" "13.1.5" + "@next/swc-freebsd-x64" "13.1.5" + "@next/swc-linux-arm-gnueabihf" "13.1.5" + "@next/swc-linux-arm64-gnu" "13.1.5" + "@next/swc-linux-arm64-musl" "13.1.5" + "@next/swc-linux-x64-gnu" "13.1.5" + "@next/swc-linux-x64-musl" "13.1.5" + "@next/swc-win32-arm64-msvc" "13.1.5" + "@next/swc-win32-ia32-msvc" "13.1.5" + "@next/swc-win32-x64-msvc" "13.1.5" + next@>=12.0.10: version "12.3.0" resolved "https://registry.yarnpkg.com/next/-/next-12.3.0.tgz#0e4c1ed0092544c7e8f4c998ca57cf6529e286cb" @@ -7327,6 +7747,14 @@ object-inspect@^1.12.2, object-inspect@^1.9.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" @@ -7410,6 +7838,15 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" +open@^8.4.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" + integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + opentracing@^0.14.4: version "0.14.7" resolved "https://registry.yarnpkg.com/opentracing/-/opentracing-0.14.7.tgz#25d472bd0296dc0b64d7b94cbc995219031428f5" @@ -8924,6 +9361,11 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + slice-ansi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" @@ -9034,6 +9476,13 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + stream-browserify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" @@ -9215,6 +9664,13 @@ styled-jsx@5.0.6: resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.6.tgz#fa684790a9cc3badded14badea163418fe568f77" integrity sha512-xOeROtkK5MGMDimBQ3J6iPId8q0t/BDoG5XN6oKkZClVz9ISF/hihN8OCn2LggMU6N32aXnrXBdn3auSqNS9fA== +styled-jsx@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" + integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw== + dependencies: + client-only "0.0.1" + subscriptions-transport-ws@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.11.0.tgz#baf88f050cba51d52afe781de5e81b3c31f89883" @@ -9315,6 +9771,14 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== +synckit@^0.8.4: + version "0.8.4" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.4.tgz#0e6b392b73fafdafcde56692e3352500261d64ec" + integrity sha512-Dn2ZkzMdSX827QbowGbU/4yjWuvNaCoScLLoMo/yKbu+P4GBR6cRGKZH27k6a9bRzdqcyd1DE96pQtQ6uNkmyw== + dependencies: + "@pkgr/utils" "^2.3.1" + tslib "^2.4.0" + tapable@^2.1.1, tapable@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" @@ -9387,6 +9851,14 @@ through@^2.3.6, through@^2.3.8: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== +tiny-glob@^0.2.9: + version "0.2.9" + resolved "https://registry.yarnpkg.com/tiny-glob/-/tiny-glob-0.2.9.tgz#2212d441ac17928033b110f8b3640683129d31e2" + integrity sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg== + dependencies: + globalyzer "0.1.0" + globrex "^0.1.2" + tiny-secp256k1@^1.1.1, tiny-secp256k1@^1.1.3: version "1.1.6" resolved "https://registry.yarnpkg.com/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz#7e224d2bee8ab8283f284e40e6b4acb74ffe047c" @@ -10033,6 +10505,16 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"