diff --git a/apps/app/.eslintrc.js b/apps/app/.eslintrc.js
index f505dbdf77..980e716038 100644
--- a/apps/app/.eslintrc.js
+++ b/apps/app/.eslintrc.js
@@ -1,4 +1,3 @@
-/* eslint-disable import/no-unused-modules */
module.exports = {
plugins: ['i18next'],
extends: ['@weareinreach/eslint-config/next'],
diff --git a/apps/app/instrumentation.node.ts b/apps/app/instrumentation.node.ts
index a10affbcdb..23d1e72495 100644
--- a/apps/app/instrumentation.node.ts
+++ b/apps/app/instrumentation.node.ts
@@ -1,4 +1,3 @@
-/* eslint-disable turbo/no-undeclared-env-vars */
/* eslint-disable node/no-process-env */
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http'
import { Resource } from '@opentelemetry/resources'
diff --git a/apps/app/next-i18next.config.mjs b/apps/app/next-i18next.config.mjs
index 46b35fb1d2..f23f105000 100644
--- a/apps/app/next-i18next.config.mjs
+++ b/apps/app/next-i18next.config.mjs
@@ -1,4 +1,3 @@
-/* eslint-disable turbo/no-undeclared-env-vars */
/* eslint-disable node/no-process-env */
// @ts-check
import LanguageDetector from 'i18next-browser-languagedetector'
@@ -10,20 +9,9 @@ import MultiBackend from 'i18next-multiload-backend-adapter'
import path from 'path'
-export const namespaces = [
- 'attribute',
- 'common',
- 'country',
- 'gov-dist',
- // 'org-data',
- // 'org-description',
- // 'org-service',
- 'phone-type',
- 'services',
- 'user',
-]
const isBrowser = typeof window !== 'undefined'
-
+const isDev = process.env.NODE_ENV !== 'production'
+const isVerbose = !!process.env.NEXT_VERBOSE
// const Keys = z.record(z.string())
/**
@@ -60,8 +48,8 @@ const config = {
defaultNS: 'common',
localePath: path.resolve('./public/locales'),
fallbackLng: ['en'],
- reloadOnPrerender: process.env.NODE_ENV !== 'production',
- debug: process.env.NODE_ENV !== 'production' && isBrowser && !!process.env.NEXT_VERBOSE,
+ reloadOnPrerender: isDev,
+ debug: isDev && isBrowser && isVerbose,
partialBundledLanguages: true,
nonExplicitSupportedLngs: true,
cleanCode: true,
@@ -91,7 +79,7 @@ const config = {
interpolation: {
skipOnVariables: false,
alwaysFormat: true,
- format: (value, format, lng, edit) => {
+ format: (value, format) => {
switch (format) {
case 'lowercase': {
if (typeof value === 'string') return value.toLowerCase()
diff --git a/apps/app/next.config.mjs b/apps/app/next.config.mjs
index 70831bb3c3..e680c6cec9 100644
--- a/apps/app/next.config.mjs
+++ b/apps/app/next.config.mjs
@@ -3,7 +3,8 @@
import bundleAnalyze from '@next/bundle-analyzer'
import { PrismaPlugin } from '@prisma/nextjs-monorepo-workaround-plugin'
import { withSentryConfig } from '@sentry/nextjs'
-import withRoutes from 'nextjs-routes/config'
+import routes from 'nextjs-routes/config'
+import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'
import path from 'path'
import { fileURLToPath } from 'url'
@@ -14,18 +15,28 @@ const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)
const isVercelActiveDev = process.env.VERCEL_ENV === 'preview' && process.env.VERCEL_GIT_COMMIT_REF !== 'dev'
+const isVercelProd = process.env.VERCEL_ENV === 'production'
const isLocalDev =
process.env.NODE_ENV === 'development' && !['preview', 'production'].includes(process.env.VERCEL_ENV)
+const shouldAnalyze = process.env.ANALYZE === 'true'
-const withBundleAnalyzer = bundleAnalyze({ enabled: process.env.ANALYZE === 'true' })
+const withRoutes = routes({ outDir: './src/types' })
+const withBundleAnalyzer = bundleAnalyze({ enabled: shouldAnalyze, openAnalyzer: false })
/** @type {import('next').NextConfig} */
const nextConfig = {
i18n: i18nConfig.i18n,
reactStrictMode: true,
swcMinify: true,
- transpilePackages: ['@weareinreach/ui', '@weareinreach/db', '@weareinreach/auth', '@weareinreach/api'],
+ transpilePackages: [
+ '@weareinreach/api',
+ '@weareinreach/auth',
+ '@weareinreach/db',
+ '@weareinreach/env',
+ '@weareinreach/ui',
+ '@weareinreach/util',
+ ],
compiler: {
- ...(process.env.VERCEL_ENV === 'production' ? { removeConsole: { exclude: ['error'] } } : {}),
+ ...(isVercelProd ? { removeConsole: { exclude: ['error'] } } : {}),
},
experimental: {
outputFileTracingExcludes: {
@@ -35,7 +46,7 @@ const nextConfig = {
instrumentationHook: true,
},
eslint: {
- ignoreDuringBuilds: isVercelActiveDev,
+ ignoreDuringBuilds: !isVercelProd,
},
images: {
remotePatterns: [{ protocol: 'https', hostname: '**.4sqi.net' }],
@@ -43,17 +54,34 @@ const nextConfig = {
rewrites: async () => [{ source: '/search', destination: '/' }],
typescript: {
- ignoreBuildErrors: isVercelActiveDev,
+ ignoreBuildErrors: !isVercelProd,
},
webpack: (config, { isServer, webpack }) => {
if (isServer) {
config.plugins = [...config.plugins, new PrismaPlugin()]
}
- if (process.env.VERCEL_ENV === 'production') {
+ if (!isLocalDev) {
config.plugins.push(new webpack.DefinePlugin({ __SENTRY_DEBUG__: false }))
+ if (shouldAnalyze) {
+ config.plugins.push(
+ new BundleAnalyzerPlugin({ analyzerMode: 'static', generateStatsFile: true, openAnalyzer: false })
+ )
+ }
}
return config
},
+ async headers() {
+ return [
+ {
+ source: '/(.*)',
+ headers: [
+ { key: 'Access-Control-Allow-Headers', value: 'sentry-trace' },
+ { key: 'Access-Control-Allow-Headers', value: 'baggage' },
+ { key: 'Document-Policy', value: 'js-profiling' },
+ ],
+ },
+ ]
+ },
}
/**
@@ -64,7 +92,7 @@ const nextConfig = {
* @returns {T}
*/
function defineNextConfig(config) {
- return withBundleAnalyzer(withRoutes({ outDir: './src/types' })(config))
+ return withBundleAnalyzer(withRoutes(config))
}
/**
* Wraps NextJS config with the Sentry config.
@@ -102,7 +130,7 @@ const defineSentryConfig = (nextConfig) =>
hideSourceMaps: false,
// Automatically tree-shake Sentry logger statements to reduce bundle size
- disableLogger: true,
+ disableLogger: isVercelProd,
}
)
diff --git a/apps/app/package.json b/apps/app/package.json
index 975064adab..45cc7d80ac 100644
--- a/apps/app/package.json
+++ b/apps/app/package.json
@@ -3,7 +3,9 @@
"version": "0.100.0",
"private": true,
"license": "GPL-3.0-only",
+ "sideEffects": false,
"scripts": {
+ "analyze": "ANALYZE=true next build",
"build": "next build",
"build:prebuild": "SKIP_ENV_VALIDATION=true tsx ./lib/prebuild.ts",
"clean:node": "rm -rf ./node_modules/ || true && rm -rf ./.next || true",
@@ -22,13 +24,11 @@
"with-env": "dotenv -e ../../.env --"
},
"dependencies": {
- "@aws-crypto/sha256-js": "5.0.0",
- "@aws-sdk/client-s3": "3.400.0",
- "@aws-sdk/signature-v4": "3.370.0",
"@crowdin/crowdin-api-client": "1.24.0",
"@crowdin/ota-client": "1.0.0",
"@emotion/react": "11.11.1",
"@emotion/server": "11.11.0",
+ "@hookform/resolvers": "3.2.0",
"@iconify/react": "4.1.1",
"@mantine/carousel": "6.0.19",
"@mantine/core": "6.0.19",
@@ -47,9 +47,6 @@
"@next/bundle-analyzer": "13.4.19",
"@opentelemetry/api": "1.4.1",
"@opentelemetry/exporter-trace-otlp-http": "0.41.2",
- "@opentelemetry/instrumentation": "0.41.2",
- "@opentelemetry/instrumentation-fetch": "0.41.2",
- "@opentelemetry/instrumentation-http": "0.41.2",
"@opentelemetry/resources": "1.15.2",
"@opentelemetry/sdk-node": "0.41.2",
"@opentelemetry/sdk-trace-base": "1.15.2",
@@ -58,6 +55,7 @@
"@prisma/instrumentation": "5.2.0",
"@sentry/nextjs": "7.64.0",
"@sentry/opentelemetry-node": "7.64.0",
+ "@sentry/profiling-node": "1.1.2",
"@tanstack/react-query": "4.33.0",
"@tanstack/react-table": "8.9.3",
"@tiptap/extension-link": "2.1.7",
@@ -76,12 +74,9 @@
"@weareinreach/env": "workspace:*",
"@weareinreach/ui": "workspace:*",
"@weareinreach/util": "workspace:*",
- "axios": "1.5.0",
"cookies-next": "2.1.2",
"core-js": "3.32.1",
"dayjs": "1.11.9",
- "deepmerge": "4.3.1",
- "duration-fns": "3.0.2",
"embla-carousel-autoplay": "7.1.0",
"embla-carousel-react": "7.1.0",
"flat": "5.0.2",
@@ -90,9 +85,7 @@
"i18next-chained-backend": "4.4.0",
"i18next-http-backend": "2.2.1",
"i18next-intervalplural-postprocessor": "3.0.0",
- "i18next-localstorage-backend": "4.1.1",
"i18next-multiload-backend-adapter": "2.2.2",
- "ioredis": "5.3.2",
"just-compact": "3.2.0",
"just-compare": "2.3.0",
"luxon": "3.4.2",
@@ -107,11 +100,13 @@
"react": "18.2.0",
"react-dom": "18.2.0",
"react-error-boundary": "4.0.11",
+ "react-hook-form": "7.45.4",
+ "react-hook-form-mantine": "2.0.0",
"react-i18next": "13.2.0",
- "tslog": "4.9.2",
"zod": "3.22.2"
},
"devDependencies": {
+ "@hookform/devtools": "4.3.1",
"@playwright/test": "1.37.1",
"@prisma/nextjs-monorepo-workaround-plugin": "5.2.0",
"@tanstack/react-query-devtools": "4.33.0",
@@ -133,14 +128,14 @@
"dotenv": "16.3.1",
"eslint": "8.48.0",
"eslint-plugin-i18next": "6.0.3",
- "i18next-resources-for-ts": "1.3.0",
"listr2": "6.6.1",
"prettier": "3.0.2",
"trpc-client-devtools-link": "0.2.1-next",
"trpc-panel": "1.3.4",
"trpc-playground": "1.0.4",
"type-fest": "4.3.1",
- "typescript": "5.2.2"
+ "typescript": "5.2.2",
+ "webpack-bundle-analyzer": "4.9.0"
},
"ct3aMetadata": {
"initVersion": "5.10.1"
diff --git a/apps/app/sentry.client.config.ts b/apps/app/sentry.client.config.ts
index 17ee0cb2d4..ce62d5fb5f 100644
--- a/apps/app/sentry.client.config.ts
+++ b/apps/app/sentry.client.config.ts
@@ -2,11 +2,20 @@
// The config you add here will be used whenever a users loads a page in their browser.
// https://docs.sentry.io/platforms/javascript/guides/nextjs/
-import * as Sentry from '@sentry/nextjs'
+import { BrowserProfilingIntegration, BrowserTracing, init, Replay } from '@sentry/nextjs'
-Sentry.init({
+// Sentry.init({
+init({
dsn: 'https://3398c2248c86498ab42fa8533e4f83f1@o1412293.ingest.sentry.io/6751163',
-
+ integrations: [
+ new Replay({
+ // Additional Replay configuration goes in here, for example:
+ maskAllText: true,
+ blockAllMedia: true,
+ }),
+ new BrowserTracing(),
+ new BrowserProfilingIntegration(),
+ ],
// Adjust this value in production, or use tracesSampler for greater control
tracesSampleRate: 1,
@@ -18,19 +27,12 @@ Sentry.init({
// This sets the sample rate to be 10%. You may want this to be 100% while
// in development and sample at a lower rate in production
replaysSessionSampleRate: 0.1,
+ profilesSampleRate: 1,
- // You can remove this option if you're not planning to use the Sentry Session Replay feature:
- integrations: [
- new Sentry.Replay({
- // Additional Replay configuration goes in here, for example:
- maskAllText: true,
- blockAllMedia: true,
- }),
- new Sentry.BrowserTracing(),
- ],
tracePropagationTargets: [
- 'https://app.inreach.org',
- 'https://*-weareinreach.vercel.app',
- 'http://localhost',
+ /^https?:\/\/app\.inreach\.org(?:\/.*)?/i,
+ /^https?:\/\/.*-weareinreach\.vercel\.app(?:\/.*)?/i,
+ /^https?:\/\/localhost(?::\d+)?(?:\/.*)?/i,
+ /^\//i,
],
})
diff --git a/apps/app/sentry.server.config.ts b/apps/app/sentry.server.config.ts
index 8ab470d526..b4bc24750a 100644
--- a/apps/app/sentry.server.config.ts
+++ b/apps/app/sentry.server.config.ts
@@ -3,14 +3,17 @@
// https://docs.sentry.io/platforms/javascript/guides/nextjs/
import * as Sentry from '@sentry/nextjs'
+import { ProfilingIntegration } from '@sentry/profiling-node'
Sentry.init({
dsn: 'https://3398c2248c86498ab42fa8533e4f83f1@o1412293.ingest.sentry.io/6751163',
// Adjust this value in production, or use tracesSampler for greater control
tracesSampleRate: 1,
+ profilesSampleRate: 1,
// Setting this option to true will print useful information to the console while you're setting up Sentry.
debug: false,
instrumenter: 'otel',
+ integrations: [new ProfilingIntegration()],
})
diff --git a/apps/app/src/pages/401.tsx b/apps/app/src/pages/401.tsx
index 77ddde81df..0671b27bb2 100644
--- a/apps/app/src/pages/401.tsx
+++ b/apps/app/src/pages/401.tsx
@@ -5,8 +5,8 @@ import { useTranslation } from 'next-i18next'
import { type Route } from 'nextjs-routes'
import { z } from 'zod'
+import { LoginBody } from '@weareinreach/ui/modals/Login'
import { getServerSideTranslations } from '~app/utils/i18n'
-import { LoginBody } from '~ui/modals/Login'
const RouteSchema = z.object({
pathname: z.string(),
@@ -30,7 +30,6 @@ const Unauthorized = () => {
spacing={32}
>
- {/* eslint-disable-next-line i18next/no-literal-string */}
🔐
{t('errors.401-title')}
diff --git a/apps/app/src/pages/api/trpc/[trpc].ts b/apps/app/src/pages/api/trpc/[trpc].ts
index fc6aac6565..3c82ff28c3 100644
--- a/apps/app/src/pages/api/trpc/[trpc].ts
+++ b/apps/app/src/pages/api/trpc/[trpc].ts
@@ -1,3 +1,4 @@
+import * as Sentry from '@sentry/nextjs'
import { createNextApiHandler } from '@trpc/server/adapters/next'
import { appRouter, createContext } from '@weareinreach/api'
@@ -5,19 +6,47 @@ import { createLoggerInstance } from '@weareinreach/util/logger'
const log = createLoggerInstance('tRPC')
+// eslint-disable-next-line node/no-process-env
+const isDev = process.env.NODE_ENV === 'development'
+const isServer = typeof window === 'undefined'
+
/* Creating a handler for the tRPC endpoint. */
export default createNextApiHandler({
router: appRouter,
createContext,
- onError:
- // eslint-disable-next-line node/no-process-env
- process.env.NODE_ENV === 'development'
- ? ({ path, error, type }) => {
- log.error(`❌ tRPC ${type} failed on ${path}: ${error}`)
- }
- : typeof window === 'undefined'
- ? ({ path, error, type }) => log.error({ type, path, error })
- : undefined,
+ onError: ({ path, error, type }) => {
+ switch (true) {
+ case isDev: {
+ if (error.code === 'INTERNAL_SERVER_ERROR') {
+ Sentry.captureException(error, (scope) => {
+ scope.setTags({
+ 'tRPC.path': path,
+ 'tRPC.operation': type,
+ })
+ return scope
+ })
+ }
+ log.error(`❌ tRPC ${type} failed on ${path}:`, error)
+ break
+ }
+ case isServer: {
+ if (error.code === 'INTERNAL_SERVER_ERROR') {
+ Sentry.captureException(error, (scope) => {
+ scope.setTags({
+ 'tRPC.path': path,
+ 'tRPC.operation': type,
+ })
+ return scope
+ })
+ }
+ log.error({ type, path, error })
+ break
+ }
+ default: {
+ return
+ }
+ }
+ },
responseMeta(opts) {
const { ctx, errors, type } = opts
diff --git a/apps/app/src/pages/org/[slug]/index.tsx b/apps/app/src/pages/org/[slug]/index.tsx
index 350cd580be..18ceb9a485 100644
--- a/apps/app/src/pages/org/[slug]/index.tsx
+++ b/apps/app/src/pages/org/[slug]/index.tsx
@@ -1,4 +1,3 @@
-/* eslint-disable i18next/no-literal-string */
import { createStyles, Divider, Grid, Skeleton, Stack, Tabs, useMantineTheme } from '@mantine/core'
import { useElementSize, useMediaQuery } from '@mantine/hooks'
import { type GetStaticPaths, type GetStaticPropsContext, type InferGetStaticPropsType } from 'next'
@@ -20,9 +19,9 @@ import { PhotosSection } from '@weareinreach/ui/components/sections/Photos'
import { ReviewSection } from '@weareinreach/ui/components/sections/Reviews'
import { ServicesInfoCard } from '@weareinreach/ui/components/sections/ServicesInfo'
import { VisitCard } from '@weareinreach/ui/components/sections/VisitCard'
+import { useSearchState } from '@weareinreach/ui/hooks/useSearchState'
import { api } from '~app/utils/api'
import { getServerSideTranslations } from '~app/utils/i18n'
-import { useSearchState } from '~ui/hooks/useSearchState'
const LoadingState = () => (
<>
diff --git a/apps/app/src/pages/search/[...params]/index.tsx b/apps/app/src/pages/search/[...params]/index.tsx
index 5ae99342fc..b21652850d 100644
--- a/apps/app/src/pages/search/[...params]/index.tsx
+++ b/apps/app/src/pages/search/[...params]/index.tsx
@@ -27,12 +27,12 @@ import { SearchResultCard } from '@weareinreach/ui/components/core/SearchResultC
import { CrisisSupport } from '@weareinreach/ui/components/sections/CrisisSupport'
import { SearchResultSidebar } from '@weareinreach/ui/components/sections/SearchResultSidebar'
import { useCustomVariant } from '@weareinreach/ui/hooks/useCustomVariant'
+import { useSearchState } from '@weareinreach/ui/hooks/useSearchState'
import { MoreFilter } from '@weareinreach/ui/modals/MoreFilter'
import { ServiceFilter } from '@weareinreach/ui/modals/ServiceFilter'
import { api } from '~app/utils/api'
import { getSearchResultPageCount, SEARCH_RESULT_PAGE_SIZE } from '~app/utils/constants'
import { getServerSideTranslations } from '~app/utils/i18n'
-import { useSearchState } from '~ui/hooks/useSearchState'
const PageIndexSchema = z.coerce.number().default(1)
diff --git a/apps/app/src/pages/search/intl/[country].tsx b/apps/app/src/pages/search/intl/[country].tsx
index c7c5707fe4..73026b5529 100644
--- a/apps/app/src/pages/search/intl/[country].tsx
+++ b/apps/app/src/pages/search/intl/[country].tsx
@@ -23,12 +23,12 @@ import { z } from 'zod'
import { trpcServerClient } from '@weareinreach/api/trpc'
import { SearchBox } from '@weareinreach/ui/components/core/SearchBox'
import { CrisisSupport } from '@weareinreach/ui/components/sections/CrisisSupport'
+import { SearchResultSidebar } from '@weareinreach/ui/components/sections/SearchResultSidebar'
import { useCustomVariant } from '@weareinreach/ui/hooks/useCustomVariant'
import { MoreFilter } from '@weareinreach/ui/modals/MoreFilter'
import { ServiceFilter } from '@weareinreach/ui/modals/ServiceFilter'
import { api } from '~app/utils/api'
import { getServerSideTranslations } from '~app/utils/i18n'
-import { SearchResultSidebar } from '~ui/components/sections/SearchResultSidebar'
const useStyles = createStyles((theme) => ({
searchControls: {
diff --git a/apps/app/src/pages/support/index.tsx b/apps/app/src/pages/support/index.tsx
index e8a949375c..8ddcfbc9c5 100644
--- a/apps/app/src/pages/support/index.tsx
+++ b/apps/app/src/pages/support/index.tsx
@@ -3,11 +3,11 @@ import { type GetServerSideProps } from 'next'
import { useTranslation } from 'next-i18next'
import { AntiHateMessage } from '@weareinreach/ui/components/core/AntiHateMessage'
+import { Link } from '@weareinreach/ui/components/core/Link'
+import { useCustomVariant } from '@weareinreach/ui/hooks'
import { Icon } from '@weareinreach/ui/icon'
+import { GenericContentModal, PrivacyStatementModal } from '@weareinreach/ui/modals'
import { getServerSideTranslations } from '~app/utils/i18n'
-import { Link } from '~ui/components/core/Link'
-import { useCustomVariant } from '~ui/hooks'
-import { GenericContentModal, PrivacyStatementModal } from '~ui/modals'
const SavedLists = () => {
const { t } = useTranslation('common')
diff --git a/apps/app/src/utils/api.ts b/apps/app/src/utils/api.ts
index 25516a8fc8..15c3bd9865 100644
--- a/apps/app/src/utils/api.ts
+++ b/apps/app/src/utils/api.ts
@@ -9,37 +9,31 @@ import { devtoolsLink } from 'trpc-client-devtools-link'
import { type AppRouter } from '@weareinreach/api'
import { transformer } from '@weareinreach/api/lib/transformer'
import { getEnv } from '@weareinreach/env'
-import { createLoggerInstance } from '@weareinreach/util/logger'
+// import { createLoggerInstance } from '@weareinreach/util/logger'
-const log = createLoggerInstance('tRPC')
+// const log = createLoggerInstance('tRPC')
const getBaseUrl = () => {
if (typeof window !== 'undefined') return '' // browser should use relative url
if (getEnv('VERCEL_URL')) return `https://${getEnv('VERCEL_URL')}` // SSR should use vercel url
return `http://localhost:${getEnv('PORT') ?? 3000}` // dev SSR should use localhost
}
+// eslint-disable-next-line node/no-process-env
+const isDev = process.env.NODE_ENV === 'development'
export const api = createTRPCNext({
config() {
return {
transformer,
links: [
devtoolsLink({
- // eslint-disable-next-line node/no-process-env
- enabled: process.env.NODE_ENV === 'development',
+ enabled: isDev,
}),
loggerLink({
- enabled: (opts) =>
- // eslint-disable-next-line node/no-process-env
- (process.env.NODE_ENV === 'development' && typeof window !== 'undefined') ||
- (opts.direction === 'down' && opts.result instanceof Error),
+ enabled: () => isDev,
}),
-
httpBatchStreamLink({
url: `${getBaseUrl()}/api/trpc`,
}),
- // httpBatchLink({
- // url: `${getBaseUrl()}/api/trpc`,
- // }),
],
queryClientConfig: {
defaultOptions: {
diff --git a/packages/api/lib/initTRPC.ts b/packages/api/lib/initTRPC.ts
index 1ca6fd8485..00ec89dcc9 100644
--- a/packages/api/lib/initTRPC.ts
+++ b/packages/api/lib/initTRPC.ts
@@ -1,6 +1,7 @@
-import { initTRPC } from '@trpc/server'
+import { initTRPC, TRPCError } from '@trpc/server'
import superjson from 'superjson'
import { type TRPCPanelMeta } from 'trpc-panel'
+import { ZodError } from 'zod'
import { type Permission } from '@weareinreach/db/generated/permission'
@@ -15,7 +16,13 @@ export const t = initTRPC
.meta()
.create({
transformer: superjson,
- errorFormatter({ shape }) {
- return shape
+ errorFormatter({ shape, error }) {
+ return {
+ ...shape,
+ data: {
+ ...shape.data,
+ cause: error.cause instanceof ZodError ? error.cause.flatten() : error.cause,
+ },
+ }
},
})
diff --git a/packages/api/package.json b/packages/api/package.json
index cd8363a62a..e81172408b 100644
--- a/packages/api/package.json
+++ b/packages/api/package.json
@@ -4,6 +4,7 @@
"private": true,
"license": "GPL-3.0-only",
"author": "",
+ "sideEffects": false,
"main": "./index.ts",
"types": "./index.ts",
"scripts": {
diff --git a/packages/auth/package.json b/packages/auth/package.json
index 3ded95ee5f..6d83e0cc5d 100644
--- a/packages/auth/package.json
+++ b/packages/auth/package.json
@@ -3,6 +3,7 @@
"version": "0.100.0",
"private": true,
"license": "GPL-3.0-only",
+ "sideEffects": false,
"main": "./index.ts",
"types": "./index.ts",
"scripts": {
diff --git a/packages/config/package.json b/packages/config/package.json
index 86f16b239d..6aeaa01ae7 100644
--- a/packages/config/package.json
+++ b/packages/config/package.json
@@ -3,6 +3,7 @@
"version": "0.100.0",
"private": true,
"license": "GPL-3.0-only",
+ "sideEffects": false,
"files": [
"lint-staged/index.js",
"lint-staged/next.js",
diff --git a/packages/db/package.json b/packages/db/package.json
index 9fbd46553a..07edcf7430 100644
--- a/packages/db/package.json
+++ b/packages/db/package.json
@@ -3,6 +3,7 @@
"version": "0.100.0",
"private": true,
"license": "GPL-3.0-only",
+ "sideEffects": false,
"main": "./index.ts",
"types": "./index.ts",
"scripts": {
diff --git a/packages/env/package.json b/packages/env/package.json
index bd53f4c167..c882c2444a 100644
--- a/packages/env/package.json
+++ b/packages/env/package.json
@@ -2,6 +2,7 @@
"name": "@weareinreach/env",
"version": "0.0.0",
"private": true,
+ "sideEffects": false,
"main": "./index.ts",
"types": "./index.ts",
"files": [
diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json
index 739c95da7e..304c0fdcc2 100644
--- a/packages/eslint-config/package.json
+++ b/packages/eslint-config/package.json
@@ -2,6 +2,7 @@
"name": "@weareinreach/eslint-config",
"version": "0.100.0",
"license": "GPL-3.0-only",
+ "sideEffects": false,
"main": "index.js",
"files": [
"next.js",
diff --git a/packages/ui/components/core/UserReviewSubmit.tsx b/packages/ui/components/core/UserReviewSubmit.tsx
index d3abec3d3f..49decda252 100644
--- a/packages/ui/components/core/UserReviewSubmit.tsx
+++ b/packages/ui/components/core/UserReviewSubmit.tsx
@@ -13,7 +13,7 @@ import { UserAvatar } from './UserAvatar'
const RouterSchema = z.object({
slug: z.string(),
- locationId: z.string().optional(),
+ orgLocationId: z.string().optional(),
serviceId: z.string().optional(),
})
const ReviewSchema = z.object({
@@ -24,20 +24,28 @@ const ReviewSchema = z.object({
reviewText: z.string().optional(),
})
-export const UserReviewSubmit = ({ type = 'body' }: ReviewSubmitProps) => {
+export const UserReviewSubmit = ({ type = 'body', closeModalHandler }: ReviewSubmitProps) => {
const { t } = useTranslation()
const theme = useMantineTheme()
const { query: rawQuery } = useRouter()
const query = RouterSchema.parse(rawQuery)
const { data: orgQuery, status } = api.organization.getIdFromSlug.useQuery(query, { enabled: !!query })
- const { locationId, serviceId } = query
-
- const submitReview = api.review.create.useMutation()
+ const { orgLocationId, serviceId } = query
+ const apiUtil = api.useContext()
+ const submitReview = api.review.create.useMutation({
+ onSuccess: () => {
+ apiUtil.organization.forOrgPage.invalidate()
+ apiUtil.location.forLocationPage.invalidate()
+ if (closeModalHandler instanceof Function) {
+ closeModalHandler()
+ }
+ },
+ })
const form = useForm({
initialValues: {
organizationId: orgQuery?.id ?? '',
- orgLocationId: locationId,
+ orgLocationId,
orgServiceId: serviceId,
rating: 0,
},
@@ -96,4 +104,5 @@ type ReviewSubmitProps = {
* Page body will add a Grid.Col wrapper
*/
type?: 'body' | 'modal'
+ closeModalHandler?: () => void
}
diff --git a/packages/ui/components/data-display/ContactInfo.tsx b/packages/ui/components/data-display/ContactInfo.tsx
index f2577e5026..be6277cecf 100644
--- a/packages/ui/components/data-display/ContactInfo.tsx
+++ b/packages/ui/components/data-display/ContactInfo.tsx
@@ -2,10 +2,10 @@ import { Stack, Text, Title } from '@mantine/core'
import { useTranslation } from 'next-i18next'
import { type ApiOutput } from '@weareinreach/api'
-import { api } from '~app/utils/api'
import { isExternal, Link } from '~ui/components/core/Link'
import { isSocialIcon, SocialLink, type SocialLinkProps } from '~ui/components/core/SocialLink'
import { parsePhoneNumber, useCustomVariant, useSlug } from '~ui/hooks'
+import { trpc as api } from '~ui/lib/trpcClient'
const PhoneNumbers = ({ parentId = '', passedData, direct, locationOnly }: PhoneNumbersProps) => {
const output: JSX.Element[] = []
diff --git a/packages/ui/components/sections/Contact.tsx b/packages/ui/components/sections/Contact.tsx
index 51b5e9fab1..bb380309dc 100644
--- a/packages/ui/components/sections/Contact.tsx
+++ b/packages/ui/components/sections/Contact.tsx
@@ -1,9 +1,9 @@
import { Card, Stack, Title } from '@mantine/core'
import { useTranslation } from 'next-i18next'
-import { api } from '~app/utils/api'
import { ContactInfo } from '~ui/components/data-display/ContactInfo'
import { useScreenSize } from '~ui/hooks'
+import { trpc as api } from '~ui/lib/trpcClient'
export const ContactSection = ({ parentId }: ContactSectionProps) => {
const { t } = useTranslation(['common'])
diff --git a/packages/ui/lib/trpcClient.ts b/packages/ui/lib/trpcClient.ts
index 995844a737..bfc9cabbc8 100644
--- a/packages/ui/lib/trpcClient.ts
+++ b/packages/ui/lib/trpcClient.ts
@@ -1,4 +1,3 @@
-/* eslint-disable turbo/no-undeclared-env-vars */
/* eslint-disable node/no-process-env */
import {
// httpBatchLink,
@@ -19,6 +18,8 @@ export const getBaseUrl = () => {
return `http://localhost:${getEnv('PORT') ?? process.env.STORYBOOK ? 6006 : 3000}` // dev SSR should use localhost
}
+const isDev = process.env.NODE_ENV === 'development'
+
export const nextTRPC = () =>
createTRPCNext({
config() {
@@ -26,12 +27,10 @@ export const nextTRPC = () =>
transformer,
links: [
devtoolsLink({
- enabled: process.env.NODE_ENV === 'development',
+ enabled: isDev,
}),
loggerLink({
- enabled: (opts) =>
- process.env.NODE_ENV === 'development' ||
- (opts.direction === 'down' && opts.result instanceof Error),
+ enabled: () => isDev,
}),
httpBatchStreamLink({
url: `${getBaseUrl()}/api/trpc`,
diff --git a/packages/ui/modals/ResetPassword.tsx b/packages/ui/modals/ResetPassword.tsx
index fdb889de4e..aba4444c88 100644
--- a/packages/ui/modals/ResetPassword.tsx
+++ b/packages/ui/modals/ResetPassword.tsx
@@ -1,4 +1,3 @@
-/* eslint-disable react/no-unescaped-entities */
import {
Box,
type ButtonProps,
diff --git a/packages/ui/modals/Review.tsx b/packages/ui/modals/Review.tsx
index d26e1d26ec..a9c96dbe6c 100644
--- a/packages/ui/modals/Review.tsx
+++ b/packages/ui/modals/Review.tsx
@@ -15,7 +15,7 @@ export const ReviewModalBody = forwardRef((
return (
<>
handler.close()} fullScreen={isMobile}>
-
+
handler.open()} {...props} />
>
diff --git a/packages/ui/package.json b/packages/ui/package.json
index bec2d78893..7eee146329 100644
--- a/packages/ui/package.json
+++ b/packages/ui/package.json
@@ -2,6 +2,7 @@
"name": "@weareinreach/ui",
"version": "0.100.0",
"license": "GPL-3.0-only",
+ "sideEffects": false,
"main": "./index.tsx",
"types": "./index.tsx",
"scripts": {
@@ -43,9 +44,9 @@
"localized-address-format": "1.3.1",
"nextjs-routes": "2.0.1",
"probe-image-size": "7.2.3",
- "react-error-boundary": "4.0.11",
"react-phone-number-input": "3.3.4",
- "react-string-replace": "1.1.1"
+ "react-string-replace": "1.1.1",
+ "zustand": "4.4.1"
},
"devDependencies": {
"@babel/core": "7.22.11",
@@ -57,7 +58,10 @@
"@emotion/server": "11.11.0",
"@faker-js/faker": "8.0.2",
"@geometricpanda/storybook-addon-badges": "2.0.0",
+ "@hookform/devtools": "4.3.1",
+ "@hookform/resolvers": "3.2.0",
"@iconify-json/carbon": "1.1.20",
+ "@iconify-json/fluent-mdl2": "1.1.3",
"@iconify-json/mdi": "1.1.54",
"@iconify-json/ph": "1.1.6",
"@iconify-json/simple-icons": "1.1.68",
@@ -144,13 +148,15 @@
"next": "13.4.19",
"next-auth": "4.23.1",
"next-i18next": "14.0.0",
- "next-router-mock": "0.9.9",
"postcss-loader": "7.3.3",
"prettier": "3.0.2",
"pretty-bytes": "6.1.1",
"react": "18.2.0",
"react-docgen-typescript": "2.2.2",
"react-dom": "18.2.0",
+ "react-error-boundary": "4.0.11",
+ "react-hook-form": "7.45.4",
+ "react-hook-form-mantine": "2.0.0",
"react-hook-tracer": "1.4.0",
"react-i18next": "13.2.0",
"resolve-url-loader": "5.0.0",
@@ -172,8 +178,9 @@
"peerDependencies": {
"@emotion/react": "^11",
"@emotion/server": "^11",
- "@iconify-json/carbon": "1.1.20",
- "@iconify-json/simple-icons": "1.1.68",
+ "@hookform/resolvers": "^3.2.0",
+ "@iconify-json/carbon": "^1.1.20",
+ "@iconify-json/simple-icons": "^1.1.67",
"@iconify/react": "^4",
"@iconify/utils": "^2",
"@mantine/carousel": "^6",
@@ -212,6 +219,9 @@
"next-i18next": "^14.0.0",
"react": "^18",
"react-dom": "^18",
+ "react-error-boundary": "^4",
+ "react-hook-form": "^7.45.4",
+ "react-hook-form-mantine": "^2.0.0",
"react-i18next": "^13.0.0"
},
"msw": {
diff --git a/packages/util/logger/index.ts b/packages/util/logger/index.ts
index a10b43b2b3..dbc3a4f8b0 100644
--- a/packages/util/logger/index.ts
+++ b/packages/util/logger/index.ts
@@ -1,6 +1,20 @@
+/* eslint-disable node/no-process-env */
import { type ISettingsParam, Logger } from 'tslog'
-export const appLog = new Logger({ name: 'app', type: 'json', hideLogPositionForProduction: true })
+const isDev = process.env.NODE_ENV === 'development'
+const verboseLogging = Boolean(isDev && (!!process.env.NEXT_VERBOSE || !!process.env.PRISMA_VERBOSE))
+export const appLog = new Logger({
+ name: 'app',
+ type: isDev ? 'pretty' : 'json',
+ prettyInspectOptions: {
+ depth: 3,
+ colors: true,
+ },
+ stylePrettyLogs: true,
+ prettyErrorLoggerNameDelimiter: '',
+ prettyLogTimeZone: isDev ? 'local' : 'UTC',
+ minLevel: verboseLogging ? 0 : 3,
+})
export const createLoggerInstance = (name: string, opts?: Omit, 'name'>) =>
appLog.getSubLogger({ name, ...opts })
diff --git a/packages/util/package.json b/packages/util/package.json
index 1358779229..1e29c2828f 100644
--- a/packages/util/package.json
+++ b/packages/util/package.json
@@ -2,6 +2,7 @@
"name": "@weareinreach/util",
"version": "0.100.0",
"private": true,
+ "sideEffects": false,
"main": "./index.ts",
"types": "./index.ts",
"scripts": {
@@ -13,6 +14,7 @@
"with-env": "dotenv -e ../../.env --"
},
"dependencies": {
+ "@vercel/edge-config": "0.2.1",
"tslog": "4.9.2"
},
"devDependencies": {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 5b2bc34495..a0598078f4 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -104,15 +104,6 @@ importers:
apps/app:
dependencies:
- '@aws-crypto/sha256-js':
- specifier: 5.0.0
- version: 5.0.0
- '@aws-sdk/client-s3':
- specifier: 3.400.0
- version: 3.400.0
- '@aws-sdk/signature-v4':
- specifier: 3.370.0
- version: 3.370.0
'@crowdin/crowdin-api-client':
specifier: 1.24.0
version: 1.24.0
@@ -125,6 +116,9 @@ importers:
'@emotion/server':
specifier: 11.11.0
version: 11.11.0
+ '@hookform/resolvers':
+ specifier: 3.2.0
+ version: 3.2.0(react-hook-form@7.45.4)
'@iconify/react':
specifier: 4.1.1
version: 4.1.1(react@18.2.0)
@@ -179,15 +173,6 @@ importers:
'@opentelemetry/exporter-trace-otlp-http':
specifier: 0.41.2
version: 0.41.2(@opentelemetry/api@1.4.1)
- '@opentelemetry/instrumentation':
- specifier: 0.41.2
- version: 0.41.2(@opentelemetry/api@1.4.1)
- '@opentelemetry/instrumentation-fetch':
- specifier: 0.41.2
- version: 0.41.2(@opentelemetry/api@1.4.1)
- '@opentelemetry/instrumentation-http':
- specifier: 0.41.2
- version: 0.41.2(@opentelemetry/api@1.4.1)
'@opentelemetry/resources':
specifier: 1.15.2
version: 1.15.2(@opentelemetry/api@1.4.1)
@@ -212,6 +197,9 @@ importers:
'@sentry/opentelemetry-node':
specifier: 7.64.0
version: 7.64.0(@opentelemetry/api@1.4.1)(@opentelemetry/core@1.15.2)(@opentelemetry/sdk-trace-base@1.15.2)(@opentelemetry/semantic-conventions@1.15.2)
+ '@sentry/profiling-node':
+ specifier: 1.1.2
+ version: 1.1.2
'@tanstack/react-query':
specifier: 4.33.0
version: 4.33.0(react-dom@18.2.0)(react@18.2.0)
@@ -266,9 +254,6 @@ importers:
'@weareinreach/util':
specifier: workspace:*
version: link:../../packages/util
- axios:
- specifier: 1.5.0
- version: 1.5.0
cookies-next:
specifier: 2.1.2
version: 2.1.2
@@ -278,12 +263,6 @@ importers:
dayjs:
specifier: 1.11.9
version: 1.11.9
- deepmerge:
- specifier: 4.3.1
- version: 4.3.1
- duration-fns:
- specifier: 3.0.2
- version: 3.0.2
embla-carousel-autoplay:
specifier: 7.1.0
version: 7.1.0(embla-carousel@7.1.0)
@@ -308,15 +287,9 @@ importers:
i18next-intervalplural-postprocessor:
specifier: 3.0.0
version: 3.0.0
- i18next-localstorage-backend:
- specifier: 4.1.1
- version: 4.1.1
i18next-multiload-backend-adapter:
specifier: 2.2.2
version: 2.2.2
- ioredis:
- specifier: 5.3.2
- version: 5.3.2
just-compact:
specifier: 3.2.0
version: 3.2.0
@@ -359,16 +332,22 @@ importers:
react-error-boundary:
specifier: 4.0.11
version: 4.0.11(react@18.2.0)
+ react-hook-form:
+ specifier: 7.45.4
+ version: 7.45.4(react@18.2.0)
+ react-hook-form-mantine:
+ specifier: 2.0.0
+ version: 2.0.0(@mantine/core@6.0.19)(@mantine/dates@6.0.19)(react-dom@18.2.0)(react-hook-form@7.45.4)(react@18.2.0)
react-i18next:
specifier: 13.2.0
version: 13.2.0(i18next@23.4.6)(react-dom@18.2.0)(react@18.2.0)
- tslog:
- specifier: 4.9.2
- version: 4.9.2
zod:
specifier: 3.22.2
version: 3.22.2
devDependencies:
+ '@hookform/devtools':
+ specifier: 4.3.1
+ version: 4.3.1(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0)
'@playwright/test':
specifier: 1.37.1
version: 1.37.1
@@ -432,9 +411,6 @@ importers:
eslint-plugin-i18next:
specifier: 6.0.3
version: 6.0.3
- i18next-resources-for-ts:
- specifier: 1.3.0
- version: 1.3.0
listr2:
specifier: 6.6.1
version: 6.6.1
@@ -456,6 +432,9 @@ importers:
typescript:
specifier: 5.2.2
version: 5.2.2
+ webpack-bundle-analyzer:
+ specifier: 4.9.0
+ version: 4.9.0
apps/web:
dependencies:
@@ -1433,15 +1412,15 @@ importers:
probe-image-size:
specifier: 7.2.3
version: 7.2.3
- react-error-boundary:
- specifier: 4.0.11
- version: 4.0.11(react@18.2.0)
react-phone-number-input:
specifier: 3.3.4
version: 3.3.4(react-dom@18.2.0)(react@18.2.0)
react-string-replace:
specifier: 1.1.1
version: 1.1.1
+ zustand:
+ specifier: 4.4.1
+ version: 4.4.1(@types/react@18.2.21)(react@18.2.0)
devDependencies:
'@babel/core':
specifier: 7.22.11
@@ -1470,9 +1449,18 @@ importers:
'@geometricpanda/storybook-addon-badges':
specifier: 2.0.0
version: 2.0.0(@storybook/blocks@7.3.2)(@storybook/components@7.3.2)(@storybook/core-events@7.3.2)(@storybook/manager-api@7.3.2)(@storybook/preview-api@7.3.2)(@storybook/theming@7.3.2)(@storybook/types@7.3.2)(react-dom@18.2.0)(react@18.2.0)
+ '@hookform/devtools':
+ specifier: 4.3.1
+ version: 4.3.1(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0)
+ '@hookform/resolvers':
+ specifier: 3.2.0
+ version: 3.2.0(react-hook-form@7.45.4)
'@iconify-json/carbon':
specifier: 1.1.20
version: 1.1.20
+ '@iconify-json/fluent-mdl2':
+ specifier: 1.1.3
+ version: 1.1.3
'@iconify-json/mdi':
specifier: 1.1.54
version: 1.1.54
@@ -1731,9 +1719,6 @@ importers:
next-i18next:
specifier: 14.0.0
version: 14.0.0(i18next@23.4.6)(next@13.4.19)(react-i18next@13.2.0)(react@18.2.0)
- next-router-mock:
- specifier: 0.9.9
- version: 0.9.9(next@13.4.19)(react@18.2.0)
postcss-loader:
specifier: 7.3.3
version: 7.3.3(postcss@8.4.27)(webpack@5.88.2)
@@ -1752,6 +1737,15 @@ importers:
react-dom:
specifier: 18.2.0
version: 18.2.0(react@18.2.0)
+ react-error-boundary:
+ specifier: 4.0.11
+ version: 4.0.11(react@18.2.0)
+ react-hook-form:
+ specifier: 7.45.4
+ version: 7.45.4(react@18.2.0)
+ react-hook-form-mantine:
+ specifier: 2.0.0
+ version: 2.0.0(@mantine/core@6.0.19)(@mantine/dates@6.0.19)(react-dom@18.2.0)(react-hook-form@7.45.4)(react@18.2.0)
react-hook-tracer:
specifier: 1.4.0
version: 1.4.0(react-dom@18.2.0)(react@18.2.0)
@@ -1806,6 +1800,9 @@ importers:
packages/util:
dependencies:
+ '@vercel/edge-config':
+ specifier: 0.2.1
+ version: 0.2.1
tslog:
specifier: 4.9.2
version: 4.9.2
@@ -1860,31 +1857,11 @@ packages:
'@aws-sdk/types': 3.398.0
tslib: 1.14.1
- /@aws-crypto/crc32c@3.0.0:
- resolution: {integrity: sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==}
- dependencies:
- '@aws-crypto/util': 3.0.0
- '@aws-sdk/types': 3.398.0
- tslib: 1.14.1
- dev: false
-
/@aws-crypto/ie11-detection@3.0.0:
resolution: {integrity: sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==}
dependencies:
tslib: 1.14.1
- /@aws-crypto/sha1-browser@3.0.0:
- resolution: {integrity: sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw==}
- dependencies:
- '@aws-crypto/ie11-detection': 3.0.0
- '@aws-crypto/supports-web-crypto': 3.0.0
- '@aws-crypto/util': 3.0.0
- '@aws-sdk/types': 3.398.0
- '@aws-sdk/util-locate-window': 3.310.0
- '@aws-sdk/util-utf8-browser': 3.259.0
- tslib: 1.14.1
- dev: false
-
/@aws-crypto/sha256-browser@3.0.0:
resolution: {integrity: sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==}
dependencies:
@@ -1904,15 +1881,6 @@ packages:
'@aws-sdk/types': 3.398.0
tslib: 1.14.1
- /@aws-crypto/sha256-js@5.0.0:
- resolution: {integrity: sha512-g+u9iKkaQVp9Mjoxq1IJSHj9NHGZF441+R/GIH0dn7u4mix5QQ4VqgpppHrNm1LzjUzb0BpcFGsBXP6cOVf+ZQ==}
- engines: {node: '>=16.0.0'}
- dependencies:
- '@aws-crypto/util': 5.0.0
- '@aws-sdk/types': 3.398.0
- tslib: 1.14.1
- dev: false
-
/@aws-crypto/supports-web-crypto@3.0.0:
resolution: {integrity: sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==}
dependencies:
@@ -1925,14 +1893,6 @@ packages:
'@aws-sdk/util-utf8-browser': 3.259.0
tslib: 1.14.1
- /@aws-crypto/util@5.0.0:
- resolution: {integrity: sha512-1GYqLdYRe96idcCltlqxdJ68OWE6ADT8qGLmVi7PVHKl8AxD2EWSbJSSevPq2eTx6vaPZpkr1RoZ3lcw/uGoEA==}
- dependencies:
- '@aws-sdk/types': 3.398.0
- '@aws-sdk/util-utf8-browser': 3.259.0
- tslib: 1.14.1
- dev: false
-
/@aws-lambda-powertools/commons@1.12.1:
resolution: {integrity: sha512-VChNfDUxxcB5KTfQPkJgxYihEZkrmeOzU9/A9FRBc+3v33EEM59T2pIgBkFy0VoINvGi3MoBEln/wyu2jV0ivA==}
dev: false
@@ -2034,69 +1994,6 @@ packages:
dev: true
optional: true
- /@aws-sdk/client-s3@3.400.0:
- resolution: {integrity: sha512-lnv0pb79Czl8fCMs/z7yM56LvoKTri1I4jX/V33trHMFKPQDoy8i24wxG8+TZl3MUmnUyoQS7tlukh7IFkii1Q==}
- engines: {node: '>=14.0.0'}
- dependencies:
- '@aws-crypto/sha1-browser': 3.0.0
- '@aws-crypto/sha256-browser': 3.0.0
- '@aws-crypto/sha256-js': 3.0.0
- '@aws-sdk/client-sts': 3.398.0
- '@aws-sdk/credential-provider-node': 3.398.0
- '@aws-sdk/middleware-bucket-endpoint': 3.398.0
- '@aws-sdk/middleware-expect-continue': 3.398.0
- '@aws-sdk/middleware-flexible-checksums': 3.400.0
- '@aws-sdk/middleware-host-header': 3.398.0
- '@aws-sdk/middleware-location-constraint': 3.398.0
- '@aws-sdk/middleware-logger': 3.398.0
- '@aws-sdk/middleware-recursion-detection': 3.398.0
- '@aws-sdk/middleware-sdk-s3': 3.398.0
- '@aws-sdk/middleware-signing': 3.398.0
- '@aws-sdk/middleware-ssec': 3.398.0
- '@aws-sdk/middleware-user-agent': 3.398.0
- '@aws-sdk/signature-v4-multi-region': 3.398.0
- '@aws-sdk/types': 3.398.0
- '@aws-sdk/util-endpoints': 3.398.0
- '@aws-sdk/util-user-agent-browser': 3.398.0
- '@aws-sdk/util-user-agent-node': 3.398.0
- '@aws-sdk/xml-builder': 3.310.0
- '@smithy/config-resolver': 2.0.5
- '@smithy/eventstream-serde-browser': 2.0.5
- '@smithy/eventstream-serde-config-resolver': 2.0.5
- '@smithy/eventstream-serde-node': 2.0.5
- '@smithy/fetch-http-handler': 2.0.5
- '@smithy/hash-blob-browser': 2.0.5
- '@smithy/hash-node': 2.0.5
- '@smithy/hash-stream-node': 2.0.5
- '@smithy/invalid-dependency': 2.0.5
- '@smithy/md5-js': 2.0.5
- '@smithy/middleware-content-length': 2.0.5
- '@smithy/middleware-endpoint': 2.0.5
- '@smithy/middleware-retry': 2.0.5
- '@smithy/middleware-serde': 2.0.5
- '@smithy/middleware-stack': 2.0.0
- '@smithy/node-config-provider': 2.0.5
- '@smithy/node-http-handler': 2.0.5
- '@smithy/protocol-http': 2.0.5
- '@smithy/smithy-client': 2.0.5
- '@smithy/types': 2.2.2
- '@smithy/url-parser': 2.0.5
- '@smithy/util-base64': 2.0.0
- '@smithy/util-body-length-browser': 2.0.0
- '@smithy/util-body-length-node': 2.1.0
- '@smithy/util-defaults-mode-browser': 2.0.5
- '@smithy/util-defaults-mode-node': 2.0.5
- '@smithy/util-retry': 2.0.0
- '@smithy/util-stream': 2.0.5
- '@smithy/util-utf8': 2.0.0
- '@smithy/util-waiter': 2.0.5
- fast-xml-parser: 4.2.5
- tslib: 2.6.1
- transitivePeerDependencies:
- - '@aws-sdk/signature-v4-crt'
- - aws-crt
- dev: false
-
/@aws-sdk/client-sso@3.391.0:
resolution: {integrity: sha512-aT+O1CbWIWYlCtWK6g3ZaMvFNImOgFGurOEPscuedqzG5UQc1bRtRrGYShLyzcZgfXP+s0cKYJqgGeRNoWiwqA==}
engines: {node: '>=14.0.0'}
@@ -2491,58 +2388,6 @@ packages:
dev: true
optional: true
- /@aws-sdk/eventstream-codec@3.370.0:
- resolution: {integrity: sha512-PiaDMum7TNsIE3DGECSsNYwibBIPN2/e13BJbTwi6KgVx8BV2mYA3kQkaUDiy++tEpzN81Nh5OPTFVb7bvgYYg==}
- dependencies:
- '@aws-crypto/crc32': 3.0.0
- '@aws-sdk/types': 3.370.0
- '@aws-sdk/util-hex-encoding': 3.310.0
- tslib: 2.6.1
- dev: false
-
- /@aws-sdk/is-array-buffer@3.310.0:
- resolution: {integrity: sha512-urnbcCR+h9NWUnmOtet/s4ghvzsidFmspfhYaHAmSRdy9yDjdjBJMFjjsn85A1ODUktztm+cVncXjQ38WCMjMQ==}
- engines: {node: '>=14.0.0'}
- dependencies:
- tslib: 2.6.1
- dev: false
-
- /@aws-sdk/middleware-bucket-endpoint@3.398.0:
- resolution: {integrity: sha512-+iDHiRofK/vIY94RWAXkSnR4rBPzc2dPHmLp+FDKywq1y708H9W7TOT37dpn+KSFeO4k2FfddFjzWBHsaeakCA==}
- engines: {node: '>=14.0.0'}
- dependencies:
- '@aws-sdk/types': 3.398.0
- '@aws-sdk/util-arn-parser': 3.310.0
- '@smithy/protocol-http': 2.0.5
- '@smithy/types': 2.2.2
- '@smithy/util-config-provider': 2.0.0
- tslib: 2.6.1
- dev: false
-
- /@aws-sdk/middleware-expect-continue@3.398.0:
- resolution: {integrity: sha512-d6he+Qqwh1yqml9duXSv5iKJ2lS0PVrF2UEsVew2GFxfUif0E/davTZJjvWtnelbuIGcTP+wDKVVjLwBN2sN/g==}
- engines: {node: '>=14.0.0'}
- dependencies:
- '@aws-sdk/types': 3.398.0
- '@smithy/protocol-http': 2.0.5
- '@smithy/types': 2.2.2
- tslib: 2.6.1
- dev: false
-
- /@aws-sdk/middleware-flexible-checksums@3.400.0:
- resolution: {integrity: sha512-lpsumd5/G+eAMTr61h/cJQZ8+i+xzC6OG3bvUcbRHqcjN49XgeNLcPfYcr6Rzf0QHxmuCN4te/4XGU3Fif2YVA==}
- engines: {node: '>=14.0.0'}
- dependencies:
- '@aws-crypto/crc32': 3.0.0
- '@aws-crypto/crc32c': 3.0.0
- '@aws-sdk/types': 3.398.0
- '@smithy/is-array-buffer': 2.0.0
- '@smithy/protocol-http': 2.0.5
- '@smithy/types': 2.2.2
- '@smithy/util-utf8': 2.0.0
- tslib: 2.6.1
- dev: false
-
/@aws-sdk/middleware-host-header@3.391.0:
resolution: {integrity: sha512-+nyNr0rb2ixY7mU48nibr7L7gsw37y4oELhqgnNKhcjZDJ34imBwKIMFa64n21FdftmhcjR8IdSpzXE9xrkJ8g==}
engines: {node: '>=14.0.0'}
@@ -2565,15 +2410,6 @@ packages:
tslib: 2.6.1
dev: false
- /@aws-sdk/middleware-location-constraint@3.398.0:
- resolution: {integrity: sha512-it+olJf1Lf2bmH8OL/N1jMOFB0zEVYs4rIzgFrluTRCuPatRuDi4LsXS8zqYxkBa05JE8JmqwW5gCzAmWyLLqw==}
- engines: {node: '>=14.0.0'}
- dependencies:
- '@aws-sdk/types': 3.398.0
- '@smithy/types': 2.2.2
- tslib: 2.6.1
- dev: false
-
/@aws-sdk/middleware-logger@3.391.0:
resolution: {integrity: sha512-KOwl5zo16b17JDhqILHBStccBQ2w35em7+/6vdkJdUII6OU8aVIFTlIQT9wOUvd4do6biIRBMZG3IK0Rg7mRDQ==}
engines: {node: '>=14.0.0'}
@@ -2616,17 +2452,6 @@ packages:
tslib: 2.6.1
dev: false
- /@aws-sdk/middleware-sdk-s3@3.398.0:
- resolution: {integrity: sha512-yweSMc/TyiFtqc52hFMKQJvTm3i1KCoW5mB3o/Sla6zsHBh+nS6TTaBmo+2kcDIR7AKODwW+FLCTHWiazb7J3Q==}
- engines: {node: '>=14.0.0'}
- dependencies:
- '@aws-sdk/types': 3.398.0
- '@aws-sdk/util-arn-parser': 3.310.0
- '@smithy/protocol-http': 2.0.5
- '@smithy/types': 2.2.2
- tslib: 2.6.1
- dev: false
-
/@aws-sdk/middleware-sdk-sts@3.391.0:
resolution: {integrity: sha512-6ZXI3Z4QU+TnT5PwKWloGmRHG81tWeI18/zxf9wWzrO2NhYFvITzEJH0vWLLiXdWtn/BYfLULXtDvkTaepbI5A==}
engines: {node: '>=14.0.0'}
@@ -2677,15 +2502,6 @@ packages:
tslib: 2.6.1
dev: false
- /@aws-sdk/middleware-ssec@3.398.0:
- resolution: {integrity: sha512-QtKr/hPcRugKSIZAH4+7hbUfdW7Lg+OQvD25nJn7ic1JHRZ+eDctEFxdsmnt68lE6aZxOcHCWHAW6/umcA93Dw==}
- engines: {node: '>=14.0.0'}
- dependencies:
- '@aws-sdk/types': 3.398.0
- '@smithy/types': 2.2.2
- tslib: 2.6.1
- dev: false
-
/@aws-sdk/middleware-user-agent@3.391.0:
resolution: {integrity: sha512-LdK9uMNA14zqRw3B79Mhy7GX36qld/GYo93xuu+lr+AQ98leZEdc6GUbrtNDI3fP1Z8TMQcyHUKBml4/B+wXpQ==}
engines: {node: '>=14.0.0'}
@@ -2710,36 +2526,6 @@ packages:
tslib: 2.6.1
dev: false
- /@aws-sdk/signature-v4-multi-region@3.398.0:
- resolution: {integrity: sha512-8fTqTxRDWE03T7ClaWlCfbwuSae//01XMNVy2a9g5QgaelQh7ZZyU3ZIJiV8gIj8v6ZM0NGn9Bz1liI/vmNmcw==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- '@aws-sdk/signature-v4-crt': ^3.118.0
- peerDependenciesMeta:
- '@aws-sdk/signature-v4-crt':
- optional: true
- dependencies:
- '@aws-sdk/types': 3.398.0
- '@smithy/protocol-http': 2.0.5
- '@smithy/signature-v4': 2.0.3
- '@smithy/types': 2.2.2
- tslib: 2.6.1
- dev: false
-
- /@aws-sdk/signature-v4@3.370.0:
- resolution: {integrity: sha512-Mh++NJiXoBxMzz4d8GQPNB37nqjS1gsVwjKoSAWFE67sjgsjb8D5JWRCm9CinqPoXi2iN57+1DcQalTDKQGc0A==}
- engines: {node: '>=14.0.0'}
- dependencies:
- '@aws-sdk/eventstream-codec': 3.370.0
- '@aws-sdk/is-array-buffer': 3.310.0
- '@aws-sdk/types': 3.370.0
- '@aws-sdk/util-hex-encoding': 3.310.0
- '@aws-sdk/util-middleware': 3.370.0
- '@aws-sdk/util-uri-escape': 3.310.0
- '@aws-sdk/util-utf8': 3.310.0
- tslib: 2.6.1
- dev: false
-
/@aws-sdk/token-providers@3.391.0:
resolution: {integrity: sha512-kgfArsKLDJE71qQjfXiHiM5cZqgDHlMsqEx35+A65GmTWJaS1PGDqu3ZvVVU8E5mxnCCLw7vho21fsjvH6TBpg==}
engines: {node: '>=14.0.0'}
@@ -2828,14 +2614,6 @@ packages:
- aws-crt
dev: false
- /@aws-sdk/types@3.370.0:
- resolution: {integrity: sha512-8PGMKklSkRKjunFhzM2y5Jm0H2TBu7YRNISdYzXLUHKSP9zlMEYagseKVdmox0zKHf1LXVNuSlUV2b6SRrieCQ==}
- engines: {node: '>=14.0.0'}
- dependencies:
- '@smithy/types': 1.2.0
- tslib: 2.6.1
- dev: false
-
/@aws-sdk/types@3.391.0:
resolution: {integrity: sha512-QpYVFKMOnzHz/JMj/b8wb18qxiT92U/5r5MmtRz2R3LOH6ooTO96k4ozXCrYr0qNed1PAnOj73rPrrH2wnCJKQ==}
engines: {node: '>=14.0.0'}
@@ -2853,21 +2631,6 @@ packages:
'@smithy/types': 2.2.2
tslib: 2.6.1
- /@aws-sdk/util-arn-parser@3.310.0:
- resolution: {integrity: sha512-jL8509owp/xB9+Or0pvn3Fe+b94qfklc2yPowZZIFAkFcCSIdkIglz18cPDWnYAcy9JGewpMS1COXKIUhZkJsA==}
- engines: {node: '>=14.0.0'}
- dependencies:
- tslib: 2.6.1
- dev: false
-
- /@aws-sdk/util-buffer-from@3.310.0:
- resolution: {integrity: sha512-i6LVeXFtGih5Zs8enLrt+ExXY92QV25jtEnTKHsmlFqFAuL3VBeod6boeMXkN2p9lbSVVQ1sAOOYZOHYbYkntw==}
- engines: {node: '>=14.0.0'}
- dependencies:
- '@aws-sdk/is-array-buffer': 3.310.0
- tslib: 2.6.1
- dev: false
-
/@aws-sdk/util-endpoints@3.391.0:
resolution: {integrity: sha512-zv4sYDTQhNxyLoekcE02/nk3xvoo6yCHDy1kDJk0MFxOKaqUB+CvZdQBR4YBLSDlD4o4DUBmdYgKT58FfbM8sQ==}
engines: {node: '>=14.0.0'}
@@ -2886,33 +2649,12 @@ packages:
tslib: 2.6.1
dev: false
- /@aws-sdk/util-hex-encoding@3.310.0:
- resolution: {integrity: sha512-sVN7mcCCDSJ67pI1ZMtk84SKGqyix6/0A1Ab163YKn+lFBQRMKexleZzpYzNGxYzmQS6VanP/cfU7NiLQOaSfA==}
- engines: {node: '>=14.0.0'}
- dependencies:
- tslib: 2.6.1
- dev: false
-
/@aws-sdk/util-locate-window@3.310.0:
resolution: {integrity: sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w==}
engines: {node: '>=14.0.0'}
dependencies:
tslib: 2.6.1
- /@aws-sdk/util-middleware@3.370.0:
- resolution: {integrity: sha512-Jvs9FZHaQznWGLkRel3PFEP93I1n0Kp6356zxYHk3LIOmjpzoob3R+v96mzyN+dZrnhPdPubYS41qbU2F9lROg==}
- engines: {node: '>=14.0.0'}
- dependencies:
- tslib: 2.6.1
- dev: false
-
- /@aws-sdk/util-uri-escape@3.310.0:
- resolution: {integrity: sha512-drzt+aB2qo2LgtDoiy/3sVG8w63cgLkqFIa2NFlGpUgHFWTXkqtbgf4L5QdjRGKWhmZsnqkbtL7vkSWEcYDJ4Q==}
- engines: {node: '>=14.0.0'}
- dependencies:
- tslib: 2.6.1
- dev: false
-
/@aws-sdk/util-user-agent-browser@3.391.0:
resolution: {integrity: sha512-6ipHOB1WdCBNeAMJauN7l2qNE0WLVaTNhkD290/ElXm1FHGTL8yw6lIDIjhIFO1bmbZxDiKApwDiG7ROhaJoxQ==}
requiresBuild: true
@@ -2970,21 +2712,6 @@ packages:
dependencies:
tslib: 2.6.1
- /@aws-sdk/util-utf8@3.310.0:
- resolution: {integrity: sha512-DnLfFT8uCO22uOJc0pt0DsSNau1GTisngBCDw8jQuWT5CqogMJu4b/uXmwEqfj8B3GX6Xsz8zOd6JpRlPftQoA==}
- engines: {node: '>=14.0.0'}
- dependencies:
- '@aws-sdk/util-buffer-from': 3.310.0
- tslib: 2.6.1
- dev: false
-
- /@aws-sdk/xml-builder@3.310.0:
- resolution: {integrity: sha512-TqELu4mOuSIKQCqj63fGVs86Yh+vBx5nHRpWKNUNhB2nPTpfbziTs5c1X358be3peVWA4wPxW7Nt53KIg1tnNw==}
- engines: {node: '>=14.0.0'}
- dependencies:
- tslib: 2.6.1
- dev: false
-
/@babel/code-frame@7.22.10:
resolution: {integrity: sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==}
engines: {node: '>=6.9.0'}
@@ -4652,7 +4379,6 @@ packages:
resolution: {integrity: sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==}
dependencies:
'@emotion/memoize': 0.8.1
- dev: false
/@emotion/memoize@0.8.1:
resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==}
@@ -4721,7 +4447,6 @@ packages:
'@emotion/utils': 1.2.1
'@types/react': 18.2.21
react: 18.2.0
- dev: false
/@emotion/unitless@0.8.1:
resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==}
@@ -5534,6 +5259,33 @@ packages:
'@hapi/hoek': 9.3.0
dev: true
+ /@hookform/devtools@4.3.1(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-CrWxEoHQZaOXJZVQ8KBgOuAa8p2LI8M0DAN5GTRTmdCieRwFVjVDEmuTAVazWVRRkpEQSgSt3KYp7VmmqXdEnw==}
+ peerDependencies:
+ react: ^18 || 18
+ react-dom: ^18 || 18
+ dependencies:
+ '@emotion/react': 11.11.1(@types/react@18.2.21)(react@18.2.0)
+ '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.21)(react@18.2.0)
+ '@types/lodash': 4.14.197
+ little-state-machine: 4.8.0(react@18.2.0)
+ lodash: 4.17.21
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ react-simple-animate: 3.5.2(react-dom@18.2.0)
+ use-deep-compare-effect: 1.8.1(react@18.2.0)
+ uuid: 9.0.0
+ transitivePeerDependencies:
+ - '@types/react'
+ dev: true
+
+ /@hookform/resolvers@3.2.0(react-hook-form@7.45.4):
+ resolution: {integrity: sha512-skXQHhLxq0Sz2xDwCyv5dygBCtXJe1GmWwxDzfdtl0X6agD6qcyTG8HrZWkjJoy8AkiLARqYvSYJ8z7+Nwmi7w==}
+ peerDependencies:
+ react-hook-form: ^7.0.0
+ dependencies:
+ react-hook-form: 7.45.4(react@18.2.0)
+
/@humanwhocodes/config-array@0.11.10:
resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==}
engines: {node: '>=10.10.0'}
@@ -5560,6 +5312,12 @@ packages:
'@iconify/types': 2.0.0
dev: true
+ /@iconify-json/fluent-mdl2@1.1.3:
+ resolution: {integrity: sha512-LtsZvgFjWK4fQwe0G6cNFDMXhvon4PqUfZY+E4vW6ruOyoFN/Bjzd/LSOVe2POwM785L6ChW2djgNu7fOjrT6Q==}
+ dependencies:
+ '@iconify/types': 2.0.0
+ dev: true
+
/@iconify-json/mdi@1.1.54:
resolution: {integrity: sha512-3QAsxte90EalbN2e8J30OqSSZz9qN2x+kmykQwsPahoW2dOtSvj+BR9YdiUd9A5XKk2nuU4UH5Gj/cq6WZ6CzQ==}
dependencies:
@@ -6883,36 +6641,6 @@ packages:
'@opentelemetry/semantic-conventions': 1.15.2
dev: false
- /@opentelemetry/instrumentation-fetch@0.41.2(@opentelemetry/api@1.4.1):
- resolution: {integrity: sha512-L4jx7kq0R5XWAf5YcekSQ3Zm/6PE/+p/6rZe4NdtC+gp9u1lrQ/Vr0lwexxubS1odghbUSFo6PXKrqc25c+2hA==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.0.0
- dependencies:
- '@opentelemetry/api': 1.4.1
- '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.4.1)
- '@opentelemetry/instrumentation': 0.41.2(@opentelemetry/api@1.4.1)
- '@opentelemetry/sdk-trace-web': 1.15.2(@opentelemetry/api@1.4.1)
- '@opentelemetry/semantic-conventions': 1.15.2
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@opentelemetry/instrumentation-http@0.41.2(@opentelemetry/api@1.4.1):
- resolution: {integrity: sha512-dzOC6xkfK0LM6Dzo91aInLdSbdIzKA0IgSDnyLi6YZ0Z7c1bfrFncFx/3gZs8vi+KXLALgfMlpzE7IYDW/cM3A==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
- dependencies:
- '@opentelemetry/api': 1.4.1
- '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.4.1)
- '@opentelemetry/instrumentation': 0.41.2(@opentelemetry/api@1.4.1)
- '@opentelemetry/semantic-conventions': 1.15.2
- semver: 7.5.4
- transitivePeerDependencies:
- - supports-color
- dev: false
-
/@opentelemetry/instrumentation@0.41.2(@opentelemetry/api@1.4.1):
resolution: {integrity: sha512-rxU72E0pKNH6ae2w5+xgVYZLzc5mlxAbGzF4shxMVK8YC2QQsfN38B2GPbj0jvrKWWNUElfclQ+YTykkNg/grw==}
engines: {node: '>=14'}
@@ -7085,18 +6813,6 @@ packages:
semver: 7.5.4
dev: false
- /@opentelemetry/sdk-trace-web@1.15.2(@opentelemetry/api@1.4.1):
- resolution: {integrity: sha512-OjCrwtu4b+cAt540wyIr7d0lCA/cY9y42lmYDFUfJ8Ixj2bByIUJ4yyd9M7mXHpQHdiR/Kq2vzsgS14Uj+RU0Q==}
- engines: {node: '>=14'}
- peerDependencies:
- '@opentelemetry/api': '>=1.0.0 <1.5.0'
- dependencies:
- '@opentelemetry/api': 1.4.1
- '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.4.1)
- '@opentelemetry/sdk-trace-base': 1.15.2(@opentelemetry/api@1.4.1)
- '@opentelemetry/semantic-conventions': 1.15.2
- dev: false
-
/@opentelemetry/semantic-conventions@1.15.2:
resolution: {integrity: sha512-CjbOKwk2s+3xPIMcd5UNYQzsf+v94RczbdNix9/kQh38WiQkM90sUOi3if8eyHFgiBjBjhwXrA7W3ydiSQP9mw==}
engines: {node: '>=14'}
@@ -8363,6 +8079,16 @@ packages:
tslib: 2.6.1
dev: false
+ /@sentry/hub@7.64.0:
+ resolution: {integrity: sha512-7vy71bE6WX/zvQ2VxdJ+kTM72U1iP3iTiba0jNXCnpLpeRE+c5LbvNHWxsZh20JX3gqxuhncaVCKWW8Iezhc2w==}
+ engines: {node: '>=8'}
+ dependencies:
+ '@sentry/core': 7.64.0
+ '@sentry/types': 7.64.0
+ '@sentry/utils': 7.64.0
+ tslib: 2.6.1
+ dev: false
+
/@sentry/integrations@7.64.0:
resolution: {integrity: sha512-6gbSGiruOifAmLtXw//Za19GWiL5qugDMEFxSvc5WrBWb+A8UK+foPn3K495OcivLS68AmqAQCUGb+6nlVowwA==}
engines: {node: '>=8'}
@@ -8437,6 +8163,24 @@ packages:
'@sentry/utils': 7.64.0
dev: false
+ /@sentry/profiling-node@1.1.2:
+ resolution: {integrity: sha512-bI320I78bfUPqwLkKVWbr4AE6WeWepKPGXtbuEHUvrqvQAKkEjjUAEFKuE/8clTCcZ4DaVT6PNaKJDhL/3XvGg==}
+ engines: {node: '>=8.0.0'}
+ hasBin: true
+ requiresBuild: true
+ dependencies:
+ '@sentry/core': 7.64.0
+ '@sentry/hub': 7.64.0
+ '@sentry/node': 7.64.0
+ '@sentry/types': 7.64.0
+ '@sentry/utils': 7.64.0
+ detect-libc: 2.0.2
+ node-abi: 3.47.0
+ node-gyp: 9.4.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
/@sentry/react@7.64.0(react@18.2.0):
resolution: {integrity: sha512-wOyJUQi7OoT1q+F/fVVv1fzbyO4OYbTu6m1DliLOGQPGEHPBsgPc722smPIExd1/rAMK/FxOuNN5oNhubH8nhg==}
engines: {node: '>=8'}
@@ -8534,19 +8278,6 @@ packages:
'@smithy/types': 2.2.2
tslib: 2.6.1
- /@smithy/chunked-blob-reader-native@2.0.0:
- resolution: {integrity: sha512-HM8V2Rp1y8+1343tkZUKZllFhEQPNmpNdgFAncbTsxkZ18/gqjk23XXv3qGyXWp412f3o43ZZ1UZHVcHrpRnCQ==}
- dependencies:
- '@smithy/util-base64': 2.0.0
- tslib: 2.6.1
- dev: false
-
- /@smithy/chunked-blob-reader@2.0.0:
- resolution: {integrity: sha512-k+J4GHJsMSAIQPChGBrjEmGS+WbPonCXesoqP9fynIqjn7rdOThdH8FAeCmokP9mxTYKQAKoHCLPzNlm6gh7Wg==}
- dependencies:
- tslib: 2.6.1
- dev: false
-
/@smithy/config-resolver@2.0.5:
resolution: {integrity: sha512-n0c2AXz+kjALY2FQr7Zy9zhYigXzboIh1AuUUVCqFBKFtdEvTwnwPXrTDoEehLiRTUHNL+4yzZ3s+D0kKYSLSg==}
engines: {node: '>=14.0.0'}
@@ -8574,41 +8305,6 @@ packages:
'@smithy/util-hex-encoding': 2.0.0
tslib: 2.6.1
- /@smithy/eventstream-serde-browser@2.0.5:
- resolution: {integrity: sha512-8NU51y94qFJbxL6SmvgWDfITHO/svvbAigkLYk2pckX17TGCSf4EXuGpGLliJp5Ljh5+vASC7mUH2jYX7MWBxA==}
- engines: {node: '>=14.0.0'}
- dependencies:
- '@smithy/eventstream-serde-universal': 2.0.5
- '@smithy/types': 2.2.2
- tslib: 2.6.1
- dev: false
-
- /@smithy/eventstream-serde-config-resolver@2.0.5:
- resolution: {integrity: sha512-u3gvukRaTH4X6tsryuZ4T1WGIEP34fPaTTzphFDJe8GJz/k11oBW1MPnkcaucBMxLnObK9swCF85j5cp1Kj1oA==}
- engines: {node: '>=14.0.0'}
- dependencies:
- '@smithy/types': 2.2.2
- tslib: 2.6.1
- dev: false
-
- /@smithy/eventstream-serde-node@2.0.5:
- resolution: {integrity: sha512-/C8jb+k/vKUBIe80D30vzjvRXlJf76kG2AJY7/NwiqWuD2usRuuDFCDaswXdVsSh9P1+FeaxZ48chsK10yDryQ==}
- engines: {node: '>=14.0.0'}
- dependencies:
- '@smithy/eventstream-serde-universal': 2.0.5
- '@smithy/types': 2.2.2
- tslib: 2.6.1
- dev: false
-
- /@smithy/eventstream-serde-universal@2.0.5:
- resolution: {integrity: sha512-+vHvbQtlSVYTQ/20tNpVaKi0EpTR7E8GoEUHJypRZIRgiT03b3h2MAWk+SNaqMrCJrYG9vKLkJFzDylRlUvDWg==}
- engines: {node: '>=14.0.0'}
- dependencies:
- '@smithy/eventstream-codec': 2.0.5
- '@smithy/types': 2.2.2
- tslib: 2.6.1
- dev: false
-
/@smithy/fetch-http-handler@2.0.5:
resolution: {integrity: sha512-EzFoMowdBNy1VqtvkiXgPFEdosIAt4/4bgZ8uiDiUyfhmNXq/3bV+CagPFFBsgFOR/X2XK4zFZHRsoa7PNHVVg==}
dependencies:
@@ -8618,15 +8314,6 @@ packages:
'@smithy/util-base64': 2.0.0
tslib: 2.6.1
- /@smithy/hash-blob-browser@2.0.5:
- resolution: {integrity: sha512-ZVAUBtJXGf9bEko4/RwWcTK6d3b/ZmQMxJMrxOOcQhVDiqny9zI0mzgstO4Oxz3135R7S3V/bbGw3w3woCYpQg==}
- dependencies:
- '@smithy/chunked-blob-reader': 2.0.0
- '@smithy/chunked-blob-reader-native': 2.0.0
- '@smithy/types': 2.2.2
- tslib: 2.6.1
- dev: false
-
/@smithy/hash-node@2.0.5:
resolution: {integrity: sha512-mk551hIywBITT+kXruRNXk7f8Fy7DTzBjZJSr/V6nolYKmUHIG3w5QU6nO9qPYEQGKc/yEPtkpdS28ndeG93lA==}
engines: {node: '>=14.0.0'}
@@ -8636,15 +8323,6 @@ packages:
'@smithy/util-utf8': 2.0.0
tslib: 2.6.1
- /@smithy/hash-stream-node@2.0.5:
- resolution: {integrity: sha512-XiR4Aoux5kXy8OWPLQisKy3GPmm0l6deHepvPvr4MUzIwa5XWazG3JdbZXy+mk93CvEZrOwKPHU5Kul6QybJiQ==}
- engines: {node: '>=14.0.0'}
- dependencies:
- '@smithy/types': 2.2.2
- '@smithy/util-utf8': 2.0.0
- tslib: 2.6.1
- dev: false
-
/@smithy/invalid-dependency@2.0.5:
resolution: {integrity: sha512-0wEi+JT0hM+UUwrJVYbqjuGFhy5agY/zXyiN7BNAJ1XoCDjU5uaNSj8ekPWsXd/d4yM6NSe8UbPd8cOc1+3oBQ==}
dependencies:
@@ -8657,14 +8335,6 @@ packages:
dependencies:
tslib: 2.6.1
- /@smithy/md5-js@2.0.5:
- resolution: {integrity: sha512-k5EOte/Ye2r7XBVaXv2rhiehk6l3T4uRiPF+pnxKEc+G9Fwd1xAXBDZrtOq1syFPBKBmVfNszG4nevngST7NKg==}
- dependencies:
- '@smithy/types': 2.2.2
- '@smithy/util-utf8': 2.0.0
- tslib: 2.6.1
- dev: false
-
/@smithy/middleware-content-length@2.0.5:
resolution: {integrity: sha512-E7VwV5H02fgZIUGRli4GevBCAPvkyEI/fgl9SU47nPPi3DAAX3nEtUb8xfGbXjOcJ5BdSUoWWZn42tEd/blOqA==}
engines: {node: '>=14.0.0'}
@@ -8789,13 +8459,6 @@ packages:
'@smithy/util-stream': 2.0.5
tslib: 2.6.1
- /@smithy/types@1.2.0:
- resolution: {integrity: sha512-z1r00TvBqF3dh4aHhya7nz1HhvCg4TRmw51fjMrh5do3h+ngSstt/yKlNbHeb9QxJmFbmN8KEVSWgb1bRvfEoA==}
- engines: {node: '>=14.0.0'}
- dependencies:
- tslib: 2.6.1
- dev: false
-
/@smithy/types@2.2.2:
resolution: {integrity: sha512-4PS0y1VxDnELGHGgBWlDksB2LJK8TG8lcvlWxIsgR+8vROI7Ms8h1P4FQUx+ftAX2QZv5g1CJCdhdRmQKyonyw==}
engines: {node: '>=14.0.0'}
@@ -8905,15 +8568,6 @@ packages:
'@smithy/util-buffer-from': 2.0.0
tslib: 2.6.1
- /@smithy/util-waiter@2.0.5:
- resolution: {integrity: sha512-1lkkUmI/bhaDX+LIT3RiUNAn+NzPmsWjE7beMq0oQ3H1/CffaILIN67riDA0aE1YBj6xll7uWMIy4tJqc+peXw==}
- engines: {node: '>=14.0.0'}
- dependencies:
- '@smithy/abort-controller': 2.0.5
- '@smithy/types': 2.2.2
- tslib: 2.6.1
- dev: false
-
/@socket.io/component-emitter@3.1.0:
resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==}
dev: true
@@ -11909,6 +11563,10 @@ packages:
dev: true
optional: true
+ /abbrev@1.1.1:
+ resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
+ dev: false
+
/abbrev@2.0.0:
resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
@@ -12191,6 +11849,10 @@ packages:
default-require-extensions: 3.0.1
dev: true
+ /aproba@2.0.0:
+ resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
+ dev: false
+
/archiver-utils@2.1.0:
resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==}
engines: {node: '>= 6'}
@@ -12222,6 +11884,14 @@ packages:
resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==}
dev: true
+ /are-we-there-yet@3.0.1:
+ resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==}
+ engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
+ dependencies:
+ delegates: 1.0.0
+ readable-stream: 3.6.2
+ dev: false
+
/arg@5.0.2:
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
@@ -13452,6 +13122,11 @@ packages:
/color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ /color-support@1.1.3:
+ resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
+ hasBin: true
+ dev: false
+
/colorette@2.0.20:
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
@@ -13597,6 +13272,10 @@ packages:
resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==}
dev: true
+ /console-control-strings@1.1.0:
+ resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
+ dev: false
+
/constants-browserify@1.0.0:
resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==}
dev: true
@@ -14111,6 +13790,10 @@ packages:
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
engines: {node: '>=0.4.0'}
+ /delegates@1.0.0:
+ resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
+ dev: false
+
/denque@2.1.0:
resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==}
engines: {node: '>=0.10'}
@@ -14150,6 +13833,11 @@ packages:
engines: {node: '>=12.20'}
dev: false
+ /detect-libc@2.0.2:
+ resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
+ engines: {node: '>=8'}
+ dev: false
+
/detect-newline@3.1.0:
resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
engines: {node: '>=8'}
@@ -14366,10 +14054,6 @@ packages:
stream-shift: 1.0.1
dev: true
- /duration-fns@3.0.2:
- resolution: {integrity: sha512-w82IXh/6aWNHFA0qlQazJYJrZTWieTItuuGTE7YX4cxPaZTWhmVImbsBBiMK1/OhGDgiinuCpJoSFILYLDSKDg==}
- dev: false
-
/eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
@@ -15408,6 +15092,10 @@ packages:
jest-util: 29.6.2
dev: true
+ /exponential-backoff@3.1.1:
+ resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==}
+ dev: false
+
/express@4.18.2:
resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==}
engines: {node: '>= 0.10.0'}
@@ -15930,6 +15618,20 @@ packages:
resolution: {integrity: sha512-Api1mJL+Ad7W7vnDZnWq5pGaXJjyencT+iKGia2PlHUcSsSzWwIQ3S1isiMpwpavjYtGd2FzhUIhnnhOULZgDw==}
dev: true
+ /gauge@4.0.4:
+ resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==}
+ engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
+ dependencies:
+ aproba: 2.0.0
+ color-support: 1.1.3
+ console-control-strings: 1.1.0
+ has-unicode: 2.0.1
+ signal-exit: 3.0.7
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wide-align: 1.1.5
+ dev: false
+
/gensync@1.0.0-beta.2:
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
engines: {node: '>=6.9.0'}
@@ -16324,6 +16026,10 @@ packages:
dependencies:
has-symbols: 1.0.3
+ /has-unicode@2.0.1:
+ resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
+ dev: false
+
/has-yarn@2.1.0:
resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==}
engines: {node: '>=8'}
@@ -16725,23 +16431,10 @@ packages:
/i18next-intervalplural-postprocessor@3.0.0:
resolution: {integrity: sha512-ZJWg2Gcb0kQqVI7kygLj9wVwQHK3mzRAg94uLsdoHqss0M9n0HSPr1pThd2AttkBsJFWR26G18hnKCqcTB8shQ==}
- /i18next-localstorage-backend@4.1.1:
- resolution: {integrity: sha512-gz3OP6m0jygF2SAzarDSFpaziYzF8mS8DP/pEUze+kDquzHTz2sy/eshcSkmFEYyGXMC037xUtlT97bNGlpZPA==}
- dependencies:
- '@babel/runtime': 7.22.10
- dev: false
-
/i18next-multiload-backend-adapter@2.2.2:
resolution: {integrity: sha512-GQ4PPRk7gTwWYblFavR2mJRHRwaFGfJ4Hk7JFGJLGKxGN7s0vtPFCkKYW6Re0bsywiCpoYqDOtB2ih+JLwjSwA==}
dev: false
- /i18next-resources-for-ts@1.3.0:
- resolution: {integrity: sha512-tOjKisBF0j1XnjX5V/55eagHl996S7rYahtMlbdkuhkKJuYySmb/+sf7QZkiG/gTLZ7KqqCtGGj6jNejxXIKfg==}
- hasBin: true
- dependencies:
- '@babel/runtime': 7.22.10
- dev: true
-
/i18next-resources-to-backend@1.1.4:
resolution: {integrity: sha512-hMyr9AOmIea17AOaVe1srNxK/l3mbk81P7Uf3fdcjlw3ehZy3UNTd0OP3EEi6yu4J02kf9jzhCcjokz6AFlEOg==}
dependencies:
@@ -18641,6 +18334,14 @@ packages:
lit-html: 2.8.0
dev: true
+ /little-state-machine@4.8.0(react@18.2.0):
+ resolution: {integrity: sha512-xfi5+iDxTLhu0hbnNubUs+qoQQqxhtEZeObP5ELjUlHnl74bbasY7mOonsGQrAouyrbag3ebNLSse5xX1T7buQ==}
+ peerDependencies:
+ react: ^18 || 18
+ dependencies:
+ react: 18.2.0
+ dev: true
+
/load-plugin@5.1.0:
resolution: {integrity: sha512-Lg1CZa1CFj2CbNaxijTL6PCbzd4qGTlZov+iH2p5Xwy/ApcZJh+i6jMN2cYePouTfjJfrNu3nXFdEw8LvbjPFQ==}
dependencies:
@@ -20011,16 +19712,6 @@ packages:
react: 18.2.0
react-i18next: 13.2.0(i18next@23.4.6)(react-dom@18.2.0)(react@18.2.0)
- /next-router-mock@0.9.9(next@13.4.19)(react@18.2.0):
- resolution: {integrity: sha512-2o50zr+5pWj0zzcvBEWNHDlmWmlDExPdX5OuXKW2aCxV85XUA6MlELr0n0f0wtXj5dUVZ8qspHj6YwF7KZHrbA==}
- peerDependencies:
- next: '>=10.0.0 || 13'
- react: ^18 || 18
- dependencies:
- next: 13.4.19(@babel/core@7.22.11)(react-dom@18.2.0)(react@18.2.0)
- react: 18.2.0
- dev: true
-
/next-seo@6.1.0(next@13.4.19)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-iMBpFoJsR5zWhguHJvsoBDxDSmdYTHtnVPB1ij+CD0NReQCP78ZxxbdL9qkKIf4oEuZEqZkrjAQLB0bkII7RYA==}
peerDependencies:
@@ -20163,6 +19854,13 @@ packages:
lower-case: 2.0.2
tslib: 2.6.1
+ /node-abi@3.47.0:
+ resolution: {integrity: sha512-2s6B2CWZM//kPgwnuI0KrYwNjfdByE25zvAaEpq9IH4zcNsarH8Ihu/UuX6XMPEogDAxkuUFeZn60pXNHAqn3A==}
+ engines: {node: '>=10'}
+ dependencies:
+ semver: 7.5.4
+ dev: false
+
/node-abort-controller@3.1.1:
resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==}
dev: true
@@ -20216,6 +19914,26 @@ packages:
resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==}
hasBin: true
+ /node-gyp@9.4.0:
+ resolution: {integrity: sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==}
+ engines: {node: ^12.13 || ^14.13 || >=16}
+ hasBin: true
+ dependencies:
+ env-paths: 2.2.1
+ exponential-backoff: 3.1.1
+ glob: 7.2.3
+ graceful-fs: 4.2.11
+ make-fetch-happen: 11.1.1
+ nopt: 6.0.0
+ npmlog: 6.0.2
+ rimraf: 3.0.2
+ semver: 7.5.4
+ tar: 6.1.15
+ which: 2.0.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
/node-int64@0.4.0:
resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
@@ -20263,6 +19981,14 @@ packages:
/node-releases@2.0.13:
resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==}
+ /nopt@6.0.0:
+ resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==}
+ engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
+ hasBin: true
+ dependencies:
+ abbrev: 1.1.1
+ dev: false
+
/nopt@7.2.0:
resolution: {integrity: sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
@@ -20381,6 +20107,16 @@ packages:
path-key: 4.0.0
dev: false
+ /npmlog@6.0.2:
+ resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==}
+ engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
+ dependencies:
+ are-we-there-yet: 3.0.1
+ console-control-strings: 1.1.0
+ gauge: 4.0.4
+ set-blocking: 2.0.0
+ dev: false
+
/nth-check@2.1.1:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
dependencies:
@@ -22030,7 +21766,29 @@ packages:
dependencies:
'@babel/runtime': 7.22.10
react: 18.2.0
- dev: false
+
+ /react-hook-form-mantine@2.0.0(@mantine/core@6.0.19)(@mantine/dates@6.0.19)(react-dom@18.2.0)(react-hook-form@7.45.4)(react@18.2.0):
+ resolution: {integrity: sha512-/vHi2wm9sU2cWR/wAJ1hsH/TZzlu6z/zxQNR4jUVPcB6Bz9+HKGdWk6Di9snqYG3rOBbWqR93BIBE1cyxcK8OA==}
+ peerDependencies:
+ '@mantine/core': ^6.0.0
+ '@mantine/dates': ^6.0.0
+ react: ^18.2.0 || 18
+ react-dom: ^18.2.0 || 18
+ react-hook-form: ^7.43
+ dependencies:
+ '@mantine/core': 6.0.19(@emotion/react@11.11.1)(@mantine/hooks@6.0.19)(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0)
+ '@mantine/dates': 6.0.19(@mantine/core@6.0.19)(@mantine/hooks@6.0.19)(dayjs@1.11.9)(react@18.2.0)
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ react-hook-form: 7.45.4(react@18.2.0)
+
+ /react-hook-form@7.45.4(react@18.2.0):
+ resolution: {integrity: sha512-HGDV1JOOBPZj10LB3+OZgfDBTn+IeEsNOKiq/cxbQAIbKaiJUe/KV8DBUzsx0Gx/7IG/orWqRRm736JwOfUSWQ==}
+ engines: {node: '>=12.22.0'}
+ peerDependencies:
+ react: ^18 || 18
+ dependencies:
+ react: 18.2.0
/react-hook-tracer@1.4.0(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-RX3JFlDmw5Q8LWltp0XRtMQ2VgaZF0QeuL4IfNwAA2eG4ASF7qaxBu7UOMGk9wrZB0NC6zV4R63osRas5ZrQGA==}
@@ -22169,6 +21927,14 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: true
+ /react-simple-animate@3.5.2(react-dom@18.2.0):
+ resolution: {integrity: sha512-xLE65euP920QMTOmv5haPlml+hmOPDkbIr5WeF7ADIXWBYt5kW/vwpNfWg8EKMab8aeDxIZ6QjffVh8v2dUyhg==}
+ peerDependencies:
+ react-dom: ^18 || 18
+ dependencies:
+ react-dom: 18.2.0(react@18.2.0)
+ dev: true
+
/react-ssr-prepass@1.5.0(react@18.2.0):
resolution: {integrity: sha512-yFNHrlVEReVYKsLI5lF05tZoHveA5pGzjFbFJY/3pOqqjGOmMmqx83N4hIjN2n6E1AOa+eQEUxs3CgRnPmT0RQ==}
peerDependencies:
@@ -24937,6 +24703,17 @@ packages:
dependencies:
react: 18.2.0
+ /use-deep-compare-effect@1.8.1(react@18.2.0):
+ resolution: {integrity: sha512-kbeNVZ9Zkc0RFGpfMN3MNfaKNvcLNyxOAAd9O4CBZ+kCBXXscn9s/4I+8ytUER4RDpEYs5+O6Rs4PqiZ+rHr5Q==}
+ engines: {node: '>=10', npm: '>=6'}
+ peerDependencies:
+ react: ^18 || 18
+ dependencies:
+ '@babel/runtime': 7.22.10
+ dequal: 2.0.3
+ react: 18.2.0
+ dev: true
+
/use-isomorphic-layout-effect@1.1.2(@types/react@18.2.21)(react@18.2.0):
resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==}
peerDependencies:
@@ -25276,6 +25053,26 @@ packages:
- bufferutil
- utf-8-validate
+ /webpack-bundle-analyzer@4.9.0:
+ resolution: {integrity: sha512-+bXGmO1LyiNx0i9enBu3H8mv42sj/BJWhZNFwjz92tVnBa9J3JMGo2an2IXlEleoDOPn/Hofl5hr/xCpObUDtw==}
+ engines: {node: '>= 10.13.0'}
+ hasBin: true
+ dependencies:
+ '@discoveryjs/json-ext': 0.5.7
+ acorn: 8.10.0
+ acorn-walk: 8.2.0
+ chalk: 4.1.2
+ commander: 7.2.0
+ gzip-size: 6.0.0
+ lodash: 4.17.21
+ opener: 1.5.2
+ sirv: 1.0.19
+ ws: 7.5.9
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+ dev: true
+
/webpack-dev-middleware@6.1.1(webpack@5.88.2):
resolution: {integrity: sha512-y51HrHaFeeWir0YO4f0g+9GwZawuigzcAdRNon6jErXy/SqV/+O6eaVAzDqE6t3e3NpGeR5CS+cCDaTC+V3yEQ==}
engines: {node: '>= 14.15.0'}
@@ -25444,6 +25241,12 @@ packages:
dependencies:
isexe: 2.0.0
+ /wide-align@1.1.5:
+ resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
+ dependencies:
+ string-width: 4.2.3
+ dev: false
+
/widest-line@3.1.0:
resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==}
engines: {node: '>=8'}