From 351834633ff02daa4c686e63a5bcbec7292e9fc3 Mon Sep 17 00:00:00 2001
From: Divlo
Date: Sun, 28 Aug 2022 18:26:56 +0200
Subject: [PATCH] refactor: usage of `useForm` hook from `react-component-form`
---
components/Application/Application.tsx | 2 +-
.../ChannelSettings/ChannelSettings.tsx | 37 +-
components/Application/Channels/Channel.tsx | 2 +-
.../Application/ConfirmPopup/ConfirmPopup.tsx | 2 +-
.../CreateChannel/CreateChannel.tsx | 24 +-
.../Application/CreateGuild/CreateGuild.tsx | 32 +-
.../GuildSettings/GuildSettings.tsx | 47 +-
.../JoinGuildsPublic/GuildPublic.tsx | 2 +-
.../Application/PopupGuild/PopupGuild.tsx | 2 +-
.../Application/SendMessage/SendMessage.tsx | 2 +-
components/Application/Sidebar/Sidebar.tsx | 2 +-
.../Application/UserSettings/UserSettings.tsx | 64 +-
components/Authentication/Authentication.tsx | 44 +-
.../Authentication/AuthenticationForm.tsx | 2 +-
components/Header/Language/Language.tsx | 31 +-
components/design/Button/Button.tsx | 2 +-
components/design/Checkbox/Checkbox.tsx | 2 +-
components/design/FormState/FormState.tsx | 4 +-
components/design/IconButton/IconButton.tsx | 2 +-
components/design/IconLink/IconLink.tsx | 2 +-
components/design/Input/Input.tsx | 2 +-
components/design/Main/Main.tsx | 2 +-
.../SocialMediaButton/SocialMediaButton.tsx | 2 +-
.../useForm/getErrorTranslationKey.cy.ts | 71 -
.../hooks/useForm/handleCheckboxBoolean.cy.ts | 22 -
.../replaceEmptyStringInObjectToNull.cy.ts | 20 -
generators/component/Component.tsx.hbs | 2 +-
hooks/useClickOutsideAlerter.ts | 22 +
hooks/useFetchState.ts | 15 -
hooks/useForm/getErrorTranslationKey.ts | 19 -
hooks/useForm/handleCheckboxBoolean.ts | 25 -
hooks/useForm/index.ts | 1 -
.../replaceEmptyStringInObjectToNull.ts | 19 -
hooks/useForm/useForm.ts | 134 --
hooks/useFormTranslation.ts | 60 +
hooks/usePagination.ts | 2 +-
locales/en/errors.json | 2 +-
locales/fr/errors.json | 2 +-
models/Guild.ts | 2 +-
package-lock.json | 1222 +++++++----------
package.json | 28 +-
pages/authentication/forgot-password.tsx | 29 +-
pages/authentication/reset-password.tsx | 23 +-
tools/ajv.ts | 26 -
44 files changed, 818 insertions(+), 1241 deletions(-)
delete mode 100644 cypress/component/hooks/useForm/getErrorTranslationKey.cy.ts
delete mode 100644 cypress/component/hooks/useForm/handleCheckboxBoolean.cy.ts
delete mode 100644 cypress/component/hooks/useForm/replaceEmptyStringInObjectToNull.cy.ts
create mode 100644 hooks/useClickOutsideAlerter.ts
delete mode 100644 hooks/useFetchState.ts
delete mode 100644 hooks/useForm/getErrorTranslationKey.ts
delete mode 100644 hooks/useForm/handleCheckboxBoolean.ts
delete mode 100644 hooks/useForm/index.ts
delete mode 100644 hooks/useForm/replaceEmptyStringInObjectToNull.ts
delete mode 100644 hooks/useForm/useForm.ts
create mode 100644 hooks/useFormTranslation.ts
delete mode 100644 tools/ajv.ts
diff --git a/components/Application/Application.tsx b/components/Application/Application.tsx
index 78fcd6f..ff1a3a0 100644
--- a/components/Application/Application.tsx
+++ b/components/Application/Application.tsx
@@ -1,7 +1,7 @@
import { useState, useEffect } from 'react'
import Image from 'next/image'
import { PlusIcon, MenuIcon, UsersIcon, XIcon } from '@heroicons/react/solid'
-import classNames from 'classnames'
+import classNames from 'clsx'
import { useMediaQuery } from 'react-responsive'
import { useSwipeable } from 'react-swipeable'
diff --git a/components/Application/ChannelSettings/ChannelSettings.tsx b/components/Application/ChannelSettings/ChannelSettings.tsx
index 1dbcfc3..1837c6f 100644
--- a/components/Application/ChannelSettings/ChannelSettings.tsx
+++ b/components/Application/ChannelSettings/ChannelSettings.tsx
@@ -1,11 +1,11 @@
import { useRouter } from 'next/router'
import { useState } from 'react'
-import { Form } from 'react-component-form'
+import { Form, useForm } from 'react-component-form'
import useTranslation from 'next-translate/useTranslation'
-import classNames from 'classnames'
+import classNames from 'clsx'
import axios from 'axios'
+import type { HandleUseFormCallback } from 'react-component-form'
-import { HandleSubmitCallback, useForm } from '../../../hooks/useForm'
import { FormState } from '../../design/FormState'
import { useGuildMember } from '../../../contexts/GuildMember'
import { Input } from '../../design/Input'
@@ -17,6 +17,11 @@ import {
ChannelWithDefaultChannelId
} from '../../../models/Channel'
import { ConfirmPopup } from '../ConfirmPopup'
+import { useFormTranslation } from '../../../hooks/useFormTranslation'
+
+const schema = {
+ name: channelSchema.name
+}
export interface ChannelSettingsProps {
channel: Channel
@@ -41,25 +46,19 @@ export const ChannelSettings: React.FC = (props) => {
}
const {
+ handleUseForm,
fetchState,
message,
errors,
- getErrorTranslation,
- handleSubmit,
setFetchState,
- setMessageTranslationKey
- } = useForm({
- validateSchema: {
- name: channelSchema.name
- },
- replaceEmptyStringToNull: true,
- resetOnSuccess: false
- })
+ setMessage
+ } = useForm(schema)
+ const { getFirstErrorTranslation } = useFormTranslation()
- const onSubmit: HandleSubmitCallback = async (formData) => {
+ const onSubmit: HandleUseFormCallback = async (formData) => {
try {
await authentication.api.put(`/channels/${channel.id}`, formData)
- setInputValues(formData as any)
+ setInputValues(formData)
await router.push(`/application/${guild.id}/${channel.id}`)
return null
} catch (error) {
@@ -91,9 +90,9 @@ export const ChannelSettings: React.FC = (props) => {
} catch (error) {
setFetchState('error')
if (axios.isAxiosError(error) && error.response?.status === 400) {
- setMessageTranslationKey('application:delete-channel-only-one')
+ setMessage('application:delete-channel-only-one')
} else {
- setMessageTranslationKey('errors:server-error')
+ setMessage('errors:server-error')
}
}
}
@@ -101,7 +100,7 @@ export const ChannelSettings: React.FC = (props) => {
return (
<>
-
+
)
}
diff --git a/components/Authentication/AuthenticationForm.tsx b/components/Authentication/AuthenticationForm.tsx
index 52cb56c..5d17d13 100644
--- a/components/Authentication/AuthenticationForm.tsx
+++ b/components/Authentication/AuthenticationForm.tsx
@@ -1,4 +1,4 @@
-import classNames from 'classnames'
+import classNames from 'clsx'
import { Form, FormProps } from 'react-component-form'
export const AuthenticationForm: React.FC = (props) => {
diff --git a/components/Header/Language/Language.tsx b/components/Header/Language/Language.tsx
index 82c17cb..adc511e 100644
--- a/components/Header/Language/Language.tsx
+++ b/components/Header/Language/Language.tsx
@@ -1,11 +1,12 @@
-import { useCallback, useEffect, useState, useRef } from 'react'
+import { useCallback, useState, useRef } from 'react'
import useTranslation from 'next-translate/useTranslation'
import setLanguage from 'next-translate/setLanguage'
-import classNames from 'classnames'
+import classNames from 'clsx'
+import i18n from '../../../i18n.json'
import { Arrow } from './Arrow'
import { LanguageFlag } from './LanguageFlag'
-import i18n from '../../../i18n.json'
+import { useClickOutsideAlerter } from '../../../hooks/useClickOutsideAlerter'
export interface LanguageProps {
className?: string
@@ -21,31 +22,19 @@ export const Language: React.FC = (props) => {
setHiddenMenu((oldHiddenMenu) => !oldHiddenMenu)
}, [])
- useEffect(() => {
- const handleClickEvent = (event: MouseEvent): void => {
- if (languageClickRef.current == null || event.target == null) {
- return
- }
- if (!languageClickRef.current.contains(event.target as Node)) {
- setHiddenMenu(true)
- }
- }
-
- window.document.addEventListener('click', handleClickEvent)
-
- return () => {
- return window.removeEventListener('click', handleClickEvent)
- }
- }, [])
+ useClickOutsideAlerter(languageClickRef, () => setHiddenMenu(true))
const handleLanguage = async (language: string): Promise => {
await setLanguage(language)
+ handleHiddenMenu()
}
return (
-
+
{
className?: string
diff --git a/components/design/FormState/FormState.tsx b/components/design/FormState/FormState.tsx
index bda8afc..a728387 100644
--- a/components/design/FormState/FormState.tsx
+++ b/components/design/FormState/FormState.tsx
@@ -1,7 +1,7 @@
-import classNames from 'classnames'
+import classNames from 'clsx'
import useTranslation from 'next-translate/useTranslation'
+import type { FetchState as FormStateType } from 'react-component-form'
-import { FetchState as FormStateType } from '../../../hooks/useFetchState'
import { Loader } from '../Loader'
export interface FormStateProps extends React.ComponentPropsWithoutRef<'div'> {
diff --git a/components/design/IconButton/IconButton.tsx b/components/design/IconButton/IconButton.tsx
index 2ca40d3..c944bd1 100644
--- a/components/design/IconButton/IconButton.tsx
+++ b/components/design/IconButton/IconButton.tsx
@@ -1,4 +1,4 @@
-import classNames from 'classnames'
+import classNames from 'clsx'
export interface IconButtonProps
extends React.ComponentPropsWithoutRef<'button'> {}
diff --git a/components/design/IconLink/IconLink.tsx b/components/design/IconLink/IconLink.tsx
index 76b3e3c..f5e5cb4 100644
--- a/components/design/IconLink/IconLink.tsx
+++ b/components/design/IconLink/IconLink.tsx
@@ -1,5 +1,5 @@
import Link from 'next/link'
-import classNames from 'classnames'
+import classNames from 'clsx'
export interface IconLinkProps {
selected?: boolean
diff --git a/components/design/Input/Input.tsx b/components/design/Input/Input.tsx
index 1c94e05..3c48a3c 100644
--- a/components/design/Input/Input.tsx
+++ b/components/design/Input/Input.tsx
@@ -1,7 +1,7 @@
import { useState } from 'react'
import Link from 'next/link'
import useTranslation from 'next-translate/useTranslation'
-import classNames from 'classnames'
+import classNames from 'clsx'
import { FormState } from '../FormState'
diff --git a/components/design/Main/Main.tsx b/components/design/Main/Main.tsx
index 37d2593..bce1d26 100644
--- a/components/design/Main/Main.tsx
+++ b/components/design/Main/Main.tsx
@@ -1,4 +1,4 @@
-import classNames from 'classnames'
+import classNames from 'clsx'
export interface MainProps {
className?: string
diff --git a/components/design/SocialMediaButton/SocialMediaButton.tsx b/components/design/SocialMediaButton/SocialMediaButton.tsx
index 531ea20..150e809 100644
--- a/components/design/SocialMediaButton/SocialMediaButton.tsx
+++ b/components/design/SocialMediaButton/SocialMediaButton.tsx
@@ -1,6 +1,6 @@
import { useMemo } from 'react'
import Image from 'next/image'
-import classNames from 'classnames'
+import classNames from 'clsx'
import { ProviderOAuth } from '../../../models/OAuth'
diff --git a/cypress/component/hooks/useForm/getErrorTranslationKey.cy.ts b/cypress/component/hooks/useForm/getErrorTranslationKey.cy.ts
deleted file mode 100644
index 55f9bc8..0000000
--- a/cypress/component/hooks/useForm/getErrorTranslationKey.cy.ts
+++ /dev/null
@@ -1,71 +0,0 @@
-import type { ErrorObject } from 'ajv'
-
-import { getErrorTranslationKey } from '../../../../hooks/useForm/getErrorTranslationKey'
-
-const errorObject: ErrorObject = {
- instancePath: '/path',
- keyword: 'keyword',
- params: {},
- schemaPath: '/path'
-}
-
-describe('hooks/useForm/getErrorTranslationKey', () => {
- it('returns `errors:invalid` with unknown keyword', () => {
- expect(
- getErrorTranslationKey({
- ...errorObject,
- keyword: 'unknownkeyword'
- })
- ).equal('errors:invalid')
- })
-
- it('returns `errors:invalid` with format != email', () => {
- expect(
- getErrorTranslationKey({
- ...errorObject,
- keyword: 'format',
- params: { format: 'email' }
- })
- ).equal('errors:email')
- })
-
- it('returns `errors:email` with format = email', () => {
- expect(
- getErrorTranslationKey({
- ...errorObject,
- keyword: 'format',
- params: { format: 'email' }
- })
- ).equal('errors:email')
- })
-
- it('returns `errors:required` with minLength and limit = 1', () => {
- expect(
- getErrorTranslationKey({
- ...errorObject,
- keyword: 'minLength',
- params: { limit: 1 }
- })
- ).equal('errors:required')
- })
-
- it('returns `errors:minLength` with minLength and limit > 1', () => {
- expect(
- getErrorTranslationKey({
- ...errorObject,
- keyword: 'minLength',
- params: { limit: 5 }
- })
- ).equal('errors:minLength')
- })
-
- it('returns `errors:maxLength` with maxLength', () => {
- expect(
- getErrorTranslationKey({
- ...errorObject,
- keyword: 'maxLength',
- params: { limit: 5 }
- })
- ).equal('errors:maxLength')
- })
-})
diff --git a/cypress/component/hooks/useForm/handleCheckboxBoolean.cy.ts b/cypress/component/hooks/useForm/handleCheckboxBoolean.cy.ts
deleted file mode 100644
index fc8c799..0000000
--- a/cypress/component/hooks/useForm/handleCheckboxBoolean.cy.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { Type } from '@sinclair/typebox'
-
-import { handleCheckboxBoolean } from '../../../../hooks/useForm/handleCheckboxBoolean'
-
-const schema = Type.Object({
- myBoolean: Type.Boolean(),
- myString: Type.String()
-})
-
-describe('hooks/useForm/handleCheckboxBoolean', () => {
- it('should convert all checkbox property to boolean', () => {
- const object = {
- myBoolean: 'on',
- myString: 'on'
- }
- const result = handleCheckboxBoolean(object, schema)
- expect(result).deep.equal({
- myBoolean: true,
- myString: 'on'
- })
- })
-})
diff --git a/cypress/component/hooks/useForm/replaceEmptyStringInObjectToNull.cy.ts b/cypress/component/hooks/useForm/replaceEmptyStringInObjectToNull.cy.ts
deleted file mode 100644
index e710a9f..0000000
--- a/cypress/component/hooks/useForm/replaceEmptyStringInObjectToNull.cy.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { replaceEmptyStringInObjectToNull } from '../../../../hooks/useForm/replaceEmptyStringInObjectToNull'
-
-describe('hooks/useForm/replaceEmptyStringInObjectToNull', () => {
- it('should replace empty string in object to null except for required properties', () => {
- expect(
- replaceEmptyStringInObjectToNull(
- {
- foo: '',
- bar: 'bar',
- baz: ''
- },
- ['baz']
- )
- ).deep.equal({
- foo: null,
- bar: 'bar',
- baz: ''
- })
- })
-})
diff --git a/generators/component/Component.tsx.hbs b/generators/component/Component.tsx.hbs
index d53bb0a..9707f88 100644
--- a/generators/component/Component.tsx.hbs
+++ b/generators/component/Component.tsx.hbs
@@ -1,4 +1,4 @@
-import classNames from 'classnames'
+import classNames from 'clsx'
export interface {{ properCase name }}Props {
className?: string
diff --git a/hooks/useClickOutsideAlerter.ts b/hooks/useClickOutsideAlerter.ts
new file mode 100644
index 0000000..692f687
--- /dev/null
+++ b/hooks/useClickOutsideAlerter.ts
@@ -0,0 +1,22 @@
+import { useEffect } from 'react'
+
+export const useClickOutsideAlerter = (
+ ref: React.RefObject
,
+ callback: () => void
+): void => {
+ useEffect(() => {
+ const handleClickOutside = (event: MouseEvent): void => {
+ if (
+ event.target != null &&
+ ref.current != null &&
+ !ref.current.contains(event.target as Node)
+ ) {
+ callback()
+ }
+ }
+ document.addEventListener('mousedown', handleClickOutside)
+ return () => {
+ document.removeEventListener('mousedown', handleClickOutside)
+ }
+ }, [ref, callback])
+}
diff --git a/hooks/useFetchState.ts b/hooks/useFetchState.ts
deleted file mode 100644
index b65ea29..0000000
--- a/hooks/useFetchState.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { useState } from 'react'
-
-export const fetchState = ['idle', 'loading', 'error', 'success'] as const
-
-export type FetchState = typeof fetchState[number]
-
-export const useFetchState = (
- initialFetchState: FetchState = 'idle'
-): [
- fetchState: FetchState,
- setFetchState: React.Dispatch>
-] => {
- const [fetchState, setFetchState] = useState(initialFetchState)
- return [fetchState, setFetchState]
-}
diff --git a/hooks/useForm/getErrorTranslationKey.ts b/hooks/useForm/getErrorTranslationKey.ts
deleted file mode 100644
index f74dbf9..0000000
--- a/hooks/useForm/getErrorTranslationKey.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import type { ErrorObject } from 'ajv'
-
-const knownErrorKeywords = ['minLength', 'maxLength', 'format']
-
-export const getErrorTranslationKey = (error: ErrorObject): string => {
- if (knownErrorKeywords.includes(error?.keyword)) {
- if (error.keyword === 'minLength' && error.params.limit === 1) {
- return 'errors:required'
- }
- if (error.keyword === 'format') {
- if (error.params.format === 'email') {
- return 'errors:email'
- }
- return 'errors:invalid'
- }
- return `errors:${error.keyword}`
- }
- return 'errors:invalid'
-}
diff --git a/hooks/useForm/handleCheckboxBoolean.ts b/hooks/useForm/handleCheckboxBoolean.ts
deleted file mode 100644
index dcc6f6f..0000000
--- a/hooks/useForm/handleCheckboxBoolean.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import type { TObject } from '@sinclair/typebox'
-
-import type { ObjectAny } from '../../tools/types'
-
-export const handleCheckboxBoolean = (
- object: ObjectAny,
- validateSchemaObject: TObject
-): ObjectAny => {
- const booleanProperties: string[] = []
- for (const property in validateSchemaObject.properties) {
- const rule = validateSchemaObject.properties[property]
- if (rule.type === 'boolean') {
- booleanProperties.push(property)
- }
- }
- for (const booleanProperty of booleanProperties) {
- if (object[booleanProperty] == null) {
- object[booleanProperty] =
- validateSchemaObject.properties[booleanProperty].default
- } else {
- object[booleanProperty] = object[booleanProperty] === 'on'
- }
- }
- return object
-}
diff --git a/hooks/useForm/index.ts b/hooks/useForm/index.ts
deleted file mode 100644
index f65863c..0000000
--- a/hooks/useForm/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from './useForm'
diff --git a/hooks/useForm/replaceEmptyStringInObjectToNull.ts b/hooks/useForm/replaceEmptyStringInObjectToNull.ts
deleted file mode 100644
index fc68b7d..0000000
--- a/hooks/useForm/replaceEmptyStringInObjectToNull.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import type { ObjectAny } from '../../tools/types'
-
-export const replaceEmptyStringInObjectToNull = (
- object: ObjectAny,
- required: string[] = []
-): ObjectAny => {
- return Object.fromEntries(
- Object.entries(object).map(([key, value]) => {
- if (
- typeof value === 'string' &&
- value.length === 0 &&
- !required.includes(key)
- ) {
- return [key, null]
- }
- return [key, value]
- })
- )
-}
diff --git a/hooks/useForm/useForm.ts b/hooks/useForm/useForm.ts
deleted file mode 100644
index c203148..0000000
--- a/hooks/useForm/useForm.ts
+++ /dev/null
@@ -1,134 +0,0 @@
-import { useMemo, useState } from 'react'
-import useTranslation from 'next-translate/useTranslation'
-import { Type } from '@sinclair/typebox'
-import type { HandleForm } from 'react-component-form'
-import type { ErrorObject } from 'ajv'
-
-import { FetchState, useFetchState } from '../useFetchState'
-import { ajv } from '../../tools/ajv'
-import { getErrorTranslationKey } from './getErrorTranslationKey'
-import { replaceEmptyStringInObjectToNull } from './replaceEmptyStringInObjectToNull'
-import type { ObjectAny } from '../../tools/types'
-import { handleCheckboxBoolean } from './handleCheckboxBoolean'
-
-interface Errors {
- [key: string]: ErrorObject | null | undefined
-}
-
-const findError = (
- field: string
-): ((value: ErrorObject, index: number, object: ErrorObject[]) => boolean) => {
- return (validationError) => validationError.instancePath === field
-}
-
-export type GetErrorTranslation = (error?: ErrorObject | null) => string | null
-
-export interface UseFormOptions {
- validateSchema: { [key: string]: any }
- replaceEmptyStringToNull?: boolean
- resetOnSuccess?: boolean
-}
-
-export type HandleSubmit = (callback: HandleSubmitCallback) => HandleForm
-
-interface Message {
- type: 'error' | 'success'
- value: string
-}
-
-export type HandleSubmitCallback = (
- formData: ObjectAny,
- formElement: HTMLFormElement
-) => Promise
-
-export interface UseFormResult {
- message: string | null
- setMessageTranslationKey: React.Dispatch<
- React.SetStateAction
- >
- fetchState: FetchState
- setFetchState: React.Dispatch>
- getErrorTranslation: GetErrorTranslation
- handleSubmit: HandleSubmit
- errors: Errors
-}
-
-export const useForm = (options: UseFormOptions): UseFormResult => {
- const {
- validateSchema,
- replaceEmptyStringToNull = false,
- resetOnSuccess = false
- } = options
- const { t } = useTranslation()
- const [fetchState, setFetchState] = useFetchState()
- const [messageTranslationKey, setMessageTranslationKey] = useState<
- string | undefined
- >(undefined)
- const [errors, setErrors] = useState({})
-
- const validateSchemaObject = useMemo(() => {
- return Type.Object(validateSchema)
- }, [validateSchema])
-
- const validate = useMemo(() => {
- return ajv.compile(validateSchemaObject)
- }, [validateSchemaObject])
-
- const getErrorTranslation = (error?: ErrorObject | null): string | null => {
- if (error != null) {
- return t(getErrorTranslationKey(error)).replace(
- '{expected}',
- error?.params?.limit
- )
- }
- return null
- }
-
- const handleSubmit: HandleSubmit = (callback) => {
- return async (formData: ObjectAny, formElement) => {
- setErrors({})
- setMessageTranslationKey(undefined)
- if (replaceEmptyStringToNull) {
- formData = replaceEmptyStringInObjectToNull(
- formData,
- validateSchemaObject.required
- )
- }
- formData = handleCheckboxBoolean(formData, validateSchemaObject)
- const isValid = validate(formData)
- if (!isValid) {
- setFetchState('error')
- const errors: Errors = {}
- for (const property in validateSchemaObject.properties) {
- errors[property] = validate.errors?.find(findError(`/${property}`))
- }
- setErrors(errors)
- } else {
- setErrors({})
- setFetchState('loading')
- const message = await callback(formData, formElement)
- if (message != null) {
- setMessageTranslationKey(message.value)
- if (message.type === 'success') {
- setFetchState('success')
- if (resetOnSuccess) {
- formElement.reset()
- }
- } else {
- setFetchState('error')
- }
- }
- }
- }
- }
-
- return {
- getErrorTranslation,
- errors,
- fetchState,
- setFetchState,
- handleSubmit,
- message: messageTranslationKey != null ? t(messageTranslationKey) : null,
- setMessageTranslationKey
- }
-}
diff --git a/hooks/useFormTranslation.ts b/hooks/useFormTranslation.ts
new file mode 100644
index 0000000..b19f82c
--- /dev/null
+++ b/hooks/useFormTranslation.ts
@@ -0,0 +1,60 @@
+import useTranslation from 'next-translate/useTranslation'
+import type { Error } from 'react-component-form'
+
+const knownErrorKeywords = ['minLength', 'maxLength', 'format']
+
+const getErrorTranslationKey = (error: Error): string => {
+ if (knownErrorKeywords.includes(error?.keyword)) {
+ if (
+ error.keyword === 'minLength' &&
+ typeof error.data === 'string' &&
+ error.data.length === 0
+ ) {
+ return 'errors:required'
+ }
+ if (error.keyword === 'format') {
+ if (error.params.format === 'email') {
+ return 'errors:invalid-email'
+ }
+ return 'errors:invalid'
+ }
+ return `errors:${error.keyword}`
+ }
+ return 'errors:invalid'
+}
+
+export type GetErrorTranslation = (
+ error: Error | undefined
+) => string | undefined
+
+export type GetFirstErrorTranslation = (
+ errors: Error[] | undefined
+) => string | undefined
+
+export interface UseFormTranslationResult {
+ getErrorTranslation: GetErrorTranslation
+ getFirstErrorTranslation: GetFirstErrorTranslation
+}
+
+export const useFormTranslation = (): UseFormTranslationResult => {
+ const { t } = useTranslation()
+
+ const getErrorTranslation: GetErrorTranslation = (error) => {
+ if (error != null) {
+ return t(getErrorTranslationKey(error)).replace(
+ '{expected}',
+ error?.params?.limit
+ )
+ }
+ return undefined
+ }
+
+ const getFirstErrorTranslation: GetFirstErrorTranslation = (errors) => {
+ if (errors != null) {
+ return getErrorTranslation(errors[0])
+ }
+ return undefined
+ }
+
+ return { getFirstErrorTranslation, getErrorTranslation }
+}
diff --git a/hooks/usePagination.ts b/hooks/usePagination.ts
index 30bf42e..f82b0e6 100644
--- a/hooks/usePagination.ts
+++ b/hooks/usePagination.ts
@@ -1,7 +1,7 @@
import { useState, useRef, useCallback } from 'react'
import { AxiosInstance } from 'axios'
+import type { FetchState } from 'react-component-form'
-import { FetchState } from './useFetchState'
import {
CacheKey,
getPaginationCache,
diff --git a/locales/en/errors.json b/locales/en/errors.json
index 02a81d6..0fb212f 100644
--- a/locales/en/errors.json
+++ b/locales/en/errors.json
@@ -7,6 +7,6 @@
"required": "Oops, this field is required 🙈.",
"minLength": "The field must contain at least {expected} characters.",
"maxLength": "The field must contain at most {expected} characters.",
- "email": "Mmm… It seems that this email is not valid 🤔.",
+ "invalid-email": "Mmm… It seems that this email is not valid 🤔.",
"invalid": "Invalid value."
}
diff --git a/locales/fr/errors.json b/locales/fr/errors.json
index a04bf82..6049a72 100644
--- a/locales/fr/errors.json
+++ b/locales/fr/errors.json
@@ -7,6 +7,6 @@
"required": "Oups, ce champ est obligatoire 🙈.",
"minLength": "Le champ doit contenir au moins {expected} caractères.",
"maxLength": "Le champ doit contenir au plus {expected} caractères.",
- "email": "Mmm… Il semblerait que cet email ne soit pas valide 🤔.",
+ "invalid-email": "Mmm… Il semblerait que cet email ne soit pas valide 🤔.",
"invalid": "Valeur invalide."
}
diff --git a/models/Guild.ts b/models/Guild.ts
index e59c62c..ac64162 100644
--- a/models/Guild.ts
+++ b/models/Guild.ts
@@ -8,7 +8,7 @@ export const guildSchema = {
id,
name: Type.String({ minLength: 1, maxLength: 30 }),
icon: Type.Union([Type.String({ format: 'uri-reference' }), Type.Null()]),
- description: Type.Union([Type.String({ maxLength: 160 }), Type.Null()]),
+ description: Type.String({ maxLength: 160 }),
createdAt: date.createdAt,
updatedAt: date.updatedAt
}
diff --git a/package-lock.json b/package-lock.json
index b3da5d1..5543364 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13,20 +13,18 @@
"@fontsource/roboto": "4.5.8",
"@heroicons/react": "1.0.6",
"@sinclair/typebox": "0.24.28",
- "ajv": "8.11.0",
- "ajv-formats": "2.1.1",
"axios": "0.26.1",
- "classnames": "2.3.1",
+ "clsx": "1.2.1",
"date-and-time": "2.4.1",
"emoji-mart": "3.0.1",
- "katex": "0.16.0",
+ "katex": "0.16.1",
"next": "12.2.5",
"next-pwa": "5.6.0",
"next-themes": "0.2.0",
"next-translate": "1.5.0",
"pretty-bytes": "6.0.0",
"react": "18.2.0",
- "react-component-form": "3.0.1",
+ "react-component-form": "3.1.0",
"react-dom": "18.2.0",
"react-infinite-scroll-component": "6.1.0",
"react-markdown": "8.0.3",
@@ -46,31 +44,31 @@
"universal-cookie": "4.0.4"
},
"devDependencies": {
- "@commitlint/cli": "17.0.3",
- "@commitlint/config-conventional": "17.0.3",
+ "@commitlint/cli": "17.1.1",
+ "@commitlint/config-conventional": "17.1.0",
"@lhci/cli": "0.9.0",
"@saithodev/semantic-release-backmerge": "2.1.2",
"@semantic-release/git": "10.0.1",
"@types/emoji-mart": "3.0.9",
"@types/hast": "2.3.4",
"@types/katex": "0.14.0",
- "@types/node": "18.7.11",
+ "@types/node": "18.7.13",
"@types/react": "18.0.17",
"@types/react-responsive": "8.0.5",
- "@types/react-syntax-highlighter": "15.5.4",
+ "@types/react-syntax-highlighter": "15.5.5",
"@types/unist": "2.0.6",
- "@typescript-eslint/eslint-plugin": "5.34.0",
- "@typescript-eslint/parser": "5.34.0",
+ "@typescript-eslint/eslint-plugin": "5.35.1",
+ "@typescript-eslint/parser": "5.35.1",
"autoprefixer": "10.4.8",
"cypress": "10.6.0",
"editorconfig-checker": "4.0.2",
- "eslint": "8.22.0",
+ "eslint": "8.23.0",
"eslint-config-conventions": "3.0.0",
"eslint-config-next": "12.2.5",
"eslint-config-prettier": "8.5.0",
"eslint-plugin-import": "2.26.0",
"eslint-plugin-prettier": "4.2.1",
- "eslint-plugin-promise": "6.0.0",
+ "eslint-plugin-promise": "6.0.1",
"eslint-plugin-unicorn": "43.0.2",
"html-w3c-validator": "1.2.0",
"husky": "8.0.1",
@@ -85,8 +83,8 @@
"serve": "14.0.1",
"start-server-and-test": "1.14.0",
"tailwindcss": "3.1.8",
- "typescript": "4.7.4",
- "vercel": "28.1.2"
+ "typescript": "4.8.2",
+ "vercel": "28.2.0"
},
"engines": {
"node": ">=16.0.0",
@@ -1749,15 +1747,15 @@
}
},
"node_modules/@commitlint/cli": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.0.3.tgz",
- "integrity": "sha512-oAo2vi5d8QZnAbtU5+0cR2j+A7PO8zuccux65R/EycwvsZrDVyW518FFrnJK2UQxbRtHFFIG+NjQ6vOiJV0Q8A==",
+ "version": "17.1.1",
+ "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.1.1.tgz",
+ "integrity": "sha512-xyQJNJs1j18At5wSBF6bMo1on6ZrpcHUr4duacznPU0RnywCAABDBP1s63BmhkTMdNXLVgVM4J1H2sG0HSS3IA==",
"dev": true,
"dependencies": {
"@commitlint/format": "^17.0.0",
- "@commitlint/lint": "^17.0.3",
- "@commitlint/load": "^17.0.3",
- "@commitlint/read": "^17.0.0",
+ "@commitlint/lint": "^17.1.0",
+ "@commitlint/load": "^17.1.1",
+ "@commitlint/read": "^17.1.0",
"@commitlint/types": "^17.0.0",
"execa": "^5.0.0",
"lodash": "^4.17.19",
@@ -1773,9 +1771,9 @@
}
},
"node_modules/@commitlint/config-conventional": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.0.3.tgz",
- "integrity": "sha512-HCnzTm5ATwwwzNVq5Y57poS0a1oOOcd5pc1MmBpLbGmSysc4i7F/++JuwtdFPu16sgM3H9J/j2zznRLOSGVO2A==",
+ "version": "17.1.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.1.0.tgz",
+ "integrity": "sha512-WU2p0c9/jLi8k2q2YrDV96Y8XVswQOceIQ/wyJvQxawJSCasLdRB3kUIYdNjOCJsxkpoUlV/b90ZPxp1MYZDiA==",
"dev": true,
"dependencies": {
"conventional-changelog-conventionalcommits": "^5.0.0"
@@ -1785,9 +1783,9 @@
}
},
"node_modules/@commitlint/config-validator": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.0.3.tgz",
- "integrity": "sha512-3tLRPQJKapksGE7Kee9axv+9z5I2GDHitDH4q63q7NmNA0wkB+DAorJ0RHz2/K00Zb1/MVdHzhCga34FJvDihQ==",
+ "version": "17.1.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.1.0.tgz",
+ "integrity": "sha512-Q1rRRSU09ngrTgeTXHq6ePJs2KrI+axPTgkNYDWSJIuS1Op4w3J30vUfSXjwn5YEJHklK3fSqWNHmBhmTR7Vdg==",
"dev": true,
"dependencies": {
"@commitlint/types": "^17.0.0",
@@ -1833,9 +1831,9 @@
}
},
"node_modules/@commitlint/is-ignored": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.0.3.tgz",
- "integrity": "sha512-/wgCXAvPtFTQZxsVxj7owLeRf5wwzcXLaYmrZPR4a87iD4sCvUIRl1/ogYrtOyUmHwWfQsvjqIB4mWE/SqWSnA==",
+ "version": "17.1.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.1.0.tgz",
+ "integrity": "sha512-JITWKDMHhIh8IpdIbcbuH9rEQJty1ZWelgjleTFrVRAcEwN/sPzk1aVUXRIZNXMJWbZj8vtXRJnFihrml8uECQ==",
"dev": true,
"dependencies": {
"@commitlint/types": "^17.0.0",
@@ -1846,12 +1844,12 @@
}
},
"node_modules/@commitlint/lint": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.0.3.tgz",
- "integrity": "sha512-2o1fk7JUdxBUgszyt41sHC/8Nd5PXNpkmuOo9jvGIjDHzOwXyV0PSdbEVTH3xGz9NEmjohFHr5l+N+T9fcxong==",
+ "version": "17.1.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.1.0.tgz",
+ "integrity": "sha512-ltpqM2ogt/+SDhUaScFo0MdscncEF96lvQTPMM/VTTWlw7sTGLLWkOOppsee2MN/uLNNWjQ7kqkd4h6JqoM9AQ==",
"dev": true,
"dependencies": {
- "@commitlint/is-ignored": "^17.0.3",
+ "@commitlint/is-ignored": "^17.1.0",
"@commitlint/parse": "^17.0.0",
"@commitlint/rules": "^17.0.0",
"@commitlint/types": "^17.0.0"
@@ -1861,27 +1859,36 @@
}
},
"node_modules/@commitlint/load": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.0.3.tgz",
- "integrity": "sha512-3Dhvr7GcKbKa/ey4QJ5MZH3+J7QFlARohUow6hftQyNjzoXXROm+RwpBes4dDFrXG1xDw9QPXA7uzrOShCd4bw==",
+ "version": "17.1.1",
+ "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.1.1.tgz",
+ "integrity": "sha512-jEgdDabfj58kFKZmB7rMtmQa7Feo7Ozh3KmvIlXWqrJmal5auO1RC0Iczfl52DlPn26Uo0goUDHrhoAFs2ze0Q==",
"dev": true,
"dependencies": {
- "@commitlint/config-validator": "^17.0.3",
+ "@commitlint/config-validator": "^17.1.0",
"@commitlint/execute-rule": "^17.0.0",
- "@commitlint/resolve-extends": "^17.0.3",
+ "@commitlint/resolve-extends": "^17.1.0",
"@commitlint/types": "^17.0.0",
- "@types/node": ">=12",
+ "@types/node": "^14.0.0",
"chalk": "^4.1.0",
"cosmiconfig": "^7.0.0",
- "cosmiconfig-typescript-loader": "^2.0.0",
+ "cosmiconfig-typescript-loader": "^3.0.0",
"lodash": "^4.17.19",
"resolve-from": "^5.0.0",
"typescript": "^4.6.4"
},
"engines": {
"node": ">=v14"
+ },
+ "peerDependencies": {
+ "ts-node": ">=10"
}
},
+ "node_modules/@commitlint/load/node_modules/@types/node": {
+ "version": "14.18.26",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.26.tgz",
+ "integrity": "sha512-0b+utRBSYj8L7XAp0d+DX7lI4cSmowNaaTkk6/1SKzbKkG+doLuPusB9EOvzLJ8ahJSk03bTLIL6cWaEd4dBKA==",
+ "dev": true
+ },
"node_modules/@commitlint/message": {
"version": "17.0.0",
"resolved": "https://registry.npmjs.org/@commitlint/message/-/message-17.0.0.tgz",
@@ -1906,27 +1913,28 @@
}
},
"node_modules/@commitlint/read": {
- "version": "17.0.0",
- "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-17.0.0.tgz",
- "integrity": "sha512-zkuOdZayKX3J6F6mPnVMzohK3OBrsEdOByIqp4zQjA9VLw1hMsDEFQ18rKgUc2adkZar+4S01QrFreDCfZgbxA==",
+ "version": "17.1.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-17.1.0.tgz",
+ "integrity": "sha512-73BoFNBA/3Ozo2JQvGsE0J8SdrJAWGfZQRSHqvKaqgmY042Su4gXQLqvAzgr55S9DI1l9TiU/5WDuh8IE86d/g==",
"dev": true,
"dependencies": {
"@commitlint/top-level": "^17.0.0",
"@commitlint/types": "^17.0.0",
"fs-extra": "^10.0.0",
- "git-raw-commits": "^2.0.0"
+ "git-raw-commits": "^2.0.0",
+ "minimist": "^1.2.6"
},
"engines": {
"node": ">=v14"
}
},
"node_modules/@commitlint/resolve-extends": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.0.3.tgz",
- "integrity": "sha512-H/RFMvrcBeJCMdnVC4i8I94108UDccIHrTke2tyQEg9nXQnR5/Hd6MhyNWkREvcrxh9Y+33JLb+PiPiaBxCtBA==",
+ "version": "17.1.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.1.0.tgz",
+ "integrity": "sha512-jqKm00LJ59T0O8O4bH4oMa4XyJVEOK4GzH8Qye9XKji+Q1FxhZznxMV/bDLyYkzbTodBt9sL0WLql8wMtRTbqQ==",
"dev": true,
"dependencies": {
- "@commitlint/config-validator": "^17.0.3",
+ "@commitlint/config-validator": "^17.1.0",
"@commitlint/types": "^17.0.0",
"import-fresh": "^3.0.0",
"lodash": "^4.17.19",
@@ -1986,28 +1994,6 @@
"node": ">=v14"
}
},
- "node_modules/@cspotcode/source-map-support": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
- "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
- "dev": true,
- "dependencies": {
- "@jridgewell/trace-mapping": "0.3.9"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
- "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
- "dev": true,
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- },
"node_modules/@cypress/request": {
"version": "2.88.10",
"resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz",
@@ -2037,20 +2023,6 @@
"node": ">= 6"
}
},
- "node_modules/@cypress/request/node_modules/form-data": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
- "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
- "dev": true,
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 0.12"
- }
- },
"node_modules/@cypress/xvfb": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz",
@@ -2071,15 +2043,15 @@
}
},
"node_modules/@edge-runtime/format": {
- "version": "1.1.0-beta.27",
- "resolved": "https://registry.npmjs.org/@edge-runtime/format/-/format-1.1.0-beta.27.tgz",
- "integrity": "sha512-67ig1yISH1M7OHxS/PxgXbrQ99X8c47GFqP6qrDx+uWw1gBnknNHIykL3OgeIt4yk1OPKKHtrLe/Gnrw9Lc9tQ==",
+ "version": "1.1.0-beta.31",
+ "resolved": "https://registry.npmjs.org/@edge-runtime/format/-/format-1.1.0-beta.31.tgz",
+ "integrity": "sha512-tUZy+LMls1TivqVb7dbC0C0IMNjwP55co6vSkTgXCl9xFos3v43bCwAzivMaJ3NR8ZuihvK1gEj8CmvoqvOt0g==",
"dev": true
},
"node_modules/@edge-runtime/primitives": {
- "version": "1.1.0-beta.27",
- "resolved": "https://registry.npmjs.org/@edge-runtime/primitives/-/primitives-1.1.0-beta.27.tgz",
- "integrity": "sha512-9RLySRgIfNhPXzqprwk5jojUec4WmVRphXIGgXmqZs/22UPF50mKcmrstPVVutGiX0mt4YkHuUarLj0VtLjX1Q==",
+ "version": "1.1.0-beta.31",
+ "resolved": "https://registry.npmjs.org/@edge-runtime/primitives/-/primitives-1.1.0-beta.31.tgz",
+ "integrity": "sha512-OO1x32aJoxgME1k77RVxVNsazs5NY/SNwYEN8ptlZ6DKUXn0eesXftDsmlypX/OU0ZeJc61/xNVUuoeyDGJDVA==",
"dev": true
},
"node_modules/@edge-runtime/vm": {
@@ -2092,14 +2064,14 @@
}
},
"node_modules/@eslint/eslintrc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz",
- "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.1.tgz",
+ "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==",
"dev": true,
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.3.2",
+ "espree": "^9.4.0",
"globals": "^13.15.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
@@ -2109,6 +2081,9 @@
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
"node_modules/@eslint/eslintrc/node_modules/ajv": {
@@ -2238,9 +2213,9 @@
}
},
"node_modules/@httptoolkit/httpolyglot/node_modules/@types/node": {
- "version": "16.11.54",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.54.tgz",
- "integrity": "sha512-ryOpwe15+BtTUxKFfzABjaI/EtXLPBSBEW4B6D5ygWNcORLVKG/1/FC3WwAr5d7t6lCnlVPRsCY0NH680QT+Pg==",
+ "version": "16.11.56",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.56.tgz",
+ "integrity": "sha512-aFcUkv7EddxxOa/9f74DINReQ/celqH8DiB3fRYgVDM2Xm5QJL8sl80QKuAnGvwAsMn+H3IFA6WCrQh1CY7m1A==",
"dev": true
},
"node_modules/@httptoolkit/proxy-agent": {
@@ -2332,6 +2307,19 @@
"url": "https://github.com/sponsors/nzakas"
}
},
+ "node_modules/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
"node_modules/@humanwhocodes/object-schema": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
@@ -3114,13 +3102,13 @@
}
},
"node_modules/@semantic-release/github": {
- "version": "8.0.5",
- "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-8.0.5.tgz",
- "integrity": "sha512-9pGxRM3gv1hgoZ/muyd4pWnykdIUVfCiev6MXE9lOyGQof4FQy95GFE26nDcifs9ZG7bBzV8ue87bo/y1zVf0g==",
+ "version": "8.0.6",
+ "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-8.0.6.tgz",
+ "integrity": "sha512-ZxgaxYCeqt9ylm2x3OPqUoUqBw1p60LhxzdX6BqJlIBThupGma98lttsAbK64T6L6AlNa2G5T66BbiG8y0PIHQ==",
"dev": true,
"dependencies": {
"@octokit/rest": "^19.0.0",
- "@semantic-release/error": "^2.2.0",
+ "@semantic-release/error": "^3.0.0",
"aggregate-error": "^3.0.0",
"bottleneck": "^2.18.1",
"debug": "^4.0.0",
@@ -3143,12 +3131,6 @@
"semantic-release": ">=18.0.0-beta.1"
}
},
- "node_modules/@semantic-release/github/node_modules/@semantic-release/error": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz",
- "integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==",
- "dev": true
- },
"node_modules/@semantic-release/github/node_modules/@tootallnate/once": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
@@ -3399,30 +3381,6 @@
"node": ">=10"
}
},
- "node_modules/@tsconfig/node10": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
- "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
- "dev": true
- },
- "node_modules/@tsconfig/node12": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
- "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
- "dev": true
- },
- "node_modules/@tsconfig/node14": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
- "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
- "dev": true
- },
- "node_modules/@tsconfig/node16": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz",
- "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==",
- "dev": true
- },
"node_modules/@types/cookie": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.3.3.tgz",
@@ -3529,9 +3487,9 @@
"integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA=="
},
"node_modules/@types/minimatch": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
- "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ=="
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.0.tgz",
+ "integrity": "sha512-0RJHq5FqDWo17kdHe+SMDJLfxmLaqHbWnqZ6gNKzDvStUlrmx/eKIY17+ifLS1yybo7X86aUshQMlittDOVNnw=="
},
"node_modules/@types/minimist": {
"version": "1.2.2",
@@ -3545,9 +3503,9 @@
"integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA=="
},
"node_modules/@types/node": {
- "version": "18.7.11",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.11.tgz",
- "integrity": "sha512-KZhFpSLlmK/sdocfSAjqPETTMd0ug6HIMIAwkwUpU79olnZdQtMxpQP+G1wDzCH7na+FltSIhbaZuKdwZ8RDrw=="
+ "version": "18.7.13",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.13.tgz",
+ "integrity": "sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw=="
},
"node_modules/@types/normalize-package-data": {
"version": "2.4.1",
@@ -3591,9 +3549,9 @@
}
},
"node_modules/@types/react-syntax-highlighter": {
- "version": "15.5.4",
- "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.4.tgz",
- "integrity": "sha512-GYXA4nRBG4jTGFfYMLO2/yuqyOyaQ415oeJWw6akE5gipOEsGhvXFvWhsctGVMHzAfRI7e/J0B9cpqrfMOwZhA==",
+ "version": "15.5.5",
+ "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.5.tgz",
+ "integrity": "sha512-QH3JZQXa2usAvJvSsdSUJ4Yu4j8ReuZpgRrEW+XP+Rmosbn425YshW9iGEb/pAARm8496axHhHUPRH3UmTiB6A==",
"dev": true,
"dependencies": {
"@types/react": "*"
@@ -3670,14 +3628,14 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "5.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.34.0.tgz",
- "integrity": "sha512-eRfPPcasO39iwjlUAMtjeueRGuIrW3TQ9WseIDl7i5UWuFbf83yYaU7YPs4j8+4CxUMIsj1k+4kV+E+G+6ypDQ==",
+ "version": "5.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.35.1.tgz",
+ "integrity": "sha512-RBZZXZlI4XCY4Wzgy64vB+0slT9+yAPQRjj/HSaRwUot33xbDjF1oN9BLwOLTewoOI0jothIltZRe9uJCHf8gg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "5.34.0",
- "@typescript-eslint/type-utils": "5.34.0",
- "@typescript-eslint/utils": "5.34.0",
+ "@typescript-eslint/scope-manager": "5.35.1",
+ "@typescript-eslint/type-utils": "5.35.1",
+ "@typescript-eslint/utils": "5.35.1",
"debug": "^4.3.4",
"functional-red-black-tree": "^1.0.1",
"ignore": "^5.2.0",
@@ -3703,14 +3661,14 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "5.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.34.0.tgz",
- "integrity": "sha512-SZ3NEnK4usd2CXkoV3jPa/vo1mWX1fqRyIVUQZR4As1vyp4fneknBNJj+OFtV8WAVgGf+rOHMSqQbs2Qn3nFZQ==",
+ "version": "5.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.35.1.tgz",
+ "integrity": "sha512-XL2TBTSrh3yWAsMYpKseBYTVpvudNf69rPOWXWVBI08My2JVT5jR66eTt4IgQFHA/giiKJW5dUD4x/ZviCKyGg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "5.34.0",
- "@typescript-eslint/types": "5.34.0",
- "@typescript-eslint/typescript-estree": "5.34.0",
+ "@typescript-eslint/scope-manager": "5.35.1",
+ "@typescript-eslint/types": "5.35.1",
+ "@typescript-eslint/typescript-estree": "5.35.1",
"debug": "^4.3.4"
},
"engines": {
@@ -3730,13 +3688,13 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "5.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.34.0.tgz",
- "integrity": "sha512-HNvASMQlah5RsBW6L6c7IJ0vsm+8Sope/wu5sEAf7joJYWNb1LDbJipzmdhdUOnfrDFE6LR1j57x1EYVxrY4ow==",
+ "version": "5.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.35.1.tgz",
+ "integrity": "sha512-kCYRSAzIW9ByEIzmzGHE50NGAvAP3wFTaZevgWva7GpquDyFPFcmvVkFJGWJJktg/hLwmys/FZwqM9EKr2u24Q==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.34.0",
- "@typescript-eslint/visitor-keys": "5.34.0"
+ "@typescript-eslint/types": "5.35.1",
+ "@typescript-eslint/visitor-keys": "5.35.1"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -3747,12 +3705,12 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "5.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.34.0.tgz",
- "integrity": "sha512-Pxlno9bjsQ7hs1pdWRUv9aJijGYPYsHpwMeCQ/Inavhym3/XaKt1ZKAA8FIw4odTBfowBdZJDMxf2aavyMDkLg==",
+ "version": "5.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.35.1.tgz",
+ "integrity": "sha512-8xT8ljvo43Mp7BiTn1vxLXkjpw8wS4oAc00hMSB4L1/jIiYbjjnc3Qp2GAUOG/v8zsNCd1qwcqfCQ0BuishHkw==",
"dev": true,
"dependencies": {
- "@typescript-eslint/utils": "5.34.0",
+ "@typescript-eslint/utils": "5.35.1",
"debug": "^4.3.4",
"tsutils": "^3.21.0"
},
@@ -3773,9 +3731,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "5.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.34.0.tgz",
- "integrity": "sha512-49fm3xbbUPuzBIOcy2CDpYWqy/X7VBkxVN+DC21e0zIm3+61Z0NZi6J9mqPmSW1BDVk9FIOvuCFyUPjXz93sjA==",
+ "version": "5.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.35.1.tgz",
+ "integrity": "sha512-FDaujtsH07VHzG0gQ6NDkVVhi1+rhq0qEvzHdJAQjysN+LHDCKDKCBRlZFFE0ec0jKxiv0hN63SNfExy0KrbQQ==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -3786,13 +3744,13 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "5.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.34.0.tgz",
- "integrity": "sha512-mXHAqapJJDVzxauEkfJI96j3D10sd567LlqroyCeJaHnu42sDbjxotGb3XFtGPYKPD9IyLjhsoULML1oI3M86A==",
+ "version": "5.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.35.1.tgz",
+ "integrity": "sha512-JUqE1+VRTGyoXlDWWjm6MdfpBYVq+hixytrv1oyjYIBEOZhBCwtpp5ZSvBt4wIA1MKWlnaC2UXl2XmYGC3BoQA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.34.0",
- "@typescript-eslint/visitor-keys": "5.34.0",
+ "@typescript-eslint/types": "5.35.1",
+ "@typescript-eslint/visitor-keys": "5.35.1",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -3813,15 +3771,15 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "5.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.34.0.tgz",
- "integrity": "sha512-kWRYybU4Rn++7lm9yu8pbuydRyQsHRoBDIo11k7eqBWTldN4xUdVUMCsHBiE7aoEkFzrUEaZy3iH477vr4xHAQ==",
+ "version": "5.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.35.1.tgz",
+ "integrity": "sha512-v6F8JNXgeBWI4pzZn36hT2HXXzoBBBJuOYvoQiaQaEEjdi5STzux3Yj8v7ODIpx36i/5s8TdzuQ54TPc5AITQQ==",
"dev": true,
"dependencies": {
"@types/json-schema": "^7.0.9",
- "@typescript-eslint/scope-manager": "5.34.0",
- "@typescript-eslint/types": "5.34.0",
- "@typescript-eslint/typescript-estree": "5.34.0",
+ "@typescript-eslint/scope-manager": "5.35.1",
+ "@typescript-eslint/types": "5.35.1",
+ "@typescript-eslint/typescript-estree": "5.35.1",
"eslint-scope": "^5.1.1",
"eslint-utils": "^3.0.0"
},
@@ -3837,12 +3795,12 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "5.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.34.0.tgz",
- "integrity": "sha512-O1moYjOSrab0a2fUvFpsJe0QHtvTC+cR+ovYpgKrAVXzqQyc74mv76TgY6z+aEtjQE2vgZux3CQVtGryqdcOAw==",
+ "version": "5.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.35.1.tgz",
+ "integrity": "sha512-cEB1DvBVo1bxbW/S5axbGPE6b7FIMAbo3w+AGq6zNDA7+NYJOIkKj/sInfTv4edxd4PxJSgdN4t6/pbvgA+n5g==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.34.0",
+ "@typescript-eslint/types": "5.35.1",
"eslint-visitor-keys": "^3.3.0"
},
"engines": {
@@ -3854,33 +3812,33 @@
}
},
"node_modules/@vercel/build-utils": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-5.3.1.tgz",
- "integrity": "sha512-i+O40FAFgDSNPQbBA5pNQURukA+4E0e560ylamPytNgPjiaj83fR1uV1XYxUAZFxlRNG93HSrKEwG6/Xx3F3bg==",
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-5.4.0.tgz",
+ "integrity": "sha512-dlPYsegKzMry2doezAiqFCwEzSjB18t3kB2RswLni+Tqdw1eN294duGhXHmFlFP5YcFdrLEZtEszxTLcgBjv5g==",
"dev": true
},
"node_modules/@vercel/go": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@vercel/go/-/go-2.2.1.tgz",
- "integrity": "sha512-Eks8bDSzLPSHwNJO347Whx3ZZ7TZtpmjM2+wytb7JFH3Cpmj5mL0KWrKxVOBtBJRJoFd1v4HPCYj3cE9inE80A==",
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/@vercel/go/-/go-2.2.3.tgz",
+ "integrity": "sha512-/whUHIHf5CMSjNhaP2HJdmQm23h06Yx8hhUEYTkBnI773fHIbWQTe07gUdstDgvI8KlOjtrLFc3Vutch+QiO6A==",
"dev": true
},
"node_modules/@vercel/hydrogen": {
- "version": "0.0.14",
- "resolved": "https://registry.npmjs.org/@vercel/hydrogen/-/hydrogen-0.0.14.tgz",
- "integrity": "sha512-aMChId8/dSGN5U5xRsrCCOcUYcQuYJYDXhdswCvO1owYhCise4hoXM79sf4clohnh9P/t9wgC3TgKG8jALMV1g==",
+ "version": "0.0.16",
+ "resolved": "https://registry.npmjs.org/@vercel/hydrogen/-/hydrogen-0.0.16.tgz",
+ "integrity": "sha512-GwpQze+PXQa8Af4PZeqw+QkhzBeQ2eOv61yW2hxVuod8YYrJyr5dnlRfmibc/exMgglo0qZrBedylyXKxKiOZg==",
"dev": true
},
"node_modules/@vercel/next": {
- "version": "3.1.20",
- "resolved": "https://registry.npmjs.org/@vercel/next/-/next-3.1.20.tgz",
- "integrity": "sha512-zOZ0qVob3vQZXtLOEZ/Wr1C3imVbUir1J+HAUW6fMpHdJdxxHDi5IgGQkbjeAePox5Kp0pGzxCDubPcbQOmGcg==",
+ "version": "3.1.22",
+ "resolved": "https://registry.npmjs.org/@vercel/next/-/next-3.1.22.tgz",
+ "integrity": "sha512-6wcjyVgV1/sYlBDly4XFmM2l2+yaGQU1vBaI9rImGvHYtGouDThuaCxxMX59jOHUbM7rC1/GAinhJkiHBhrN8A==",
"dev": true
},
"node_modules/@vercel/nft": {
- "version": "0.21.0",
- "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.21.0.tgz",
- "integrity": "sha512-hFCAETfI5cG8l5iAiLhMC2bReC5K7SIybzrxGorv+eGspIbIFsVw7Vg85GovXm/LxA08pIDrAlrhR6GN36XB/Q==",
+ "version": "0.22.0",
+ "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.22.0.tgz",
+ "integrity": "sha512-hB80/093PPiCefN2gVbqv6J93MH+63Zr7uDCwkiS/U4W07DXkLoftbnkBmZoS0Q84LiTSl9DRVSHU4XYCX+sJA==",
"dev": true,
"dependencies": {
"@mapbox/node-pre-gyp": "^1.0.5",
@@ -3900,14 +3858,14 @@
}
},
"node_modules/@vercel/node": {
- "version": "2.5.8",
- "resolved": "https://registry.npmjs.org/@vercel/node/-/node-2.5.8.tgz",
- "integrity": "sha512-LzS2NAbz85CJUxw8RbWnPV8U8O9/D6r35s4scXP94yz4xgysW0ErlhLSBUfl0uTLhOEjjcm+OMcvWR63p6z+Gw==",
+ "version": "2.5.11",
+ "resolved": "https://registry.npmjs.org/@vercel/node/-/node-2.5.11.tgz",
+ "integrity": "sha512-IHLn7iW9RsO+chViIMHfQgjqtBZGxE5gpTUpsZVz6mrmkovwFyMEQ6ynykmhhrDXk/0XljCcKwYYfpiAKvsIKg==",
"dev": true,
"dependencies": {
"@edge-runtime/vm": "1.1.0-beta.23",
"@types/node": "*",
- "@vercel/build-utils": "5.3.1",
+ "@vercel/build-utils": "5.4.0",
"@vercel/node-bridge": "3.0.0",
"@vercel/static-config": "2.0.3",
"edge-runtime": "1.1.0-beta.23",
@@ -3924,37 +3882,6 @@
"integrity": "sha512-TNQK6cufwrhd8ASDk5YHHenH8Xhp9sY8xUjOTKnQQI37KLk+Sw2HlHhT5rzUFN23ahosUlkY8InwtYUmSNb9kw==",
"dev": true
},
- "node_modules/@vercel/node/node_modules/arg": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
- "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
- "dev": true
- },
- "node_modules/@vercel/node/node_modules/ts-node": {
- "version": "8.9.1",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.9.1.tgz",
- "integrity": "sha512-yrq6ODsxEFTLz0R3BX2myf0WBCSQh9A+py8PBo1dCzWIOcvisbyH6akNKqDHMgXePF2kir5mm5JXJTH3OUJYOQ==",
- "dev": true,
- "dependencies": {
- "arg": "^4.1.0",
- "diff": "^4.0.1",
- "make-error": "^1.1.1",
- "source-map-support": "^0.5.17",
- "yn": "3.1.1"
- },
- "bin": {
- "ts-node": "dist/bin.js",
- "ts-node-script": "dist/bin-script.js",
- "ts-node-transpile-only": "dist/bin-transpile.js",
- "ts-script": "dist/bin-script-deprecated.js"
- },
- "engines": {
- "node": ">=6.0.0"
- },
- "peerDependencies": {
- "typescript": ">=2.7"
- }
- },
"node_modules/@vercel/node/node_modules/typescript": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.4.tgz",
@@ -3969,18 +3896,18 @@
}
},
"node_modules/@vercel/python": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/@vercel/python/-/python-3.1.10.tgz",
- "integrity": "sha512-peBRG9ET2MC3fjuy2E++AGtCjgb8GGN00rptkNCN3dD3pydyhh+GKSuE5l+R8Fp8WBXBMwtJRa83MjJT3goeHQ==",
+ "version": "3.1.12",
+ "resolved": "https://registry.npmjs.org/@vercel/python/-/python-3.1.12.tgz",
+ "integrity": "sha512-MO60UOafBCY/Gw2PcO/YwnWyGq26wW6CO+Y5DI6DxkICeAhXpBuBiYOUSv/twOZoG6MCkZtwNFpAWJFPv5bnVg==",
"dev": true
},
"node_modules/@vercel/redwood": {
- "version": "1.0.18",
- "resolved": "https://registry.npmjs.org/@vercel/redwood/-/redwood-1.0.18.tgz",
- "integrity": "sha512-/ef3DiQPfWNxqB4D/j4NKahfCIRBr68DMLt8+FR15iUI6z4jhTwZKX9JhGdQmIR1B4OAj2vfH5BmMkr7KMlobw==",
+ "version": "1.0.20",
+ "resolved": "https://registry.npmjs.org/@vercel/redwood/-/redwood-1.0.20.tgz",
+ "integrity": "sha512-Tdt9MiXPdCV8NY6XO1JABTV9n/6kmSYJwl54EiQwORfnQt0O9IVS9+dHOA0jCosPoCXCmNzOnjpX984wnpHX/g==",
"dev": true,
"dependencies": {
- "@vercel/nft": "0.21.0",
+ "@vercel/nft": "0.22.0",
"@vercel/routing-utils": "2.0.2",
"semver": "6.1.1"
}
@@ -3995,12 +3922,12 @@
}
},
"node_modules/@vercel/remix": {
- "version": "1.0.19",
- "resolved": "https://registry.npmjs.org/@vercel/remix/-/remix-1.0.19.tgz",
- "integrity": "sha512-7O60ie8LrRHWwYL9x6n3kS7G/o7QQz1T2RbWW04H5NBfEyofqnahrOjTT87N176AH53TE4vArYC6Of9GtFOC7A==",
+ "version": "1.0.21",
+ "resolved": "https://registry.npmjs.org/@vercel/remix/-/remix-1.0.21.tgz",
+ "integrity": "sha512-RGPFa31XgFf7hIMiBVdTlQ2WYLOebdJ6VbOTmYEWEEHAalXPQh2VIJhQ33SAyOCRawnTeTyNaG7kSo4VOW0Myg==",
"dev": true,
"dependencies": {
- "@vercel/nft": "0.21.0"
+ "@vercel/nft": "0.22.0"
}
},
"node_modules/@vercel/routing-utils": {
@@ -4046,15 +3973,15 @@
"dev": true
},
"node_modules/@vercel/ruby": {
- "version": "1.3.27",
- "resolved": "https://registry.npmjs.org/@vercel/ruby/-/ruby-1.3.27.tgz",
- "integrity": "sha512-9yhbjPKZxjoAsaUh9fL5jhg8ImF5I2sFfObC+4+xKn8Df0EnE4WbMcimf8XTbAXlPsuEQfXZEbRzNcqakawgqQ==",
+ "version": "1.3.29",
+ "resolved": "https://registry.npmjs.org/@vercel/ruby/-/ruby-1.3.29.tgz",
+ "integrity": "sha512-EBY7gTK96JI/bcLyywx3sCFwMrk981tQWtLiAk8aiMZq1WBSR9c3La0rKddJmAIme6t9MLoFrhvgLpNWo82z9w==",
"dev": true
},
"node_modules/@vercel/static-build": {
- "version": "1.0.18",
- "resolved": "https://registry.npmjs.org/@vercel/static-build/-/static-build-1.0.18.tgz",
- "integrity": "sha512-lHOHuIGaglIyF4M3SoZqcHX3ZEpXY8vuAUPil9xa0FkvhqmbnHEv3Mx47cBW20q82i90zdauSu8tQHViXe2Nlg==",
+ "version": "1.0.20",
+ "resolved": "https://registry.npmjs.org/@vercel/static-build/-/static-build-1.0.20.tgz",
+ "integrity": "sha512-29+FW8noZw9/VuzC918XqV1THiiGzvl52GdtZ+XhRRaFkmL+k47u/Qnpd7RTHQFg4mtqQAkua6xFfKcJqCroLQ==",
"dev": true
},
"node_modules/@vercel/static-config": {
@@ -5313,9 +5240,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001382",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001382.tgz",
- "integrity": "sha512-2rtJwDmSZ716Pxm1wCtbPvHtbDWAreTPxXbkc5RkKglow3Ig/4GNGazDI9/BVnXbG/wnv6r3B5FEbkfg9OcTGg==",
+ "version": "1.0.30001383",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001383.tgz",
+ "integrity": "sha512-swMpEoTp5vDoGBZsYZX7L7nXHe6dsHxi9o6/LKf/f0LukVtnrxly5GVb/fWdCDTqi/yw6Km6tiJ0pmBacm0gbg==",
"funding": [
{
"type": "opencollective",
@@ -5535,11 +5462,6 @@
"integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==",
"dev": true
},
- "node_modules/classnames": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz",
- "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA=="
- },
"node_modules/clean-regexp": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz",
@@ -5762,6 +5684,14 @@
"node": ">=4"
}
},
+ "node_modules/clsx": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
+ "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/code-block-writer": {
"version": "10.1.1",
"resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-10.1.1.tgz",
@@ -6192,9 +6122,9 @@
"dev": true
},
"node_modules/core-js-compat": {
- "version": "3.24.1",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.24.1.tgz",
- "integrity": "sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw==",
+ "version": "3.25.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.0.tgz",
+ "integrity": "sha512-extKQM0g8/3GjFx9US12FAgx8KJawB7RCQ5y8ipYLbmfzEzmFRWdDjIlxDx82g7ygcNG85qMVUSRyABouELdow==",
"dependencies": {
"browserslist": "^4.21.3",
"semver": "7.0.0"
@@ -6213,9 +6143,9 @@
}
},
"node_modules/core-js-pure": {
- "version": "3.24.1",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.24.1.tgz",
- "integrity": "sha512-r1nJk41QLLPyozHUUPmILCEMtMw24NG4oWK6RbsDdjzQgg9ZvrUsPBj1MnG0wXXp1DCDU6j+wUvEmBSrtRbLXg==",
+ "version": "3.25.0",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.0.tgz",
+ "integrity": "sha512-IeHpLwk3uoci37yoI2Laty59+YqH9x5uR65/yiA0ARAJrTrN4YU0rmauLWfvqOuk77SlNJXj2rM6oT/dBD87+A==",
"dev": true,
"hasInstallScript": true,
"funding": {
@@ -6265,14 +6195,10 @@
}
},
"node_modules/cosmiconfig-typescript-loader": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-2.0.2.tgz",
- "integrity": "sha512-KmE+bMjWMXJbkWCeY4FJX/npHuZPNr9XF9q9CIQ/bpFwi1qHfCmSiKarrCcRa0LO4fWjk93pVoeRtJAkTGcYNw==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.1.2.tgz",
+ "integrity": "sha512-rIwakk27LtK7vjSjGgs3FDbKkq41Byw3VHRGRuAkRQLfGla+O7s+cy1FXRkjLSZ2G9z1og1bcOIsELo1w4G0Kg==",
"dev": true,
- "dependencies": {
- "cosmiconfig": "^7",
- "ts-node": "^10.8.1"
- },
"engines": {
"node": ">=12",
"npm": ">=6"
@@ -6280,15 +6206,10 @@
"peerDependencies": {
"@types/node": "*",
"cosmiconfig": ">=7",
+ "ts-node": ">=10",
"typescript": ">=3"
}
},
- "node_modules/create-require": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
- "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
- "dev": true
- },
"node_modules/cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -6915,10 +6836,9 @@
"dev": true
},
"node_modules/diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "dev": true,
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
+ "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==",
"engines": {
"node": ">=0.3.1"
}
@@ -7091,9 +7011,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.4.227",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.227.tgz",
- "integrity": "sha512-I9VVajA3oswIJOUFg2PSBqrHLF5Y+ahIfjOV9+v6uYyBqFZutmPxA6fxocDUUmgwYevRWFu1VjLyVG3w45qa/g=="
+ "version": "1.4.233",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.233.tgz",
+ "integrity": "sha512-ejwIKXTg1wqbmkcRJh9Ur3hFGHFDZDw1POzdsVrB2WZjgRuRMHIQQKNpe64N/qh3ZtH2otEoRoS+s6arAAuAAw=="
},
"node_modules/emoji-mart": {
"version": "3.0.1",
@@ -7754,14 +7674,15 @@
}
},
"node_modules/eslint": {
- "version": "8.22.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz",
- "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==",
+ "version": "8.23.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.0.tgz",
+ "integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==",
"dev": true,
"dependencies": {
- "@eslint/eslintrc": "^1.3.0",
+ "@eslint/eslintrc": "^1.3.1",
"@humanwhocodes/config-array": "^0.10.4",
"@humanwhocodes/gitignore-to-minimatch": "^1.0.2",
+ "@humanwhocodes/module-importer": "^1.0.1",
"ajv": "^6.10.0",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
@@ -7771,7 +7692,7 @@
"eslint-scope": "^7.1.1",
"eslint-utils": "^3.0.0",
"eslint-visitor-keys": "^3.3.0",
- "espree": "^9.3.3",
+ "espree": "^9.4.0",
"esquery": "^1.4.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -7796,8 +7717,7 @@
"regexpp": "^3.2.0",
"strip-ansi": "^6.0.1",
"strip-json-comments": "^3.1.0",
- "text-table": "^0.2.0",
- "v8-compile-cache": "^2.0.3"
+ "text-table": "^0.2.0"
},
"bin": {
"eslint": "bin/eslint.js"
@@ -8060,9 +7980,9 @@
}
},
"node_modules/eslint-plugin-promise": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.0.tgz",
- "integrity": "sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.1.tgz",
+ "integrity": "sha512-uM4Tgo5u3UWQiroOyDEsYcVMOo7re3zmno0IZmB5auxoaQNIceAbXEkSt8RNrKtaYehARHG06pYK6K1JhtP0Zw==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -8072,9 +7992,9 @@
}
},
"node_modules/eslint-plugin-react": {
- "version": "7.30.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz",
- "integrity": "sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==",
+ "version": "7.31.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.1.tgz",
+ "integrity": "sha512-j4/2xWqt/R7AZzG8CakGHA6Xa/u7iR8Q3xCxY+AUghdT92bnIDOBEefV456OeH0QvBcroVc0eyvrrLSyQGYIfg==",
"dev": true,
"dependencies": {
"array-includes": "^3.1.5",
@@ -8304,9 +8224,9 @@
"dev": true
},
"node_modules/espree": {
- "version": "9.3.3",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz",
- "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==",
+ "version": "9.4.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz",
+ "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==",
"dev": true,
"dependencies": {
"acorn": "^8.8.0",
@@ -9080,6 +9000,20 @@
"node": "*"
}
},
+ "node_modules/form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "dev": true,
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 0.12"
+ }
+ },
"node_modules/format": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
@@ -11562,9 +11496,9 @@
}
},
"node_modules/katex": {
- "version": "0.16.0",
- "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.0.tgz",
- "integrity": "sha512-wPRB4iUPysfH97wTgG5/tRLYxmKVq6Q4jRAWRVOUxXB1dsiv4cvcNjqabHkrOvJHM1Bpk3WrgmllSO1vIvP24w==",
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.1.tgz",
+ "integrity": "sha512-UBMAkwVv0kG5StxdAegSSCPSUb8oXO5WIIMm/c9GP+7gR3BNcmdNnmA3FIgJlsKKjRyapWFQj27h9+CNjbxVIw==",
"funding": [
"https://opencollective.com/katex",
"https://github.com/sponsors/katex"
@@ -12978,9 +12912,9 @@
}
},
"node_modules/mdast-util-to-hast": {
- "version": "12.2.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.2.0.tgz",
- "integrity": "sha512-YDwT5KhGzLgPpSnQhAlK1+WpCW4gsPmNNAxUNMkMTDhxQyPp2eX86WOelnKnLKEvSpfxqJbPbInHFkefXZBhEA==",
+ "version": "12.2.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.2.1.tgz",
+ "integrity": "sha512-dyindR2P7qOqXO1hQirZeGtVbiX7xlNQbw7gGaAwN4A1dh4+X8xU/JyYmRoyB8Fu1uPXzp7mlL5QwW7k+knvgA==",
"dependencies": {
"@types/hast": "^2.0.0",
"@types/mdast": "^3.0.0",
@@ -18610,9 +18544,14 @@
}
},
"node_modules/react-component-form": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/react-component-form/-/react-component-form-3.0.1.tgz",
- "integrity": "sha512-koB2Zx1Vy4JcDNPEGqS8LIBpvjKR1WfJXBOL9TtOVZkK4phRSMdAqJFNFWE/GeIGhZE0Zj365OFpIvyn1pohJw==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/react-component-form/-/react-component-form-3.1.0.tgz",
+ "integrity": "sha512-M43xzvDLUsJy568Q/Wmv/EUBulzzJRIsyrhxZ+1q+P9xL1leKDlf0OJCx50D1TmsftcFYEA6FaoJ1DiIKCJiqA==",
+ "dependencies": {
+ "@sinclair/typebox": "0.24.28",
+ "ajv": "8.11.0",
+ "ajv-formats": "2.1.1"
+ },
"peerDependencies": {
"react": ">=16"
}
@@ -21500,46 +21439,28 @@
}
},
"node_modules/ts-node": {
- "version": "10.9.1",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
- "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
+ "version": "8.9.1",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.9.1.tgz",
+ "integrity": "sha512-yrq6ODsxEFTLz0R3BX2myf0WBCSQh9A+py8PBo1dCzWIOcvisbyH6akNKqDHMgXePF2kir5mm5JXJTH3OUJYOQ==",
"dev": true,
"dependencies": {
- "@cspotcode/source-map-support": "^0.8.0",
- "@tsconfig/node10": "^1.0.7",
- "@tsconfig/node12": "^1.0.7",
- "@tsconfig/node14": "^1.0.0",
- "@tsconfig/node16": "^1.0.2",
- "acorn": "^8.4.1",
- "acorn-walk": "^8.1.1",
"arg": "^4.1.0",
- "create-require": "^1.1.0",
"diff": "^4.0.1",
"make-error": "^1.1.1",
- "v8-compile-cache-lib": "^3.0.1",
+ "source-map-support": "^0.5.17",
"yn": "3.1.1"
},
"bin": {
"ts-node": "dist/bin.js",
- "ts-node-cwd": "dist/bin-cwd.js",
- "ts-node-esm": "dist/bin-esm.js",
"ts-node-script": "dist/bin-script.js",
"ts-node-transpile-only": "dist/bin-transpile.js",
"ts-script": "dist/bin-script-deprecated.js"
},
- "peerDependencies": {
- "@swc/core": ">=1.2.50",
- "@swc/wasm": ">=1.2.50",
- "@types/node": "*",
- "typescript": ">=2.7"
+ "engines": {
+ "node": ">=6.0.0"
},
- "peerDependenciesMeta": {
- "@swc/core": {
- "optional": true
- },
- "@swc/wasm": {
- "optional": true
- }
+ "peerDependencies": {
+ "typescript": ">=2.7"
}
},
"node_modules/ts-node/node_modules/arg": {
@@ -21548,6 +21469,15 @@
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
"dev": true
},
+ "node_modules/ts-node/node_modules/diff": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
"node_modules/ts-toolbelt": {
"version": "6.15.5",
"resolved": "https://registry.npmjs.org/ts-toolbelt/-/ts-toolbelt-6.15.5.tgz",
@@ -21685,9 +21615,9 @@
}
},
"node_modules/typescript": {
- "version": "4.7.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
- "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
+ "version": "4.8.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz",
+ "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
@@ -22587,26 +22517,6 @@
"node": ">=8"
}
},
- "node_modules/uvu/node_modules/diff": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
- "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==",
- "engines": {
- "node": ">=0.3.1"
- }
- },
- "node_modules/v8-compile-cache": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
- "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
- "dev": true
- },
- "node_modules/v8-compile-cache-lib": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
- "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
- "dev": true
- },
"node_modules/v8flags": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.0.tgz",
@@ -22650,22 +22560,22 @@
}
},
"node_modules/vercel": {
- "version": "28.1.2",
- "resolved": "https://registry.npmjs.org/vercel/-/vercel-28.1.2.tgz",
- "integrity": "sha512-q9C7qd56JKZ27sMSIK7Vntt/dHpTGZTw5L+RfCG+LA7eUhQr4MpmqToCuVOFfzfmCcm75rYPMWl1w7FQgyqiTA==",
+ "version": "28.2.0",
+ "resolved": "https://registry.npmjs.org/vercel/-/vercel-28.2.0.tgz",
+ "integrity": "sha512-FyvQ2SI93YFp7StqIwl/rpIpjH1H2WPtyHgwE21C5PUItUVNFKArjZnP399Qnerv77XDw2LMqvjrU2VLJlGn2A==",
"dev": true,
"hasInstallScript": true,
"dependencies": {
- "@vercel/build-utils": "5.3.1",
- "@vercel/go": "2.2.1",
- "@vercel/hydrogen": "0.0.14",
- "@vercel/next": "3.1.20",
- "@vercel/node": "2.5.8",
- "@vercel/python": "3.1.10",
- "@vercel/redwood": "1.0.18",
- "@vercel/remix": "1.0.19",
- "@vercel/ruby": "1.3.27",
- "@vercel/static-build": "1.0.18",
+ "@vercel/build-utils": "5.4.0",
+ "@vercel/go": "2.2.3",
+ "@vercel/hydrogen": "0.0.16",
+ "@vercel/next": "3.1.22",
+ "@vercel/node": "2.5.11",
+ "@vercel/python": "3.1.12",
+ "@vercel/redwood": "1.0.20",
+ "@vercel/remix": "1.0.21",
+ "@vercel/ruby": "1.3.29",
+ "@vercel/static-build": "1.0.20",
"update-notifier": "5.1.0"
},
"bin": {
@@ -22876,9 +22786,9 @@
}
},
"node_modules/vm2": {
- "version": "3.9.10",
- "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.10.tgz",
- "integrity": "sha512-AuECTSvwu2OHLAZYhG716YzwodKCIJxB6u1zG7PgSQwIgAlEaoXH52bxdcvT8GkGjnYK7r7yWDW0m0sOsPuBjQ==",
+ "version": "3.9.11",
+ "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.11.tgz",
+ "integrity": "sha512-PFG8iJRSjvvBdisowQ7iVF580DXb1uCIiGaXgm7tynMR1uTBlv7UJlB1zdv5KJ+Tmq1f0Upnj3fayoEOPpCBKg==",
"dev": true,
"dependencies": {
"acorn": "^8.7.0",
@@ -24732,15 +24642,15 @@
"optional": true
},
"@commitlint/cli": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.0.3.tgz",
- "integrity": "sha512-oAo2vi5d8QZnAbtU5+0cR2j+A7PO8zuccux65R/EycwvsZrDVyW518FFrnJK2UQxbRtHFFIG+NjQ6vOiJV0Q8A==",
+ "version": "17.1.1",
+ "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.1.1.tgz",
+ "integrity": "sha512-xyQJNJs1j18At5wSBF6bMo1on6ZrpcHUr4duacznPU0RnywCAABDBP1s63BmhkTMdNXLVgVM4J1H2sG0HSS3IA==",
"dev": true,
"requires": {
"@commitlint/format": "^17.0.0",
- "@commitlint/lint": "^17.0.3",
- "@commitlint/load": "^17.0.3",
- "@commitlint/read": "^17.0.0",
+ "@commitlint/lint": "^17.1.0",
+ "@commitlint/load": "^17.1.1",
+ "@commitlint/read": "^17.1.0",
"@commitlint/types": "^17.0.0",
"execa": "^5.0.0",
"lodash": "^4.17.19",
@@ -24750,18 +24660,18 @@
}
},
"@commitlint/config-conventional": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.0.3.tgz",
- "integrity": "sha512-HCnzTm5ATwwwzNVq5Y57poS0a1oOOcd5pc1MmBpLbGmSysc4i7F/++JuwtdFPu16sgM3H9J/j2zznRLOSGVO2A==",
+ "version": "17.1.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.1.0.tgz",
+ "integrity": "sha512-WU2p0c9/jLi8k2q2YrDV96Y8XVswQOceIQ/wyJvQxawJSCasLdRB3kUIYdNjOCJsxkpoUlV/b90ZPxp1MYZDiA==",
"dev": true,
"requires": {
"conventional-changelog-conventionalcommits": "^5.0.0"
}
},
"@commitlint/config-validator": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.0.3.tgz",
- "integrity": "sha512-3tLRPQJKapksGE7Kee9axv+9z5I2GDHitDH4q63q7NmNA0wkB+DAorJ0RHz2/K00Zb1/MVdHzhCga34FJvDihQ==",
+ "version": "17.1.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.1.0.tgz",
+ "integrity": "sha512-Q1rRRSU09ngrTgeTXHq6ePJs2KrI+axPTgkNYDWSJIuS1Op4w3J30vUfSXjwn5YEJHklK3fSqWNHmBhmTR7Vdg==",
"dev": true,
"requires": {
"@commitlint/types": "^17.0.0",
@@ -24795,9 +24705,9 @@
}
},
"@commitlint/is-ignored": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.0.3.tgz",
- "integrity": "sha512-/wgCXAvPtFTQZxsVxj7owLeRf5wwzcXLaYmrZPR4a87iD4sCvUIRl1/ogYrtOyUmHwWfQsvjqIB4mWE/SqWSnA==",
+ "version": "17.1.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.1.0.tgz",
+ "integrity": "sha512-JITWKDMHhIh8IpdIbcbuH9rEQJty1ZWelgjleTFrVRAcEwN/sPzk1aVUXRIZNXMJWbZj8vtXRJnFihrml8uECQ==",
"dev": true,
"requires": {
"@commitlint/types": "^17.0.0",
@@ -24805,34 +24715,42 @@
}
},
"@commitlint/lint": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.0.3.tgz",
- "integrity": "sha512-2o1fk7JUdxBUgszyt41sHC/8Nd5PXNpkmuOo9jvGIjDHzOwXyV0PSdbEVTH3xGz9NEmjohFHr5l+N+T9fcxong==",
+ "version": "17.1.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.1.0.tgz",
+ "integrity": "sha512-ltpqM2ogt/+SDhUaScFo0MdscncEF96lvQTPMM/VTTWlw7sTGLLWkOOppsee2MN/uLNNWjQ7kqkd4h6JqoM9AQ==",
"dev": true,
"requires": {
- "@commitlint/is-ignored": "^17.0.3",
+ "@commitlint/is-ignored": "^17.1.0",
"@commitlint/parse": "^17.0.0",
"@commitlint/rules": "^17.0.0",
"@commitlint/types": "^17.0.0"
}
},
"@commitlint/load": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.0.3.tgz",
- "integrity": "sha512-3Dhvr7GcKbKa/ey4QJ5MZH3+J7QFlARohUow6hftQyNjzoXXROm+RwpBes4dDFrXG1xDw9QPXA7uzrOShCd4bw==",
+ "version": "17.1.1",
+ "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.1.1.tgz",
+ "integrity": "sha512-jEgdDabfj58kFKZmB7rMtmQa7Feo7Ozh3KmvIlXWqrJmal5auO1RC0Iczfl52DlPn26Uo0goUDHrhoAFs2ze0Q==",
"dev": true,
"requires": {
- "@commitlint/config-validator": "^17.0.3",
+ "@commitlint/config-validator": "^17.1.0",
"@commitlint/execute-rule": "^17.0.0",
- "@commitlint/resolve-extends": "^17.0.3",
+ "@commitlint/resolve-extends": "^17.1.0",
"@commitlint/types": "^17.0.0",
- "@types/node": ">=12",
+ "@types/node": "^14.0.0",
"chalk": "^4.1.0",
"cosmiconfig": "^7.0.0",
- "cosmiconfig-typescript-loader": "^2.0.0",
+ "cosmiconfig-typescript-loader": "^3.0.0",
"lodash": "^4.17.19",
"resolve-from": "^5.0.0",
"typescript": "^4.6.4"
+ },
+ "dependencies": {
+ "@types/node": {
+ "version": "14.18.26",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.26.tgz",
+ "integrity": "sha512-0b+utRBSYj8L7XAp0d+DX7lI4cSmowNaaTkk6/1SKzbKkG+doLuPusB9EOvzLJ8ahJSk03bTLIL6cWaEd4dBKA==",
+ "dev": true
+ }
}
},
"@commitlint/message": {
@@ -24853,24 +24771,25 @@
}
},
"@commitlint/read": {
- "version": "17.0.0",
- "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-17.0.0.tgz",
- "integrity": "sha512-zkuOdZayKX3J6F6mPnVMzohK3OBrsEdOByIqp4zQjA9VLw1hMsDEFQ18rKgUc2adkZar+4S01QrFreDCfZgbxA==",
+ "version": "17.1.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-17.1.0.tgz",
+ "integrity": "sha512-73BoFNBA/3Ozo2JQvGsE0J8SdrJAWGfZQRSHqvKaqgmY042Su4gXQLqvAzgr55S9DI1l9TiU/5WDuh8IE86d/g==",
"dev": true,
"requires": {
"@commitlint/top-level": "^17.0.0",
"@commitlint/types": "^17.0.0",
"fs-extra": "^10.0.0",
- "git-raw-commits": "^2.0.0"
+ "git-raw-commits": "^2.0.0",
+ "minimist": "^1.2.6"
}
},
"@commitlint/resolve-extends": {
- "version": "17.0.3",
- "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.0.3.tgz",
- "integrity": "sha512-H/RFMvrcBeJCMdnVC4i8I94108UDccIHrTke2tyQEg9nXQnR5/Hd6MhyNWkREvcrxh9Y+33JLb+PiPiaBxCtBA==",
+ "version": "17.1.0",
+ "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.1.0.tgz",
+ "integrity": "sha512-jqKm00LJ59T0O8O4bH4oMa4XyJVEOK4GzH8Qye9XKji+Q1FxhZznxMV/bDLyYkzbTodBt9sL0WLql8wMtRTbqQ==",
"dev": true,
"requires": {
- "@commitlint/config-validator": "^17.0.3",
+ "@commitlint/config-validator": "^17.1.0",
"@commitlint/types": "^17.0.0",
"import-fresh": "^3.0.0",
"lodash": "^4.17.19",
@@ -24915,27 +24834,6 @@
"chalk": "^4.1.0"
}
},
- "@cspotcode/source-map-support": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
- "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
- "dev": true,
- "requires": {
- "@jridgewell/trace-mapping": "0.3.9"
- },
- "dependencies": {
- "@jridgewell/trace-mapping": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
- "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
- "dev": true,
- "requires": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- }
- }
- },
"@cypress/request": {
"version": "2.88.10",
"resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz",
@@ -24960,19 +24858,6 @@
"tough-cookie": "~2.5.0",
"tunnel-agent": "^0.6.0",
"uuid": "^8.3.2"
- },
- "dependencies": {
- "form-data": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
- "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
- "dev": true,
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
- }
- }
}
},
"@cypress/xvfb": {
@@ -24997,15 +24882,15 @@
}
},
"@edge-runtime/format": {
- "version": "1.1.0-beta.27",
- "resolved": "https://registry.npmjs.org/@edge-runtime/format/-/format-1.1.0-beta.27.tgz",
- "integrity": "sha512-67ig1yISH1M7OHxS/PxgXbrQ99X8c47GFqP6qrDx+uWw1gBnknNHIykL3OgeIt4yk1OPKKHtrLe/Gnrw9Lc9tQ==",
+ "version": "1.1.0-beta.31",
+ "resolved": "https://registry.npmjs.org/@edge-runtime/format/-/format-1.1.0-beta.31.tgz",
+ "integrity": "sha512-tUZy+LMls1TivqVb7dbC0C0IMNjwP55co6vSkTgXCl9xFos3v43bCwAzivMaJ3NR8ZuihvK1gEj8CmvoqvOt0g==",
"dev": true
},
"@edge-runtime/primitives": {
- "version": "1.1.0-beta.27",
- "resolved": "https://registry.npmjs.org/@edge-runtime/primitives/-/primitives-1.1.0-beta.27.tgz",
- "integrity": "sha512-9RLySRgIfNhPXzqprwk5jojUec4WmVRphXIGgXmqZs/22UPF50mKcmrstPVVutGiX0mt4YkHuUarLj0VtLjX1Q==",
+ "version": "1.1.0-beta.31",
+ "resolved": "https://registry.npmjs.org/@edge-runtime/primitives/-/primitives-1.1.0-beta.31.tgz",
+ "integrity": "sha512-OO1x32aJoxgME1k77RVxVNsazs5NY/SNwYEN8ptlZ6DKUXn0eesXftDsmlypX/OU0ZeJc61/xNVUuoeyDGJDVA==",
"dev": true
},
"@edge-runtime/vm": {
@@ -25018,14 +24903,14 @@
}
},
"@eslint/eslintrc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz",
- "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.1.tgz",
+ "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==",
"dev": true,
"requires": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.3.2",
+ "espree": "^9.4.0",
"globals": "^13.15.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
@@ -25141,9 +25026,9 @@
},
"dependencies": {
"@types/node": {
- "version": "16.11.54",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.54.tgz",
- "integrity": "sha512-ryOpwe15+BtTUxKFfzABjaI/EtXLPBSBEW4B6D5ygWNcORLVKG/1/FC3WwAr5d7t6lCnlVPRsCY0NH680QT+Pg==",
+ "version": "16.11.56",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.56.tgz",
+ "integrity": "sha512-aFcUkv7EddxxOa/9f74DINReQ/celqH8DiB3fRYgVDM2Xm5QJL8sl80QKuAnGvwAsMn+H3IFA6WCrQh1CY7m1A==",
"dev": true
}
}
@@ -25221,6 +25106,12 @@
"integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==",
"dev": true
},
+ "@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "dev": true
+ },
"@humanwhocodes/object-schema": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
@@ -25765,13 +25656,13 @@
}
},
"@semantic-release/github": {
- "version": "8.0.5",
- "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-8.0.5.tgz",
- "integrity": "sha512-9pGxRM3gv1hgoZ/muyd4pWnykdIUVfCiev6MXE9lOyGQof4FQy95GFE26nDcifs9ZG7bBzV8ue87bo/y1zVf0g==",
+ "version": "8.0.6",
+ "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-8.0.6.tgz",
+ "integrity": "sha512-ZxgaxYCeqt9ylm2x3OPqUoUqBw1p60LhxzdX6BqJlIBThupGma98lttsAbK64T6L6AlNa2G5T66BbiG8y0PIHQ==",
"dev": true,
"requires": {
"@octokit/rest": "^19.0.0",
- "@semantic-release/error": "^2.2.0",
+ "@semantic-release/error": "^3.0.0",
"aggregate-error": "^3.0.0",
"bottleneck": "^2.18.1",
"debug": "^4.0.0",
@@ -25788,12 +25679,6 @@
"url-join": "^4.0.0"
},
"dependencies": {
- "@semantic-release/error": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz",
- "integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==",
- "dev": true
- },
"@tootallnate/once": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
@@ -26006,30 +25891,6 @@
}
}
},
- "@tsconfig/node10": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
- "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
- "dev": true
- },
- "@tsconfig/node12": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
- "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
- "dev": true
- },
- "@tsconfig/node14": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
- "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
- "dev": true
- },
- "@tsconfig/node16": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz",
- "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==",
- "dev": true
- },
"@types/cookie": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.3.3.tgz",
@@ -26136,9 +25997,9 @@
"integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA=="
},
"@types/minimatch": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
- "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ=="
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.0.tgz",
+ "integrity": "sha512-0RJHq5FqDWo17kdHe+SMDJLfxmLaqHbWnqZ6gNKzDvStUlrmx/eKIY17+ifLS1yybo7X86aUshQMlittDOVNnw=="
},
"@types/minimist": {
"version": "1.2.2",
@@ -26152,9 +26013,9 @@
"integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA=="
},
"@types/node": {
- "version": "18.7.11",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.11.tgz",
- "integrity": "sha512-KZhFpSLlmK/sdocfSAjqPETTMd0ug6HIMIAwkwUpU79olnZdQtMxpQP+G1wDzCH7na+FltSIhbaZuKdwZ8RDrw=="
+ "version": "18.7.13",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.13.tgz",
+ "integrity": "sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw=="
},
"@types/normalize-package-data": {
"version": "2.4.1",
@@ -26198,9 +26059,9 @@
}
},
"@types/react-syntax-highlighter": {
- "version": "15.5.4",
- "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.4.tgz",
- "integrity": "sha512-GYXA4nRBG4jTGFfYMLO2/yuqyOyaQ415oeJWw6akE5gipOEsGhvXFvWhsctGVMHzAfRI7e/J0B9cpqrfMOwZhA==",
+ "version": "15.5.5",
+ "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.5.tgz",
+ "integrity": "sha512-QH3JZQXa2usAvJvSsdSUJ4Yu4j8ReuZpgRrEW+XP+Rmosbn425YshW9iGEb/pAARm8496axHhHUPRH3UmTiB6A==",
"dev": true,
"requires": {
"@types/react": "*"
@@ -26277,14 +26138,14 @@
}
},
"@typescript-eslint/eslint-plugin": {
- "version": "5.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.34.0.tgz",
- "integrity": "sha512-eRfPPcasO39iwjlUAMtjeueRGuIrW3TQ9WseIDl7i5UWuFbf83yYaU7YPs4j8+4CxUMIsj1k+4kV+E+G+6ypDQ==",
+ "version": "5.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.35.1.tgz",
+ "integrity": "sha512-RBZZXZlI4XCY4Wzgy64vB+0slT9+yAPQRjj/HSaRwUot33xbDjF1oN9BLwOLTewoOI0jothIltZRe9uJCHf8gg==",
"dev": true,
"requires": {
- "@typescript-eslint/scope-manager": "5.34.0",
- "@typescript-eslint/type-utils": "5.34.0",
- "@typescript-eslint/utils": "5.34.0",
+ "@typescript-eslint/scope-manager": "5.35.1",
+ "@typescript-eslint/type-utils": "5.35.1",
+ "@typescript-eslint/utils": "5.35.1",
"debug": "^4.3.4",
"functional-red-black-tree": "^1.0.1",
"ignore": "^5.2.0",
@@ -26294,52 +26155,52 @@
}
},
"@typescript-eslint/parser": {
- "version": "5.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.34.0.tgz",
- "integrity": "sha512-SZ3NEnK4usd2CXkoV3jPa/vo1mWX1fqRyIVUQZR4As1vyp4fneknBNJj+OFtV8WAVgGf+rOHMSqQbs2Qn3nFZQ==",
+ "version": "5.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.35.1.tgz",
+ "integrity": "sha512-XL2TBTSrh3yWAsMYpKseBYTVpvudNf69rPOWXWVBI08My2JVT5jR66eTt4IgQFHA/giiKJW5dUD4x/ZviCKyGg==",
"dev": true,
"requires": {
- "@typescript-eslint/scope-manager": "5.34.0",
- "@typescript-eslint/types": "5.34.0",
- "@typescript-eslint/typescript-estree": "5.34.0",
+ "@typescript-eslint/scope-manager": "5.35.1",
+ "@typescript-eslint/types": "5.35.1",
+ "@typescript-eslint/typescript-estree": "5.35.1",
"debug": "^4.3.4"
}
},
"@typescript-eslint/scope-manager": {
- "version": "5.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.34.0.tgz",
- "integrity": "sha512-HNvASMQlah5RsBW6L6c7IJ0vsm+8Sope/wu5sEAf7joJYWNb1LDbJipzmdhdUOnfrDFE6LR1j57x1EYVxrY4ow==",
+ "version": "5.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.35.1.tgz",
+ "integrity": "sha512-kCYRSAzIW9ByEIzmzGHE50NGAvAP3wFTaZevgWva7GpquDyFPFcmvVkFJGWJJktg/hLwmys/FZwqM9EKr2u24Q==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.34.0",
- "@typescript-eslint/visitor-keys": "5.34.0"
+ "@typescript-eslint/types": "5.35.1",
+ "@typescript-eslint/visitor-keys": "5.35.1"
}
},
"@typescript-eslint/type-utils": {
- "version": "5.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.34.0.tgz",
- "integrity": "sha512-Pxlno9bjsQ7hs1pdWRUv9aJijGYPYsHpwMeCQ/Inavhym3/XaKt1ZKAA8FIw4odTBfowBdZJDMxf2aavyMDkLg==",
+ "version": "5.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.35.1.tgz",
+ "integrity": "sha512-8xT8ljvo43Mp7BiTn1vxLXkjpw8wS4oAc00hMSB4L1/jIiYbjjnc3Qp2GAUOG/v8zsNCd1qwcqfCQ0BuishHkw==",
"dev": true,
"requires": {
- "@typescript-eslint/utils": "5.34.0",
+ "@typescript-eslint/utils": "5.35.1",
"debug": "^4.3.4",
"tsutils": "^3.21.0"
}
},
"@typescript-eslint/types": {
- "version": "5.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.34.0.tgz",
- "integrity": "sha512-49fm3xbbUPuzBIOcy2CDpYWqy/X7VBkxVN+DC21e0zIm3+61Z0NZi6J9mqPmSW1BDVk9FIOvuCFyUPjXz93sjA==",
+ "version": "5.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.35.1.tgz",
+ "integrity": "sha512-FDaujtsH07VHzG0gQ6NDkVVhi1+rhq0qEvzHdJAQjysN+LHDCKDKCBRlZFFE0ec0jKxiv0hN63SNfExy0KrbQQ==",
"dev": true
},
"@typescript-eslint/typescript-estree": {
- "version": "5.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.34.0.tgz",
- "integrity": "sha512-mXHAqapJJDVzxauEkfJI96j3D10sd567LlqroyCeJaHnu42sDbjxotGb3XFtGPYKPD9IyLjhsoULML1oI3M86A==",
+ "version": "5.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.35.1.tgz",
+ "integrity": "sha512-JUqE1+VRTGyoXlDWWjm6MdfpBYVq+hixytrv1oyjYIBEOZhBCwtpp5ZSvBt4wIA1MKWlnaC2UXl2XmYGC3BoQA==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.34.0",
- "@typescript-eslint/visitor-keys": "5.34.0",
+ "@typescript-eslint/types": "5.35.1",
+ "@typescript-eslint/visitor-keys": "5.35.1",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -26348,57 +26209,57 @@
}
},
"@typescript-eslint/utils": {
- "version": "5.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.34.0.tgz",
- "integrity": "sha512-kWRYybU4Rn++7lm9yu8pbuydRyQsHRoBDIo11k7eqBWTldN4xUdVUMCsHBiE7aoEkFzrUEaZy3iH477vr4xHAQ==",
+ "version": "5.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.35.1.tgz",
+ "integrity": "sha512-v6F8JNXgeBWI4pzZn36hT2HXXzoBBBJuOYvoQiaQaEEjdi5STzux3Yj8v7ODIpx36i/5s8TdzuQ54TPc5AITQQ==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.9",
- "@typescript-eslint/scope-manager": "5.34.0",
- "@typescript-eslint/types": "5.34.0",
- "@typescript-eslint/typescript-estree": "5.34.0",
+ "@typescript-eslint/scope-manager": "5.35.1",
+ "@typescript-eslint/types": "5.35.1",
+ "@typescript-eslint/typescript-estree": "5.35.1",
"eslint-scope": "^5.1.1",
"eslint-utils": "^3.0.0"
}
},
"@typescript-eslint/visitor-keys": {
- "version": "5.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.34.0.tgz",
- "integrity": "sha512-O1moYjOSrab0a2fUvFpsJe0QHtvTC+cR+ovYpgKrAVXzqQyc74mv76TgY6z+aEtjQE2vgZux3CQVtGryqdcOAw==",
+ "version": "5.35.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.35.1.tgz",
+ "integrity": "sha512-cEB1DvBVo1bxbW/S5axbGPE6b7FIMAbo3w+AGq6zNDA7+NYJOIkKj/sInfTv4edxd4PxJSgdN4t6/pbvgA+n5g==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.34.0",
+ "@typescript-eslint/types": "5.35.1",
"eslint-visitor-keys": "^3.3.0"
}
},
"@vercel/build-utils": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-5.3.1.tgz",
- "integrity": "sha512-i+O40FAFgDSNPQbBA5pNQURukA+4E0e560ylamPytNgPjiaj83fR1uV1XYxUAZFxlRNG93HSrKEwG6/Xx3F3bg==",
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-5.4.0.tgz",
+ "integrity": "sha512-dlPYsegKzMry2doezAiqFCwEzSjB18t3kB2RswLni+Tqdw1eN294duGhXHmFlFP5YcFdrLEZtEszxTLcgBjv5g==",
"dev": true
},
"@vercel/go": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@vercel/go/-/go-2.2.1.tgz",
- "integrity": "sha512-Eks8bDSzLPSHwNJO347Whx3ZZ7TZtpmjM2+wytb7JFH3Cpmj5mL0KWrKxVOBtBJRJoFd1v4HPCYj3cE9inE80A==",
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/@vercel/go/-/go-2.2.3.tgz",
+ "integrity": "sha512-/whUHIHf5CMSjNhaP2HJdmQm23h06Yx8hhUEYTkBnI773fHIbWQTe07gUdstDgvI8KlOjtrLFc3Vutch+QiO6A==",
"dev": true
},
"@vercel/hydrogen": {
- "version": "0.0.14",
- "resolved": "https://registry.npmjs.org/@vercel/hydrogen/-/hydrogen-0.0.14.tgz",
- "integrity": "sha512-aMChId8/dSGN5U5xRsrCCOcUYcQuYJYDXhdswCvO1owYhCise4hoXM79sf4clohnh9P/t9wgC3TgKG8jALMV1g==",
+ "version": "0.0.16",
+ "resolved": "https://registry.npmjs.org/@vercel/hydrogen/-/hydrogen-0.0.16.tgz",
+ "integrity": "sha512-GwpQze+PXQa8Af4PZeqw+QkhzBeQ2eOv61yW2hxVuod8YYrJyr5dnlRfmibc/exMgglo0qZrBedylyXKxKiOZg==",
"dev": true
},
"@vercel/next": {
- "version": "3.1.20",
- "resolved": "https://registry.npmjs.org/@vercel/next/-/next-3.1.20.tgz",
- "integrity": "sha512-zOZ0qVob3vQZXtLOEZ/Wr1C3imVbUir1J+HAUW6fMpHdJdxxHDi5IgGQkbjeAePox5Kp0pGzxCDubPcbQOmGcg==",
+ "version": "3.1.22",
+ "resolved": "https://registry.npmjs.org/@vercel/next/-/next-3.1.22.tgz",
+ "integrity": "sha512-6wcjyVgV1/sYlBDly4XFmM2l2+yaGQU1vBaI9rImGvHYtGouDThuaCxxMX59jOHUbM7rC1/GAinhJkiHBhrN8A==",
"dev": true
},
"@vercel/nft": {
- "version": "0.21.0",
- "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.21.0.tgz",
- "integrity": "sha512-hFCAETfI5cG8l5iAiLhMC2bReC5K7SIybzrxGorv+eGspIbIFsVw7Vg85GovXm/LxA08pIDrAlrhR6GN36XB/Q==",
+ "version": "0.22.0",
+ "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.22.0.tgz",
+ "integrity": "sha512-hB80/093PPiCefN2gVbqv6J93MH+63Zr7uDCwkiS/U4W07DXkLoftbnkBmZoS0Q84LiTSl9DRVSHU4XYCX+sJA==",
"dev": true,
"requires": {
"@mapbox/node-pre-gyp": "^1.0.5",
@@ -26415,14 +26276,14 @@
}
},
"@vercel/node": {
- "version": "2.5.8",
- "resolved": "https://registry.npmjs.org/@vercel/node/-/node-2.5.8.tgz",
- "integrity": "sha512-LzS2NAbz85CJUxw8RbWnPV8U8O9/D6r35s4scXP94yz4xgysW0ErlhLSBUfl0uTLhOEjjcm+OMcvWR63p6z+Gw==",
+ "version": "2.5.11",
+ "resolved": "https://registry.npmjs.org/@vercel/node/-/node-2.5.11.tgz",
+ "integrity": "sha512-IHLn7iW9RsO+chViIMHfQgjqtBZGxE5gpTUpsZVz6mrmkovwFyMEQ6ynykmhhrDXk/0XljCcKwYYfpiAKvsIKg==",
"dev": true,
"requires": {
"@edge-runtime/vm": "1.1.0-beta.23",
"@types/node": "*",
- "@vercel/build-utils": "5.3.1",
+ "@vercel/build-utils": "5.4.0",
"@vercel/node-bridge": "3.0.0",
"@vercel/static-config": "2.0.3",
"edge-runtime": "1.1.0-beta.23",
@@ -26433,25 +26294,6 @@
"typescript": "4.3.4"
},
"dependencies": {
- "arg": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
- "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
- "dev": true
- },
- "ts-node": {
- "version": "8.9.1",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.9.1.tgz",
- "integrity": "sha512-yrq6ODsxEFTLz0R3BX2myf0WBCSQh9A+py8PBo1dCzWIOcvisbyH6akNKqDHMgXePF2kir5mm5JXJTH3OUJYOQ==",
- "dev": true,
- "requires": {
- "arg": "^4.1.0",
- "diff": "^4.0.1",
- "make-error": "^1.1.1",
- "source-map-support": "^0.5.17",
- "yn": "3.1.1"
- }
- },
"typescript": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.4.tgz",
@@ -26467,18 +26309,18 @@
"dev": true
},
"@vercel/python": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/@vercel/python/-/python-3.1.10.tgz",
- "integrity": "sha512-peBRG9ET2MC3fjuy2E++AGtCjgb8GGN00rptkNCN3dD3pydyhh+GKSuE5l+R8Fp8WBXBMwtJRa83MjJT3goeHQ==",
+ "version": "3.1.12",
+ "resolved": "https://registry.npmjs.org/@vercel/python/-/python-3.1.12.tgz",
+ "integrity": "sha512-MO60UOafBCY/Gw2PcO/YwnWyGq26wW6CO+Y5DI6DxkICeAhXpBuBiYOUSv/twOZoG6MCkZtwNFpAWJFPv5bnVg==",
"dev": true
},
"@vercel/redwood": {
- "version": "1.0.18",
- "resolved": "https://registry.npmjs.org/@vercel/redwood/-/redwood-1.0.18.tgz",
- "integrity": "sha512-/ef3DiQPfWNxqB4D/j4NKahfCIRBr68DMLt8+FR15iUI6z4jhTwZKX9JhGdQmIR1B4OAj2vfH5BmMkr7KMlobw==",
+ "version": "1.0.20",
+ "resolved": "https://registry.npmjs.org/@vercel/redwood/-/redwood-1.0.20.tgz",
+ "integrity": "sha512-Tdt9MiXPdCV8NY6XO1JABTV9n/6kmSYJwl54EiQwORfnQt0O9IVS9+dHOA0jCosPoCXCmNzOnjpX984wnpHX/g==",
"dev": true,
"requires": {
- "@vercel/nft": "0.21.0",
+ "@vercel/nft": "0.22.0",
"@vercel/routing-utils": "2.0.2",
"semver": "6.1.1"
},
@@ -26492,12 +26334,12 @@
}
},
"@vercel/remix": {
- "version": "1.0.19",
- "resolved": "https://registry.npmjs.org/@vercel/remix/-/remix-1.0.19.tgz",
- "integrity": "sha512-7O60ie8LrRHWwYL9x6n3kS7G/o7QQz1T2RbWW04H5NBfEyofqnahrOjTT87N176AH53TE4vArYC6Of9GtFOC7A==",
+ "version": "1.0.21",
+ "resolved": "https://registry.npmjs.org/@vercel/remix/-/remix-1.0.21.tgz",
+ "integrity": "sha512-RGPFa31XgFf7hIMiBVdTlQ2WYLOebdJ6VbOTmYEWEEHAalXPQh2VIJhQ33SAyOCRawnTeTyNaG7kSo4VOW0Myg==",
"dev": true,
"requires": {
- "@vercel/nft": "0.21.0"
+ "@vercel/nft": "0.22.0"
}
},
"@vercel/routing-utils": {
@@ -26539,15 +26381,15 @@
}
},
"@vercel/ruby": {
- "version": "1.3.27",
- "resolved": "https://registry.npmjs.org/@vercel/ruby/-/ruby-1.3.27.tgz",
- "integrity": "sha512-9yhbjPKZxjoAsaUh9fL5jhg8ImF5I2sFfObC+4+xKn8Df0EnE4WbMcimf8XTbAXlPsuEQfXZEbRzNcqakawgqQ==",
+ "version": "1.3.29",
+ "resolved": "https://registry.npmjs.org/@vercel/ruby/-/ruby-1.3.29.tgz",
+ "integrity": "sha512-EBY7gTK96JI/bcLyywx3sCFwMrk981tQWtLiAk8aiMZq1WBSR9c3La0rKddJmAIme6t9MLoFrhvgLpNWo82z9w==",
"dev": true
},
"@vercel/static-build": {
- "version": "1.0.18",
- "resolved": "https://registry.npmjs.org/@vercel/static-build/-/static-build-1.0.18.tgz",
- "integrity": "sha512-lHOHuIGaglIyF4M3SoZqcHX3ZEpXY8vuAUPil9xa0FkvhqmbnHEv3Mx47cBW20q82i90zdauSu8tQHViXe2Nlg==",
+ "version": "1.0.20",
+ "resolved": "https://registry.npmjs.org/@vercel/static-build/-/static-build-1.0.20.tgz",
+ "integrity": "sha512-29+FW8noZw9/VuzC918XqV1THiiGzvl52GdtZ+XhRRaFkmL+k47u/Qnpd7RTHQFg4mtqQAkua6xFfKcJqCroLQ==",
"dev": true
},
"@vercel/static-config": {
@@ -27450,9 +27292,9 @@
}
},
"caniuse-lite": {
- "version": "1.0.30001382",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001382.tgz",
- "integrity": "sha512-2rtJwDmSZ716Pxm1wCtbPvHtbDWAreTPxXbkc5RkKglow3Ig/4GNGazDI9/BVnXbG/wnv6r3B5FEbkfg9OcTGg=="
+ "version": "1.0.30001383",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001383.tgz",
+ "integrity": "sha512-swMpEoTp5vDoGBZsYZX7L7nXHe6dsHxi9o6/LKf/f0LukVtnrxly5GVb/fWdCDTqi/yw6Km6tiJ0pmBacm0gbg=="
},
"capital-case": {
"version": "1.0.4",
@@ -27610,11 +27452,6 @@
"integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==",
"dev": true
},
- "classnames": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz",
- "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA=="
- },
"clean-regexp": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz",
@@ -27767,6 +27604,11 @@
}
}
},
+ "clsx": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
+ "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg=="
+ },
"code-block-writer": {
"version": "10.1.1",
"resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-10.1.1.tgz",
@@ -28112,9 +27954,9 @@
"dev": true
},
"core-js-compat": {
- "version": "3.24.1",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.24.1.tgz",
- "integrity": "sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw==",
+ "version": "3.25.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.0.tgz",
+ "integrity": "sha512-extKQM0g8/3GjFx9US12FAgx8KJawB7RCQ5y8ipYLbmfzEzmFRWdDjIlxDx82g7ygcNG85qMVUSRyABouELdow==",
"requires": {
"browserslist": "^4.21.3",
"semver": "7.0.0"
@@ -28128,9 +27970,9 @@
}
},
"core-js-pure": {
- "version": "3.24.1",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.24.1.tgz",
- "integrity": "sha512-r1nJk41QLLPyozHUUPmILCEMtMw24NG4oWK6RbsDdjzQgg9ZvrUsPBj1MnG0wXXp1DCDU6j+wUvEmBSrtRbLXg==",
+ "version": "3.25.0",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.0.tgz",
+ "integrity": "sha512-IeHpLwk3uoci37yoI2Laty59+YqH9x5uR65/yiA0ARAJrTrN4YU0rmauLWfvqOuk77SlNJXj2rM6oT/dBD87+A==",
"dev": true
},
"core-util-is": {
@@ -28169,19 +28011,9 @@
}
},
"cosmiconfig-typescript-loader": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-2.0.2.tgz",
- "integrity": "sha512-KmE+bMjWMXJbkWCeY4FJX/npHuZPNr9XF9q9CIQ/bpFwi1qHfCmSiKarrCcRa0LO4fWjk93pVoeRtJAkTGcYNw==",
- "dev": true,
- "requires": {
- "cosmiconfig": "^7",
- "ts-node": "^10.8.1"
- }
- },
- "create-require": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
- "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.1.2.tgz",
+ "integrity": "sha512-rIwakk27LtK7vjSjGgs3FDbKkq41Byw3VHRGRuAkRQLfGla+O7s+cy1FXRkjLSZ2G9z1og1bcOIsELo1w4G0Kg==",
"dev": true
},
"cross-spawn": {
@@ -28658,10 +28490,9 @@
"dev": true
},
"diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "dev": true
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
+ "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw=="
},
"dir-glob": {
"version": "3.0.1",
@@ -28805,9 +28636,9 @@
}
},
"electron-to-chromium": {
- "version": "1.4.227",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.227.tgz",
- "integrity": "sha512-I9VVajA3oswIJOUFg2PSBqrHLF5Y+ahIfjOV9+v6uYyBqFZutmPxA6fxocDUUmgwYevRWFu1VjLyVG3w45qa/g=="
+ "version": "1.4.233",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.233.tgz",
+ "integrity": "sha512-ejwIKXTg1wqbmkcRJh9Ur3hFGHFDZDw1POzdsVrB2WZjgRuRMHIQQKNpe64N/qh3ZtH2otEoRoS+s6arAAuAAw=="
},
"emoji-mart": {
"version": "3.0.1",
@@ -29201,14 +29032,15 @@
}
},
"eslint": {
- "version": "8.22.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz",
- "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==",
+ "version": "8.23.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.0.tgz",
+ "integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==",
"dev": true,
"requires": {
- "@eslint/eslintrc": "^1.3.0",
+ "@eslint/eslintrc": "^1.3.1",
"@humanwhocodes/config-array": "^0.10.4",
"@humanwhocodes/gitignore-to-minimatch": "^1.0.2",
+ "@humanwhocodes/module-importer": "^1.0.1",
"ajv": "^6.10.0",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
@@ -29218,7 +29050,7 @@
"eslint-scope": "^7.1.1",
"eslint-utils": "^3.0.0",
"eslint-visitor-keys": "^3.3.0",
- "espree": "^9.3.3",
+ "espree": "^9.4.0",
"esquery": "^1.4.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -29243,8 +29075,7 @@
"regexpp": "^3.2.0",
"strip-ansi": "^6.0.1",
"strip-json-comments": "^3.1.0",
- "text-table": "^0.2.0",
- "v8-compile-cache": "^2.0.3"
+ "text-table": "^0.2.0"
},
"dependencies": {
"ajv": {
@@ -29483,15 +29314,15 @@
}
},
"eslint-plugin-promise": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.0.tgz",
- "integrity": "sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.1.tgz",
+ "integrity": "sha512-uM4Tgo5u3UWQiroOyDEsYcVMOo7re3zmno0IZmB5auxoaQNIceAbXEkSt8RNrKtaYehARHG06pYK6K1JhtP0Zw==",
"dev": true
},
"eslint-plugin-react": {
- "version": "7.30.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz",
- "integrity": "sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==",
+ "version": "7.31.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.1.tgz",
+ "integrity": "sha512-j4/2xWqt/R7AZzG8CakGHA6Xa/u7iR8Q3xCxY+AUghdT92bnIDOBEefV456OeH0QvBcroVc0eyvrrLSyQGYIfg==",
"dev": true,
"requires": {
"array-includes": "^3.1.5",
@@ -29608,9 +29439,9 @@
"dev": true
},
"espree": {
- "version": "9.3.3",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz",
- "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==",
+ "version": "9.4.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz",
+ "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==",
"dev": true,
"requires": {
"acorn": "^8.8.0",
@@ -30200,6 +30031,17 @@
"integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
"dev": true
},
+ "form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "dev": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
"format": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
@@ -32020,9 +31862,9 @@
}
},
"katex": {
- "version": "0.16.0",
- "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.0.tgz",
- "integrity": "sha512-wPRB4iUPysfH97wTgG5/tRLYxmKVq6Q4jRAWRVOUxXB1dsiv4cvcNjqabHkrOvJHM1Bpk3WrgmllSO1vIvP24w==",
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.1.tgz",
+ "integrity": "sha512-UBMAkwVv0kG5StxdAegSSCPSUb8oXO5WIIMm/c9GP+7gR3BNcmdNnmA3FIgJlsKKjRyapWFQj27h9+CNjbxVIw==",
"requires": {
"commander": "^8.0.0"
},
@@ -33080,9 +32922,9 @@
}
},
"mdast-util-to-hast": {
- "version": "12.2.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.2.0.tgz",
- "integrity": "sha512-YDwT5KhGzLgPpSnQhAlK1+WpCW4gsPmNNAxUNMkMTDhxQyPp2eX86WOelnKnLKEvSpfxqJbPbInHFkefXZBhEA==",
+ "version": "12.2.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.2.1.tgz",
+ "integrity": "sha512-dyindR2P7qOqXO1hQirZeGtVbiX7xlNQbw7gGaAwN4A1dh4+X8xU/JyYmRoyB8Fu1uPXzp7mlL5QwW7k+knvgA==",
"requires": {
"@types/hast": "^2.0.0",
"@types/mdast": "^3.0.0",
@@ -36988,9 +36830,14 @@
}
},
"react-component-form": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/react-component-form/-/react-component-form-3.0.1.tgz",
- "integrity": "sha512-koB2Zx1Vy4JcDNPEGqS8LIBpvjKR1WfJXBOL9TtOVZkK4phRSMdAqJFNFWE/GeIGhZE0Zj365OFpIvyn1pohJw=="
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/react-component-form/-/react-component-form-3.1.0.tgz",
+ "integrity": "sha512-M43xzvDLUsJy568Q/Wmv/EUBulzzJRIsyrhxZ+1q+P9xL1leKDlf0OJCx50D1TmsftcFYEA6FaoJ1DiIKCJiqA==",
+ "requires": {
+ "@sinclair/typebox": "0.24.28",
+ "ajv": "8.11.0",
+ "ajv-formats": "2.1.1"
+ }
},
"react-dom": {
"version": "18.2.0",
@@ -39220,23 +39067,15 @@
}
},
"ts-node": {
- "version": "10.9.1",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
- "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
+ "version": "8.9.1",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.9.1.tgz",
+ "integrity": "sha512-yrq6ODsxEFTLz0R3BX2myf0WBCSQh9A+py8PBo1dCzWIOcvisbyH6akNKqDHMgXePF2kir5mm5JXJTH3OUJYOQ==",
"dev": true,
"requires": {
- "@cspotcode/source-map-support": "^0.8.0",
- "@tsconfig/node10": "^1.0.7",
- "@tsconfig/node12": "^1.0.7",
- "@tsconfig/node14": "^1.0.0",
- "@tsconfig/node16": "^1.0.2",
- "acorn": "^8.4.1",
- "acorn-walk": "^8.1.1",
"arg": "^4.1.0",
- "create-require": "^1.1.0",
"diff": "^4.0.1",
"make-error": "^1.1.1",
- "v8-compile-cache-lib": "^3.0.1",
+ "source-map-support": "^0.5.17",
"yn": "3.1.1"
},
"dependencies": {
@@ -39245,6 +39084,12 @@
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
"dev": true
+ },
+ "diff": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "dev": true
}
}
},
@@ -39361,9 +39206,9 @@
}
},
"typescript": {
- "version": "4.7.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
- "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
+ "version": "4.8.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz",
+ "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==",
"dev": true
},
"uc.micro": {
@@ -40011,27 +39856,8 @@
"diff": "^5.0.0",
"kleur": "^4.0.3",
"sade": "^1.7.3"
- },
- "dependencies": {
- "diff": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
- "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw=="
- }
}
},
- "v8-compile-cache": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
- "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
- "dev": true
- },
- "v8-compile-cache-lib": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
- "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
- "dev": true
- },
"v8flags": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.0.tgz",
@@ -40066,21 +39892,21 @@
"dev": true
},
"vercel": {
- "version": "28.1.2",
- "resolved": "https://registry.npmjs.org/vercel/-/vercel-28.1.2.tgz",
- "integrity": "sha512-q9C7qd56JKZ27sMSIK7Vntt/dHpTGZTw5L+RfCG+LA7eUhQr4MpmqToCuVOFfzfmCcm75rYPMWl1w7FQgyqiTA==",
+ "version": "28.2.0",
+ "resolved": "https://registry.npmjs.org/vercel/-/vercel-28.2.0.tgz",
+ "integrity": "sha512-FyvQ2SI93YFp7StqIwl/rpIpjH1H2WPtyHgwE21C5PUItUVNFKArjZnP399Qnerv77XDw2LMqvjrU2VLJlGn2A==",
"dev": true,
"requires": {
- "@vercel/build-utils": "5.3.1",
- "@vercel/go": "2.2.1",
- "@vercel/hydrogen": "0.0.14",
- "@vercel/next": "3.1.20",
- "@vercel/node": "2.5.8",
- "@vercel/python": "3.1.10",
- "@vercel/redwood": "1.0.18",
- "@vercel/remix": "1.0.19",
- "@vercel/ruby": "1.3.27",
- "@vercel/static-build": "1.0.18",
+ "@vercel/build-utils": "5.4.0",
+ "@vercel/go": "2.2.3",
+ "@vercel/hydrogen": "0.0.16",
+ "@vercel/next": "3.1.22",
+ "@vercel/node": "2.5.11",
+ "@vercel/python": "3.1.12",
+ "@vercel/redwood": "1.0.20",
+ "@vercel/remix": "1.0.21",
+ "@vercel/ruby": "1.3.29",
+ "@vercel/static-build": "1.0.20",
"update-notifier": "5.1.0"
},
"dependencies": {
@@ -40222,9 +40048,9 @@
}
},
"vm2": {
- "version": "3.9.10",
- "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.10.tgz",
- "integrity": "sha512-AuECTSvwu2OHLAZYhG716YzwodKCIJxB6u1zG7PgSQwIgAlEaoXH52bxdcvT8GkGjnYK7r7yWDW0m0sOsPuBjQ==",
+ "version": "3.9.11",
+ "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.11.tgz",
+ "integrity": "sha512-PFG8iJRSjvvBdisowQ7iVF580DXb1uCIiGaXgm7tynMR1uTBlv7UJlB1zdv5KJ+Tmq1f0Upnj3fayoEOPpCBKg==",
"dev": true,
"requires": {
"acorn": "^8.7.0",
diff --git a/package.json b/package.json
index a4b8fa1..854ca2d 100644
--- a/package.json
+++ b/package.json
@@ -36,20 +36,18 @@
"@fontsource/roboto": "4.5.8",
"@heroicons/react": "1.0.6",
"@sinclair/typebox": "0.24.28",
- "ajv": "8.11.0",
- "ajv-formats": "2.1.1",
"axios": "0.26.1",
- "classnames": "2.3.1",
+ "clsx": "1.2.1",
"date-and-time": "2.4.1",
"emoji-mart": "3.0.1",
- "katex": "0.16.0",
+ "katex": "0.16.1",
"next": "12.2.5",
"next-pwa": "5.6.0",
"next-themes": "0.2.0",
"next-translate": "1.5.0",
"pretty-bytes": "6.0.0",
"react": "18.2.0",
- "react-component-form": "3.0.1",
+ "react-component-form": "3.1.0",
"react-dom": "18.2.0",
"react-infinite-scroll-component": "6.1.0",
"react-markdown": "8.0.3",
@@ -69,31 +67,31 @@
"universal-cookie": "4.0.4"
},
"devDependencies": {
- "@commitlint/cli": "17.0.3",
- "@commitlint/config-conventional": "17.0.3",
+ "@commitlint/cli": "17.1.1",
+ "@commitlint/config-conventional": "17.1.0",
"@lhci/cli": "0.9.0",
"@saithodev/semantic-release-backmerge": "2.1.2",
"@semantic-release/git": "10.0.1",
"@types/emoji-mart": "3.0.9",
"@types/hast": "2.3.4",
"@types/katex": "0.14.0",
- "@types/node": "18.7.11",
+ "@types/node": "18.7.13",
"@types/react": "18.0.17",
"@types/react-responsive": "8.0.5",
- "@types/react-syntax-highlighter": "15.5.4",
+ "@types/react-syntax-highlighter": "15.5.5",
"@types/unist": "2.0.6",
- "@typescript-eslint/eslint-plugin": "5.34.0",
- "@typescript-eslint/parser": "5.34.0",
+ "@typescript-eslint/eslint-plugin": "5.35.1",
+ "@typescript-eslint/parser": "5.35.1",
"autoprefixer": "10.4.8",
"cypress": "10.6.0",
"editorconfig-checker": "4.0.2",
- "eslint": "8.22.0",
+ "eslint": "8.23.0",
"eslint-config-conventions": "3.0.0",
"eslint-config-next": "12.2.5",
"eslint-config-prettier": "8.5.0",
"eslint-plugin-import": "2.26.0",
"eslint-plugin-prettier": "4.2.1",
- "eslint-plugin-promise": "6.0.0",
+ "eslint-plugin-promise": "6.0.1",
"eslint-plugin-unicorn": "43.0.2",
"html-w3c-validator": "1.2.0",
"husky": "8.0.1",
@@ -108,7 +106,7 @@
"serve": "14.0.1",
"start-server-and-test": "1.14.0",
"tailwindcss": "3.1.8",
- "typescript": "4.7.4",
- "vercel": "28.1.2"
+ "typescript": "4.8.2",
+ "vercel": "28.2.0"
}
}
diff --git a/pages/authentication/forgot-password.tsx b/pages/authentication/forgot-password.tsx
index 42b77f6..9c15d01 100644
--- a/pages/authentication/forgot-password.tsx
+++ b/pages/authentication/forgot-password.tsx
@@ -2,6 +2,8 @@ import { NextPage } from 'next'
import Link from 'next/link'
import useTranslation from 'next-translate/useTranslation'
import axios from 'axios'
+import { useForm } from 'react-component-form'
+import type { HandleUseFormCallback } from 'react-component-form'
import { AuthenticationForm } from '../../components/Authentication'
import { Head } from '../../components/Head'
@@ -15,24 +17,29 @@ import { authenticationFromServerSide } from '../../tools/authentication'
import { ScrollableBody } from '../../components/ScrollableBody'
import { userSchema } from '../../models/User'
import { api } from '../../tools/api'
-import { HandleSubmitCallback, useForm } from '../../hooks/useForm'
+import { useFormTranslation } from '../../hooks/useFormTranslation'
+
+const schema = {
+ email: userSchema.email
+}
const ForgotPassword: NextPage = (props) => {
const { t } = useTranslation()
const { version } = props
- const { fetchState, message, errors, getErrorTranslation, handleSubmit } =
- useForm({
- validateSchema: { email: userSchema.email },
- resetOnSuccess: true
- })
+ const { handleUseForm, fetchState, message, errors } = useForm(schema)
+ const { getFirstErrorTranslation } = useFormTranslation()
- const onSubmit: HandleSubmitCallback = async (formData) => {
+ const onSubmit: HandleUseFormCallback = async (
+ formData,
+ formElement
+ ) => {
try {
await api.post(
`/users/reset-password?redirectURI=${window.location.origin}/authentication/reset-password`,
formData
)
+ formElement.reset()
return {
type: 'success',
value: 'authentication:success-forgot-password'
@@ -41,7 +48,7 @@ const ForgotPassword: NextPage = (props) => {
if (axios.isAxiosError(error) && error.response?.status === 400) {
return {
type: 'error',
- value: 'errors:email'
+ value: 'errors:invalid-email'
}
}
return {
@@ -56,7 +63,7 @@ const ForgotPassword: NextPage = (props) => {
-
+
diff --git a/pages/authentication/reset-password.tsx b/pages/authentication/reset-password.tsx
index dfa56a8..d5ba6ec 100644
--- a/pages/authentication/reset-password.tsx
+++ b/pages/authentication/reset-password.tsx
@@ -2,6 +2,8 @@ import { NextPage } from 'next'
import { useRouter } from 'next/router'
import useTranslation from 'next-translate/useTranslation'
import axios from 'axios'
+import { useForm } from 'react-component-form'
+import type { HandleUseFormCallback } from 'react-component-form'
import { Head } from '../../components/Head'
import { Header } from '../../components/Header'
@@ -13,22 +15,23 @@ import { Button } from '../../components/design/Button'
import { authenticationFromServerSide } from '../../tools/authentication'
import { AuthenticationForm } from '../../components/Authentication'
import { ScrollableBody } from '../../components/ScrollableBody'
-import { HandleSubmitCallback, useForm } from '../../hooks/useForm'
import { api } from '../../tools/api'
import { userSchema } from '../../models/User'
+import { useFormTranslation } from '../../hooks/useFormTranslation'
+
+const schema = {
+ password: userSchema.password
+}
const ResetPassword: NextPage = (props) => {
const { t } = useTranslation()
const router = useRouter()
const { version } = props
- const { fetchState, message, errors, getErrorTranslation, handleSubmit } =
- useForm({
- validateSchema: { password: userSchema.password },
- resetOnSuccess: true
- })
+ const { handleUseForm, fetchState, message, errors } = useForm(schema)
+ const { getFirstErrorTranslation } = useFormTranslation()
- const onSubmit: HandleSubmitCallback = async (formData) => {
+ const onSubmit: HandleUseFormCallback = async (formData) => {
try {
await api.put(`/users/reset-password`, {
...formData,
@@ -55,7 +58,7 @@ const ResetPassword: NextPage = (props) => {
-
+
= (props) => {
id='message'
state={fetchState}
message={
- message != null ? message : getErrorTranslation(errors.password)
+ message != null
+ ? t(message)
+ : getFirstErrorTranslation(errors.password)
}
/>
diff --git a/tools/ajv.ts b/tools/ajv.ts
deleted file mode 100644
index 245d8b4..0000000
--- a/tools/ajv.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import Ajv from 'ajv'
-import addFormats from 'ajv-formats'
-
-export const ajv = addFormats(
- new Ajv({
- allErrors: true
- }),
- [
- 'date-time',
- 'time',
- 'date',
- 'email',
- 'hostname',
- 'ipv4',
- 'ipv6',
- 'uri',
- 'uri-reference',
- 'uuid',
- 'uri-template',
- 'json-pointer',
- 'relative-json-pointer',
- 'regex'
- ]
-)
- .addKeyword('kind')
- .addKeyword('modifier')