Merge remote-tracking branch 'origin/main' into language-dropdown

This commit is contained in:
danidfra 2024-09-27 21:20:41 -03:00
commit 7f66ced02b
26 changed files with 310 additions and 409 deletions

View File

@ -6,7 +6,7 @@
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta http-equiv="content-security-policy" content="<%- csp %>">
<link href="/manifest.json" rel="manifest">
<link href="/manifest.webmanifest" rel="manifest">
<!--server-generated-meta-->
<script type="module" src="./src/main.tsx"></script>
<%- snippets %>

View File

@ -62,7 +62,7 @@ server {
# Backend routes.
# These are routes to the backend's API and important rendered pages.
location ~ ^/(api|oauth|auth|admin|pghero|sidekiq|manifest.json|media|nodeinfo|unsubscribe|.well-known/(webfinger|host-meta|nodeinfo|change-password)|@(.+)/embed$) {
location ~ ^/(api|oauth|auth|admin|pghero|sidekiq|manifest.webmanifest|media|nodeinfo|unsubscribe|.well-known/(webfinger|host-meta|nodeinfo|change-password)|@(.+)/embed$) {
try_files /dev/null @backend;
}

View File

@ -83,7 +83,7 @@ server {
# Mastodon backend routes.
# These are routes to Mastodon's API and important rendered pages.
location ~ ^/(api|inbox|oauth|auth|admin|pghero|sidekiq|manifest.json|media|nodeinfo|unsubscribe|.well-known/(webfinger|host-meta|nodeinfo|change-password)|@(.+)/embed$) {
location ~ ^/(api|inbox|oauth|auth|admin|pghero|sidekiq|manifest.webmanifest|media|nodeinfo|unsubscribe|.well-known/(webfinger|host-meta|nodeinfo|change-password)|@(.+)/embed$) {
try_files /dev/null @mastodon;
}

View File

@ -48,16 +48,14 @@
"@fontsource/roboto-mono": "^5.0.0",
"@fontsource/vazirmatn": "^5.0.20",
"@gamestdio/websocket": "^0.3.2",
"@lexical/clipboard": "^0.14.2",
"@lexical/hashtag": "^0.14.2",
"@lexical/link": "^0.14.2",
"@lexical/react": "^0.14.2",
"@lexical/selection": "^0.14.2",
"@lexical/utils": "^0.14.2",
"@lexical/clipboard": "^0.18.0",
"@lexical/hashtag": "^0.18.0",
"@lexical/link": "^0.18.0",
"@lexical/react": "^0.18.0",
"@lexical/selection": "^0.18.0",
"@lexical/utils": "^0.18.0",
"@mkljczk/react-hotkeys": "^1.2.2",
"@noble/hashes": "^1.3.3",
"@nostrify/nostrify": "npm:@jsr/nostrify__nostrify",
"@popperjs/core": "^2.11.5",
"@reach/combobox": "^0.18.0",
"@reach/menu-button": "^0.18.0",
"@reach/popover": "^0.18.0",
@ -79,10 +77,10 @@
"@types/lodash": "^4.14.180",
"@types/object-assign": "^4.0.30",
"@types/path-browserify": "^1.0.0",
"@types/react": "^18.0.26",
"@types/react": "^18.3.9",
"@types/react-color": "^3.0.6",
"@types/react-datepicker": "^4.4.2",
"@types/react-dom": "^18.0.10",
"@types/react-dom": "^18.3.0",
"@types/react-helmet": "^6.1.5",
"@types/react-motion": "^0.0.40",
"@types/react-router-dom": "^5.3.3",
@ -90,23 +88,19 @@
"@types/react-swipeable-views": "^0.13.1",
"@types/redux-mock-store": "^1.0.6",
"@types/semver": "^7.3.9",
"@types/uuid": "^9.0.0",
"@vitejs/plugin-react": "^4.3.1",
"@webbtc/webln-types": "^3.0.0",
"autoprefixer": "^10.4.15",
"axios": "^1.2.2",
"axios-mock-adapter": "^1.22.0",
"blurhash": "^2.0.0",
"bootstrap-icons": "^1.5.0",
"bowser": "^2.11.0",
"browserslist": "^4.16.6",
"clsx": "^2.0.0",
"comlink": "^4.4.1",
"core-js": "^3.27.2",
"cryptocurrency-icons": "^0.18.1",
"cssnano": "^6.0.0",
"detect-passive-events": "^2.0.0",
"dotenv": "^16.0.0",
"emoji-datasource": "14.0.0",
"emoji-mart": "^5.5.2",
"escape-html": "^1.0.3",
@ -117,27 +111,24 @@
"http-link-header": "^1.0.2",
"immer": "^10.0.0",
"immutable": "^4.2.1",
"intersection-observer": "^0.12.2",
"intl-messageformat": "10.5.11",
"intl-pluralrules": "^2.0.0",
"isomorphic-dompurify": "^2.3.0",
"leaflet": "^1.8.0",
"lexical": "^0.14.2",
"lexical": "^0.18.0",
"line-awesome": "^1.3.0",
"localforage": "^1.10.0",
"lodash": "^4.7.11",
"mini-css-extract-plugin": "^2.6.0",
"nostr-machina": "^0.1.0",
"nostr-tools": "^2.3.0",
"path-browserify": "^1.0.1",
"postcss": "^8.4.29",
"process": "^0.11.10",
"punycode": "^2.1.1",
"qrcode.react": "^3.1.0",
"react": "^18.0.0",
"react": "^18.3.1",
"react-color": "^2.19.3",
"react-datepicker": "^4.8.0",
"react-dom": "^18.0.0",
"react-dom": "^18.3.1",
"react-error-boundary": "^4.0.11",
"react-helmet": "^6.1.0",
"react-hot-toast": "^2.4.0",
@ -146,7 +137,6 @@
"react-intl": "^6.0.0",
"react-motion": "^0.5.2",
"react-overlays": "^0.9.0",
"react-popper": "^2.3.0",
"react-redux": "^9.0.4",
"react-router-dom": "^5.3.0",
"react-router-dom-v5-compat": "^6.6.2",
@ -155,29 +145,22 @@
"react-sparklines": "^1.7.0",
"react-sticky-box": "^2.0.0",
"react-swipeable-views": "^0.14.0",
"react-virtuoso": "^4.3.11",
"react-virtuoso": "^4.10.4",
"redux": "^5.0.0",
"redux-immutable": "^4.0.0",
"redux-thunk": "^3.1.0",
"reselect": "^5.0.0",
"resize-observer-polyfill": "^1.5.1",
"sass": "^1.69.5",
"semver": "^7.3.8",
"stringz": "^2.0.0",
"substring-trie": "^1.0.2",
"tiny-queue": "^0.2.1",
"tslib": "^2.3.1",
"twemoji": "https://github.com/twitter/twemoji#v14.0.2",
"type-fest": "^4.0.0",
"typescript": "^5.6.2",
"util": "^0.12.4",
"uuid": "^9.0.0",
"vite": "^5.4.8",
"vite-plugin-compile-time": "^0.2.1",
"vite-plugin-html": "^3.2.2",
"vite-plugin-require": "^1.2.14",
"vite-plugin-static-copy": "^1.0.6",
"wicg-inert": "^3.1.1",
"zod": "^3.23.5"
},
"devDependencies": {
@ -204,8 +187,6 @@
"husky": "^9.0.0",
"jsdom": "^24.0.0",
"lint-staged": ">=10",
"react-intl-translations-manager": "^5.0.3",
"react-refresh": "^0.14.0",
"rollup-plugin-visualizer": "^5.9.2",
"stylelint": "^16.0.2",
"stylelint-config-standard-scss": "^12.0.0",
@ -215,8 +196,6 @@
"vitest": "^2.1.1"
},
"resolutions": {
"@types/react": "^18.0.26",
"@types/react-dom": "^18.0.10",
"glob-parent": "^6.0.1",
"jsonwebtoken": "^9.0.0",
"loader-utils": "^2.0.3"

View File

@ -1,5 +1,4 @@
import { List as ImmutableList, Map as ImmutableMap } from 'immutable';
import { v4 as uuidv4 } from 'uuid';
import { getSettings, changeSetting } from 'soapbox/actions/settings';
import { getFeatures } from 'soapbox/utils/features';
@ -103,7 +102,7 @@ const fetchChatMessages = (chatId: string, maxId: string | null = null) =>
const sendChatMessage = (chatId: string, params: Record<string, any>) =>
(dispatch: AppDispatch, getState: () => RootState) => {
const uuid = `末_${Date.now()}_${uuidv4()}`;
const uuid = `末_${Date.now()}_${crypto.randomUUID()}`;
const me = getState().me;
dispatch({ type: CHAT_MESSAGE_SEND_REQUEST, chatId, params, uuid, me });
return api(getState).post(`/api/v1/pleroma/chats/${chatId}/messages`, params).then(({ data }) => {

View File

@ -1,7 +1,6 @@
import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
import { defineMessage } from 'react-intl';
import { createSelector } from 'reselect';
import { v4 as uuid } from 'uuid';
import { patchMe } from 'soapbox/actions/me';
import messages from 'soapbox/messages';
@ -163,9 +162,9 @@ const defaultSettings = ImmutableMap({
}),
columns: ImmutableList([
ImmutableMap({ id: 'COMPOSE', uuid: uuid(), params: {} }),
ImmutableMap({ id: 'HOME', uuid: uuid(), params: {} }),
ImmutableMap({ id: 'NOTIFICATIONS', uuid: uuid(), params: {} }),
ImmutableMap({ id: 'COMPOSE', uuid: crypto.randomUUID(), params: {} }),
ImmutableMap({ id: 'HOME', uuid: crypto.randomUUID(), params: {} }),
ImmutableMap({ id: 'NOTIFICATIONS', uuid: crypto.randomUUID(), params: {} }),
]),
remote_timeline: ImmutableMap({

View File

@ -1,7 +1,7 @@
import { useState, useEffect } from 'react';
import { useApi } from 'soapbox/hooks';
import { type ZapSplitData } from 'soapbox/schemas/zap-split';
import { baseZapAccountSchema, type ZapSplitData } from 'soapbox/schemas/zap-split';
import type { Account as AccountEntity, Status as StatusEntity } from 'soapbox/types/entities';
@ -37,7 +37,10 @@ const useZapSplit = (status: StatusEntity | undefined, account: AccountEntity) =
const loadZapSplitData = async () => {
if (status) {
const data = (await fetchZapSplit(status.id)).data;
setZapArrays(data);
if (data) {
const normalizedData = data.map((dataSplit: ZapSplitData) => baseZapAccountSchema.parse(dataSplit));
setZapArrays(normalizedData);
}
}
};
@ -50,13 +53,18 @@ const useZapSplit = (status: StatusEntity | undefined, account: AccountEntity) =
const receiveAmount = (zapAmount: number) => {
if (zapArrays.length > 0) {
const zapAmountPrincipal = zapArrays.find((zapSplit: ZapSplitData) => zapSplit.account.id === account.id);
const formattedZapAmountPrincipal = {
account: zapAmountPrincipal?.account,
message: zapAmountPrincipal?.message,
weight: zapArrays.filter((zapSplit: ZapSplitData) => zapSplit.account.id === account.id).reduce((acc:number, zapData: ZapSplitData) => acc + zapData.weight, 0),
};
const zapAmountOthers = zapArrays.filter((zapSplit: ZapSplitData) => zapSplit.account.id !== account.id);
const totalWeightSplit = zapAmountOthers.reduce((e: number, b: ZapSplitData) => e + b.weight, 0);
const totalWeight = zapArrays.reduce((e: number, b: ZapSplitData) => e + b.weight, 0);
if (zapAmountPrincipal) {
const receiveZapAmount = Math.floor(zapAmountPrincipal.weight * (zapAmount / totalWeight));
const receiveZapAmount = Math.floor(formattedZapAmountPrincipal.weight * (zapAmount / totalWeight));
const splitResult = zapAmount - receiveZapAmount;
let totalRoundedSplit = 0;

View File

@ -1,7 +1,6 @@
import clsx from 'clsx';
import React from 'react';
import { Link } from 'react-router-dom';
import { v4 as uuidv4 } from 'uuid';
import { SelectDropdown } from '../features/forms';
@ -26,7 +25,7 @@ interface IListItem {
}
const ListItem: React.FC<IListItem> = ({ label, hint, children, to, onClick, onSelect, isSelected }) => {
const id = uuidv4();
const id = crypto.randomUUID();
const domId = `list-group-${id}`;
const onKeyDown = (e: React.KeyboardEvent) => {

View File

@ -1,6 +1,5 @@
import clsx from 'clsx';
import React, { useCallback, useEffect, useRef, useState } from 'react';
import 'wicg-inert';
import { FormattedMessage, defineMessages, useIntl } from 'react-intl';
import { useHistory } from 'react-router-dom';

View File

@ -1,7 +1,7 @@
import { useFloating } from '@floating-ui/react';
import clsx from 'clsx';
import React, { useEffect, useState } from 'react';
import { useIntl, FormattedMessage } from 'react-intl';
import { usePopper } from 'react-popper';
import { useHistory } from 'react-router-dom';
import { fetchRelationships } from 'soapbox/actions/accounts';
@ -87,7 +87,12 @@ export const ProfileHoverCard: React.FC<IProfileHoverCard> = ({ visible = true }
};
}, []);
const { styles, attributes } = usePopper(targetRef, popperElement);
const { floatingStyles } = useFloating({
elements: {
floating: popperElement,
reference: targetRef,
},
});
if (!account) return null;
const accountBio = { __html: account.note_emojified };
@ -102,8 +107,7 @@ export const ProfileHoverCard: React.FC<IProfileHoverCard> = ({ visible = true }
'opacity-0 pointer-events-none': !visible,
})}
ref={setPopperElement}
style={styles.popper}
{...attributes.popper}
style={floatingStyles}
onMouseEnter={handleMouseEnter(dispatch)}
onMouseLeave={handleMouseLeave(dispatch)}
>

View File

@ -23,7 +23,7 @@ const SiteErrorBoundary: React.FC<ISiteErrorBoundary> = ({ children }) => {
const textarea = useRef<HTMLTextAreaElement>(null);
const [error, setError] = useState<unknown>();
const [componentStack, setComponentStack] = useState<string>();
const [componentStack, setComponentStack] = useState<string | null | undefined>();
const [browser, setBrowser] = useState<Bowser.Parser.Parser>();
const [sentryEventId, setSentryEventId] = useState<string>();

View File

@ -1,6 +1,6 @@
import { useFloating } from '@floating-ui/react';
import clsx from 'clsx';
import React, { useEffect, useState, useCallback } from 'react';
import { usePopper } from 'react-popper';
import { useHistory } from 'react-router-dom';
import {
@ -46,8 +46,12 @@ export const StatusHoverCard: React.FC<IStatusHoverCard> = ({ visible = true })
};
}, []);
const { styles, attributes } = usePopper(targetRef, popperElement, {
const { floatingStyles } = useFloating({
placement: 'top',
elements: {
floating: popperElement,
reference: targetRef,
},
});
const handleMouseEnter = useCallback((): React.MouseEventHandler => {
@ -85,8 +89,7 @@ export const StatusHoverCard: React.FC<IStatusHoverCard> = ({ visible = true })
'opacity-0 pointer-events-none': !visible,
})}
ref={setPopperElement}
style={styles.popper}
{...attributes.popper}
style={floatingStyles}
onMouseEnter={handleMouseEnter()}
onMouseLeave={handleMouseLeave()}
>

View File

@ -66,7 +66,7 @@ export interface IColumn {
}
/** A backdrop for the main section of the UI. */
const Column: React.FC<IColumn> = React.forwardRef((props, ref: React.ForwardedRef<HTMLDivElement>): JSX.Element => {
const Column = React.forwardRef<HTMLDivElement, IColumn>((props, ref): JSX.Element => {
const { backHref, children, label, transparent = false, withHeader = true, className, bodyClassName, action, size, feature } = props;
const soapboxConfig = useSoapboxConfig();
const [isScrolled, setIsScrolled] = useState(false);

View File

@ -1,5 +1,4 @@
import React, { useMemo } from 'react';
import { v4 as uuidv4 } from 'uuid';
import Checkbox from '../checkbox/checkbox';
import HStack from '../hstack/hstack';
@ -21,7 +20,7 @@ interface IFormGroup {
/** Input container with label. Renders the child. */
const FormGroup: React.FC<IFormGroup> = (props) => {
const { children, errors = [], labelText, labelTitle, hintText } = props;
const formFieldId: string = useMemo(() => `field-${uuidv4()}`, []);
const formFieldId: string = useMemo(() => `field-${crypto.randomUUID()}`, []);
const inputChildren = React.Children.toArray(children);
const hasError = errors?.length > 0;

View File

@ -1,5 +1,4 @@
import React, { useMemo } from 'react';
import { v4 as uuidv4 } from 'uuid';
import HStack from '../hstack/hstack';
@ -15,7 +14,7 @@ interface IRadioButton {
* A group for radio input with label.
*/
const RadioButton: React.FC<IRadioButton> = ({ name, value, checked, onChange, label }) => {
const formFieldId: string = useMemo(() => `radio-${uuidv4()}`, []);
const formFieldId: string = useMemo(() => `radio-${crypto.randomUUID()}`, []);
return (
<HStack alignItems='center' space={3}>

View File

@ -4,7 +4,6 @@ import debounce from 'lodash/debounce';
import React, { useState, useRef, useCallback } from 'react';
import { useIntl, FormattedMessage, defineMessages } from 'react-intl';
import { Link, useHistory } from 'react-router-dom';
import { v4 as uuidv4 } from 'uuid';
import { accountLookup } from 'soapbox/actions/accounts';
import { register, verifyCredentials } from 'soapbox/actions/auth';
@ -55,7 +54,7 @@ const RegistrationForm: React.FC<IRegistrationForm> = ({ inviteToken }) => {
const [captchaLoading, setCaptchaLoading] = useState(true);
const [submissionLoading, setSubmissionLoading] = useState(false);
const [params, setParams] = useState(ImmutableMap<string, any>());
const [captchaIdempotencyKey, setCaptchaIdempotencyKey] = useState(uuidv4());
const [captchaIdempotencyKey, setCaptchaIdempotencyKey] = useState(crypto.randomUUID());
const [usernameUnavailable, setUsernameUnavailable] = useState(false);
const [passwordConfirmation, setPasswordConfirmation] = useState('');
const [passwordMismatch, setPasswordMismatch] = useState(false);
@ -228,7 +227,7 @@ const RegistrationForm: React.FC<IRegistrationForm> = ({ inviteToken }) => {
};
const refreshCaptcha = () => {
setCaptchaIdempotencyKey(uuidv4());
setCaptchaIdempotencyKey(crypto.randomUUID());
updateParams({ captcha_solution: '' });
};

View File

@ -1,6 +1,5 @@
import clsx from 'clsx';
import React, { useState } from 'react';
import { v4 as uuidv4 } from 'uuid';
import { Select } from '../../components/ui';
@ -37,7 +36,7 @@ interface ILabelInputContainer {
}
export const LabelInputContainer: React.FC<ILabelInputContainer> = ({ label, hint, children }) => {
const [id] = useState(uuidv4());
const [id] = useState(crypto.randomUUID());
const childrenWithProps = React.Children.map(children, child => (
// @ts-ignore: not sure how to get the right type here
React.cloneElement(child, { id: id, key: id })

View File

@ -1,6 +1,5 @@
import React, { useRef, useState } from 'react';
import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
import { v4 as uuidv4 } from 'uuid';
import { updateSoapboxConfig } from 'soapbox/actions/admin';
import { getHost } from 'soapbox/actions/instance';
@ -51,7 +50,7 @@ const ThemeEditor: React.FC<IThemeEditor> = () => {
const [colors, setColors] = useState(soapbox.colors.toJS() as any);
const [submitting, setSubmitting] = useState(false);
const [resetKey, setResetKey] = useState(uuidv4());
const [resetKey, setResetKey] = useState(crypto.randomUUID());
const fileInput = useRef<HTMLInputElement>(null);
@ -77,7 +76,7 @@ const ThemeEditor: React.FC<IThemeEditor> = () => {
};
const setTheme = (theme: any) => {
setResetKey(uuidv4());
setResetKey(crypto.randomUUID());
setTimeout(() => setColors(theme));
};

View File

@ -51,7 +51,7 @@ import {
import ModalLoading from './modal-loading';
/* eslint sort-keys: "error" */
const MODAL_COMPONENTS: Record<string, React.LazyExoticComponent<any>> = {
const MODAL_COMPONENTS: Record<string, React.ExoticComponent<any>> = {
'ACCOUNT_MODERATION': AccountModerationModal,
'ACTIONS': ActionsModal,
'BIRTHDAYS': BirthdaysModal,

View File

@ -17,7 +17,7 @@ type PageProps = {
};
interface IWrappedRoute extends RouteProps {
component: React.LazyExoticComponent<any>;
component: React.ExoticComponent<any>;
page?: React.ComponentType<PageProps>;
content?: React.ReactNode;
componentParams?: Record<string, any>;

View File

@ -1,5 +1,3 @@
import { v4 as uuidv4 } from 'uuid';
import {
accountSchema,
cardSchema,
@ -29,8 +27,8 @@ import type { PartialDeep } from 'type-fest';
function buildAccount(props: PartialDeep<Account> = {}): Account {
return accountSchema.parse(Object.assign({
id: uuidv4(),
url: `https://soapbox.test/users/${uuidv4()}`,
id: crypto.randomUUID(),
url: `https://soapbox.test/users/${crypto.randomUUID()}`,
}, props));
}
@ -42,23 +40,23 @@ function buildCard(props: PartialDeep<Card> = {}): Card {
function buildGroup(props: PartialDeep<Group> = {}): Group {
return groupSchema.parse(Object.assign({
id: uuidv4(),
id: crypto.randomUUID(),
owner: {
id: uuidv4(),
id: crypto.randomUUID(),
},
}, props));
}
function buildGroupRelationship(props: PartialDeep<GroupRelationship> = {}): GroupRelationship {
return groupRelationshipSchema.parse(Object.assign({
id: uuidv4(),
id: crypto.randomUUID(),
}, props));
}
function buildGroupTag(props: PartialDeep<GroupTag> = {}): GroupTag {
return groupTagSchema.parse(Object.assign({
id: uuidv4(),
name: uuidv4(),
id: crypto.randomUUID(),
name: crypto.randomUUID(),
}, props));
}
@ -67,7 +65,7 @@ function buildGroupMember(
accountProps: PartialDeep<Account> = {},
): GroupMember {
return groupMemberSchema.parse(Object.assign({
id: uuidv4(),
id: crypto.randomUUID(),
account: buildAccount(accountProps),
role: GroupRoles.USER,
}, props));
@ -79,13 +77,13 @@ function buildInstance(props: PartialDeep<Instance> = {}) {
function buildRelationship(props: PartialDeep<Relationship> = {}): Relationship {
return relationshipSchema.parse(Object.assign({
id: uuidv4(),
id: crypto.randomUUID(),
}, props));
}
function buildStatus(props: PartialDeep<Status> = {}) {
return statusSchema.parse(Object.assign({
id: uuidv4(),
id: crypto.randomUUID(),
account: buildAccount(),
}, props));
}

View File

@ -1,5 +1,3 @@
import './polyfills';
import React from 'react';
import { createRoot } from 'react-dom/client';

View File

@ -1,8 +0,0 @@
import 'intersection-observer';
import ResizeObserver from 'resize-observer-polyfill';
// Needed by Virtuoso
// https://github.com/petyosi/react-virtuoso#browser-support
if (!window.ResizeObserver) {
window.ResizeObserver = ResizeObserver;
}

View File

@ -1,5 +1,4 @@
import { Map as ImmutableMap, List as ImmutableList, OrderedSet as ImmutableOrderedSet, Record as ImmutableRecord, fromJS } from 'immutable';
import { v4 as uuid } from 'uuid';
import { isNativeEmoji } from 'soapbox/features/emoji';
import { Account } from 'soapbox/schemas';
@ -150,7 +149,7 @@ const appendMedia = (compose: Compose, media: APIEntity, defaultSensitive?: bool
map.update('media_attachments', list => list.push(normalizeAttachment(media)));
map.set('is_uploading', false);
map.set('resetFileKey', Math.floor((Math.random() * 0x10000)));
map.set('idempotencyKey', uuid());
map.set('idempotencyKey', crypto.randomUUID());
if (prevSize === 0 && (defaultSensitive || compose.spoiler)) {
map.set('sensitive', true);
@ -163,7 +162,7 @@ const removeMedia = (compose: Compose, mediaId: string) => {
return compose.withMutations(map => {
map.update('media_attachments', list => list.filterNot(item => item.id === mediaId));
map.set('idempotencyKey', uuid());
map.set('idempotencyKey', crypto.randomUUID());
if (prevSize === 1) {
map.set('sensitive', false);
@ -180,7 +179,7 @@ const insertSuggestion = (compose: Compose, position: number, token: string | nu
map.set('focusDate', new Date());
map.set('caretPosition', position + completion.length + 1);
}
map.set('idempotencyKey', uuid());
map.set('idempotencyKey', crypto.randomUUID());
});
};
@ -205,7 +204,7 @@ const insertEmoji = (compose: Compose, position: number, emojiData: Emoji, needs
text: `${oldText.slice(0, position)}${emoji} ${oldText.slice(position)}`,
focusDate: new Date(),
caretPosition: position + emoji.length + 1,
idempotencyKey: uuid(),
idempotencyKey: crypto.randomUUID(),
});
};
@ -274,7 +273,7 @@ const updateCompose = (state: State, key: string, updater: (compose: Compose) =>
state.update(key, state.get('default')!, updater);
export const initialState: State = ImmutableMap({
default: ReducerCompose({ idempotencyKey: uuid(), resetFileKey: getResetFileKey() }),
default: ReducerCompose({ idempotencyKey: crypto.randomUUID(), resetFileKey: getResetFileKey() }),
});
export default function compose(state = initialState, action: ComposeAction | EventsAction | MeAction | SettingsAction | TimelineAction) {
@ -282,27 +281,27 @@ export default function compose(state = initialState, action: ComposeAction | Ev
case COMPOSE_TYPE_CHANGE:
return updateCompose(state, action.id, compose => compose.withMutations(map => {
map.set('content_type', action.value);
map.set('idempotencyKey', uuid());
map.set('idempotencyKey', crypto.randomUUID());
}));
case COMPOSE_SPOILERNESS_CHANGE:
return updateCompose(state, action.id, compose => compose.withMutations(map => {
map.set('spoiler_text', '');
map.set('spoiler', !compose.spoiler);
map.set('sensitive', !compose.spoiler);
map.set('idempotencyKey', uuid());
map.set('idempotencyKey', crypto.randomUUID());
}));
case COMPOSE_SPOILER_TEXT_CHANGE:
return updateCompose(state, action.id, compose => compose
.set('spoiler_text', action.text)
.set('idempotencyKey', uuid()));
.set('idempotencyKey', crypto.randomUUID()));
case COMPOSE_VISIBILITY_CHANGE:
return updateCompose(state, action.id, compose => compose
.set('privacy', action.value)
.set('idempotencyKey', uuid()));
.set('idempotencyKey', crypto.randomUUID()));
case COMPOSE_CHANGE:
return updateCompose(state, action.id, compose => compose
.set('text', action.text)
.set('idempotencyKey', uuid()));
.set('idempotencyKey', crypto.randomUUID()));
case COMPOSE_REPLY:
return updateCompose(state, action.id, compose => compose.withMutations(map => {
const defaultCompose = state.get('default')!;
@ -314,7 +313,7 @@ export default function compose(state = initialState, action: ComposeAction | Ev
map.set('privacy', privacyPreference(action.status.visibility, defaultCompose.privacy));
map.set('focusDate', new Date());
map.set('caretPosition', null);
map.set('idempotencyKey', uuid());
map.set('idempotencyKey', crypto.randomUUID());
map.set('content_type', defaultCompose.content_type);
if (action.preserveSpoilers && action.status.spoiler_text) {
map.set('spoiler', true);
@ -326,7 +325,7 @@ export default function compose(state = initialState, action: ComposeAction | Ev
return updateCompose(state, action.id, compose => compose.withMutations(map => {
map.set('in_reply_to', action.status.get('id'));
map.set('to', statusToMentionsArray(action.status, action.account));
map.set('idempotencyKey', uuid());
map.set('idempotencyKey', crypto.randomUUID());
}));
case COMPOSE_QUOTE:
return updateCompose(state, 'compose-modal', compose => compose.withMutations(map => {
@ -339,7 +338,7 @@ export default function compose(state = initialState, action: ComposeAction | Ev
map.set('privacy', privacyPreference(action.status.visibility, defaultCompose.privacy));
map.set('focusDate', new Date());
map.set('caretPosition', null);
map.set('idempotencyKey', uuid());
map.set('idempotencyKey', crypto.randomUUID());
map.set('content_type', defaultCompose.content_type);
map.set('spoiler', false);
map.set('spoiler_text', '');
@ -362,7 +361,7 @@ export default function compose(state = initialState, action: ComposeAction | Ev
case COMPOSE_RESET:
case COMPOSE_SUBMIT_SUCCESS:
return updateCompose(state, action.id, () => state.get('default')!.withMutations(map => {
map.set('idempotencyKey', uuid());
map.set('idempotencyKey', crypto.randomUUID());
map.set('in_reply_to', action.id.startsWith('reply:') ? action.id.slice(6) : null);
if (action.id.startsWith('group:')) {
map.set('privacy', 'group');
@ -388,7 +387,7 @@ export default function compose(state = initialState, action: ComposeAction | Ev
map.update('text', text => [text.trim(), `@${action.account.acct} `].filter((str) => str.length !== 0).join(' '));
map.set('focusDate', new Date());
map.set('caretPosition', null);
map.set('idempotencyKey', uuid());
map.set('idempotencyKey', crypto.randomUUID());
}));
case COMPOSE_DIRECT:
return updateCompose(state, 'compose-modal', compose => compose.withMutations(map => {
@ -396,7 +395,7 @@ export default function compose(state = initialState, action: ComposeAction | Ev
map.set('privacy', 'direct');
map.set('focusDate', new Date());
map.set('caretPosition', null);
map.set('idempotencyKey', uuid());
map.set('idempotencyKey', crypto.randomUUID());
}));
case COMPOSE_GROUP_POST:
return updateCompose(state, action.id, compose => compose.withMutations(map => {
@ -404,7 +403,7 @@ export default function compose(state = initialState, action: ComposeAction | Ev
map.set('group_id', action.group_id);
map.set('focusDate', new Date());
map.set('caretPosition', null);
map.set('idempotencyKey', uuid());
map.set('idempotencyKey', crypto.randomUUID());
}));
case COMPOSE_SUGGESTIONS_CLEAR:
return updateCompose(state, action.id, compose => compose.update('suggestions', list => list?.clear()).set('suggestion_token', null));
@ -449,7 +448,7 @@ export default function compose(state = initialState, action: ComposeAction | Ev
map.set('privacy', action.status.get('visibility'));
map.set('focusDate', new Date());
map.set('caretPosition', null);
map.set('idempotencyKey', uuid());
map.set('idempotencyKey', crypto.randomUUID());
map.set('content_type', action.contentType || 'text/plain');
map.set('quote', action.status.getIn(['quote', 'id']) as string);
map.set('group_id', action.status.getIn(['group', 'id']) as string);

View File

@ -66,7 +66,6 @@ export default defineConfig(({ command }) => ({
compileTime(),
],
},
manifestFilename: 'manifest.json',
manifest: {
name: 'Soapbox',
short_name: 'Soapbox',

520
yarn.lock
View File

@ -1562,160 +1562,208 @@
"@jridgewell/resolve-uri" "^3.1.0"
"@jridgewell/sourcemap-codec" "^1.4.14"
"@lexical/clipboard@0.14.2", "@lexical/clipboard@^0.14.2":
version "0.14.2"
resolved "https://registry.yarnpkg.com/@lexical/clipboard/-/clipboard-0.14.2.tgz#4638acdc80816500e87096646a98f24a34b94fa9"
integrity sha512-WevZZ+VPpkvcgZZXxjHY2lc3+2kw+UA6q19MWdZA2y4NVQyeDmjxQp5uxdUWGTKTBzt22vlzeQ2jbtKz4wY3/g==
"@lexical/clipboard@0.18.0", "@lexical/clipboard@^0.18.0":
version "0.18.0"
resolved "https://registry.yarnpkg.com/@lexical/clipboard/-/clipboard-0.18.0.tgz#584ac4188461d1048717d854cb75ed14813b38f3"
integrity sha512-ybc+hx14wj0n2ZjdOkLcZ02MRB3UprXjpLDXlByFIuVcZpUxVcp3NzA0UBPOKXYKvdt0bmgjnAsFWM5OSbwS0w==
dependencies:
"@lexical/html" "0.14.2"
"@lexical/list" "0.14.2"
"@lexical/selection" "0.14.2"
"@lexical/utils" "0.14.2"
"@lexical/html" "0.18.0"
"@lexical/list" "0.18.0"
"@lexical/selection" "0.18.0"
"@lexical/utils" "0.18.0"
lexical "0.18.0"
"@lexical/code@0.14.2":
version "0.14.2"
resolved "https://registry.yarnpkg.com/@lexical/code/-/code-0.14.2.tgz#e23443275b342e245684cc4e1889130edd746cbc"
integrity sha512-XByweRm8flv/2nwwLbnZwskl2y6jWuDFuKB/8ywvSenMsGyr7OSg5ALJrsFuX5KUo9mEGGpaiM8UVeMoeaqMgg==
"@lexical/code@0.18.0":
version "0.18.0"
resolved "https://registry.yarnpkg.com/@lexical/code/-/code-0.18.0.tgz#990156c059ee78ad4359ae17df03a0840a0f0d27"
integrity sha512-VB8fRHIrB8QTqyZUvGBMVWP2tpKe3ArOjPdWAqgrS8MVFldqUhuTHcW+XJFkVxcEBYCXynNT29YRYtQhfQ+vDQ==
dependencies:
"@lexical/utils" "0.14.2"
"@lexical/utils" "0.18.0"
lexical "0.18.0"
prismjs "^1.27.0"
"@lexical/dragon@0.14.2":
version "0.14.2"
resolved "https://registry.yarnpkg.com/@lexical/dragon/-/dragon-0.14.2.tgz#493af45501550227b0274ff8b7307a2d9ba0c38d"
integrity sha512-yzYJ3HD/goZZW5+ckYGCidtQ5zwrT08yDPhNgFUh9eni2ePQ9b56x2Bko01urocIkEqA0d6VEtfoO+hAOHiq6Q==
"@lexical/hashtag@0.14.2", "@lexical/hashtag@^0.14.2":
version "0.14.2"
resolved "https://registry.yarnpkg.com/@lexical/hashtag/-/hashtag-0.14.2.tgz#7ae794480079c702e707319e7b588aec39b2b060"
integrity sha512-H2z71iGX3n0ZB45y5uoI7aPwVjClo01df480IrTecKxr4aAKbK5LhFQWOphiUXBiv4O1sn+Xa88f8IpbfqQ5Vg==
"@lexical/devtools-core@0.18.0":
version "0.18.0"
resolved "https://registry.yarnpkg.com/@lexical/devtools-core/-/devtools-core-0.18.0.tgz#436fb1a7489de63114f7c8ee639aa40b5becca3a"
integrity sha512-gVgtEkLwGjz1frOmDpFJzDPFxPgAcC9n5ZaaZWHo5GLcptnQmkuLm1t+UInQWujXhFmcyJzfiqDaMJ8EIcb2Ww==
dependencies:
"@lexical/utils" "0.14.2"
"@lexical/html" "0.18.0"
"@lexical/link" "0.18.0"
"@lexical/mark" "0.18.0"
"@lexical/table" "0.18.0"
"@lexical/utils" "0.18.0"
lexical "0.18.0"
"@lexical/history@0.14.2":
version "0.14.2"
resolved "https://registry.yarnpkg.com/@lexical/history/-/history-0.14.2.tgz#740a6dffd0c5250ada12ce13f514d0c3f7df960b"
integrity sha512-k0gNIKCDeyIWEHIJKHZFfGVEN4yPID8tfuR4/R1M12WUwnga/X3regxPSMV8LE1SWbCz6iiQuaeZozxOJ3AlRw==
"@lexical/dragon@0.18.0":
version "0.18.0"
resolved "https://registry.yarnpkg.com/@lexical/dragon/-/dragon-0.18.0.tgz#bec3d6742eff4ac9e70bc448f438cab30bd61081"
integrity sha512-toD/y2/TgtG+eFVKXf65kDk/Mv02FwgmcGH18nyAabZnO1TLBaMYPkGFdTTZ8hVmQxqIu9nZuLWUbdIBMs8UWw==
dependencies:
"@lexical/utils" "0.14.2"
lexical "0.18.0"
"@lexical/html@0.14.2":
version "0.14.2"
resolved "https://registry.yarnpkg.com/@lexical/html/-/html-0.14.2.tgz#8b8f0d81d0afdea9865ef9fba814705daabbbf23"
integrity sha512-5uL0wSfS9H5/HNeCM4QaJMekoL1w4D81361RlC2ppKt1diSzLiWOITX1qElaTcnDJBGez5mv1ZNiRTutYOPV4Q==
"@lexical/hashtag@0.18.0", "@lexical/hashtag@^0.18.0":
version "0.18.0"
resolved "https://registry.yarnpkg.com/@lexical/hashtag/-/hashtag-0.18.0.tgz#40e14a44f7d333be08db32814a30bbb0251bf441"
integrity sha512-bm+Sv7keguVYbUY0ngd+iAv2Owd3dePzdVkzkmw9Al8GPXkE5ll8fjq6Xjw2u3OVhf+9pTnesIo/AS7H+h0exw==
dependencies:
"@lexical/selection" "0.14.2"
"@lexical/utils" "0.14.2"
"@lexical/utils" "0.18.0"
lexical "0.18.0"
"@lexical/link@0.14.2", "@lexical/link@^0.14.2":
version "0.14.2"
resolved "https://registry.yarnpkg.com/@lexical/link/-/link-0.14.2.tgz#78c220a81475505b17fb8fa6c5baff08a3ed3b5b"
integrity sha512-XD4VdxtBm9Yx5vk2hDEDKY1BjgNVdfmxQHo6Y/kyImAHhGRiBWa6V1+l55qfgcjPW3tN2QY/gSKDCPQGk7vKJw==
"@lexical/history@0.18.0":
version "0.18.0"
resolved "https://registry.yarnpkg.com/@lexical/history/-/history-0.18.0.tgz#b0eadd62d4f61907e28093a3eef32823deb910ea"
integrity sha512-c87J4ke1Sae03coElJay2Ikac/4OcA2OmhtNbt2gAi/XBtcsP4mPuz1yZfZf9XIe+weekObgjinvZekQ2AFw0g==
dependencies:
"@lexical/utils" "0.14.2"
"@lexical/utils" "0.18.0"
lexical "0.18.0"
"@lexical/list@0.14.2":
version "0.14.2"
resolved "https://registry.yarnpkg.com/@lexical/list/-/list-0.14.2.tgz#b1d70e95e9b6a22f22b47f11ed7b667b1eeacdd2"
integrity sha512-74MVHcYtTC5Plj+GGRV08uk9qbI1AaKc37NGLe3T08aVBqzqxXl1qZK9BhrM2mqTVXB98ZnOXkBk+07vke+b0Q==
"@lexical/html@0.18.0":
version "0.18.0"
resolved "https://registry.yarnpkg.com/@lexical/html/-/html-0.18.0.tgz#a4019a4692da23e6f810c21a7202bae5a45428a4"
integrity sha512-8lhba1DFnnobXgYm4Rk5Gr2tZedD4Gl6A/NKCt7whO/CET63vT3UnK2ggcVVgtIJG530Cv0bdZoJbJu5DauI5w==
dependencies:
"@lexical/utils" "0.14.2"
"@lexical/selection" "0.18.0"
"@lexical/utils" "0.18.0"
lexical "0.18.0"
"@lexical/mark@0.14.2":
version "0.14.2"
resolved "https://registry.yarnpkg.com/@lexical/mark/-/mark-0.14.2.tgz#0f264d7f287c380e99a118eeba84a4bb94abc403"
integrity sha512-8G1p2tuUkymWXvWgUUShZp5AgYIODUZrBYDpGsCBNkXuSdGagOirS5LhKeiT/68BnrPzGrlnCdmomnI/kMxh6w==
"@lexical/link@0.18.0", "@lexical/link@^0.18.0":
version "0.18.0"
resolved "https://registry.yarnpkg.com/@lexical/link/-/link-0.18.0.tgz#e0b36321e420ae385578bfb2a682b8407b34f2db"
integrity sha512-GCYcbNTSTwJk0lr+GMc8nn6Meq44BZs3QL2d1B0skpZAspd8yI53sRS6HDy5P+jW5P0dzyZr/XJAU4U+7zsEEg==
dependencies:
"@lexical/utils" "0.14.2"
"@lexical/utils" "0.18.0"
lexical "0.18.0"
"@lexical/markdown@0.14.2":
version "0.14.2"
resolved "https://registry.yarnpkg.com/@lexical/markdown/-/markdown-0.14.2.tgz#26ae02482708632bc2e0e4a662c39a443f8e3bdc"
integrity sha512-U5P8ceEhiQqEKyy3dx4ldVBdoajquVndrZ4TvS6HJs8jeqOH49sLMvbKtNpXPL1plGvvwAjutQzEUdY+ifpGgw==
"@lexical/list@0.18.0":
version "0.18.0"
resolved "https://registry.yarnpkg.com/@lexical/list/-/list-0.18.0.tgz#4aece48efa8fde89c25cbd3e27184e73ed130e40"
integrity sha512-DEWs9Scbg3+STZeE2O0OoG8SWnKnxQccObBzyeHRjn4GAN6JA7lgcAzfrdgp0fNWTbMM/ku876MmXKGnqhvg9Q==
dependencies:
"@lexical/code" "0.14.2"
"@lexical/link" "0.14.2"
"@lexical/list" "0.14.2"
"@lexical/rich-text" "0.14.2"
"@lexical/text" "0.14.2"
"@lexical/utils" "0.14.2"
"@lexical/utils" "0.18.0"
lexical "0.18.0"
"@lexical/offset@0.14.2":
version "0.14.2"
resolved "https://registry.yarnpkg.com/@lexical/offset/-/offset-0.14.2.tgz#7cbade3817b55e305013a61698465df9f4e8b3ab"
integrity sha512-bv6M+HITGNDuXvIELB1NLobRKoxtP1JPG3zDhKGPnLyjzFeHE5FZ6QbGc9y8ltrhUafVmxgzW/Es0IJXTsGf7Q==
"@lexical/overflow@0.14.2":
version "0.14.2"
resolved "https://registry.yarnpkg.com/@lexical/overflow/-/overflow-0.14.2.tgz#63482f6941b0f21bf79639e36fd5711052e84adf"
integrity sha512-2eHirK9GmGr7juMjeF54fZ8xPwdMMzni+FXC4NVMDWzzM3yjK3BCBK6AUJsU3o4Y4bV3mUvZp55x9Ys5lX3zOw==
"@lexical/plain-text@0.14.2":
version "0.14.2"
resolved "https://registry.yarnpkg.com/@lexical/plain-text/-/plain-text-0.14.2.tgz#498306c83bbd5be24f6c6935670e77247763d866"
integrity sha512-vHvJ+Dy+SpzZ0hVN3r+DONHoSn0WzuK6htwsV0IyaMyEeypxnFs6FB/znyWmoU+X2EAhDCu5O9npLDWmrJjCdQ==
"@lexical/react@^0.14.2":
version "0.14.2"
resolved "https://registry.yarnpkg.com/@lexical/react/-/react-0.14.2.tgz#2a6b812f0e07cba05b02ff2b8bdfb9b4afc05873"
integrity sha512-HCsZv5yExA/8h7Ul6y5NcqUAGctL79A7qSz7YSlrwfw8EYyUHXW5LzeoFTWSl12SKs600PM+I8jLGXu72N6kfQ==
"@lexical/mark@0.18.0":
version "0.18.0"
resolved "https://registry.yarnpkg.com/@lexical/mark/-/mark-0.18.0.tgz#9aa4c7bbaf261141332a12e642942095f76230b4"
integrity sha512-QA4YWfTP5WWnCnoH/RmfcsSZyhhd7oeFWDpfP7S8Bbmhz6kiPwGcsVr+uRQBBT56AqEX167xX2rX8JR6FiYZqA==
dependencies:
"@lexical/clipboard" "0.14.2"
"@lexical/code" "0.14.2"
"@lexical/dragon" "0.14.2"
"@lexical/hashtag" "0.14.2"
"@lexical/history" "0.14.2"
"@lexical/link" "0.14.2"
"@lexical/list" "0.14.2"
"@lexical/mark" "0.14.2"
"@lexical/markdown" "0.14.2"
"@lexical/overflow" "0.14.2"
"@lexical/plain-text" "0.14.2"
"@lexical/rich-text" "0.14.2"
"@lexical/selection" "0.14.2"
"@lexical/table" "0.14.2"
"@lexical/text" "0.14.2"
"@lexical/utils" "0.14.2"
"@lexical/yjs" "0.14.2"
"@lexical/utils" "0.18.0"
lexical "0.18.0"
"@lexical/markdown@0.18.0":
version "0.18.0"
resolved "https://registry.yarnpkg.com/@lexical/markdown/-/markdown-0.18.0.tgz#612c2324fbf6294ef956d8a840a4eae677ef8476"
integrity sha512-uSWwcK8eJw5C+waEhU5WoX8W+JxNZbKuFnZwsn5nsp+iQgqMj4qY6g0yJub4sq8vvh6jjl4vVXhXTq2up9aykw==
dependencies:
"@lexical/code" "0.18.0"
"@lexical/link" "0.18.0"
"@lexical/list" "0.18.0"
"@lexical/rich-text" "0.18.0"
"@lexical/text" "0.18.0"
"@lexical/utils" "0.18.0"
lexical "0.18.0"
"@lexical/offset@0.18.0":
version "0.18.0"
resolved "https://registry.yarnpkg.com/@lexical/offset/-/offset-0.18.0.tgz#1d12df8dcdeb0f43447d3109f72fb188e7662a65"
integrity sha512-KGlboyLSxQAH5PMOlJmyvHlbYXZneVnKiHpfyBV5IUX5kuyB/eZbQEYcJP9saekfQ5Xb1FWXWmsZEo+sWtrrZA==
dependencies:
lexical "0.18.0"
"@lexical/overflow@0.18.0":
version "0.18.0"
resolved "https://registry.yarnpkg.com/@lexical/overflow/-/overflow-0.18.0.tgz#18ede63a4f5041778bc21902b08d188620ef6c0a"
integrity sha512-3ATTwttVgZtVLq60ZUWbpbXBbpuMa3PZD5CxSP3nulviL+2I4phvacV4WUN+8wMeq+PGmuarl+cYfrFL02ii3g==
dependencies:
lexical "0.18.0"
"@lexical/plain-text@0.18.0":
version "0.18.0"
resolved "https://registry.yarnpkg.com/@lexical/plain-text/-/plain-text-0.18.0.tgz#f77860bc086c0ab64b691c27a064ec1f38c9edb7"
integrity sha512-L6yQpiwW0ZacY1oNwvRBxSuW2TZaUcveZLheJc8JzGcZoVxzII/CAbLZG8691VbNuKsbOURiNXZIsgwujKmo4Q==
dependencies:
"@lexical/clipboard" "0.18.0"
"@lexical/selection" "0.18.0"
"@lexical/utils" "0.18.0"
lexical "0.18.0"
"@lexical/react@^0.18.0":
version "0.18.0"
resolved "https://registry.yarnpkg.com/@lexical/react/-/react-0.18.0.tgz#3d857dacda06969ff7e189383a53ec3767b14fb1"
integrity sha512-DLvIbTsjvFIFqm+9zvAjEwuZHAbSxzZf1AGqf1lLctlL/Ran0f+8EZOv5jttELTe7xISZ2+xSXTLRfyxhNwGXQ==
dependencies:
"@lexical/clipboard" "0.18.0"
"@lexical/code" "0.18.0"
"@lexical/devtools-core" "0.18.0"
"@lexical/dragon" "0.18.0"
"@lexical/hashtag" "0.18.0"
"@lexical/history" "0.18.0"
"@lexical/link" "0.18.0"
"@lexical/list" "0.18.0"
"@lexical/mark" "0.18.0"
"@lexical/markdown" "0.18.0"
"@lexical/overflow" "0.18.0"
"@lexical/plain-text" "0.18.0"
"@lexical/rich-text" "0.18.0"
"@lexical/selection" "0.18.0"
"@lexical/table" "0.18.0"
"@lexical/text" "0.18.0"
"@lexical/utils" "0.18.0"
"@lexical/yjs" "0.18.0"
lexical "0.18.0"
react-error-boundary "^3.1.4"
"@lexical/rich-text@0.14.2":
version "0.14.2"
resolved "https://registry.yarnpkg.com/@lexical/rich-text/-/rich-text-0.14.2.tgz#d2ef208b5f5b0fb4021c61a00187ba8da016ce69"
integrity sha512-KXxeVfzHw4volw5Tm/TXGCDH+OCvFm1QU17LK3ToAulN2M+j0745yxpudtRfcl96fIbB9THY2toAZpJ9YbMTNQ==
"@lexical/selection@0.14.2", "@lexical/selection@^0.14.2":
version "0.14.2"
resolved "https://registry.yarnpkg.com/@lexical/selection/-/selection-0.14.2.tgz#39d6c0db233790eec81125653503e20deadc13a9"
integrity sha512-M122XXGEiBgaxEhL63d+su0pPri67/GlFIwGC/j3D0TN4Giyt/j0ToHhqvlIF6TfuXlBusIYbSuJ19ny12lCEg==
"@lexical/table@0.14.2":
version "0.14.2"
resolved "https://registry.yarnpkg.com/@lexical/table/-/table-0.14.2.tgz#a28e0e24dfc8c43ac4ccf53dd33c1292969740d6"
integrity sha512-iwsZ5AqkM7RGyU38daK0XgpC8DG0TlEqEYsXhOLjCpAERY/+bgfdjxP8YWtUV5eIgHX0yY7FkqCUZUJSEcbUeA==
"@lexical/rich-text@0.18.0":
version "0.18.0"
resolved "https://registry.yarnpkg.com/@lexical/rich-text/-/rich-text-0.18.0.tgz#09a3baaeb497131f50ef1d3e1d808c312a2c48c2"
integrity sha512-xMANCB7WueMsmWK8qxik5FZN4ApyaHWHQILS9r4FTbdv/DlNepsR7Pt8kg2317xZ56NAueQLIdyyKYXG1nBrHw==
dependencies:
"@lexical/utils" "0.14.2"
"@lexical/clipboard" "0.18.0"
"@lexical/selection" "0.18.0"
"@lexical/utils" "0.18.0"
lexical "0.18.0"
"@lexical/text@0.14.2":
version "0.14.2"
resolved "https://registry.yarnpkg.com/@lexical/text/-/text-0.14.2.tgz#5a6fdd78ac3ec62baa23bbb3466046b7b18f2dfb"
integrity sha512-5N1Bwr75EGdP/4izQRzoxyKpozy+0YixGJOo3OoldlX9/j+Sf5XiCFj3Ifgfl5dygZ0oITQk4duHpzjPHez59Q==
"@lexical/utils@0.14.2", "@lexical/utils@^0.14.2":
version "0.14.2"
resolved "https://registry.yarnpkg.com/@lexical/utils/-/utils-0.14.2.tgz#7ecb2e16f2a395c96be6de0128bcb7de54589872"
integrity sha512-IGknsaSyQbBJYKJJrrjNPaZuQPsJmFqGrCmNR6DcQNenWrFnmAliQPFA7HbszwRSxOFTo/BCAsIgXRQob6RjOQ==
"@lexical/selection@0.18.0", "@lexical/selection@^0.18.0":
version "0.18.0"
resolved "https://registry.yarnpkg.com/@lexical/selection/-/selection-0.18.0.tgz#5c9660c52b39b5338eb2e847f81b9d43dcb50c4a"
integrity sha512-mJoMhmxeZLfM9K2JMYETs9u179IkHQUlgtYG5GZJHjKx2iUn+9KvJ9RVssq+Lusi7C/N42wWPGNHDPdUvFtxXg==
dependencies:
"@lexical/list" "0.14.2"
"@lexical/selection" "0.14.2"
"@lexical/table" "0.14.2"
lexical "0.18.0"
"@lexical/yjs@0.14.2":
version "0.14.2"
resolved "https://registry.yarnpkg.com/@lexical/yjs/-/yjs-0.14.2.tgz#30226dfb51a44195e7dfb1bf064198f80c629c07"
integrity sha512-0AKwQYRx7KvAKTdizoAXd9XZhkTO6l3LmHRvsu70YAHVZUEb9tVQBM7lp/dtBBQF0SII/7uKwrluX6Vi/apWYA==
"@lexical/table@0.18.0":
version "0.18.0"
resolved "https://registry.yarnpkg.com/@lexical/table/-/table-0.18.0.tgz#ece206da2352b54f81e53defa0ac4f96ea30c70a"
integrity sha512-TeTAnuFAAgVjm1QE8adRB3GFWN+DUUiS4vzGq+ynPRCtNdpmW27NmTkRMyxKsetUtt7nIFfj4DvLvor4RwqIpA==
dependencies:
"@lexical/offset" "0.14.2"
"@lexical/clipboard" "0.18.0"
"@lexical/utils" "0.18.0"
lexical "0.18.0"
"@lexical/text@0.18.0":
version "0.18.0"
resolved "https://registry.yarnpkg.com/@lexical/text/-/text-0.18.0.tgz#909f4ca08f06f323ff77e76514fcd432f47bb29f"
integrity sha512-MTHSBeq3K0+lqSsP5oysBMnY4tPVhB8kAa2xBnEc3dYgXFxEEvJwZahbHNX93EPObtJkxXfUuI63Al4G3lYK8A==
dependencies:
lexical "0.18.0"
"@lexical/utils@0.18.0", "@lexical/utils@^0.18.0":
version "0.18.0"
resolved "https://registry.yarnpkg.com/@lexical/utils/-/utils-0.18.0.tgz#7e99feb99ef5ce88f2f16d522cc4501bfbf9165d"
integrity sha512-4s9dVpBZjqIaA/1q2GtfWFjKsv2Wqhjer0Zw2mcl1TIVN0zreXxcTKN316QppAWmSQJxVGvkWHjjaZJwl6/TSw==
dependencies:
"@lexical/list" "0.18.0"
"@lexical/selection" "0.18.0"
"@lexical/table" "0.18.0"
lexical "0.18.0"
"@lexical/yjs@0.18.0":
version "0.18.0"
resolved "https://registry.yarnpkg.com/@lexical/yjs/-/yjs-0.18.0.tgz#ca35614425b8dc7d162438c0c2b65b6e7788aba4"
integrity sha512-rl7Rl9XIb3ygQEEHOFtACdXs3BE+UUUmdyNqB6kK9A6IRGz+w4Azp+qzt8It/t+c0oaSYHpAtcLNXg1amJz+kA==
dependencies:
"@lexical/offset" "0.18.0"
"@lexical/selection" "0.18.0"
lexical "0.18.0"
"@mdn/browser-compat-data@^5.2.34", "@mdn/browser-compat-data@^5.3.13":
version "5.3.16"
@ -1730,23 +1778,11 @@
lodash "^4.17.21"
mousetrap "^1.6.5"
"@noble/ciphers@^0.2.0":
version "0.2.0"
resolved "https://registry.yarnpkg.com/@noble/ciphers/-/ciphers-0.2.0.tgz#a12cda60f3cf1ab5d7c77068c3711d2366649ed7"
integrity sha512-6YBxJDAapHSdd3bLDv6x2wRPwq4QFMUaB3HvljNBUTThDd12eSm7/3F+2lnfzx2jvM+S6Nsy0jEt9QbPqSwqRw==
"@noble/ciphers@^0.5.1":
version "0.5.1"
resolved "https://registry.yarnpkg.com/@noble/ciphers/-/ciphers-0.5.1.tgz#292f388b69c9ed80d49dca1a5cbfd4ff06852111"
integrity sha512-aNE06lbe36ifvMbbWvmmF/8jx6EQPu2HVg70V95T+iGjOuYwPpAccwAQc2HlXO2D0aiQ3zavbMga4jjWnrpiPA==
"@noble/curves@1.1.0", "@noble/curves@~1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.1.0.tgz#f13fc667c89184bc04cccb9b11e8e7bae27d8c3d"
integrity sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA==
dependencies:
"@noble/hashes" "1.3.1"
"@noble/curves@1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35"
@ -1754,6 +1790,13 @@
dependencies:
"@noble/hashes" "1.3.2"
"@noble/curves@~1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.1.0.tgz#f13fc667c89184bc04cccb9b11e8e7bae27d8c3d"
integrity sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA==
dependencies:
"@noble/hashes" "1.3.1"
"@noble/curves@~1.4.0":
version "1.4.0"
resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.4.0.tgz#f05771ef64da724997f69ee1261b2417a49522d6"
@ -1771,7 +1814,7 @@
resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39"
integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==
"@noble/hashes@1.4.0", "@noble/hashes@^1.3.3", "@noble/hashes@^1.4.0", "@noble/hashes@~1.4.0":
"@noble/hashes@1.4.0", "@noble/hashes@^1.4.0", "@noble/hashes@~1.4.0":
version "1.4.0"
resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426"
integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==
@ -1817,7 +1860,7 @@
websocket-ts "^2.1.5"
zod "^3.23.4"
"@popperjs/core@^2.11.5", "@popperjs/core@^2.9.2":
"@popperjs/core@^2.9.2":
version "2.11.5"
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.5.tgz#db5a11bf66bdab39569719555b0f76e138d7bd64"
integrity sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==
@ -2514,10 +2557,10 @@
date-fns "^2.0.1"
react-popper "^2.2.5"
"@types/react-dom@^18.0.0", "@types/react-dom@^18.0.10":
version "18.0.10"
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.10.tgz#3b66dec56aa0f16a6cc26da9e9ca96c35c0b4352"
integrity sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg==
"@types/react-dom@^18.0.0", "@types/react-dom@^18.3.0":
version "18.3.0"
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.0.tgz#0cbc818755d87066ab6ca74fbedb2547d74a82b0"
integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==
dependencies:
"@types/react" "*"
@ -2566,13 +2609,12 @@
dependencies:
"@types/react" "*"
"@types/react@*", "@types/react@16 || 17 || 18", "@types/react@^18.0.26":
version "18.0.26"
resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.26.tgz#8ad59fc01fef8eaf5c74f4ea392621749f0b7917"
integrity sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==
"@types/react@*", "@types/react@16 || 17 || 18", "@types/react@^18.3.9":
version "18.3.9"
resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.9.tgz#2cdf5f425ec8a133d67e9e3673909738b783db20"
integrity sha512-+BpAVyTpJkNWWSSnaLBk6ePpHLOGJKnEQNbINNovPWzvEUyAe3e+/d494QdEh71RekM/qV7lw6jzf1HGrJyAtQ==
dependencies:
"@types/prop-types" "*"
"@types/scheduler" "*"
csstype "^3.0.2"
"@types/reactcss@*":
@ -2601,11 +2643,6 @@
dependencies:
"@types/node" "*"
"@types/scheduler@*":
version "0.16.2"
resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39"
integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
"@types/semver@^7.3.9", "@types/semver@^7.5.0":
version "7.5.2"
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.2.tgz#31f6eec1ed7ec23f4f05608d3a2d381df041f564"
@ -2621,11 +2658,6 @@
resolved "https://registry.yarnpkg.com/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz#b6725d5f4af24ace33b36fafd295136e75509f43"
integrity sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==
"@types/uuid@^9.0.0":
version "9.0.0"
resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.0.tgz#53ef263e5239728b56096b0a869595135b7952d2"
integrity sha512-kr90f+ERiQtKWMz5rP32ltJ/BtULDI5RVO0uavn1HQUOwjx0R1h0rnDYNL0CepF1zL5bSY6FISAfd9tOdDhU5Q==
"@typescript-eslint/eslint-plugin@^7.0.0":
version "7.0.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.0.1.tgz#407daffe09d964d57aceaf3ac51846359fbe61b0"
@ -3385,11 +3417,6 @@ boolbase@^1.0.0:
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
bootstrap-icons@^1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/bootstrap-icons/-/bootstrap-icons-1.5.0.tgz#2cb19da148aa9105cb3174de2963564982d3dc55"
integrity sha512-44feMc7DE1Ccpsas/1wioN8ewFJNquvi5FewA06wLnqct7CwMdGDVy41ieHaacogzDqLfG8nADIvMNp9e4bfbA==
bowser@^2.11.0:
version "2.11.0"
resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f"
@ -3524,7 +3551,7 @@ chai@^5.1.1:
loupe "^3.1.0"
pathval "^2.0.0"
chalk@^2.3.2, chalk@^2.4.2:
chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@ -3740,11 +3767,6 @@ core-js-compat@^3.31.0:
dependencies:
browserslist "^4.21.10"
core-js@^3.27.2:
version "3.27.2"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.27.2.tgz#85b35453a424abdcacb97474797815f4d62ebbf7"
integrity sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w==
cosmiconfig@^7.0.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6"
@ -5006,7 +5028,7 @@ glob@7.1.6:
once "^1.3.0"
path-is-absolute "^1.0.0"
glob@^7.1.2, glob@^7.1.3, glob@^7.1.6:
glob@^7.1.3, glob@^7.1.6:
version "7.2.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
@ -5359,7 +5381,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
inherits@2, inherits@^2.0.3:
inherits@2:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@ -5383,11 +5405,6 @@ internal-slot@^1.0.5:
has "^1.0.3"
side-channel "^1.0.4"
intersection-observer@^0.12.2:
version "0.12.2"
resolved "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.12.2.tgz#4a45349cc0cd91916682b1f44c28d7ec737dc375"
integrity sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==
intl-messageformat@10.5.11:
version "10.5.11"
resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.5.11.tgz#95d6a3b0b303f924d5d8c3f8d3ad057d1dc73c64"
@ -5420,14 +5437,6 @@ invariant@^2.2.4:
dependencies:
loose-envify "^1.0.0"
is-arguments@^1.0.4:
version "1.1.1"
resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==
dependencies:
call-bind "^1.0.2"
has-tostringtag "^1.0.0"
is-array-buffer@^3.0.1, is-array-buffer@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe"
@ -5524,7 +5533,7 @@ is-fullwidth-code-point@^3.0.0:
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
is-generator-function@^1.0.10, is-generator-function@^1.0.7:
is-generator-function@^1.0.10:
version "1.0.10"
resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72"
integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==
@ -5629,7 +5638,7 @@ is-symbol@^1.0.2, is-symbol@^1.0.3:
dependencies:
has-symbols "^1.0.2"
is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.3, is-typed-array@^1.1.9:
is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9:
version "1.1.12"
resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a"
integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==
@ -5964,10 +5973,10 @@ levn@^0.4.1:
prelude-ls "^1.2.1"
type-check "~0.4.0"
lexical@^0.14.2:
version "0.14.2"
resolved "https://registry.yarnpkg.com/lexical/-/lexical-0.14.2.tgz#592e0e16ef415a4423be7ff65ac995fc4da40c90"
integrity sha512-Uxe0jD2T4XY/+WKiVgnV6OH/GmsF1I0YStcSuMR3Alfhnv5MEYuCa482zo+S5zOPjB1x9j/b+TOLtZEMArwELw==
lexical@0.18.0, lexical@^0.18.0:
version "0.18.0"
resolved "https://registry.yarnpkg.com/lexical/-/lexical-0.18.0.tgz#70dc89d8baf348b623d223c564616916a86118ce"
integrity sha512-3K/B0RpzjoW+Wj2E455wWXxkqxqK8UgdIiuqkOqdOsoSSo5mCkHOU6eVw7Nlmlr1MFvAMzGmz4RPn8NZaLQ2Mw==
li@^1.3.0:
version "1.3.0"
@ -6315,18 +6324,11 @@ minimatch@^5.0.1:
dependencies:
brace-expansion "^2.0.1"
minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6:
minimist@^1.2.0, minimist@^1.2.6:
version "1.2.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
mkdirp@^0.5.1:
version "0.5.5"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
dependencies:
minimist "^1.2.5"
mousetrap@^1.6.5:
version "1.6.5"
resolved "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.6.5.tgz#8a766d8c272b08393d5f56074e0b5ec183485bf9"
@ -6397,26 +6399,6 @@ normalize-url@^6.0.1:
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a"
integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==
nostr-machina@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/nostr-machina/-/nostr-machina-0.1.0.tgz#e111e86eb51655e5de31862174d23de184e6e98a"
integrity sha512-sNswM9vgq7R/96YIJKZOlG0M/m2mZrb1TiPA7hpOMrnWHBGdDuAeON0vLWJaGbvpuDKYQ1b5ZiLZ8HM3EZPevw==
dependencies:
nostr-tools "^1.14.0"
zod "^3.21.0"
nostr-tools@^1.14.0:
version "1.16.0"
resolved "https://registry.yarnpkg.com/nostr-tools/-/nostr-tools-1.16.0.tgz#5867f1d8bd055a5a3b27aadb199457dceb244314"
integrity sha512-sx/aOl0gmkeHVoIVbyOhEQhzF88NsrBXMC8bsjhPASqA6oZ8uSOAyEGgRLMfC3SKgzQD5Gr6KvDoAahaD6xKcg==
dependencies:
"@noble/ciphers" "^0.2.0"
"@noble/curves" "1.1.0"
"@noble/hashes" "1.3.1"
"@scure/base" "1.1.1"
"@scure/bip32" "1.3.1"
"@scure/bip39" "1.2.1"
nostr-tools@^2.3.0, nostr-tools@^2.5.0:
version "2.5.1"
resolved "https://registry.yarnpkg.com/nostr-tools/-/nostr-tools-2.5.1.tgz#614d6aaf5c21df6b239d7ed42fdf77616a4621e7"
@ -7036,11 +7018,6 @@ prismjs@^1.27.0:
resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12"
integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==
process@^0.11.10:
version "0.11.10"
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
prop-types-extra@^1.0.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.1.tgz#58c3b74cbfbb95d304625975aa2f0848329a010b"
@ -7157,13 +7134,13 @@ react-datepicker@^4.8.0:
react-onclickoutside "^6.12.0"
react-popper "^2.2.5"
react-dom@^18.0.0:
version "18.2.0"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d"
integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==
react-dom@^18.3.1:
version "18.3.1"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4"
integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==
dependencies:
loose-envify "^1.1.0"
scheduler "^0.23.0"
scheduler "^0.23.2"
react-error-boundary@^3.1.0, react-error-boundary@^3.1.4:
version "3.1.4"
@ -7227,16 +7204,6 @@ react-inlinesvg@^4.0.0:
dependencies:
react-from-dom "^0.6.2"
react-intl-translations-manager@^5.0.3:
version "5.0.3"
resolved "https://registry.yarnpkg.com/react-intl-translations-manager/-/react-intl-translations-manager-5.0.3.tgz#aee010ecf35975673e033ca5d7d3f4147894324d"
integrity sha512-EfBeugnOGFcdUbQyY9TqBMbuauQ8wm73ZqFr0UqCljhbXl7YDHQcVzclWFRkVmlUffzxitLQFhAZEVVeRNQSwA==
dependencies:
chalk "^2.3.2"
glob "^7.1.2"
json-stable-stringify "^1.0.1"
mkdirp "^0.5.1"
react-intl@^6.0.0:
version "6.4.7"
resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-6.4.7.tgz#28ec40350ff791a6a773f5e76b9e12835ae17e19"
@ -7294,7 +7261,7 @@ react-overlays@^0.9.0:
react-transition-group "^2.2.1"
warning "^3.0.0"
react-popper@^2.2.5, react-popper@^2.3.0:
react-popper@^2.2.5:
version "2.3.0"
resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-2.3.0.tgz#17891c620e1320dce318bad9fede46a5f71c70ba"
integrity sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==
@ -7315,7 +7282,7 @@ react-redux@^9.0.4:
"@types/use-sync-external-store" "^0.0.3"
use-sync-external-store "^1.0.0"
react-refresh@^0.14.0, react-refresh@^0.14.2:
react-refresh@^0.14.2:
version "0.14.2"
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.2.tgz#3833da01ce32da470f1f936b9d477da5c7028bf9"
integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==
@ -7435,15 +7402,15 @@ react-transition-group@^2.2.1:
prop-types "^15.6.2"
react-lifecycles-compat "^3.0.4"
react-virtuoso@^4.3.11:
version "4.3.11"
resolved "https://registry.yarnpkg.com/react-virtuoso/-/react-virtuoso-4.3.11.tgz#ab24e707287ef1b4bb5b52f3b14795ba896e9768"
integrity sha512-0YrCvQ5GsIKRcN34GxrzhSJGuMNI+hGxWci5cTVuPQ8QWTEsrKfCyqm7YNBMmV3pu7onG1YVUBo86CyCXdejXg==
react-virtuoso@^4.10.4:
version "4.10.4"
resolved "https://registry.yarnpkg.com/react-virtuoso/-/react-virtuoso-4.10.4.tgz#856ed415d7071db0c666ce84809bab8bb834f45c"
integrity sha512-G/gprhTbK+lzMxoo/iStcZxVEGph/cIhc3WANEpt92RuMw+LiCZOmBfKoeoZOHlm/iyftTrDJhGaTCpxyucnkQ==
react@^18.0.0:
version "18.2.0"
resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5"
integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
react@^18.3.1:
version "18.3.1"
resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891"
integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==
dependencies:
loose-envify "^1.1.0"
@ -7592,11 +7559,6 @@ reselect@^5.0.0, reselect@^5.0.1:
resolved "https://registry.yarnpkg.com/reselect/-/reselect-5.0.1.tgz#587cdaaeb4e0e8927cff80ebe2bbef05f74b1648"
integrity sha512-D72j2ubjgHpvuCiORWkOUxndHJrxDaSolheiz5CO+roz8ka97/4msh2E8F5qay4GawR5vzBt5MkbDHT+Rdy/Wg==
resize-observer-polyfill@^1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464"
integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==
resolve-alpn@^1.0.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9"
@ -7743,7 +7705,7 @@ safe-array-concat@^1.0.1:
has-symbols "^1.0.3"
isarray "^2.0.5"
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2:
safe-buffer@^5.0.1, safe-buffer@^5.1.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
@ -7778,10 +7740,10 @@ saxes@^6.0.0:
dependencies:
xmlchars "^2.2.0"
scheduler@^0.23.0:
version "0.23.0"
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe"
integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==
scheduler@^0.23.2:
version "0.23.2"
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3"
integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==
dependencies:
loose-envify "^1.1.0"
@ -8206,11 +8168,6 @@ stylelint@^16.0.2:
table "^6.8.1"
write-file-atomic "^5.0.1"
substring-trie@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/substring-trie/-/substring-trie-1.0.2.tgz#7b42592391628b4f2cb17365c6cce4257c7b7af5"
integrity sha1-e0JZI5Fii08ssXNlxszkJXx7evU=
sucrase@^3.32.0:
version "3.34.0"
resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.34.0.tgz#1e0e2d8fcf07f8b9c3569067d92fbd8690fb576f"
@ -8404,11 +8361,6 @@ tiny-invariant@^1.0.2, tiny-invariant@^1.1.0:
resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642"
integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==
tiny-queue@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/tiny-queue/-/tiny-queue-0.2.1.tgz#25a67f2c6e253b2ca941977b5ef7442ef97a6046"
integrity sha1-JaZ/LG4lOyypQZd7XvdELvl6YEY=
tiny-warning@^1.0.0, tiny-warning@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
@ -8508,7 +8460,7 @@ tsconfig-paths@^3.14.2:
minimist "^1.2.6"
strip-bom "^3.0.0"
tslib@2.6.2, tslib@^2.0.3, tslib@^2.3.1, tslib@^2.4.0, "tslib@^2.4.1 || ^1.9.3":
tslib@2.6.2, tslib@^2.0.3, tslib@^2.4.0, "tslib@^2.4.1 || ^1.9.3":
version "2.6.2"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
@ -8711,23 +8663,6 @@ util-deprecate@^1.0.2:
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
util@^0.12.4:
version "0.12.4"
resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253"
integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==
dependencies:
inherits "^2.0.3"
is-arguments "^1.0.4"
is-generator-function "^1.0.7"
is-typed-array "^1.1.3"
safe-buffer "^5.1.2"
which-typed-array "^1.1.2"
uuid@^9.0.0:
version "9.0.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5"
integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==
value-equal@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c"
@ -9061,7 +8996,7 @@ which-collection@^1.0.1:
is-weakmap "^2.0.1"
is-weakset "^2.0.1"
which-typed-array@^1.1.11, which-typed-array@^1.1.2, which-typed-array@^1.1.9:
which-typed-array@^1.1.11, which-typed-array@^1.1.9:
version "1.1.11"
resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a"
integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==
@ -9094,11 +9029,6 @@ why-is-node-running@^2.3.0:
siginfo "^2.0.0"
stackback "0.0.2"
wicg-inert@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/wicg-inert/-/wicg-inert-3.1.1.tgz#b033fd4fbfb9e3fd709e5d84becbdf2e06e5c229"
integrity sha512-PhBaNh8ur9Xm4Ggy4umelwNIP6pPP1bv3EaWaKqfb/QNme2rdLjm7wIInvV4WhxVHhzA4Spgw9qNSqWtB/ca2A==
workbox-background-sync@7.1.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-7.1.0.tgz#dac65e30af603511f1c92c3e99f53d6c064fde90"
@ -9356,7 +9286,7 @@ yocto-queue@^0.1.0:
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
zod@^3.21.0, zod@^3.23.4, zod@^3.23.5:
zod@^3.23.4, zod@^3.23.5:
version "3.23.5"
resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.5.tgz#c7b7617d017d4a2f21852f533258d26a9a5ae09f"
integrity sha512-fkwiq0VIQTksNNA131rDOsVJcns0pfVUjHzLrNBiF/O/Xxb5lQyEXkhZWcJ7npWsYlvs+h0jFWXXy4X46Em1JA==