diff --git a/.eslintrc.js b/.eslintrc.js index 6b46108b..4b07ff99 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -27,7 +27,6 @@ module.exports = { // 'plugin:@typescript-eslint/recommended-requiring-type-checking' ], rules: { - 'no-nested-ternary': 'off', '@typescript-eslint/no-unused-vars': [ 'warn', { @@ -35,8 +34,9 @@ module.exports = { varsIgnorePattern: '^log$' } ], - '@typescript-eslint/no-explicit-any': 'warn', - '@typescript-eslint/no-non-null-assertion': 'warn', + // TODO: Remove any usage and enable + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-non-null-assertion': 'error', // solid-js fix 'import/no-unresolved': [2, { ignore: ['solid-js/'] }] diff --git a/.lintstagedrc b/.lintstagedrc index 6de8a64b..cbb4bad9 100644 --- a/.lintstagedrc +++ b/.lintstagedrc @@ -1,6 +1,4 @@ { "*.{js,ts,tsx,json,scss,css,html}": "prettier --write", - "package.json": "sort-package-json", - "*.{scss,css}": "stylelint", - "*.{ts,tsx,js}": "eslint --fix" + "package.json": "sort-package-json" } diff --git a/.lintstagedrc.bak b/.lintstagedrc.bak new file mode 100644 index 00000000..6de8a64b --- /dev/null +++ b/.lintstagedrc.bak @@ -0,0 +1,6 @@ +{ + "*.{js,ts,tsx,json,scss,css,html}": "prettier --write", + "package.json": "sort-package-json", + "*.{scss,css}": "stylelint", + "*.{ts,tsx,js}": "eslint --fix" +} diff --git a/package.json b/package.json index 062fe454..e0ec6786 100644 --- a/package.json +++ b/package.json @@ -17,9 +17,9 @@ "lint:code:fix": "eslint . --fix", "lint:styles": "stylelint **/*.{scss,css}", "lint:styles:fix": "stylelint **/*.{scss,css} --fix", - "pre-commit": "", - "pre-push": "", + "pre-commit": "lint-staged", "pre-commit-old": "lint-staged", + "pre-push": "", "pre-push-old": "npm run typecheck", "prepare": "husky install", "preview": "astro preview", @@ -30,7 +30,7 @@ "vercel-build": "astro build" }, "dependencies": { - "aws-sdk": "^2.0.0", + "@aws-sdk/client-s3": "^3.178.0", "mailgun.js": "^8.0.1" }, "devDependencies": { @@ -60,17 +60,17 @@ "@urql/devtools": "^2.0.3", "@urql/exchange-auth": "^1.0.0", "@urql/exchange-graphcache": "^5.0.0", - "astro": "^1.4.6", - "astro-eslint-parser": "^0.7.3", + "astro": "^1.1.1", + "astro-eslint-parser": "^0.9.0", "bcryptjs": "^2.4.3", "bootstrap": "5.1.3", "clsx": "^1.2.1", "cookie": "^0.5.0", "cookie-signature": "^1.2.0", - "eslint": "^8.22.0", + "eslint": "^8.26.0", "eslint-config-stylelint": "^17.0.0", "eslint-import-resolver-typescript": "^3.5.0", - "eslint-plugin-astro": "^0.20.0", + "eslint-plugin-astro": "^0.21.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.6.1", "eslint-plugin-promise": "^6.0.1", @@ -85,6 +85,8 @@ "idb": "^7.1.0", "jest": "^29.2.1", "lint-staged": "^13.0.3", + "loglevel": "^1.8.0", + "loglevel-plugin-prefix": "^0.8.4", "markdown-it": "^13.0.1", "markdown-it-container": "^3.0.0", "markdown-it-implicit-figures": "^0.10.0", @@ -123,7 +125,7 @@ "stylelint": "^14.12.1", "stylelint-config-css-modules": "^4.1.0", "stylelint-config-prettier-scss": "^0.0.1", - "stylelint-config-standard-scss": "^5.0.0", + "stylelint-config-standard-scss": "^6.0.0", "stylelint-order": "^5.0.0", "stylelint-scss": "^4.3.0", "swiper": "^8.4.2", diff --git a/src/components/Article/Comment.tsx b/src/components/Article/Comment.tsx index 102cba7c..ea40a630 100644 --- a/src/components/Article/Comment.tsx +++ b/src/components/Article/Comment.tsx @@ -1,10 +1,9 @@ import './Comment.scss' import { Icon } from '../Nav/Icon' import { AuthorCard } from '../Author/Card' -import { Show } from 'solid-js/web' +import { Show, createMemo } from 'solid-js' import { clsx } from 'clsx' import type { Author, Reaction as Point } from '../../graphql/types.gen' -import { createMemo } from 'solid-js' import { t } from '../../utils/intl' // import { createReaction, updateReaction, deleteReaction } from '../../stores/zine/reactions' import MD from './MD' diff --git a/src/components/Article/FullArticle.tsx b/src/components/Article/FullArticle.tsx index 512cdac9..ab6d6b07 100644 --- a/src/components/Article/FullArticle.tsx +++ b/src/components/Article/FullArticle.tsx @@ -10,6 +10,7 @@ import { showModal } from '../../stores/ui' import { useAuthStore } from '../../stores/auth' import { incrementView } from '../../stores/zine/articles' import MD from './MD' +import { SharePopup } from './SharePopup' const MAX_COMMENT_LEVEL = 6 @@ -126,9 +127,13 @@ export const FullArticle = (props: ArticleProps) => { {/* */} {/**/}
- showModal('share')}> - - + event.preventDefault()}> + + + } + />
{/*FIXME*/} {/**/} diff --git a/src/components/Article/SharePopup.tsx b/src/components/Article/SharePopup.tsx new file mode 100644 index 00000000..851cf599 --- /dev/null +++ b/src/components/Article/SharePopup.tsx @@ -0,0 +1,45 @@ +import { Icon } from '../Nav/Icon' +import styles from '../Nav/Popup.module.scss' +import { t } from '../../utils/intl' +import { Popup, PopupProps } from '../Nav/Popup' + +type SharePopupProps = Omit + +export const SharePopup = (props: SharePopupProps) => { + return ( + + + + ) +} diff --git a/src/components/Author/Card.tsx b/src/components/Author/Card.tsx index b4d3c735..28acb21c 100644 --- a/src/components/Author/Card.tsx +++ b/src/components/Author/Card.tsx @@ -1,9 +1,8 @@ -import { For, Show } from 'solid-js/web' import type { Author } from '../../graphql/types.gen' import Userpic from './Userpic' import { Icon } from '../Nav/Icon' import style from './Card.module.scss' -import { createMemo } from 'solid-js' +import { createMemo, For, Show } from 'solid-js' import { translit } from '../../utils/ru2en' import { t } from '../../utils/intl' import { useAuthStore } from '../../stores/auth' diff --git a/src/components/Author/Full.tsx b/src/components/Author/Full.tsx index 9f869f7e..b83ed413 100644 --- a/src/components/Author/Full.tsx +++ b/src/components/Author/Full.tsx @@ -2,7 +2,7 @@ import type { Author } from '../../graphql/types.gen' import { AuthorCard } from './Card' import './Full.scss' -export default (props: { author: Author }) => { +export const AuthorFull = (props: { author: Author }) => { return (
diff --git a/src/components/Author/Userpic.tsx b/src/components/Author/Userpic.tsx index 0a075738..0ed8744a 100644 --- a/src/components/Author/Userpic.tsx +++ b/src/components/Author/Userpic.tsx @@ -1,11 +1,13 @@ -import { Show } from 'solid-js/web' +import { Show } from 'solid-js' import type { Author } from '../../graphql/types.gen' import style from './Userpic.module.scss' +import { clsx } from 'clsx' interface UserpicProps { user: Author hasLink?: boolean isBig?: boolean + class?: string } export default (props: UserpicProps) => { @@ -16,7 +18,7 @@ export default (props: UserpicProps) => { } return ( -
+
{ return ( diff --git a/src/components/Discours/Footer.tsx b/src/components/Discours/Footer.tsx index ed0a50f7..941c5d3a 100644 --- a/src/components/Discours/Footer.tsx +++ b/src/components/Discours/Footer.tsx @@ -4,7 +4,7 @@ import { Icon } from '../Nav/Icon' import Subscribe from './Subscribe' import { t } from '../../utils/intl' import { locale } from '../../stores/ui' -import {clsx} from "clsx"; +import { clsx } from 'clsx' export const Footer = () => { const locale_title = createMemo(() => (locale() === 'ru' ? 'English' : 'Русский')) diff --git a/src/components/Editor/components/Editor.module.scss b/src/components/Editor/components/Editor.module.scss new file mode 100644 index 00000000..894a9dea --- /dev/null +++ b/src/components/Editor/components/Editor.module.scss @@ -0,0 +1,7 @@ +.error { + display: none; +} + +.markdown { + white-space: pre-wrap; +} diff --git a/src/components/Editor/components/Editor.tsx b/src/components/Editor/components/Editor.tsx index b2ee8aca..3bdcbf3d 100644 --- a/src/components/Editor/components/Editor.tsx +++ b/src/components/Editor/components/Editor.tsx @@ -3,18 +3,21 @@ import type { EditorState } from 'prosemirror-state' import { useState } from '../store/context' import { ProseMirror } from './ProseMirror' import '../styles/Editor.scss' +import styles from './Editor.module.scss' +import { clsx } from 'clsx' export const Editor = () => { const [store, ctrl] = useState() const onInit = (text: EditorState, editorView: EditorView) => ctrl.setState({ editorView, text }) const onReconfigure = (text: EditorState) => ctrl.setState({ text }) const onChange = (text: EditorState) => ctrl.setState({ text, lastModified: new Date() }) - // const editorCss = (config) => css`` - const style = () => (store.error ? `display: none;` : (store.markdown ? `white-space: pre-wrap;` : '')) + return ( { return ( }> - + - + - + ) @@ -24,8 +24,8 @@ const InvalidState = (props: { title: string }) => { const onClick = () => ctrl.clean() return ( -
-
+
+

{props.title}

There is an error with the editor state. This is probably due to an old version in which the data @@ -35,7 +35,7 @@ const InvalidState = (props: { title: string }) => {

           {JSON.stringify(store.error.props)}
         
-
@@ -53,13 +53,13 @@ const Other = () => { } return ( -
-
+
+

An error occurred.

           {getMessage()}
         
-
diff --git a/src/components/Editor/components/Layout.tsx b/src/components/Editor/components/Layout.tsx index 2d9a35e0..eeea10a8 100644 --- a/src/components/Editor/components/Layout.tsx +++ b/src/components/Editor/components/Layout.tsx @@ -1,17 +1,19 @@ -import type { JSX } from 'solid-js/jsx-runtime'; +import type { JSX } from 'solid-js/jsx-runtime' import type { Config } from '../store/context' import '../styles/Layout.scss' export type Styled = { - children: JSX.Element; - config?: Config; - 'data-testid'?: string; - onClick?: () => void; - onMouseEnter?: (e: MouseEvent) => void; + children: JSX.Element + config?: Config + 'data-testid'?: string + onClick?: () => void + onMouseEnter?: (e: MouseEvent) => void } export const Layout = (props: Styled) => { - return (
- {props.children} -
) + return ( +
+ {props.children} +
+ ) } diff --git a/src/components/Editor/components/ProseMirror.tsx b/src/components/Editor/components/ProseMirror.tsx index da06ba55..1f1c9a86 100644 --- a/src/components/Editor/components/ProseMirror.tsx +++ b/src/components/Editor/components/ProseMirror.tsx @@ -6,14 +6,13 @@ import { Schema } from 'prosemirror-model' import type { NodeViewFn, ProseMirrorExtension, ProseMirrorState } from '../prosemirror/helpers' interface ProseMirrorProps { - style?: string; - className?: string; - text?: Store; - editorView?: Store; - extensions?: Store; - onInit: (s: EditorState, v: EditorView) => void; - onReconfigure: (s: EditorState) => void; - onChange: (s: EditorState) => void; + cssClass?: string + text?: Store + editorView?: Store + extensions?: Store + onInit: (s: EditorState, v: EditorView) => void + onReconfigure: (s: EditorState) => void + onChange: (s: EditorState) => void } export const ProseMirror = (props: ProseMirrorProps) => { @@ -28,45 +27,39 @@ export const ProseMirror = (props: ProseMirrorProps) => { props.onChange(newState) } - createEffect((payload: [EditorState, ProseMirrorExtension[]]) => { - const [prevText, prevExtensions] = payload - const text = unwrap(props.text) - const extensions: ProseMirrorExtension[] = unwrap(props.extensions) - if (!text || !extensions?.length) { + createEffect( + (payload: [EditorState, ProseMirrorExtension[]]) => { + const [prevText, prevExtensions] = payload + const text = unwrap(props.text) + const extensions: ProseMirrorExtension[] = unwrap(props.extensions) + if (!text || !extensions?.length) { + return [text, extensions] + } + + if (!props.editorView) { + const { editorState, nodeViews } = createEditorState(text, extensions) + const view = new EditorView(editorRef, { state: editorState, nodeViews, dispatchTransaction }) + view.focus() + props.onInit(editorState, view) + return [editorState, extensions] + } + + if (extensions !== prevExtensions || (!(text instanceof EditorState) && text !== prevText)) { + const { editorState, nodeViews } = createEditorState(text, extensions, prevText) + if (!editorState) return + editorView().updateState(editorState) + editorView().setProps({ nodeViews, dispatchTransaction }) + props.onReconfigure(editorState) + editorView().focus() + return [editorState, extensions] + } + return [text, extensions] - } - - if (!props.editorView) { - const { editorState, nodeViews } = createEditorState(text, extensions) - const view = new EditorView(editorRef, { state: editorState, nodeViews, dispatchTransaction }) - view.focus() - props.onInit(editorState, view) - return [editorState, extensions] - } - - if (extensions !== prevExtensions || (!(text instanceof EditorState) && text !== prevText)) { - const { editorState, nodeViews } = createEditorState(text, extensions, prevText) - if (!editorState) return - editorView().updateState(editorState) - editorView().setProps({ nodeViews, dispatchTransaction }) - props.onReconfigure(editorState) - editorView().focus() - return [editorState, extensions] - } - - return [text, extensions] - }, - [props.text, props.extensions] + }, + [props.text, props.extensions] ) - return ( -
- ) + return
} const createEditorState = ( @@ -74,8 +67,8 @@ const createEditorState = ( extensions: ProseMirrorExtension[], prevText?: EditorState ): { - editorState: EditorState; - nodeViews: { [key: string]: NodeViewFn }; + editorState: EditorState + nodeViews: { [key: string]: NodeViewFn } } => { const reconfigure = text instanceof EditorState && prevText?.schema let schemaSpec = { nodes: {} } @@ -104,7 +97,7 @@ const createEditorState = ( editorState = text.reconfigure({ schema, plugins } as EditorStateConfig) } else if (text instanceof EditorState) { editorState = EditorState.fromJSON({ schema, plugins }, text.toJSON()) - } else if (text){ + } else if (text) { console.debug(text) editorState = EditorState.fromJSON({ schema, plugins }, text) } diff --git a/src/components/Editor/components/Sidebar.module.scss b/src/components/Editor/components/Sidebar.module.scss new file mode 100644 index 00000000..a626b942 --- /dev/null +++ b/src/components/Editor/components/Sidebar.module.scss @@ -0,0 +1,3 @@ +.withMargin { + margin-bottom: 10px; +} diff --git a/src/components/Editor/components/Sidebar.tsx b/src/components/Editor/components/Sidebar.tsx index ecb392c1..f7fb7415 100644 --- a/src/components/Editor/components/Sidebar.tsx +++ b/src/components/Editor/components/Sidebar.tsx @@ -7,17 +7,20 @@ import * as remote from '../remote' import { isEmpty } from '../prosemirror/helpers' import type { Styled } from './Layout' import '../styles/Sidebar.scss' +import { clsx } from 'clsx' +import styles from './Sidebar.module.scss' -const Off = (props) => +const Off = (props) => -const Label = (props: Styled) => +const Label = (props: Styled) => const Link = ( props: Styled & { withMargin?: boolean; disabled?: boolean; title?: string; className?: string } ) => ( - {stat?.rating || ''} - +
+
diff --git a/src/components/Feed/Group.tsx b/src/components/Feed/Group.tsx index 0747b76c..761d6531 100644 --- a/src/components/Feed/Group.tsx +++ b/src/components/Feed/Group.tsx @@ -1,5 +1,5 @@ import type { JSX } from 'solid-js/jsx-runtime' -import { For, Show } from 'solid-js/web' +import { For, Show } from 'solid-js' import type { Shout } from '../../graphql/types.gen' import { ArticleCard } from './Card' import './Group.scss' diff --git a/src/components/Feed/List.tsx b/src/components/Feed/List.tsx index dac7e127..88235ed3 100644 --- a/src/components/Feed/List.tsx +++ b/src/components/Feed/List.tsx @@ -1,16 +1,15 @@ -import { For, Suspense } from 'solid-js/web' -import OneWide from './Row1' -import Row2 from './Row2' -import Row3 from './Row3' +import { Row1 } from './Row1' +import { Row2 } from './Row2' +import { Row3 } from './Row3' import { shuffle } from '../../utils' -import { createMemo, createSignal } from 'solid-js' +import { createMemo, createSignal, For, Suspense } from 'solid-js' import type { JSX } from 'solid-js' import type { Shout } from '../../graphql/types.gen' import './List.scss' import { t } from '../../utils/intl' export const Block6 = (props: { articles: Shout[] }) => { - const dice = createMemo(() => shuffle([OneWide, Row2, Row3])) + const dice = createMemo(() => shuffle([Row1, Row2, Row3])) return ( <> diff --git a/src/components/Feed/Row1.tsx b/src/components/Feed/Row1.tsx index abf6b9f8..bfb68aca 100644 --- a/src/components/Feed/Row1.tsx +++ b/src/components/Feed/Row1.tsx @@ -2,12 +2,12 @@ import { Show } from 'solid-js' import type { Shout } from '../../graphql/types.gen' import { ArticleCard } from './Card' -export default (props: { article: Shout }) => ( +export const Row1 = (props: { article: Shout }) => (
- +
diff --git a/src/components/Feed/Row2.tsx b/src/components/Feed/Row2.tsx index e12b22bd..c009838b 100644 --- a/src/components/Feed/Row2.tsx +++ b/src/components/Feed/Row2.tsx @@ -1,14 +1,14 @@ -import { createComputed, createSignal, Show } from 'solid-js' -import { For } from 'solid-js/web' +import { createComputed, createSignal, Show, For } from 'solid-js' import type { Shout } from '../../graphql/types.gen' import { ArticleCard } from './Card' + const x = [ ['6', '6'], ['4', '8'], ['8', '4'] ] -export default (props: { articles: Shout[] }) => { +export const Row2 = (props: { articles: Shout[] }) => { const [y, setY] = createSignal(0) createComputed(() => setY(Math.floor(Math.random() * x.length))) diff --git a/src/components/Feed/Row3.tsx b/src/components/Feed/Row3.tsx index 280d844a..cf44806e 100644 --- a/src/components/Feed/Row3.tsx +++ b/src/components/Feed/Row3.tsx @@ -1,9 +1,9 @@ import type { JSX } from 'solid-js/jsx-runtime' -import { For } from 'solid-js/web' +import { For } from 'solid-js' import type { Shout } from '../../graphql/types.gen' import { ArticleCard } from './Card' -export default (props: { articles: Shout[]; header?: JSX.Element }) => { +export const Row3 = (props: { articles: Shout[]; header?: JSX.Element }) => { return (
diff --git a/src/components/Feed/Sidebar.tsx b/src/components/Feed/Sidebar.tsx index b347310e..09dac4a8 100644 --- a/src/components/Feed/Sidebar.tsx +++ b/src/components/Feed/Sidebar.tsx @@ -85,12 +85,12 @@ export const FeedSidebar = (props: FeedSidebarProps) => { -

+

) } diff --git a/src/components/Feed/Slider.tsx b/src/components/Feed/Slider.tsx index 97079c24..686b4f1f 100644 --- a/src/components/Feed/Slider.tsx +++ b/src/components/Feed/Slider.tsx @@ -1,4 +1,3 @@ -import { For } from 'solid-js/web' import { ArticleCard } from './Card' import { Swiper, Navigation, Pagination } from 'swiper' import type { SwiperOptions } from 'swiper' @@ -7,7 +6,7 @@ import 'swiper/scss/navigation' import 'swiper/scss/pagination' import './Slider.scss' import type { Shout } from '../../graphql/types.gen' -import { createEffect, createMemo, createSignal, Show } from 'solid-js' +import { createEffect, createMemo, createSignal, Show, For } from 'solid-js' import { Icon } from '../Nav/Icon' interface SliderProps { diff --git a/src/components/Nav/AuthModal/AuthModal.module.scss b/src/components/Nav/AuthModal/AuthModal.module.scss index 7df0e4dc..3a89155e 100644 --- a/src/components/Nav/AuthModal/AuthModal.module.scss +++ b/src/components/Nav/AuthModal/AuthModal.module.scss @@ -148,11 +148,11 @@ margin-bottom: 8px; /* Red/500 */ - color: #D00820; + color: #d00820; a { - color: #D00820; - border-color: #D00820; + color: #d00820; + border-color: #d00820; &:hover { color: white; @@ -160,3 +160,17 @@ } } } + +.title { + font-size: 26px; + line-height: 32px; + font-weight: 700; + color: #141414; + margin-bottom: 16px; +} + +.text { + font-size: 15px; + line-height: 24px; + margin-bottom: 52px; +} diff --git a/src/components/Nav/AuthModal/ConfirmEmail.tsx b/src/components/Nav/AuthModal/ConfirmEmail.tsx deleted file mode 100644 index 41922f01..00000000 --- a/src/components/Nav/AuthModal/ConfirmEmail.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import styles from './ConfirmEmail.module.scss' -import authModalStyles from './AuthModal.module.scss' -import { clsx } from 'clsx' -import { t } from '../../../utils/intl' -import { hideModal } from '../../../stores/ui' -import { onMount } from 'solid-js' -import { useRouter } from '../../../stores/router' -import { confirmEmail } from '../../../stores/auth' - -type ConfirmEmailSearchParams = { - token: string -} - -export const ConfirmEmail = () => { - const confirmedEmail = 'test@test.com' - - const { searchParams } = useRouter() - - onMount(async () => { - const token = searchParams().token - try { - await confirmEmail(token) - } catch (error) { - console.log(error) - } - }) - - return ( -
-
{t('Hooray! Welcome!')}
-
- {t("You've confirmed email")} {confirmedEmail} -
-
- -
-
- ) -} diff --git a/src/components/Nav/AuthModal/ConfirmOAuth.tsx b/src/components/Nav/AuthModal/ConfirmOAuth.tsx deleted file mode 100644 index b46618a1..00000000 --- a/src/components/Nav/AuthModal/ConfirmOAuth.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import styles from './ConfirmEmail.module.scss' -import authModalStyles from './AuthModal.module.scss' -import { clsx } from 'clsx' -import { t } from '../../../utils/intl' -import { hideModal } from '../../../stores/ui' -import { onMount } from 'solid-js' -import { useRouter } from '../../../stores/router' - -type ConfirmOAuthSearchParams = { - token: string -} - -export const ConfirmOAuth = () => { - const { searchParams } = useRouter() - - onMount(async () => { - console.debug('[confirm-oauth] params', searchParams()) - const token = searchParams().token - localStorage.setItem('token', token) - window.addEventListener('mousemove', () => window.close()) - window.addEventListener('keydown', () => window.close()) - window.addEventListener('click', () => window.close()) - }) - - return ( -
-
{t('Hooray! Welcome!')}
-
- {t("You've confirmed your account")} { /* TODO: get '%username%' */ } -
-
- -
-
- ) -} diff --git a/src/components/Nav/AuthModal/ConfirmEmail.module.scss b/src/components/Nav/AuthModal/EmailConfirm.module.scss similarity index 100% rename from src/components/Nav/AuthModal/ConfirmEmail.module.scss rename to src/components/Nav/AuthModal/EmailConfirm.module.scss diff --git a/src/components/Nav/AuthModal/EmailConfirm.tsx b/src/components/Nav/AuthModal/EmailConfirm.tsx new file mode 100644 index 00000000..1fd1c7aa --- /dev/null +++ b/src/components/Nav/AuthModal/EmailConfirm.tsx @@ -0,0 +1,44 @@ +import styles from './AuthModal.module.scss' +import { clsx } from 'clsx' +import { t } from '../../../utils/intl' +import { hideModal } from '../../../stores/ui' +import { createMemo, onMount, Show } from 'solid-js' +import { useRouter } from '../../../stores/router' +import { confirmEmail, useAuthStore } from '../../../stores/auth' + +type ConfirmEmailSearchParams = { + token: string +} + +export const EmailConfirm = () => { + const { session } = useAuthStore() + + const confirmedEmail = createMemo(() => session()?.user?.email || '') + + const { searchParams } = useRouter() + + onMount(async () => { + const token = searchParams().token + try { + await confirmEmail(token) + } catch (error) { + console.log(error) + } + }) + + return ( +
+
{t('Hooray! Welcome!')}
+ +
+ {t("You've confirmed email")} {confirmedEmail()} +
+
+
+ +
+
+ ) +} diff --git a/src/components/Nav/AuthModal/ForgotPasswordForm.tsx b/src/components/Nav/AuthModal/ForgotPasswordForm.tsx index 3987e40b..fcf6f3c8 100644 --- a/src/components/Nav/AuthModal/ForgotPasswordForm.tsx +++ b/src/components/Nav/AuthModal/ForgotPasswordForm.tsx @@ -1,8 +1,7 @@ -import { Show } from 'solid-js/web' import { t } from '../../../utils/intl' import styles from './AuthModal.module.scss' import { clsx } from 'clsx' -import { createSignal, JSX } from 'solid-js' +import { createSignal, JSX, Show } from 'solid-js' import { useRouter } from '../../../stores/router' import { email, setEmail } from './sharedLogic' import type { AuthModalSearchParams } from './types' @@ -64,7 +63,7 @@ export const ForgotPasswordForm = () => { return (

{t('Forgot password?')}

- {t('Everything is ok, please give us your email address')} +
{t('Everything is ok, please give us your email address')}
    diff --git a/src/components/Nav/AuthModal/LoginForm.tsx b/src/components/Nav/AuthModal/LoginForm.tsx index 6989768c..6487976e 100644 --- a/src/components/Nav/AuthModal/LoginForm.tsx +++ b/src/components/Nav/AuthModal/LoginForm.tsx @@ -1,11 +1,10 @@ -import { Show } from 'solid-js/web' import { t } from '../../../utils/intl' import styles from './AuthModal.module.scss' import { clsx } from 'clsx' import { SocialProviders } from './SocialProviders' -import { signIn } from '../../../stores/auth' +import { signIn, signSendLink } from '../../../stores/auth' import { ApiError } from '../../../utils/apiClient' -import { createSignal } from 'solid-js' +import { createSignal, Show } from 'solid-js' import { isValidEmail } from './validators' import { email, setEmail } from './sharedLogic' import { useRouter } from '../../../stores/router' @@ -23,6 +22,9 @@ export const LoginForm = () => { const [submitError, setSubmitError] = createSignal('') const [isSubmitting, setIsSubmitting] = createSignal(false) const [validationErrors, setValidationErrors] = createSignal({}) + // TODO: better solution for interactive error messages + const [isEmailNotConfirmed, setIsEmailNotConfirmed] = createSignal(false) + const [isLinkSent, setIsLinkSent] = createSignal(false) const { changeSearchParam } = useRouter() @@ -49,6 +51,7 @@ export const LoginForm = () => { const handleSubmit = async (event: Event) => { event.preventDefault() + setIsLinkSent(false) setSubmitError('') const newValidationErrors: ValidationErrors = {} @@ -72,10 +75,12 @@ export const LoginForm = () => { try { await signIn({ email: email(), password: password() }) + hideModal() } catch (error) { if (error instanceof ApiError) { if (error.code === 'email_not_confirmed') { setSubmitError(t('Please, confirm email')) + setIsEmailNotConfirmed(true) return } @@ -96,11 +101,17 @@ export const LoginForm = () => {

    {t('Enter the Discours')}

    -
      -
    • {submitError()}
    • -
    +
    {submitError()}
    + + + {t('Send link again')} + +
    + +
    {t('Link sent, check your email')}
    +
    { const [name, setName] = createSignal('') const [password, setPassword] = createSignal('') const [isSubmitting, setIsSubmitting] = createSignal(false) + const [isSuccess, setIsSuccess] = createSignal(false) const [validationErrors, setValidationErrors] = createSignal({}) const handleEmailInput = (newEmail: string) => { @@ -91,6 +92,8 @@ export const RegisterForm = () => { email: email(), password: password() }) + + setIsSuccess(true) } catch (error) { if (error instanceof ApiError && error.code === 'user_already_exists') { return @@ -103,87 +106,100 @@ export const RegisterForm = () => { } return ( - -

    {t('Create account')}

    - -
    -
      -
    • {submitError()}
    • -
    + <> + + +

    {t('Create account')}

    + +
    +
      +
    • {submitError()}
    • +
    +
    +
    +
    + handleNameInput(event.currentTarget.value)} + /> + +
    + +
    {validationErrors().name}
    +
    +
    + handleEmailInput(event.currentTarget.value)} + onBlur={handleEmailBlur} + /> + +
    + +
    {validationErrors().email}
    +
    + + + +
    + handlePasswordInput(event.currentTarget.value)} + /> + +
    + +
    {validationErrors().password}
    +
    + +
    + +
    + + + +
    + changeSearchParam('mode', 'login')}> + {t('I have an account')} + +
    + +
    + +
    {t('Almost done! Check your email.')}
    +
    {t("We've sent you a message with a link to enter our website.")}
    +
    +
    -
    - handleNameInput(event.currentTarget.value)} - /> - -
    - -
    {validationErrors().name}
    -
    -
    - handleEmailInput(event.currentTarget.value)} - onBlur={handleEmailBlur} - /> - -
    - -
    {validationErrors().email}
    -
    - - - -
    - handlePasswordInput(event.currentTarget.value)} - /> - -
    - -
    {validationErrors().password}
    -
    - -
    - -
    - - - -
    - changeSearchParam('mode', 'login')}> - {t('I have an account')} - -
    - + ) } diff --git a/src/components/Nav/AuthModal/index.tsx b/src/components/Nav/AuthModal/index.tsx index 686ffecd..f0a773d1 100644 --- a/src/components/Nav/AuthModal/index.tsx +++ b/src/components/Nav/AuthModal/index.tsx @@ -1,5 +1,5 @@ -import { Show } from 'solid-js/web' -import { createEffect, createMemo } from 'solid-js' +import { Dynamic } from 'solid-js/web' +import { Component, createEffect, createMemo } from 'solid-js' import { t } from '../../../utils/intl' import { hideModal } from '../../../stores/ui' import { handleClientRouteLinkClick, useRouter } from '../../../stores/router' @@ -8,15 +8,24 @@ import styles from './AuthModal.module.scss' import { LoginForm } from './LoginForm' import { RegisterForm } from './RegisterForm' import { ForgotPasswordForm } from './ForgotPasswordForm' -import { ConfirmEmail } from './ConfirmEmail' +import { EmailConfirm } from './EmailConfirm' import type { AuthModalMode, AuthModalSearchParams } from './types' -import { ConfirmOAuth } from './ConfirmOAuth' +const AUTH_MODAL_MODES: Record = { + login: LoginForm, + register: RegisterForm, + 'forgot-password': ForgotPasswordForm, + 'confirm-email': EmailConfirm +} export const AuthModal = () => { let rootRef: HTMLDivElement + const { searchParams } = useRouter() - const mode = createMemo(() => searchParams().mode || 'login') + + const mode = createMemo(() => { + return AUTH_MODAL_MODES[searchParams().mode] ? searchParams().mode : 'login' + }) createEffect((oldMode) => { if (oldMode !== mode()) { @@ -28,12 +37,12 @@ export const AuthModal = () => {

    {t('Discours')}

    {t(`Join the global community of authors!`)}

    @@ -60,21 +69,7 @@ export const AuthModal = () => {
    - - - - - - - - - - - - - - - +
    ) diff --git a/src/components/Nav/AuthModal/types.ts b/src/components/Nav/AuthModal/types.ts index 4bccde25..e7aeed0e 100644 --- a/src/components/Nav/AuthModal/types.ts +++ b/src/components/Nav/AuthModal/types.ts @@ -1,4 +1,4 @@ -export type AuthModalMode = 'login' | 'register' | 'confirm-email' | 'confirm-oauth' | 'forgot-password' +export type AuthModalMode = 'login' | 'register' | 'confirm-email' | 'forgot-password' export type AuthModalSearchParams = { mode: AuthModalMode diff --git a/src/components/Nav/Confirmed.scss b/src/components/Nav/Confirmed.scss new file mode 100644 index 00000000..4307f056 --- /dev/null +++ b/src/components/Nav/Confirmed.scss @@ -0,0 +1,6 @@ +.center { + display: flex; + justify-content: center; + align-items: center; + height: 420px; +} diff --git a/src/components/Nav/Confirmed.tsx b/src/components/Nav/Confirmed.tsx new file mode 100644 index 00000000..f870c83d --- /dev/null +++ b/src/components/Nav/Confirmed.tsx @@ -0,0 +1,18 @@ +import './Confirmed.scss' +import { onMount } from 'solid-js' +import { t } from '../../utils/intl' + +export const Confirmed = (props: { token?: string }) => { + onMount(() => { + const token = props.token ?? document.cookie.split(';').at(0).replace('token=', '') + window.addEventListener('mousemove', () => window.close()) + window.addEventListener('keydown', () => window.close()) + window.addEventListener('click', () => window.close()) + localStorage.setItem('token', token) + }) + return ( + <> +
    {t('You was successfully authorized')}
    + + ) +} diff --git a/src/components/Nav/Header.module.scss b/src/components/Nav/Header.module.scss index 0a34a45e..c8ac34a4 100644 --- a/src/components/Nav/Header.module.scss +++ b/src/components/Nav/Header.module.scss @@ -35,18 +35,6 @@ } } -.popupShare { - opacity: 1; - transition: opacity 0.3s; - z-index: 1; - - .headerScrolledTop & { - opacity: 0; - transition: opacity 0.3s, z-index 0s 0.3s; - z-index: -1; - } -} - .headerFixed { position: fixed; top: 0; @@ -327,18 +315,6 @@ } } -.userControl { - opacity: 1; - transition: opacity 0.3s; - z-index: 1; - - .headerWithTitle.headerScrolledBottom & { - transition: opacity 0.3s, z-index 0s 0.3s; - opacity: 0; - z-index: -1; - } -} - .articleControls { display: flex; justify-content: flex-end; @@ -348,18 +324,14 @@ transform: translateY(-50%); width: 100%; - .icon { - margin-left: 1.6rem; - opacity: 0.6; - transition: opacity 0.3s; - } + .control { + cursor: pointer; + border: 0; - img { - vertical-align: middle; - } - - a { - border: none; + .icon { + opacity: 0.6; + transition: opacity 0.3s; + } &:hover { background: none; @@ -370,4 +342,141 @@ } } } + + .control + .control { + margin-left: 1.6rem; + } + + img { + vertical-align: middle; + } +} + +.userControl { + align-items: baseline; + display: flex; + opacity: 1; + transition: opacity 0.3s; + z-index: 1; + + .headerWithTitle.headerScrolledBottom & { + transition: opacity 0.3s, z-index 0s 0.3s; + opacity: 0; + z-index: -1; + } + + @include font-size(1.7rem); + + justify-content: flex-end; + + @include media-breakpoint-down(md) { + padding: divide($container-padding-x, 2); + } + + .userpic { + margin-right: 0; + + img { + height: 100%; + width: 100%; + } + } +} + +.userControlItem { + align-items: center; + border: 2px solid #f6f6f6; + border-radius: 100%; + display: flex; + height: 2.4em; + justify-content: center; + margin-left: divide($container-padding-x, 2); + position: relative; + width: 2.4em; + + @include media-breakpoint-up(sm) { + margin-left: 1.2rem; + } + + .circlewrap { + height: 23px; + min-width: 23px; + width: 23px; + } + + .button, + a { + border: none; + height: auto; + margin: 0; + padding: 0; + + &:hover { + background: none; + + &::before { + background-color: #000; + } + + img { + filter: invert(1); + } + } + + img { + filter: invert(0); + transition: filter 0.3s; + } + + &::before { + background-color: #fff; + border-radius: 100%; + content: ''; + height: 100%; + left: 0; + position: absolute; + top: 0; + transition: background-color 0.3s; + width: 100%; + } + } + + img { + height: 20px; + vertical-align: middle; + width: auto; + } + + .textLabel { + display: none; + } +} + +.userControlItemInbox, +.userControlItemSearch { + @include media-breakpoint-down(sm) { + display: none; + } +} + +.userControlItemWritePost { + width: auto; + + @include media-breakpoint-up(lg) { + .icon { + display: none; + } + + .textLabel { + display: inline; + padding: 0 1.2rem; + position: relative; + z-index: 1; + } + } + + &, + a::before { + border-radius: 1.2em; + } } diff --git a/src/components/Nav/Header.tsx b/src/components/Nav/Header.tsx index ad1b6c3c..aa29bb56 100644 --- a/src/components/Nav/Header.tsx +++ b/src/components/Nav/Header.tsx @@ -1,19 +1,22 @@ import { For, Show, createSignal, createMemo, createEffect, onMount, onCleanup } from 'solid-js' -import Private from './Private' import Notifications from './Notifications' import { Icon } from './Icon' import { Modal } from './Modal' -import { Popup } from './Popup' import { AuthModal } from './AuthModal' import { t } from '../../utils/intl' import { useModalStore, showModal, useWarningsStore } from '../../stores/ui' import { useAuthStore } from '../../stores/auth' import { handleClientRouteLinkClick, router, Routes, useRouter } from '../../stores/router' import styles from './Header.module.scss' -import stylesPopup from './Popup.module.scss' -import privateStyles from './Private.module.scss' import { getPagePath } from '@nanostores/router' +import { getLogger } from '../../utils/logger' import { clsx } from 'clsx' +import { SharePopup } from '../Article/SharePopup' +import { ProfilePopup } from './ProfilePopup' +import Userpic from '../Author/Userpic' +import type { Author } from '../../graphql/types.gen' + +const log = getLogger('header') const resources: { name: string; route: keyof Routes }[] = [ { name: t('zine'), route: 'home' }, @@ -32,6 +35,9 @@ export const Header = (props: Props) => { const [getIsScrolled, setIsScrolled] = createSignal(false) const [fixed, setFixed] = createSignal(false) const [visibleWarnings, setVisibleWarnings] = createSignal(false) + const [isSharePopupVisible, setIsSharePopupVisible] = createSignal(false) + const [isProfilePopupVisible, setIsProfilePopupVisible] = createSignal(false) + // stores const { warnings } = useWarningsStore() const { session } = useAuthStore() @@ -41,13 +47,11 @@ export const Header = (props: Props) => { // methods const toggleWarnings = () => setVisibleWarnings(!visibleWarnings()) - const toggleFixed = () => setFixed(!fixed()) + const toggleFixed = () => setFixed((oldFixed) => !oldFixed) // effects createEffect(() => { - const isFixed = fixed() || (modal() && modal() !== 'share'); - - document.body.classList.toggle('fixed', isFixed); - document.body.classList.toggle(styles.fixed, isFixed && !modal()); + document.body.classList.toggle('fixed', fixed() || modal() !== null) + document.body.classList.toggle(styles.fixed, fixed() && !modal()) }) // derived @@ -85,7 +89,8 @@ export const Header = (props: Props) => { classList={{ [styles.headerFixed]: props.isHeaderFixed, [styles.headerScrolledTop]: !getIsScrollingBottom() && getIsScrolled(), - [styles.headerScrolledBottom]: getIsScrollingBottom() && getIsScrolled(), + [styles.headerScrolledBottom]: + (getIsScrollingBottom() && getIsScrolled() && !isProfilePopupVisible()) || isSharePopupVisible(), [styles.headerWithTitle]: Boolean(props.title) }} > @@ -94,41 +99,6 @@ export const Header = (props: Props) => {
-
-
+
+ + +
@@ -172,7 +149,7 @@ export const Header = (props: Props) => {
-
+
@@ -180,31 +157,56 @@ export const Header = (props: Props) => { +
} > - + + { + setIsProfilePopupVisible(isVisible) + }} + containerCssClass={styles.control} + trigger={ +
+ +
+ } + />
- - + containerCssClass={styles.control} + trigger={} + /> + - - + event.preventDefault()}> + + + event.preventDefault()}> + +
diff --git a/src/components/Nav/Icon.css b/src/components/Nav/Icon.css index 525ffa40..c59128ed 100644 --- a/src/components/Nav/Icon.css +++ b/src/components/Nav/Icon.css @@ -1,4 +1,5 @@ .icon { + line-height: 1; position: relative; } diff --git a/src/components/Nav/Modal.tsx b/src/components/Nav/Modal.tsx index 46963426..bca4c2f7 100644 --- a/src/components/Nav/Modal.tsx +++ b/src/components/Nav/Modal.tsx @@ -1,8 +1,11 @@ import { createEffect, createSignal, onCleanup, onMount, Show } from 'solid-js' import type { JSX } from 'solid-js' +import { getLogger } from '../../utils/logger' import './Modal.scss' import { hideModal, useModalStore } from '../../stores/ui' +const log = getLogger('modal') + interface ModalProps { name: string children: JSX.Element @@ -31,7 +34,7 @@ export const Modal = (props: ModalProps) => { createEffect(() => { setVisible(modal() === props.name) - console.debug(`[auth.modal] ${props.name} is ${modal() === props.name ? 'visible' : 'hidden'}`) + log.debug(`${props.name} is ${modal() === props.name ? 'visible' : 'hidden'}`) }) return ( diff --git a/src/components/Nav/Notifications.tsx b/src/components/Nav/Notifications.tsx index c7c28215..4a53736d 100644 --- a/src/components/Nav/Notifications.tsx +++ b/src/components/Nav/Notifications.tsx @@ -1,6 +1,6 @@ -import { For, Portal, Show } from 'solid-js/web' +import { Portal } from 'solid-js/web' import { useWarningsStore } from '../../stores/ui' -import { createMemo } from 'solid-js' +import { createMemo, For, Show } from 'solid-js' export default () => { const { warnings } = useWarningsStore() diff --git a/src/components/Nav/Popup.module.scss b/src/components/Nav/Popup.module.scss index 63405563..75ca81ad 100644 --- a/src/components/Nav/Popup.module.scss +++ b/src/components/Nav/Popup.module.scss @@ -1,10 +1,25 @@ +.container { + position: relative; +} + .popup { background: #fff; border: 2px solid #000; + top: calc(100% + 8px); + opacity: 1; + + &.horizontalAnchorCenter { + left: 50%; + transform: translateX(-50%); + } + + &.horizontalAnchorRight { + right: 0; + } @include font-size(1.6rem); - padding: 2.4rem 2.4rem 2.4rem 1.6rem; + padding: 2.4rem; position: absolute; z-index: 10; @@ -14,7 +29,6 @@ li { margin-bottom: 1.6rem; - padding-left: 3.6rem; position: relative; &:last-child { @@ -24,23 +38,36 @@ a { border: none; + white-space: nowrap; + + &:hover { + img { + filter: invert(0); + } + } } img { filter: invert(1); max-height: 2rem; max-width: 2rem; + transition: filter 0.3s; } .icon { - left: 1.5rem; - position: absolute; - top: 50%; - transform: translate(-50%, -50%); + display: inline-block; + width: 3.6rem; } } -.popupShare { - right: 1em; - top: 4.5rem; -} +// TODO: animation +// .popup { +// opacity: 1; +// transition: opacity 0.3s; +// z-index: 1; +// &.visible { +// opacity: 0; +// transition: opacity 0.3s, z-index 0s 0.3s; +// z-index: -1; +// } +// } diff --git a/src/components/Nav/Popup.tsx b/src/components/Nav/Popup.tsx index 5afc9237..bf9f6ced 100644 --- a/src/components/Nav/Popup.tsx +++ b/src/components/Nav/Popup.tsx @@ -1,31 +1,61 @@ -import { createEffect, createSignal, JSX, onMount, Show } from 'solid-js' -import style from './Popup.module.scss' -import { hideModal, useModalStore } from '../../stores/ui' +import { createEffect, createSignal, JSX, onCleanup, onMount, Show } from 'solid-js' +import styles from './Popup.module.scss' import { clsx } from 'clsx' -interface PopupProps { - name: string +type HorizontalAnchor = 'center' | 'right' + +export type PopupProps = { + containerCssClass?: string + trigger: JSX.Element children: JSX.Element - class?: string + onVisibilityChange?: (isVisible) => void + horizontalAnchor?: HorizontalAnchor } export const Popup = (props: PopupProps) => { - const { modal } = useModalStore() + const [isVisible, setIsVisible] = createSignal(false) + const horizontalAnchor: HorizontalAnchor = props.horizontalAnchor || 'center' + + createEffect(() => { + if (props.onVisibilityChange) { + props.onVisibilityChange(isVisible()) + } + }) + + let container: HTMLDivElement | undefined + + const handleClickOutside = (event: MouseEvent & { target: Element }) => { + if (!isVisible()) { + return + } + + if (event.target === container || container?.contains(event.target)) { + return + } + + setIsVisible(false) + } onMount(() => { - window.addEventListener('keydown', (e: KeyboardEvent) => { - if (e.key === 'Escape') hideModal() - }) + document.addEventListener('click', handleClickOutside, { capture: true }) + onCleanup(() => document.removeEventListener('click', handleClickOutside, { capture: true })) }) - const [visible, setVisible] = createSignal(false) - createEffect(() => { - setVisible(modal() === props.name) - }) + const toggle = () => setIsVisible((oldVisible) => !oldVisible) return ( - -
{props.children}
-
+ + {props.trigger} + +
+ {props.children} +
+
+
) } diff --git a/src/components/Nav/Private.module.scss b/src/components/Nav/Private.module.scss deleted file mode 100644 index dbe7bb26..00000000 --- a/src/components/Nav/Private.module.scss +++ /dev/null @@ -1,100 +0,0 @@ -.userControl { - align-items: baseline; - display: flex; - - @include font-size(1.7rem); - - justify-content: flex-end; - - @include media-breakpoint-down(md) { - padding: divide($container-padding-x, 2); - } - - .circlewrap { - margin-right: 0; - } -} - -.userControlItem { - align-items: center; - border: 2px solid #f6f6f6; - border-radius: 100%; - display: flex; - height: 2.4em; - justify-content: center; - margin-left: divide($container-padding-x, 2); - position: relative; - width: 2.4em; - - @include media-breakpoint-up(sm) { - margin-left: 1.2rem; - } - - .circlewrap { - height: 23px; - min-width: 23px; - width: 23px; - } - - a { - border: none; - - &:hover { - background: none; - - &::before { - background-color: #000; - } - - img { - filter: invert(1); - } - } - - img { - filter: invert(0); - transition: filter 0.3s; - } - - &::before { - background-color: #fff; - border-radius: 100%; - content: ''; - height: 100%; - left: 0; - position: absolute; - top: 0; - transition: background-color 0.3s; - width: 100%; - } - } - - img { - height: 20px; - vertical-align: middle; - width: auto; - } - - .textLabel { - display: none; - } -} - -.userControlItemWritePost { - @include media-breakpoint-up(lg) { - .icon { - display: none; - } - - .textLabel { - display: inline; - } - } -} - -.userControlItemInbox, -.userControlItemSearch { - @include media-breakpoint-down(sm) { - display: none; - } -} diff --git a/src/components/Nav/Private.tsx b/src/components/Nav/Private.tsx deleted file mode 100644 index 2a3ad170..00000000 --- a/src/components/Nav/Private.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import type { Author } from '../../graphql/types.gen' -import Userpic from '../Author/Userpic' -import { Icon } from './Icon' -import styles from './Private.module.scss' -import { useAuthStore } from '../../stores/auth' -import { useRouter } from '../../stores/router' -import { clsx } from 'clsx' - -export default () => { - const { session } = useAuthStore() - const { page } = useRouter() - - return ( - - ) -} diff --git a/src/components/Nav/ProfileModal.tsx b/src/components/Nav/ProfileModal.tsx index 38d07060..ae32f97b 100644 --- a/src/components/Nav/ProfileModal.tsx +++ b/src/components/Nav/ProfileModal.tsx @@ -1,10 +1,9 @@ -import { For } from 'solid-js/web' import { AuthorCard } from '../Author/Card' import type { Author } from '../../graphql/types.gen' import { t } from '../../utils/intl' import { hideModal } from '../../stores/ui' import { useAuthStore, signOut } from '../../stores/auth' -import { createMemo } from 'solid-js' +import { createMemo, For } from 'solid-js' const quit = () => { signOut() diff --git a/src/components/Nav/ProfilePopup.tsx b/src/components/Nav/ProfilePopup.tsx new file mode 100644 index 00000000..0a3f7a28 --- /dev/null +++ b/src/components/Nav/ProfilePopup.tsx @@ -0,0 +1,44 @@ +import { Popup, PopupProps } from './Popup' +import { signOut, useAuthStore } from '../../stores/auth' + +type ProfilePopupProps = Omit + +export const ProfilePopup = (props: ProfilePopupProps) => { + const { session } = useAuthStore() + + return ( + + + + ) +} diff --git a/src/components/Pages/AuthorPage.tsx b/src/components/Pages/AuthorPage.tsx index 0eab1346..d8d73f6c 100644 --- a/src/components/Pages/AuthorPage.tsx +++ b/src/components/Pages/AuthorPage.tsx @@ -1,8 +1,8 @@ import { MainLayout } from '../Layouts/MainLayout' -import { AuthorView } from '../Views/Author' +import { AuthorView, PRERENDERED_ARTICLES_COUNT } from '../Views/Author' import type { PageProps } from '../types' import { createMemo, createSignal, onCleanup, onMount, Show } from 'solid-js' -import { loadArticlesForAuthors, resetSortedArticles } from '../../stores/zine/articles' +import { loadAuthorArticles, resetSortedArticles } from '../../stores/zine/articles' import { useRouter } from '../../stores/router' import { loadAuthor } from '../../stores/zine/authors' import { Loading } from '../Loading' @@ -27,7 +27,7 @@ export const AuthorPage = (props: PageProps) => { return } - await loadArticlesForAuthors({ authorSlugs: [slug()] }) + await loadAuthorArticles({ authorSlug: slug(), limit: PRERENDERED_ARTICLES_COUNT }) await loadAuthor({ slug: slug() }) setIsLoaded(true) diff --git a/src/components/Pages/FeedPage.tsx b/src/components/Pages/FeedPage.tsx index 13c18136..7aef8fbf 100644 --- a/src/components/Pages/FeedPage.tsx +++ b/src/components/Pages/FeedPage.tsx @@ -1,30 +1,14 @@ import { MainLayout } from '../Layouts/MainLayout' import { FeedView } from '../Views/Feed' -import type { PageProps } from '../types' -import { createSignal, onCleanup, onMount, Show } from 'solid-js' -import { loadRecentArticles, resetSortedArticles } from '../../stores/zine/articles' -import { Loading } from '../Loading' - -export const FeedPage = (props: PageProps) => { - const [isLoaded, setIsLoaded] = createSignal(Boolean(props.feedArticles)) - - onMount(async () => { - if (isLoaded()) { - return - } - - await loadRecentArticles({ limit: 50, offset: 0 }) - - setIsLoaded(true) - }) +import { onCleanup } from 'solid-js' +import { resetSortedArticles } from '../../stores/zine/articles' +export const FeedPage = () => { onCleanup(() => resetSortedArticles()) return ( - }> - - + ) } diff --git a/src/components/Pages/HomePage.tsx b/src/components/Pages/HomePage.tsx index f8430e03..392280bb 100644 --- a/src/components/Pages/HomePage.tsx +++ b/src/components/Pages/HomePage.tsx @@ -1,4 +1,4 @@ -import { HomeView } from '../Views/Home' +import { HomeView, PRERENDERED_ARTICLES_COUNT } from '../Views/Home' import { MainLayout } from '../Layouts/MainLayout' import type { PageProps } from '../types' import { createSignal, onCleanup, onMount, Show } from 'solid-js' @@ -14,7 +14,7 @@ export const HomePage = (props: PageProps) => { return } - await loadPublishedArticles({ limit: 5, offset: 0 }) + await loadPublishedArticles({ limit: PRERENDERED_ARTICLES_COUNT, offset: 0 }) await loadRandomTopics() setIsLoaded(true) diff --git a/src/components/Pages/TopicPage.tsx b/src/components/Pages/TopicPage.tsx index 7cbaa1b5..16e0c95a 100644 --- a/src/components/Pages/TopicPage.tsx +++ b/src/components/Pages/TopicPage.tsx @@ -1,8 +1,8 @@ import { MainLayout } from '../Layouts/MainLayout' -import { TopicView } from '../Views/Topic' +import { PRERENDERED_ARTICLES_COUNT, TopicView } from '../Views/Topic' import type { PageProps } from '../types' import { createMemo, createSignal, onCleanup, onMount, Show } from 'solid-js' -import { loadArticlesForTopics, resetSortedArticles } from '../../stores/zine/articles' +import { loadTopicArticles, resetSortedArticles } from '../../stores/zine/articles' import { useRouter } from '../../stores/router' import { loadTopic } from '../../stores/zine/topics' import { Loading } from '../Loading' @@ -27,7 +27,7 @@ export const TopicPage = (props: PageProps) => { return } - await loadArticlesForTopics({ topicSlugs: [slug()] }) + await loadTopicArticles({ topicSlug: slug(), limit: PRERENDERED_ARTICLES_COUNT, offset: 0 }) await loadTopic({ slug: slug() }) setIsLoaded(true) diff --git a/src/components/Pages/about/ManifestPage.tsx b/src/components/Pages/about/ManifestPage.tsx index 68e318c2..3a9cf69f 100644 --- a/src/components/Pages/about/ManifestPage.tsx +++ b/src/components/Pages/about/ManifestPage.tsx @@ -54,28 +54,29 @@ export const ManifestPage = () => {

- Дискурс — независимый художественно-аналитический журнал с горизонтальной редакцией, - основанный на принципах свободы слова, прямой демократии и совместного редактирования. - Дискурс создаётся открытым медиасообществом ученых, журналистов, музыкантов, писателей, - предпринимателей, философов, инженеров, художников и специалистов со всего мира, - объединившихся, чтобы вместе делать общий журнал и объяснять с разных точек - зрения мозаичную картину современности. + Дискурс — независимый художественно-аналитический журнал с горизонтальной + редакцией, основанный на принципах свободы слова, прямой демократии и совместного + редактирования. Дискурс создаётся открытым медиасообществом ученых, журналистов, музыкантов, + писателей, предпринимателей, философов, инженеров, художников и специалистов + со всего мира, объединившихся, чтобы вместе делать общий журнал и объяснять + с разных точек зрения мозаичную картину современности.

- Мы пишем о культуре, науке и обществе, рассказываем о новых идеях и современном искусстве, - публикуем статьи, исследования, репортажи, интервью людей, чью прямую речь стоит услышать, - и работы художников из разных стран — от фильмов и музыки - до живописи и фотографии. Помогая друг другу делать публикации качественнее - и общим голосованием выбирая лучшие материалы для журнала, мы создаём новую - горизонтальную журналистику, чтобы честно рассказывать о важном и интересном. + Мы пишем о культуре, науке и обществе, рассказываем о новых идеях + и современном искусстве, публикуем статьи, исследования, репортажи, интервью людей, чью + прямую речь стоит услышать, и работы художников из разных стран — + от фильмов и музыки до живописи и фотографии. Помогая друг другу делать + публикации качественнее и общим голосованием выбирая лучшие материалы для журнала, + мы создаём новую горизонтальную журналистику, чтобы честно рассказывать о важном + и интересном.

- Редакция Дискурса открыта для всех: у нас нет цензуры, запретных тем и идеологических рамок. - Каждый может прислать материал в журнал - и присоединиться к редакции. Предоставляя трибуну - для независимой журналистики и художественных проектов, мы помогаем людям - рассказывать свои истории так, чтобы они были услышаны. Мы убеждены: чем больше - голосов будет звучать на Дискурсе, тем громче в полифонии мнений будет слышна истина. + Редакция Дискурса открыта для всех: у нас нет цензуры, запретных тем + и идеологических рамок. Каждый может прислать материал{' '} + в журнал и присоединиться к редакции. Предоставляя + трибуну для независимой журналистики и художественных проектов, мы помогаем людям + рассказывать свои истории так, чтобы они были услышаны. Мы убеждены: чем больше голосов + будет звучать на Дискурсе, тем громче в полифонии мнений будет слышна истина.

@@ -91,23 +92,26 @@ export const ManifestPage = () => {

Предлагать материалы

- Создавайте свои статьи и художественные работы — лучшие из них будут - опубликованы в журнале. Дискурс — некоммерческое издание, авторы публикуются - в журнале на общественных началах, получая при этом поддержку редакции, - право голоса, множество других возможностей и читателей по всему миру. + Создавайте свои статьи и художественные работы — + лучшие из них будут опубликованы в журнале. Дискурс — некоммерческое + издание, авторы публикуются в журнале на общественных началах, получая при этом{' '} + поддержку редакции, право голоса, множество других + возможностей и читателей по всему миру.

-

Дискурс существует на пожертвования читателей. Если вам нравится журнал, пожалуйста,

- поддержите нашу работу. Ваши пожертвования пойдут на выпуск новых - материалов, оплату серверов, труда программистов, дизайнеров и редакторов. + Дискурс существует на пожертвования читателей. Если вам нравится журнал, пожалуйста, +

+

+ поддержите нашу работу. Ваши пожертвования пойдут на выпуск + новых материалов, оплату серверов, труда программистов, дизайнеров и редакторов.

Сотрудничать с журналом

Мы всегда открыты для сотрудничества и рады единомышленникам. Если вы хотите помогать журналу с редактурой, корректурой, иллюстрациями, переводами, версткой, подкастами, - мероприятиями, фандрайзингом или как-то ещё — скорее пишите нам - на welcome@discours.io. + мероприятиями, фандрайзингом или как-то ещё — скорее пишите нам на  + welcome@discours.io.

Если вы представляете некоммерческую организацию и хотите сделать с нами @@ -116,25 +120,26 @@ export const ManifestPage = () => {

Если вы разработчик и хотите помогать с развитием сайта Дискурса,{' '} - присоединяйтесь к IT-команде самиздата. Открытый - код платформы для независимой журналистики, а также всех наших спецпроектов - и медиаинструментов находится в свободном доступе на GitHub. + присоединяйтесь к IT-команде самиздата. + Открытый код платформы для независимой журналистики, а также всех наших спецпроектов + и медиаинструментов находится{' '} + в свободном доступе на GitHub.

Как еще можно помочь

Советуйте Дискурс друзьям и знакомым. Обсуждайте и распространяйте наши публикации — все материалы открытой редакции можно читать и перепечатывать - бесплатно. Подпишитесь на самиздат{' '} - ВКонтакте, + бесплатно. Подпишитесь на самиздат ВКонтакте, в Фейсбуке - и в Телеграме, а также - на рассылку лучших материалов, - чтобы не пропустить ничего интересного. + и в Телеграме, а также на  + рассылку лучших материалов, чтобы не пропустить + ничего интересного.

Рассказывайте о впечатлениях от материалов открытой редакции, делитесь идеями, - интересными темами, о которых хотели бы узнать больше, и историями, которые нужно рассказать. + интересными темами, о которых хотели бы узнать больше, и историями, которые нужно + рассказать.

@@ -145,9 +150,9 @@ export const ManifestPage = () => {
Если вы хотите предложить материал, сотрудничать, рассказать о проблеме, которую нужно осветить, сообщить об ошибке или баге, что-то обсудить, уточнить или посоветовать, - пожалуйста, напишите нам здесь или - на почту welcome@discours.io. Мы обязательно - ответим и постараемся реализовать все хорошие задумки. + пожалуйста, напишите нам здесь или на почту{' '} + welcome@discours.io. Мы обязательно ответим + и постараемся реализовать все хорошие задумки.
diff --git a/src/components/Root.tsx b/src/components/Root.tsx index 2a3e80ef..1827703b 100644 --- a/src/components/Root.tsx +++ b/src/components/Root.tsx @@ -1,10 +1,11 @@ // FIXME: breaks on vercel, research // import 'solid-devtools' -import { hideModal, MODALS, setLocale, showModal } from '../stores/ui' -import { Component, createEffect, createMemo } from 'solid-js' +import { MODALS, setLocale, showModal } from '../stores/ui' +import { Component, createEffect, createMemo, onMount } from 'solid-js' import { Routes, useRouter } from '../stores/router' import { Dynamic, isServer } from 'solid-js/web' +import { getLogger } from '../utils/logger' import type { PageProps } from './types' @@ -26,6 +27,7 @@ import { ProjectsPage } from './Pages/about/ProjectsPage' import { TermsOfUsePage } from './Pages/about/TermsOfUsePage' import { ThanksPage } from './Pages/about/ThanksPage' import { CreatePage } from './Pages/CreatePage' +import { renewSession } from '../stores/auth' // TODO: lazy load // const HomePage = lazy(() => import('./Pages/HomePage')) @@ -47,6 +49,7 @@ import { CreatePage } from './Pages/CreatePage' // const ThanksPage = lazy(() => import('./Pages/about/ThanksPage')) // const CreatePage = lazy(() => import('./Pages/about/CreatePage')) +const log = getLogger('root') type RootSearchParams = { modal: string @@ -83,6 +86,10 @@ export const Root = (props: PageProps) => { } }) + onMount(() => { + renewSession() + }) + const pageComponent = createMemo(() => { const result = pagesMap[page().route] diff --git a/src/components/Topic/Card.tsx b/src/components/Topic/Card.tsx index 57954743..fa738470 100644 --- a/src/components/Topic/Card.tsx +++ b/src/components/Topic/Card.tsx @@ -1,13 +1,16 @@ import { capitalize, plural } from '../../utils' -import { Show } from 'solid-js/web' import style from './Card.module.scss' -import { createMemo } from 'solid-js' +import { createMemo, Show } from 'solid-js' import type { Topic } from '../../graphql/types.gen' import { FollowingEntity } from '../../graphql/types.gen' import { t } from '../../utils/intl' import { locale } from '../../stores/ui' import { useAuthStore } from '../../stores/auth' import { follow, unfollow } from '../../stores/zine/common' +import { getLogger } from '../../utils/logger' + +const log = getLogger('TopicCard') + interface TopicProps { topic: Topic compact?: boolean diff --git a/src/components/Topic/Full.tsx b/src/components/Topic/Full.tsx index 7219c961..5923ead9 100644 --- a/src/components/Topic/Full.tsx +++ b/src/components/Topic/Full.tsx @@ -1,5 +1,4 @@ -import { createMemo } from 'solid-js' -import { Show } from 'solid-js/web' +import { createMemo, Show } from 'solid-js' import type { Topic } from '../../graphql/types.gen' import { FollowingEntity } from '../../graphql/types.gen' import './Full.scss' diff --git a/src/components/Views/Author.tsx b/src/components/Views/Author.tsx index 4c84b7c5..52cd189f 100644 --- a/src/components/Views/Author.tsx +++ b/src/components/Views/Author.tsx @@ -1,17 +1,18 @@ -import { Show, createMemo } from 'solid-js' +import { Show, createMemo, createSignal, For, onMount } from 'solid-js' import type { Author, Shout } from '../../graphql/types.gen' -import Row2 from '../Feed/Row2' -import Row3 from '../Feed/Row3' -// import Beside from '../Feed/Beside' -import AuthorFull from '../Author/Full' +import { Row2 } from '../Feed/Row2' +import { Row3 } from '../Feed/Row3' +import { AuthorFull } from '../Author/Full' import { t } from '../../utils/intl' import { useAuthorsStore } from '../../stores/zine/authors' -import { useArticlesStore } from '../../stores/zine/articles' +import { loadAuthorArticles, useArticlesStore } from '../../stores/zine/articles' import '../../styles/Topic.scss' import { useTopicsStore } from '../../stores/zine/topics' import { useRouter } from '../../stores/router' -import Beside from '../Feed/Beside' +import { Beside } from '../Feed/Beside' +import { restoreScrollPosition, saveScrollPosition } from '../../utils/scroll' +import { splitToPages } from '../../utils/splitToPages' // TODO: load reactions on client type AuthorProps = { @@ -26,16 +27,37 @@ type AuthorPageSearchParams = { by: '' | 'viewed' | 'rating' | 'commented' | 'recent' } +export const PRERENDERED_ARTICLES_COUNT = 12 +const LOAD_MORE_PAGE_SIZE = 9 // Row3 + Row3 + Row3 + export const AuthorView = (props: AuthorProps) => { const { sortedArticles } = useArticlesStore({ sortedArticles: props.authorArticles }) const { authorEntities } = useAuthorsStore({ authors: [props.author] }) const { topicsByAuthor } = useTopicsStore() + const [isLoadMoreButtonVisible, setIsLoadMoreButtonVisible] = createSignal(false) const author = createMemo(() => authorEntities()[props.authorSlug]) const { searchParams, changeSearchParam } = useRouter() + const loadMore = async () => { + saveScrollPosition() + const { hasMore } = await loadAuthorArticles({ + authorSlug: author().slug, + limit: LOAD_MORE_PAGE_SIZE, + offset: sortedArticles().length + }) + setIsLoadMoreButtonVisible(hasMore) + restoreScrollPosition() + } + + onMount(async () => { + if (sortedArticles().length === PRERENDERED_ARTICLES_COUNT) { + loadMore() + } + }) + const title = createMemo(() => { const m = searchParams().by if (m === 'viewed') return t('Top viewed') @@ -44,6 +66,10 @@ export const AuthorView = (props: AuthorProps) => { return t('Top recent') }) + const pages = createMemo(() => + splitToPages(sortedArticles(), PRERENDERED_ARTICLES_COUNT, LOAD_MORE_PAGE_SIZE) + ) + return (
{t('Loading')}
}> @@ -83,31 +109,39 @@ export const AuthorView = (props: AuthorProps) => {

{title()}

+
- 0}> - - + + + + + - 4}> - - + + {(page) => ( + <> + + + + + )} + - 6}> - - - - 9}> - - + +

+ +

diff --git a/src/components/Views/Feed.tsx b/src/components/Views/Feed.tsx index 756124cc..c791331c 100644 --- a/src/components/Views/Feed.tsx +++ b/src/components/Views/Feed.tsx @@ -1,6 +1,6 @@ -import { createMemo, For, Show } from 'solid-js' -import type { Shout, Reaction } from '../../graphql/types.gen' +import { createMemo, createSignal, For, onMount, Show } from 'solid-js' import '../../styles/Feed.scss' +import stylesBeside from '../../components/Feed/Beside.module.scss' import { Icon } from '../Nav/Icon' import { byCreated, sortBy } from '../../utils/sortby' import { TopicCard } from '../Topic/Card' @@ -16,11 +16,6 @@ import { useAuthorsStore } from '../../stores/zine/authors' import { useTopicsStore } from '../../stores/zine/topics' import { useTopAuthorsStore } from '../../stores/zine/topAuthors' -interface FeedProps { - articles: Shout[] - reactions?: Reaction[] -} - // const AUTHORSHIP_REACTIONS = [ // ReactionKind.Accept, // ReactionKind.Reject, @@ -28,9 +23,11 @@ interface FeedProps { // ReactionKind.Ask // ] -export const FeedView = (props: FeedProps) => { +export const FEED_PAGE_SIZE = 20 + +export const FeedView = () => { // state - const { sortedArticles } = useArticlesStore({ sortedArticles: props.articles }) + const { sortedArticles } = useArticlesStore() const reactions = useReactionsStore() const { sortedAuthors } = useAuthorsStore() const { topTopics } = useTopicsStore() @@ -39,6 +36,8 @@ export const FeedView = (props: FeedProps) => { const topReactions = createMemo(() => sortBy(reactions(), byCreated)) + const [isLoadMoreButtonVisible, setIsLoadMoreButtonVisible] = createSignal(false) + // const expectingFocus = createMemo(() => { // // 1 co-author notifications needs // // TODO: list of articles where you are co-author @@ -52,13 +51,15 @@ export const FeedView = (props: FeedProps) => { // return [] // }) - // eslint-disable-next-line unicorn/consistent-function-scoping - const loadMore = () => { - // const limit = props.limit || 50 - // const offset = props.offset || 0 - // FIXME - loadRecentArticles({ limit: 50, offset: 0 }) + const loadMore = async () => { + const { hasMore } = await loadRecentArticles({ limit: FEED_PAGE_SIZE, offset: sortedArticles().length }) + setIsLoadMoreButtonVisible(hasMore) } + + onMount(() => { + loadMore() + }) + return ( <>
@@ -90,7 +91,7 @@ export const FeedView = (props: FeedProps) => { {(article) => } -
+ -
    +
      {(author) => (
    • @@ -112,10 +113,6 @@ export const FeedView = (props: FeedProps) => { {(article) => } - -

      - -

- -

- -

+ +

+ +

+
) diff --git a/src/components/Views/Home.tsx b/src/components/Views/Home.tsx index 967bc531..d1246a86 100644 --- a/src/components/Views/Home.tsx +++ b/src/components/Views/Home.tsx @@ -1,12 +1,12 @@ -import { createMemo, For, onMount, Show } from 'solid-js' +import { createMemo, createSignal, For, onMount, Show } from 'solid-js' import Banner from '../Discours/Banner' import { NavTopics } from '../Nav/Topics' import { Row5 } from '../Feed/Row5' -import Row3 from '../Feed/Row3' -import Row2 from '../Feed/Row2' -import Row1 from '../Feed/Row1' +import { Row3 } from '../Feed/Row3' +import { Row2 } from '../Feed/Row2' +import { Row1 } from '../Feed/Row1' import Hero from '../Discours/Hero' -import Beside from '../Feed/Beside' +import { Beside } from '../Feed/Beside' import RowShort from '../Feed/RowShort' import Slider from '../Feed/Slider' import Group from '../Feed/Group' @@ -23,12 +23,14 @@ import { import { useTopAuthorsStore } from '../../stores/zine/topAuthors' import { locale } from '../../stores/ui' import { restoreScrollPosition, saveScrollPosition } from '../../utils/scroll' +import { splitToPages } from '../../utils/splitToPages' type HomeProps = { randomTopics: Topic[] recentPublishedArticles: Shout[] } -const PRERENDERED_ARTICLES_COUNT = 5 + +export const PRERENDERED_ARTICLES_COUNT = 5 const CLIENT_LOAD_ARTICLES_COUNT = 29 const LOAD_MORE_PAGE_SIZE = 16 // Row1 + Row3 + Row2 + Beside (3 + 1) + Row1 + Row 2 + Row3 @@ -46,14 +48,20 @@ export const HomeView = (props: HomeProps) => { const { randomTopics, topTopics } = useTopicsStore({ randomTopics: props.randomTopics }) + const [isLoadMoreButtonVisible, setIsLoadMoreButtonVisible] = createSignal(false) const { topAuthors } = useTopAuthorsStore() - onMount(() => { + onMount(async () => { loadTopArticles() loadTopMonthArticles() if (sortedArticles().length < PRERENDERED_ARTICLES_COUNT + CLIENT_LOAD_ARTICLES_COUNT) { - loadPublishedArticles({ limit: CLIENT_LOAD_ARTICLES_COUNT, offset: sortedArticles().length }) + const { hasMore } = await loadPublishedArticles({ + limit: CLIENT_LOAD_ARTICLES_COUNT, + offset: sortedArticles().length + }) + + setIsLoadMoreButtonVisible(hasMore) } }) @@ -82,22 +90,23 @@ export const HomeView = (props: HomeProps) => { const loadMore = async () => { saveScrollPosition() - await loadPublishedArticles({ limit: LOAD_MORE_PAGE_SIZE, offset: sortedArticles().length }) + + const { hasMore } = await loadPublishedArticles({ + limit: LOAD_MORE_PAGE_SIZE, + offset: sortedArticles().length + }) + setIsLoadMoreButtonVisible(hasMore) + restoreScrollPosition() } - const pages = createMemo(() => { - return sortedArticles() - .slice(PRERENDERED_ARTICLES_COUNT + CLIENT_LOAD_ARTICLES_COUNT) - .reduce((acc, article, index) => { - if (index % LOAD_MORE_PAGE_SIZE === 0) { - acc.push([]) - } - - acc[acc.length - 1].push(article) - return acc - }, [] as Shout[][]) - }) + const pages = createMemo(() => + splitToPages( + sortedArticles(), + PRERENDERED_ARTICLES_COUNT + CLIENT_LOAD_ARTICLES_COUNT, + LOAD_MORE_PAGE_SIZE + ) + ) return ( 0}> @@ -170,11 +179,13 @@ export const HomeView = (props: HomeProps) => { )} -

- -

+ +

+ +

+
) } diff --git a/src/components/Views/Topic.tsx b/src/components/Views/Topic.tsx index a0784b55..8e96ea6f 100644 --- a/src/components/Views/Topic.tsx +++ b/src/components/Views/Topic.tsx @@ -1,16 +1,18 @@ -import { For, Show, createMemo } from 'solid-js' +import { For, Show, createMemo, onMount, createSignal } from 'solid-js' import type { Shout, Topic } from '../../graphql/types.gen' -import Row3 from '../Feed/Row3' -import Row2 from '../Feed/Row2' -import Beside from '../Feed/Beside' +import { Row3 } from '../Feed/Row3' +import { Row2 } from '../Feed/Row2' +import { Beside } from '../Feed/Beside' import { ArticleCard } from '../Feed/Card' import '../../styles/Topic.scss' import { FullTopic } from '../Topic/Full' import { t } from '../../utils/intl' import { useRouter } from '../../stores/router' import { useTopicsStore } from '../../stores/zine/topics' -import { useArticlesStore } from '../../stores/zine/articles' +import { loadPublishedArticles, useArticlesStore } from '../../stores/zine/articles' import { useAuthorsStore } from '../../stores/zine/authors' +import { restoreScrollPosition, saveScrollPosition } from '../../utils/scroll' +import { splitToPages } from '../../utils/splitToPages' type TopicsPageSearchParams = { by: 'comments' | '' | 'recent' | 'viewed' | 'rating' | 'commented' @@ -22,9 +24,14 @@ interface TopicProps { topicSlug: string } +export const PRERENDERED_ARTICLES_COUNT = 21 +const LOAD_MORE_PAGE_SIZE = 9 // Row3 + Row3 + Row3 + export const TopicView = (props: TopicProps) => { const { searchParams, changeSearchParam } = useRouter() + const [isLoadMoreButtonVisible, setIsLoadMoreButtonVisible] = createSignal(false) + const { sortedArticles } = useArticlesStore({ sortedArticles: props.topicArticles }) const { topicEntities } = useTopicsStore({ topics: [props.topic] }) @@ -32,6 +39,24 @@ export const TopicView = (props: TopicProps) => { const topic = createMemo(() => topicEntities()[props.topicSlug]) + const loadMore = async () => { + saveScrollPosition() + + const { hasMore } = await loadPublishedArticles({ + limit: LOAD_MORE_PAGE_SIZE, + offset: sortedArticles().length + }) + setIsLoadMoreButtonVisible(hasMore) + + restoreScrollPosition() + } + + onMount(async () => { + if (sortedArticles().length === PRERENDERED_ARTICLES_COUNT) { + loadMore() + } + }) + const title = createMemo(() => { const m = searchParams().by if (m === 'viewed') return t('Top viewed') @@ -40,6 +65,10 @@ export const TopicView = (props: TopicProps) => { return t('Top recent') }) + const pages = createMemo(() => + splitToPages(sortedArticles(), PRERENDERED_ARTICLES_COUNT, LOAD_MORE_PAGE_SIZE) + ) + return (
@@ -110,6 +139,24 @@ export const TopicView = (props: TopicProps) => { + + + {(page) => ( + <> + + + + + )} + + + +

+ +

+
diff --git a/src/components/types.ts b/src/components/types.ts index 35d1f7b7..f3158bb7 100644 --- a/src/components/types.ts +++ b/src/components/types.ts @@ -8,7 +8,6 @@ export type PageProps = { authorArticles?: Shout[] topicArticles?: Shout[] homeArticles?: Shout[] - feedArticles?: Shout[] author?: Author allAuthors?: Author[] topic?: Topic diff --git a/src/graphql/mutation/article-create.ts b/src/graphql/mutation/article-create.ts index be5a58e6..62523e87 100644 --- a/src/graphql/mutation/article-create.ts +++ b/src/graphql/mutation/article-create.ts @@ -1,8 +1,7 @@ import { gql } from '@urql/core' - export default gql` - mutation CreateShoutMutations($shout: ShoutInput!) { + mutation CreateShoutMutation($shout: ShoutInput!) { createShout(input: $shout) { error shout { diff --git a/src/graphql/mutation/article-destroy.ts b/src/graphql/mutation/article-destroy.ts index d99f8081..607a5a5c 100644 --- a/src/graphql/mutation/article-destroy.ts +++ b/src/graphql/mutation/article-destroy.ts @@ -1,6 +1,5 @@ import { gql } from '@urql/core' - export default gql` mutation DeleteShoutMutation($shout: String!) { deleteShout(slug: $shout) { diff --git a/src/graphql/mutation/auth-confirm-email.ts b/src/graphql/mutation/auth-confirm-email.ts index d482de28..0de4a5c7 100644 --- a/src/graphql/mutation/auth-confirm-email.ts +++ b/src/graphql/mutation/auth-confirm-email.ts @@ -1,8 +1,8 @@ import { gql } from '@urql/core' export default gql` - mutation ConfirmEmailMutation($code: String!) { - confirmEmail(code: $code) { + mutation ConfirmEmailMutation($token: String!) { + confirmEmail(token: $token) { error token user { diff --git a/src/graphql/mutation/reaction-destroy.ts b/src/graphql/mutation/reaction-destroy.ts index 082ea8ed..ca71af55 100644 --- a/src/graphql/mutation/reaction-destroy.ts +++ b/src/graphql/mutation/reaction-destroy.ts @@ -1,6 +1,5 @@ import { gql } from '@urql/core' - export default gql` mutation DeleteReactionMutation($id: Int!) { deleteReaction(id: $id) { diff --git a/src/graphql/types.gen.ts b/src/graphql/types.gen.ts index 0a520088..5b233587 100644 --- a/src/graphql/types.gen.ts +++ b/src/graphql/types.gen.ts @@ -171,7 +171,7 @@ export type Mutation = { } export type MutationConfirmEmailArgs = { - token: Scalars['String'] + code: Scalars['String'] } export type MutationCreateChatArgs = { diff --git a/src/locales/ru.json b/src/locales/ru.json index 7fea97ff..f6dcb598 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -47,7 +47,7 @@ "Horizontal collaborative journalistic platform": "Горизонтальная платформа для коллаборативной журналистики", "How it works": "Как это работает", "How to write an article": "Как написать статью", - "I have an account": "У меня есть аккаунт", + "I have an account": "У меня есть аккаунт!", "I have no account yet": "У меня еще нет аккаунта", "I know the password": "Я знаю пароль", "Join our maillist": "Чтобы получать рассылку лучших публикаций, просто укажите свою почту", @@ -157,7 +157,13 @@ "Restore password": "Восстановить пароль", "Hooray! Welcome!": "Ура! Добро пожаловать!", "You've confirmed email": "Вы подтвердили почту", - "You've confirmed your account": "Вы подтвердили свою учётную запись", "This email is already taken. If it's you": "Такой email уже зарегистрирован. Если это вы", - "enter": "войдите" + "enter": "войдите", + "Go to main page": "Перейти на главную", + "Back to main page": "Вернуться на главную", + "Almost done! Check your email.": "Почти готово! Осталось подтвердить вашу почту.", + "We've sent you a message with a link to enter our website.": "Мы выслали вам письмо с ссылкой на почту. Перейдите по ссылке в письме, чтобы войти на сайт.", + "Send link again": "Прислать ссылку ещё раз", + "Link sent, check your email": "Ссылка отправлена, проверьте почту", + "Create post": "Создать публикацию" } diff --git a/src/pages/author/[slug]/index.astro b/src/pages/author/[slug]/index.astro index 7ad13be2..50e29aa4 100644 --- a/src/pages/author/[slug]/index.astro +++ b/src/pages/author/[slug]/index.astro @@ -3,9 +3,10 @@ import { Root } from '../../../components/Root' import Zine from '../../../layouts/zine.astro' import { apiClient } from '../../../utils/apiClient' import { initRouter } from '../../../stores/router' +import { PRERENDERED_ARTICLES_COUNT } from '../../../components/Views/Author' const slug = Astro.params.slug.toString() -const articles = await apiClient.getArticlesForAuthors({ authorSlugs: [slug], limit: 50 }) +const articles = await apiClient.getArticlesForAuthors({ authorSlugs: [slug], limit: PRERENDERED_ARTICLES_COUNT }) const author = articles[0].authors.find((a) => a.slug === slug) const { pathname, search } = Astro.url diff --git a/src/pages/confirm/[token].astro b/src/pages/confirm/[token].astro index cd8ff21f..89528424 100644 --- a/src/pages/confirm/[token].astro +++ b/src/pages/confirm/[token].astro @@ -1,4 +1,12 @@ --- +import { Confirmed } from '../../components/Nav/Confirmed' +import { t } from '../../utils/intl' + const token = Astro.params.token?.toString() || '' -return Astro.redirect('/?modal=confirm-oauth&token=' + token) --- + +{t('Discours')} + + + + diff --git a/src/pages/confirm/index.astro b/src/pages/confirm/index.astro new file mode 100644 index 00000000..1edb4589 --- /dev/null +++ b/src/pages/confirm/index.astro @@ -0,0 +1,10 @@ +--- +import { t } from '../../utils/intl' +import { Confirmed } from '../../components/Nav/Confirmed' +--- + +{t('Discours')} + + + + diff --git a/src/pages/feed/index.astro b/src/pages/feed/index.astro index 93c40a9c..e9063068 100644 --- a/src/pages/feed/index.astro +++ b/src/pages/feed/index.astro @@ -1,16 +1,12 @@ --- import { Root } from '../../components/Root' import Zine from '../../layouts/zine.astro' -import { apiClient } from '../../utils/apiClient' - import { initRouter } from '../../stores/router' const { pathname, search } = Astro.url initRouter(pathname, search) - -const articles = await apiClient.getRecentArticles({ limit: 50 }) --- - + diff --git a/src/pages/index.astro b/src/pages/index.astro index e03b076c..9bbde9a4 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -3,14 +3,14 @@ import Zine from '../layouts/zine.astro' import { Root } from '../components/Root' import { apiClient } from '../utils/apiClient' import { initRouter } from '../stores/router' +import { PRERENDERED_ARTICLES_COUNT } from '../components/Views/Home' const randomTopics = await apiClient.getRandomTopics({ amount: 12 }) -const articles = await apiClient.getRecentPublishedArticles({ limit: 5 }) +const articles = await apiClient.getRecentPublishedArticles({ limit: PRERENDERED_ARTICLES_COUNT }) const { pathname, search } = Astro.url initRouter(pathname, search) - Astro.response.headers.set('Cache-Control', 's-maxage=1, stale-while-revalidate') --- diff --git a/src/pages/topic/[slug].astro b/src/pages/topic/[slug].astro index 98134a4b..91ebde65 100644 --- a/src/pages/topic/[slug].astro +++ b/src/pages/topic/[slug].astro @@ -2,9 +2,10 @@ import { Root } from '../../components/Root' import Zine from '../../layouts/zine.astro' import { apiClient } from '../../utils/apiClient' +import { PRERENDERED_ARTICLES_COUNT } from '../../components/Views/Topic' const slug = Astro.params.slug?.toString() || '' -const articles = await apiClient.getArticlesForTopics({ topicSlugs: [slug], limit: 50 }) +const articles = await apiClient.getArticlesForTopics({ topicSlugs: [slug], limit: PRERENDERED_ARTICLES_COUNT }) const topic = articles[0].topics.find(({ slug: topicSlug }) => topicSlug === slug) import { initRouter } from '../../stores/router' diff --git a/src/pages/welcome.astro b/src/pages/welcome.astro index 8e229d8b..f00a1ab0 100644 --- a/src/pages/welcome.astro +++ b/src/pages/welcome.astro @@ -1,3 +1,3 @@ --- -return Astro.redirect('/?modal=auth&mode=welcome') +return Astro.redirect('/?modal=auth&mode=register') --- diff --git a/src/stores/auth.ts b/src/stores/auth.ts index 051e5125..e887cfc4 100644 --- a/src/stores/auth.ts +++ b/src/stores/auth.ts @@ -11,7 +11,6 @@ export const signIn = async (params) => { setToken(authResult.token) console.debug('signed in') } - export const signOut = () => { // TODO: call backend to revoke token setSession(null) @@ -54,7 +53,7 @@ export const register = async ({ }) } -export const signSendLink = async ({ email, lang }: { email: string, lang: string }) => { +export const signSendLink = async ({ email, lang }: { email: string; lang: string }) => { await apiClient.authSendLink({ email, lang }) } diff --git a/src/stores/ui.ts b/src/stores/ui.ts index d2f662bb..8b71e4d6 100644 --- a/src/stores/ui.ts +++ b/src/stores/ui.ts @@ -4,7 +4,7 @@ import { useRouter } from './router' //export const locale = persistentAtom('locale', 'ru') export const [locale, setLocale] = createSignal('ru') -export type ModalType = 'auth' | 'subscribe' | 'feedback' | 'share' | 'thank' | 'donate' +export type ModalType = 'auth' | 'subscribe' | 'feedback' | 'thank' | 'donate' type WarnKind = 'error' | 'warn' | 'info' export interface Warning { @@ -17,7 +17,6 @@ export const MODALS: Record = { auth: 'auth', subscribe: 'subscribe', feedback: 'feedback', - share: 'share', thank: 'thank', donate: 'donate' } diff --git a/src/stores/zine/articles.ts b/src/stores/zine/articles.ts index 6f9af20d..b53790ba 100644 --- a/src/stores/zine/articles.ts +++ b/src/stores/zine/articles.ts @@ -123,40 +123,109 @@ const addSortedArticles = (articles: Shout[]) => { setSortedArticles((prevSortedArticles) => [...prevSortedArticles, ...articles]) } +export const loadFeed = async ({ + limit, + offset +}: { + limit: number + offset?: number +}): Promise<{ hasMore: boolean }> => { + // TODO: load actual feed + return await loadRecentArticles({ limit, offset }) +} + export const loadRecentArticles = async ({ limit, offset }: { - limit?: number + limit: number offset?: number -}): Promise => { - const newArticles = await apiClient.getRecentArticles({ limit, offset }) +}): Promise<{ hasMore: boolean }> => { + const newArticles = await apiClient.getRecentArticles({ limit: limit + 1, offset }) + const hasMore = newArticles.length === limit + 1 + + if (hasMore) { + newArticles.splice(-1) + } + addArticles(newArticles) addSortedArticles(newArticles) + + return { hasMore } } export const loadPublishedArticles = async ({ limit, - offset + offset = 0 }: { - limit?: number + limit: number offset?: number -}): Promise => { - const newArticles = await apiClient.getPublishedArticles({ limit, offset }) +}): Promise<{ hasMore: boolean }> => { + const newArticles = await apiClient.getPublishedArticles({ limit: limit + 1, offset }) + const hasMore = newArticles.length === limit + 1 + + if (hasMore) { + newArticles.splice(-1) + } + addArticles(newArticles) addSortedArticles(newArticles) + + return { hasMore } } -export const loadArticlesForAuthors = async ({ authorSlugs }: { authorSlugs: string[] }): Promise => { - const articles = await apiClient.getArticlesForAuthors({ authorSlugs, limit: 50 }) - addArticles(articles) - setSortedArticles(articles) +export const loadAuthorArticles = async ({ + authorSlug, + limit, + offset = 0 +}: { + authorSlug: string + limit: number + offset?: number +}): Promise<{ hasMore: boolean }> => { + const newArticles = await apiClient.getArticlesForAuthors({ + authorSlugs: [authorSlug], + limit: limit + 1, + offset + }) + + const hasMore = newArticles.length === limit + 1 + + if (hasMore) { + newArticles.splice(-1) + } + + addArticles(newArticles) + addSortedArticles(newArticles) + + return { hasMore } } -export const loadArticlesForTopics = async ({ topicSlugs }: { topicSlugs: string[] }): Promise => { - const articles = await apiClient.getArticlesForTopics({ topicSlugs, limit: 50 }) - addArticles(articles) - setSortedArticles(articles) +export const loadTopicArticles = async ({ + topicSlug, + limit, + offset +}: { + topicSlug: string + limit: number + offset: number +}): Promise<{ hasMore: boolean }> => { + const newArticles = await apiClient.getArticlesForTopics({ + topicSlugs: [topicSlug], + limit: limit + 1, + offset + }) + + const hasMore = newArticles.length === limit + 1 + + if (hasMore) { + newArticles.splice(-1) + } + + addArticles(newArticles) + addSortedArticles(newArticles) + + return { hasMore } } export const resetSortedArticles = () => { diff --git a/src/styles/Feed.scss b/src/styles/Feed.scss index c767812e..767525ac 100644 --- a/src/styles/Feed.scss +++ b/src/styles/Feed.scss @@ -120,11 +120,25 @@ display: flex; justify-content: space-between; + img { + transition: filter 0.3s; + } + a { margin-right: 0.3em; + + &:hover { + img { + filter: invert(1); + } + } } .icon { + display: inline-block; + line-height: 1; + margin-left: 0.3em; + vertical-align: middle; width: 1em; } } diff --git a/src/styles/app.scss b/src/styles/app.scss index 0b7d8b37..bddc96dd 100644 --- a/src/styles/app.scss +++ b/src/styles/app.scss @@ -13,7 +13,7 @@ --danger-color: #fc6847; --lightgray-color: rgb(84 16 17 / 6%); --font: -apple-system, blinkmacsystemfont, 'Segoe UI', roboto, oxygen, ubuntu, cantarell, 'Open Sans', - 'Helvetica Neue', sans-serif; + 'Helvetica Neue', sans-serif; } * { diff --git a/src/utils/apiClient.ts b/src/utils/apiClient.ts index 9acb96dd..e4922615 100644 --- a/src/utils/apiClient.ts +++ b/src/utils/apiClient.ts @@ -102,9 +102,7 @@ export const apiClient = { }, confirmEmail: async ({ token }: { token: string }) => { // confirm email with code from link - const response = await publicGraphQLClient - .mutation(authConfirmEmailMutation, { code: token }) - .toPromise() + const response = await publicGraphQLClient.mutation(authConfirmEmailMutation, { token }).toPromise() if (response.error) { throw new ApiError('unknown', response.error.message) @@ -182,7 +180,7 @@ export const apiClient = { }, getArticlesForTopics: async ({ topicSlugs, - limit = FEED_SIZE, + limit, offset = 0 }: { topicSlugs: string[] @@ -205,7 +203,7 @@ export const apiClient = { }, getArticlesForAuthors: async ({ authorSlugs, - limit = FEED_SIZE, + limit, offset = 0 }: { authorSlugs: string[] diff --git a/src/utils/logger.ts b/src/utils/logger.ts new file mode 100644 index 00000000..14ce2b34 --- /dev/null +++ b/src/utils/logger.ts @@ -0,0 +1,9 @@ +import loglevel from 'loglevel' +import prefix from 'loglevel-plugin-prefix' +import { isDev } from './config' + +prefix.reg(loglevel) +prefix.apply(loglevel, { template: '[%n]' }) +loglevel.setLevel(isDev ? loglevel.levels.TRACE : loglevel.levels.ERROR) + +export const getLogger = (name: string) => loglevel.getLogger(name) diff --git a/src/utils/splitToPages.ts b/src/utils/splitToPages.ts new file mode 100644 index 00000000..c26d1913 --- /dev/null +++ b/src/utils/splitToPages.ts @@ -0,0 +1,10 @@ +export function splitToPages(arr: T[], startIndex: number, pageSize: number): T[][] { + return arr.slice(startIndex).reduce((acc, article, index) => { + if (index % pageSize === 0) { + acc.push([]) + } + + acc[acc.length - 1].push(article) + return acc + }, [] as T[][]) +} diff --git a/yarn.lock b/yarn.lock index db6d8381..48f09618 100644 --- a/yarn.lock +++ b/yarn.lock @@ -45,15 +45,10 @@ resolved "https://registry.yarnpkg.com/@astrojs/compiler/-/compiler-0.23.5.tgz#ea57a2b994b2930e3b3d2d524f10866698fef4f1" integrity sha512-vBMPy9ok4iLapSyCCT1qsZ9dK7LkVFl9mObtLEmWiec9myGHS9h2kQY2xzPeFNJiWXUf9O6tSyQpQTy5As/p3g== -"@astrojs/compiler@^0.27.0 || ^0.28.0": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@astrojs/compiler/-/compiler-0.28.1.tgz#06a547d32d675d0be5a54bf45912ab38fd1ea548" - integrity sha512-rcuQs5kcT6OshfJxXkZ2Tn61V4/5UAmvZKma/qmNhpAdBkGk6J/1gJ/Gxa2sAS6WNUjUyVo5BRrdsNGW36qkoQ== - -"@astrojs/compiler@^0.27.1": - version "0.27.2" - resolved "https://registry.yarnpkg.com/@astrojs/compiler/-/compiler-0.27.2.tgz#3190cbf84e19abaf227d3f7cde03e72a0af6a966" - integrity sha512-VG4X87cUkcmT40HqEwShQzUgl0VSnVTszobbmnhAOkHzdoWMxhwAm61A2o5fEsv6eEK8M0lW/fGwkSofYM5GcQ== +"@astrojs/compiler@^0.27.0 || ^0.28.0 || ^0.29.0", "@astrojs/compiler@^0.29.5": + version "0.29.5" + resolved "https://registry.yarnpkg.com/@astrojs/compiler/-/compiler-0.29.5.tgz#708db3e2632caf30480e4f502e7a0fd0f1c1d7d2" + integrity sha512-XpSJyBO6ha5mGqsD71ie83SOcv3p7zKq6qzngyeLKhccCXtf9Zn/4tGbi/Iq4YmkRBNCjLEkF0wZMYWY+eJYAA== "@astrojs/language-server@^0.26.2": version "0.26.2" @@ -126,11 +121,12 @@ prismjs "^1.28.0" "@astrojs/solid-js@^1.1.0": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@astrojs/solid-js/-/solid-js-1.2.1.tgz#9cc83a147b0776fd9f50f183d216f46ccfbe290b" - integrity sha512-kTVrSv8sXptLFUHxlRNYQUZUF+1Oi88gsDd6Lut9MMstC9zCdqbTnAy+Z7r7sCmm9J5FgsXA3YSnyQfouup5ug== + version "1.2.2" + resolved "https://registry.yarnpkg.com/@astrojs/solid-js/-/solid-js-1.2.2.tgz#fde96f96834fa70cc5fc158e8b8754e3d0b8f7a2" + integrity sha512-kC16HKo4LVQfecfRHqRsqaVMQ7wrziege0YieZipuY3HvsX4l3i4O+QCnyHQsJ9W5MMdUvFAtf1IP1nJAdvisA== dependencies: babel-preset-solid "^1.4.2" + vitefu "^0.1.0" "@astrojs/telemetry@^1.0.1": version "1.0.1" @@ -147,21 +143,932 @@ which-pm-runs "^1.1.0" "@astrojs/vercel@^2.1.0": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@astrojs/vercel/-/vercel-2.3.1.tgz#b5a38cea22b1decb0cb0a4774679c2fe7816119c" - integrity sha512-CrGH/5FKR8XL6LP1Y5nJkHEJbbrM3o1ViEF6REvuRNRuXdw150FGgi+mu66LdOlCKDv9tcPXsF9e9C2A8Kl5Rg== + version "2.3.3" + resolved "https://registry.yarnpkg.com/@astrojs/vercel/-/vercel-2.3.3.tgz#354aebd3e504d57d9e7794a7e8c5229885d92928" + integrity sha512-gdYf98Oii8MEfRHyX6Uwsbvx/rjimZV75qPSMbcGPFUCteshENFvtUAk5jMJvJNrDh/Cxjt4akTd4/llbvWBeQ== dependencies: - "@astrojs/webapi" "^1.1.0" + "@astrojs/webapi" "^1.1.1" "@vercel/nft" "^0.22.1" -"@astrojs/webapi@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@astrojs/webapi/-/webapi-1.1.0.tgz#d0f4721405c8962a4c7f1db863903b9ab4b6acf6" - integrity sha512-yLSksFKv9kRbI3WWPuRvbBjS+J5ZNmZHacJ6Io8XQleKIHHHcw7RoNcrLK0s+9iwVPhqMYIzja6HJuvnO93oFw== +"@astrojs/webapi@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@astrojs/webapi/-/webapi-1.1.1.tgz#3d86b5c7a58da8fa62b66233de1e982a125a6cf7" + integrity sha512-yeUvP27PoiBK/WCxyQzC4HLYZo4Hg6dzRd/dTsL50WGlAQVCwWcqzVJrIZKvzNDNaW/fIXutZTmdj6nec0PIGg== dependencies: global-agent "^3.0.0" node-fetch "^3.2.5" +"@aws-crypto/crc32@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-2.0.0.tgz#4ad432a3c03ec3087c5540ff6e41e6565d2dc153" + integrity sha512-TvE1r2CUueyXOuHdEigYjIZVesInd9KN+K/TFFNfkkxRThiNxO6i4ZqqAVMoEjAamZZ1AA8WXJkjCz7YShHPQA== + dependencies: + "@aws-crypto/util" "^2.0.0" + "@aws-sdk/types" "^3.1.0" + tslib "^1.11.1" + +"@aws-crypto/crc32c@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32c/-/crc32c-2.0.0.tgz#4235336ef78f169f6a05248906703b9b78da676e" + integrity sha512-vF0eMdMHx3O3MoOXUfBZry8Y4ZDtcuskjjKgJz8YfIDjLStxTZrYXk+kZqtl6A0uCmmiN/Eb/JbC/CndTV1MHg== + dependencies: + "@aws-crypto/util" "^2.0.0" + "@aws-sdk/types" "^3.1.0" + tslib "^1.11.1" + +"@aws-crypto/ie11-detection@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz#9c39f4a5558196636031a933ec1b4792de959d6a" + integrity sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/sha1-browser@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha1-browser/-/sha1-browser-2.0.0.tgz#71e735df20ea1d38f59259c4b1a2e00ca74a0eea" + integrity sha512-3fIVRjPFY8EG5HWXR+ZJZMdWNRpwbxGzJ9IH9q93FpbgCH8u8GHRi46mZXp3cYD7gealmyqpm3ThZwLKJjWJhA== + dependencies: + "@aws-crypto/ie11-detection" "^2.0.0" + "@aws-crypto/supports-web-crypto" "^2.0.0" + "@aws-sdk/types" "^3.1.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-browser@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz#741c9024df55ec59b51e5b1f5d806a4852699fb5" + integrity sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A== + dependencies: + "@aws-crypto/ie11-detection" "^2.0.0" + "@aws-crypto/sha256-js" "^2.0.0" + "@aws-crypto/supports-web-crypto" "^2.0.0" + "@aws-crypto/util" "^2.0.0" + "@aws-sdk/types" "^3.1.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-js@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz#f1f936039bdebd0b9e2dd834d65afdc2aac4efcb" + integrity sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig== + dependencies: + "@aws-crypto/util" "^2.0.0" + "@aws-sdk/types" "^3.1.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-js@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-2.0.2.tgz#c81e5d378b8a74ff1671b58632779986e50f4c99" + integrity sha512-iXLdKH19qPmIC73fVCrHWCSYjN/sxaAvZ3jNNyw6FclmHyjLKg0f69WlC9KTnyElxCR5MO9SKaG00VwlJwyAkQ== + dependencies: + "@aws-crypto/util" "^2.0.2" + "@aws-sdk/types" "^3.110.0" + tslib "^1.11.1" + +"@aws-crypto/supports-web-crypto@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz#9f02aafad8789cac9c0ab5faaebb1ab8aa841338" + integrity sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/util@^2.0.0", "@aws-crypto/util@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-2.0.2.tgz#adf5ff5dfbc7713082f897f1d01e551ce0edb9c0" + integrity sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA== + dependencies: + "@aws-sdk/types" "^3.110.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-sdk/abort-controller@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.198.0.tgz#fab7d030b165e2a3926d33d09b12cabf5159a7ac" + integrity sha512-kmK1fNJ5nkBH23wOrAdxWcVtG/NNCaX66cxr90jnbGvSAeNRi5nLLqlmQOyZ0RRg+tpNCec+N/qqfxAmmD3NdQ== + dependencies: + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/chunked-blob-reader-native@3.188.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.188.0.tgz#a5c3a778b23af761703317ef286a083a43fb510f" + integrity sha512-WielYjaAHfT/HAOW7Tj6yVeNdaOtts3aUm9Sf/3D+ElbCTGyaaMNfE4x0a+qn6dJZXewf1eAxybOIU5ftIeSGw== + dependencies: + "@aws-sdk/util-base64-browser" "3.188.0" + tslib "^2.3.1" + +"@aws-sdk/chunked-blob-reader@3.188.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/chunked-blob-reader/-/chunked-blob-reader-3.188.0.tgz#18181b27511ab512e56b9f2cef30d2abbef639dc" + integrity sha512-zkPRFZZPL3eH+kH86LDYYXImiClA1/sW60zYOjse9Pgka+eDJlvBN6hcYxwDEKjcwATYiSRR1aVQHcfCinlGXg== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/client-s3@^3.178.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.199.0.tgz#7675752031da61a3d7695704c1745570289b1465" + integrity sha512-onGAzUyEZG7dUelgUqw+X9bWH4pbPpH78kjQIwJx3kqIx9OhCy7cqodan2UUnxBtbTW+i8j23PEs2NJRBYoxyQ== + dependencies: + "@aws-crypto/sha1-browser" "2.0.0" + "@aws-crypto/sha256-browser" "2.0.0" + "@aws-crypto/sha256-js" "2.0.0" + "@aws-sdk/client-sts" "3.199.0" + "@aws-sdk/config-resolver" "3.198.0" + "@aws-sdk/credential-provider-node" "3.199.0" + "@aws-sdk/eventstream-serde-browser" "3.199.0" + "@aws-sdk/eventstream-serde-config-resolver" "3.198.0" + "@aws-sdk/eventstream-serde-node" "3.199.0" + "@aws-sdk/fetch-http-handler" "3.199.0" + "@aws-sdk/hash-blob-browser" "3.198.0" + "@aws-sdk/hash-node" "3.198.0" + "@aws-sdk/hash-stream-node" "3.198.0" + "@aws-sdk/invalid-dependency" "3.198.0" + "@aws-sdk/md5-js" "3.199.0" + "@aws-sdk/middleware-bucket-endpoint" "3.198.0" + "@aws-sdk/middleware-content-length" "3.199.0" + "@aws-sdk/middleware-endpoint" "3.198.0" + "@aws-sdk/middleware-expect-continue" "3.198.0" + "@aws-sdk/middleware-flexible-checksums" "3.198.0" + "@aws-sdk/middleware-host-header" "3.198.0" + "@aws-sdk/middleware-location-constraint" "3.198.0" + "@aws-sdk/middleware-logger" "3.198.0" + "@aws-sdk/middleware-recursion-detection" "3.198.0" + "@aws-sdk/middleware-retry" "3.198.0" + "@aws-sdk/middleware-sdk-s3" "3.198.0" + "@aws-sdk/middleware-serde" "3.198.0" + "@aws-sdk/middleware-signing" "3.198.0" + "@aws-sdk/middleware-ssec" "3.198.0" + "@aws-sdk/middleware-stack" "3.198.0" + "@aws-sdk/middleware-user-agent" "3.198.0" + "@aws-sdk/node-config-provider" "3.198.0" + "@aws-sdk/node-http-handler" "3.199.0" + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/signature-v4-multi-region" "3.198.0" + "@aws-sdk/smithy-client" "3.198.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/url-parser" "3.198.0" + "@aws-sdk/util-base64-browser" "3.188.0" + "@aws-sdk/util-base64-node" "3.188.0" + "@aws-sdk/util-body-length-browser" "3.188.0" + "@aws-sdk/util-body-length-node" "3.188.0" + "@aws-sdk/util-defaults-mode-browser" "3.198.0" + "@aws-sdk/util-defaults-mode-node" "3.198.0" + "@aws-sdk/util-endpoints" "3.198.0" + "@aws-sdk/util-stream-browser" "3.199.0" + "@aws-sdk/util-stream-node" "3.199.0" + "@aws-sdk/util-user-agent-browser" "3.198.0" + "@aws-sdk/util-user-agent-node" "3.198.0" + "@aws-sdk/util-utf8-browser" "3.188.0" + "@aws-sdk/util-utf8-node" "3.199.0" + "@aws-sdk/util-waiter" "3.198.0" + "@aws-sdk/xml-builder" "3.188.0" + fast-xml-parser "4.0.11" + tslib "^2.3.1" + +"@aws-sdk/client-sso@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.199.0.tgz#b5da43b3240a135baeb668cbc5521198d794d1f6" + integrity sha512-xRTI39cLcCU1lGlSaE2arCPzRwUY16Oq46fGoe+9pwalDL3oKeE6uq/idTxPzPZdZFhzpLUVc0QdfwGDYhJpXg== + dependencies: + "@aws-crypto/sha256-browser" "2.0.0" + "@aws-crypto/sha256-js" "2.0.0" + "@aws-sdk/config-resolver" "3.198.0" + "@aws-sdk/fetch-http-handler" "3.199.0" + "@aws-sdk/hash-node" "3.198.0" + "@aws-sdk/invalid-dependency" "3.198.0" + "@aws-sdk/middleware-content-length" "3.199.0" + "@aws-sdk/middleware-endpoint" "3.198.0" + "@aws-sdk/middleware-host-header" "3.198.0" + "@aws-sdk/middleware-logger" "3.198.0" + "@aws-sdk/middleware-recursion-detection" "3.198.0" + "@aws-sdk/middleware-retry" "3.198.0" + "@aws-sdk/middleware-serde" "3.198.0" + "@aws-sdk/middleware-stack" "3.198.0" + "@aws-sdk/middleware-user-agent" "3.198.0" + "@aws-sdk/node-config-provider" "3.198.0" + "@aws-sdk/node-http-handler" "3.199.0" + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/smithy-client" "3.198.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/url-parser" "3.198.0" + "@aws-sdk/util-base64-browser" "3.188.0" + "@aws-sdk/util-base64-node" "3.188.0" + "@aws-sdk/util-body-length-browser" "3.188.0" + "@aws-sdk/util-body-length-node" "3.188.0" + "@aws-sdk/util-defaults-mode-browser" "3.198.0" + "@aws-sdk/util-defaults-mode-node" "3.198.0" + "@aws-sdk/util-endpoints" "3.198.0" + "@aws-sdk/util-user-agent-browser" "3.198.0" + "@aws-sdk/util-user-agent-node" "3.198.0" + "@aws-sdk/util-utf8-browser" "3.188.0" + "@aws-sdk/util-utf8-node" "3.199.0" + tslib "^2.3.1" + +"@aws-sdk/client-sts@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.199.0.tgz#fef0f786b8e27085b5a94a4d9ea95b70ce751d7b" + integrity sha512-ly7kLi/KFRr9RrvTVVlDAXlROkInTMRy4BL02Ugw7brSPysUJabzdlDB5gxC+jbeq8qpai/vCybePf6lgrcvFw== + dependencies: + "@aws-crypto/sha256-browser" "2.0.0" + "@aws-crypto/sha256-js" "2.0.0" + "@aws-sdk/config-resolver" "3.198.0" + "@aws-sdk/credential-provider-node" "3.199.0" + "@aws-sdk/fetch-http-handler" "3.199.0" + "@aws-sdk/hash-node" "3.198.0" + "@aws-sdk/invalid-dependency" "3.198.0" + "@aws-sdk/middleware-content-length" "3.199.0" + "@aws-sdk/middleware-endpoint" "3.198.0" + "@aws-sdk/middleware-host-header" "3.198.0" + "@aws-sdk/middleware-logger" "3.198.0" + "@aws-sdk/middleware-recursion-detection" "3.198.0" + "@aws-sdk/middleware-retry" "3.198.0" + "@aws-sdk/middleware-sdk-sts" "3.199.0" + "@aws-sdk/middleware-serde" "3.198.0" + "@aws-sdk/middleware-signing" "3.198.0" + "@aws-sdk/middleware-stack" "3.198.0" + "@aws-sdk/middleware-user-agent" "3.198.0" + "@aws-sdk/node-config-provider" "3.198.0" + "@aws-sdk/node-http-handler" "3.199.0" + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/smithy-client" "3.198.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/url-parser" "3.198.0" + "@aws-sdk/util-base64-browser" "3.188.0" + "@aws-sdk/util-base64-node" "3.188.0" + "@aws-sdk/util-body-length-browser" "3.188.0" + "@aws-sdk/util-body-length-node" "3.188.0" + "@aws-sdk/util-defaults-mode-browser" "3.198.0" + "@aws-sdk/util-defaults-mode-node" "3.198.0" + "@aws-sdk/util-endpoints" "3.198.0" + "@aws-sdk/util-user-agent-browser" "3.198.0" + "@aws-sdk/util-user-agent-node" "3.198.0" + "@aws-sdk/util-utf8-browser" "3.188.0" + "@aws-sdk/util-utf8-node" "3.199.0" + fast-xml-parser "4.0.11" + tslib "^2.3.1" + +"@aws-sdk/config-resolver@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.198.0.tgz#25b2efc2d7de6e05d7ad7b1e8f2fb2055d0bed19" + integrity sha512-CxpbkTOfOYZLWcNgcZqooSIlLnixzHVz6skDgxOfeN2vohNOgt8hwU0Dmif3sC4AeyeV0CBm7ew9tg/WzsBxhg== + dependencies: + "@aws-sdk/signature-v4" "3.198.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/util-config-provider" "3.188.0" + "@aws-sdk/util-middleware" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/credential-provider-env@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.198.0.tgz#f88ae32587bc6d3dfa9fdb569cfe6055c8551966" + integrity sha512-Psui5iNdbHrHNF14vejORMtSEaH7EOt51pQcfmP1jk8Tinf+KMMMdbOqyzL4LHYwLTLH9Cr6m6UGrJXdmFiIZA== + dependencies: + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/credential-provider-imds@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.198.0.tgz#5ea1121c415ea2a3929bf1b028c1fd66a5df1008" + integrity sha512-p2xMCo3whCnXd5/dH738rAVURXhlppjRNDv0sCkDcVtr3exn4s5x5ednFM8K0zNo/hsqjqFbK3jT4W72bgHphw== + dependencies: + "@aws-sdk/node-config-provider" "3.198.0" + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/url-parser" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/credential-provider-ini@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.199.0.tgz#3f5e4128fe4f0adb330bbd0ebe9572123e050fe6" + integrity sha512-6m3WtK+oKGyo7iCHjORwmHN4wUp4F9j79dSedEf0EYxDbHpH9yMnEE6hYV11GdmM+/i8x8DYA45apAZo8gCIcA== + dependencies: + "@aws-sdk/credential-provider-env" "3.198.0" + "@aws-sdk/credential-provider-imds" "3.198.0" + "@aws-sdk/credential-provider-sso" "3.199.0" + "@aws-sdk/credential-provider-web-identity" "3.198.0" + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/shared-ini-file-loader" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/credential-provider-node@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.199.0.tgz#8ed8eac18c24f0611da6efdde2bb4e1f484631c2" + integrity sha512-pgJhOnTHj+ZZkcN9v7R+m2VnkQi4vvyA7N6k3EDWMQ8tdo48ofwObORkzA4gPX+TPuIjpYa1lU03dpY4zuzJKQ== + dependencies: + "@aws-sdk/credential-provider-env" "3.198.0" + "@aws-sdk/credential-provider-imds" "3.198.0" + "@aws-sdk/credential-provider-ini" "3.199.0" + "@aws-sdk/credential-provider-process" "3.198.0" + "@aws-sdk/credential-provider-sso" "3.199.0" + "@aws-sdk/credential-provider-web-identity" "3.198.0" + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/shared-ini-file-loader" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/credential-provider-process@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.198.0.tgz#6b05511c7bb7fc20ecb2c7e017f5f58259ec3bce" + integrity sha512-LWiwKDCui7ILr+6opBzLCCAho9ZOppuEthUdKZx6T7+yD2cQT0caN5PkVUBMtfTu9+DZnHD2bpIL1T2KEaqEUw== + dependencies: + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/shared-ini-file-loader" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/credential-provider-sso@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.199.0.tgz#adc076dd392765909247e38849ab0c28c9555975" + integrity sha512-aMNZkEj/5RN6jSbfkVadjNblExJtHCJGvcnKnzIGfXLgqOFoWGzY+YIHmn/GTgCnpuMbN5hXYXV6w76HwIvWGw== + dependencies: + "@aws-sdk/client-sso" "3.199.0" + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/shared-ini-file-loader" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/credential-provider-web-identity@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.198.0.tgz#9fa7abb93b5d83e80bfacf8c3e46b4f2a862a964" + integrity sha512-D+fhnmqN18P/Roq5oxVq53J3mqS9Oi9IJaIKdrbdK/FibqOyKmTERaLKWkONwG35qExSECOpoEGn7ioUMQgAgQ== + dependencies: + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/eventstream-codec@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-codec/-/eventstream-codec-3.199.0.tgz#b446410f19a770f7d466d10a4cab4d3bb76d00f0" + integrity sha512-ENbJ0RARIasNObBDuzs0Z1D2JqvPL/QHEezxg9TWPMc5tudhFiiw0zl8SrHpzUquV7nBzJe9KCpUj1IDyIg+aw== + dependencies: + "@aws-crypto/crc32" "2.0.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/util-hex-encoding" "3.188.0" + tslib "^2.3.1" + +"@aws-sdk/eventstream-serde-browser@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.199.0.tgz#512fa33f29bc48d561d5ba29c824a6beeaac6f8c" + integrity sha512-r9vo1QMyfHsFLSkxydXdG32IbpLQya57X0fYt1Xymot3YPjStdyN9MgXjB5zMK8nAEa16VtZgld6Gkod607mzQ== + dependencies: + "@aws-sdk/eventstream-serde-universal" "3.199.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/eventstream-serde-config-resolver@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.198.0.tgz#03365304521178085b9808d7069ddc29f910cd5b" + integrity sha512-eNTBi9z/9+VWZ0qdWbF+QvzjthNpx0Tm25zltg4s8fbkQ+cf3Ex0Zn848WlAr37klLwt3jS0eOJO9oTbWc5Sng== + dependencies: + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/eventstream-serde-node@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.199.0.tgz#1bbf20004bb81dd6b90694c33d1738b5af32492c" + integrity sha512-DgNGx8cVoeHjLTbKYoSvUR9qnWqXZtFou0pHYAn1+zU5Mia25He2mEvinxr+7BQ+JPtmjFPGLu/MadbgNSXHCg== + dependencies: + "@aws-sdk/eventstream-serde-universal" "3.199.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/eventstream-serde-universal@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.199.0.tgz#ff6af0913728b411594acb50f538fb930777d821" + integrity sha512-A9XwynfT8N52lSZMcDfV/U45RBtwl1402W6LyMg0sQVmw1rgsVEUgsJwEonfKZFMKgQKOd7o2dXqElF+1XMWPg== + dependencies: + "@aws-sdk/eventstream-codec" "3.199.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/fetch-http-handler@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.199.0.tgz#5344bcd6e14866a529c84b08b8dce0ea7043175b" + integrity sha512-o1jRUMoJR/HOhqA2euYIQxzKLkbqBGwMGH3ahm5eqEJ9kCp84c2KsxT/HOEqjvAQi3f3np8VlTPbuscvDKUN4w== + dependencies: + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/querystring-builder" "3.199.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/util-base64-browser" "3.188.0" + tslib "^2.3.1" + +"@aws-sdk/hash-blob-browser@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.198.0.tgz#4df17ec42cdb0dc0c5c1387f97729b84cd2622f9" + integrity sha512-qZW9f0xBx7YHymBMNEHzuX1ApqX2uKIFXCs5x8oDk2eFA5dYjC4NLCoayVGaeiVk8XKVhNQDNtqh4TGHBwz3Og== + dependencies: + "@aws-sdk/chunked-blob-reader" "3.188.0" + "@aws-sdk/chunked-blob-reader-native" "3.188.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/hash-node@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.198.0.tgz#f04e617c1546e256269413075f35709af663e953" + integrity sha512-+UTjEEQlvT4+IIwLpN36Qb1DOQHe3zHkvIVe6SjLln+Z/UEK6NhMI0tsJNbiW38WAfwOjJ+otrRBHuD93SBRxQ== + dependencies: + "@aws-sdk/types" "3.198.0" + "@aws-sdk/util-buffer-from" "3.188.0" + tslib "^2.3.1" + +"@aws-sdk/hash-stream-node@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-stream-node/-/hash-stream-node-3.198.0.tgz#1c1034415794d40914d9d3ffa2b8c0c5434b0a02" + integrity sha512-6iLvI8/4GnkSOLsVmqA6L4G6u+Rpg7oG4QN90NZyRSQqKWHZkLs2bgfYNWjlsl10eP5cXV1chxeYHDb1i3oGQg== + dependencies: + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/invalid-dependency@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.198.0.tgz#312e13b2645298f5b5f6477054cccbed036c13e4" + integrity sha512-lbwS+H7WYk/g9/nHoTgt7xkrZCJ/OJuBfsx41RvMxW7zPxJeHYD/PvgPvYOB9lTUBkr7SDCeMoS5PtGdAwVOfg== + dependencies: + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/is-array-buffer@3.188.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/is-array-buffer/-/is-array-buffer-3.188.0.tgz#2e969b2e799490e3bbd5008554aa346c58e3a9b6" + integrity sha512-n69N4zJZCNd87Rf4NzufPzhactUeM877Y0Tp/F3KiHqGeTnVjYUa4Lv1vLBjqtfjYb2HWT3NKlYn5yzrhaEwiQ== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/md5-js@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/md5-js/-/md5-js-3.199.0.tgz#4102014c11b37bc6e94d1ccf53ea67f8ea5b43c3" + integrity sha512-TsKcKPLTGJhsxrn/CBlYgZnOyN3IqrwAjUjnHCCvuL35Hg6Z6vDFZemBbmx1IVYGGcZkrQFuhBKXQJe4GbC4FQ== + dependencies: + "@aws-sdk/types" "3.198.0" + "@aws-sdk/util-utf8-browser" "3.188.0" + "@aws-sdk/util-utf8-node" "3.199.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-bucket-endpoint@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.198.0.tgz#78ff724b34a5575e56d7526bc1045da00f42e5d0" + integrity sha512-kw++P+8gPTIdxi9/2f9sXbz2D9N/K+H5aAtRpXomv987MoyROEgfoqlVOzXHxwKgcL7jzoYr3ZVkRTg2c+duHg== + dependencies: + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/util-arn-parser" "3.188.0" + "@aws-sdk/util-config-provider" "3.188.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-content-length@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.199.0.tgz#af32c528b891a592126cf87d54453b6f9bb084e4" + integrity sha512-Q76J6xZl36tqS401TGs/NPIu8lYbNG1EtqxM88CWe/u0SH+D4LIR9AMXq9c4PH0ldIMWAGVGbRLLc0/H3rPyBg== + dependencies: + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-endpoint@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.198.0.tgz#3327c24919b539d66ad64f52d8e313b3ff48511f" + integrity sha512-J/rQkIXUbFJAlD6LSDVGU4bGbwD/2pvF5N39ePzvaJ8SwV9Y78XER/2fIAERhFNppuYinGdBdMLiPsC6qPT6ZA== + dependencies: + "@aws-sdk/middleware-serde" "3.198.0" + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/signature-v4" "3.198.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/url-parser" "3.198.0" + "@aws-sdk/util-config-provider" "3.188.0" + "@aws-sdk/util-middleware" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-expect-continue@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.198.0.tgz#0dc6f6127dc0b717c697ec69922cf94a29146b7b" + integrity sha512-dzzfA7Drp9yARvJZF1AyOxAGB+QtPMzxq7yMNed82DTY/n3yertmoicMdMSUe8Q2qk1O9WeJUqruMVB0Blnl9w== + dependencies: + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-flexible-checksums@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.198.0.tgz#5161e89cfb25c0e6d93eb85f9a54d9ac9b933e4c" + integrity sha512-JWKtbikkDWrGlAPBBVPmVGJ0mCeFWPqV6M2zwsuILzA1eN23ExKJJrcmUmc1nsuYCBbCk2jF5UoJUpampgWp9w== + dependencies: + "@aws-crypto/crc32" "2.0.0" + "@aws-crypto/crc32c" "2.0.0" + "@aws-sdk/is-array-buffer" "3.188.0" + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-host-header@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.198.0.tgz#52e684b418253d7bb9696050261dbd5144e0c704" + integrity sha512-keHstrdw0bFzEkUrkMQ9+UxaKu5b1K87cH6guqLf4JBo04CT+2kPRlDSma65XCi2U81zfTnWApk+/SPPFN3otA== + dependencies: + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-location-constraint@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.198.0.tgz#c2313fc60b01fa945578eb562860920673fb2a17" + integrity sha512-k78u+DRRWlHwv6rEuVktbXQQQQ2rJaSw5zvvSpRS7syNtmeXiQzb3c+pS3TgGuq79yz8Pz4nawWyB9vgmpqdkg== + dependencies: + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-logger@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.198.0.tgz#cdb9967b05cbe70f8ecdd22d80a8db3aaf4fbc4e" + integrity sha512-IFvNO4MI80FyltPzrEpYHMG47EYXawcD5zTzcbimpeLTpyrLY/zkSJqh5cVFu+NcDWsuD6U1geuvfN+i+2Bg1Q== + dependencies: + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-recursion-detection@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.198.0.tgz#d3518dc20b5eaf3cdcae27d9d30973b6dab56a20" + integrity sha512-VHyz5xBJOaLZwdL94XWB04XCA+pwbURy+4ESF66vIY1umWgfanbZPkvw1XlRaQJydOmyIDFqhNG2AzB28WN9iw== + dependencies: + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-retry@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.198.0.tgz#f3c6a2b91d54f1dabc8d266cf68589980f75bd87" + integrity sha512-dwv5QJYTPNkmjKcQ0RtClkNumFomECzxjXvSiyjD9Ft6AWHcUeyqJfGKbmP5mFHpezWckK1qcT6cPMVrJilgjw== + dependencies: + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/service-error-classification" "3.198.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/util-middleware" "3.198.0" + tslib "^2.3.1" + uuid "^8.3.2" + +"@aws-sdk/middleware-sdk-s3@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.198.0.tgz#5df5e6d13915c3415a6ef7d087b6a1c6fdcf005e" + integrity sha512-q8YX7RtReXJHDyQX7QoLGGu2v7z9XXPxW6Ztr1xyEjqm2XBOG/3iRnmtFsW2ATKZ3i3YFM3N/uvluxIFm4PyLQ== + dependencies: + "@aws-sdk/middleware-bucket-endpoint" "3.198.0" + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/util-arn-parser" "3.188.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-sdk-sts@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.199.0.tgz#54c45d70e3093c8bdfae0d4caf7d1c7c1de58494" + integrity sha512-ISM3Lx1AM2IiHpcQPdwHHvnW/dRyC/jGy2fHQvmYxj8x2oIYnEXxk4vA7DFnrYupxwi2yTSp3k8On2+1VgMjiw== + dependencies: + "@aws-sdk/middleware-signing" "3.198.0" + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/signature-v4" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-serde@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.198.0.tgz#64ea41d13ff132512b90670851c5241cd76ee067" + integrity sha512-RlAua2691KCFabp3kjnsd5p+1nQbULTK1Ia/jvlTAyG4tGOeA0x1At6KZoI1LfkN+VjstV5/3b9aOCtcFuxkhA== + dependencies: + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-signing@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.198.0.tgz#32249b0c7c4ee58e5fc76d6d293ad942ff4f1dc9" + integrity sha512-HPY9d1c1CUiV6JBVxiiQQgYfmELl1cn6h0TI00EmOAM5/wxUoiYBX2cGWf2NRF9/iBTppZjxwAKMYPIqF5Tkvw== + dependencies: + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/signature-v4" "3.198.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/util-middleware" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-ssec@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.198.0.tgz#19ae55fd7a14c48ab8060305304b9ac18be28d66" + integrity sha512-lCHl4gkc8iqOCEnU81xHq+QNUh92BEdHqYCMMJw4Gz6AxlmdqykaGvSDst60fzF4/x280MJVdYGODULublEZFg== + dependencies: + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-stack@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.198.0.tgz#6f23319a15fb3a6b4463d13fc8304a55ed32d2f3" + integrity sha512-5mHRjiJFHxziXOiChW3kttQHjgqH5qW9xRIDJepyf+NRJ60L8bZj0t8oGecqVqo27S02+UvrFgOzoRvBbATVFw== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/middleware-user-agent@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.198.0.tgz#419984e0f7fd9e96e0152df2eaea9a085b929df0" + integrity sha512-SMteVixqoSazxUN1ROMj+nSf/zgTMRVPaTCKU0iEAtrE7ilp9Xv6FEC7ffm1MM9xIoAZ2eY1eAtY3uN0yxBm4A== + dependencies: + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/node-config-provider@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.198.0.tgz#4d555b4f52b2073a459bf44dae6a0c7c81d629b6" + integrity sha512-W+msdp94ZjR8mJMtGPHjWHsIdsOu3HaVX4x+AQq9cj7+pg/D5CvWw7fnbkUQeG+V8Ia/aqzBNxlUpr/FAeQY/g== + dependencies: + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/shared-ini-file-loader" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/node-http-handler@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.199.0.tgz#5bfd5456d2cd06293a4000ca0e47f89a72d32e84" + integrity sha512-F+6T7MHHm0b3+GVRxEnFCuIyqUQb0b8a3Hne3QFV4cxtnX58O/SSF8KlpuGZwobivdRC/AKDaTdI/eA0PQfegA== + dependencies: + "@aws-sdk/abort-controller" "3.198.0" + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/querystring-builder" "3.199.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/property-provider@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.198.0.tgz#53107614aeadf2e8b703de836df42ca474fc0e12" + integrity sha512-jnQeJgZlk+6YJS2/eFz6pm9+XHzvCB0jTxHBwt2zYwZfcJ98viRQWMYfkY1XsemuQb/uIoHRBRhFXaJSLpXVDQ== + dependencies: + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/protocol-http@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.198.0.tgz#4de253f4bbcecf54d6f693d324244d0fb6d31f3f" + integrity sha512-x+Qc+kwYqaZvLJ/820rxoFUIgSnSS/XlUHwmS+CTn7nJ68CeL3dzmae6TVOslpVBLCvoS2CbEpEoBbofOpsbGw== + dependencies: + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/querystring-builder@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.199.0.tgz#6b43704a5bba0ea78f91dae2f77812b4d406d675" + integrity sha512-P4MWPzCqtH3sgI9iXXVdYirYVgggtg4uq5MVefnfHW+osZu8ZR+UKJw5ojAFfOCqcnKOU/xJjz185RroOjrzYQ== + dependencies: + "@aws-sdk/types" "3.198.0" + "@aws-sdk/util-uri-escape" "3.188.0" + tslib "^2.3.1" + +"@aws-sdk/querystring-parser@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.198.0.tgz#1c7d15ad0a74c86513fc80322f2e9cd7d9c5bfcf" + integrity sha512-oMybZYINxNiwSELR7tOwqu+1S7CeEC3g5L4IQXk2wvVx96HEf3sQgLr1wbmV1b7lEnTuH9OrgI5RgDUBVqipdw== + dependencies: + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/service-error-classification@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.198.0.tgz#108a5186a0c8d64452427dbf2391bd0f9f534b88" + integrity sha512-bVsWOIYuDtSmwJtPF1pU84x2TL20Pj02C0+/6ua4qLvRatVKFbj1wxWiU/nKvgjiGFX8VWuQUKMzXUYQfYn4nw== + +"@aws-sdk/shared-ini-file-loader@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.198.0.tgz#55eb08391c3707e812b1ac6f65dae397bae97318" + integrity sha512-n3Ykuvtb6f+WQuhcMVumY9VxQwPp8+cMSc5s6YHptkvZkz/cd2wmPhO914gKE/i2MoC/zQsFCXT8Z1YnS7k8sA== + dependencies: + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/signature-v4-multi-region@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.198.0.tgz#e40bcd5e907b5e11fb400f1e0bccef0d134aaa10" + integrity sha512-e5ZTuESxib5zK6QNkPIHpzTc8zf/TpO8OA7zQRRrAx+caVbftOimBery6fMPps6al9pWmqNQS6mP2pSLkLc5Dw== + dependencies: + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/signature-v4" "3.198.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/util-arn-parser" "3.188.0" + tslib "^2.3.1" + +"@aws-sdk/signature-v4@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.198.0.tgz#73dae5de7328d0e334f57627e9d84cb5a978c9ab" + integrity sha512-8EIyEt7ElTK/tQamYyB16IGwc7EwtLlSVcksaiII780ZtYULnOjogi/UImCYqSejQw+EHhXfbj14HRQT56rqEQ== + dependencies: + "@aws-sdk/is-array-buffer" "3.188.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/util-hex-encoding" "3.188.0" + "@aws-sdk/util-middleware" "3.198.0" + "@aws-sdk/util-uri-escape" "3.188.0" + tslib "^2.3.1" + +"@aws-sdk/smithy-client@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.198.0.tgz#74a08c43a9cf65b0499d7a48addfac7e1a87f18a" + integrity sha512-IKUzJSoIkxYkYpRdlrh6REtDcW5c87FKeqtMC8VTpaTxrXwnJOqbenp7IwArwOnbXp4aIVmzdxT/nvQrftlgWg== + dependencies: + "@aws-sdk/middleware-stack" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/types@3.198.0", "@aws-sdk/types@^3.1.0", "@aws-sdk/types@^3.110.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.198.0.tgz#4e4f5df1bf362dfe64e7bdaf37ba614c61618356" + integrity sha512-ljgY9Pgb2CSRrf4IeaNy5gkhTsBae9STKc/mqfScSzvZOvRHu+BOIAGM33fDoCwxD1viKNVJvU1KemiI57Gbvw== + +"@aws-sdk/url-parser@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.198.0.tgz#6694cf6a96b801d34ef60f3ef05ef449a1b9ff4d" + integrity sha512-wm3+OTDWKsMEOlLGvJ+jxCcOXMjgd5qBDVbu2bTiyTahc2poNlM7kKhSwL4I8PkmGZVAqfAlHD4Wj38WecHQPw== + dependencies: + "@aws-sdk/querystring-parser" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/util-arn-parser@3.188.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.188.0.tgz#4df0144c00dce3490666da7d55e6e13c9a3f21b2" + integrity sha512-q4nZzt/g3sRY9a3sj1PaNFwql5bXfKSW4fRy0zLdbZHcYdgq2oQfVsJTIlL9lUNjifkXiIsmk61Q16JExtrLyw== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-base64-browser@3.188.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64-browser/-/util-base64-browser-3.188.0.tgz#581c85dc157aff88ca81e42d9c79d87c95db8d03" + integrity sha512-qlH+5NZBLiyKziL335BEPedYxX6j+p7KFRWXvDQox9S+s+gLCayednpK+fteOhBenCcR9fUZOVuAPScy1I8qCg== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-base64-node@3.188.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64-node/-/util-base64-node-3.188.0.tgz#1d2413f68c8ad1cca0903fc11d92af88ba70e14d" + integrity sha512-r1dccRsRjKq+OhVRUfqFiW3sGgZBjHbMeHLbrAs9jrOjU2PTQ8PSzAXLvX/9lmp7YjmX17Qvlsg0NCr1tbB9OA== + dependencies: + "@aws-sdk/util-buffer-from" "3.188.0" + tslib "^2.3.1" + +"@aws-sdk/util-body-length-browser@3.188.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz#e1d949318c10a621b38575a9ef01e39f9857ddb0" + integrity sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-body-length-node@3.188.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-node/-/util-body-length-node-3.188.0.tgz#3fc2a820b9be0efcbdf962d8f980b9000b98ddba" + integrity sha512-XwqP3vxk60MKp4YDdvDeCD6BPOiG2e+/Ou4AofZOy5/toB6NKz2pFNibQIUg2+jc7mPMnGnvOW3MQEgSJ+gu/Q== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-buffer-from@3.188.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-buffer-from/-/util-buffer-from-3.188.0.tgz#a062ccd990571df4353990e8b78aebec5a14547d" + integrity sha512-NX1WXZ8TH20IZb4jPFT2CnLKSqZWddGxtfiWxD9M47YOtq/SSQeR82fhqqVjJn4P8w2F5E28f+Du4ntg/sGcxA== + dependencies: + "@aws-sdk/is-array-buffer" "3.188.0" + tslib "^2.3.1" + +"@aws-sdk/util-config-provider@3.188.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-config-provider/-/util-config-provider-3.188.0.tgz#f7a365e6cbfe728c1224f0b39926636619b669e0" + integrity sha512-LBA7tLbi7v4uvbOJhSnjJrxbcRifKK/1ZVK94JTV2MNSCCyNkFotyEI5UWDl10YKriTIUyf7o5cakpiDZ3O4xg== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-defaults-mode-browser@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.198.0.tgz#4dc4bb9fbbf12b984e4547e81a05f8fcdb03f9a2" + integrity sha512-IG4iVKQdFjdVFMH5KbSUY2l48wL9aCX/qzoCyTPjKkVumvmwnfkt5OCslkNcaqRdvp5o7QL7aHbq0EZ3K7Ya0A== + dependencies: + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/types" "3.198.0" + bowser "^2.11.0" + tslib "^2.3.1" + +"@aws-sdk/util-defaults-mode-node@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.198.0.tgz#22ca9e151e778f32cb62f09b7e7f55d97ad0d09f" + integrity sha512-LBKSKJjEs0D8tjalblDNmq9DWYTDQ1wVUksAIBO2gQU+EZHJwPb9qxyAk32gbnVTOYceZpJ5/vAGT7speDzEyw== + dependencies: + "@aws-sdk/config-resolver" "3.198.0" + "@aws-sdk/credential-provider-imds" "3.198.0" + "@aws-sdk/node-config-provider" "3.198.0" + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/util-endpoints@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.198.0.tgz#45e51d3ed56f1a3a4c54d57f3a4eed2f516bb978" + integrity sha512-fpeJNVoe/QsIcGybgJ+D2jZcUFi7d37FlMiZd9eVnS5LyMGDNH8tVS7aPT7dgb0z30/FKMBIKKG6QxDGxFaqjQ== + dependencies: + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/util-hex-encoding@3.188.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.188.0.tgz#c2d8b02b952db58acbd5f53718109657c69c460f" + integrity sha512-QyWovTtjQ2RYxqVM+STPh65owSqzuXURnfoof778spyX4iQ4z46wOge1YV2ZtwS8w5LWd9eeVvDrLu5POPYOnA== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-locate-window@^3.0.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.188.0.tgz#0bef2b4d932d1401bd78dc1ddd258b14a3652f96" + integrity sha512-SxobBVLZkkLSawTCfeQnhVX3Azm9O+C2dngZVe1+BqtF8+retUbVTs7OfYeWBlawVkULKF2e781lTzEHBBjCzw== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-middleware@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.198.0.tgz#95edefd4b9c8427f671379cf8527de0c31990f5a" + integrity sha512-hEdkuGRWhZdEb1plzkGCN2kT8SqiPrEQHngB+1q7pjFJcKWkYkmaLHGw2zhbg1EVNpcGmj5DzCSWzwoPkpDRsw== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-stream-browser@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-stream-browser/-/util-stream-browser-3.199.0.tgz#408b0aab6bc487679f26985720cf06d2cd5b3969" + integrity sha512-dzwPKCw3p+mqbgUAfc81rxq0GBWIW+iVq8skXgYdP+GY0ShHAqykZsvRY9fdcaR4SLgckoAmI51sUgBEYHIgOw== + dependencies: + "@aws-sdk/fetch-http-handler" "3.199.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/util-base64-browser" "3.188.0" + "@aws-sdk/util-hex-encoding" "3.188.0" + "@aws-sdk/util-utf8-browser" "3.188.0" + tslib "^2.3.1" + +"@aws-sdk/util-stream-node@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-stream-node/-/util-stream-node-3.199.0.tgz#d938ad6496b72cef5cd6bb0398598b120b84cacb" + integrity sha512-yHvoeYKADlxZlGyZdyK1x9qyM/dsLDzbCUUnrpJkCjd+PQBHcB57DX7K64UwVmssTN2rgdIxMC9hTR1azxCU6w== + dependencies: + "@aws-sdk/node-http-handler" "3.199.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/util-buffer-from" "3.188.0" + tslib "^2.3.1" + +"@aws-sdk/util-uri-escape@3.188.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-uri-escape/-/util-uri-escape-3.188.0.tgz#6dbd4322f6cdc3252a75c6f729e1082369c468c0" + integrity sha512-4Y6AYZMT483Tiuq8dxz5WHIiPNdSFPGrl6tRTo2Oi2FcwypwmFhqgEGcqxeXDUJktvaCBxeA08DLr/AemVhPCg== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-user-agent-browser@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.198.0.tgz#ecbd157ad62a314f5a8dfea997931dc65a0b620f" + integrity sha512-XIwaaKtrEsxsayk1yUNjx15AZenP6YRaRDa3f6dhGO+D6OOXP+0S38O5lakyDDGW7nkwkmXa2NIv/OPHPYJ+jQ== + dependencies: + "@aws-sdk/types" "3.198.0" + bowser "^2.11.0" + tslib "^2.3.1" + +"@aws-sdk/util-user-agent-node@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.198.0.tgz#488de6a2d3c67c6d7589e9fbe806732c23b690c1" + integrity sha512-21bi3pNO7jvo3l9LtMJyR48ERN69PuBqMnwnjsDVqyIFBbnZr/JR5rWQx7jdZ0iUt6mRlgZ17xHXlGUGMCxznA== + dependencies: + "@aws-sdk/node-config-provider" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/util-utf8-browser@3.188.0", "@aws-sdk/util-utf8-browser@^3.0.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz#484762bd600401350e148277731d6744a4a92225" + integrity sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-utf8-node@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-node/-/util-utf8-node-3.199.0.tgz#38f59c280097c6a7f1cc3d78a935641c036dee28" + integrity sha512-Kk3qCdGbe5k0PUE8EBgMsRxNstvDCoWStYWjNwsHWuc/hJitSf44PColzXw6xxHqH1sY+6LcgIaMwJZ5C4bB6w== + dependencies: + "@aws-sdk/util-buffer-from" "3.188.0" + tslib "^2.3.1" + +"@aws-sdk/util-waiter@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-waiter/-/util-waiter-3.198.0.tgz#3e3d36113312b8fc8db12cd2ef5d70aec330e913" + integrity sha512-EH2moFzGam0gyRYEc4U9Lq5qyD9CfFi02Jhji//qaCmn6vry0/ivDVgJzS2HSIb2/2XRLW7vFkKT4cWN2pkQyw== + dependencies: + "@aws-sdk/abort-controller" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/xml-builder@3.188.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.188.0.tgz#d3f72f5e490be577670b6532343f5682e38ac000" + integrity sha512-/Hah3gAtrBpEaDInX3eSS0nXw/IUeb+rWiGspXxb5O8bh5kyjQqeu8/sVJQlpOtq4aPDbMDmloH4k696qTqgbw== + dependencies: + tslib "^2.3.1" + "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" @@ -169,10 +1076,10 @@ dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.19.3", "@babel/compat-data@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.4.tgz#95c86de137bf0317f3a570e1b6e996b427299747" - integrity sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw== +"@babel/compat-data@^7.19.4", "@babel/compat-data@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.0.tgz#9b61938c5f688212c7b9ae363a819df7d29d4093" + integrity sha512-Gt9jszFJYq7qzXVK4slhc6NzJXnOVmRECWcVjF/T23rNXD9NtWQ0W3qxdg+p9wWIB+VQw3GYV/U2Ha9bRTfs4w== "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.14.0", "@babel/core@^7.18.13", "@babel/core@^7.18.2", "@babel/core@^7.19.3": version "7.19.6" @@ -195,12 +1102,12 @@ json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.14.0", "@babel/generator@^7.18.13", "@babel/generator@^7.18.2", "@babel/generator@^7.19.6", "@babel/generator@^7.7.2": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.6.tgz#9e481a3fe9ca6261c972645ae3904ec0f9b34a1d" - integrity sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA== +"@babel/generator@^7.14.0", "@babel/generator@^7.18.13", "@babel/generator@^7.18.2", "@babel/generator@^7.19.6", "@babel/generator@^7.20.0", "@babel/generator@^7.7.2": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.0.tgz#0bfc5379e0efb05ca6092091261fcdf7ec36249d" + integrity sha512-GUPcXxWibClgmYJuIwC2Bc2Lg+8b9VjaJ+HlNdACEVt+Wlr1eoU1OPZjZRm7Hzl0gaTsUZNQfeihvZJhG7oc3w== dependencies: - "@babel/types" "^7.19.4" + "@babel/types" "^7.20.0" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" @@ -212,11 +1119,11 @@ "@babel/types" "^7.18.6" "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.19.0", "@babel/helper-compilation-targets@^7.19.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz#a10a04588125675d7c7ae299af86fa1b2ee038ca" - integrity sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a" + integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ== dependencies: - "@babel/compat-data" "^7.19.3" + "@babel/compat-data" "^7.20.0" "@babel/helper-validator-option" "^7.18.6" browserslist "^4.21.3" semver "^6.3.0" @@ -320,11 +1227,11 @@ "@babel/types" "^7.19.4" "@babel/helper-skip-transparent-expression-wrappers@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818" - integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" + integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== dependencies: - "@babel/types" "^7.18.9" + "@babel/types" "^7.20.0" "@babel/helper-split-export-declaration@^7.18.6": version "7.18.6" @@ -349,13 +1256,13 @@ integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== "@babel/helpers@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.4.tgz#42154945f87b8148df7203a25c31ba9a73be46c5" - integrity sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.0.tgz#27c8ffa8cc32a2ed3762fba48886e7654dbcf77f" + integrity sha512-aGMjYraN0zosCEthoGLdqot1oRsmxVTQRHadsUPz5QM44Zej2PYRz7XiDE7GqnkZnNtLbOuxqoZw42vkU7+XEQ== dependencies: "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.4" - "@babel/types" "^7.19.4" + "@babel/traverse" "^7.20.0" + "@babel/types" "^7.20.0" "@babel/highlight@^7.18.6": version "7.18.6" @@ -366,10 +1273,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.8", "@babel/parser@^7.18.10", "@babel/parser@^7.18.4", "@babel/parser@^7.19.6": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.6.tgz#b923430cb94f58a7eae8facbffa9efd19130e7f8" - integrity sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.8", "@babel/parser@^7.18.10", "@babel/parser@^7.18.4", "@babel/parser@^7.19.6", "@babel/parser@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.0.tgz#b26133c888da4d79b0d3edcf42677bcadc783046" + integrity sha512-G9VgAhEaICnz8iiJeGJQyVl6J2nTjbW0xeisva0PK6XcKsga7BIaqm4ZF8Rg1Wbaqmy6znspNqhPaPkyukujzg== "@babel/plugin-proposal-class-properties@^7.0.0": version "7.18.6" @@ -489,11 +1396,11 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.18.6", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz#1c09cd25795c7c2b8a4ba9ae49394576d4133285" - integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7" + integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-transform-arrow-functions@^7.0.0": version "7.18.6" @@ -510,9 +1417,9 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-block-scoping@^7.0.0": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz#315d70f68ce64426db379a3d830e7ac30be02e9b" - integrity sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.0.tgz#91fe5e6ffc9ba13cb6c95ed7f0b1204f68c988c5" + integrity sha512-sXOohbpHZSk7GjxK9b3dKB7CfqUD5DwOH+DggKzOQ7TXYP+RCSbRykfjQmn/zq+rBjycVRtLf9pYhAaEJA786w== dependencies: "@babel/helper-plugin-utils" "^7.19.0" @@ -539,9 +1446,9 @@ "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-destructuring@^7.0.0": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz#46890722687b9b89e1369ad0bd8dc6c5a3b4319d" - integrity sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.0.tgz#712829ef4825d9cc04bb379de316f981e9a6f648" + integrity sha512-1dIhvZfkDVx/zn2S1aFwlruspTt4189j7fEkH0Y0VyuDM6bQt7bD6kLcz3l4IlLG+e5OReaBz9ROAbttRtUHqA== dependencies: "@babel/helper-plugin-utils" "^7.19.0" @@ -655,19 +1562,19 @@ "@babel/helper-plugin-utils" "^7.18.9" "@babel/runtime-corejs3@^7.10.2": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.19.6.tgz#778471a71d915cf3b955a9201bebabfe924f872a" - integrity sha512-oWNn1ZlGde7b4i/3tnixpH9qI0bOAACiUs+KEES4UUCnsPjVWFlWdLV/iwJuPC2qp3EowbAqsm+0XqNwnwYhxA== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.20.0.tgz#56ef7af3cd23d1570969809a5a8782e774e0141a" + integrity sha512-v1JH7PeAAGBEyTQM9TqojVl+b20zXtesFKCJHu50xMxZKD1fX0TKaKHPsZfFkXfs7D1M9M6Eeqg1FkJ3a0x2dA== dependencies: core-js-pure "^3.25.1" - regenerator-runtime "^0.13.4" + regenerator-runtime "^0.13.10" "@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.15.4", "@babel/runtime@^7.18.9": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.4.tgz#a42f814502ee467d55b38dd1c256f53a7b885c78" - integrity sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.0.tgz#824a9ef325ffde6f78056059db3168c08785e24a" + integrity sha512-NDYdls71fTXoU8TZHfbBWg7DiZfNzClcKui/+kyi6ppD2L1qnWW3VV6CjtaBXSUGGhiTWJ6ereOIkUvenif66Q== dependencies: - regenerator-runtime "^0.13.4" + regenerator-runtime "^0.13.10" "@babel/template@^7.18.10", "@babel/template@^7.3.3": version "7.18.10" @@ -678,26 +1585,26 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/traverse@^7.14.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.18.2", "@babel/traverse@^7.19.1", "@babel/traverse@^7.19.4", "@babel/traverse@^7.19.6", "@babel/traverse@^7.7.2": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.6.tgz#7b4c865611df6d99cb131eec2e8ac71656a490dc" - integrity sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ== +"@babel/traverse@^7.14.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.18.2", "@babel/traverse@^7.19.1", "@babel/traverse@^7.19.6", "@babel/traverse@^7.20.0", "@babel/traverse@^7.7.2": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.0.tgz#538c4c6ce6255f5666eba02252a7b59fc2d5ed98" + integrity sha512-5+cAXQNARgjRUK0JWu2UBwja4JLSO/rBMPJzpsKb+oBF5xlUuCfljQepS4XypBQoiigL0VQjTZy6WiONtUdScQ== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.6" + "@babel/generator" "^7.20.0" "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-function-name" "^7.19.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.19.6" - "@babel/types" "^7.19.4" + "@babel/parser" "^7.20.0" + "@babel/types" "^7.20.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.16.8", "@babel/types@^7.18.10", "@babel/types@^7.18.13", "@babel/types@^7.18.4", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.3", "@babel/types@^7.19.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.4.tgz#0dd5c91c573a202d600490a35b33246fed8a41c7" - integrity sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw== +"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.16.8", "@babel/types@^7.18.10", "@babel/types@^7.18.13", "@babel/types@^7.18.4", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.3", "@babel/types@^7.19.4", "@babel/types@^7.20.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.0.tgz#52c94cf8a7e24e89d2a194c25c35b17a64871479" + integrity sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg== dependencies: "@babel/helper-string-parser" "^7.19.4" "@babel/helper-validator-identifier" "^7.19.1" @@ -770,9 +1677,9 @@ strip-json-comments "^3.1.1" "@graphql-codegen/cli@^2.12.1": - version "2.13.7" - resolved "https://registry.yarnpkg.com/@graphql-codegen/cli/-/cli-2.13.7.tgz#53566cbba37e4c9d7e89d7c35a91e3fbf6bed988" - integrity sha512-Rpk4WWrDgkDoVELftBr7/74MPiYmCITEF2+AWmyZZ2xzaC9cO2PqzZ+OYDEBNWD6UEk0RrIfVSa+slDKjhY59w== + version "2.13.8" + resolved "https://registry.yarnpkg.com/@graphql-codegen/cli/-/cli-2.13.8.tgz#2ef3972284f63540c26fcad28374351eb627592b" + integrity sha512-xX+lT51nMBD3b6lDyA+BDyJoEKnsPMctM/Fx8st0gEy7ZgdWLrsgOBOn4k71yyejOy3CHnRV5LMKWdhiQDaYsA== dependencies: "@babel/generator" "^7.18.13" "@babel/template" "^7.18.10" @@ -785,7 +1692,7 @@ "@graphql-tools/github-loader" "^7.3.6" "@graphql-tools/graphql-file-loader" "^7.5.0" "@graphql-tools/json-file-loader" "^7.4.1" - "@graphql-tools/load" "^7.7.1" + "@graphql-tools/load" "7.8.0" "@graphql-tools/prisma-loader" "^7.2.7" "@graphql-tools/url-loader" "^7.13.2" "@graphql-tools/utils" "^8.9.0" @@ -864,9 +1771,9 @@ tslib "~2.4.0" "@graphql-codegen/typescript@^2.7.3", "@graphql-codegen/typescript@^2.7.5": - version "2.7.5" - resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript/-/typescript-2.7.5.tgz#00da3b7dd51cce49d95531556988818568c5d87e" - integrity sha512-NZMViINr0KEH+DgtOE3BDWkdrisX7cz3/+m6M73Sa2cMM1udTTCpLbNqFIHRmGl1UyfwjdZB32YoF/fxshjV/Q== + version "2.8.0" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript/-/typescript-2.8.0.tgz#c4a20cd88f301bed094b53c982cf85bceda1b78c" + integrity sha512-atQ6NFfMmoknJi0QdVSozPugKcgeJB6t1/cVskbhVtX8tAEFFLjl6H23mpz3t35AH6aGWtvx2LCjUSxHI6P6xA== dependencies: "@graphql-codegen/plugin-helpers" "^2.6.2" "@graphql-codegen/schema-ast" "^2.5.1" @@ -900,123 +1807,142 @@ tslib "~2.4.0" "@graphql-tools/apollo-engine-loader@^7.3.6": - version "7.3.13" - resolved "https://registry.yarnpkg.com/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.3.13.tgz#090bf03a99a5aaf8580826125346cb7441b54d94" - integrity sha512-fr2TcA9fM+H81ymdtyDaocZ/Ua4Vhhf1IvpQoPpuEUwLorREd86N8VORUEIBvEdJ1b7Bz7NqwL3RnM5m9KXftA== + version "7.3.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.3.15.tgz#2eae5c107029f2a0f40b73ab1c180bf96d788de4" + integrity sha512-MzdpnFa48CueKDDv0DjhJxjoFD2oMCXZHcDFJEKNX81AwGLA4b3fW4s+JLPEahIAsnpnh94gmglQX2VH7f006A== dependencies: "@ardatan/sync-fetch" "0.0.1" - "@graphql-tools/utils" "8.12.0" - "@whatwg-node/fetch" "^0.4.0" + "@graphql-tools/utils" "8.13.1" + "@whatwg-node/fetch" "^0.5.0" tslib "^2.4.0" -"@graphql-tools/batch-execute@8.5.6": - version "8.5.6" - resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-8.5.6.tgz#476c2f9af1c302567e798d63063f1a2dfaad754a" - integrity sha512-33vMvVDLBKsNJVNhcySVXF+zkcRL/GRs1Lt+MxygrYCypcAPpFm+amE2y9vOCFufuaKExIX7Lonnmxu19vPzaQ== +"@graphql-tools/batch-execute@8.5.8": + version "8.5.8" + resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-8.5.8.tgz#9d51610f33740befb90043070c169f069d4cf8c4" + integrity sha512-epYOlU2DgJz7NGCfOiRYJ6yClu6G+OuuZeMzmWRRjUun5gO5rcZ0pdL9BH7i+JE1NycXy68y+mOWnW9U85AGTA== dependencies: - "@graphql-tools/utils" "8.12.0" + "@graphql-tools/utils" "8.13.1" dataloader "2.1.0" tslib "^2.4.0" value-or-promise "1.0.11" "@graphql-tools/code-file-loader@^7.3.1": - version "7.3.6" - resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.6.tgz#3e6bdd4dc93c592be3d6fbcc2c2bad1228ca0f8d" - integrity sha512-PNWWSwSuQAqANerDwS0zdQ5FPipirv75TjjzBHnY+6AF/WvKq5sQiUQheA2P7B+MZc/KdQ7h/JAGMQOhKNVA+Q== + version "7.3.8" + resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.8.tgz#325b12a4dff5e7dce4aa476938db327498c5e1da" + integrity sha512-L+KWsVOjKd7ilESk1eqXgPrW+ynK4+JAgrEDYSHDmDmGFC17Y+q8R5doCjv3EXYw55fn41OQpNw5pwLkDNrf1g== dependencies: - "@graphql-tools/graphql-tag-pluck" "7.3.6" - "@graphql-tools/utils" "8.12.0" + "@graphql-tools/graphql-tag-pluck" "7.3.8" + "@graphql-tools/utils" "8.13.1" globby "^11.0.3" tslib "^2.4.0" unixify "^1.0.0" -"@graphql-tools/delegate@9.0.8": - version "9.0.8" - resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.8.tgz#aa792f419a041de0c6341eaecf9694cf6f16f76f" - integrity sha512-h+Uce0Np0eKj7wILOvlffRQ9jEQ4KelNXfqG8A2w+2sO2P6CbKsR7bJ4ch9lcUdCBbZ4Wg6L/K+1C4NRFfzbNw== +"@graphql-tools/delegate@9.0.10": + version "9.0.10" + resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.10.tgz#306a7f6689b164e7bd6def385dea3d8a838206c1" + integrity sha512-mzj46wLc7JpSlVE5OO/jWK4Y+CBq7dNCEfrCFh04/r4ezjIsSW+JqteCG0FXZMaZouRz8MpozVEG+Epr2rPwQQ== dependencies: - "@graphql-tools/batch-execute" "8.5.6" - "@graphql-tools/schema" "9.0.4" - "@graphql-tools/utils" "8.12.0" + "@graphql-tools/batch-execute" "8.5.8" + "@graphql-tools/executor" "0.0.2" + "@graphql-tools/schema" "9.0.6" + "@graphql-tools/utils" "8.13.1" dataloader "2.1.0" tslib "~2.4.0" value-or-promise "1.0.11" -"@graphql-tools/git-loader@^7.2.1": - version "7.2.6" - resolved "https://registry.yarnpkg.com/@graphql-tools/git-loader/-/git-loader-7.2.6.tgz#0227a99a6daf4fedac6d172726966110bb7299ef" - integrity sha512-QA94Gjp70xcdIYUbZDIm8fnuDN0IvoIIVVU+lXQemoV+vDeJKIjrP9tfOTjVDPIDXQnCYswvu9HLe8BlEApQYw== +"@graphql-tools/executor@0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-0.0.2.tgz#210c10ca3132cac6b9953a4aae3fbd3fc8498407" + integrity sha512-z87YxQUzxv6SffOEHoEf1jOrkOx45Mh+fQQtD5Kg/qhQuFEhQxxnrYzUYnZjZfMwGlijN4osAN970YMqpHMhmQ== dependencies: - "@graphql-tools/graphql-tag-pluck" "7.3.6" - "@graphql-tools/utils" "8.12.0" + "@graphql-tools/utils" "8.13.1" + "@graphql-typed-document-node/core" "3.1.1" + +"@graphql-tools/git-loader@^7.2.1": + version "7.2.8" + resolved "https://registry.yarnpkg.com/@graphql-tools/git-loader/-/git-loader-7.2.8.tgz#87924042d19173c04ef62e093eac44b5aeb4c491" + integrity sha512-zezNHiBDp8WiAoIgRjAxyvmHlw1qLAYNd/Bs9yNLfxV+j/wJuMO41IKGf7rId8U3rE+QuEh1okDhPPTRNeK/WQ== + dependencies: + "@graphql-tools/graphql-tag-pluck" "7.3.8" + "@graphql-tools/utils" "8.13.1" is-glob "4.0.3" micromatch "^4.0.4" tslib "^2.4.0" unixify "^1.0.0" "@graphql-tools/github-loader@^7.3.6": - version "7.3.13" - resolved "https://registry.yarnpkg.com/@graphql-tools/github-loader/-/github-loader-7.3.13.tgz#16d7b90b5409591fa10106bd54581b2cbcbd498f" - integrity sha512-4RTjdtdtQC+n9LJMKpBThQGD3LnpeLVjU2A7BoVuKR+NQPJtcUzzuD6dXeYm5RiOMOQUsPGxQWKhJenW20aLUg== + version "7.3.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/github-loader/-/github-loader-7.3.15.tgz#609015da579202ed4c364a57457b66f133d11494" + integrity sha512-PwEnTvJcIlmywG/+wW6XhoI6QNeTwn5kWLS6Ynaq8yHt6XWMLABk62ETjT9fPED4I+h+FduLQ+xtFxO6uePjIw== dependencies: "@ardatan/sync-fetch" "0.0.1" - "@graphql-tools/graphql-tag-pluck" "7.3.6" - "@graphql-tools/utils" "8.12.0" - "@whatwg-node/fetch" "^0.4.0" + "@graphql-tools/graphql-tag-pluck" "7.3.8" + "@graphql-tools/utils" "8.13.1" + "@whatwg-node/fetch" "^0.5.0" tslib "^2.4.0" "@graphql-tools/graphql-file-loader@^7.3.7", "@graphql-tools/graphql-file-loader@^7.5.0": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.5.tgz#d8afb391282e3dc33005df04bdec8488e4ab101d" - integrity sha512-OL+7qO1S66TpMK7OGz8Ag2WL08HlxKxrObVSDlxzWbSubWuXM5v959XscYAKRf6daYcVpkfNvO37QjflL9mjhg== + version "7.5.7" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.7.tgz#4206c5615e76105c5eddb42d6523a291449213d6" + integrity sha512-CJrF3JHrVmoAOnHYPLWt4wgfBz2XJ6zfj5T9PhciOPOUjRjHG/IHIVFJ6MPzgGv0rFjJjbJmIo6n7FLElsg61A== dependencies: - "@graphql-tools/import" "6.7.6" - "@graphql-tools/utils" "8.12.0" + "@graphql-tools/import" "6.7.8" + "@graphql-tools/utils" "8.13.1" globby "^11.0.3" tslib "^2.4.0" unixify "^1.0.0" -"@graphql-tools/graphql-tag-pluck@7.3.6": - version "7.3.6" - resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.3.6.tgz#27029ef9e8d7f4bcf8dd8627fb93bd45cc0215fd" - integrity sha512-qULgqsOGKY1/PBqmP7fJZqbCg/TzPHKB9Wl51HGA9QjGymrzmrH5EjvsC8RtgdubF8yuTTVVFTz1lmSQ7RPssQ== +"@graphql-tools/graphql-tag-pluck@7.3.8": + version "7.3.8" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.3.8.tgz#59513a49ab16cae880059c72f1e380316e56f7a7" + integrity sha512-zxnvswC3Vatqq/4Z3A+pgaSH2iOdWL7ndjJeHxnv6gUw59/O/DtIC4JSFaDiRqdfzIzj2mrbIKgeIgYlTF2VtQ== dependencies: "@babel/parser" "^7.16.8" "@babel/traverse" "^7.16.8" "@babel/types" "^7.16.8" - "@graphql-tools/utils" "8.12.0" + "@graphql-tools/utils" "8.13.1" tslib "^2.4.0" -"@graphql-tools/import@6.7.6": - version "6.7.6" - resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.7.6.tgz#9bc0bb304a6fcc43aa2c9177631670b1fdfb2115" - integrity sha512-WtUyiO2qCaK/H4u81zAw/NbBvCOzwKl4N+Vl+FqrFCzYobscwL6x6roePyoXM1O3+JJIIn3CETv4kg4kwxaBVw== +"@graphql-tools/import@6.7.8": + version "6.7.8" + resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.7.8.tgz#7c30fd7fd44ff0bf5d0778d370096f2826efad5b" + integrity sha512-kjC/cKNRtFJj5VZOPyXkhINbFtslm5UUHhyzDoJOMCe8hzPkMtgcvpRrcBRQG9UA7TMKaOobIZhjZgR22piKBg== dependencies: - "@graphql-tools/utils" "8.12.0" + "@graphql-tools/utils" "8.13.1" resolve-from "5.0.0" tslib "^2.4.0" "@graphql-tools/json-file-loader@^7.3.7", "@graphql-tools/json-file-loader@^7.4.1": - version "7.4.6" - resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-7.4.6.tgz#d4135c3e15491eda653f58ed89efbd5e21d0b1b8" - integrity sha512-34AfjCitO4NtJ5AcXYLcFF3GDsMVTycrljSaBA2t1d7B4bMPtREDphKXLMc/Uf2zW6IW1i1sZZyrcmArPy1Z8A== + version "7.4.8" + resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-7.4.8.tgz#0af7c749a3407c442719e9c228724f29874786ee" + integrity sha512-xyo11rin7bIhdbY4NW/QoZSn+UzLn5/PX6L3htpZ4S10DvLci0BmH8oyW80TbZj84RsPUhIje2mJJ7sOc41QcQ== dependencies: - "@graphql-tools/utils" "8.12.0" + "@graphql-tools/utils" "8.13.1" globby "^11.0.3" tslib "^2.4.0" unixify "^1.0.0" -"@graphql-tools/load@^7.5.5", "@graphql-tools/load@^7.7.1": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.7.7.tgz#0d6fb0804177658f609562982a6a68e008073ca0" - integrity sha512-IpI2672zcoAX4FLjcH5kvHc7eqjPyLP1svrIcZKQenv0GRS6dW0HI9E5UCBs0y/yy8yW6s+SvpmNsfIlkMj3Kw== +"@graphql-tools/load@7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.8.0.tgz#bd4d2e2a5117de9a60f9691a218217e96afc2ea7" + integrity sha512-l4FGgqMW0VOqo+NMYizwV8Zh+KtvVqOf93uaLo9wJ3sS3y/egPCgxPMDJJ/ufQZG3oZ/0oWeKt68qop3jY0yZg== dependencies: "@graphql-tools/schema" "9.0.4" "@graphql-tools/utils" "8.12.0" p-limit "3.1.0" tslib "^2.4.0" -"@graphql-tools/merge@8.3.6", "@graphql-tools/merge@^8.2.6": +"@graphql-tools/load@^7.5.5": + version "7.8.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.8.2.tgz#b325957847b94a895ce0df5cd37fab199d215149" + integrity sha512-JVD4/UOQkpzyACEkiQpxuLciyI/nlpfq/bJgaHICSQrvBHZAbMZdZTaX5HSNdlbPpVMtI5ruNLU9NIW3T5T+zw== + dependencies: + "@graphql-tools/schema" "9.0.6" + "@graphql-tools/utils" "8.13.1" + p-limit "3.1.0" + tslib "^2.4.0" + +"@graphql-tools/merge@8.3.6": version "8.3.6" resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.6.tgz#97a936d4c8e8f935e58a514bb516c476437b5b2c" integrity sha512-uUBokxXi89bj08P+iCvQk3Vew4vcfL5ZM6NTylWi8PIpoq4r5nJ625bRuN8h2uubEdRiH8ntN9M4xkd/j7AybQ== @@ -1024,6 +1950,14 @@ "@graphql-tools/utils" "8.12.0" tslib "^2.4.0" +"@graphql-tools/merge@8.3.8", "@graphql-tools/merge@^8.2.6": + version "8.3.8" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.8.tgz#6d1232b7d0e927edec27789b78853e01233a8f29" + integrity sha512-L9YE8OpxSlzADcdrc4IG7/33H/iWVXTJXX2ie67cWAb5MFN2t3JBdQMa0bnBcAoOrKB7A8g2+dIp8oXTpdzxjg== + dependencies: + "@graphql-tools/utils" "8.13.1" + tslib "^2.4.0" + "@graphql-tools/optimize@^1.3.0": version "1.3.1" resolved "https://registry.yarnpkg.com/@graphql-tools/optimize/-/optimize-1.3.1.tgz#29407991478dbbedc3e7deb8c44f46acb4e9278b" @@ -1032,12 +1966,12 @@ tslib "^2.4.0" "@graphql-tools/prisma-loader@^7.2.7": - version "7.2.24" - resolved "https://registry.yarnpkg.com/@graphql-tools/prisma-loader/-/prisma-loader-7.2.24.tgz#46b4acf5a4b52aeff00f1f29a39ccc55f8933dd1" - integrity sha512-CRQvoraCIcQa44RMSF3EpzLedouR9SSLC6ylFEHCFf2b8r1EfbK5NOdLL1V9znOjjapI6/oJURlFWdldcAaMgg== + version "7.2.26" + resolved "https://registry.yarnpkg.com/@graphql-tools/prisma-loader/-/prisma-loader-7.2.26.tgz#4e5f2ca204259e3ca5a3038d1bde7b2ada63f5a0" + integrity sha512-zFoKUh2XFFgHkic9BmeQWjq1GHM9fSBIi8Mid6ox8w6FgZ8/fMZeqz8uzN8hX5zKzg6DD+PIfxaGFwM0N/ueHQ== dependencies: - "@graphql-tools/url-loader" "7.16.4" - "@graphql-tools/utils" "8.12.0" + "@graphql-tools/url-loader" "7.16.6" + "@graphql-tools/utils" "8.13.1" "@types/js-yaml" "^4.0.0" "@types/json-stable-stringify" "^1.0.32" "@types/jsonwebtoken" "^8.5.0" @@ -1057,15 +1991,15 @@ yaml-ast-parser "^0.0.43" "@graphql-tools/relay-operation-optimizer@^6.5.0": - version "6.5.6" - resolved "https://registry.yarnpkg.com/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.5.6.tgz#b0df15fc78fac95000f8d1b1419490822fe79f22" - integrity sha512-2KjaWYxD/NC6KtckbDEAbN46QO+74d1SBaZQ26qQjWhyoAjon12xlMW4HWxHEN0d0xuz0cnOVUVc+t4wVXePUg== + version "6.5.8" + resolved "https://registry.yarnpkg.com/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.5.8.tgz#24011bdb7414680c1ae7327374e559a54650b2de" + integrity sha512-TQAO3i9/VlW7+4Q6E2BKWdEx+BkixHcjuwJLI59Eu4GJVETNi05Vsup4y5tr0kbtQU/oTGrYsCRIe0ssQ81jMQ== dependencies: "@ardatan/relay-compiler" "12.0.0" - "@graphql-tools/utils" "8.12.0" + "@graphql-tools/utils" "8.13.1" tslib "^2.4.0" -"@graphql-tools/schema@9.0.4", "@graphql-tools/schema@^9.0.0": +"@graphql-tools/schema@9.0.4": version "9.0.4" resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.4.tgz#1a74608b57abf90fae6fd929d25e5482c57bc05d" integrity sha512-B/b8ukjs18fq+/s7p97P8L1VMrwapYc3N2KvdG/uNThSazRRn8GsBK0Nr+FH+mVKiUfb4Dno79e3SumZVoHuOQ== @@ -1075,17 +2009,27 @@ tslib "^2.4.0" value-or-promise "1.0.11" -"@graphql-tools/url-loader@7.16.4", "@graphql-tools/url-loader@^7.13.2", "@graphql-tools/url-loader@^7.16.4", "@graphql-tools/url-loader@^7.9.7": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.16.4.tgz#d27787ef9f35fe71b456c067c3a1759b1ecd76a8" - integrity sha512-7yGrJJNcqVQIplCyVLk7tW2mAgYyZ06FRmCBnzw3B61+aIjFavrm6YlnKkhdqYSYyFmIbVcigdP3vkoYIu23TA== +"@graphql-tools/schema@9.0.6", "@graphql-tools/schema@^9.0.0": + version "9.0.6" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.6.tgz#4ecd2ef2f29cf1a1a47759a91c73e2043f89e9ec" + integrity sha512-/aznltpnVrurfWqXB4chWtaNmBFSk9v/KEJSpvas2fnlwwS9QnzWh6Sm/hsybWesirn5J2w60LLjMrrcCd58UA== + dependencies: + "@graphql-tools/merge" "8.3.8" + "@graphql-tools/utils" "8.13.1" + tslib "^2.4.0" + value-or-promise "1.0.11" + +"@graphql-tools/url-loader@7.16.6", "@graphql-tools/url-loader@^7.13.2", "@graphql-tools/url-loader@^7.16.4", "@graphql-tools/url-loader@^7.9.7": + version "7.16.6" + resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.16.6.tgz#f53ab6e7351665c903541826a7996255c31f85cc" + integrity sha512-wb1x2I/QwZecmO4QXf7FhG7lifT+U5jnXa9X4s/SKMXrKsNQXrC0yjPM/INJaLicRN4pgxTTzK7jFcXMjrKb3A== dependencies: "@ardatan/sync-fetch" "0.0.1" - "@graphql-tools/delegate" "9.0.8" - "@graphql-tools/utils" "8.12.0" - "@graphql-tools/wrap" "9.2.3" + "@graphql-tools/delegate" "9.0.10" + "@graphql-tools/utils" "8.13.1" + "@graphql-tools/wrap" "9.2.5" "@types/ws" "^8.0.0" - "@whatwg-node/fetch" "^0.4.0" + "@whatwg-node/fetch" "^0.5.0" dset "^3.1.2" extract-files "^11.0.0" graphql-ws "^5.4.1" @@ -1095,37 +2039,44 @@ value-or-promise "^1.0.11" ws "^8.3.0" -"@graphql-tools/utils@8.12.0", "@graphql-tools/utils@^8.6.5", "@graphql-tools/utils@^8.8.0", "@graphql-tools/utils@^8.9.0": +"@graphql-tools/utils@8.12.0": version "8.12.0" resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.12.0.tgz#243bc4f5fc2edbc9e8fd1038189e57d837cbe31f" integrity sha512-TeO+MJWGXjUTS52qfK4R8HiPoF/R7X+qmgtOYd8DTH0l6b+5Y/tlg5aGeUJefqImRq7nvi93Ms40k/Uz4D5CWw== dependencies: tslib "^2.4.0" -"@graphql-tools/wrap@9.2.3": - version "9.2.3" - resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.2.3.tgz#70f7602aed9781fbc860cea64a918636599883be" - integrity sha512-aiLjcAuUwcvA1mF25c7KFDPXEdQDpo6bTDyAMCSlFXpF4T01hoxLERmfmbRmsmy/dP80ZB31a+t70aspVdqZSA== +"@graphql-tools/utils@8.13.1", "@graphql-tools/utils@^8.6.5", "@graphql-tools/utils@^8.8.0", "@graphql-tools/utils@^8.9.0": + version "8.13.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.13.1.tgz#b247607e400365c2cd87ff54654d4ad25a7ac491" + integrity sha512-qIh9yYpdUFmctVqovwMdheVNJqFh+DQNWIhX87FJStfXYnmweBUDATok9fWPleKeFwxnW8IapKmY8m8toJEkAw== dependencies: - "@graphql-tools/delegate" "9.0.8" - "@graphql-tools/schema" "9.0.4" - "@graphql-tools/utils" "8.12.0" + tslib "^2.4.0" + +"@graphql-tools/wrap@9.2.5": + version "9.2.5" + resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.2.5.tgz#38cd7a7d6b6766860d25cfaa63dcda2b8173b1c4" + integrity sha512-fv6v69bVnr+E22wfaz4rlyVIuhQxgsXgeSLKRcNjIByjhKA+jROdL5Zwk+VxUXSiyBudT3GktbRn7c75g7LXYg== + dependencies: + "@graphql-tools/delegate" "9.0.10" + "@graphql-tools/schema" "9.0.6" + "@graphql-tools/utils" "8.13.1" tslib "^2.4.0" value-or-promise "1.0.11" -"@graphql-typed-document-node/core@^3.1.1": +"@graphql-typed-document-node/core@3.1.1", "@graphql-typed-document-node/core@^3.1.1": version "3.1.1" resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.1.tgz#076d78ce99822258cf813ecc1e7fa460fa74d052" integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg== "@humanwhocodes/config-array@^0.11.6": - version "0.11.6" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.6.tgz#6a51d603a3aaf8d4cf45b42b3f2ac9318a4adc4b" - integrity sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg== + version "0.11.7" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.7.tgz#38aec044c6c828f6ed51d5d7ae3d9b9faf6dbb0f" + integrity sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" - minimatch "^3.0.4" + minimatch "^3.0.5" "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" @@ -1170,15 +2121,15 @@ jest-util "^29.2.1" slash "^3.0.0" -"@jest/core@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.2.1.tgz#30af794ebd73bfb87cd8ba36718738dfe38b772e" - integrity sha512-kuLKYqnqgerXkBUwlHVxeSuhSnd+JMnMCLfU98bpacBSfWEJPegytDh3P2m15/JHzet32hGGld4KR4OzMb6/Tg== +"@jest/core@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.2.2.tgz#207aa8973d9de8769f9518732bc5f781efc3ffa7" + integrity sha512-susVl8o2KYLcZhhkvSB+b7xX575CX3TmSvxfeDjpRko7KmT89rHkXj6XkDkNpSeFMBzIENw5qIchO9HC9Sem+A== dependencies: "@jest/console" "^29.2.1" - "@jest/reporters" "^29.2.1" + "@jest/reporters" "^29.2.2" "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.2.1" + "@jest/transform" "^29.2.2" "@jest/types" "^29.2.1" "@types/node" "*" ansi-escapes "^4.2.1" @@ -1187,79 +2138,79 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^29.2.0" - jest-config "^29.2.1" + jest-config "^29.2.2" jest-haste-map "^29.2.1" jest-message-util "^29.2.1" jest-regex-util "^29.2.0" - jest-resolve "^29.2.1" - jest-resolve-dependencies "^29.2.1" - jest-runner "^29.2.1" - jest-runtime "^29.2.1" - jest-snapshot "^29.2.1" + jest-resolve "^29.2.2" + jest-resolve-dependencies "^29.2.2" + jest-runner "^29.2.2" + jest-runtime "^29.2.2" + jest-snapshot "^29.2.2" jest-util "^29.2.1" - jest-validate "^29.2.1" - jest-watcher "^29.2.1" + jest-validate "^29.2.2" + jest-watcher "^29.2.2" micromatch "^4.0.4" pretty-format "^29.2.1" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.1.tgz#acb1994fbd5ad02819a1a34a923c531e6923b665" - integrity sha512-EutqA7T/X6zFjw6mAWRHND+ZkTPklmIEWCNbmwX6uCmOrFrWaLbDZjA+gePHJx6fFMMRvNfjXcvzXEtz54KPlg== +"@jest/environment@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.2.tgz#481e729048d42e87d04842c38aa4d09c507f53b0" + integrity sha512-OWn+Vhu0I1yxuGBJEFFekMYc8aGBGrY4rt47SOh/IFaI+D7ZHCk7pKRiSoZ2/Ml7b0Ony3ydmEHRx/tEOC7H1A== dependencies: - "@jest/fake-timers" "^29.2.1" + "@jest/fake-timers" "^29.2.2" "@jest/types" "^29.2.1" "@types/node" "*" - jest-mock "^29.2.1" + jest-mock "^29.2.2" -"@jest/expect-utils@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.1.tgz#eae61c90f2066540f60d23b8f254f03b7869b22f" - integrity sha512-yr4aHNg5Z1CjKby5ozm7sKjgBlCOorlAoFcvrOQ/4rbZRfgZQdnmh7cth192PYIgiPZo2bBXvqdOApnAMWFJZg== +"@jest/expect-utils@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.2.tgz#460a5b5a3caf84d4feb2668677393dd66ff98665" + integrity sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg== dependencies: jest-get-type "^29.2.0" -"@jest/expect@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.2.1.tgz#8d99be3886ebfcffd6cabb2b46602a301b976ffe" - integrity sha512-o14R2t2tHHHudwji43UKkzmmH49xfF5T++FQBK2tl88qwuBWQOcx7fNUYl+mA/9TPNAN0FkQ3usnpyS8FUwsvQ== +"@jest/expect@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.2.2.tgz#81edbd33afbde7795ca07ff6b4753d15205032e4" + integrity sha512-zwblIZnrIVt8z/SiEeJ7Q9wKKuB+/GS4yZe9zw7gMqfGf4C5hBLGrVyxu1SzDbVSqyMSlprKl3WL1r80cBNkgg== dependencies: - expect "^29.2.1" - jest-snapshot "^29.2.1" + expect "^29.2.2" + jest-snapshot "^29.2.2" -"@jest/fake-timers@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.1.tgz#786d60e8cb60ca70c9f913cb49fcc77610c072bb" - integrity sha512-KWil+8fef7Uj/P/PTZlPKk1Pw117wAmr71VWFV8ZDtRtkwmTG8oY4IRf0Ss44J2y5CYRy8d/zLOhxyoGRENjvA== +"@jest/fake-timers@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.2.tgz#d8332e6e3cfa99cde4bc87d04a17d6b699deb340" + integrity sha512-nqaW3y2aSyZDl7zQ7t1XogsxeavNpH6kkdq+EpXncIDvAkjvFD7hmhcIs1nWloengEWUoWqkqSA6MSbf9w6DgA== dependencies: "@jest/types" "^29.2.1" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" jest-message-util "^29.2.1" - jest-mock "^29.2.1" + jest-mock "^29.2.2" jest-util "^29.2.1" -"@jest/globals@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.2.1.tgz#6933beb8b4e43b990409a19c462fde7b71210e63" - integrity sha512-Z4EejYPP1OPVq2abk1+9urAwJqkgw5jB2UJGlPjb5ZwzPQF8WLMcigKEfFzZb2OHhEVPP0RZD0/DbVTY1R6iQA== +"@jest/globals@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.2.2.tgz#205ff1e795aa774301c2c0ba0be182558471b845" + integrity sha512-/nt+5YMh65kYcfBhj38B3Hm0Trk4IsuMXNDGKE/swp36yydBWfz3OXkLqkSvoAtPW8IJMSJDFCbTM2oj5SNprw== dependencies: - "@jest/environment" "^29.2.1" - "@jest/expect" "^29.2.1" + "@jest/environment" "^29.2.2" + "@jest/expect" "^29.2.2" "@jest/types" "^29.2.1" - jest-mock "^29.2.1" + jest-mock "^29.2.2" -"@jest/reporters@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.2.1.tgz#599e4376823751fdda50f2ca97243e013da10c4d" - integrity sha512-sCsfUKM/yIF4nNed3e/rIgVIS58EiASGMDEPWqItfLZ9UO1ALW2ASDNJzdWkxEt0T8o2Ztj619G0KKrvK+McAw== +"@jest/reporters@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.2.2.tgz#69b395f79c3a97ce969ce05ccf1a482e5d6de290" + integrity sha512-AzjL2rl2zJC0njIzcooBvjA4sJjvdoq98sDuuNs4aNugtLPSQ+91nysGKRF0uY1to5k0MdGMdOBggUsPqvBcpA== dependencies: "@bcoe/v8-coverage" "^0.2.3" "@jest/console" "^29.2.1" "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.2.1" + "@jest/transform" "^29.2.2" "@jest/types" "^29.2.1" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" @@ -1307,20 +2258,20 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.2.1.tgz#cafd2c5f3528c70bd4cc243800459ac366e480cc" - integrity sha512-O/pnk0/xGj3lxPVNwB6HREJ7AYvUdyP2xo/s14/9Dtf091HoOeyIhWLKQE/4HzB8lNQBMo6J5mg0bHz/uCWK7w== +"@jest/test-sequencer@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.2.2.tgz#4ac7487b237e517a1f55e7866fb5553f6e0168b9" + integrity sha512-Cuc1znc1pl4v9REgmmLf0jBd3Y65UXJpioGYtMr/JNpQEIGEzkmHhy6W6DLbSsXeUA13TDzymPv0ZGZ9jH3eIw== dependencies: "@jest/test-result" "^29.2.1" graceful-fs "^4.2.9" jest-haste-map "^29.2.1" slash "^3.0.0" -"@jest/transform@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.1.tgz#f3d8154edd19cdbcaf1d6646bd8f4ff7812318a2" - integrity sha512-xup+iEuaIRSQabQaeqxaQyN0vg1Dctrp9oTObQsNf3sZEowTIa5cANYuoyi8Tqhg4GCqEVLTf18KW7ii0UeFVA== +"@jest/transform@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.2.tgz#dfc03fc092b31ffea0c55917728e75bfcf8b5de6" + integrity sha512-aPe6rrletyuEIt2axxgdtxljmzH8O/nrov4byy6pDw9S8inIrTV+2PnjyP/oFHMSynzGxJ2s6OHowBNMXp/Jzg== dependencies: "@babel/core" "^7.11.6" "@jest/types" "^29.2.1" @@ -1521,9 +2472,9 @@ tsm "^2.1.4" "@sinclair/typebox@^0.24.1": - version "0.24.48" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.48.tgz#bd558c6059df563d49a4d94df8e8e0510b662e3f" - integrity sha512-WPGpRNHbkOsfBDmh8QHU7a5NWzEuYNThST8x1cISvX0RpP+1+V8zjuJqNwGJkHGIlhdIIhv6qVYqXz2q5/gjAA== + version "0.24.51" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" + integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== "@sinonjs/commons@^1.7.0": version "1.8.3" @@ -1609,59 +2560,59 @@ "@solid-primitives/utils" "^3.1.0" "@solid-primitives/event-bus@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@solid-primitives/event-bus/-/event-bus-0.1.3.tgz#33f7fdf5421ded84f8d586ac79bbbcb8ed97451c" - integrity sha512-1jhUnDvFk2Pj5RqMp/hpSKXza7rMf4pR453w5N+I4x7zFnQB8Ay5M+drmCnUbJiL2r34viWkHIqTQ7t2B3C1nQ== + version "0.1.4" + resolved "https://registry.yarnpkg.com/@solid-primitives/event-bus/-/event-bus-0.1.4.tgz#1f3186e8d51386c433d94c006daecc04a5c49f5b" + integrity sha512-fpj5/b/x5EZGmey7iUm6d/oc52ff8HbTr7yO/+WJUheMSCyY6dQz7INth7ovx57a3SDKTqZJGY3wRZijdBVFdg== dependencies: - "@solid-primitives/immutable" "^0.1.3" - "@solid-primitives/utils" "^3.1.0" + "@solid-primitives/immutable" "^0.1.4" + "@solid-primitives/utils" "^4.0.0" -"@solid-primitives/event-listener@^2.2.3": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@solid-primitives/event-listener/-/event-listener-2.2.3.tgz#09b8a65f6eeda3b5aef7cce79420a4630bf53f5f" - integrity sha512-mJnC6haPJu6zpeClRbua/bpYtMYyNJvUFCwxQBYOPNSlurb0bNj2PuXjFhWpgJuxStI8tCLRJYX+InjiEk1kOw== +"@solid-primitives/event-listener@^2.2.3", "@solid-primitives/event-listener@^2.2.4": + version "2.2.4" + resolved "https://registry.yarnpkg.com/@solid-primitives/event-listener/-/event-listener-2.2.4.tgz#2f571b992359abd01cdfae4efaa0bad204680162" + integrity sha512-O/ppM0SpXWtNC7AHv1bQA9Dy6pj3NUM06MhSV9xwVv4N06PmlNYhGLDSPT1Esesm6b0fDgCXB5V+AgCSEzQd/w== dependencies: - "@solid-primitives/utils" "^3.1.0" + "@solid-primitives/utils" "^4.0.0" -"@solid-primitives/immutable@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@solid-primitives/immutable/-/immutable-0.1.3.tgz#a1a39a2772d67d48ff4dc75445e1fe0df0079abf" - integrity sha512-T82Dy/i9QmK4/iSfbEo0bgdbW9PSOTnS0V2Y5G9L9uW/4TfpQmo67gWptcJTJsTbLn1QgTy3RPBTWwn8j4qIRw== +"@solid-primitives/immutable@^0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@solid-primitives/immutable/-/immutable-0.1.4.tgz#8876331fc31be3e7250700174d714cc9ee59bd95" + integrity sha512-9oLK8ihIjG5FZv74KoXXyKErxgGxGZsdevsIKB0ugTreBBmozHPcYTjoYFL/sHoqs2ZNMlmfNQ3kduvrvKG2RQ== dependencies: - "@solid-primitives/utils" "^3.1.0" + "@solid-primitives/utils" "^4.0.0" "@solid-primitives/intersection-observer@^2.0.1": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@solid-primitives/intersection-observer/-/intersection-observer-2.0.2.tgz#443f2706b90d3ea8f3eb7e3ec2f90d74d0eb8283" - integrity sha512-DILk6ZFuPlKTRnmNpjIcew5urMuJl5N96uzCL6BY3bZWsJfGD5YB8g43x6CEbV19TD017QoJWgopP0Bbw5ViMg== + version "2.0.3" + resolved "https://registry.yarnpkg.com/@solid-primitives/intersection-observer/-/intersection-observer-2.0.3.tgz#9fe146710c40346689c761ff81c43775fa196286" + integrity sha512-ROB++Xvidc0/4wmd++MSgDcul06FP7QuH/iqurfqQX34+JuM0WRDT4PMquTDpZyGbYVF71YY8JLInO6kv8GTbw== dependencies: - "@solid-primitives/utils" "^3.1.0" + "@solid-primitives/utils" "^4.0.0" "@solid-primitives/keyboard@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@solid-primitives/keyboard/-/keyboard-1.0.3.tgz#2d1fab7c30e531ea14cbc04a6eaa28fca7079343" - integrity sha512-PjbcEDqCqjm+zGgj+PHdgG0U4yFQQkDpIoQ7PdHnWc3RQrKAGPhm7wNJvo0uZQBfYMwwFozEc/slne4PUPRPZg== + version "1.0.4" + resolved "https://registry.yarnpkg.com/@solid-primitives/keyboard/-/keyboard-1.0.4.tgz#a56394f7b4540b4921a2880168f2ec0cc6c63ab9" + integrity sha512-V2aNnmyLJrFie1BrvzO3HUjE80pisgGwZ7K5h8S5suYEkJRGb5Q2Jbh9YJrrz1Qj1dunEDajGFxD6gDHVloVEg== dependencies: - "@solid-primitives/event-listener" "^2.2.3" - "@solid-primitives/rootless" "^1.2.0" - "@solid-primitives/utils" "^3.1.0" + "@solid-primitives/event-listener" "^2.2.4" + "@solid-primitives/rootless" "^1.2.1" + "@solid-primitives/utils" "^4.0.0" "@solid-primitives/media@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@solid-primitives/media/-/media-2.0.3.tgz#9cfac6b71736c264900f444233ebbf8b4e5c37c7" - integrity sha512-VtHzRBjxiH/fhiKWcnr5tA5FMeLBcd5CIaNPoo5ZXiSCa5vUuwuKB5GU5u+gwv/+NKLNATMil422KfGpmBbJ0g== + version "2.0.4" + resolved "https://registry.yarnpkg.com/@solid-primitives/media/-/media-2.0.4.tgz#1c29d7d7525ea88b22203edb13197d50ac513b67" + integrity sha512-MZkdUlV3qJQts4b7ZfAldbFGB1neH64rwHsnTmIeF2Zj8gWjYcYtJ36SwkRs3NjHQ53uQliZ+DtMXiCeapNw/g== dependencies: - "@solid-primitives/event-listener" "^2.2.3" - "@solid-primitives/rootless" "^1.2.0" - "@solid-primitives/utils" "^3.1.0" + "@solid-primitives/event-listener" "^2.2.4" + "@solid-primitives/rootless" "^1.2.1" + "@solid-primitives/utils" "^4.0.0" "@solid-primitives/memo@^1.0.2": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@solid-primitives/memo/-/memo-1.1.0.tgz#97db271c5318483c7daf81a9de533c1dddef0d6e" - integrity sha512-D1OU27g4rzIljwZr6EZmSbK1JkihvWZ1zDIjEXIlT/DbCZSRzRQ9hCVPPlBa6xUE72MuuO1pJQDMsKrFb0rULQ== + version "1.1.2" + resolved "https://registry.yarnpkg.com/@solid-primitives/memo/-/memo-1.1.2.tgz#7f0134e3c8d887d2c44524574e36dc2876e8626f" + integrity sha512-TPhVWJa6urfB6KbFFDRH21X32biqz8kkVl0AnjY6CtjqVgsL1twF+rgvxO8X6tGI9L96IJUtKOyFqn5kJtBdrw== dependencies: "@solid-primitives/scheduled" "^1.1.0" - "@solid-primitives/utils" "^3.1.0" + "@solid-primitives/utils" "^4.0.0" "@solid-primitives/platform@^0.0.102": version "0.0.102" @@ -1669,25 +2620,25 @@ integrity sha512-1eZA1/HYOhmlZ9LrrGot+LUi/ypO2NXqfB+9F1WY98dGNDMz9pG9k+X7kg2YDJTUHDGbzY7WrsBRyAE8LurE7Q== "@solid-primitives/resize-observer@^2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@solid-primitives/resize-observer/-/resize-observer-2.0.5.tgz#73c3a2efaaa55f217712e814b3405f2c96583231" - integrity sha512-4twMKKSYd2WZ7LWXnSkEafgK4n0qDHCjolSX4ifupXtSV4XV0ZJWiEUpX3szf8sHFiR4+uVOWJwL0RlM930pwQ== + version "2.0.6" + resolved "https://registry.yarnpkg.com/@solid-primitives/resize-observer/-/resize-observer-2.0.6.tgz#2086c92d3a5f82512ecbc47fceff02eac272bd2c" + integrity sha512-PbYmBFJBx1/WcrTZepcr6fABOrUP6CeXxehy2AKPCJInX3LKQ/elHLsM1g6KwVbvqpZ0aQ3a/3I7sRYk6BSrpw== dependencies: - "@solid-primitives/event-listener" "^2.2.3" - "@solid-primitives/rootless" "^1.2.0" - "@solid-primitives/utils" "^3.1.0" + "@solid-primitives/event-listener" "^2.2.4" + "@solid-primitives/rootless" "^1.2.1" + "@solid-primitives/utils" "^4.0.0" -"@solid-primitives/rootless@^1.1.3", "@solid-primitives/rootless@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@solid-primitives/rootless/-/rootless-1.2.0.tgz#6f31d4b8b285a123e6b1217eb7e0ad24ada9dbe5" - integrity sha512-Kf/7/YqmToN40qb6oUgZnHjNBhK/eNVAUGCBnTIZ0XmbML9UpR+9ZmI1S3Eg1OmVZVfEyG3E/jFMnfxVdtQlPg== +"@solid-primitives/rootless@^1.1.3", "@solid-primitives/rootless@^1.2.0", "@solid-primitives/rootless@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@solid-primitives/rootless/-/rootless-1.2.1.tgz#17d3a7428ebc3d2c7fbf2ec96093edad3b7ad217" + integrity sha512-8RpdyS1e58PQbDjgjpyCh+IGoX3QEs/2LauMfl94eXJ5d/o1y/c6P61z9XqQm+Bx1Otdgx4nbFCoF7HPqa0mwg== dependencies: - "@solid-primitives/utils" "^3.1.0" + "@solid-primitives/utils" "^4.0.0" "@solid-primitives/scheduled@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@solid-primitives/scheduled/-/scheduled-1.1.0.tgz#6fea42d6e6c25f92046b21c1eae13ebb3aff0650" - integrity sha512-2A2dAiXe+lN0/KRUbIPXEcLoONRJXJmmvVda+y+qiSTbYmcoU2TtNlC04uhQBQJs8Yq2ElJuQhmFladcGLtE9g== + version "1.2.0" + resolved "https://registry.yarnpkg.com/@solid-primitives/scheduled/-/scheduled-1.2.0.tgz#c3e57ecdf9c214a4cfe830b8e7289d4b6144098a" + integrity sha512-59QbtGACZD8RIkD0jNQVUHRBF6uW7dKzDVFYSgogRdfxRO9kgXc6aGkLrCjd4k4g3kYe+XiBLcvYKyut4F7BHg== "@solid-primitives/script-loader@^1.1.1": version "1.1.2" @@ -1706,6 +2657,11 @@ resolved "https://registry.yarnpkg.com/@solid-primitives/utils/-/utils-3.1.0.tgz#52edf36dabe62eba94f8356c3b9b788234d088a8" integrity sha512-/rerChcwgFtHEgVCCBY7BXGHh7a83HcIAzR8QhXJ789geIVbBs2YxHF4UUZlG7ec00NKSfvO3+sQquN/xKQLMw== +"@solid-primitives/utils@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@solid-primitives/utils/-/utils-4.0.0.tgz#3c592287519dc885290d134f8aff3f0f6f4b4720" + integrity sha512-fGsJy8Z8YiwogpiezD7TWjI62UCb0JAHJWdoXWGrggrn4bfToZotKkabiB0IVFMkWVE1ZcrkvZT3bkmqGnK0ng== + "@tootallnate/once@2": version "2.0.0" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" @@ -1794,9 +2750,9 @@ "@types/ms" "*" "@types/eslint@^8.4.2": - version "8.4.7" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.7.tgz#0f05a2677d1a394ff70c21a964a32d3efa05f966" - integrity sha512-ehM7cCt2RSFs42mb+lcmhFT9ouIlV92PuaeRGn8N8c98oMjG4Z5pJHA9b1QiCcuqnbPSHcyfiD3mlhqMaHsQIw== + version "8.4.9" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.9.tgz#f7371980148697f4b582b086630319b55324b5aa" + integrity sha512-jFCSo4wJzlHQLCpceUhUnXdrPuCNOjGFMQ8Eg6JXxlz3QaCKOb7eGi2cephQdM4XTYsNej69P9JDJ1zqNIbncQ== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -1944,9 +2900,9 @@ "@types/unist" "*" "@types/node@*", "@types/node@^18.7.19": - version "18.11.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.3.tgz#78a6d7ec962b596fc2d2ec102c4dd3ef073fea6a" - integrity sha512-fNjDQzzOsZeKZu5NATgXUPsaFaTxeRgFXoosrHivTl8RGeV733OLawXsGfEk9a8/tySyZUyiZ6E8LcjPFZ2y1A== + version "18.11.8" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.8.tgz#16d222a58d4363a2a359656dd20b28414de5d265" + integrity sha512-uGwPWlE0Hj972KkHtCDVwZ8O39GmyjfMane1Z3GUBGGnkZ2USDq7SxLpVIiIHpweY9DS0QTDH0Nw7RNBsAAZ5A== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -1984,9 +2940,9 @@ integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== "@types/semver@^7.3.12": - version "7.3.12" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.12.tgz#920447fdd78d76b19de0438b7f60df3c4a80bf1c" - integrity sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A== + version "7.3.13" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" + integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== "@types/serve-static@*": version "1.15.0" @@ -2031,13 +2987,13 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^5.29.0": - version "5.40.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.40.1.tgz#3203a6ff396b1194083faaa6e5110c401201d7d5" - integrity sha512-FsWboKkWdytGiXT5O1/R9j37YgcjO8MKHSUmWnIEjVaz0krHkplPnYi7mwdb+5+cs0toFNQb0HIrN7zONdIEWg== + version "5.41.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.41.0.tgz#f8eeb1c6bb2549f795f3ba71aec3b38d1ab6b1e1" + integrity sha512-DXUS22Y57/LAFSg3x7Vi6RNAuLpTXwxB9S2nIA7msBb/Zt8p7XqMwdpdc1IU7CkOQUPgAqR5fWvxuKCbneKGmA== dependencies: - "@typescript-eslint/scope-manager" "5.40.1" - "@typescript-eslint/type-utils" "5.40.1" - "@typescript-eslint/utils" "5.40.1" + "@typescript-eslint/scope-manager" "5.41.0" + "@typescript-eslint/type-utils" "5.41.0" + "@typescript-eslint/utils" "5.41.0" debug "^4.3.4" ignore "^5.2.0" regexpp "^3.2.0" @@ -2045,77 +3001,77 @@ tsutils "^3.21.0" "@typescript-eslint/parser@^5.10.0", "@typescript-eslint/parser@^5.35.1": - version "5.40.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.40.1.tgz#e7f8295dd8154d0d37d661ddd8e2f0ecfdee28dd" - integrity sha512-IK6x55va5w4YvXd4b3VrXQPldV9vQTxi5ov+g4pMANsXPTXOcfjx08CRR1Dfrcc51syPtXHF5bgLlMHYFrvQtg== + version "5.41.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.41.0.tgz#0414a6405007e463dc527b459af1f19430382d67" + integrity sha512-HQVfix4+RL5YRWZboMD1pUfFN8MpRH4laziWkkAzyO1fvNOY/uinZcvo3QiFJVS/siNHupV8E5+xSwQZrl6PZA== dependencies: - "@typescript-eslint/scope-manager" "5.40.1" - "@typescript-eslint/types" "5.40.1" - "@typescript-eslint/typescript-estree" "5.40.1" + "@typescript-eslint/scope-manager" "5.41.0" + "@typescript-eslint/types" "5.41.0" + "@typescript-eslint/typescript-estree" "5.41.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.40.1": - version "5.40.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.40.1.tgz#a7a5197dfd234622a2421ea590ee0ccc02e18dfe" - integrity sha512-jkn4xsJiUQucI16OLCXrLRXDZ3afKhOIqXs4R3O+M00hdQLKR58WuyXPZZjhKLFCEP2g+TXdBRtLQ33UfAdRUg== +"@typescript-eslint/scope-manager@5.41.0": + version "5.41.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.41.0.tgz#28e3a41d626288d0628be14cf9de8d49fc30fadf" + integrity sha512-xOxPJCnuktUkY2xoEZBKXO5DBCugFzjrVndKdUnyQr3+9aDWZReKq9MhaoVnbL+maVwWJu/N0SEtrtEUNb62QQ== dependencies: - "@typescript-eslint/types" "5.40.1" - "@typescript-eslint/visitor-keys" "5.40.1" + "@typescript-eslint/types" "5.41.0" + "@typescript-eslint/visitor-keys" "5.41.0" -"@typescript-eslint/type-utils@5.40.1": - version "5.40.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.40.1.tgz#091e4ce3bebbdb68f4980bae9dee2e4e1725f601" - integrity sha512-DLAs+AHQOe6n5LRraXiv27IYPhleF0ldEmx6yBqBgBLaNRKTkffhV1RPsjoJBhVup2zHxfaRtan8/YRBgYhU9Q== +"@typescript-eslint/type-utils@5.41.0": + version "5.41.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.41.0.tgz#2371601171e9f26a4e6da918a7913f7266890cdf" + integrity sha512-L30HNvIG6A1Q0R58e4hu4h+fZqaO909UcnnPbwKiN6Rc3BUEx6ez2wgN7aC0cBfcAjZfwkzE+E2PQQ9nEuoqfA== dependencies: - "@typescript-eslint/typescript-estree" "5.40.1" - "@typescript-eslint/utils" "5.40.1" + "@typescript-eslint/typescript-estree" "5.41.0" + "@typescript-eslint/utils" "5.41.0" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.40.1", "@typescript-eslint/types@^5.25.0": - version "5.40.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.40.1.tgz#de37f4f64de731ee454bb2085d71030aa832f749" - integrity sha512-Icg9kiuVJSwdzSQvtdGspOlWNjVDnF3qVIKXdJ103o36yRprdl3Ge5cABQx+csx960nuMF21v8qvO31v9t3OHw== +"@typescript-eslint/types@5.41.0", "@typescript-eslint/types@^5.25.0": + version "5.41.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.41.0.tgz#6800abebc4e6abaf24cdf220fb4ce28f4ab09a85" + integrity sha512-5BejraMXMC+2UjefDvrH0Fo/eLwZRV6859SXRg+FgbhA0R0l6lDqDGAQYhKbXhPN2ofk2kY5sgGyLNL907UXpA== -"@typescript-eslint/typescript-estree@5.40.1": - version "5.40.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.40.1.tgz#9a7d25492f02c69882ce5e0cd1857b0c55645d72" - integrity sha512-5QTP/nW5+60jBcEPfXy/EZL01qrl9GZtbgDZtDPlfW5zj/zjNrdI2B5zMUHmOsfvOr2cWqwVdWjobCiHcedmQA== +"@typescript-eslint/typescript-estree@5.41.0": + version "5.41.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.41.0.tgz#bf5c6b3138adbdc73ba4871d060ae12c59366c61" + integrity sha512-SlzFYRwFSvswzDSQ/zPkIWcHv8O5y42YUskko9c4ki+fV6HATsTODUPbRbcGDFYP86gaJL5xohUEytvyNNcXWg== dependencies: - "@typescript-eslint/types" "5.40.1" - "@typescript-eslint/visitor-keys" "5.40.1" + "@typescript-eslint/types" "5.41.0" + "@typescript-eslint/visitor-keys" "5.41.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.40.1", "@typescript-eslint/utils@^5.10.0", "@typescript-eslint/utils@^5.30.7": - version "5.40.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.40.1.tgz#3204fb73a559d3b7bab7dc9d3c44487c2734a9ca" - integrity sha512-a2TAVScoX9fjryNrW6BZRnreDUszxqm9eQ9Esv8n5nXApMW0zeANUYlwh/DED04SC/ifuBvXgZpIK5xeJHQ3aw== +"@typescript-eslint/utils@5.41.0", "@typescript-eslint/utils@^5.10.0", "@typescript-eslint/utils@^5.30.7": + version "5.41.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.41.0.tgz#f41ae5883994a249d00b2ce69f4188f3a23fa0f9" + integrity sha512-QlvfwaN9jaMga9EBazQ+5DDx/4sAdqDkcs05AsQHMaopluVCUyu1bTRUVKzXbgjDlrRAQrYVoi/sXJ9fmG+KLQ== dependencies: "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.40.1" - "@typescript-eslint/types" "5.40.1" - "@typescript-eslint/typescript-estree" "5.40.1" + "@typescript-eslint/scope-manager" "5.41.0" + "@typescript-eslint/types" "5.41.0" + "@typescript-eslint/typescript-estree" "5.41.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.40.1": - version "5.40.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.40.1.tgz#f3d2bf5af192f4432b84cec6fdcb387193518754" - integrity sha512-A2DGmeZ+FMja0geX5rww+DpvILpwo1OsiQs0M+joPWJYsiEFBLsH0y1oFymPNul6Z5okSmHpP4ivkc2N0Cgfkw== +"@typescript-eslint/visitor-keys@5.41.0": + version "5.41.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.41.0.tgz#d3510712bc07d5540160ed3c0f8f213b73e3bcd9" + integrity sha512-vilqeHj267v8uzzakbm13HkPMl7cbYpKVjgFWZPIOHIJHZtinvypUhJ5xBXfWYg4eFKqztbMMpOgFpT9Gfx4fw== dependencies: - "@typescript-eslint/types" "5.40.1" + "@typescript-eslint/types" "5.41.0" eslint-visitor-keys "^3.3.0" -"@urql/core@>=3.0.0", "@urql/core@>=3.0.4", "@urql/core@^3.0.1": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@urql/core/-/core-3.0.4.tgz#6eee0908f98c6f3d677e3abbe6f04e9fdbc0a498" - integrity sha512-7c12WLHKjmxcxM8nrVdtaYHQnS0WXSfYCf5lg28eRL2ySbo2rOPINLblblDo8UwGTeyrNzjSRVd0I0NlTN6XTA== +"@urql/core@>=3.0.0", "@urql/core@>=3.0.5", "@urql/core@^3.0.1": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@urql/core/-/core-3.0.5.tgz#a26c326dd788d6d6abb839493bce86147f5a45c9" + integrity sha512-6/1HG+WEAcPs+hXSFnxWBTWkNUwa8dj2cHysWokMaFIbAioGtUaSdxp2q9FDMtWAIGdc640NFSt2B8itGLdoAA== dependencies: "@graphql-typed-document-node/core" "^3.1.1" wonka "^6.0.0" @@ -2136,11 +3092,11 @@ wonka "^6.0.0" "@urql/exchange-graphcache@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@urql/exchange-graphcache/-/exchange-graphcache-5.0.2.tgz#b30ec3a40f2c87d5d730a7a9eaa2997422eb1e4e" - integrity sha512-sTqoYewIB/aiSpJoMAjzJDGTO3xnvl3NeWI9fzqg6qFRp9df2uf3W7hy6oS4NKqOK7CZfo+Ct0coawoF/RK5Kg== + version "5.0.4" + resolved "https://registry.yarnpkg.com/@urql/exchange-graphcache/-/exchange-graphcache-5.0.4.tgz#8be25f2bc90f8ed145cbc1f219c98a44990bacf0" + integrity sha512-h8wuyss+02SNIfQYt0MjRsKrBJ09N64J75fwMyZKThr+DGdWQVbpmJmEV9+GbzIwSK8oWZH8rs3jlvt7LWWPZA== dependencies: - "@urql/core" ">=3.0.4" + "@urql/core" ">=3.0.5" wonka "^6.0.0" "@urql/introspection@^0.3.2": @@ -2192,10 +3148,10 @@ undici "^5.8.0" web-streams-polyfill "^3.2.0" -"@whatwg-node/fetch@^0.4.0": - version "0.4.7" - resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.4.7.tgz#4cbcda3ba93d5ae15ab823aae5869eae4a0cb14b" - integrity sha512-+oKDMGtmUJ7H37VDL5U2Vdk+ZxsIypZxO2q6y42ytu6W3PL6OIIUYZGliNqQgWtCdtxOZ9WPQvbIAuiLpnLlUw== +"@whatwg-node/fetch@^0.5.0": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.5.1.tgz#62c7e902ddfb7d16b0b31599d81628bbd22350a9" + integrity sha512-RBZS60EU6CbRJ370BVVKW4F9csZuGh0OQNrUDhJ0IaIFLsXsJorFCM2iwaDWZTAPMqxW1TmuVcVKJ3d/H1dV1g== dependencies: "@peculiar/webcrypto" "^1.4.0" abort-controller "^3.0.0" @@ -2203,7 +3159,7 @@ form-data-encoder "^1.7.1" formdata-node "^4.3.1" node-fetch "^2.6.7" - undici "^5.10.0" + undici "^5.12.0" web-streams-polyfill "^3.2.0" abbrev@1: @@ -2229,9 +3185,9 @@ acorn-walk@^8.1.1: integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== acorn@^8.4.1, acorn@^8.6.0, acorn@^8.7.1, acorn@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" - integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== + version "8.8.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" + integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== agent-base@6: version "6.0.2" @@ -2444,28 +3400,29 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== -astro-eslint-parser@^0.7.0, astro-eslint-parser@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/astro-eslint-parser/-/astro-eslint-parser-0.7.3.tgz#2f402a411697fec8d0bf9db5291874ffd33fbf25" - integrity sha512-zH6nouHaR3xKXdh35M0zH2hijhsD6uUCJkLZhUnyWvAeQdJEsoySYYA4PdLe5TlyDT1yas93uJaTt2yik8eAvw== +astro-eslint-parser@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/astro-eslint-parser/-/astro-eslint-parser-0.9.0.tgz#bc330d9618cca263e1912252025deb577e223c3d" + integrity sha512-IJCIVQ9ON9MWc9SbIHnX6ljqmlNBC6nimsga486duI+tLXPX1ZG4mOWnqwvvh77Xpg1CVkRACrPvYRiaTsOCtg== dependencies: - "@astrojs/compiler" "^0.27.0 || ^0.28.0" + "@astrojs/compiler" "^0.27.0 || ^0.28.0 || ^0.29.0" "@typescript-eslint/types" "^5.25.0" astrojs-compiler-sync "^0.3.0" debug "^4.3.4" + eslint-scope "^7.1.1" eslint-visitor-keys "^3.0.0" espree "^9.0.0" -astro@^1.4.6: - version "1.5.2" - resolved "https://registry.yarnpkg.com/astro/-/astro-1.5.2.tgz#c4c66855b184e4b5191f988eb67dd2dffb3ac6ad" - integrity sha512-ZzPwZYo4GgwNBiOA7xumpkbKNVT/k/ZEvEkAL2lj3NAZHnU801wk9qLlugu8ECoLT4k1j9B/SSmhLr+AhLTazw== +astro@^1.1.1: + version "1.6.2" + resolved "https://registry.yarnpkg.com/astro/-/astro-1.6.2.tgz#85b03201ba6a1cd1476ac4f7849dc450692e4e76" + integrity sha512-UHbzQ3Q7iU2a0XBY6Dzh/Hksoa7svmkWZ3ABRGgSOT765GXIGZkErgeNAsjsBW7RsTUKVLqVxD2LK3NzZL5EKA== dependencies: - "@astrojs/compiler" "^0.27.1" + "@astrojs/compiler" "^0.29.5" "@astrojs/language-server" "^0.26.2" "@astrojs/markdown-remark" "^1.1.3" "@astrojs/telemetry" "^1.0.1" - "@astrojs/webapi" "^1.1.0" + "@astrojs/webapi" "^1.1.1" "@babel/core" "^7.18.2" "@babel/generator" "^7.18.2" "@babel/parser" "^7.18.4" @@ -2507,7 +3464,7 @@ astro@^1.4.6: recast "^0.20.5" rehype "^12.0.1" resolve "^1.22.0" - rollup "~2.78.0" + rollup "^2.79.1" semver "^7.3.7" shiki "^0.11.1" sirv "^2.0.2" @@ -2519,7 +3476,8 @@ astro@^1.4.6: typescript "*" unist-util-visit "^4.1.0" vfile "^5.3.2" - vite "~3.1.3" + vite "~3.2.1" + vitefu "^0.1.0" yargs-parser "^21.0.1" zod "^3.17.3" @@ -2545,31 +3503,10 @@ auto-bind@~4.0.0: resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-4.0.0.tgz#e3589fc6c2da8f7ca43ba9f84fa52a744fc997fb" integrity sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ== -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -aws-sdk@^2.0.0: - version "2.1238.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1238.0.tgz#4d67f7c9f2a3d293b94b6f78a15651e8fd886778" - integrity sha512-DCXAj98lFW0y2Ickm0MbXnxzbG5IDrhBXs6Wx+vscrYNFRjy7JGau9HACY8aFoesMQz8PzNmJKR82Dg2NsGvDg== - dependencies: - buffer "4.9.2" - events "1.1.1" - ieee754 "1.1.13" - jmespath "0.16.0" - querystring "0.2.0" - sax "1.2.1" - url "0.10.3" - util "^0.12.4" - uuid "8.0.0" - xml2js "0.4.19" - axe-core@^4.4.3: - version "4.4.3" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.3.tgz#11c74d23d5013c0fa5d183796729bc3482bd2f6f" - integrity sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w== + version "4.5.0" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.5.0.tgz#6efe2ecdba205fcc9d7ddb3d48c2cf630f70eb5e" + integrity sha512-4+rr8eQ7+XXS5nZrKcMO/AikHL0hVqy+lHWAnE3xdHl+aguag8SOQ6eEqLexwLNWgXIMfunGuD3ON1/6Kyet0A== axios@^0.27.2: version "0.27.2" @@ -2584,12 +3521,12 @@ axobject-query@^2.2.0: resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== -babel-jest@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.1.tgz#213c47e28072de11bdb98c9d29b89f2ab99664f1" - integrity sha512-gQJwArok0mqoREiCYhXKWOgUhElJj9DpnssW6GL8dG7ARYqHEhrM9fmPHTjdqEGRVXZAd6+imo3/Vwa8TjLcsw== +babel-jest@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.2.tgz#2c15abd8c2081293c9c3f4f80a4ed1d51542fee5" + integrity sha512-kkq2QSDIuvpgfoac3WZ1OOcHsQQDU5xYk2Ql7tLdJ8BVAYbefEXal+NfS45Y5LVZA7cxC8KYcQMObpCt1J025w== dependencies: - "@jest/transform" "^29.2.1" + "@jest/transform" "^29.2.2" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.2.0" @@ -2618,10 +3555,10 @@ babel-plugin-jest-hoist@^29.2.0: "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" -babel-plugin-jsx-dom-expressions@^0.35.0: - version "0.35.1" - resolved "https://registry.yarnpkg.com/babel-plugin-jsx-dom-expressions/-/babel-plugin-jsx-dom-expressions-0.35.1.tgz#a06ffaf7e0c77396c5b3571bbdf20f6fbd6e102d" - integrity sha512-OnSFhoYE+tfuhiNCBtC4ZZvc/4kuEaJzhVnH/FfNVkCIGCPr+lG8PLeeFejkW8GSY88Ryt9T75TFABNb7y405g== +babel-plugin-jsx-dom-expressions@^0.35.2: + version "0.35.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jsx-dom-expressions/-/babel-plugin-jsx-dom-expressions-0.35.2.tgz#5c9daea0dc6605ce41abdf74ae0df1703eacb217" + integrity sha512-ES+K+P6n4vjV9FGvCfJtOlJuAntpez+IoD0kzLZPjIfBoOU8IhE6hVYXdP458mJlvHlXiFsLQfvoTTYgPzPOJw== dependencies: "@babel/helper-module-imports" "7.16.0" "@babel/plugin-syntax-jsx" "^7.16.5" @@ -2693,11 +3630,11 @@ babel-preset-jest@^29.2.0: babel-preset-current-node-syntax "^1.0.0" babel-preset-solid@^1.4.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/babel-preset-solid/-/babel-preset-solid-1.6.0.tgz#5f5b550b9983ef1cd073d4b6d9a229048d1e63d2" - integrity sha512-Unv2mU+H+AQ0PiGMlwywqAJqmDRZy8kfRkTDnTup3SYIp1UFkP5KcHg76O/2+wZ7mEgY071BsgeVcV1Cw96Fvg== + version "1.6.1" + resolved "https://registry.yarnpkg.com/babel-preset-solid/-/babel-preset-solid-1.6.1.tgz#4e8f87c048bcea51962d647fb86740810a2a486d" + integrity sha512-Ji/cvYUE2BROsA3zOhaqKjuAEo6YAkmw8ZE11QsMtSEcWJ1rCFC829qWb5FLPl3UymVxh68+dpScPDtyyr/rdA== dependencies: - babel-plugin-jsx-dom-expressions "^0.35.0" + babel-plugin-jsx-dom-expressions "^0.35.2" bail@^2.0.0: version "2.0.2" @@ -2835,15 +3772,6 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer@4.9.2: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" @@ -2913,9 +3841,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001400: - version "1.0.30001423" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001423.tgz#57176d460aa8cd85ee1a72016b961eb9aca55d91" - integrity sha512-09iwWGOlifvE1XuHokFMP7eR38a0JnajoyL3/i87c8ZjRWRrdKo1fqjNfugfBD0UDBIOz0U+jtNhJ0EPm1VleQ== + version "1.0.30001427" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001427.tgz#d3a749f74be7ae0671fbec3a4eea18576e8ad646" + integrity sha512-lfXQ73oB9c8DP5Suxaszm+Ta2sr/4tf8+381GkIm1MLj/YdLf+rEDyDSRCzeltuyTVGm+/s18gdZ0q+Wmp8VsQ== capital-case@^1.0.4: version "1.0.4" @@ -3259,9 +4187,9 @@ cookie@^0.5.0: integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== core-js-pure@^3.25.1: - version "3.25.5" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.25.5.tgz#79716ba54240c6aa9ceba6eee08cf79471ba184d" - integrity sha512-oml3M22pHM+igfWHDfdLVq2ShWmjM2V4L+dQEBs0DWVIqEm9WHCwGAlZ6BmyBQGy5sFrJmcx+856D9lVKyGWYg== + version "3.26.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.26.0.tgz#7ad8a5dd7d910756f3124374b50026e23265ca9a" + integrity sha512-LiN6fylpVBVwT8twhhluD9TzXmZQQsr2I2eIKtWNbZI1XMfBT7CV18itaN6RA7EtQd/SDdRx/wzvAShX2HvhQA== cosmiconfig-toml-loader@1.0.0: version "1.0.0" @@ -3270,11 +4198,16 @@ cosmiconfig-toml-loader@1.0.0: dependencies: "@iarna/toml" "^2.2.5" -cosmiconfig-typescript-loader@4.1.1, cosmiconfig-typescript-loader@^4.0.0: +cosmiconfig-typescript-loader@4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.1.1.tgz#38dd3578344038dae40fdf09792bc2e9df529f78" integrity sha512-9DHpa379Gp0o0Zefii35fcmuuin6q92FnLDffzdZ0l9tVd3nEobG3O+MZ06+kuBvFTSVScvNb/oHA13Nd4iipg== +cosmiconfig-typescript-loader@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.2.0.tgz#a3cfd0dd9dac86be7dbe5f53eb46ad03abdf417b" + integrity sha512-NkANeMnaHrlaSSlpKGyvn2R4rqUDeE/9E5YHx+b4nwo0R8dZyAqcih8/gxpCZvqWP9Vf6xuLpMSzSgdVEIM78g== + cosmiconfig@7.0.1, cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" @@ -3374,9 +4307,9 @@ debug@^3.2.7: ms "^2.1.1" decamelize-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - integrity sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg== + version "1.1.1" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" + integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== dependencies: decamelize "^1.1.0" map-obj "^1.0.0" @@ -3571,10 +4504,10 @@ electron-to-chromium@^1.4.251: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== -emittery@^0.10.2: - version "0.10.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" - integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== +emittery@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" + integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== emmet@^2.3.0: version "2.3.6" @@ -4003,13 +4936,13 @@ eslint-module-utils@^2.7.3: dependencies: debug "^3.2.7" -eslint-plugin-astro@^0.20.0: - version "0.20.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-astro/-/eslint-plugin-astro-0.20.0.tgz#aa0ddd8651ce2a0eb3a65f71ade4e8e47e39e939" - integrity sha512-+g6Nn8HyQVkMPaLMd7qzh7j+8v/eescRbAM/tbdYeKdrP8S5Yc4SlQSGj3Wh9/RV9Sn8sHk+wnj+KjCArbReRw== +eslint-plugin-astro@^0.21.0: + version "0.21.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-astro/-/eslint-plugin-astro-0.21.0.tgz#94dbd54e47cdf1afe008b2bf52888411ebcdda10" + integrity sha512-7pEhTfYT+tlOMOSmQV77TNgCeuFZgqSAqJPTHh6LYlwLqYyBQLURc5RRtlQqCJkufSh4Fan4nsV3LXCT/vjpCA== dependencies: "@typescript-eslint/types" "^5.25.0" - astro-eslint-parser "^0.7.0" + astro-eslint-parser "^0.9.0" eslint-utils "^3.0.0" postcss "^8.4.14" postcss-selector-parser "^6.0.10" @@ -4100,9 +5033,9 @@ eslint-plugin-regexp@^1.9.0: scslre "^0.1.6" eslint-plugin-solid@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-solid/-/eslint-plugin-solid-0.7.3.tgz#6bb1926de4e3e7d6028cbc31874dfae0511adb24" - integrity sha512-5Wtr+3AboB6Gzi64iyHXqEjrAONQLrsph7hftyiq+goDTUAZ9GN8HPHw+dqZV4XVPGxkDWpnSKKr+KE9VQok5g== + version "0.7.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-solid/-/eslint-plugin-solid-0.7.4.tgz#095dd7ea536873a4e3e9789d20f673fdab515c8b" + integrity sha512-AqGl5gyTA2qpF3VnzHcXgZuCjYp7a1Rmukcg+OIPA4fX7TkmsYZDcclh5jw9JwPsc4IcU8T9RYkJW5pQ52Gzcg== dependencies: "@typescript-eslint/utils" "^5.30.7" is-html "^2.0.0" @@ -4181,7 +5114,7 @@ eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.1.0, eslint-visitor-keys@^3.3 resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^8.22.0, eslint@^8.7.0: +eslint@^8.26.0, eslint@^8.7.0: version "8.26.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.26.0.tgz#2bcc8836e6c424c4ac26a5674a70d44d84f2181d" integrity sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg== @@ -4347,14 +5280,14 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.1.tgz#25752d0df92d3daa5188dc8804de1f30759658cf" - integrity sha512-BJtA754Fba0YWRWHgjKUMTA3ltWarKgITXHQnbZ2mTxTXC4yMQlR0FI7HkB3fJYkhWBf4qjNiqvg3LDtXCcVRQ== +expect@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.2.tgz#ba2dd0d7e818727710324a6e7f13dd0e6d086106" + integrity sha512-hE09QerxZ5wXiOhqkXy5d2G9ar+EqOyifnCXCpMNu+vZ6DG9TJ6CO2c2kPDSLqERTTWrO7OZj8EkYHQqSd78Yw== dependencies: - "@jest/expect-utils" "^29.2.1" + "@jest/expect-utils" "^29.2.2" jest-get-type "^29.2.0" - jest-matcher-utils "^29.2.1" + jest-matcher-utils "^29.2.2" jest-message-util "^29.2.1" jest-util "^29.2.1" @@ -4685,9 +5618,9 @@ git-hooks-list@^3.0.0: integrity sha512-XDfdemBGJIMAsHHOONHQxEH5dX2kCpE6MGZ1IsNvBuDPBZM3p4EAwAC7ygMjn/1/x+BJX0TK1ara1Zrh7JCFdQ== github-slugger@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.4.0.tgz#206eb96cdb22ee56fdc53a28d5a302338463444e" - integrity sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ== + version "1.5.0" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.5.0.tgz#17891bbc73232051474d68bd867a34625c955f7d" + integrity sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw== glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" @@ -5262,9 +6195,9 @@ inline-style-parser@0.1.1: integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== inquirer@^8.0.0: - version "8.2.4" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.4.tgz#ddbfe86ca2f67649a67daa6f1051c128f684f0b4" - integrity sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg== + version "8.2.5" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.5.tgz#d8654a7542c35a9b9e069d27e2df4858784d54f8" + integrity sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ== dependencies: ansi-escapes "^4.2.1" chalk "^4.1.1" @@ -5605,11 +6538,6 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" -isarray@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -5683,13 +6611,13 @@ jest-changed-files@^29.2.0: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.2.1.tgz#1385353d9bca6acf58f916068bbeffcfc95bef02" - integrity sha512-W+ZQQ5ln4Db2UZNM4NJIeasnhCdDhSuYW4eLgNAUi0XiSSpF634Kc5wiPvGiHvTgXMFVn1ZgWIijqhi9+kLNLg== +jest-circus@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.2.2.tgz#1dc4d35fd49bf5e64d3cc505fb2db396237a6dfa" + integrity sha512-upSdWxx+Mh4DV7oueuZndJ1NVdgtTsqM4YgywHEx05UMH5nxxA2Qu9T9T9XVuR021XxqSoaKvSmmpAbjwwwxMw== dependencies: - "@jest/environment" "^29.2.1" - "@jest/expect" "^29.2.1" + "@jest/environment" "^29.2.2" + "@jest/expect" "^29.2.2" "@jest/test-result" "^29.2.1" "@jest/types" "^29.2.1" "@types/node" "*" @@ -5698,56 +6626,56 @@ jest-circus@^29.2.1: dedent "^0.7.0" is-generator-fn "^2.0.0" jest-each "^29.2.1" - jest-matcher-utils "^29.2.1" + jest-matcher-utils "^29.2.2" jest-message-util "^29.2.1" - jest-runtime "^29.2.1" - jest-snapshot "^29.2.1" + jest-runtime "^29.2.2" + jest-snapshot "^29.2.2" jest-util "^29.2.1" p-limit "^3.1.0" pretty-format "^29.2.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.2.1.tgz#fbfa90b87b27a04e1041cc9d33ee80f32e2f2528" - integrity sha512-UIMD5aNqvPKpdlJSaeUAoLfxsh9TZvOkaMETx5qXnkboc317bcbb0eLHbIj8sFBHdcJAIAM+IRKnIU7Wi61MBw== +jest-cli@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.2.2.tgz#feaf0aa57d327e80d4f2f18d5f8cd2e77cac5371" + integrity sha512-R45ygnnb2CQOfd8rTPFR+/fls0d+1zXS6JPYTBBrnLPrhr58SSuPTiA5Tplv8/PXpz4zXR/AYNxmwIj6J6nrvg== dependencies: - "@jest/core" "^29.2.1" + "@jest/core" "^29.2.2" "@jest/test-result" "^29.2.1" "@jest/types" "^29.2.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.2.1" + jest-config "^29.2.2" jest-util "^29.2.1" - jest-validate "^29.2.1" + jest-validate "^29.2.2" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.2.1.tgz#2182af014d6c73978208626335db5134803dd183" - integrity sha512-EV5F1tQYW/quZV2br2o88hnYEeRzG53Dfi6rSG3TZBuzGQ6luhQBux/RLlU5QrJjCdq3LXxRRM8F1LP6DN1ycA== +jest-config@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.2.2.tgz#bf98623a46454d644630c1f0de8bba3f495c2d59" + integrity sha512-Q0JX54a5g1lP63keRfKR8EuC7n7wwny2HoTRDb8cx78IwQOiaYUVZAdjViY3WcTxpR02rPUpvNVmZ1fkIlZPcw== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.2.1" + "@jest/test-sequencer" "^29.2.2" "@jest/types" "^29.2.1" - babel-jest "^29.2.1" + babel-jest "^29.2.2" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.2.1" - jest-environment-node "^29.2.1" + jest-circus "^29.2.2" + jest-environment-node "^29.2.2" jest-get-type "^29.2.0" jest-regex-util "^29.2.0" - jest-resolve "^29.2.1" - jest-runner "^29.2.1" + jest-resolve "^29.2.2" + jest-runner "^29.2.2" jest-util "^29.2.1" - jest-validate "^29.2.1" + jest-validate "^29.2.2" micromatch "^4.0.4" parse-json "^5.2.0" pretty-format "^29.2.1" @@ -5782,16 +6710,16 @@ jest-each@^29.2.1: jest-util "^29.2.1" pretty-format "^29.2.1" -jest-environment-node@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.2.1.tgz#f90311d0f0e8ef720349f83c97a076e403f90665" - integrity sha512-PulFKwEMz6nTAdLUwglFKei3b/LixwlRiqTN6nvPE1JtrLtlnpd6LXnFI1NFHYJGlTmIWilMP2n9jEtPPKX50g== +jest-environment-node@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.2.2.tgz#a64b272773870c3a947cd338c25fd34938390bc2" + integrity sha512-B7qDxQjkIakQf+YyrqV5dICNs7tlCO55WJ4OMSXsqz1lpI/0PmeuXdx2F7eU8rnPbRkUR/fItSSUh0jvE2y/tw== dependencies: - "@jest/environment" "^29.2.1" - "@jest/fake-timers" "^29.2.1" + "@jest/environment" "^29.2.2" + "@jest/fake-timers" "^29.2.2" "@jest/types" "^29.2.1" "@types/node" "*" - jest-mock "^29.2.1" + jest-mock "^29.2.2" jest-util "^29.2.1" jest-get-type@^29.2.0: @@ -5826,10 +6754,10 @@ jest-leak-detector@^29.2.1: jest-get-type "^29.2.0" pretty-format "^29.2.1" -jest-matcher-utils@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.1.tgz#2bf876c5f891b33786aadf5d65d5da5970744122" - integrity sha512-hUTBh7H/Mnb6GTpihbLh8uF5rjAMdekfW/oZNXUMAXi7bbmym2HiRpzgqf/zzkjgejMrVAkPdVSQj+32enlUww== +jest-matcher-utils@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.2.tgz#9202f8e8d3a54733266784ce7763e9a08688269c" + integrity sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw== dependencies: chalk "^4.0.0" jest-diff "^29.2.1" @@ -5851,10 +6779,10 @@ jest-message-util@^29.2.1: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.1.tgz#a0d361cffcb28184fa9c5443adbf591fa5759775" - integrity sha512-NDphaY/GqyQpTfnTZiTqqpMaw4Z0I7XnB7yBgrT6IwYrLGxpOhrejYr4ANY4YvO2sEGdd8Tx/6D0+WLQy7/qDA== +jest-mock@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.2.tgz#9045618b3f9d27074bbcf2d55bdca6a5e2e8bca7" + integrity sha512-1leySQxNAnivvbcx0sCB37itu8f4OX2S/+gxLAV4Z62shT4r4dTG9tACDywUAEZoLSr36aYUTsVp3WKwWt4PMQ== dependencies: "@jest/types" "^29.2.1" "@types/node" "*" @@ -5870,67 +6798,67 @@ jest-regex-util@^29.2.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== -jest-resolve-dependencies@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.2.1.tgz#8d717dd41dc615fef1d412d395ea3deccfb1b9fa" - integrity sha512-o3mUGX2j08usj1jIAIE8KmUVpqVAn54k80kI27ldbZf2oJn6eghhB6DvJxjrcH40va9CQgWTfU5f2Ag/MoUqgQ== +jest-resolve-dependencies@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.2.2.tgz#1f444766f37a25f1490b5137408b6ff746a05d64" + integrity sha512-wWOmgbkbIC2NmFsq8Lb+3EkHuW5oZfctffTGvwsA4JcJ1IRk8b2tg+hz44f0lngvRTeHvp3Kyix9ACgudHH9aQ== dependencies: jest-regex-util "^29.2.0" - jest-snapshot "^29.2.1" + jest-snapshot "^29.2.2" -jest-resolve@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.2.1.tgz#a4d2f76db88aeb6ec5f5453c9a40b52483d17799" - integrity sha512-1dJTW76Z9622Viq4yRcwBuEXuzGtE9B2kdl05RC8Om/lAzac9uEgC+M8Q5osVidbuBPmxm8wSrcItYhca2ZAtQ== +jest-resolve@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.2.2.tgz#ad6436053b0638b41e12bbddde2b66e1397b35b5" + integrity sha512-3gaLpiC3kr14rJR3w7vWh0CBX2QAhfpfiQTwrFPvVrcHe5VUBtIXaR004aWE/X9B2CFrITOQAp5gxLONGrk6GA== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" jest-haste-map "^29.2.1" jest-pnp-resolver "^1.2.2" jest-util "^29.2.1" - jest-validate "^29.2.1" + jest-validate "^29.2.2" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.2.1.tgz#885afe64661cb2f51f84c1b97afb713d1093c124" - integrity sha512-PojFI+uVhQ4u4YZKCN/a3yU0/l/pJJXhq1sW3JpCp8CyvGBYGddRFPKZ1WihApusxqWRTHjBJmGyPWv6Av2lWA== +jest-runner@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.2.2.tgz#6b5302ed15eba8bf05e6b14d40f1e8d469564da3" + integrity sha512-1CpUxXDrbsfy9Hr9/1zCUUhT813kGGK//58HeIw/t8fa/DmkecEwZSWlb1N/xDKXg3uCFHQp1GCvlSClfImMxg== dependencies: "@jest/console" "^29.2.1" - "@jest/environment" "^29.2.1" + "@jest/environment" "^29.2.2" "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.2.1" + "@jest/transform" "^29.2.2" "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" - emittery "^0.10.2" + emittery "^0.13.1" graceful-fs "^4.2.9" jest-docblock "^29.2.0" - jest-environment-node "^29.2.1" + jest-environment-node "^29.2.2" jest-haste-map "^29.2.1" jest-leak-detector "^29.2.1" jest-message-util "^29.2.1" - jest-resolve "^29.2.1" - jest-runtime "^29.2.1" + jest-resolve "^29.2.2" + jest-runtime "^29.2.2" jest-util "^29.2.1" - jest-watcher "^29.2.1" + jest-watcher "^29.2.2" jest-worker "^29.2.1" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.2.1.tgz#62e3a23c33710ae4d9c3304dda851a5fb225b574" - integrity sha512-PSQ880OoIW9y8E6/jjhGn3eQNgNc6ndMzCZaKqy357bv7FqCfSyYepu3yDC6Sp1Vkt+GhP2M/PVgldS2uZSFZg== +jest-runtime@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.2.2.tgz#4068ee82423769a481460efd21d45a8efaa5c179" + integrity sha512-TpR1V6zRdLynckKDIQaY41od4o0xWL+KOPUCZvJK2bu5P1UXhjobt5nJ2ICNeIxgyj9NGkO0aWgDqYPVhDNKjA== dependencies: - "@jest/environment" "^29.2.1" - "@jest/fake-timers" "^29.2.1" - "@jest/globals" "^29.2.1" + "@jest/environment" "^29.2.2" + "@jest/fake-timers" "^29.2.2" + "@jest/globals" "^29.2.2" "@jest/source-map" "^29.2.0" "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.2.1" + "@jest/transform" "^29.2.2" "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" @@ -5940,18 +6868,18 @@ jest-runtime@^29.2.1: graceful-fs "^4.2.9" jest-haste-map "^29.2.1" jest-message-util "^29.2.1" - jest-mock "^29.2.1" + jest-mock "^29.2.2" jest-regex-util "^29.2.0" - jest-resolve "^29.2.1" - jest-snapshot "^29.2.1" + jest-resolve "^29.2.2" + jest-snapshot "^29.2.2" jest-util "^29.2.1" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.2.1.tgz#f3843b3099c8fec7e6218dea18cc506f10ea5d30" - integrity sha512-KZdLD7iEz5M4ZYd+ezZ/kk73z+DtNbk/yJ4Qx7408Vb0CCuclJIZPa/HmIwSsCfIlOBNcYTKufr7x/Yv47oYlg== +jest-snapshot@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.2.2.tgz#1016ce60297b77382386bad561107174604690c2" + integrity sha512-GfKJrpZ5SMqhli3NJ+mOspDqtZfJBryGA8RIBxF+G+WbDoC7HCqKaeAss4Z/Sab6bAW11ffasx8/vGsj83jyjA== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -5959,19 +6887,19 @@ jest-snapshot@^29.2.1: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.2.1" - "@jest/transform" "^29.2.1" + "@jest/expect-utils" "^29.2.2" + "@jest/transform" "^29.2.2" "@jest/types" "^29.2.1" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.2.1" + expect "^29.2.2" graceful-fs "^4.2.9" jest-diff "^29.2.1" jest-get-type "^29.2.0" jest-haste-map "^29.2.1" - jest-matcher-utils "^29.2.1" + jest-matcher-utils "^29.2.2" jest-message-util "^29.2.1" jest-util "^29.2.1" natural-compare "^1.4.0" @@ -5990,10 +6918,10 @@ jest-util@^29.2.1: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.2.1.tgz#db814ce12c4c7e4746044922762e56eb177d066c" - integrity sha512-DZVX5msG6J6DL5vUUw+++6LEkXUsPwB5R7fsfM7BXdz2Ipr0Ib046ak+8egrwAR++pvSM/5laxLK977ieIGxkQ== +jest-validate@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.2.2.tgz#e43ce1931292dfc052562a11bc681af3805eadce" + integrity sha512-eJXATaKaSnOuxNfs8CLHgdABFgUrd0TtWS8QckiJ4L/QVDF4KVbZFBBOwCBZHOS0Rc5fOxqngXeGXE3nGQkpQA== dependencies: "@jest/types" "^29.2.1" camelcase "^6.2.0" @@ -6002,17 +6930,17 @@ jest-validate@^29.2.1: leven "^3.1.0" pretty-format "^29.2.1" -jest-watcher@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.2.1.tgz#1cb91f8aa9e77b1332af139944ad65e51430d7c3" - integrity sha512-7jFaHUaRq50l4w/f6RuY713bvI5XskMmjWCE54NGYcY74fLkShS8LucXJke1QfGnwDSCoIqGnGGGKPwdaBYz2Q== +jest-watcher@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.2.2.tgz#7093d4ea8177e0a0da87681a9e7b09a258b9daf7" + integrity sha512-j2otfqh7mOvMgN2WlJ0n7gIx9XCMWntheYGlBK7+5g3b1Su13/UAK7pdKGyd4kDlrLwtH2QPvRv5oNIxWvsJ1w== dependencies: "@jest/test-result" "^29.2.1" "@jest/types" "^29.2.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - emittery "^0.10.2" + emittery "^0.13.1" jest-util "^29.2.1" string-length "^4.0.1" @@ -6027,19 +6955,14 @@ jest-worker@^29.2.1: supports-color "^8.0.0" jest@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.2.1.tgz#352ec0b81a0e436691d546d984cd7d8f72ffd26a" - integrity sha512-K0N+7rx+fv3Us3KhuwRSJt55MMpZPs9Q3WSO/spRZSnsalX8yEYOTQ1PiSN7OvqzoRX4JEUXCbOJRlP4n8m5LA== + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.2.2.tgz#24da83cbbce514718acd698926b7679109630476" + integrity sha512-r+0zCN9kUqoON6IjDdjbrsWobXM/09Nd45kIPRD8kloaRh1z5ZCMdVsgLXGxmlL7UpAJsvCYOQNO+NjvG/gqiQ== dependencies: - "@jest/core" "^29.2.1" + "@jest/core" "^29.2.2" "@jest/types" "^29.2.1" import-local "^3.0.2" - jest-cli "^29.2.1" - -jmespath@0.16.0: - version "0.16.0" - resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.16.0.tgz#b15b0a85dfd4d930d43e69ed605943c802785076" - integrity sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw== + jest-cli "^29.2.2" js-sdsl@^4.1.4: version "4.1.5" @@ -6424,7 +7347,12 @@ loglevel-colored-level-prefix@^1.0.0: chalk "^1.1.3" loglevel "^1.4.1" -loglevel@^1.4.1: +loglevel-plugin-prefix@^0.8.4: + version "0.8.4" + resolved "https://registry.yarnpkg.com/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz#2fe0e05f1a820317d98d8c123e634c1bd84ff644" + integrity sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g== + +loglevel@^1.4.1, loglevel@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.0.tgz#e7ec73a57e1e7b419cb6c6ac06bf050b67356114" integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA== @@ -6470,9 +7398,9 @@ magic-string@^0.25.9: sourcemap-codec "^1.4.8" mailgun.js@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/mailgun.js/-/mailgun.js-8.0.1.tgz#918fb7bf72474ef16f47f10659a2588534252af3" - integrity sha512-YeyugcYx01j96RmbrMFPbv0EQmDXtSlEeQTCYdmyewSBI2/Z+F3NulLLlkTGDIvf9+sCyD0MVxBBszPNSesbug== + version "8.0.2" + resolved "https://registry.yarnpkg.com/mailgun.js/-/mailgun.js-8.0.2.tgz#a917b38c162da590f90c9f06945b3bcfa79cab49" + integrity sha512-s0esDPrHlo72rLylEj61akLO49HvUltmjKIj/lrbY89kWcL/lcPy23yh4ifFkWTuiBO6oHVqXwzfQI3lhSvK9A== dependencies: axios "^0.27.2" base-64 "^1.0.0" @@ -7119,7 +8047,7 @@ minimatch@4.2.1: dependencies: brace-expansion "^1.1.7" -minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -7762,7 +8690,7 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.3.11, postcss@^8.4.14, postcss@^8.4.16, postcss@^8.4.17: +postcss@^8.3.11, postcss@^8.4.14, postcss@^8.4.16, postcss@^8.4.17, postcss@^8.4.18: version "8.4.18" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.18.tgz#6d50046ea7d3d66a85e0e782074e7203bc7fbca2" integrity sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA== @@ -7878,9 +8806,9 @@ prosemirror-commands@^1.0.0, prosemirror-commands@^1.3.1: prosemirror-transform "^1.0.0" prosemirror-dropcursor@^1.0.0, prosemirror-dropcursor@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.6.0.tgz#35b891224f79319755cadbec0e075bba8e95a0a3" - integrity sha512-2vj5tYDXADpd6Acg5iuZV2/3dEBy9s3tRUju6lQPOlKYSvJd7Tsz9c4uLS+L9ZCJndyW0EBrT+PadarHa1G30Q== + version "1.6.1" + resolved "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.6.1.tgz#31f696172105f232bd17543ccf305e0f33e59d1d" + integrity sha512-LtyqQpkIknaT7NnZl3vDr3TpkNcG4ABvGRXx37XJ8tJNUGtcrZBh40A0344rDwlRTfUEmynQS/grUsoSWz+HgA== dependencies: prosemirror-state "^1.0.0" prosemirror-transform "^1.1.0" @@ -7937,9 +8865,9 @@ prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.2.0: w3c-keyname "^2.2.0" prosemirror-markdown@^1.9.4: - version "1.10.0" - resolved "https://registry.yarnpkg.com/prosemirror-markdown/-/prosemirror-markdown-1.10.0.tgz#90218d2160aa2f1c52838ece42c121aaa94421eb" - integrity sha512-gm2tDHpZM3BOghe4Fnfnt/CIWR7Y7wTjyD9UaiBK/4amqtwaUtK9H2zLDlBUalfYPF+I2f+yP6togX7GYxlhuA== + version "1.10.1" + resolved "https://registry.yarnpkg.com/prosemirror-markdown/-/prosemirror-markdown-1.10.1.tgz#e20468201cda1916a6182686159398b242bb78ab" + integrity sha512-s7iaTLiX+qO5z8kF2NcMmy2T7mIlxzkS4Sp3vTKSYChPtbMpg6YxFkU0Y06rUg2WtKlvBu7v1bXzlGBkfjUWAA== dependencies: markdown-it "^13.0.1" prosemirror-model "^1.0.0" @@ -8002,11 +8930,6 @@ prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.27.0, pros prosemirror-state "^1.0.0" prosemirror-transform "^1.1.0" -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== - punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" @@ -8111,7 +9034,7 @@ refa@^0.9.0: dependencies: regexpp "^3.2.0" -regenerator-runtime@^0.13.4: +regenerator-runtime@^0.13.10: version "0.13.10" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz#ed07b19616bcbec5da6274ebc75ae95634bfc2ee" integrity sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw== @@ -8402,14 +9325,7 @@ rollup-pluginutils@^2.8.2: dependencies: estree-walker "^0.6.1" -rollup@~2.78.0: - version "2.78.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.78.1.tgz#52fe3934d9c83cb4f7c4cb5fb75d88591be8648f" - integrity sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg== - optionalDependencies: - fsevents "~2.3.2" - -rollup@~2.79.1: +rollup@^2.79.1, rollup@~2.79.1: version "2.79.1" resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== @@ -8710,9 +9626,9 @@ solid-js-form@^0.1.5: yup "^0.32.9" solid-js@^1.1.2, solid-js@^1.5.7, solid-js@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/solid-js/-/solid-js-1.6.0.tgz#52fe81e553e42fc6873ebd12093eb8fdc5d22571" - integrity sha512-db5s65ErgZnBhapPx77qauzul8akHlMCvirS+Y86U4abMa3uizMVNW9ql3UxbO0yMzMGNpFJwUiOlXmJCbwVpA== + version "1.6.1" + resolved "https://registry.yarnpkg.com/solid-js/-/solid-js-1.6.1.tgz#1b6cd94151a859d9c186a1a3a61e99234a567c77" + integrity sha512-i8OmR419Hr0918Or6sm1ET/cgmxTtAB7Bdz/UwhZ7G2THixrvVSO3jd+C7YqMKKfVwmf8PJ2gUSbKE8NKv28GA== dependencies: csstype "^3.1.0" @@ -8976,6 +9892,11 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +strnum@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" + integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== + style-search@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" @@ -9007,34 +9928,34 @@ stylelint-config-prettier@>=9.0.3: resolved "https://registry.yarnpkg.com/stylelint-config-prettier/-/stylelint-config-prettier-9.0.3.tgz#0dccebeff359dcc393c9229184408b08964d561c" integrity sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg== -stylelint-config-recommended-scss@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-7.0.0.tgz#db16b6ae6055e72e3398916c0f13d6eb685902a2" - integrity sha512-rGz1J4rMAyJkvoJW4hZasuQBB7y9KIrShb20l9DVEKKZSEi1HAy0vuNlR8HyCKy/jveb/BdaQFcoiYnmx4HoiA== +stylelint-config-recommended-scss@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-8.0.0.tgz#1c1e93e619fe2275d4c1067928d92e0614f7d64f" + integrity sha512-BxjxEzRaZoQb7Iinc3p92GS6zRdRAkIuEu2ZFLTxJK2e1AIcCb5B5MXY9KOXdGTnYFZ+KKx6R4Fv9zU6CtMYPQ== dependencies: postcss-scss "^4.0.2" - stylelint-config-recommended "^8.0.0" + stylelint-config-recommended "^9.0.0" stylelint-scss "^4.0.0" -stylelint-config-recommended@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-8.0.0.tgz#7736be9984246177f017c39ec7b1cd0f19ae9117" - integrity sha512-IK6dWvE000+xBv9jbnHOnBq01gt6HGVB2ZTsot+QsMpe82doDQ9hvplxfv4YnpEuUwVGGd9y6nbaAnhrjcxhZQ== +stylelint-config-recommended@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-9.0.0.tgz#1c9e07536a8cd875405f8ecef7314916d94e7e40" + integrity sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ== -stylelint-config-standard-scss@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/stylelint-config-standard-scss/-/stylelint-config-standard-scss-5.0.0.tgz#afc5e43c73e7a15875b8f30f54204b01a2634743" - integrity sha512-zoXLibojHZYPFjtkc4STZtAJ2yGTq3Bb4MYO0oiyO6f/vNxDKRcSDZYoqN260Gv2eD5niQIr1/kr5SXlFj9kcQ== +stylelint-config-standard-scss@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-standard-scss/-/stylelint-config-standard-scss-6.0.0.tgz#9d451fdfd6caf1d914510a236457ec27e6675deb" + integrity sha512-aAWcQgiqsXg6Jyhq/Q/HPbVB7PHf4v/wdyFSDun/qlL/SPxtEcVeGMvJLzRVRaNf3tp3D93QP6N9QKwJa1L0Kw== dependencies: - stylelint-config-recommended-scss "^7.0.0" - stylelint-config-standard "^26.0.0" + stylelint-config-recommended-scss "^8.0.0" + stylelint-config-standard "^29.0.0" -stylelint-config-standard@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-26.0.0.tgz#4701b8d582d34120eec7d260ba779e4c2d953635" - integrity sha512-hUuB7LaaqM8abvkOO84wh5oYSkpXgTzHu2Zza6e7mY+aOmpNTjoFBRxSLlzY0uAOMWEFx0OMKzr+reG1BUtcqQ== +stylelint-config-standard@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-29.0.0.tgz#4cc0e0f05512a39bb8b8e97853247d3a95d66fa2" + integrity sha512-uy8tZLbfq6ZrXy4JKu3W+7lYLgRQBxYTUUB88vPgQ+ZzAxdrvcaSUW9hOMNLYBnwH+9Kkj19M2DHdZ4gKwI7tg== dependencies: - stylelint-config-recommended "^8.0.0" + stylelint-config-recommended "^9.0.0" stylelint-order@^5.0.0: version "5.0.0" @@ -9456,10 +10377,10 @@ unc-path-regex@^0.1.2: resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== -undici@^5.10.0, undici@^5.8.0: - version "5.11.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.11.0.tgz#1db25f285821828fc09d3804b9e2e934ae86fc13" - integrity sha512-oWjWJHzFet0Ow4YZBkyiJwiK5vWqEYoH7BINzJAJOLedZ++JpAlCbUktW2GQ2DS2FpKmxD/JMtWUUWl1BtghGw== +undici@^5.10.0, undici@^5.12.0, undici@^5.8.0: + version "5.12.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.12.0.tgz#c758ffa704fbcd40d506e4948860ccaf4099f531" + integrity sha512-zMLamCG62PGjd9HHMpo05bSLvvwWOZgGeiWlN/vlqu3+lRo3elxktVGEyLMX+IO7c2eflLjcW74AlkhEZm15mg== dependencies: busboy "^1.6.0" @@ -9609,14 +10530,6 @@ url-join@^4.0.1: resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== -url@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" - integrity sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ== - dependencies: - punycode "1.3.2" - querystring "0.2.0" - util-deprecate@^1.0.1, util-deprecate@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -9711,18 +10624,25 @@ vfile@^5.0.0, vfile@^5.3.2: unist-util-stringify-position "^3.0.0" vfile-message "^3.0.0" -vite@^3.1.3, vite@~3.1.3: - version "3.1.8" - resolved "https://registry.yarnpkg.com/vite/-/vite-3.1.8.tgz#fa29144167d19b773baffd65b3972ea4c12359c9" - integrity sha512-m7jJe3nufUbuOfotkntGFupinL/fmuTNuQmiVE7cH2IZMuf4UbfbGYMUT3jVWgGYuRVLY9j8NnrRqgw5rr5QTg== +vite@^3.1.3, vite@~3.2.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/vite/-/vite-3.2.2.tgz#280762bfaf47bcea1d12698427331c0009ac7c1f" + integrity sha512-pLrhatFFOWO9kS19bQ658CnRYzv0WLbsPih6R+iFeEEhDOuYgYCX2rztUViMz/uy/V8cLCJvLFeiOK7RJEzHcw== dependencies: esbuild "^0.15.9" - postcss "^8.4.16" + postcss "^8.4.18" resolve "^1.22.1" - rollup "~2.78.0" + rollup "^2.79.1" optionalDependencies: fsevents "~2.3.2" +vitefu@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/vitefu/-/vitefu-0.1.0.tgz#999558f400567d92cdcf70afc5e1833f9f1b9386" + integrity sha512-5MQSHP9yr0HIve8q4XNb7QXfO1P4tzZDZP99qH0FM5ClcwYddeGXRDQ4TQYRUeXLjZ+vLecirHtGNpwFFUF7sw== + dependencies: + import-meta-resolve "^2.1.0" + vscode-css-languageservice@^6.0.1: version "6.1.1" resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-6.1.1.tgz#36daefd96e56b7453da16ff8c16f4ee693f32521" @@ -9903,18 +10823,6 @@ which-pm@2.0.0: load-yaml-file "^0.2.0" path-exists "^4.0.0" -which-typed-array@^1.1.2: - version "1.1.8" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.8.tgz#0cfd53401a6f334d90ed1125754a42ed663eb01f" - integrity sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-abstract "^1.20.0" - for-each "^0.3.3" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.9" - which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -9944,9 +10852,9 @@ widest-line@^4.0.1: string-width "^5.0.1" "wonka@>= 4.0.9", wonka@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/wonka/-/wonka-6.1.0.tgz#65297ebf7031ae46d4b0c56da93950fb3ae5baaa" - integrity sha512-VgiMCz7BXOiDbgpVhf5iNhK7hurteY5Jv0fDJewUkY0s4fbxQD2iKqfGxNXNTwp2v3bgT8QVu2l5H7YdkZ5WIA== + version "6.1.1" + resolved "https://registry.yarnpkg.com/wonka/-/wonka-6.1.1.tgz#134ece7d07848477e3a8b7d35f2333af2edde138" + integrity sha512-shBtyZ0KFvUadtnDGlTRA4mF4pgcRoyZKikdputKhmShoXWcZDvlg6CUw6Jx9nTL7Ub8QUJoIarPpxdlosg9cw== word-wrap@^1.2.3: version "1.2.3" @@ -9999,22 +10907,9 @@ ws@^7.2.0: integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== ws@^8.3.0, ws@^8.9.0: - version "8.9.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.9.0.tgz#2a994bb67144be1b53fe2d23c53c028adeb7f45e" - integrity sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg== - -xml2js@0.4.19: - version "0.4.19" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" - integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q== - dependencies: - sax ">=0.6.0" - xmlbuilder "~9.0.1" - -xmlbuilder@~9.0.1: - version "9.0.7" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" - integrity sha512-7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ== + version "8.10.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.10.0.tgz#00a28c09dfb76eae4eb45c3b565f771d6951aa51" + integrity sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw== y-prosemirror@^1.2.0: version "1.2.0"