diff --git a/.prettierignore b/.prettierignore index b487a4c856..be068076d8 100644 --- a/.prettierignore +++ b/.prettierignore @@ -63,7 +63,7 @@ docker-compose.override.yml # Ignore emoji map file /app/javascript/mastodon/features/emoji/emoji_map.json -/app/javascript/mastodon/features/emoji/emoji_sheet.json +/app/javascript/mastodon/features/emoji/emoji_data.json # Ignore locale files /app/javascript/mastodon/locales/*.json diff --git a/Gemfile b/Gemfile index b55ec1d730..44c4c9a54d 100644 --- a/Gemfile +++ b/Gemfile @@ -212,7 +212,7 @@ group :development, :test do gem 'test-prof', require: false # RSpec runner for rails - gem 'rspec-rails', '~> 7.0' + gem 'rspec-rails', '~> 8.0' end group :production do diff --git a/Gemfile.lock b/Gemfile.lock index 6960270127..8f5d3b021c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -160,7 +160,7 @@ GEM cocoon (1.2.15) color_diff (0.1) concurrent-ruby (1.3.5) - connection_pool (2.5.2) + connection_pool (2.5.3) cose (1.3.1) cbor (~> 0.5.9) openssl-signature_algorithm (~> 1.0) @@ -435,7 +435,7 @@ GEM mutex_m (0.3.0) net-http (0.6.0) uri - net-imap (0.5.6) + net-imap (0.5.8) date net-protocol net-ldap (0.19.0) @@ -711,7 +711,7 @@ GEM rotp (6.3.0) rouge (4.5.1) rpam2 (4.0.2) - rqrcode (3.0.0) + rqrcode (3.1.0) chunky_png (~> 1.0) rqrcode_core (~> 2.0) rqrcode_core (2.0.0) @@ -721,18 +721,18 @@ GEM rspec-mocks (~> 3.13.0) rspec-core (3.13.3) rspec-support (~> 3.13.0) - rspec-expectations (3.13.3) + rspec-expectations (3.13.4) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) rspec-github (3.0.0) rspec-core (~> 3.0) - rspec-mocks (3.13.2) + rspec-mocks (3.13.3) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-rails (7.1.1) - actionpack (>= 7.0) - activesupport (>= 7.0) - railties (>= 7.0) + rspec-rails (8.0.0) + actionpack (>= 7.2) + activesupport (>= 7.2) + railties (>= 7.2) rspec-core (~> 3.13) rspec-expectations (~> 3.13) rspec-mocks (~> 3.13) @@ -742,8 +742,8 @@ GEM rspec-expectations (~> 3.0) rspec-mocks (~> 3.0) sidekiq (>= 5, < 9) - rspec-support (3.13.2) - rubocop (1.75.3) + rspec-support (3.13.3) + rubocop (1.75.4) json (~> 2.3) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.1.0) @@ -842,7 +842,7 @@ GEM base64 stoplight (4.1.1) redlock (~> 1.0) - stringio (3.1.6) + stringio (3.1.7) strong_migrations (2.3.0) activerecord (>= 7) swd (2.0.3) @@ -1045,7 +1045,7 @@ DEPENDENCIES redis-namespace (~> 1.10) rqrcode (~> 3.0) rspec-github (~> 3.0) - rspec-rails (~> 7.0) + rspec-rails (~> 8.0) rspec-sidekiq (~> 5.0) rubocop rubocop-capybara diff --git a/app/helpers/context_helper.rb b/app/helpers/context_helper.rb index 6ddb9282df..22d1964cae 100644 --- a/app/helpers/context_helper.rb +++ b/app/helpers/context_helper.rb @@ -27,6 +27,13 @@ module ContextHelper suspended: { 'toot' => 'http://joinmastodon.org/ns#', 'suspended' => 'toot:suspended' }, attribution_domains: { 'toot' => 'http://joinmastodon.org/ns#', 'attributionDomains' => { '@id' => 'toot:attributionDomains', '@type' => '@id' } }, quote_requests: { 'QuoteRequest' => 'https://w3id.org/fep/044f#QuoteRequest' }, + interaction_policies: { + 'gts' => 'https://gotosocial.org/ns#', + 'interactionPolicy' => { '@id' => 'gts:interactionPolicy', '@type' => '@id' }, + 'canQuote' => { '@id' => 'gts:canQuote', '@type' => '@id' }, + 'automaticApproval' => { '@id' => 'gts:automaticApproval', '@type' => '@id' }, + 'manualApproval' => { '@id' => 'gts:manualApproval', '@type' => '@id' }, + }, }.freeze def full_context diff --git a/app/javascript/mastodon/actions/accounts_typed.ts b/app/javascript/mastodon/actions/accounts_typed.ts index fcdec97e08..fe7c7327ce 100644 --- a/app/javascript/mastodon/actions/accounts_typed.ts +++ b/app/javascript/mastodon/actions/accounts_typed.ts @@ -1,18 +1,18 @@ import { createAction } from '@reduxjs/toolkit'; -import { apiRemoveAccountFromFollowers } from 'mastodon/api/accounts'; -import type { ApiAccountJSON } from 'mastodon/api_types/accounts'; +import { + apiRemoveAccountFromFollowers, + apiGetEndorsedAccounts, +} from 'mastodon/api/accounts'; import type { ApiRelationshipJSON } from 'mastodon/api_types/relationships'; import { createDataLoadingThunk } from 'mastodon/store/typed_functions'; +import { importFetchedAccounts } from './importer'; + export const revealAccount = createAction<{ id: string; }>('accounts/revealAccount'); -export const importAccounts = createAction<{ accounts: ApiAccountJSON[] }>( - 'accounts/importAccounts', -); - function actionWithSkipLoadingTrue(args: Args) { return { payload: { @@ -104,3 +104,12 @@ export const removeAccountFromFollowers = createDataLoadingThunk( apiRemoveAccountFromFollowers(accountId), (relationship) => ({ relationship }), ); + +export const fetchEndorsedAccounts = createDataLoadingThunk( + 'accounts/endorsements', + ({ accountId }: { accountId: string }) => apiGetEndorsedAccounts(accountId), + (data, { dispatch }) => { + dispatch(importFetchedAccounts(data)); + return data; + }, +); diff --git a/app/javascript/mastodon/actions/featured_tags.js b/app/javascript/mastodon/actions/featured_tags.js deleted file mode 100644 index 6ee4dee2bc..0000000000 --- a/app/javascript/mastodon/actions/featured_tags.js +++ /dev/null @@ -1,34 +0,0 @@ -import api from '../api'; - -export const FEATURED_TAGS_FETCH_REQUEST = 'FEATURED_TAGS_FETCH_REQUEST'; -export const FEATURED_TAGS_FETCH_SUCCESS = 'FEATURED_TAGS_FETCH_SUCCESS'; -export const FEATURED_TAGS_FETCH_FAIL = 'FEATURED_TAGS_FETCH_FAIL'; - -export const fetchFeaturedTags = (id) => (dispatch, getState) => { - if (getState().getIn(['user_lists', 'featured_tags', id, 'items'])) { - return; - } - - dispatch(fetchFeaturedTagsRequest(id)); - - api().get(`/api/v1/accounts/${id}/featured_tags`) - .then(({ data }) => dispatch(fetchFeaturedTagsSuccess(id, data))) - .catch(err => dispatch(fetchFeaturedTagsFail(id, err))); -}; - -export const fetchFeaturedTagsRequest = (id) => ({ - type: FEATURED_TAGS_FETCH_REQUEST, - id, -}); - -export const fetchFeaturedTagsSuccess = (id, tags) => ({ - type: FEATURED_TAGS_FETCH_SUCCESS, - id, - tags, -}); - -export const fetchFeaturedTagsFail = (id, error) => ({ - type: FEATURED_TAGS_FETCH_FAIL, - id, - error, -}); diff --git a/app/javascript/mastodon/actions/featured_tags.ts b/app/javascript/mastodon/actions/featured_tags.ts new file mode 100644 index 0000000000..12ed6282af --- /dev/null +++ b/app/javascript/mastodon/actions/featured_tags.ts @@ -0,0 +1,7 @@ +import { apiGetFeaturedTags } from 'mastodon/api/accounts'; +import { createDataLoadingThunk } from 'mastodon/store/typed_functions'; + +export const fetchFeaturedTags = createDataLoadingThunk( + 'accounts/featured_tags', + ({ accountId }: { accountId: string }) => apiGetFeaturedTags(accountId), +); diff --git a/app/javascript/mastodon/actions/importer/accounts.ts b/app/javascript/mastodon/actions/importer/accounts.ts new file mode 100644 index 0000000000..9eedad6da5 --- /dev/null +++ b/app/javascript/mastodon/actions/importer/accounts.ts @@ -0,0 +1,7 @@ +import { createAction } from '@reduxjs/toolkit'; + +import type { ApiAccountJSON } from 'mastodon/api_types/accounts'; + +export const importAccounts = createAction<{ accounts: ApiAccountJSON[] }>( + 'accounts/importAccounts', +); diff --git a/app/javascript/mastodon/actions/importer/index.js b/app/javascript/mastodon/actions/importer/index.js index a527043940..becbdb88c3 100644 --- a/app/javascript/mastodon/actions/importer/index.js +++ b/app/javascript/mastodon/actions/importer/index.js @@ -1,7 +1,6 @@ import { createPollFromServerJSON } from 'mastodon/models/poll'; -import { importAccounts } from '../accounts_typed'; - +import { importAccounts } from './accounts'; import { normalizeStatus } from './normalizer'; import { importPolls } from './polls'; diff --git a/app/javascript/mastodon/api/accounts.ts b/app/javascript/mastodon/api/accounts.ts index c574a47459..074bcffaa1 100644 --- a/app/javascript/mastodon/api/accounts.ts +++ b/app/javascript/mastodon/api/accounts.ts @@ -1,5 +1,7 @@ -import { apiRequestPost } from 'mastodon/api'; +import { apiRequestPost, apiRequestGet } from 'mastodon/api'; +import type { ApiAccountJSON } from 'mastodon/api_types/accounts'; import type { ApiRelationshipJSON } from 'mastodon/api_types/relationships'; +import type { ApiHashtagJSON } from 'mastodon/api_types/tags'; export const apiSubmitAccountNote = (id: string, value: string) => apiRequestPost(`v1/accounts/${id}/note`, { @@ -23,3 +25,9 @@ export const apiRemoveAccountFromFollowers = (id: string) => apiRequestPost( `v1/accounts/${id}/remove_from_followers`, ); + +export const apiGetFeaturedTags = (id: string) => + apiRequestGet(`v1/accounts/${id}/featured_tags`); + +export const apiGetEndorsedAccounts = (id: string) => + apiRequestGet(`v1/accounts/${id}/endorsements`); diff --git a/app/javascript/mastodon/components/dropdown_menu.tsx b/app/javascript/mastodon/components/dropdown_menu.tsx index c2fb93940c..23d77f0dda 100644 --- a/app/javascript/mastodon/components/dropdown_menu.tsx +++ b/app/javascript/mastodon/components/dropdown_menu.tsx @@ -297,6 +297,7 @@ interface DropdownProps { scrollable?: boolean; scrollKey?: string; status?: ImmutableMap; + forceDropdown?: boolean; renderItem?: RenderItemFn; renderHeader?: RenderHeaderFn; onOpen?: () => void; @@ -316,6 +317,7 @@ export const Dropdown = ({ disabled, scrollable, status, + forceDropdown = false, renderItem, renderHeader, onOpen, @@ -386,7 +388,7 @@ export const Dropdown = ({ dispatch(fetchRelationships([prefetchAccountId])); } - if (isUserTouching()) { + if (isUserTouching() && !forceDropdown) { dispatch( openModal({ modalType: 'ACTIONS', @@ -416,6 +418,7 @@ export const Dropdown = ({ handleItemClick, open, items, + forceDropdown, handleClose, ], ); diff --git a/app/javascript/mastodon/components/edited_timestamp/index.tsx b/app/javascript/mastodon/components/edited_timestamp/index.tsx index 4a33210199..63b21cf5bd 100644 --- a/app/javascript/mastodon/components/edited_timestamp/index.tsx +++ b/app/javascript/mastodon/components/edited_timestamp/index.tsx @@ -116,6 +116,7 @@ export const EditedTimestamp: React.FC<{ renderHeader={renderHeader} onOpen={handleOpen} onItemClick={handleItemClick} + forceDropdown > ); }; diff --git a/app/javascript/mastodon/features/account_featured/index.tsx b/app/javascript/mastodon/features/account_featured/index.tsx index 70e411f61a..d516bc3411 100644 --- a/app/javascript/mastodon/features/account_featured/index.tsx +++ b/app/javascript/mastodon/features/account_featured/index.tsx @@ -7,19 +7,21 @@ import { useParams } from 'react-router'; import type { Map as ImmutableMap } from 'immutable'; import { List as ImmutableList } from 'immutable'; +import { fetchEndorsedAccounts } from 'mastodon/actions/accounts'; import { fetchFeaturedTags } from 'mastodon/actions/featured_tags'; import { expandAccountFeaturedTimeline } from 'mastodon/actions/timelines'; +import { Account } from 'mastodon/components/account'; import { ColumnBackButton } from 'mastodon/components/column_back_button'; import { LoadingIndicator } from 'mastodon/components/loading_indicator'; import { RemoteHint } from 'mastodon/components/remote_hint'; import StatusContainer from 'mastodon/containers/status_container'; +import { AccountHeader } from 'mastodon/features/account_timeline/components/account_header'; +import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error'; +import Column from 'mastodon/features/ui/components/column'; import { useAccountId } from 'mastodon/hooks/useAccountId'; import { useAccountVisibility } from 'mastodon/hooks/useAccountVisibility'; import { useAppDispatch, useAppSelector } from 'mastodon/store'; -import { AccountHeader } from '../account_timeline/components/account_header'; -import Column from '../ui/components/column'; - import { EmptyMessage } from './components/empty_message'; import { FeaturedTag } from './components/featured_tag'; import type { TagMap } from './components/featured_tag'; @@ -29,7 +31,9 @@ interface Params { id?: string; } -const AccountFeatured = () => { +const AccountFeatured: React.FC<{ multiColumn: boolean }> = ({ + multiColumn, +}) => { const accountId = useAccountId(); const { suspended, blockedBy, hidden } = useAccountVisibility(accountId); const forceEmptyState = suspended || blockedBy || hidden; @@ -40,7 +44,8 @@ const AccountFeatured = () => { useEffect(() => { if (accountId) { void dispatch(expandAccountFeaturedTimeline(accountId)); - dispatch(fetchFeaturedTags(accountId)); + void dispatch(fetchFeaturedTags({ accountId })); + void dispatch(fetchEndorsedAccounts({ accountId })); } }, [accountId, dispatch]); @@ -67,6 +72,17 @@ const AccountFeatured = () => { ImmutableList(), ) as ImmutableList, ); + const featuredAccountIds = useAppSelector( + (state) => + state.user_lists.getIn( + ['featured_accounts', accountId, 'items'], + ImmutableList(), + ) as ImmutableList, + ); + + if (accountId === null) { + return ; + } if (isLoading) { return ( @@ -78,7 +94,11 @@ const AccountFeatured = () => { ); } - if (featuredStatusIds.isEmpty() && featuredTags.isEmpty()) { + if ( + featuredStatusIds.isEmpty() && + featuredTags.isEmpty() && + featuredAccountIds.isEmpty() + ) { return ( { ))} )} + {!featuredAccountIds.isEmpty() && ( + <> +

+ +

+ {featuredAccountIds.map((featuredAccountId) => ( + + ))} + + )} diff --git a/app/javascript/mastodon/features/account_gallery/index.tsx b/app/javascript/mastodon/features/account_gallery/index.tsx index 0027329c93..594f71cb23 100644 --- a/app/javascript/mastodon/features/account_gallery/index.tsx +++ b/app/javascript/mastodon/features/account_gallery/index.tsx @@ -147,7 +147,7 @@ export const AccountGallery: React.FC<{ [dispatch], ); - if (accountId && !isAccount) { + if (accountId === null) { return ; } diff --git a/app/javascript/mastodon/features/account_timeline/components/account_header.tsx b/app/javascript/mastodon/features/account_timeline/components/account_header.tsx index 9d4825d302..b7908cc8d3 100644 --- a/app/javascript/mastodon/features/account_timeline/components/account_header.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/account_header.tsx @@ -107,7 +107,6 @@ const messages = defineMessages({ id: 'account.disable_notifications', defaultMessage: 'Stop notifying me when @{name} posts', }, - pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned posts' }, preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences', @@ -451,7 +450,6 @@ export const AccountHeader: React.FC<{ text: intl.formatMessage(messages.preferences), href: '/settings/preferences', }); - arr.push({ text: intl.formatMessage(messages.pins), to: '/pinned' }); arr.push(null); arr.push({ text: intl.formatMessage(messages.follow_requests), diff --git a/app/javascript/mastodon/features/account_timeline/index.jsx b/app/javascript/mastodon/features/account_timeline/index.jsx index a5223275b3..6fc7d0a4ef 100644 --- a/app/javascript/mastodon/features/account_timeline/index.jsx +++ b/app/javascript/mastodon/features/account_timeline/index.jsx @@ -13,7 +13,6 @@ import { normalizeForLookup } from 'mastodon/reducers/accounts_map'; import { getAccountHidden } from 'mastodon/selectors/accounts'; import { lookupAccount, fetchAccount } from '../../actions/accounts'; -import { fetchFeaturedTags } from '../../actions/featured_tags'; import { expandAccountFeaturedTimeline, expandAccountTimeline, connectTimeline, disconnectTimeline } from '../../actions/timelines'; import { ColumnBackButton } from '../../components/column_back_button'; import { LoadingIndicator } from '../../components/loading_indicator'; @@ -27,7 +26,7 @@ import { LimitedAccountHint } from './components/limited_account_hint'; const emptyList = ImmutableList(); const mapStateToProps = (state, { params: { acct, id, tagged }, withReplies = false }) => { - const accountId = id || state.getIn(['accounts_map', normalizeForLookup(acct)]); + const accountId = id || state.accounts_map[normalizeForLookup(acct)]; if (accountId === null) { return { @@ -86,7 +85,6 @@ class AccountTimeline extends ImmutablePureComponent { dispatch(expandAccountFeaturedTimeline(accountId, { tagged })); } - dispatch(fetchFeaturedTags(accountId)); dispatch(expandAccountTimeline(accountId, { withReplies, tagged })); if (accountId === me) { diff --git a/app/javascript/mastodon/features/compose/components/action_bar.tsx b/app/javascript/mastodon/features/compose/components/action_bar.tsx index af24c565f6..55e95fb5d8 100644 --- a/app/javascript/mastodon/features/compose/components/action_bar.tsx +++ b/app/javascript/mastodon/features/compose/components/action_bar.tsx @@ -9,7 +9,6 @@ import { useAppDispatch } from 'mastodon/store'; const messages = defineMessages({ edit_profile: { id: 'account.edit_profile', defaultMessage: 'Edit profile' }, - pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned posts' }, preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences', @@ -53,7 +52,6 @@ export const ActionBar: React.FC = () => { text: intl.formatMessage(messages.preferences), href: '/settings/preferences', }, - { text: intl.formatMessage(messages.pins), to: '/pinned' }, null, { text: intl.formatMessage(messages.follow_requests), diff --git a/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.jsx b/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.jsx index a7d4408d1a..2bd6af4cf4 100644 --- a/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.jsx +++ b/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.jsx @@ -40,7 +40,7 @@ let EmojiPicker, Emoji; // load asynchronously const listenerOptions = supportsPassiveEvents ? { passive: true, capture: true } : true; -const backgroundImageFn = () => `${assetHost}/emoji/sheet_15.png`; +const backgroundImageFn = () => `${assetHost}/emoji/sheet_15_1.png`; const notFoundFn = () => (
diff --git a/app/javascript/mastodon/features/directory/index.tsx b/app/javascript/mastodon/features/directory/index.tsx index 1374f99235..a29febcd1a 100644 --- a/app/javascript/mastodon/features/directory/index.tsx +++ b/app/javascript/mastodon/features/directory/index.tsx @@ -130,6 +130,7 @@ export const Directory: React.FC<{ }, [dispatch, order, local]); const pinned = !!columnId; + const initialLoad = isLoading && accountIds.size === 0; const scrollableArea = (
@@ -170,7 +171,7 @@ export const Directory: React.FC<{
- {isLoading ? ( + {initialLoad ? ( ) : ( accountIds.map((accountId) => ( @@ -179,7 +180,11 @@ export const Directory: React.FC<{ )}
- +
); diff --git a/app/javascript/mastodon/features/emoji/emoji_compressed.js b/app/javascript/mastodon/features/emoji/emoji_compressed.js index 5cd3a1317d..7cc1de7087 100644 --- a/app/javascript/mastodon/features/emoji/emoji_compressed.js +++ b/app/javascript/mastodon/features/emoji/emoji_compressed.js @@ -7,94 +7,21 @@ // This version comment should be bumped each time the emoji data is changed // to ensure that the prevaled file is regenerated by Babel -// version: 3 +// version: 4 -// This json file contains the names of the categories. -const emojiMart5LocalesData = require('@emoji-mart/data/i18n/en.json'); -const emojiMart5Data = require('@emoji-mart/data/sets/15/all.json'); +const { NimbleEmojiIndex } = require('emoji-mart'); const { uncompress: emojiMartUncompress } = require('emoji-mart/dist/utils/data'); -const _ = require('lodash'); +let data = require('./emoji_data.json'); const emojiMap = require('./emoji_map.json'); -// This json file is downloaded from https://github.com/iamcal/emoji-data/ -// and is used to correct the sheet coordinates since we're using that repo's sheet -const emojiSheetData = require('./emoji_sheet.json'); const { unicodeToFilename } = require('./unicode_to_filename'); const { unicodeToUnifiedName } = require('./unicode_to_unified_name'); -// Grabbed from `emoji_utils` to avoid circular dependency -function unifiedToNative(unified) { - let unicodes = unified.split('-'), - codePoints = unicodes.map((u) => `0x${u}`); - - return String.fromCodePoint(...codePoints); -} - -let data = { - compressed: true, - categories: emojiMart5Data.categories.map(cat => { - return { - ...cat, - name: emojiMart5LocalesData.categories[cat.id] - }; - }), - aliases: emojiMart5Data.aliases, - emojis: _(emojiMart5Data.emojis).values().map(emoji => { - let skin_variations = {}; - const unified = emoji.skins[0].unified.toUpperCase(); - const emojiFromRawData = emojiSheetData.find(e => e.unified === unified); - - if (!emojiFromRawData) { - return undefined; - } - - if (emoji.skins.length > 1) { - const [, ...nonDefaultSkins] = emoji.skins; - nonDefaultSkins.forEach(skin => { - const [matchingRawCodePoints,matchingRawEmoji] = Object.entries(emojiFromRawData.skin_variations).find((pair) => { - const [, value] = pair; - return value.unified.toLowerCase() === skin.unified; - }); - - if (matchingRawEmoji && matchingRawCodePoints) { - // At the time of writing, the json from `@emoji-mart/data` doesn't have data - // for emoji like `woman-heart-woman` with two different skin tones. - const skinToneCode = matchingRawCodePoints.split('-')[0]; - skin_variations[skinToneCode] = { - unified: matchingRawEmoji.unified.toUpperCase(), - non_qualified: null, - sheet_x: matchingRawEmoji.sheet_x, - sheet_y: matchingRawEmoji.sheet_y, - has_img_twitter: true, - native: unifiedToNative(matchingRawEmoji.unified.toUpperCase()) - }; - } - }); - } - - return { - a: emoji.name, - b: unified, - c: undefined, - f: true, - j: [emoji.id, ...emoji.keywords], - k: [emojiFromRawData.sheet_x, emojiFromRawData.sheet_y], - m: emoji.emoticons?.[0], - l: emoji.emoticons, - o: emoji.version, - id: emoji.id, - skin_variations, - native: unifiedToNative(unified.toUpperCase()) - }; - }).compact().keyBy(e => e.id).mapValues(e => _.omit(e, 'id')).value() -}; - -if (data.compressed) { - emojiMartUncompress(data); -} +emojiMartUncompress(data); const emojiMartData = data; +const emojiIndex = new NimbleEmojiIndex(emojiMartData); const excluded = ['®', '©', '™']; const skinTones = ['🏻', '🏼', '🏽', '🏾', '🏿']; @@ -103,10 +30,15 @@ const shortcodeMap = {}; const shortCodesToEmojiData = {}; const emojisWithoutShortCodes = []; -Object.keys(emojiMart5Data.emojis).forEach(key => { - let emoji = emojiMart5Data.emojis[key]; +Object.keys(emojiIndex.emojis).forEach(key => { + let emoji = emojiIndex.emojis[key]; - shortcodeMap[emoji.skins[0].native] = emoji.id; + // Emojis with skin tone modifiers are stored like this + if (Object.hasOwn(emoji, '1')) { + emoji = emoji['1']; + } + + shortcodeMap[emoji.native] = emoji.id; }); const stripModifiers = unicode => { @@ -150,9 +82,13 @@ Object.keys(emojiMap).forEach(key => { } }); -Object.keys(emojiMartData.emojis).forEach(key => { - let emoji = emojiMartData.emojis[key]; +Object.keys(emojiIndex.emojis).forEach(key => { + let emoji = emojiIndex.emojis[key]; + // Emojis with skin tone modifiers are stored like this + if (Object.hasOwn(emoji, '1')) { + emoji = emoji['1']; + } const { native } = emoji; let { short_names, search, unified } = emojiMartData.emojis[key]; diff --git a/app/javascript/mastodon/features/emoji/emoji_data.json b/app/javascript/mastodon/features/emoji/emoji_data.json new file mode 100644 index 0000000000..4d7a48692b --- /dev/null +++ b/app/javascript/mastodon/features/emoji/emoji_data.json @@ -0,0 +1 @@ +{"compressed":true,"categories":[{"id":"people","name":"Smileys & People","emojis":["grinning","smiley","smile","grin","laughing","sweat_smile","rolling_on_the_floor_laughing","joy","slightly_smiling_face","upside_down_face","melting_face","wink","blush","innocent","smiling_face_with_3_hearts","heart_eyes","star-struck","kissing_heart","kissing","relaxed","kissing_closed_eyes","kissing_smiling_eyes","smiling_face_with_tear","yum","stuck_out_tongue","stuck_out_tongue_winking_eye","zany_face","stuck_out_tongue_closed_eyes","money_mouth_face","hugging_face","face_with_hand_over_mouth","face_with_open_eyes_and_hand_over_mouth","face_with_peeking_eye","shushing_face","thinking_face","saluting_face","zipper_mouth_face","face_with_raised_eyebrow","neutral_face","expressionless","no_mouth","dotted_line_face","face_in_clouds","smirk","unamused","face_with_rolling_eyes","grimacing","face_exhaling","lying_face","shaking_face","head_shaking_horizontally","head_shaking_vertically","relieved","pensive","sleepy","drooling_face","sleeping","mask","face_with_thermometer","face_with_head_bandage","nauseated_face","face_vomiting","sneezing_face","hot_face","cold_face","woozy_face","dizzy_face","face_with_spiral_eyes","exploding_head","face_with_cowboy_hat","partying_face","disguised_face","sunglasses","nerd_face","face_with_monocle","confused","face_with_diagonal_mouth","worried","slightly_frowning_face","white_frowning_face","open_mouth","hushed","astonished","flushed","pleading_face","face_holding_back_tears","frowning","anguished","fearful","cold_sweat","disappointed_relieved","cry","sob","scream","confounded","persevere","disappointed","sweat","weary","tired_face","yawning_face","triumph","rage","angry","face_with_symbols_on_mouth","smiling_imp","imp","skull","skull_and_crossbones","hankey","clown_face","japanese_ogre","japanese_goblin","ghost","alien","space_invader","robot_face","smiley_cat","smile_cat","joy_cat","heart_eyes_cat","smirk_cat","kissing_cat","scream_cat","crying_cat_face","pouting_cat","see_no_evil","hear_no_evil","speak_no_evil","wave","raised_back_of_hand","raised_hand_with_fingers_splayed","hand","spock-hand","rightwards_hand","leftwards_hand","palm_down_hand","palm_up_hand","leftwards_pushing_hand","rightwards_pushing_hand","ok_hand","pinched_fingers","pinching_hand","v","crossed_fingers","hand_with_index_finger_and_thumb_crossed","i_love_you_hand_sign","the_horns","call_me_hand","point_left","point_right","point_up_2","middle_finger","point_down","point_up","index_pointing_at_the_viewer","+1","-1","fist","facepunch","left-facing_fist","right-facing_fist","clap","raised_hands","heart_hands","open_hands","palms_up_together","handshake","pray","writing_hand","nail_care","selfie","muscle","mechanical_arm","mechanical_leg","leg","foot","ear","ear_with_hearing_aid","nose","brain","anatomical_heart","lungs","tooth","bone","eyes","eye","tongue","lips","biting_lip","baby","child","boy","girl","adult","person_with_blond_hair","man","bearded_person","man_with_beard","woman_with_beard","red_haired_man","curly_haired_man","white_haired_man","bald_man","woman","red_haired_woman","red_haired_person","curly_haired_woman","curly_haired_person","white_haired_woman","white_haired_person","bald_woman","bald_person","blond-haired-woman","blond-haired-man","older_adult","older_man","older_woman","person_frowning","man-frowning","woman-frowning","person_with_pouting_face","man-pouting","woman-pouting","no_good","man-gesturing-no","woman-gesturing-no","ok_woman","man-gesturing-ok","woman-gesturing-ok","information_desk_person","man-tipping-hand","woman-tipping-hand","raising_hand","man-raising-hand","woman-raising-hand","deaf_person","deaf_man","deaf_woman","bow","man-bowing","woman-bowing","face_palm","man-facepalming","woman-facepalming","shrug","man-shrugging","woman-shrugging","health_worker","male-doctor","female-doctor","student","male-student","female-student","teacher","male-teacher","female-teacher","judge","male-judge","female-judge","farmer","male-farmer","female-farmer","cook","male-cook","female-cook","mechanic","male-mechanic","female-mechanic","factory_worker","male-factory-worker","female-factory-worker","office_worker","male-office-worker","female-office-worker","scientist","male-scientist","female-scientist","technologist","male-technologist","female-technologist","singer","male-singer","female-singer","artist","male-artist","female-artist","pilot","male-pilot","female-pilot","astronaut","male-astronaut","female-astronaut","firefighter","male-firefighter","female-firefighter","cop","male-police-officer","female-police-officer","sleuth_or_spy","male-detective","female-detective","guardsman","male-guard","female-guard","ninja","construction_worker","male-construction-worker","female-construction-worker","person_with_crown","prince","princess","man_with_turban","man-wearing-turban","woman-wearing-turban","man_with_gua_pi_mao","person_with_headscarf","person_in_tuxedo","man_in_tuxedo","woman_in_tuxedo","bride_with_veil","man_with_veil","woman_with_veil","pregnant_woman","pregnant_man","pregnant_person","breast-feeding","woman_feeding_baby","man_feeding_baby","person_feeding_baby","angel","santa","mrs_claus","mx_claus","superhero","male_superhero","female_superhero","supervillain","male_supervillain","female_supervillain","mage","male_mage","female_mage","fairy","male_fairy","female_fairy","vampire","male_vampire","female_vampire","merperson","merman","mermaid","elf","male_elf","female_elf","genie","male_genie","female_genie","zombie","male_zombie","female_zombie","troll","massage","man-getting-massage","woman-getting-massage","haircut","man-getting-haircut","woman-getting-haircut","walking","man-walking","woman-walking","person_walking_facing_right","woman_walking_facing_right","man_walking_facing_right","standing_person","man_standing","woman_standing","kneeling_person","man_kneeling","woman_kneeling","person_kneeling_facing_right","woman_kneeling_facing_right","man_kneeling_facing_right","person_with_probing_cane","person_with_white_cane_facing_right","man_with_probing_cane","man_with_white_cane_facing_right","woman_with_probing_cane","woman_with_white_cane_facing_right","person_in_motorized_wheelchair","person_in_motorized_wheelchair_facing_right","man_in_motorized_wheelchair","man_in_motorized_wheelchair_facing_right","woman_in_motorized_wheelchair","woman_in_motorized_wheelchair_facing_right","person_in_manual_wheelchair","person_in_manual_wheelchair_facing_right","man_in_manual_wheelchair","man_in_manual_wheelchair_facing_right","woman_in_manual_wheelchair","woman_in_manual_wheelchair_facing_right","runner","man-running","woman-running","person_running_facing_right","woman_running_facing_right","man_running_facing_right","dancer","man_dancing","man_in_business_suit_levitating","dancers","men-with-bunny-ears-partying","women-with-bunny-ears-partying","person_in_steamy_room","man_in_steamy_room","woman_in_steamy_room","person_climbing","man_climbing","woman_climbing","fencer","horse_racing","skier","snowboarder","golfer","man-golfing","woman-golfing","surfer","man-surfing","woman-surfing","rowboat","man-rowing-boat","woman-rowing-boat","swimmer","man-swimming","woman-swimming","person_with_ball","man-bouncing-ball","woman-bouncing-ball","weight_lifter","man-lifting-weights","woman-lifting-weights","bicyclist","man-biking","woman-biking","mountain_bicyclist","man-mountain-biking","woman-mountain-biking","person_doing_cartwheel","man-cartwheeling","woman-cartwheeling","wrestlers","man-wrestling","woman-wrestling","water_polo","man-playing-water-polo","woman-playing-water-polo","handball","man-playing-handball","woman-playing-handball","juggling","man-juggling","woman-juggling","person_in_lotus_position","man_in_lotus_position","woman_in_lotus_position","bath","sleeping_accommodation","people_holding_hands","two_women_holding_hands","man_and_woman_holding_hands","two_men_holding_hands","couplekiss","woman-kiss-man","man-kiss-man","woman-kiss-woman","couple_with_heart","woman-heart-man","man-heart-man","woman-heart-woman","man-woman-boy","man-woman-girl","man-woman-girl-boy","man-woman-boy-boy","man-woman-girl-girl","man-man-boy","man-man-girl","man-man-girl-boy","man-man-boy-boy","man-man-girl-girl","woman-woman-boy","woman-woman-girl","woman-woman-girl-boy","woman-woman-boy-boy","woman-woman-girl-girl","man-boy","man-boy-boy","man-girl","man-girl-boy","man-girl-girl","woman-boy","woman-boy-boy","woman-girl","woman-girl-boy","woman-girl-girl","speaking_head_in_silhouette","bust_in_silhouette","busts_in_silhouette","people_hugging","family","family_adult_adult_child","family_adult_adult_child_child","family_adult_child","family_adult_child_child","footprints","love_letter","cupid","gift_heart","sparkling_heart","heartpulse","heartbeat","revolving_hearts","two_hearts","heart_decoration","heavy_heart_exclamation_mark_ornament","broken_heart","heart_on_fire","mending_heart","heart","pink_heart","orange_heart","yellow_heart","green_heart","blue_heart","light_blue_heart","purple_heart","brown_heart","black_heart","grey_heart","white_heart","kiss","100","anger","boom","dizzy","sweat_drops","dash","hole","speech_balloon","eye-in-speech-bubble","left_speech_bubble","right_anger_bubble","thought_balloon","zzz"]},{"id":"nature","name":"Animals & Nature","emojis":["monkey_face","monkey","gorilla","orangutan","dog","dog2","guide_dog","service_dog","poodle","wolf","fox_face","raccoon","cat","cat2","black_cat","lion_face","tiger","tiger2","leopard","horse","moose","donkey","racehorse","unicorn_face","zebra_face","deer","bison","cow","ox","water_buffalo","cow2","pig","pig2","boar","pig_nose","ram","sheep","goat","dromedary_camel","camel","llama","giraffe_face","elephant","mammoth","rhinoceros","hippopotamus","mouse","mouse2","rat","hamster","rabbit","rabbit2","chipmunk","beaver","hedgehog","bat","bear","polar_bear","koala","panda_face","sloth","otter","skunk","kangaroo","badger","feet","turkey","chicken","rooster","hatching_chick","baby_chick","hatched_chick","bird","penguin","dove_of_peace","eagle","duck","swan","owl","dodo","feather","flamingo","peacock","parrot","wing","black_bird","goose","phoenix","frog","crocodile","turtle","lizard","snake","dragon_face","dragon","sauropod","t-rex","whale","whale2","dolphin","seal","fish","tropical_fish","blowfish","shark","octopus","shell","coral","jellyfish","snail","butterfly","bug","ant","bee","beetle","ladybug","cricket","cockroach","spider","spider_web","scorpion","mosquito","fly","worm","microbe","bouquet","cherry_blossom","white_flower","lotus","rosette","rose","wilted_flower","hibiscus","sunflower","blossom","tulip","hyacinth","seedling","potted_plant","evergreen_tree","deciduous_tree","palm_tree","cactus","ear_of_rice","herb","shamrock","four_leaf_clover","maple_leaf","fallen_leaf","leaves","empty_nest","nest_with_eggs","mushroom"]},{"id":"foods","name":"Food & Drink","emojis":["grapes","melon","watermelon","tangerine","lemon","lime","banana","pineapple","mango","apple","green_apple","pear","peach","cherries","strawberry","blueberries","kiwifruit","tomato","olive","coconut","avocado","eggplant","potato","carrot","corn","hot_pepper","bell_pepper","cucumber","leafy_green","broccoli","garlic","onion","peanuts","beans","chestnut","ginger_root","pea_pod","brown_mushroom","bread","croissant","baguette_bread","flatbread","pretzel","bagel","pancakes","waffle","cheese_wedge","meat_on_bone","poultry_leg","cut_of_meat","bacon","hamburger","fries","pizza","hotdog","sandwich","taco","burrito","tamale","stuffed_flatbread","falafel","egg","fried_egg","shallow_pan_of_food","stew","fondue","bowl_with_spoon","green_salad","popcorn","butter","salt","canned_food","bento","rice_cracker","rice_ball","rice","curry","ramen","spaghetti","sweet_potato","oden","sushi","fried_shrimp","fish_cake","moon_cake","dango","dumpling","fortune_cookie","takeout_box","crab","lobster","shrimp","squid","oyster","icecream","shaved_ice","ice_cream","doughnut","cookie","birthday","cake","cupcake","pie","chocolate_bar","candy","lollipop","custard","honey_pot","baby_bottle","glass_of_milk","coffee","teapot","tea","sake","champagne","wine_glass","cocktail","tropical_drink","beer","beers","clinking_glasses","tumbler_glass","pouring_liquid","cup_with_straw","bubble_tea","beverage_box","mate_drink","ice_cube","chopsticks","knife_fork_plate","fork_and_knife","spoon","hocho","jar","amphora"]},{"id":"activity","name":"Activities","emojis":["jack_o_lantern","christmas_tree","fireworks","sparkler","firecracker","sparkles","balloon","tada","confetti_ball","tanabata_tree","bamboo","dolls","flags","wind_chime","rice_scene","red_envelope","ribbon","gift","reminder_ribbon","admission_tickets","ticket","medal","trophy","sports_medal","first_place_medal","second_place_medal","third_place_medal","soccer","baseball","softball","basketball","volleyball","football","rugby_football","tennis","flying_disc","bowling","cricket_bat_and_ball","field_hockey_stick_and_ball","ice_hockey_stick_and_puck","lacrosse","table_tennis_paddle_and_ball","badminton_racquet_and_shuttlecock","boxing_glove","martial_arts_uniform","goal_net","golf","ice_skate","fishing_pole_and_fish","diving_mask","running_shirt_with_sash","ski","sled","curling_stone","dart","yo-yo","kite","gun","8ball","crystal_ball","magic_wand","video_game","joystick","slot_machine","game_die","jigsaw","teddy_bear","pinata","mirror_ball","nesting_dolls","spades","hearts","diamonds","clubs","chess_pawn","black_joker","mahjong","flower_playing_cards","performing_arts","frame_with_picture","art","thread","sewing_needle","yarn","knot"]},{"id":"places","name":"Travel & Places","emojis":["earth_africa","earth_americas","earth_asia","globe_with_meridians","world_map","japan","compass","snow_capped_mountain","mountain","volcano","mount_fuji","camping","beach_with_umbrella","desert","desert_island","national_park","stadium","classical_building","building_construction","bricks","rock","wood","hut","house_buildings","derelict_house_building","house","house_with_garden","office","post_office","european_post_office","hospital","bank","hotel","love_hotel","convenience_store","school","department_store","factory","japanese_castle","european_castle","wedding","tokyo_tower","statue_of_liberty","church","mosque","hindu_temple","synagogue","shinto_shrine","kaaba","fountain","tent","foggy","night_with_stars","cityscape","sunrise_over_mountains","sunrise","city_sunset","city_sunrise","bridge_at_night","hotsprings","carousel_horse","playground_slide","ferris_wheel","roller_coaster","barber","circus_tent","steam_locomotive","railway_car","bullettrain_side","bullettrain_front","train2","metro","light_rail","station","tram","monorail","mountain_railway","train","bus","oncoming_bus","trolleybus","minibus","ambulance","fire_engine","police_car","oncoming_police_car","taxi","oncoming_taxi","car","oncoming_automobile","blue_car","pickup_truck","truck","articulated_lorry","tractor","racing_car","racing_motorcycle","motor_scooter","manual_wheelchair","motorized_wheelchair","auto_rickshaw","bike","scooter","skateboard","roller_skate","busstop","motorway","railway_track","oil_drum","fuelpump","wheel","rotating_light","traffic_light","vertical_traffic_light","octagonal_sign","construction","anchor","ring_buoy","boat","canoe","speedboat","passenger_ship","ferry","motor_boat","ship","airplane","small_airplane","airplane_departure","airplane_arriving","parachute","seat","helicopter","suspension_railway","mountain_cableway","aerial_tramway","satellite","rocket","flying_saucer","bellhop_bell","luggage","hourglass","hourglass_flowing_sand","watch","alarm_clock","stopwatch","timer_clock","mantelpiece_clock","clock12","clock1230","clock1","clock130","clock2","clock230","clock3","clock330","clock4","clock430","clock5","clock530","clock6","clock630","clock7","clock730","clock8","clock830","clock9","clock930","clock10","clock1030","clock11","clock1130","new_moon","waxing_crescent_moon","first_quarter_moon","moon","full_moon","waning_gibbous_moon","last_quarter_moon","waning_crescent_moon","crescent_moon","new_moon_with_face","first_quarter_moon_with_face","last_quarter_moon_with_face","thermometer","sunny","full_moon_with_face","sun_with_face","ringed_planet","star","star2","stars","milky_way","cloud","partly_sunny","thunder_cloud_and_rain","mostly_sunny","barely_sunny","partly_sunny_rain","rain_cloud","snow_cloud","lightning","tornado","fog","wind_blowing_face","cyclone","rainbow","closed_umbrella","umbrella","umbrella_with_rain_drops","umbrella_on_ground","zap","snowflake","snowman","snowman_without_snow","comet","fire","droplet","ocean"]},{"id":"objects","name":"Objects","emojis":["eyeglasses","dark_sunglasses","goggles","lab_coat","safety_vest","necktie","shirt","jeans","scarf","gloves","coat","socks","dress","kimono","sari","one-piece_swimsuit","briefs","shorts","bikini","womans_clothes","folding_hand_fan","purse","handbag","pouch","shopping_bags","school_satchel","thong_sandal","mans_shoe","athletic_shoe","hiking_boot","womans_flat_shoe","high_heel","sandal","ballet_shoes","boot","hair_pick","crown","womans_hat","tophat","mortar_board","billed_cap","military_helmet","helmet_with_white_cross","prayer_beads","lipstick","ring","gem","mute","speaker","sound","loud_sound","loudspeaker","mega","postal_horn","bell","no_bell","musical_score","musical_note","notes","studio_microphone","level_slider","control_knobs","microphone","headphones","radio","saxophone","accordion","guitar","musical_keyboard","trumpet","violin","banjo","drum_with_drumsticks","long_drum","maracas","flute","iphone","calling","phone","telephone_receiver","pager","fax","battery","low_battery","electric_plug","computer","desktop_computer","printer","keyboard","three_button_mouse","trackball","minidisc","floppy_disk","cd","dvd","abacus","movie_camera","film_frames","film_projector","clapper","tv","camera","camera_with_flash","video_camera","vhs","mag","mag_right","candle","bulb","flashlight","izakaya_lantern","diya_lamp","notebook_with_decorative_cover","closed_book","book","green_book","blue_book","orange_book","books","notebook","ledger","page_with_curl","scroll","page_facing_up","newspaper","rolled_up_newspaper","bookmark_tabs","bookmark","label","moneybag","coin","yen","dollar","euro","pound","money_with_wings","credit_card","receipt","chart","email","e-mail","incoming_envelope","envelope_with_arrow","outbox_tray","inbox_tray","package","mailbox","mailbox_closed","mailbox_with_mail","mailbox_with_no_mail","postbox","ballot_box_with_ballot","pencil2","black_nib","lower_left_fountain_pen","lower_left_ballpoint_pen","lower_left_paintbrush","lower_left_crayon","memo","briefcase","file_folder","open_file_folder","card_index_dividers","date","calendar","spiral_note_pad","spiral_calendar_pad","card_index","chart_with_upwards_trend","chart_with_downwards_trend","bar_chart","clipboard","pushpin","round_pushpin","paperclip","linked_paperclips","straight_ruler","triangular_ruler","scissors","card_file_box","file_cabinet","wastebasket","lock","unlock","lock_with_ink_pen","closed_lock_with_key","key","old_key","hammer","axe","pick","hammer_and_pick","hammer_and_wrench","dagger_knife","crossed_swords","bomb","boomerang","bow_and_arrow","shield","carpentry_saw","wrench","screwdriver","nut_and_bolt","gear","compression","scales","probing_cane","link","broken_chain","chains","hook","toolbox","magnet","ladder","alembic","test_tube","petri_dish","dna","microscope","telescope","satellite_antenna","syringe","drop_of_blood","pill","adhesive_bandage","crutch","stethoscope","x-ray","door","elevator","mirror","window","bed","couch_and_lamp","chair","toilet","plunger","shower","bathtub","mouse_trap","razor","lotion_bottle","safety_pin","broom","basket","roll_of_paper","bucket","soap","bubbles","toothbrush","sponge","fire_extinguisher","shopping_trolley","smoking","coffin","headstone","funeral_urn","nazar_amulet","hamsa","moyai","placard","identification_card"]},{"id":"symbols","name":"Symbols","emojis":["atm","put_litter_in_its_place","potable_water","wheelchair","mens","womens","restroom","baby_symbol","wc","passport_control","customs","baggage_claim","left_luggage","warning","children_crossing","no_entry","no_entry_sign","no_bicycles","no_smoking","do_not_litter","non-potable_water","no_pedestrians","no_mobile_phones","underage","radioactive_sign","biohazard_sign","arrow_up","arrow_upper_right","arrow_right","arrow_lower_right","arrow_down","arrow_lower_left","arrow_left","arrow_upper_left","arrow_up_down","left_right_arrow","leftwards_arrow_with_hook","arrow_right_hook","arrow_heading_up","arrow_heading_down","arrows_clockwise","arrows_counterclockwise","back","end","on","soon","top","place_of_worship","atom_symbol","om_symbol","star_of_david","wheel_of_dharma","yin_yang","latin_cross","orthodox_cross","star_and_crescent","peace_symbol","menorah_with_nine_branches","six_pointed_star","khanda","aries","taurus","gemini","cancer","leo","virgo","libra","scorpius","sagittarius","capricorn","aquarius","pisces","ophiuchus","twisted_rightwards_arrows","repeat","repeat_one","arrow_forward","fast_forward","black_right_pointing_double_triangle_with_vertical_bar","black_right_pointing_triangle_with_double_vertical_bar","arrow_backward","rewind","black_left_pointing_double_triangle_with_vertical_bar","arrow_up_small","arrow_double_up","arrow_down_small","arrow_double_down","double_vertical_bar","black_square_for_stop","black_circle_for_record","eject","cinema","low_brightness","high_brightness","signal_strength","wireless","vibration_mode","mobile_phone_off","female_sign","male_sign","transgender_symbol","heavy_multiplication_x","heavy_plus_sign","heavy_minus_sign","heavy_division_sign","heavy_equals_sign","infinity","bangbang","interrobang","question","grey_question","grey_exclamation","exclamation","wavy_dash","currency_exchange","heavy_dollar_sign","medical_symbol","recycle","fleur_de_lis","trident","name_badge","beginner","o","white_check_mark","ballot_box_with_check","heavy_check_mark","x","negative_squared_cross_mark","curly_loop","loop","part_alternation_mark","eight_spoked_asterisk","eight_pointed_black_star","sparkle","copyright","registered","tm","hash","keycap_star","zero","one","two","three","four","five","six","seven","eight","nine","keycap_ten","capital_abcd","abcd","1234","symbols","abc","a","ab","b","cl","cool","free","information_source","id","m","new","ng","o2","ok","parking","sos","up","vs","koko","sa","u6708","u6709","u6307","ideograph_advantage","u5272","u7121","u7981","accept","u7533","u5408","u7a7a","congratulations","secret","u55b6","u6e80","red_circle","large_orange_circle","large_yellow_circle","large_green_circle","large_blue_circle","large_purple_circle","large_brown_circle","black_circle","white_circle","large_red_square","large_orange_square","large_yellow_square","large_green_square","large_blue_square","large_purple_square","large_brown_square","black_large_square","white_large_square","black_medium_square","white_medium_square","black_medium_small_square","white_medium_small_square","black_small_square","white_small_square","large_orange_diamond","large_blue_diamond","small_orange_diamond","small_blue_diamond","small_red_triangle","small_red_triangle_down","diamond_shape_with_a_dot_inside","radio_button","white_square_button","black_square_button"]},{"id":"flags","name":"Flags","emojis":["checkered_flag","triangular_flag_on_post","crossed_flags","waving_black_flag","waving_white_flag","rainbow-flag","transgender_flag","pirate_flag","flag-ac","flag-ad","flag-ae","flag-af","flag-ag","flag-ai","flag-al","flag-am","flag-ao","flag-aq","flag-ar","flag-as","flag-at","flag-au","flag-aw","flag-ax","flag-az","flag-ba","flag-bb","flag-bd","flag-be","flag-bf","flag-bg","flag-bh","flag-bi","flag-bj","flag-bl","flag-bm","flag-bn","flag-bo","flag-bq","flag-br","flag-bs","flag-bt","flag-bv","flag-bw","flag-by","flag-bz","flag-ca","flag-cc","flag-cd","flag-cf","flag-cg","flag-ch","flag-ci","flag-ck","flag-cl","flag-cm","cn","flag-co","flag-cp","flag-cr","flag-cu","flag-cv","flag-cw","flag-cx","flag-cy","flag-cz","de","flag-dg","flag-dj","flag-dk","flag-dm","flag-do","flag-dz","flag-ea","flag-ec","flag-ee","flag-eg","flag-eh","flag-er","es","flag-et","flag-eu","flag-fi","flag-fj","flag-fk","flag-fm","flag-fo","fr","flag-ga","gb","flag-gd","flag-ge","flag-gf","flag-gg","flag-gh","flag-gi","flag-gl","flag-gm","flag-gn","flag-gp","flag-gq","flag-gr","flag-gs","flag-gt","flag-gu","flag-gw","flag-gy","flag-hk","flag-hm","flag-hn","flag-hr","flag-ht","flag-hu","flag-ic","flag-id","flag-ie","flag-il","flag-im","flag-in","flag-io","flag-iq","flag-ir","flag-is","it","flag-je","flag-jm","flag-jo","jp","flag-ke","flag-kg","flag-kh","flag-ki","flag-km","flag-kn","flag-kp","kr","flag-kw","flag-ky","flag-kz","flag-la","flag-lb","flag-lc","flag-li","flag-lk","flag-lr","flag-ls","flag-lt","flag-lu","flag-lv","flag-ly","flag-ma","flag-mc","flag-md","flag-me","flag-mf","flag-mg","flag-mh","flag-mk","flag-ml","flag-mm","flag-mn","flag-mo","flag-mp","flag-mq","flag-mr","flag-ms","flag-mt","flag-mu","flag-mv","flag-mw","flag-mx","flag-my","flag-mz","flag-na","flag-nc","flag-ne","flag-nf","flag-ng","flag-ni","flag-nl","flag-no","flag-np","flag-nr","flag-nu","flag-nz","flag-om","flag-pa","flag-pe","flag-pf","flag-pg","flag-ph","flag-pk","flag-pl","flag-pm","flag-pn","flag-pr","flag-ps","flag-pt","flag-pw","flag-py","flag-qa","flag-re","flag-ro","flag-rs","ru","flag-rw","flag-sa","flag-sb","flag-sc","flag-sd","flag-se","flag-sg","flag-sh","flag-si","flag-sj","flag-sk","flag-sl","flag-sm","flag-sn","flag-so","flag-sr","flag-ss","flag-st","flag-sv","flag-sx","flag-sy","flag-sz","flag-ta","flag-tc","flag-td","flag-tf","flag-tg","flag-th","flag-tj","flag-tk","flag-tl","flag-tm","flag-tn","flag-to","flag-tr","flag-tt","flag-tv","flag-tw","flag-tz","flag-ua","flag-ug","flag-um","flag-un","us","flag-uy","flag-uz","flag-va","flag-vc","flag-ve","flag-vg","flag-vi","flag-vn","flag-vu","flag-wf","flag-ws","flag-xk","flag-ye","flag-yt","flag-za","flag-zm","flag-zw","flag-england","flag-scotland","flag-wales"]}],"emojis":{"grinning":{"a":"Grinning Face","b":"1F600","f":true,"k":[32,46],"j":["grinning_face","face","smile","happy","joy",":D","grin"],"m":":D"},"smiley":{"a":"Smiling Face with Open Mouth","b":"1F603","f":true,"k":[32,49],"j":["grinning_face_with_big_eyes","face","happy","joy","haha",":D",":)","smile","funny"],"l":["=)","=-)"],"m":":)"},"smile":{"a":"Smiling Face with Open Mouth and Smiling Eyes","b":"1F604","f":true,"k":[32,50],"j":["grinning_face_with_smiling_eyes","face","happy","joy","funny","haha","laugh","like",":D",":)"],"l":["C:","c:",":D",":-D"],"m":":)"},"grin":{"a":"Grinning Face with Smiling Eyes","b":"1F601","f":true,"k":[32,47],"j":["beaming_face_with_smiling_eyes","face","happy","smile","joy","kawaii"]},"laughing":{"a":"Smiling Face with Open Mouth and Tightly-Closed Eyes","b":"1F606","f":true,"k":[32,52],"j":["grinning_squinting_face","happy","joy","lol","satisfied","haha","face","glad","XD","laugh"],"l":[":>",":->"]},"sweat_smile":{"a":"Smiling Face with Open Mouth and Cold Sweat","b":"1F605","f":true,"k":[32,51],"j":["grinning_face_with_sweat","face","hot","happy","laugh","sweat","smile","relief"]},"rolling_on_the_floor_laughing":{"a":"Rolling On the Floor Laughing","b":"1F923","f":true,"k":[40,54],"j":["face","rolling","floor","laughing","lol","haha","rofl"]},"joy":{"a":"Face with Tears Of Joy","b":"1F602","f":true,"k":[32,48],"j":["face_with_tears_of_joy","face","cry","tears","weep","happy","happytears","haha"]},"slightly_smiling_face":{"a":"Slightly Smiling Face","b":"1F642","f":true,"k":[33,55],"j":["face","smile"],"l":[":)","(:",":-)"]},"upside_down_face":{"a":"Upside-Down Face","b":"1F643","f":true,"k":[33,56],"j":["face","flipped","silly","smile"]},"melting_face":{"a":"Melting Face","b":"1FAE0","f":true,"k":[56,30],"j":["melting face","hot","heat"]},"wink":{"a":"Winking Face","b":"1F609","f":true,"k":[32,55],"j":["winking_face","face","happy","mischievous","secret",";)","smile","eye"],"l":[";)",";-)"],"m":";)"},"blush":{"a":"Smiling Face with Smiling Eyes","b":"1F60A","f":true,"k":[32,56],"j":["smiling_face_with_smiling_eyes","face","smile","happy","flushed","crush","embarrassed","shy","joy"],"m":":)"},"innocent":{"a":"Smiling Face with Halo","b":"1F607","f":true,"k":[32,53],"j":["smiling_face_with_halo","face","angel","heaven","halo"]},"smiling_face_with_3_hearts":{"a":"Smiling Face with Smiling Eyes and Three Hearts","b":"1F970","f":true,"k":[44,32],"j":["smiling_face_with_hearts","face","love","like","affection","valentines","infatuation","crush","hearts","adore"]},"heart_eyes":{"a":"Smiling Face with Heart-Shaped Eyes","b":"1F60D","f":true,"k":[32,59],"j":["smiling_face_with_heart_eyes","face","love","like","affection","valentines","infatuation","crush","heart"]},"star-struck":{"a":"Grinning Face with Star Eyes","b":"1F929","f":true,"k":[41,15],"j":["star_struck","face","smile","starry","eyes","grinning"]},"kissing_heart":{"a":"Face Throwing a Kiss","b":"1F618","f":true,"k":[33,8],"j":["face_blowing_a_kiss","face","love","like","affection","valentines","infatuation","kiss"],"l":[":*",":-*"]},"kissing":{"a":"Kissing Face","b":"1F617","f":true,"k":[33,7],"j":["kissing_face","love","like","face","3","valentines","infatuation","kiss"]},"relaxed":{"a":"White Smiling Face","b":"263A-FE0F","f":true,"k":[58,33],"c":"263A"},"kissing_closed_eyes":{"a":"Kissing Face with Closed Eyes","b":"1F61A","f":true,"k":[33,10],"j":["kissing_face_with_closed_eyes","face","love","like","affection","valentines","infatuation","kiss"]},"kissing_smiling_eyes":{"a":"Kissing Face with Smiling Eyes","b":"1F619","f":true,"k":[33,9],"j":["kissing_face_with_smiling_eyes","face","affection","valentines","infatuation","kiss"]},"smiling_face_with_tear":{"a":"Smiling Face with Tear","b":"1F972","f":true,"k":[44,34],"j":["smiling face with tear","sad","cry","pretend"]},"yum":{"a":"Face Savouring Delicious Food","b":"1F60B","f":true,"k":[32,57],"j":["face_savoring_food","happy","joy","tongue","smile","face","silly","yummy","nom","delicious","savouring"]},"stuck_out_tongue":{"a":"Face with Stuck-Out Tongue","b":"1F61B","f":true,"k":[33,11],"j":["face_with_tongue","face","prank","childish","playful","mischievous","smile","tongue"],"l":[":p",":-p",":P",":-P",":b",":-b"],"m":":p"},"stuck_out_tongue_winking_eye":{"a":"Face with Stuck-Out Tongue and Winking Eye","b":"1F61C","f":true,"k":[33,12],"j":["winking_face_with_tongue","face","prank","childish","playful","mischievous","smile","wink","tongue"],"l":[";p",";-p",";b",";-b",";P",";-P"],"m":";p"},"zany_face":{"a":"Grinning Face with One Large and One Small Eye","b":"1F92A","f":true,"k":[41,16],"j":["face","goofy","crazy"]},"stuck_out_tongue_closed_eyes":{"a":"Face with Stuck-Out Tongue and Tightly-Closed Eyes","b":"1F61D","f":true,"k":[33,13],"j":["squinting_face_with_tongue","face","prank","playful","mischievous","smile","tongue"]},"money_mouth_face":{"a":"Money-Mouth Face","b":"1F911","f":true,"k":[39,38],"j":["face","rich","dollar","money"]},"hugging_face":{"a":"Hugging Face","b":"1F917","f":true,"k":[39,44],"j":["face","smile","hug"]},"face_with_hand_over_mouth":{"a":"Smiling Face with Smiling Eyes and Hand Covering Mouth","b":"1F92D","f":true,"k":[41,19],"j":["face","whoops","shock","surprise"]},"face_with_open_eyes_and_hand_over_mouth":{"a":"Face with Open Eyes and Hand Over Mouth","b":"1FAE2","f":true,"k":[56,32],"j":["face with open eyes and hand over mouth","silence","secret","shock","surprise"]},"face_with_peeking_eye":{"a":"Face with Peeking Eye","b":"1FAE3","f":true,"k":[56,33],"j":["face with peeking eye","scared","frightening","embarrassing","shy"]},"shushing_face":{"a":"Face with Finger Covering Closed Lips","b":"1F92B","f":true,"k":[41,17],"j":["face","quiet","shhh"]},"thinking_face":{"a":"Thinking Face","b":"1F914","f":true,"k":[39,41],"j":["face","hmmm","think","consider"]},"saluting_face":{"a":"Saluting Face","b":"1FAE1","f":true,"k":[56,31],"j":["saluting face","respect","salute"]},"zipper_mouth_face":{"a":"Zipper-Mouth Face","b":"1F910","f":true,"k":[39,37],"j":["face","sealed","zipper","secret"]},"face_with_raised_eyebrow":{"a":"Face with One Eyebrow Raised","b":"1F928","f":true,"k":[41,14],"j":["face","distrust","scepticism","disapproval","disbelief","surprise","suspicious"]},"neutral_face":{"a":"Neutral Face","b":"1F610","f":true,"k":[33,0],"j":["indifference","meh",":|","neutral"],"l":[":|",":-|"]},"expressionless":{"a":"Expressionless Face","b":"1F611","f":true,"k":[33,1],"j":["expressionless_face","face","indifferent","-_-","meh","deadpan"]},"no_mouth":{"a":"Face Without Mouth","b":"1F636","f":true,"k":[33,41],"j":["face_without_mouth","face"]},"dotted_line_face":{"a":"Dotted Line Face","b":"1FAE5","f":true,"k":[56,35],"j":["dotted line face","invisible","lonely","isolation","depression"]},"face_in_clouds":{"a":"Face In Clouds","b":"1F636-200D-1F32B-FE0F","f":true,"k":[33,40],"c":"1F636-200D-1F32B","j":["face_without_mouth","face"]},"smirk":{"a":"Smirking Face","b":"1F60F","f":true,"k":[32,61],"j":["smirking_face","face","smile","mean","prank","smug","sarcasm"]},"unamused":{"a":"Unamused Face","b":"1F612","f":true,"k":[33,2],"j":["unamused_face","indifference","bored","straight face","serious","sarcasm","unimpressed","skeptical","dubious","ugh","side_eye"],"m":":("},"face_with_rolling_eyes":{"a":"Face with Rolling Eyes","b":"1F644","f":true,"k":[33,57],"j":["face","eyeroll","frustrated"]},"grimacing":{"a":"Grimacing Face","b":"1F62C","f":true,"k":[33,28],"j":["grimacing_face","face","grimace","teeth"]},"face_exhaling":{"a":"Face Exhaling","b":"1F62E-200D-1F4A8","f":true,"k":[33,30],"j":["face_with_open_mouth","face","surprise","impressed","wow","whoa",":O"]},"lying_face":{"a":"Lying Face","b":"1F925","f":true,"k":[40,56],"j":["face","lie","pinocchio"]},"shaking_face":{"a":"Shaking Face","b":"1FAE8","f":true,"k":[56,38],"j":["shaking face","dizzy","shock","blurry","earthquake"]},"head_shaking_horizontally":{"a":"Head Shaking Horizontally","b":"1F642-200D-2194-FE0F","f":true,"k":[33,53],"c":"1F642-200D-2194","j":["slightly_smiling_face","face","smile"]},"head_shaking_vertically":{"a":"Head Shaking Vertically","b":"1F642-200D-2195-FE0F","f":true,"k":[33,54],"c":"1F642-200D-2195","j":["slightly_smiling_face","face","smile"]},"relieved":{"a":"Relieved Face","b":"1F60C","f":true,"k":[32,58],"j":["relieved_face","face","relaxed","phew","massage","happiness"]},"pensive":{"a":"Pensive Face","b":"1F614","f":true,"k":[33,4],"j":["pensive_face","face","sad","depressed","upset"]},"sleepy":{"a":"Sleepy Face","b":"1F62A","f":true,"k":[33,26],"j":["sleepy_face","face","tired","rest","nap"]},"drooling_face":{"a":"Drooling Face","b":"1F924","f":true,"k":[40,55],"j":["face"]},"sleeping":{"a":"Sleeping Face","b":"1F634","f":true,"k":[33,37],"j":["sleeping_face","face","tired","sleepy","night","zzz"]},"mask":{"a":"Face with Medical Mask","b":"1F637","f":true,"k":[33,42],"j":["face_with_medical_mask","face","sick","ill","disease","covid"]},"face_with_thermometer":{"a":"Face with Thermometer","b":"1F912","f":true,"k":[39,39],"j":["sick","temperature","thermometer","cold","fever","covid"]},"face_with_head_bandage":{"a":"Face with Head-Bandage","b":"1F915","f":true,"k":[39,42],"j":["injured","clumsy","bandage","hurt"]},"nauseated_face":{"a":"Nauseated Face","b":"1F922","f":true,"k":[40,53],"j":["face","vomit","gross","green","sick","throw up","ill"]},"face_vomiting":{"a":"Face with Open Mouth Vomiting","b":"1F92E","f":true,"k":[41,20],"j":["face","sick"]},"sneezing_face":{"a":"Sneezing Face","b":"1F927","f":true,"k":[41,13],"j":["face","gesundheit","sneeze","sick","allergy"]},"hot_face":{"a":"Overheated Face","b":"1F975","f":true,"k":[44,37],"j":["face","feverish","heat","red","sweating"]},"cold_face":{"a":"Freezing Face","b":"1F976","f":true,"k":[44,38],"j":["face","blue","freezing","frozen","frostbite","icicles"]},"woozy_face":{"a":"Face with Uneven Eyes and Wavy Mouth","b":"1F974","f":true,"k":[44,36],"j":["face","dizzy","intoxicated","tipsy","wavy"]},"dizzy_face":{"a":"Dizzy Face","b":"1F635","f":true,"k":[33,39],"j":["spent","unconscious","xox","dizzy"]},"face_with_spiral_eyes":{"a":"Face with Spiral Eyes","b":"1F635-200D-1F4AB","f":true,"k":[33,38],"j":["dizzy_face","spent","unconscious","xox","dizzy"]},"exploding_head":{"a":"Shocked Face with Exploding Head","b":"1F92F","f":true,"k":[41,21],"j":["face","shocked","mind","blown"]},"face_with_cowboy_hat":{"a":"Face with Cowboy Hat","b":"1F920","f":true,"k":[40,51],"j":["cowboy_hat_face","face","cowgirl","hat"]},"partying_face":{"a":"Face with Party Horn and Party Hat","b":"1F973","f":true,"k":[44,35],"j":["face","celebration","woohoo"]},"disguised_face":{"a":"Disguised Face","b":"1F978","f":true,"k":[44,45],"j":["disguised face","pretent","brows","glasses","moustache"]},"sunglasses":{"a":"Smiling Face with Sunglasses","b":"1F60E","f":true,"k":[32,60],"j":["smiling_face_with_sunglasses","face","cool","smile","summer","beach","sunglass"],"l":["8)"]},"nerd_face":{"a":"Nerd Face","b":"1F913","f":true,"k":[39,40],"j":["face","nerdy","geek","dork"]},"face_with_monocle":{"a":"Face with Monocle","b":"1F9D0","f":true,"k":[47,61],"j":["face","stuffy","wealthy"]},"confused":{"a":"Confused Face","b":"1F615","f":true,"k":[33,5],"j":["confused_face","face","indifference","huh","weird","hmmm",":/"],"l":[":\\",":-\\",":/",":-/"]},"face_with_diagonal_mouth":{"a":"Face with Diagonal Mouth","b":"1FAE4","f":true,"k":[56,34],"j":["face with diagonal mouth","skeptic","confuse","frustrated","indifferent"]},"worried":{"a":"Worried Face","b":"1F61F","f":true,"k":[33,15],"j":["worried_face","face","concern","nervous",":("]},"slightly_frowning_face":{"a":"Slightly Frowning Face","b":"1F641","f":true,"k":[33,52],"j":["face","frowning","disappointed","sad","upset"]},"white_frowning_face":{"a":"Frowning Face","b":"2639-FE0F","f":true,"k":[58,32],"c":"2639"},"open_mouth":{"a":"Face with Open Mouth","b":"1F62E","f":true,"k":[33,31],"j":["face_with_open_mouth","face","surprise","impressed","wow","whoa",":O"],"l":[":o",":-o",":O",":-O"]},"hushed":{"a":"Hushed Face","b":"1F62F","f":true,"k":[33,32],"j":["hushed_face","face","woo","shh"]},"astonished":{"a":"Astonished Face","b":"1F632","f":true,"k":[33,35],"j":["astonished_face","face","xox","surprised","poisoned"]},"flushed":{"a":"Flushed Face","b":"1F633","f":true,"k":[33,36],"j":["flushed_face","face","blush","shy","flattered"]},"pleading_face":{"a":"Face with Pleading Eyes","b":"1F97A","f":true,"k":[44,47],"j":["face","begging","mercy","cry","tears","sad","grievance"]},"face_holding_back_tears":{"a":"Face Holding Back Tears","b":"1F979","f":true,"k":[44,46],"j":["face holding back tears","touched","gratitude","cry"]},"frowning":{"a":"Frowning Face with Open Mouth","b":"1F626","f":true,"k":[33,22],"j":["frowning_face_with_open_mouth","face","aw","what"]},"anguished":{"a":"Anguished Face","b":"1F627","f":true,"k":[33,23],"j":["anguished_face","face","stunned","nervous"],"l":["D:"]},"fearful":{"a":"Fearful Face","b":"1F628","f":true,"k":[33,24],"j":["fearful_face","face","scared","terrified","nervous"]},"cold_sweat":{"a":"Face with Open Mouth and Cold Sweat","b":"1F630","f":true,"k":[33,33],"j":["anxious_face_with_sweat","face","nervous","sweat"]},"disappointed_relieved":{"a":"Disappointed But Relieved Face","b":"1F625","f":true,"k":[33,21],"j":["sad_but_relieved_face","face","phew","sweat","nervous"]},"cry":{"a":"Crying Face","b":"1F622","f":true,"k":[33,18],"j":["crying_face","face","tears","sad","depressed","upset",":'("],"l":[":'("],"m":":'("},"sob":{"a":"Loudly Crying Face","b":"1F62D","f":true,"k":[33,29],"j":["loudly_crying_face","sobbing","face","cry","tears","sad","upset","depressed"],"m":":'("},"scream":{"a":"Face Screaming In Fear","b":"1F631","f":true,"k":[33,34],"j":["face_screaming_in_fear","face","munch","scared","omg"]},"confounded":{"a":"Confounded Face","b":"1F616","f":true,"k":[33,6],"j":["confounded_face","face","confused","sick","unwell","oops",":S"]},"persevere":{"a":"Persevering Face","b":"1F623","f":true,"k":[33,19],"j":["persevering_face","face","sick","no","upset","oops"]},"disappointed":{"a":"Disappointed Face","b":"1F61E","f":true,"k":[33,14],"j":["disappointed_face","face","sad","upset","depressed",":("],"l":["):",":(",":-("],"m":":("},"sweat":{"a":"Face with Cold Sweat","b":"1F613","f":true,"k":[33,3],"j":["downcast_face_with_sweat","face","hot","sad","tired","exercise"]},"weary":{"a":"Weary Face","b":"1F629","f":true,"k":[33,25],"j":["weary_face","face","tired","sleepy","sad","frustrated","upset"]},"tired_face":{"a":"Tired Face","b":"1F62B","f":true,"k":[33,27],"j":["sick","whine","upset","frustrated"]},"yawning_face":{"a":"Yawning Face","b":"1F971","f":true,"k":[44,33],"j":["tired","sleepy"]},"triumph":{"a":"Face with Look Of Triumph","b":"1F624","f":true,"k":[33,20],"j":["face_with_steam_from_nose","face","gas","phew","proud","pride"]},"rage":{"a":"Pouting Face","b":"1F621","f":true,"k":[33,17],"j":["pouting_face","angry","mad","hate","despise"]},"angry":{"a":"Angry Face","b":"1F620","f":true,"k":[33,16],"j":["angry_face","mad","face","annoyed","frustrated"],"l":[">:(",">:-("]},"face_with_symbols_on_mouth":{"a":"Serious Face with Symbols Covering Mouth","b":"1F92C","f":true,"k":[41,18],"j":["face","swearing","cursing","cussing","profanity","expletive"]},"smiling_imp":{"a":"Smiling Face with Horns","b":"1F608","f":true,"k":[32,54],"j":["smiling_face_with_horns","devil","horns"]},"imp":{"a":"Imp","b":"1F47F","f":true,"k":[25,41],"j":["angry_face_with_horns","devil","angry","horns"]},"skull":{"a":"Skull","b":"1F480","f":true,"k":[25,42],"j":["dead","skeleton","creepy","death","dead"]},"skull_and_crossbones":{"a":"Skull and Crossbones","b":"2620-FE0F","f":true,"k":[58,24],"c":"2620"},"hankey":{"a":"Pile Of Poo","b":"1F4A9","f":true,"k":[28,25],"j":["pile_of_poo","shitface","fail","turd","shit"]},"clown_face":{"a":"Clown Face","b":"1F921","f":true,"k":[40,52],"j":["face"]},"japanese_ogre":{"a":"Japanese Ogre","b":"1F479","f":true,"k":[25,30],"j":["ogre","monster","red","mask","halloween","scary","creepy","devil","demon"]},"japanese_goblin":{"a":"Japanese Goblin","b":"1F47A","f":true,"k":[25,31],"j":["goblin","red","evil","mask","monster","scary","creepy"]},"ghost":{"a":"Ghost","b":"1F47B","f":true,"k":[25,32],"j":["halloween","spooky","scary"]},"alien":{"a":"Extraterrestrial Alien","b":"1F47D","f":true,"k":[25,39],"j":["UFO","paul","weird","outer_space"]},"space_invader":{"a":"Alien Monster","b":"1F47E","f":true,"k":[25,40],"j":["alien_monster","game","arcade","play"]},"robot_face":{"a":"Robot Face","b":"1F916","f":true,"k":[39,43],"j":["robot","computer","machine","bot"]},"smiley_cat":{"a":"Smiling Cat Face with Open Mouth","b":"1F63A","f":true,"k":[33,45],"j":["grinning_cat","animal","cats","happy","smile"]},"smile_cat":{"a":"Grinning Cat Face with Smiling Eyes","b":"1F638","f":true,"k":[33,43],"j":["grinning_cat_with_smiling_eyes","animal","cats","smile"]},"joy_cat":{"a":"Cat Face with Tears Of Joy","b":"1F639","f":true,"k":[33,44],"j":["cat_with_tears_of_joy","animal","cats","haha","happy","tears"]},"heart_eyes_cat":{"a":"Smiling Cat Face with Heart-Shaped Eyes","b":"1F63B","f":true,"k":[33,46],"j":["smiling_cat_with_heart_eyes","animal","love","like","affection","cats","valentines","heart"]},"smirk_cat":{"a":"Cat Face with Wry Smile","b":"1F63C","f":true,"k":[33,47],"j":["cat_with_wry_smile","animal","cats","smirk"]},"kissing_cat":{"a":"Kissing Cat Face with Closed Eyes","b":"1F63D","f":true,"k":[33,48],"j":["animal","cats","kiss"]},"scream_cat":{"a":"Weary Cat Face","b":"1F640","f":true,"k":[33,51],"j":["weary_cat","animal","cats","munch","scared","scream"]},"crying_cat_face":{"a":"Crying Cat Face","b":"1F63F","f":true,"k":[33,50],"j":["crying_cat","animal","tears","weep","sad","cats","upset","cry"]},"pouting_cat":{"a":"Pouting Cat Face","b":"1F63E","f":true,"k":[33,49],"j":["animal","cats"]},"see_no_evil":{"a":"See-No-Evil Monkey","b":"1F648","f":true,"k":[34,50],"j":["see_no_evil_monkey","monkey","animal","nature","haha"]},"hear_no_evil":{"a":"Hear-No-Evil Monkey","b":"1F649","f":true,"k":[34,51],"j":["hear_no_evil_monkey","animal","monkey","nature"]},"speak_no_evil":{"a":"Speak-No-Evil Monkey","b":"1F64A","f":true,"k":[34,52],"j":["speak_no_evil_monkey","monkey","animal","nature","omg"]},"love_letter":{"a":"Love Letter","b":"1F48C","f":true,"k":[27,8],"j":["email","like","affection","envelope","valentines"]},"cupid":{"a":"Heart with Arrow","b":"1F498","f":true,"k":[28,8],"j":["heart_with_arrow","love","like","heart","affection","valentines"]},"gift_heart":{"a":"Heart with Ribbon","b":"1F49D","f":true,"k":[28,13],"j":["heart_with_ribbon","love","valentines"]},"sparkling_heart":{"a":"Sparkling Heart","b":"1F496","f":true,"k":[28,6],"j":["love","like","affection","valentines"]},"heartpulse":{"a":"Growing Heart","b":"1F497","f":true,"k":[28,7],"j":["growing_heart","like","love","affection","valentines","pink"]},"heartbeat":{"a":"Beating Heart","b":"1F493","f":true,"k":[28,3],"j":["beating_heart","love","like","affection","valentines","pink","heart"]},"revolving_hearts":{"a":"Revolving Hearts","b":"1F49E","f":true,"k":[28,14],"j":["love","like","affection","valentines"]},"two_hearts":{"a":"Two Hearts","b":"1F495","f":true,"k":[28,5],"j":["love","like","affection","valentines","heart"]},"heart_decoration":{"a":"Heart Decoration","b":"1F49F","f":true,"k":[28,15],"j":["purple-square","love","like"]},"heavy_heart_exclamation_mark_ornament":{"a":"Heart Exclamation","b":"2763-FE0F","f":true,"k":[60,35],"c":"2763"},"broken_heart":{"a":"Broken Heart","b":"1F494","f":true,"k":[28,4],"j":["sad","sorry","break","heart","heartbreak"],"l":[" { - const accountId = id || state.getIn(['accounts_map', normalizeForLookup(acct)]); + const accountId = id || state.accounts_map[normalizeForLookup(acct)]; if (!accountId) { return { diff --git a/app/javascript/mastodon/features/following/index.jsx b/app/javascript/mastodon/features/following/index.jsx index 3200f1543b..1dc39df0ee 100644 --- a/app/javascript/mastodon/features/following/index.jsx +++ b/app/javascript/mastodon/features/following/index.jsx @@ -29,7 +29,7 @@ import { LimitedAccountHint } from '../account_timeline/components/limited_accou import Column from '../ui/components/column'; const mapStateToProps = (state, { params: { acct, id } }) => { - const accountId = id || state.getIn(['accounts_map', normalizeForLookup(acct)]); + const accountId = id || state.accounts_map[normalizeForLookup(acct)]; if (!accountId) { return { diff --git a/app/javascript/mastodon/hooks/useAccountId.ts b/app/javascript/mastodon/hooks/useAccountId.ts index 1cc819ca59..af1c93d17d 100644 --- a/app/javascript/mastodon/hooks/useAccountId.ts +++ b/app/javascript/mastodon/hooks/useAccountId.ts @@ -11,27 +11,25 @@ interface Params { id?: string; } -export function useAccountId() { +export const useAccountId = () => { const { acct, id } = useParams(); + const dispatch = useAppDispatch(); const accountId = useAppSelector( (state) => - id ?? - (state.accounts_map.get(normalizeForLookup(acct)) as string | undefined), + id ?? (acct ? state.accounts_map[normalizeForLookup(acct)] : undefined), ); - const account = useAppSelector((state) => accountId ? state.accounts.get(accountId) : undefined, ); - const isAccount = !!account; + const accountInStore = !!account; - const dispatch = useAppDispatch(); useEffect(() => { - if (!accountId) { + if (typeof accountId === 'undefined' && acct) { dispatch(lookupAccount(acct)); - } else if (!isAccount) { + } else if (accountId && !accountInStore) { dispatch(fetchAccount(accountId)); } - }, [dispatch, accountId, acct, isAccount]); + }, [dispatch, accountId, acct, accountInStore]); return accountId; -} +}; diff --git a/app/javascript/mastodon/hooks/useAccountVisibility.ts b/app/javascript/mastodon/hooks/useAccountVisibility.ts index 55651af5a0..7ef98eef69 100644 --- a/app/javascript/mastodon/hooks/useAccountVisibility.ts +++ b/app/javascript/mastodon/hooks/useAccountVisibility.ts @@ -1,12 +1,14 @@ import { getAccountHidden } from 'mastodon/selectors/accounts'; import { useAppSelector } from 'mastodon/store'; -export function useAccountVisibility(accountId?: string) { - const blockedBy = useAppSelector( - (state) => !!state.relationships.getIn([accountId, 'blocked_by'], false), +export function useAccountVisibility(accountId?: string | null) { + const blockedBy = useAppSelector((state) => + accountId + ? !!state.relationships.getIn([accountId, 'blocked_by'], false) + : false, ); - const suspended = useAppSelector( - (state) => !!state.accounts.getIn([accountId, 'suspended'], false), + const suspended = useAppSelector((state) => + accountId ? !!state.accounts.getIn([accountId, 'suspended'], false) : false, ); const hidden = useAppSelector((state) => accountId ? Boolean(getAccountHidden(state, accountId)) : false, diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 26dd71b8ab..30edd60606 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -29,6 +29,7 @@ "account.enable_notifications": "Notifica'm els tuts de @{name}", "account.endorse": "Recomana en el perfil", "account.featured": "Destacat", + "account.featured.accounts": "Perfils", "account.featured.hashtags": "Etiquetes", "account.featured.posts": "Publicacions", "account.featured_tags.last_status_at": "Darrer tut el {date}", @@ -405,8 +406,10 @@ "hashtag.counter_by_accounts": "{count, plural, one {{counter} participant} other {{counter} participants}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} tut} other {{counter} tuts}}", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} tut} other {{counter} tuts}} avui", + "hashtag.feature": "Destaca al perfil", "hashtag.follow": "Segueix l'etiqueta", "hashtag.mute": "Silencia #{hashtag}", + "hashtag.unfeature": "No destaquis al perfil", "hashtag.unfollow": "Deixa de seguir l'etiqueta", "hashtags.and_other": "…i {count, plural, other {# més}}", "hints.profiles.followers_may_be_missing": "Es poden haver perdut seguidors d'aquest perfil.", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 0f7a28a7f7..1e8037dff3 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -29,6 +29,7 @@ "account.enable_notifications": "Oznamovat mi příspěvky @{name}", "account.endorse": "Zvýraznit na profilu", "account.featured": "Zvýrazněné", + "account.featured.accounts": "Profily", "account.featured.hashtags": "Hashtagy", "account.featured.posts": "Příspěvky", "account.featured_tags.last_status_at": "Poslední příspěvek {date}", @@ -405,8 +406,10 @@ "hashtag.counter_by_accounts": "{count, plural, one {{counter} účastník*ice} few {{counter} účastníci} other {{counter} účastníků}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}", "hashtag.counter_by_uses_today": "Dnes {count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}", + "hashtag.feature": "Zvýraznit na profilu", "hashtag.follow": "Sledovat hashtag", "hashtag.mute": "Skrýt #{hashtag}", + "hashtag.unfeature": "Nezvýrazňovat na profilu", "hashtag.unfollow": "Přestat sledovat hashtag", "hashtags.and_other": "…a {count, plural, one {# další} few {# další} other {# dalších}}", "hints.profiles.followers_may_be_missing": "Sledující mohou pro tento profil chybět.", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index fcdca7da24..746a093d50 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -6,19 +6,19 @@ "about.domain_blocks.preamble": "Fel rheol, mae Mastodon yn caniatáu i chi weld cynnwys gan unrhyw weinyddwr arall yn y ffedysawd a rhyngweithio â hi. Dyma'r eithriadau a wnaed ar y gweinydd penodol hwn.", "about.domain_blocks.silenced.explanation": "Fel rheol, fyddwch chi ddim yn gweld proffiliau a chynnwys o'r gweinydd hwn, oni bai eich bod yn chwilio'n benodol amdano neu yn ymuno drwy ei ddilyn.", "about.domain_blocks.silenced.title": "Cyfyngedig", - "about.domain_blocks.suspended.explanation": "Ni fydd data o'r gweinydd hwn yn cael ei brosesu, ei gadw na'i gyfnewid, gan wneud unrhyw ryngweithio neu gyfathrebu gyda defnyddwyr o'r gweinydd hwn yn amhosibl.", + "about.domain_blocks.suspended.explanation": "Fydd data o'r gweinydd hwn ddim yn cael ei brosesu, ei gadw na'i gyfnewid, gan wneud unrhyw ryngweithio neu gyfathrebu gyda defnyddwyr o'r gweinydd hwn yn amhosibl.", "about.domain_blocks.suspended.title": "Wedi'i atal", - "about.not_available": "Nid yw'r wybodaeth hon ar gael ar y gweinydd hwn.", + "about.not_available": "Dyw'r wybodaeth yma heb ei wneud ar gael ar y gweinydd hwn.", "about.powered_by": "Cyfrwng cymdeithasol datganoledig wedi ei yrru gan {mastodon}", "about.rules": "Rheolau'r gweinydd", "account.account_note_header": "Nodyn personol", "account.add_or_remove_from_list": "Ychwanegu neu Ddileu o'r rhestrau", "account.badges.bot": "Awtomataidd", "account.badges.group": "Grŵp", - "account.block": "Blocio @{name}", - "account.block_domain": "Blocio'r parth {domain}", - "account.block_short": "Blocio", - "account.blocked": "Blociwyd", + "account.block": "Rhwystro @{name}", + "account.block_domain": "Rhwystro'r parth {domain}", + "account.block_short": "Rhwystro", + "account.blocked": "Wedi'i rwystro", "account.blocking": "Yn Rhwystro", "account.cancel_follow_request": "Tynnu cais i ddilyn", "account.copy": "Copïo dolen i'r proffil", @@ -28,7 +28,7 @@ "account.edit_profile": "Golygu'r proffil", "account.enable_notifications": "Rhowch wybod i fi pan fydd @{name} yn postio", "account.endorse": "Dangos ar fy mhroffil", - "account.featured": "Dethol", + "account.featured": "Nodwedd", "account.featured.hashtags": "Hashnodau", "account.featured.posts": "Postiadau", "account.featured_tags.last_status_at": "Y postiad olaf ar {date}", @@ -40,7 +40,7 @@ "account.followers_counter": "{count, plural, one {{counter} dilynwr} two {{counter} ddilynwr} other {{counter} dilynwyr}}", "account.following": "Yn dilyn", "account.following_counter": "{count, plural, one {Yn dilyn {counter}} other {Yn dilyn {counter} arall}}", - "account.follows.empty": "Nid yw'r defnyddiwr hwn yn dilyn unrhyw un eto.", + "account.follows.empty": "Dyw'r defnyddiwr hwn ddim yn dilyn unrhyw un eto.", "account.follows_you": "Yn eich dilyn chi", "account.go_to_profile": "Mynd i'r proffil", "account.hide_reblogs": "Cuddio hybiau gan @{name}", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 578722a035..143734a38c 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -29,6 +29,7 @@ "account.enable_notifications": "Advisér mig, når @{name} poster", "account.endorse": "Fremhæv på profil", "account.featured": "Fremhævet", + "account.featured.accounts": "Profiler", "account.featured.hashtags": "Hashtags", "account.featured.posts": "Indlæg", "account.featured_tags.last_status_at": "Seneste indlæg {date}", @@ -405,8 +406,10 @@ "hashtag.counter_by_accounts": "{count, plural, one {{counter} deltager} other {{counter} deltagere}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}}", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}} i dag", + "hashtag.feature": "Fremhæv på profil", "hashtag.follow": "Følg etiket", "hashtag.mute": "Tavsgør #{hashtag}", + "hashtag.unfeature": "Fremhæv ikke på profil", "hashtag.unfollow": "Stop med at følge etiket", "hashtags.and_other": "…og {count, plural, one {}other {# flere}}", "hints.profiles.followers_may_be_missing": "Der kan mangle følgere for denne profil.", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index f754513149..cf6f4786e7 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -29,6 +29,7 @@ "account.enable_notifications": "Benachrichtige mich wenn @{name} etwas postet", "account.endorse": "Im Profil vorstellen", "account.featured": "Vorgestellt", + "account.featured.accounts": "Profile", "account.featured.hashtags": "Hashtags", "account.featured.posts": "Beiträge", "account.featured_tags.last_status_at": "Letzter Beitrag am {date}", @@ -405,8 +406,10 @@ "hashtag.counter_by_accounts": "{count, plural, one{{counter} Beteiligte*r} other{{counter} Beteiligte}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}}", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}} heute", + "hashtag.feature": "Im Profil vorstellen", "hashtag.follow": "Hashtag folgen", "hashtag.mute": "#{hashtag} stummschalten", + "hashtag.unfeature": "Im Profil nicht mehr vorstellen", "hashtag.unfollow": "Hashtag entfolgen", "hashtags.and_other": "… und {count, plural, one{# weiterer} other {# weitere}}", "hints.profiles.followers_may_be_missing": "Möglicherweise werden für dieses Profil nicht alle Follower angezeigt.", @@ -426,7 +429,7 @@ "home.show_announcements": "Ankündigungen anzeigen", "ignore_notifications_modal.disclaimer": "Mastodon kann anderen Nutzer*innen nicht mitteilen, dass du deren Benachrichtigungen ignorierst. Das Ignorieren von Benachrichtigungen wird nicht das Absenden der Nachricht selbst unterbinden.", "ignore_notifications_modal.filter_instead": "Stattdessen filtern", - "ignore_notifications_modal.filter_to_act_users": "Du wirst weiterhin die Möglichkeit haben, andere Nutzer*innen zu genehmigen, abzulehnen oder zu melden", + "ignore_notifications_modal.filter_to_act_users": "Du wirst weiterhin die Möglichkeit haben, andere Nutzer*innen zu akzeptieren, abzulehnen oder zu melden", "ignore_notifications_modal.filter_to_avoid_confusion": "Filtern hilft, mögliches Durcheinander zu vermeiden", "ignore_notifications_modal.filter_to_review_separately": "Gefilterte Benachrichtigungen können separat überprüft werden", "ignore_notifications_modal.ignore": "Benachrichtigungen ignorieren", @@ -610,11 +613,11 @@ "notification.relationships_severance_event.user_domain_block": "Du hast {target} blockiert – {followersCount} deiner Follower und {followingCount, plural, one {# Konto, dem} other {# Konten, denen}} du folgst, wurden entfernt.", "notification.status": "{name} postete …", "notification.update": "{name} bearbeitete einen Beitrag", - "notification_requests.accept": "Genehmigen", - "notification_requests.accept_multiple": "{count, plural, one {# Anfrage genehmigen …} other {# Anfragen genehmigen …}}", - "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Anfrage genehmigen} other {Anfragen genehmigen}}", - "notification_requests.confirm_accept_multiple.message": "Du bist dabei, {{count, plural, one {eine Benachrichtigungsanfrage} other {# Benachrichtigungsanfragen}} zu genehmigen. Möchtest du wirklich fortfahren?", - "notification_requests.confirm_accept_multiple.title": "Benachrichtigungsanfragen genehmigen?", + "notification_requests.accept": "Akzeptieren", + "notification_requests.accept_multiple": "{count, plural, one {# Anfrage akzeptieren …} other {# Anfragen akzeptieren …}}", + "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Anfrage akzeptieren} other {Anfragen akzeptieren}}", + "notification_requests.confirm_accept_multiple.message": "Du bist dabei, {{count, plural, one {eine Benachrichtigungsanfrage} other {# Benachrichtigungsanfragen}} zu akzeptieren. Möchtest du wirklich fortfahren?", + "notification_requests.confirm_accept_multiple.title": "Benachrichtigungsanfragen akzeptieren?", "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Anfrage ablehnen} other {Anfragen ablehnen}}", "notification_requests.confirm_dismiss_multiple.message": "Du bist dabei, {count, plural, one {eine Benachrichtigungsanfrage} other {# Benachrichtigungsanfragen}} abzulehnen. Du wirst nicht mehr ohne Weiteres auf {count, plural, one {sie} other {sie}} zugreifen können. Möchtest du wirklich fortfahren?", "notification_requests.confirm_dismiss_multiple.title": "Benachrichtigungsanfragen ablehnen?", diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index e193e10a6d..3d6e166498 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -29,6 +29,7 @@ "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", "account.featured": "Featured", + "account.featured.accounts": "Profiles", "account.featured.hashtags": "Hashtags", "account.featured.posts": "Posts", "account.featured_tags.last_status_at": "Last post on {date}", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index e39c064dd8..83011e0f29 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -29,6 +29,7 @@ "account.enable_notifications": "Notificarme cuando @{name} envíe mensajes", "account.endorse": "Destacar en el perfil", "account.featured": "Destacados", + "account.featured.accounts": "Perfiles", "account.featured.hashtags": "Etiquetas", "account.featured.posts": "Mensajes", "account.featured_tags.last_status_at": "Último mensaje: {date}", @@ -405,8 +406,10 @@ "hashtag.counter_by_accounts": "{count, plural, one {{counter} participante} other {{counter} participantes}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} mensaje} other {{counter} mensajes}}", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} mensaje} other {{counter} mensajes}} hoy", + "hashtag.feature": "Destacar en el perfil", "hashtag.follow": "Seguir etiqueta", "hashtag.mute": "Silenciar #{hashtag}", + "hashtag.unfeature": "No destacar en el perfil", "hashtag.unfollow": "Dejar de seguir etiqueta", "hashtags.and_other": "…y {count, plural, other {# más}}", "hints.profiles.followers_may_be_missing": "Es posible que falten seguidores de este perfil.", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index 7b9a992a7f..43e9706a62 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -29,6 +29,7 @@ "account.enable_notifications": "Notificarme cuando @{name} publique algo", "account.endorse": "Destacar en mi perfil", "account.featured": "Destacado", + "account.featured.accounts": "Perfiles", "account.featured.hashtags": "Etiquetas", "account.featured.posts": "Publicaciones", "account.featured_tags.last_status_at": "Última publicación el {date}", @@ -405,8 +406,10 @@ "hashtag.counter_by_accounts": "{count, plural, one {{counter} participante} other {{counter} participantes}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}} hoy", + "hashtag.feature": "Destacar en el perfil", "hashtag.follow": "Seguir etiqueta", "hashtag.mute": "Silenciar #{hashtag}", + "hashtag.unfeature": "No destacar en el perfil", "hashtag.unfollow": "Dejar de seguir etiqueta", "hashtags.and_other": "…y {count, plural, other {# más}}", "hints.profiles.followers_may_be_missing": "Puede que no se muestren todos los seguidores de este perfil.", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 83798e6cf3..9116c04360 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -29,6 +29,7 @@ "account.enable_notifications": "Notificarme cuando @{name} publique algo", "account.endorse": "Destacar en el perfil", "account.featured": "Destacado", + "account.featured.accounts": "Perfiles", "account.featured.hashtags": "Etiquetas", "account.featured.posts": "Publicaciones", "account.featured_tags.last_status_at": "Última publicación el {date}", @@ -405,8 +406,10 @@ "hashtag.counter_by_accounts": "{count, plural, one {{counter} participante} other {{counter} participantes}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}} hoy", + "hashtag.feature": "Destacar en el perfil", "hashtag.follow": "Seguir etiqueta", "hashtag.mute": "Silenciar #{hashtag}", + "hashtag.unfeature": "No destacar en el perfil", "hashtag.unfollow": "Dejar de seguir etiqueta", "hashtags.and_other": "…y {count, plural, other {# más}}", "hints.profiles.followers_may_be_missing": "Puede que no se muestren todos los seguidores de este perfil.", @@ -581,7 +584,7 @@ "notification.favourite_pm": "{name} ha marcado como favorita tu mención privada", "notification.favourite_pm.name_and_others_with_link": "{name} y {count, plural, one {# más} other {# más}} han marcado como favorita tu mención privada", "notification.follow": "{name} te empezó a seguir", - "notification.follow.name_and_others": "{name} y {count, plural, one {# otro} other {# otros}} te siguieron", + "notification.follow.name_and_others": "{name} y {count, plural, one {# otro} other {otros #}} te siguieron", "notification.follow_request": "{name} ha solicitado seguirte", "notification.follow_request.name_and_others": "{name} y {count, plural, one {# más} other {# más}} han solicitado seguirte", "notification.label.mention": "Mención", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index ef4cbfbbb0..4f2f9d2a9f 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -29,6 +29,7 @@ "account.enable_notifications": "Ilmoita minulle, kun @{name} julkaisee", "account.endorse": "Suosittele profiilissa", "account.featured": "Suositellut", + "account.featured.accounts": "Profiilit", "account.featured.hashtags": "Aihetunnisteet", "account.featured.posts": "Julkaisut", "account.featured_tags.last_status_at": "Viimeisin julkaisu {date}", @@ -405,8 +406,10 @@ "hashtag.counter_by_accounts": "{count, plural, one {{counter} osallistuja} other {{counter} osallistujaa}}", "hashtag.counter_by_uses": "{count, plural, one{{counter} julkaisu} other {{counter} julkaisua}}", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}} tänään", + "hashtag.feature": "Suosittele profiilissa", "hashtag.follow": "Seuraa aihetunnistetta", "hashtag.mute": "Mykistä #{hashtag}", + "hashtag.unfeature": "Kumoa suosittelu profiilissa", "hashtag.unfollow": "Lopeta aihetunnisteen seuraaminen", "hashtags.and_other": "…ja {count, plural, other {# lisää}}", "hints.profiles.followers_may_be_missing": "Tämän profiilin seuraajia saattaa puuttua.", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index 4bf2e68691..efefbc752c 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -29,6 +29,7 @@ "account.enable_notifications": "Boða mær frá, tá @{name} skrivar", "account.endorse": "Víst á vangamyndini", "account.featured": "Tikin fram", + "account.featured.accounts": "Vangar", "account.featured.hashtags": "Frámerki", "account.featured.posts": "Postar", "account.featured_tags.last_status_at": "Seinasta strongur skrivaður {date}", @@ -405,8 +406,10 @@ "hashtag.counter_by_accounts": "{count, plural, one {{counter} luttakari} other {{counter} luttakarar}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} postur} other {{counter} postar}}", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} postur} other {{counter} postar}} í dag", + "hashtag.feature": "Vís á vanga", "hashtag.follow": "Fylg frámerki", "hashtag.mute": "Doyv @#{hashtag}", + "hashtag.unfeature": "Vís ikki á vanga", "hashtag.unfollow": "Gevst at fylgja frámerki", "hashtags.and_other": "…og {count, plural, other {# afturat}}", "hints.profiles.followers_may_be_missing": "Fylgjarar hjá hesum vanganum kunnu mangla.", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index e963a711f9..c527c8a7ca 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -29,6 +29,7 @@ "account.enable_notifications": "Noficarme cando @{name} publique", "account.endorse": "Amosar no perfil", "account.featured": "Destacado", + "account.featured.accounts": "Perfís", "account.featured.hashtags": "Cancelos", "account.featured.posts": "Publicacións", "account.featured_tags.last_status_at": "Última publicación o {date}", @@ -405,8 +406,10 @@ "hashtag.counter_by_accounts": "{count, plural, one {{counter} participante} other {{counter} participantes}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} publicación} other {{counter} publicacións}}", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicación} other {{counter} publicacións}} hoxe", + "hashtag.feature": "Destacar no perfil", "hashtag.follow": "Seguir cancelo", "hashtag.mute": "Acalar a #{hashtag}", + "hashtag.unfeature": "Non destacar no perfil", "hashtag.unfollow": "Deixar de seguir cancelo", "hashtags.and_other": "…e {count, plural, one {}other {# máis}}", "hints.profiles.followers_may_be_missing": "Poderían faltar seguidoras deste perfil.", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 67e384f6da..859dfd1e9d 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -29,6 +29,7 @@ "account.enable_notifications": "שלח לי התראות כש@{name} מפרסם", "account.endorse": "קדם את החשבון בפרופיל", "account.featured": "מומלץ", + "account.featured.accounts": "פרופילים", "account.featured.hashtags": "תגיות", "account.featured.posts": "הודעות", "account.featured_tags.last_status_at": "חצרוץ אחרון בתאריך {date}", @@ -405,8 +406,10 @@ "hashtag.counter_by_accounts": "{count, plural,one{{count} משתתף.ת}other{{counter} משתתפיםות}}", "hashtag.counter_by_uses": "{count, plural, one {הודעה אחת} two {הודעותיים} many {{counter} הודעות} other {{counter} הודעות}}", "hashtag.counter_by_uses_today": "{count, plural, one {הודעה אחת} two {הודעותיים} many {{counter} הודעות} other {{counter} הודעות}} היום", + "hashtag.feature": "מובלט בפרופיל", "hashtag.follow": "לעקוב אחרי תגית", "hashtag.mute": "להשתיק את #{hashtag}", + "hashtag.unfeature": "לא להבליט בפרופיל", "hashtag.unfollow": "להפסיק לעקוב אחרי תגית", "hashtags.and_other": "…{count, plural,other {ועוד #}}", "hints.profiles.followers_may_be_missing": "יתכן כי עוקבים של פרופיל זה חסרים.", diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json index 138dc713d4..1a3d36d83f 100644 --- a/app/javascript/mastodon/locales/ia.json +++ b/app/javascript/mastodon/locales/ia.json @@ -19,13 +19,19 @@ "account.block_domain": "Blocar dominio {domain}", "account.block_short": "Blocar", "account.blocked": "Blocate", + "account.blocking": "Blocate", "account.cancel_follow_request": "Cancellar sequimento", "account.copy": "Copiar ligamine a profilo", "account.direct": "Mentionar privatemente @{name}", "account.disable_notifications": "Non plus notificar me quando @{name} publica", + "account.domain_blocking": "Dominio blocate", "account.edit_profile": "Modificar profilo", "account.enable_notifications": "Notificar me quando @{name} publica", "account.endorse": "Evidentiar sur le profilo", + "account.featured": "In evidentia", + "account.featured.accounts": "Profilos", + "account.featured.hashtags": "Hashtags", + "account.featured.posts": "Messages", "account.featured_tags.last_status_at": "Ultime message publicate le {date}", "account.featured_tags.last_status_never": "Necun message", "account.follow": "Sequer", @@ -36,6 +42,7 @@ "account.following": "Sequente", "account.following_counter": "{count, plural, one {{counter} sequite} other {{counter} sequites}}", "account.follows.empty": "Iste usator non seque ancora alcuno.", + "account.follows_you": "Te seque", "account.go_to_profile": "Vader al profilo", "account.hide_reblogs": "Celar impulsos de @{name}", "account.in_memoriam": "In memoriam.", @@ -50,18 +57,23 @@ "account.mute_notifications_short": "Silentiar le notificationes", "account.mute_short": "Silentiar", "account.muted": "Silentiate", + "account.muting": "Silentiate", + "account.mutual": "Sequimento mutue", "account.no_bio": "Nulle description fornite.", "account.open_original_page": "Aperir le pagina original", "account.posts": "Messages", "account.posts_with_replies": "Messages e responsas", + "account.remove_from_followers": "Remover {name} del sequitores", "account.report": "Reportar @{name}", "account.requested": "Attendente le approbation. Clicca pro cancellar le requesta de sequer", "account.requested_follow": "{name} ha requestate de sequer te", + "account.requests_to_follow_you": "Requestas de sequer te", "account.share": "Compartir profilo de @{name}", "account.show_reblogs": "Monstrar impulsos de @{name}", "account.statuses_counter": "{count, plural, one {{counter} message} other {{counter} messages}}", "account.unblock": "Disblocar @{name}", "account.unblock_domain": "Disblocar dominio {domain}", + "account.unblock_domain_short": "Disblocar", "account.unblock_short": "Disblocar", "account.unendorse": "Non evidentiar sur le profilo", "account.unfollow": "Non plus sequer", @@ -157,6 +169,7 @@ "column.lists": "Listas", "column.mutes": "Usatores silentiate", "column.notifications": "Notificationes", + "column.pins": "Messages in evidentia", "column.public": "Chronologia federate", "column_back_button.label": "Retro", "column_header.hide_settings": "Celar le parametros", @@ -222,6 +235,9 @@ "confirmations.redraft.confirm": "Deler e rescriber", "confirmations.redraft.message": "Es tu secur de voler deler iste message e rescriber lo? Le favorites e le impulsos essera perdite, e le responsas al message original essera orphanate.", "confirmations.redraft.title": "Deler e rescriber le message?", + "confirmations.remove_from_followers.confirm": "Remover sequitor", + "confirmations.remove_from_followers.message": "{name} non plus te sequera. Es tu secur de voler continuar?", + "confirmations.remove_from_followers.title": "Remover sequitor?", "confirmations.reply.confirm": "Responder", "confirmations.reply.message": "Si tu responde ora, le message in curso de composition essera perdite. Es tu secur de voler continuar?", "confirmations.reply.title": "Superscriber le message?", @@ -289,6 +305,9 @@ "emoji_button.search_results": "Resultatos de recerca", "emoji_button.symbols": "Symbolos", "emoji_button.travel": "Viages e locos", + "empty_column.account_featured.me": "Tu non ha ancora mittite alcun cosa in evidentia. Sapeva tu que tu pote mitter in evidentia tu messages, le hashtags que tu usa le plus, e mesmo le contos de tu amicos sur tu profilo?", + "empty_column.account_featured.other": "{acct} non ha ancora mittite alcun cosa in evidentia. Sapeva tu que tu pote mitter in evidentia tu messages, le hashtags que tu usa le plus, e mesmo le contos de tu amicos sur tu profilo?", + "empty_column.account_featured_other.unknown": "Iste conto non ha ancora mittite alcun cosa in evidentia.", "empty_column.account_hides_collections": "Le usator non ha rendite iste information disponibile", "empty_column.account_suspended": "Conto suspendite", "empty_column.account_timeline": "Nulle messages hic!", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index a75200d8fa..3f3bf4e707 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -29,6 +29,7 @@ "account.enable_notifications": "Láta mig vita þegar @{name} sendir inn", "account.endorse": "Birta á notandasniði", "account.featured": "Með aukið vægi", + "account.featured.accounts": "Notendasnið", "account.featured.hashtags": "Myllumerki", "account.featured.posts": "Færslur", "account.featured_tags.last_status_at": "Síðasta færsla þann {date}", @@ -405,8 +406,10 @@ "hashtag.counter_by_accounts": "{count, plural, one {{counter} þátttakandi} other {{counter} þátttakendur}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} færsla} other {{counter} færslur}}", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} færsla} other {{counter} færslur}} í dag", + "hashtag.feature": "Birta á notandasniði", "hashtag.follow": "Fylgjast með myllumerki", "hashtag.mute": "Þagga #{hashtag}", + "hashtag.unfeature": "Ekki birta á notandasniði", "hashtag.unfollow": "Hætta að fylgjast með myllumerki", "hashtags.and_other": "…og {count, plural, other {# til viðbótar}}", "hints.profiles.followers_may_be_missing": "Fylgjendur frá þessum notanda gæti vantað.", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index 3757fdabaf..a8fc8b015c 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -24,6 +24,7 @@ "account.edit_profile": "Ẓreg amaɣnu", "account.enable_notifications": "Azen-iyi-d ilɣa mi ara d-isuffeɣ @{name}", "account.endorse": "Welleh fell-as deg umaɣnu-inek", + "account.featured.accounts": "Imeɣna", "account.featured.hashtags": "Ihacṭagen", "account.featured.posts": "Tisuffaɣ", "account.featured_tags.last_status_at": "Tasuffeɣt taneggarut ass n {date}", @@ -36,6 +37,7 @@ "account.following": "Yeṭṭafaṛ", "account.following_counter": "{count, plural, one {{counter} yettwaḍfaren} other {{counter} yettwaḍfaren}}", "account.follows.empty": "Ar tura, amseqdac-agi ur yeṭṭafaṛ yiwen.", + "account.follows_you": "Yeṭṭafaṛ-ik·em-id", "account.go_to_profile": "Ddu ɣer umaɣnu", "account.hide_reblogs": "Ffer ayen i ibeṭṭu @{name}", "account.joined_short": "Izeddi da seg ass n", @@ -415,6 +417,7 @@ "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "Yemla-t-id {name} {target}", "notification.admin.sign_up": "Ijerred {name}", + "notification.annual_report.view": "Wali #Wrapstodon", "notification.favourite": "{name} yesmenyaf addad-ik·im", "notification.follow": "iṭṭafar-ik·em-id {name}", "notification.follow.name_and_others": "{name} akked {count, plural, one {# nniḍen} other {# nniḍen}} iḍfeṛ-k·m-id", @@ -466,6 +469,7 @@ "notifications.group": "{count} n yilɣa", "notifications.mark_as_read": "Creḍ akk ilɣa am wakken ttwaɣran", "notifications.permission_denied": "D awezɣi ad yili wermad n yilɣa n tnarit axateṛ turagt tettwagdel", + "notifications.policy.accept": "Qbel", "notifications.policy.drop": "Anef-as", "notifications.policy.filter": "Sizdeg", "notifications.policy.filter_new_accounts.hint": "Imiḍanen imaynuten i d-yennulfan deg {days, plural, one {yiwen n wass} other {# n wussan}} yezrin", @@ -580,6 +584,7 @@ "search_results.all": "Akk", "search_results.hashtags": "Ihacṭagen", "search_results.no_results": "Ulac igemmaḍ.", + "search_results.no_search_yet": "Ɛreḍ ad d-tnadiḍ ɣef iznan, imaɣnuten neɣ ihacṭagen.", "search_results.see_all": "Wali-ten akk", "search_results.statuses": "Tisuffaɣ", "search_results.title": "Igemmaḍ n unadi ɣef \"{q}\"", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index e3de24fe82..4e60a84016 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -29,6 +29,7 @@ "account.enable_notifications": "@{name} 의 게시물 알림 켜기", "account.endorse": "프로필에 추천하기", "account.featured": "추천", + "account.featured.accounts": "프로필", "account.featured.hashtags": "해시태그", "account.featured.posts": "게시물", "account.featured_tags.last_status_at": "{date}에 마지막으로 게시", @@ -168,6 +169,7 @@ "column.lists": "리스트", "column.mutes": "뮤트한 사용자", "column.notifications": "알림", + "column.pins": "추천 게시물", "column.public": "연합 타임라인", "column_back_button.label": "돌아가기", "column_header.hide_settings": "설정 숨기기", @@ -226,9 +228,9 @@ "confirmations.logout.message": "정말로 로그아웃 하시겠습니까?", "confirmations.logout.title": "로그아웃 할까요?", "confirmations.missing_alt_text.confirm": "대체 텍스트 추가", - "confirmations.missing_alt_text.message": "대체 텍스트가 없는 미디어를 포함하고 있습니다. 설명을 추가하면 더 많은 사람들이 내 콘텐츠에 접근할 수 있습니다.", + "confirmations.missing_alt_text.message": "대체 텍스트가 없는 미디어를 포함하고 있습니다. 설명을 추가하면 더 많은 사람들이 내 콘텐츠에 접근할 수 있습니다. ", "confirmations.missing_alt_text.secondary": "그냥 게시하기", - "confirmations.missing_alt_text.title": "대체 텍스트를 추가할까요?", + "confirmations.missing_alt_text.title": "대체 텍스트를 추가할까요? ", "confirmations.mute.confirm": "뮤트", "confirmations.redraft.confirm": "삭제하고 다시 쓰기", "confirmations.redraft.message": "정말로 이 게시물을 삭제하고 다시 쓰시겠습니까? 해당 게시물에 대한 부스트와 좋아요를 잃게 되고 원본에 대한 답장은 연결 되지 않습니다.", @@ -435,7 +437,7 @@ "ignore_notifications_modal.not_following_title": "내가 팔로우하지 않는 사람들의 알림을 무시할까요?", "ignore_notifications_modal.private_mentions_title": "요청하지 않은 개인 멘션 알림을 무시할까요?", "info_button.label": "도움말", - "info_button.what_is_alt_text": "

대체 텍스트가 무었인가요?

대체 텍스트는 저시력자, 낮은 인터넷 대역폭 사용자, 더 자세한 문맥을 위해 이미지에 대한 설명을 제공하는 것입니다.

깔끔하고 간결하고 객관적인 대체 텍스트를 작성해 모두가 이해하기 쉽게 만들고 접근성이 높아질 수 있습니다.

  • 중요한 요소에 중점을 두세요
  • 이미지 안의 글자를 요약하세요
  • 정형화된 문장 구조를 사용하세요
  • 중복된 정보를 피하세요
  • 복잡한 시각자료(도표나 지도 같은)에선 추세와 주요 결과에 중점을 두세요
", + "info_button.what_is_alt_text": "

대체 텍스트가 무엇인가요?

대체 텍스트는 저시력자, 낮은 인터넷 대역폭 사용자, 더 자세한 문맥을 위해 이미지에 대한 설명을 제공하는 것입니다.

깔끔하고 간결하고 객관적인 대체 텍스트를 작성해 모두가 이해하기 쉽게 만들고 접근성이 높아질 수 있습니다.

  • 중요한 요소에 중점을 두세요
  • 이미지 안의 글자를 요약하세요
  • 정형화된 문장 구조를 사용하세요
  • 중복된 정보를 피하세요
  • 복잡한 시각자료(도표나 지도 같은)에선 추세와 주요 결과에 중점을 두세요
", "interaction_modal.action.favourite": "계속하려면 내 계정으로 즐겨찾기해야 합니다.", "interaction_modal.action.follow": "계속하려면 내 계정으로 팔로우해야 합니다.", "interaction_modal.action.reblog": "계속하려면 내 계정으로 리블로그해야 합니다.", @@ -476,6 +478,7 @@ "keyboard_shortcuts.my_profile": "내 프로필 열기", "keyboard_shortcuts.notifications": "알림 컬럼 열기", "keyboard_shortcuts.open_media": "미디어 열기", + "keyboard_shortcuts.pinned": "추천 게시물 목록 열기", "keyboard_shortcuts.profile": "작성자의 프로필 열기", "keyboard_shortcuts.reply": "게시물에 답장", "keyboard_shortcuts.requests": "팔로우 요청 리스트 열기", @@ -559,6 +562,7 @@ "navigation_bar.mutes": "뮤트한 사용자", "navigation_bar.opened_in_classic_interface": "게시물, 계정, 기타 특정 페이지들은 기본적으로 기존 웹 인터페이스로 열리게 됩니다.", "navigation_bar.personal": "개인용", + "navigation_bar.pins": "추천 게시물", "navigation_bar.preferences": "환경설정", "navigation_bar.public_timeline": "연합 타임라인", "navigation_bar.search": "검색", @@ -753,12 +757,12 @@ "report.comment.title": "우리가 더 알아야 할 내용이 있나요?", "report.forward": "{target}에 전달", "report.forward_hint": "이 계정은 다른 서버에 있습니다. 익명화 된 사본을 해당 서버에도 전송할까요?", - "report.mute": "침묵", + "report.mute": "뮤트", "report.mute_explanation": "당신은 해당 계정의 게시물을 보지 않게 됩니다. 해당 계정은 여전히 당신을 팔로우 하거나 당신의 게시물을 볼 수 있으며 해당 계정은 자신이 뮤트 되었는지 알지 못합니다.", "report.next": "다음", - "report.placeholder": "코멘트", + "report.placeholder": "추가 정보 입력", "report.reasons.dislike": "마음에 안 듭니다", - "report.reasons.dislike_description": "내가 보기 싫은 종류에 속합니다", + "report.reasons.dislike_description": "원치 않는 게시물입니다", "report.reasons.legal": "불법입니다", "report.reasons.legal_description": "내 서버가 속한 국가의 법률을 위반한다고 생각합니다", "report.reasons.other": "기타", @@ -843,17 +847,18 @@ "status.favourite": "좋아요", "status.favourites": "{count, plural, other {좋아요}}", "status.filter": "이 게시물을 필터", - "status.history.created": "{name} 님이 {date}에 처음 게시함", + "status.history.created": "{name} 님이 {date}에 게시함", "status.history.edited": "{name} 님이 {date}에 수정함", - "status.load_more": "더 보기", + "status.load_more": "더보기", "status.media.open": "클릭하여 열기", "status.media.show": "클릭하여 보기", "status.media_hidden": "미디어 숨겨짐", "status.mention": "@{name} 님에게 멘션", "status.more": "자세히", "status.mute": "@{name} 뮤트", - "status.mute_conversation": "이 대화를 뮤트", + "status.mute_conversation": "대화 뮤트", "status.open": "상세 정보 표시", + "status.pin": "고정", "status.read_more": "더 보기", "status.reblog": "부스트", "status.reblog_private": "원래의 수신자들에게 부스트", @@ -878,6 +883,7 @@ "status.translated_from_with": "{provider}에 의해 {lang}에서 번역됨", "status.uncached_media_warning": "미리보기를 사용할 수 없습니다", "status.unmute_conversation": "이 대화의 뮤트 해제하기", + "status.unpin": "고정 취소", "subscribed_languages.lead": "변경 후에는 선택한 언어들로 작성된 게시물들만 홈 타임라인과 리스트 타임라인에 나타나게 됩니다. 아무 것도 선택하지 않으면 모든 언어로 작성된 게시물을 받아봅니다.", "subscribed_languages.save": "변경사항 저장", "subscribed_languages.target": "{target}에 대한 구독 언어 변경", @@ -894,9 +900,9 @@ "trends.counter_by_accounts": "이전 {days}일 동안 {counter} 명의 사용자", "trends.trending_now": "지금 유행 중", "ui.beforeunload": "지금 나가면 저장되지 않은 항목을 잃게 됩니다.", - "units.short.billion": "{count}B", - "units.short.million": "{count}B", - "units.short.thousand": "{count}K", + "units.short.billion": "{count}십억", + "units.short.million": "{count}백만", + "units.short.thousand": "{count}천", "upload_area.title": "드래그 & 드롭으로 업로드", "upload_button.label": "이미지, 영상, 오디오 파일 추가", "upload_error.limit": "파일 업로드 제한에 도달했습니다.", @@ -909,7 +915,7 @@ "upload_form.edit": "수정", "upload_progress.label": "업로드 중...", "upload_progress.processing": "처리 중...", - "username.taken": "이미 쓰인 사용자명입니다. 다른 것으로 시도해보세요", + "username.taken": "이미 사용중인 사용자명입니다. 다시 시도해보세요", "video.close": "동영상 닫기", "video.download": "파일 다운로드", "video.exit_fullscreen": "전체화면 나가기", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index 8625eaa4e7..0c164fa765 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -26,6 +26,7 @@ "account.edit_profile": "Labot profilu", "account.enable_notifications": "Paziņot man, kad @{name} izveido ierakstu", "account.endorse": "Izcelts profilā", + "account.featured.accounts": "Profili", "account.featured.hashtags": "Tēmturi", "account.featured.posts": "Ieraksti", "account.featured_tags.last_status_at": "Pēdējais ieraksts {date}", @@ -369,7 +370,9 @@ "hashtag.counter_by_accounts": "{count, plural, zero{{counter} dalībnieku} one {{counter} dalībnieks} other {{counter} dalībnieki}}", "hashtag.counter_by_uses": "{count, plural, zero {{counter} ierakstu} one {{counter} ieraksts} other {{counter} ieraksti}}", "hashtag.counter_by_uses_today": "{count, plural, zero {{counter} ierakstu} one {{counter} ieraksts} other {{counter} ieraksti}} šodien", + "hashtag.feature": "Attēlot profilā", "hashtag.follow": "Sekot tēmturim", + "hashtag.unfeature": "Neattēlot profilā", "hashtag.unfollow": "Pārstāt sekot tēmturim", "hashtags.and_other": "… un {count, plural, other {vēl #}}", "hints.profiles.see_more_followers": "Skatīt vairāk sekotāju {domain}", diff --git a/app/javascript/mastodon/locales/nan.json b/app/javascript/mastodon/locales/nan.json index 3352edf37a..1d2650e6a3 100644 --- a/app/javascript/mastodon/locales/nan.json +++ b/app/javascript/mastodon/locales/nan.json @@ -670,8 +670,14 @@ "notifications.policy.drop_hint": "送去虛空,bē koh看見", "notifications.policy.filter": "過濾器", "notifications.policy.filter_hint": "送kàu受過濾ê通知ê收件kheh-á", + "notifications.policy.filter_limited_accounts_hint": "Hōo服侍器ê管理員限制", "notifications.policy.filter_limited_accounts_title": "受管制ê口座", + "notifications.policy.filter_new_accounts.hint": "建立tī最近 {days, plural, other {# kang}}內", "notifications.policy.filter_new_accounts_title": "新ê口座", + "notifications.policy.filter_not_followers_hint": "包含最近{days, plural, other {# kang}}內跟tuè lí ê lâng", + "notifications.policy.filter_not_followers_title": "無跟tuè lí ê lâng", + "notifications.policy.filter_not_following_hint": "直到lí手動允准in", + "notifications.policy.filter_not_following_title": "Lí無跟tuè ê lâng", "notifications_permission_banner.title": "逐ê著看", "onboarding.follows.back": "轉去", "onboarding.follows.done": "做好ah", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 0491e5ceba..2fe9a8d784 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -29,6 +29,7 @@ "account.enable_notifications": "Geef een melding wanneer @{name} een bericht plaatst", "account.endorse": "Op profiel weergeven", "account.featured": "Uitgelicht", + "account.featured.accounts": "Profielen", "account.featured.hashtags": "Hashtags", "account.featured.posts": "Berichten", "account.featured_tags.last_status_at": "Laatste bericht op {date}", @@ -405,8 +406,10 @@ "hashtag.counter_by_accounts": "{count, plural, one {{counter} deelnemer} other {{counter} deelnemers}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} bericht} other {{counter} berichten}}", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} bericht} other {{counter} berichten}} vandaag", + "hashtag.feature": "Op profiel uitlichten", "hashtag.follow": "Hashtag volgen", "hashtag.mute": "#{hashtag} negeren", + "hashtag.unfeature": "Niet op profiel uitlichten", "hashtag.unfollow": "Hashtag ontvolgen", "hashtags.and_other": "…en {count, plural, one {}other {# meer}}", "hints.profiles.followers_may_be_missing": "Volgers voor dit profiel kunnen ontbreken.", @@ -857,7 +860,7 @@ "status.mute": "@{name} negeren", "status.mute_conversation": "Gesprek negeren", "status.open": "Volledig bericht tonen", - "status.pin": "Uitlichten op profiel", + "status.pin": "Op profiel uitlichten", "status.read_more": "Meer lezen", "status.reblog": "Boosten", "status.reblog_private": "Boost naar oorspronkelijke ontvangers", @@ -882,7 +885,7 @@ "status.translated_from_with": "Vertaald vanuit het {lang} met behulp van {provider}", "status.uncached_media_warning": "Voorvertoning niet beschikbaar", "status.unmute_conversation": "Gesprek niet langer negeren", - "status.unpin": "Niet uitlichten op profiel", + "status.unpin": "Niet op profiel uitlichten", "subscribed_languages.lead": "Na de wijziging worden alleen berichten van geselecteerde talen op jouw starttijdlijn en in lijsten weergegeven.", "subscribed_languages.save": "Wijzigingen opslaan", "subscribed_languages.target": "Getoonde talen voor {target} wijzigen", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 3f23243802..ab37b0fe27 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -29,6 +29,7 @@ "account.enable_notifications": "Varsle meg når @{name} skriv innlegg", "account.endorse": "Vis på profilen", "account.featured": "Utvald", + "account.featured.accounts": "Profilar", "account.featured.hashtags": "Emneknaggar", "account.featured.posts": "Innlegg", "account.featured_tags.last_status_at": "Sist nytta {date}", @@ -168,6 +169,7 @@ "column.lists": "Lister", "column.mutes": "Målbundne brukarar", "column.notifications": "Varsel", + "column.pins": "Utvalde innlegg", "column.public": "Samla tidsline", "column_back_button.label": "Attende", "column_header.hide_settings": "Gøym innstillingane", @@ -303,9 +305,9 @@ "emoji_button.search_results": "Søkeresultat", "emoji_button.symbols": "Symbol", "emoji_button.travel": "Reise & stader", - "empty_column.account_featured.me": "Du har ikkje framheva noko enno. Visste du at du kan framheva innlegg, merkelappar du bruker mykje, og til og med venekontoar på profilen din?", - "empty_column.account_featured.other": "{acct} har ikkje framheva noko enno. Visste du at du kan framheva innlegg, merkelappar du bruker mykje, og til og med venekontoar på profilen din?", - "empty_column.account_featured_other.unknown": "Denne kontoen har ikkje framheva noko enno.", + "empty_column.account_featured.me": "Du har ikkje valt ut noko enno. Visste du at du kan velja ut innlegg, merkelappar du bruker mykje, og til og med venekontoar på profilen din?", + "empty_column.account_featured.other": "{acct} har ikkje valt ut noko enno. Visste du at du kan velja ut innlegg, merkelappar du bruker mykje, og til og med venekontoar på profilen din?", + "empty_column.account_featured_other.unknown": "Denne kontoen har ikkje valt ut noko enno.", "empty_column.account_hides_collections": "Denne brukaren har valt å ikkje gjere denne informasjonen tilgjengeleg", "empty_column.account_suspended": "Kontoen er utestengd", "empty_column.account_timeline": "Ingen tut her!", @@ -404,8 +406,10 @@ "hashtag.counter_by_accounts": "{count, plural,one {{counter} deltakar} other {{counter} deltakarar}}", "hashtag.counter_by_uses": "{count, plural,one {{counter} innlegg} other {{counter} innlegg}}", "hashtag.counter_by_uses_today": "{count, plural,one {{counter} innlegg} other {{counter} innlegg}} i dag", + "hashtag.feature": "Vis på profilen", "hashtag.follow": "Fylg emneknagg", "hashtag.mute": "Demp @#{hashtag}", + "hashtag.unfeature": "Ikkje vis på profilen", "hashtag.unfollow": "Slutt å fylgje emneknaggen", "hashtags.and_other": "…og {count, plural, one {}other {# fleire}}", "hints.profiles.followers_may_be_missing": "Kven som fylgjer denne profilen manglar kanskje.", @@ -476,6 +480,7 @@ "keyboard_shortcuts.my_profile": "Opne profilen din", "keyboard_shortcuts.notifications": "Opne varselkolonna", "keyboard_shortcuts.open_media": "Opne media", + "keyboard_shortcuts.pinned": "Opne lista over utvalde innlegg", "keyboard_shortcuts.profile": "Opne forfattaren sin profil", "keyboard_shortcuts.reply": "Svar på innlegg", "keyboard_shortcuts.requests": "Opne lista med fylgjeførespurnader", @@ -559,6 +564,7 @@ "navigation_bar.mutes": "Målbundne brukarar", "navigation_bar.opened_in_classic_interface": "Innlegg, kontoar, og enkelte andre sider blir opna som standard i det klassiske webgrensesnittet.", "navigation_bar.personal": "Personleg", + "navigation_bar.pins": "Utvalde innlegg", "navigation_bar.preferences": "Innstillingar", "navigation_bar.public_timeline": "Føderert tidsline", "navigation_bar.search": "Søk", @@ -854,6 +860,7 @@ "status.mute": "Demp @{name}", "status.mute_conversation": "Demp samtale", "status.open": "Utvid denne statusen", + "status.pin": "Vis på profilen", "status.read_more": "Les meir", "status.reblog": "Framhev", "status.reblog_private": "Framhev til dei originale mottakarane", @@ -878,6 +885,7 @@ "status.translated_from_with": "Omsett frå {lang} ved bruk av {provider}", "status.uncached_media_warning": "Førehandsvisning er ikkje tilgjengeleg", "status.unmute_conversation": "Opphev demping av samtalen", + "status.unpin": "Ikkje vis på profilen", "subscribed_languages.lead": "Kun innlegg på valde språk vil bli dukke opp i heimestraumen din og i listene dine etter denne endringa. For å motta innlegg på alle språk, la vere å velje nokon.", "subscribed_languages.save": "Lagre endringar", "subscribed_languages.target": "Endre abonnerte språk for {target}", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 374037ff8a..da2762e3d4 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -386,7 +386,9 @@ "hashtag.counter_by_accounts": "{count, plural,one {{counter} participante} other {{counter} participantes}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} publicação} other {{counter} publicações}}", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicação} other {{counter} publicações}} hoje", + "hashtag.feature": "Destacar no perfil", "hashtag.follow": "Seguir #etiqueta", + "hashtag.unfeature": "Não destacar no perfil", "hashtag.unfollow": "Deixar de seguir #etiqueta", "hashtags.and_other": "…e {count, plural, other {mais #}}", "hints.profiles.followers_may_be_missing": "É possível que não estejam a ser mostrados todos os seguidores deste perfil.", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index e9741cbfa1..d3a459eb23 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -330,8 +330,8 @@ "empty_column.public": "Здесь ничего нет! Опубликуйте что-нибудь или подпишитесь на пользователей с других серверов, чтобы заполнить ленту", "error.unexpected_crash.explanation": "Из-за несовместимого браузера или ошибки в нашем коде эта страница не может быть корректно отображена.", "error.unexpected_crash.explanation_addons": "Эта страница не может быть корректно отображена. Скорее всего, ошибка вызвана расширением браузера или инструментом автоматического перевода.", - "error.unexpected_crash.next_steps": "Попробуйте обновить страницу. Если проблема не исчезает, используйте Mastodon из-под другого браузера или приложения.", - "error.unexpected_crash.next_steps_addons": "Попробуйте их отключить и перезагрузить страницу. Если это не поможет, вы по-прежнему сможете войти в Mastodon через другой браузер или приложение.", + "error.unexpected_crash.next_steps": "Попробуйте обновить страницу. Если это не поможет, вы, скорее всего, всё ещё сможете использовать Mastodon в другом браузере или приложении.", + "error.unexpected_crash.next_steps_addons": "Попробуйте их отключить и обновить страницу. Если это не поможет, вы, скорее всего, всё ещё сможете использовать Mastodon в другом браузере или приложении.", "errors.unexpected_crash.copy_stacktrace": "Скопировать диагностическую информацию", "errors.unexpected_crash.report_issue": "Сообщить о проблеме", "explore.suggested_follows": "Люди", @@ -339,47 +339,47 @@ "explore.trending_links": "Новости", "explore.trending_statuses": "Посты", "explore.trending_tags": "Хэштеги", - "filter_modal.added.context_mismatch_explanation": "Эта категория не применяется к контексту, в котором вы получили доступ к этому посту. Если вы хотите, чтобы пост был отфильтрован в этом контексте, вам придётся отредактировать фильтр.", + "filter_modal.added.context_mismatch_explanation": "Этот фильтр не применяется в том контексте, в котором вы видели этот пост. Если вы хотите, чтобы пост был отфильтрован в этом контексте, необходимо редактировать фильтр.", "filter_modal.added.context_mismatch_title": "Несоответствие контекста!", - "filter_modal.added.expired_explanation": "Эта категория фильтра устарела, вам нужно изменить дату окончания фильтра, чтобы применить его.", + "filter_modal.added.expired_explanation": "Этот фильтр истёк. Чтобы он был применён, вам нужно изменить срок действия фильтра.", "filter_modal.added.expired_title": "Истёкший фильтр!", - "filter_modal.added.review_and_configure": "Для просмотра и настройки этой категории фильтра, перейдите в {settings_link}.", + "filter_modal.added.review_and_configure": "Для просмотра или редактирования этого фильтра перейдите в {settings_link}.", "filter_modal.added.review_and_configure_title": "Настройки фильтра", "filter_modal.added.settings_link": "настройки", - "filter_modal.added.short_explanation": "Этот пост был добавлен в следующую категорию фильтра: {title}.", + "filter_modal.added.short_explanation": "Этот пост был добавлен к фильтру «{title}».", "filter_modal.added.title": "Фильтр добавлен!", - "filter_modal.select_filter.context_mismatch": "не применяется к этому контексту", + "filter_modal.select_filter.context_mismatch": "не применяется в этом контексте", "filter_modal.select_filter.expired": "истёкший", - "filter_modal.select_filter.prompt_new": "Новая категория: {name}", - "filter_modal.select_filter.search": "Поиск или создание", - "filter_modal.select_filter.subtitle": "Используйте существующую категорию или создайте новую", + "filter_modal.select_filter.prompt_new": "Новый фильтр: {name}", + "filter_modal.select_filter.search": "Поиск или название нового фильтра", + "filter_modal.select_filter.subtitle": "Используйте существующий фильтр или создайте новый", "filter_modal.select_filter.title": "Фильтровать этот пост", "filter_modal.title.status": "Фильтровать пост", - "filter_warning.matches_filter": "Соответствует фильтру \"{title}\"", + "filter_warning.matches_filter": "Соответствует фильтру «{title}»", "filtered_notifications_banner.pending_requests": "От {count, plural, =0 {не известных вам людей} one {# возможно вам известного человека} other {# возможно вам известных человек}}", "filtered_notifications_banner.title": "Отфильтрованные уведомления", "firehose.all": "Всё вместе", "firehose.local": "Этот сервер", "firehose.remote": "Другие серверы", - "follow_request.authorize": "Авторизовать", + "follow_request.authorize": "Разрешить", "follow_request.reject": "Отказать", - "follow_requests.unlocked_explanation": "Хотя ваша учетная запись не закрыта, команда {domain} подумала, что вы захотите просмотреть запросы от этих учетных записей вручную.", + "follow_requests.unlocked_explanation": "Хотя ваша учётная запись не закрыта, команда сервера {domain} подумала, что вы захотите рассмотреть запросы на подписку от этих учётных записей вручную.", "follow_suggestions.curated_suggestion": "Выбор команды сервера", - "follow_suggestions.dismiss": "Больше не показывать", - "follow_suggestions.featured_longer": "Отобранные командой {domain} вручную", + "follow_suggestions.dismiss": "Не показывать снова", + "follow_suggestions.featured_longer": "Вручную выбрано командой сервера {domain}", "follow_suggestions.friends_of_friends_longer": "Популярно среди людей, на которых вы подписаны", - "follow_suggestions.hints.featured": "Этот профиль был вручную выбран командой {domain}.", + "follow_suggestions.hints.featured": "Этот профиль был вручную выбран командой сервера {domain}.", "follow_suggestions.hints.friends_of_friends": "Этот профиль популярен среди людей, на которых вы подписаны.", - "follow_suggestions.hints.most_followed": "Этот профиль один из самых отслеживаемых на {domain}.", - "follow_suggestions.hints.most_interactions": "Этот профиль в последнее время привлекает много внимания на {domain}.", + "follow_suggestions.hints.most_followed": "Этот профиль лидирует по числу подписчиков с сервера {domain}.", + "follow_suggestions.hints.most_interactions": "Этот профиль в последнее время привлекает много внимания на сервере {domain}.", "follow_suggestions.hints.similar_to_recently_followed": "Этот профиль похож на другие профили, на которые вы подписывались в последнее время.", - "follow_suggestions.personalized_suggestion": "Персонализированное предложение", + "follow_suggestions.personalized_suggestion": "Персональное предложение", "follow_suggestions.popular_suggestion": "Популярное предложение", - "follow_suggestions.popular_suggestion_longer": "Популярное на {domain}", - "follow_suggestions.similar_to_recently_followed_longer": "Похоже на профили, на которые вы недавно подписались", + "follow_suggestions.popular_suggestion_longer": "Популярно на сервере {domain}", + "follow_suggestions.similar_to_recently_followed_longer": "Похоже на профили, на которые вы подписывались в последнее время", "follow_suggestions.view_all": "Посмотреть все", "follow_suggestions.who_to_follow": "На кого подписаться", - "followed_tags": "Отслеживаемые хэштеги", + "followed_tags": "Подписки на хэштеги", "footer.about": "О проекте", "footer.directory": "Каталог профилей", "footer.get_app": "Скачать приложение", @@ -401,21 +401,21 @@ "hashtag.column_settings.tag_mode.all": "Все из списка", "hashtag.column_settings.tag_mode.any": "Любой из списка", "hashtag.column_settings.tag_mode.none": "Ни один из списка", - "hashtag.column_settings.tag_toggle": "Включить дополнительные теги для этой колонки", + "hashtag.column_settings.tag_toggle": "Включить дополнительные теги для этого столбца", "hashtag.counter_by_accounts": "{count, plural, one {{counter} пользователь} few {{counter} пользователя} other {{counter} пользователей}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} пост} few {{counter} поста} other {{counter} постов}}", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} пост} few {{counter} поста} other {{counter} постов}} сегодня", "hashtag.follow": "Подписаться на новые посты", "hashtag.mute": "Игнорировать #{hashtag}", - "hashtag.unfollow": "Отписаться", + "hashtag.unfollow": "Отписаться от новых постов", "hashtags.and_other": "…и {count, plural, other {ещё #}}", - "hints.profiles.followers_may_be_missing": "Подписчики этого профиля могут отсутствовать.", - "hints.profiles.follows_may_be_missing": "Подписки этого профиля могут отсутствовать.", - "hints.profiles.posts_may_be_missing": "Некоторые сообщения этого профиля могут отсутствовать.", + "hints.profiles.followers_may_be_missing": "Некоторые подписчики этого профиля могут отсутствовать.", + "hints.profiles.follows_may_be_missing": "Некоторые подписки этого профиля могут отсутствовать.", + "hints.profiles.posts_may_be_missing": "Некоторые посты в этом профиле могут отсутствовать.", "hints.profiles.see_more_followers": "Перейдите на {domain}, чтобы увидеть всех подписчиков", "hints.profiles.see_more_follows": "Перейдите на {domain}, чтобы увидеть все подписки", "hints.profiles.see_more_posts": "Перейдите на {domain}, чтобы увидеть все посты", - "hints.threads.replies_may_be_missing": "Ответы с других серверов могут отсутствовать.", + "hints.threads.replies_may_be_missing": "Некоторые ответы с других серверов могут отсутствовать.", "hints.threads.see_more": "Перейдите на {domain}, чтобы увидеть все ответы", "home.column_settings.show_reblogs": "Показывать продвижения", "home.column_settings.show_replies": "Показывать ответы", @@ -495,11 +495,11 @@ "lightbox.previous": "Назад", "lightbox.zoom_in": "Масштаб до фактического размера", "lightbox.zoom_out": "Масштаб по размеру экрана", - "limited_account_hint.action": "Все равно показать профиль", - "limited_account_hint.title": "Этот профиль был скрыт модераторами {domain}.", + "limited_account_hint.action": "Всё равно показать", + "limited_account_hint.title": "Этот профиль был скрыт модераторами сервера {domain}.", "link_preview.author": "Автор: {name}", - "link_preview.more_from_author": "Больше от {name}", - "link_preview.shares": "{count, plural, one {{counter} пост} other {{counter} посты}}", + "link_preview.more_from_author": "Автор: {name}", + "link_preview.shares": "{count, plural, one {{counter} пост} few {{counter} поста} other {{counter} постов}}", "lists.add_member": "Добавить", "lists.add_to_list": "Добавить в список", "lists.add_to_lists": "Добавить {name} в списки", @@ -508,7 +508,7 @@ "lists.create_list": "Создать список", "lists.delete": "Удалить список", "lists.done": "Готово", - "lists.edit": "Изменить список", + "lists.edit": "Редактировать список", "lists.exclusive": "Не показывать участников в домашней ленте", "lists.exclusive_hint": "Если кто-то есть в этом списке, скрыть его в домашней ленте, чтобы не видеть его посты дважды.", "lists.find_users_to_add": "Найти пользователей для добавления", @@ -603,7 +603,6 @@ "notification.poll": "Опрос, в котором вы приняли участие, завершился", "notification.reblog": "{name} продвинул(а) ваш пост", "notification.reblog.name_and_others_with_link": "{name} и ещё {count, plural, one {# пользователь} few {# пользователя} other {# пользователей}} продвинули ваш пост", - "notification.relationships_severance_event": "Потеряно соединение с {name}", "notification.relationships_severance_event.account_suspension": "Администратор {from} заблокировал {target}, что означает, что вы больше не сможете получать обновления от них или взаймодествовать с ними.", "notification.relationships_severance_event.domain_block": "Администратор {from} заблокировал {target} включая {followersCount} ваших подписчиков и {followingCount, plural, one {# аккаунт} few {# аккаунта} other {# аккаунтов}}, на которые вы подписаны.", "notification.relationships_severance_event.learn_more": "Узнать больше", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index bd6dab149b..50c5f15796 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -29,6 +29,7 @@ "account.enable_notifications": "Njoftomë, kur poston @{name}", "account.endorse": "Pasqyrojeni në profil", "account.featured": "Të zgjedhur", + "account.featured.accounts": "Profile", "account.featured.hashtags": "Hashtag-ë", "account.featured.posts": "Postime", "account.featured_tags.last_status_at": "Postimi i fundit më {date}", @@ -400,8 +401,10 @@ "hashtag.counter_by_accounts": "{count, plural, one {{counter} pjesëmarrës} other {{counter} pjesëmarrës}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} postim} other {{counter} postime}}", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} postim} other {{counter} postime}} sot", + "hashtag.feature": "Pasqyrojeni në profil", "hashtag.follow": "Ndiqe hashtag-un", "hashtag.mute": "Heshtoje #{hashtag}", + "hashtag.unfeature": "Mos e përfshi në profil", "hashtag.unfollow": "Hiqe ndjekjen e hashtag-ut", "hashtags.and_other": "…dhe {count, plural, one {}other {# më tepër}}", "hints.profiles.followers_may_be_missing": "Mund të mungojnë ndjekës për këtë profil.", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index e5d1b1a6ba..d2da1f7751 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -29,6 +29,7 @@ "account.enable_notifications": "@{name} kişisinin gönderi bildirimlerini aç", "account.endorse": "Profilimde öne çıkar", "account.featured": "Öne çıkan", + "account.featured.accounts": "Profiller", "account.featured.hashtags": "Etiketler", "account.featured.posts": "Gönderiler", "account.featured_tags.last_status_at": "Son gönderinin tarihi {date}", @@ -405,8 +406,10 @@ "hashtag.counter_by_accounts": "{count, plural, one {{counter} katılımcı} other {{counter} katılımcı}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} gönderi} other {{counter} gönderi}}", "hashtag.counter_by_uses_today": "bugün {count, plural, one {{counter} gönderi} other {{counter} gönderi}}", + "hashtag.feature": "Profilimde öne çıkar", "hashtag.follow": "Etiketi takip et", "hashtag.mute": "#{hashtag} gönderilerini sessize al", + "hashtag.unfeature": "Profilimde öne çıkarma", "hashtag.unfollow": "Etiketi takibi bırak", "hashtags.and_other": "…ve {count, plural, one {}other {# fazlası}}", "hints.profiles.followers_may_be_missing": "Bu profilin takipçileri eksik olabilir.", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index e97f9dc918..ff3ff3dab8 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -27,6 +27,7 @@ "account.enable_notifications": "Повідомляти мене про дописи @{name}", "account.endorse": "Рекомендувати у моєму профілі", "account.featured": "Рекомендоване", + "account.featured.accounts": "Профілі", "account.featured.hashtags": "Хештеги", "account.featured.posts": "Дописи", "account.featured_tags.last_status_at": "Останній допис {date}", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 4db19386d2..0bb31dcb99 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -29,6 +29,7 @@ "account.enable_notifications": "Nhận thông báo khi @{name} đăng tút", "account.endorse": "Tôn vinh người này", "account.featured": "Nêu bật", + "account.featured.accounts": "Mọi người", "account.featured.hashtags": "Hashtag", "account.featured.posts": "Tút", "account.featured_tags.last_status_at": "Tút gần nhất {date}", @@ -405,8 +406,10 @@ "hashtag.counter_by_accounts": "{count, plural, other {{counter} người dùng}}", "hashtag.counter_by_uses": "{count, plural, other {{counter} tút}}", "hashtag.counter_by_uses_today": "{count, plural, other {{counter} tút}} hôm nay", + "hashtag.feature": "Nêu bật trên hồ sơ", "hashtag.follow": "Theo dõi hashtag", "hashtag.mute": "Ẩn #{hashtag}", + "hashtag.unfeature": "Bỏ nêu bật trên hồ sơ", "hashtag.unfollow": "Bỏ theo dõi hashtag", "hashtags.and_other": "…và {count, plural, other {# nữa}}", "hints.profiles.followers_may_be_missing": "Số người theo dõi có thể không đầy đủ.", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 372ffadae3..257cf5b599 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -29,6 +29,7 @@ "account.enable_notifications": "當 @{name} 嘟文時通知我", "account.endorse": "於個人檔案推薦對方", "account.featured": "精選內容", + "account.featured.accounts": "個人檔案", "account.featured.hashtags": "主題標籤", "account.featured.posts": "嘟文", "account.featured_tags.last_status_at": "上次嘟文於 {date}", @@ -405,8 +406,10 @@ "hashtag.counter_by_accounts": "{count, plural, one {{counter} 名} other {{counter} 名}}參與者", "hashtag.counter_by_uses": "{count, plural, one {{counter} 則} other {{counter} 則}}嘟文", "hashtag.counter_by_uses_today": "本日有 {count, plural, one {{counter} 則} other {{counter} 則}}嘟文", + "hashtag.feature": "於個人檔案推薦", "hashtag.follow": "跟隨主題標籤", "hashtag.mute": "靜音 #{hashtag}", + "hashtag.unfeature": "取消於個人檔案推薦", "hashtag.unfollow": "取消跟隨主題標籤", "hashtags.and_other": "…及其他 {count, plural, other {# 個}}", "hints.profiles.followers_may_be_missing": "此個人檔案之跟隨者或有缺失。", @@ -525,7 +528,7 @@ "lists.replies_policy.none": "沒有人", "lists.save": "儲存", "lists.search": "搜尋", - "lists.show_replies_to": "包含來自列表成員的回覆到", + "lists.show_replies_to": "包含來自列表成員的回覆至", "load_pending": "{count, plural, other {# 個新項目}}", "loading_indicator.label": "正在載入...", "media_gallery.hide": "隱藏", diff --git a/app/javascript/mastodon/reducers/accounts.ts b/app/javascript/mastodon/reducers/accounts.ts index 2001353b2e..692c4feec4 100644 --- a/app/javascript/mastodon/reducers/accounts.ts +++ b/app/javascript/mastodon/reducers/accounts.ts @@ -4,9 +4,9 @@ import { Map as ImmutableMap } from 'immutable'; import { followAccountSuccess, unfollowAccountSuccess, - importAccounts, revealAccount, } from 'mastodon/actions/accounts_typed'; +import { importAccounts } from 'mastodon/actions/importer/accounts'; import type { ApiAccountJSON } from 'mastodon/api_types/accounts'; import { me } from 'mastodon/initial_state'; import type { Account } from 'mastodon/models/account'; diff --git a/app/javascript/mastodon/reducers/accounts_map.js b/app/javascript/mastodon/reducers/accounts_map.js deleted file mode 100644 index d1229169cc..0000000000 --- a/app/javascript/mastodon/reducers/accounts_map.js +++ /dev/null @@ -1,23 +0,0 @@ -import { Map as ImmutableMap } from 'immutable'; - -import { ACCOUNT_LOOKUP_FAIL } from '../actions/accounts'; -import { importAccounts } from '../actions/accounts_typed'; -import { domain } from '../initial_state'; - -const pattern = new RegExp(`@${domain}$`, 'gi'); - -export const normalizeForLookup = str => - str.toLowerCase().replace(pattern, ''); - -const initialState = ImmutableMap(); - -export default function accountsMap(state = initialState, action) { - switch(action.type) { - case ACCOUNT_LOOKUP_FAIL: - return action.error?.response?.status === 404 ? state.set(normalizeForLookup(action.acct), null) : state; - case importAccounts.type: - return state.withMutations(map => action.payload.accounts.forEach(account => map.set(normalizeForLookup(account.acct), account.id))); - default: - return state; - } -} diff --git a/app/javascript/mastodon/reducers/accounts_map.ts b/app/javascript/mastodon/reducers/accounts_map.ts new file mode 100644 index 0000000000..820082e3d8 --- /dev/null +++ b/app/javascript/mastodon/reducers/accounts_map.ts @@ -0,0 +1,38 @@ +import { createReducer } from '@reduxjs/toolkit'; +import type { UnknownAction } from '@reduxjs/toolkit'; + +import type { AxiosError } from 'axios'; + +import { ACCOUNT_LOOKUP_FAIL } from 'mastodon/actions/accounts'; +import { importAccounts } from 'mastodon/actions/importer/accounts'; +import { domain } from 'mastodon/initial_state'; + +interface AccountLookupFailAction extends UnknownAction { + acct: string; + error?: AxiosError; +} + +const pattern = new RegExp(`@${domain}$`, 'gi'); + +export const normalizeForLookup = (str: string) => + str.toLowerCase().replace(pattern, ''); + +const initialState: Record = {}; + +export const accountsMapReducer = createReducer(initialState, (builder) => { + builder + .addCase(importAccounts, (state, action) => { + action.payload.accounts.forEach((account) => { + state[normalizeForLookup(account.acct)] = account.id; + }); + }) + .addMatcher( + (action: UnknownAction): action is AccountLookupFailAction => + action.type === ACCOUNT_LOOKUP_FAIL, + (state, action) => { + if (action.error?.response?.status === 404) { + state[normalizeForLookup(action.acct)] = null; + } + }, + ); +}); diff --git a/app/javascript/mastodon/reducers/index.ts b/app/javascript/mastodon/reducers/index.ts index a1b349af80..0b6e66a1b2 100644 --- a/app/javascript/mastodon/reducers/index.ts +++ b/app/javascript/mastodon/reducers/index.ts @@ -4,7 +4,7 @@ import { loadingBarReducer } from 'react-redux-loading-bar'; import { combineReducers } from 'redux-immutable'; import { accountsReducer } from './accounts'; -import accounts_map from './accounts_map'; +import { accountsMapReducer } from './accounts_map'; import { alertsReducer } from './alerts'; import announcements from './announcements'; import { composeReducer } from './compose'; @@ -49,7 +49,7 @@ const reducers = { user_lists, status_lists, accounts: accountsReducer, - accounts_map, + accounts_map: accountsMapReducer, statuses, relationships: relationshipsReducer, settings, diff --git a/app/javascript/mastodon/reducers/user_lists.js b/app/javascript/mastodon/reducers/user_lists.js index 7a4c04c5c7..466bfe54d6 100644 --- a/app/javascript/mastodon/reducers/user_lists.js +++ b/app/javascript/mastodon/reducers/user_lists.js @@ -5,9 +5,7 @@ import { fetchDirectory } from 'mastodon/actions/directory'; import { - FEATURED_TAGS_FETCH_REQUEST, - FEATURED_TAGS_FETCH_SUCCESS, - FEATURED_TAGS_FETCH_FAIL, + fetchFeaturedTags } from 'mastodon/actions/featured_tags'; import { @@ -31,6 +29,7 @@ import { FOLLOW_REQUESTS_EXPAND_FAIL, authorizeFollowRequestSuccess, rejectFollowRequestSuccess, + fetchEndorsedAccounts, } from '../actions/accounts'; import { BLOCKS_FETCH_REQUEST, @@ -191,21 +190,27 @@ export default function userLists(state = initialState, action) { case MUTES_FETCH_FAIL: case MUTES_EXPAND_FAIL: return state.setIn(['mutes', 'isLoading'], false); - case FEATURED_TAGS_FETCH_SUCCESS: - return normalizeFeaturedTags(state, ['featured_tags', action.id], action.tags, action.id); - case FEATURED_TAGS_FETCH_REQUEST: - return state.setIn(['featured_tags', action.id, 'isLoading'], true); - case FEATURED_TAGS_FETCH_FAIL: - return state.setIn(['featured_tags', action.id, 'isLoading'], false); default: - if(fetchDirectory.fulfilled.match(action)) + if (fetchEndorsedAccounts.fulfilled.match(action)) + return normalizeList(state, ['featured_accounts', action.meta.arg.accountId], action.payload, undefined); + else if (fetchEndorsedAccounts.pending.match(action)) + return state.setIn(['featured_accounts', action.meta.arg.accountId, 'isLoading'], true); + else if (fetchEndorsedAccounts.rejected.match(action)) + return state.setIn(['featured_accounts', action.meta.arg.accountId, 'isLoading'], false); + else if (fetchFeaturedTags.fulfilled.match(action)) + return normalizeFeaturedTags(state, ['featured_tags', action.meta.arg.accountId], action.payload, action.meta.arg.accountId); + else if (fetchFeaturedTags.pending.match(action)) + return state.setIn(['featured_tags', action.meta.arg.accountId, 'isLoading'], true); + else if (fetchFeaturedTags.rejected.match(action)) + return state.setIn(['featured_tags', action.meta.arg.accountId, 'isLoading'], false); + else if (fetchDirectory.fulfilled.match(action)) return normalizeList(state, ['directory'], action.payload.accounts, undefined); - else if( expandDirectory.fulfilled.match(action)) + else if (expandDirectory.fulfilled.match(action)) return appendToList(state, ['directory'], action.payload.accounts, undefined); - else if(fetchDirectory.pending.match(action) || + else if (fetchDirectory.pending.match(action) || expandDirectory.pending.match(action)) return state.setIn(['directory', 'isLoading'], true); - else if(fetchDirectory.rejected.match(action) || + else if (fetchDirectory.rejected.match(action) || expandDirectory.rejected.match(action)) return state.setIn(['directory', 'isLoading'], false); else diff --git a/app/javascript/mastodon/selectors/contexts.ts b/app/javascript/mastodon/selectors/contexts.ts index 1c76d7cc82..213f93e800 100644 --- a/app/javascript/mastodon/selectors/contexts.ts +++ b/app/javascript/mastodon/selectors/contexts.ts @@ -41,7 +41,7 @@ export const getDescendantsIds = createAppSelector( } if (replies) { - replies.reverse().forEach((replyId) => { + replies.toReversed().forEach((replyId) => { if ( !visitIds.includes(replyId) && !descendantsIds.includes(replyId) && diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 7251167bae..c4d32c5fd7 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -959,6 +959,8 @@ cy: system_checks: database_schema_check: message_html: Mae mudo cronfa ddata ar fin digwydd. Rhedwch nhw i sicrhau bod y rhaglen yn ymddwyn yn ôl y disgwyl + elasticsearch_analysis_index_mismatch: + message_html: Mae gosodiadau dadansoddwr mynegai Elasticsearch wedi dyddio. Rhedwch tootctl search deploy --only-mapping --only=%{value} elasticsearch_health_red: message_html: Mae clwstwr Elasticsearch yn afiach (statws coch), nid yw'r nodweddion chwilio ar gael elasticsearch_health_yellow: diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 595ea02759..718fb653e4 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -486,7 +486,10 @@ fi: created_at: Luotu delete: Poista ip: IP-osoite + title: Aloita takaisinkutsujen vianetsintä providers: + base_url: Perus-URL + callback: Takaisinkutsu delete: Poista finish_registration: Viimeistele rekisteröinti name: Nimi diff --git a/config/locales/kab.yml b/config/locales/kab.yml index bc13fc56b5..4860655c90 100644 --- a/config/locales/kab.yml +++ b/config/locales/kab.yml @@ -275,6 +275,10 @@ kab: ip: Tansa IP providers: delete: Kkes + name: Isem + providers: Asaǧǧaw + registrations: + confirm: Sentem save: Sekles title: FASP follow_recommendations: @@ -387,6 +391,7 @@ kab: everyone: Tisirag timezwura privileges: administrator: Anedbal + manage_settings: Asefrek n iɣewwaṛen view_dashboard: Timẓriwt n tfelwit rules: add_new: Rnu alugen @@ -451,6 +456,7 @@ kab: changelog: Amaynut draft: Arewway history: Amazray + live: Srid publish: Asuffeɣ save_draft: Sekles arewway title: Tiwtilin n useqdec diff --git a/config/locales/lt.yml b/config/locales/lt.yml index a8d30cf873..056570f7b5 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -304,6 +304,7 @@ lt: create: Sukurti skelbimą title: Naujas skelbimas preview: + disclaimer: Kadangi naudotojai negali jų atsisakyti, el. pašto pranešimai turėtų būti siunčiami tik svarbiems pranešimams, pavyzdžiui, asmeninių duomenų pažeidimo ar serverio uždarymo pranešimams. explanation_html: 'El. laiškas bus išsiųstas %{display_count} naudotojams. Į el. laišką bus įtrauktas toliau nurodytas tekstas:' title: Peržiūrėti skelbimo pranešimą publish: Skelbti diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 7bbb2cfaf7..0a8ea5bb71 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -904,7 +904,7 @@ nl: database_schema_check: message_html: Niet alle databasemigraties zijn voltooid. Je moet deze uitvoeren om er voor te zorgen dat de applicatie blijft werken zoals het hoort elasticsearch_analysis_index_mismatch: - message_html: Elasticsearch index analyser instellingen zijn verouderd. Voer tootctl zoek deploy --only-mapping --only=%{value} uit + message_html: Elasticsearch index analyser-instellingen zijn verouderd. Voer tootctl search deploy --only-mapping --only=%{value} uit elasticsearch_health_red: message_html: Elasticsearch-cluster is ongezond (rode status), zoekfuncties zijn niet beschikbaar elasticsearch_health_yellow: diff --git a/config/locales/nn.yml b/config/locales/nn.yml index 30ddcaeb6a..363b9d4e0a 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -903,6 +903,8 @@ nn: system_checks: database_schema_check: message_html: Det venter på databaseoverføringer. Vennligst kjør disse for å sikre at applikasjonen oppfører seg som forventet + elasticsearch_analysis_index_mismatch: + message_html: Indeksanalyseinnstillingane til Elasticsearch er utdaterte. Køyr tootctl search deploy --only-mapping --only=%{value} elasticsearch_health_red: message_html: Elasticsearch-klynga er usunn (raud status), og søkjefunksjonane er utilgjengelege elasticsearch_health_yellow: @@ -1367,8 +1369,8 @@ nn: featured_tags: add_new: Legg til ny errors: - limit: Du har allereie framheva så mange emneknaggar som det går an å gjera - hint_html: "Hva er utvalgte emneknagger? De vises frem tydelig på din offentlige profil, og lar folk bla i dine offentlige innlegg som spesifikt har de emneknaggene. De er et bra verktøy for å holde styr på kreative verk eller langtidsprosjekter." + limit: Du har allereie valt ut så mange emneknaggar som det går an å gjera + hint_html: "Vel ut dei viktigaste emneknaggane på profilen din. Utvalde emneknaggar er eit flott verkty for å halda oversikt over kreativt arbeid og langtidsprosjekt. Dei er lette å sjå på profilen din, og gjev deg rask tilgang til dine eigne innlegg." filters: contexts: account: Profiler @@ -1805,7 +1807,7 @@ nn: development: Utvikling edit_profile: Endr profil export: Eksporter - featured_tags: Utvalgte emneknagger + featured_tags: Utvalde emneknaggar import: Hent inn import_and_export: Importer og eksporter migrate: Kontoflytting diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 50f39591af..8703633286 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -381,7 +381,7 @@ pl: few: "%{count} oczekujące raporty" many: "%{count} oczekujących raportów" one: "%{count} oczekujące zgłoszenie" - other: "%{count} oczekujących raportów" + other: "%{count} oczekujących zgłoszeń" pending_tags_html: few: "%{count} oczekujące hashtagi" many: "%{count} oczekujących hashtagów" diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 8281ae8dc1..eddb113ed3 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -1628,7 +1628,7 @@ zh-TW: thousand: K trillion: T otp_authentication: - code_hint: 請輸入您驗證應用程式所產生的代碼以確認 + code_hint: 請輸入您驗證應用程式所產生之 token 以確認 description_html: 若您啟用使用驗證應用程式的兩階段驗證,您每次登入都需要輸入由您的手機所產生之 Token。 enable: 啟用 instructions_html: "請用您手機上的 Google Authenticator 或類似的 TOTP 應用程式掃描此 QR code。從現在開始,該應用程式將會產生您每次登入都必須輸入的 token。" diff --git a/config/webpack/production.js b/config/webpack/production.js index c9c607c68e..0b811f349f 100644 --- a/config/webpack/production.js +++ b/config/webpack/production.js @@ -48,7 +48,7 @@ module.exports = merge(sharedConfig, { logLevel: 'silent', // do not bother Webpacker, who runs with --json and parses stdout }), new InjectManifest({ - additionalManifestEntries: ['1f602.svg', 'sheet_15.png'].map((filename) => { + additionalManifestEntries: ['1f602.svg', 'sheet_15_1.png'].map((filename) => { const path = resolve(root, 'public', 'emoji', filename); const body = readFileSync(path); const md5 = createHash('md5'); diff --git a/lib/tasks/emojis.rake b/lib/tasks/emojis.rake index 3b2cf46a13..21c2b2be6a 100644 --- a/lib/tasks/emojis.rake +++ b/lib/tasks/emojis.rake @@ -1,5 +1,7 @@ # frozen_string_literal: true +require 'vips' + def gen_border(codepoint, color) input = Rails.public_path.join('emoji', "#{codepoint}.svg") dest = Rails.public_path.join('emoji', "#{codepoint}_border.svg") @@ -42,10 +44,24 @@ def codepoints_to_unicode(codepoints) end end +def get_image(row, emoji_base, fallback, compressed) + path = emoji_base.join("#{row[compressed ? 'b' : 'unified'].downcase}.svg") + path = emoji_base.join("#{row[compressed ? 'c' : 'non_qualified'].downcase.sub(/^00/, '')}.svg") if !path.exist? && row[compressed ? 'c' : 'non_qualified'] + if path.exist? + Vips::Image.new_from_file(path.to_s, dpi: 64) + else + fallback + end +end + +def titleize(string) + string.humanize.gsub(/\b(? emoji['unified'], - 'sheet_x' => emoji['sheet_x'], - 'sheet_y' => emoji['sheet_y'], - 'skin_variations' => {}, + puts "Downloading keyword data from source... (#{keyword_source})" + res = HTTP.get(keyword_source).to_s + keywords = JSON.parse(res) + + puts 'Generating JSON emoji data...' + + emoji_data = { + compressed: true, + categories: [ + { id: 'smileys', name: 'Smileys & Emotion', emojis: [] }, + { id: 'people', name: 'People & Body', emojis: [] }, + { id: 'nature', name: 'Animals & Nature', emojis: [] }, + { id: 'foods', name: 'Food & Drink', emojis: [] }, + { id: 'activity', name: 'Activities', emojis: [] }, + { id: 'places', name: 'Travel & Places', emojis: [] }, + { id: 'objects', name: 'Objects', emojis: [] }, + { id: 'symbols', name: 'Symbols', emojis: [] }, + { id: 'flags', name: 'Flags', emojis: [] }, + ], + emojis: {}, + aliases: {}, + } + + sorted = data.sort { |a, b| (a['sort_order'] || a['short_name']) - (b['sort_order'] || b['sort_name']) } + category_map = emoji_data[:categories].each_with_index.to_h { |c, i| [c[:name], i] } + + sorted.each do |emoji| + emoji_keywords = keywords[codepoints_to_unicode(emoji['unified'].downcase)] + + single_emoji = { + a: titleize(emoji['name']), # name + b: emoji['unified'], # unified + f: true, # has_img_twitter + k: [emoji['sheet_x'], emoji['sheet_y']], # sheet } - emoji['skin_variations']&.each do |key, variation| - filtered_item['skin_variations'][key] = { - 'unified' => variation['unified'], - 'sheet_x' => variation['sheet_x'], - 'sheet_y' => variation['sheet_y'], - } - end + single_emoji[:c] = emoji['non_qualified'] unless emoji['non_qualified'].nil? # non_qualified + single_emoji[:j] = emoji_keywords.filter { |k| k != emoji['short_name'] } if emoji_keywords.present? # keywords + single_emoji[:l] = emoji['texts'] if emoji['texts'].present? # emoticons + single_emoji[:m] = emoji['text'] if emoji['text'].present? # text + single_emoji[:skin_variations] = emoji['skin_variations'] if emoji['skin_variations'].present? - filtered_item + emoji_data[:emojis][emoji['short_name']] = single_emoji + emoji_data[:categories][category_map[emoji['category']]][:emojis].push(emoji['short_name']) if emoji['category'] != 'Component' + + emoji['short_names'].each do |name| + emoji_data[:aliases][name] = emoji['short_name'] unless name == emoji['short_name'] + end end - File.write(dest, JSON.generate(filtered_data)) + smileys = emoji_data[:categories][0] + people = emoji_data[:categories][1] + smileys_and_people = { id: 'people', name: 'Smileys & People', emojis: [*smileys[:emojis][..128], *people[:emojis], *smileys[:emojis][129..]] } + emoji_data[:categories].unshift(smileys_and_people) + emoji_data[:categories] -= emoji_data[:categories][1, 2] + + File.write(data_dest, JSON.generate(emoji_data)) + end + + desc 'Generate a spritesheet of emojis' + task :generate_emoji_sheet do + src = Rails.root.join('app', 'javascript', 'mastodon', 'features', 'emoji', 'emoji_data.json') + sheet = Oj.load(File.read(src)) + + max = 0 + sheet['emojis'].each_value do |row| + max = [max, row['k'][0], row['k'][1]].max + next if row['skin_variations'].blank? + + row['skin_variations'].each_value do |variation| + max = [max, variation['sheet_x'], variation['sheet_y']].max + end + end + + size = max + 1 + + puts 'Generating spritesheet...' + + emoji_base = Rails.public_path.join('emoji') + fallback = Vips::Image.new_from_file(emoji_base.join('2753.svg').to_s, dpi: 64) + comp = Array.new(size) do + Array.new(size, 0) + end + + sheet['emojis'].each_value do |row| + comp[row['k'][1]][row['k'][0]] = get_image(row, emoji_base, fallback, true) + next if row['skin_variations'].blank? + + row['skin_variations'].each_value do |variation| + comp[variation['sheet_y']][variation['sheet_x']] = get_image(variation, emoji_base, fallback, false) + end + end + + joined = Vips::Image.arrayjoin(comp.flatten, across: size, hspacing: 34, halign: :centre, vspacing: 34, valign: :centre) + joined.write_to_file(emoji_base.join('sheet_15_1.png').to_s, palette: true, dither: 0, Q: 100) end end diff --git a/package.json b/package.json index 21369cc64f..ef2e506fab 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,6 @@ "@dnd-kit/core": "^6.1.0", "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", - "@emoji-mart/data": "1.2.1", "@formatjs/intl-pluralrules": "^5.4.4", "@gamestdio/websocket": "^0.3.2", "@github/webauthn-json": "^2.1.1", diff --git a/public/emoji/1f344-200d-1f7eb.svg b/public/emoji/1f344-200d-1f7eb.svg new file mode 100644 index 0000000000..99b163241c --- /dev/null +++ b/public/emoji/1f344-200d-1f7eb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f34b-200d-1f7e9.svg b/public/emoji/1f34b-200d-1f7e9.svg new file mode 100644 index 0000000000..35e1e46506 --- /dev/null +++ b/public/emoji/1f34b-200d-1f7e9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f3c3-1f3fb-200d-2640-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f3c3-1f3fb-200d-2640-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..3f617a1516 --- /dev/null +++ b/public/emoji/1f3c3-1f3fb-200d-2640-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f3c3-1f3fb-200d-2642-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f3c3-1f3fb-200d-2642-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..3db1c6219b --- /dev/null +++ b/public/emoji/1f3c3-1f3fb-200d-2642-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f3c3-1f3fb-200d-27a1-fe0f.svg b/public/emoji/1f3c3-1f3fb-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..677b019143 --- /dev/null +++ b/public/emoji/1f3c3-1f3fb-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f3c3-1f3fc-200d-2640-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f3c3-1f3fc-200d-2640-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..b83eae104f --- /dev/null +++ b/public/emoji/1f3c3-1f3fc-200d-2640-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f3c3-1f3fc-200d-2642-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f3c3-1f3fc-200d-2642-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..bbfac670ed --- /dev/null +++ b/public/emoji/1f3c3-1f3fc-200d-2642-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f3c3-1f3fc-200d-27a1-fe0f.svg b/public/emoji/1f3c3-1f3fc-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..1c4f22f590 --- /dev/null +++ b/public/emoji/1f3c3-1f3fc-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f3c3-1f3fd-200d-2640-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f3c3-1f3fd-200d-2640-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..44a67a3b50 --- /dev/null +++ b/public/emoji/1f3c3-1f3fd-200d-2640-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f3c3-1f3fd-200d-2642-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f3c3-1f3fd-200d-2642-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..844f3906a9 --- /dev/null +++ b/public/emoji/1f3c3-1f3fd-200d-2642-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f3c3-1f3fd-200d-27a1-fe0f.svg b/public/emoji/1f3c3-1f3fd-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..88bb1b64bb --- /dev/null +++ b/public/emoji/1f3c3-1f3fd-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f3c3-1f3fe-200d-2640-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f3c3-1f3fe-200d-2640-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..c585dc5737 --- /dev/null +++ b/public/emoji/1f3c3-1f3fe-200d-2640-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f3c3-1f3fe-200d-2642-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f3c3-1f3fe-200d-2642-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..db2430df70 --- /dev/null +++ b/public/emoji/1f3c3-1f3fe-200d-2642-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f3c3-1f3fe-200d-27a1-fe0f.svg b/public/emoji/1f3c3-1f3fe-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..77444daa12 --- /dev/null +++ b/public/emoji/1f3c3-1f3fe-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f3c3-1f3ff-200d-2640-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f3c3-1f3ff-200d-2640-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..6b60b57709 --- /dev/null +++ b/public/emoji/1f3c3-1f3ff-200d-2640-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f3c3-1f3ff-200d-2642-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f3c3-1f3ff-200d-2642-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..96b880ab09 --- /dev/null +++ b/public/emoji/1f3c3-1f3ff-200d-2642-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f3c3-1f3ff-200d-27a1-fe0f.svg b/public/emoji/1f3c3-1f3ff-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..17de344617 --- /dev/null +++ b/public/emoji/1f3c3-1f3ff-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f3c3-200d-2640-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f3c3-200d-2640-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..f4b9cee103 --- /dev/null +++ b/public/emoji/1f3c3-200d-2640-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f3c3-200d-2642-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f3c3-200d-2642-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..691ea39a32 --- /dev/null +++ b/public/emoji/1f3c3-200d-2642-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f3c3-200d-27a1-fe0f.svg b/public/emoji/1f3c3-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..ef8b45a3ea --- /dev/null +++ b/public/emoji/1f3c3-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f426-200d-1f525.svg b/public/emoji/1f426-200d-1f525.svg new file mode 100644 index 0000000000..4ab5d047ed --- /dev/null +++ b/public/emoji/1f426-200d-1f525.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f468-1f3fb-200d-1f9af-200d-27a1-fe0f.svg b/public/emoji/1f468-1f3fb-200d-1f9af-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..fb3b9fab56 --- /dev/null +++ b/public/emoji/1f468-1f3fb-200d-1f9af-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f468-1f3fb-200d-1f9bc-200d-27a1-fe0f.svg b/public/emoji/1f468-1f3fb-200d-1f9bc-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..ce8a73e3a9 --- /dev/null +++ b/public/emoji/1f468-1f3fb-200d-1f9bc-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f468-1f3fb-200d-1f9bd-200d-27a1-fe0f.svg b/public/emoji/1f468-1f3fb-200d-1f9bd-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..7c547a70a3 --- /dev/null +++ b/public/emoji/1f468-1f3fb-200d-1f9bd-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f468-1f3fc-200d-1f9af-200d-27a1-fe0f.svg b/public/emoji/1f468-1f3fc-200d-1f9af-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..980b1ce170 --- /dev/null +++ b/public/emoji/1f468-1f3fc-200d-1f9af-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f468-1f3fc-200d-1f9bc-200d-27a1-fe0f.svg b/public/emoji/1f468-1f3fc-200d-1f9bc-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..d9478bb749 --- /dev/null +++ b/public/emoji/1f468-1f3fc-200d-1f9bc-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f468-1f3fc-200d-1f9bd-200d-27a1-fe0f.svg b/public/emoji/1f468-1f3fc-200d-1f9bd-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..1b6ed6be60 --- /dev/null +++ b/public/emoji/1f468-1f3fc-200d-1f9bd-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f468-1f3fd-200d-1f9af-200d-27a1-fe0f.svg b/public/emoji/1f468-1f3fd-200d-1f9af-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..2317b586de --- /dev/null +++ b/public/emoji/1f468-1f3fd-200d-1f9af-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f468-1f3fd-200d-1f9bc-200d-27a1-fe0f.svg b/public/emoji/1f468-1f3fd-200d-1f9bc-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..8297e3f781 --- /dev/null +++ b/public/emoji/1f468-1f3fd-200d-1f9bc-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f468-1f3fd-200d-1f9bd-200d-27a1-fe0f.svg b/public/emoji/1f468-1f3fd-200d-1f9bd-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..d92a889c77 --- /dev/null +++ b/public/emoji/1f468-1f3fd-200d-1f9bd-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f468-1f3fe-200d-1f9af-200d-27a1-fe0f.svg b/public/emoji/1f468-1f3fe-200d-1f9af-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..5216cd4a8e --- /dev/null +++ b/public/emoji/1f468-1f3fe-200d-1f9af-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f468-1f3fe-200d-1f9bc-200d-27a1-fe0f.svg b/public/emoji/1f468-1f3fe-200d-1f9bc-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..c270710c91 --- /dev/null +++ b/public/emoji/1f468-1f3fe-200d-1f9bc-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f468-1f3fe-200d-1f9bd-200d-27a1-fe0f.svg b/public/emoji/1f468-1f3fe-200d-1f9bd-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..83a08aff38 --- /dev/null +++ b/public/emoji/1f468-1f3fe-200d-1f9bd-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f468-1f3ff-200d-1f9af-200d-27a1-fe0f.svg b/public/emoji/1f468-1f3ff-200d-1f9af-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..924b65efb7 --- /dev/null +++ b/public/emoji/1f468-1f3ff-200d-1f9af-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f468-1f3ff-200d-1f9bc-200d-27a1-fe0f.svg b/public/emoji/1f468-1f3ff-200d-1f9bc-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..076e8f1f54 --- /dev/null +++ b/public/emoji/1f468-1f3ff-200d-1f9bc-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f468-1f3ff-200d-1f9bd-200d-27a1-fe0f.svg b/public/emoji/1f468-1f3ff-200d-1f9bd-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..e702990717 --- /dev/null +++ b/public/emoji/1f468-1f3ff-200d-1f9bd-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f468-200d-1f466-200d-1f466.svg b/public/emoji/1f468-200d-1f466-200d-1f466.svg index 89b3ad3d10..9fe81618ff 100644 --- a/public/emoji/1f468-200d-1f466-200d-1f466.svg +++ b/public/emoji/1f468-200d-1f466-200d-1f466.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f468-200d-1f466.svg b/public/emoji/1f468-200d-1f466.svg index 26c8de9732..da28199a88 100644 --- a/public/emoji/1f468-200d-1f466.svg +++ b/public/emoji/1f468-200d-1f466.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f468-200d-1f467-200d-1f466.svg b/public/emoji/1f468-200d-1f467-200d-1f466.svg index a2008f1c63..9fe81618ff 100644 --- a/public/emoji/1f468-200d-1f467-200d-1f466.svg +++ b/public/emoji/1f468-200d-1f467-200d-1f466.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f468-200d-1f467-200d-1f467.svg b/public/emoji/1f468-200d-1f467-200d-1f467.svg index acb7b7df46..9fe81618ff 100644 --- a/public/emoji/1f468-200d-1f467-200d-1f467.svg +++ b/public/emoji/1f468-200d-1f467-200d-1f467.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f468-200d-1f467.svg b/public/emoji/1f468-200d-1f467.svg index 4cda75140d..da28199a88 100644 --- a/public/emoji/1f468-200d-1f467.svg +++ b/public/emoji/1f468-200d-1f467.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f468-200d-1f468-200d-1f466-200d-1f466.svg b/public/emoji/1f468-200d-1f468-200d-1f466-200d-1f466.svg index efa5db97f0..317e600ed1 100644 --- a/public/emoji/1f468-200d-1f468-200d-1f466-200d-1f466.svg +++ b/public/emoji/1f468-200d-1f468-200d-1f466-200d-1f466.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f468-200d-1f468-200d-1f466.svg b/public/emoji/1f468-200d-1f468-200d-1f466.svg index d3a5877d10..743b7ba469 100644 --- a/public/emoji/1f468-200d-1f468-200d-1f466.svg +++ b/public/emoji/1f468-200d-1f468-200d-1f466.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f468-200d-1f468-200d-1f467-200d-1f466.svg b/public/emoji/1f468-200d-1f468-200d-1f467-200d-1f466.svg index 4d12c1a3cb..317e600ed1 100644 --- a/public/emoji/1f468-200d-1f468-200d-1f467-200d-1f466.svg +++ b/public/emoji/1f468-200d-1f468-200d-1f467-200d-1f466.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f468-200d-1f468-200d-1f467-200d-1f467.svg b/public/emoji/1f468-200d-1f468-200d-1f467-200d-1f467.svg index a694e42959..317e600ed1 100644 --- a/public/emoji/1f468-200d-1f468-200d-1f467-200d-1f467.svg +++ b/public/emoji/1f468-200d-1f468-200d-1f467-200d-1f467.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f468-200d-1f468-200d-1f467.svg b/public/emoji/1f468-200d-1f468-200d-1f467.svg index 48c4e73125..743b7ba469 100644 --- a/public/emoji/1f468-200d-1f468-200d-1f467.svg +++ b/public/emoji/1f468-200d-1f468-200d-1f467.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f468-200d-1f469-200d-1f466-200d-1f466.svg b/public/emoji/1f468-200d-1f469-200d-1f466-200d-1f466.svg index 9c3f3da357..317e600ed1 100644 --- a/public/emoji/1f468-200d-1f469-200d-1f466-200d-1f466.svg +++ b/public/emoji/1f468-200d-1f469-200d-1f466-200d-1f466.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f468-200d-1f469-200d-1f466.svg b/public/emoji/1f468-200d-1f469-200d-1f466.svg index 8f5fad9f5e..743b7ba469 100644 --- a/public/emoji/1f468-200d-1f469-200d-1f466.svg +++ b/public/emoji/1f468-200d-1f469-200d-1f466.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f468-200d-1f469-200d-1f467-200d-1f466.svg b/public/emoji/1f468-200d-1f469-200d-1f467-200d-1f466.svg index 885680769c..317e600ed1 100644 --- a/public/emoji/1f468-200d-1f469-200d-1f467-200d-1f466.svg +++ b/public/emoji/1f468-200d-1f469-200d-1f467-200d-1f466.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f468-200d-1f469-200d-1f467-200d-1f467.svg b/public/emoji/1f468-200d-1f469-200d-1f467-200d-1f467.svg index 58111c6b0d..317e600ed1 100644 --- a/public/emoji/1f468-200d-1f469-200d-1f467-200d-1f467.svg +++ b/public/emoji/1f468-200d-1f469-200d-1f467-200d-1f467.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f468-200d-1f469-200d-1f467.svg b/public/emoji/1f468-200d-1f469-200d-1f467.svg index 22a662f0f5..743b7ba469 100644 --- a/public/emoji/1f468-200d-1f469-200d-1f467.svg +++ b/public/emoji/1f468-200d-1f469-200d-1f467.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f468-200d-1f9af-200d-27a1-fe0f.svg b/public/emoji/1f468-200d-1f9af-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..73caf9b0b5 --- /dev/null +++ b/public/emoji/1f468-200d-1f9af-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f468-200d-1f9bc-200d-27a1-fe0f.svg b/public/emoji/1f468-200d-1f9bc-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..0364c1214d --- /dev/null +++ b/public/emoji/1f468-200d-1f9bc-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f468-200d-1f9bd-200d-27a1-fe0f.svg b/public/emoji/1f468-200d-1f9bd-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..d02d61b5d9 --- /dev/null +++ b/public/emoji/1f468-200d-1f9bd-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f469-1f3fb-200d-1f9af-200d-27a1-fe0f.svg b/public/emoji/1f469-1f3fb-200d-1f9af-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..ce2d666456 --- /dev/null +++ b/public/emoji/1f469-1f3fb-200d-1f9af-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f469-1f3fb-200d-1f9bc-200d-27a1-fe0f.svg b/public/emoji/1f469-1f3fb-200d-1f9bc-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..109b618b86 --- /dev/null +++ b/public/emoji/1f469-1f3fb-200d-1f9bc-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f469-1f3fb-200d-1f9bd-200d-27a1-fe0f.svg b/public/emoji/1f469-1f3fb-200d-1f9bd-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..8982e6939d --- /dev/null +++ b/public/emoji/1f469-1f3fb-200d-1f9bd-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f469-1f3fc-200d-1f9af-200d-27a1-fe0f.svg b/public/emoji/1f469-1f3fc-200d-1f9af-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..598b65f782 --- /dev/null +++ b/public/emoji/1f469-1f3fc-200d-1f9af-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f469-1f3fc-200d-1f9bc-200d-27a1-fe0f.svg b/public/emoji/1f469-1f3fc-200d-1f9bc-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..fcc9404f54 --- /dev/null +++ b/public/emoji/1f469-1f3fc-200d-1f9bc-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f469-1f3fc-200d-1f9bd-200d-27a1-fe0f.svg b/public/emoji/1f469-1f3fc-200d-1f9bd-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..f532afa0a1 --- /dev/null +++ b/public/emoji/1f469-1f3fc-200d-1f9bd-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f469-1f3fd-200d-1f9af-200d-27a1-fe0f.svg b/public/emoji/1f469-1f3fd-200d-1f9af-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..d80fe830d9 --- /dev/null +++ b/public/emoji/1f469-1f3fd-200d-1f9af-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f469-1f3fd-200d-1f9bc-200d-27a1-fe0f.svg b/public/emoji/1f469-1f3fd-200d-1f9bc-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..713ec299a3 --- /dev/null +++ b/public/emoji/1f469-1f3fd-200d-1f9bc-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f469-1f3fd-200d-1f9bd-200d-27a1-fe0f.svg b/public/emoji/1f469-1f3fd-200d-1f9bd-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..8eeaf6414c --- /dev/null +++ b/public/emoji/1f469-1f3fd-200d-1f9bd-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f469-1f3fe-200d-1f9af-200d-27a1-fe0f.svg b/public/emoji/1f469-1f3fe-200d-1f9af-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..c253f451cd --- /dev/null +++ b/public/emoji/1f469-1f3fe-200d-1f9af-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f469-1f3fe-200d-1f9bc-200d-27a1-fe0f.svg b/public/emoji/1f469-1f3fe-200d-1f9bc-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..72c56875b9 --- /dev/null +++ b/public/emoji/1f469-1f3fe-200d-1f9bc-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f469-1f3fe-200d-1f9bd-200d-27a1-fe0f.svg b/public/emoji/1f469-1f3fe-200d-1f9bd-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..fe1d01ace8 --- /dev/null +++ b/public/emoji/1f469-1f3fe-200d-1f9bd-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f469-1f3ff-200d-1f9af-200d-27a1-fe0f.svg b/public/emoji/1f469-1f3ff-200d-1f9af-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..10bb4774e0 --- /dev/null +++ b/public/emoji/1f469-1f3ff-200d-1f9af-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f469-1f3ff-200d-1f9bc-200d-27a1-fe0f.svg b/public/emoji/1f469-1f3ff-200d-1f9bc-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..932c2d8020 --- /dev/null +++ b/public/emoji/1f469-1f3ff-200d-1f9bc-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f469-1f3ff-200d-1f9bd-200d-27a1-fe0f.svg b/public/emoji/1f469-1f3ff-200d-1f9bd-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..6725afc0d7 --- /dev/null +++ b/public/emoji/1f469-1f3ff-200d-1f9bd-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f469-200d-1f466-200d-1f466.svg b/public/emoji/1f469-200d-1f466-200d-1f466.svg index a10b0190a1..9fe81618ff 100644 --- a/public/emoji/1f469-200d-1f466-200d-1f466.svg +++ b/public/emoji/1f469-200d-1f466-200d-1f466.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f469-200d-1f466.svg b/public/emoji/1f469-200d-1f466.svg index 6ae66b6494..da28199a88 100644 --- a/public/emoji/1f469-200d-1f466.svg +++ b/public/emoji/1f469-200d-1f466.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f469-200d-1f467-200d-1f466.svg b/public/emoji/1f469-200d-1f467-200d-1f466.svg index 710fb8e5e2..9fe81618ff 100644 --- a/public/emoji/1f469-200d-1f467-200d-1f466.svg +++ b/public/emoji/1f469-200d-1f467-200d-1f466.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f469-200d-1f467-200d-1f467.svg b/public/emoji/1f469-200d-1f467-200d-1f467.svg index 88da46ee19..9fe81618ff 100644 --- a/public/emoji/1f469-200d-1f467-200d-1f467.svg +++ b/public/emoji/1f469-200d-1f467-200d-1f467.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f469-200d-1f467.svg b/public/emoji/1f469-200d-1f467.svg index 43e4333f35..da28199a88 100644 --- a/public/emoji/1f469-200d-1f467.svg +++ b/public/emoji/1f469-200d-1f467.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f469-200d-1f469-200d-1f466-200d-1f466.svg b/public/emoji/1f469-200d-1f469-200d-1f466-200d-1f466.svg index 8915200c62..317e600ed1 100644 --- a/public/emoji/1f469-200d-1f469-200d-1f466-200d-1f466.svg +++ b/public/emoji/1f469-200d-1f469-200d-1f466-200d-1f466.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f469-200d-1f469-200d-1f466.svg b/public/emoji/1f469-200d-1f469-200d-1f466.svg index 8cd8bad87b..743b7ba469 100644 --- a/public/emoji/1f469-200d-1f469-200d-1f466.svg +++ b/public/emoji/1f469-200d-1f469-200d-1f466.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f469-200d-1f469-200d-1f467-200d-1f466.svg b/public/emoji/1f469-200d-1f469-200d-1f467-200d-1f466.svg index 976e8481d0..317e600ed1 100644 --- a/public/emoji/1f469-200d-1f469-200d-1f467-200d-1f466.svg +++ b/public/emoji/1f469-200d-1f469-200d-1f467-200d-1f466.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f469-200d-1f469-200d-1f467-200d-1f467.svg b/public/emoji/1f469-200d-1f469-200d-1f467-200d-1f467.svg index 96e0434e4a..317e600ed1 100644 --- a/public/emoji/1f469-200d-1f469-200d-1f467-200d-1f467.svg +++ b/public/emoji/1f469-200d-1f469-200d-1f467-200d-1f467.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f469-200d-1f469-200d-1f467.svg b/public/emoji/1f469-200d-1f469-200d-1f467.svg index 9201b66c41..743b7ba469 100644 --- a/public/emoji/1f469-200d-1f469-200d-1f467.svg +++ b/public/emoji/1f469-200d-1f469-200d-1f467.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f469-200d-1f9af-200d-27a1-fe0f.svg b/public/emoji/1f469-200d-1f9af-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..d4456dd822 --- /dev/null +++ b/public/emoji/1f469-200d-1f9af-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f469-200d-1f9bc-200d-27a1-fe0f.svg b/public/emoji/1f469-200d-1f9bc-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..c3badcd2cc --- /dev/null +++ b/public/emoji/1f469-200d-1f9bc-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f469-200d-1f9bd-200d-27a1-fe0f.svg b/public/emoji/1f469-200d-1f9bd-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..bb40571660 --- /dev/null +++ b/public/emoji/1f469-200d-1f9bd-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f46a.svg b/public/emoji/1f46a.svg index 945b1a840b..743b7ba469 100644 --- a/public/emoji/1f46a.svg +++ b/public/emoji/1f46a.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/emoji/1f642-200d-2194-fe0f.svg b/public/emoji/1f642-200d-2194-fe0f.svg new file mode 100644 index 0000000000..4b4faf9b71 --- /dev/null +++ b/public/emoji/1f642-200d-2194-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f642-200d-2195-fe0f.svg b/public/emoji/1f642-200d-2195-fe0f.svg new file mode 100644 index 0000000000..4e6f2d9912 --- /dev/null +++ b/public/emoji/1f642-200d-2195-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f6b6-1f3fb-200d-2640-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f6b6-1f3fb-200d-2640-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..aa8a93758c --- /dev/null +++ b/public/emoji/1f6b6-1f3fb-200d-2640-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f6b6-1f3fb-200d-2642-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f6b6-1f3fb-200d-2642-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..aa108d3235 --- /dev/null +++ b/public/emoji/1f6b6-1f3fb-200d-2642-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f6b6-1f3fb-200d-27a1-fe0f.svg b/public/emoji/1f6b6-1f3fb-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..2b75990689 --- /dev/null +++ b/public/emoji/1f6b6-1f3fb-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f6b6-1f3fc-200d-2640-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f6b6-1f3fc-200d-2640-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..e2a8ad2589 --- /dev/null +++ b/public/emoji/1f6b6-1f3fc-200d-2640-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f6b6-1f3fc-200d-2642-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f6b6-1f3fc-200d-2642-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..83102b5db1 --- /dev/null +++ b/public/emoji/1f6b6-1f3fc-200d-2642-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f6b6-1f3fc-200d-27a1-fe0f.svg b/public/emoji/1f6b6-1f3fc-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..5c3588c067 --- /dev/null +++ b/public/emoji/1f6b6-1f3fc-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f6b6-1f3fd-200d-2640-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f6b6-1f3fd-200d-2640-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..96659aac2a --- /dev/null +++ b/public/emoji/1f6b6-1f3fd-200d-2640-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f6b6-1f3fd-200d-2642-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f6b6-1f3fd-200d-2642-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..47ca19a639 --- /dev/null +++ b/public/emoji/1f6b6-1f3fd-200d-2642-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f6b6-1f3fd-200d-27a1-fe0f.svg b/public/emoji/1f6b6-1f3fd-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..a03ce86e47 --- /dev/null +++ b/public/emoji/1f6b6-1f3fd-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f6b6-1f3fe-200d-2640-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f6b6-1f3fe-200d-2640-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..78831c758c --- /dev/null +++ b/public/emoji/1f6b6-1f3fe-200d-2640-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f6b6-1f3fe-200d-2642-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f6b6-1f3fe-200d-2642-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..f46c27961d --- /dev/null +++ b/public/emoji/1f6b6-1f3fe-200d-2642-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f6b6-1f3fe-200d-27a1-fe0f.svg b/public/emoji/1f6b6-1f3fe-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..9ed16312c6 --- /dev/null +++ b/public/emoji/1f6b6-1f3fe-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f6b6-1f3ff-200d-2640-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f6b6-1f3ff-200d-2640-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..6e343a2bae --- /dev/null +++ b/public/emoji/1f6b6-1f3ff-200d-2640-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f6b6-1f3ff-200d-2642-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f6b6-1f3ff-200d-2642-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..3e29c09af0 --- /dev/null +++ b/public/emoji/1f6b6-1f3ff-200d-2642-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f6b6-1f3ff-200d-27a1-fe0f.svg b/public/emoji/1f6b6-1f3ff-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..0a4ee8f499 --- /dev/null +++ b/public/emoji/1f6b6-1f3ff-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f6b6-200d-2640-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f6b6-200d-2640-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..00a260f4cd --- /dev/null +++ b/public/emoji/1f6b6-200d-2640-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f6b6-200d-2642-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f6b6-200d-2642-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..9c24631164 --- /dev/null +++ b/public/emoji/1f6b6-200d-2642-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f6b6-200d-27a1-fe0f.svg b/public/emoji/1f6b6-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..44b588d188 --- /dev/null +++ b/public/emoji/1f6b6-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9ce-1f3fb-200d-2640-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f9ce-1f3fb-200d-2640-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..c7d0280306 --- /dev/null +++ b/public/emoji/1f9ce-1f3fb-200d-2640-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9ce-1f3fb-200d-2642-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f9ce-1f3fb-200d-2642-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..88655aa153 --- /dev/null +++ b/public/emoji/1f9ce-1f3fb-200d-2642-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9ce-1f3fb-200d-27a1-fe0f.svg b/public/emoji/1f9ce-1f3fb-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..5ce1c6cb0e --- /dev/null +++ b/public/emoji/1f9ce-1f3fb-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9ce-1f3fc-200d-2640-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f9ce-1f3fc-200d-2640-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..8c6fe2dc0f --- /dev/null +++ b/public/emoji/1f9ce-1f3fc-200d-2640-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9ce-1f3fc-200d-2642-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f9ce-1f3fc-200d-2642-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..0666eb6287 --- /dev/null +++ b/public/emoji/1f9ce-1f3fc-200d-2642-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9ce-1f3fc-200d-27a1-fe0f.svg b/public/emoji/1f9ce-1f3fc-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..b158ba87d7 --- /dev/null +++ b/public/emoji/1f9ce-1f3fc-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9ce-1f3fd-200d-2640-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f9ce-1f3fd-200d-2640-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..fdf1af6da1 --- /dev/null +++ b/public/emoji/1f9ce-1f3fd-200d-2640-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9ce-1f3fd-200d-2642-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f9ce-1f3fd-200d-2642-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..81eee1b57f --- /dev/null +++ b/public/emoji/1f9ce-1f3fd-200d-2642-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9ce-1f3fd-200d-27a1-fe0f.svg b/public/emoji/1f9ce-1f3fd-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..77c6ab60b4 --- /dev/null +++ b/public/emoji/1f9ce-1f3fd-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9ce-1f3fe-200d-2640-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f9ce-1f3fe-200d-2640-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..6061ed091c --- /dev/null +++ b/public/emoji/1f9ce-1f3fe-200d-2640-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9ce-1f3fe-200d-2642-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f9ce-1f3fe-200d-2642-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..f0cbfadc3d --- /dev/null +++ b/public/emoji/1f9ce-1f3fe-200d-2642-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9ce-1f3fe-200d-27a1-fe0f.svg b/public/emoji/1f9ce-1f3fe-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..09e7ed099b --- /dev/null +++ b/public/emoji/1f9ce-1f3fe-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9ce-1f3ff-200d-2640-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f9ce-1f3ff-200d-2640-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..ad3d3ce818 --- /dev/null +++ b/public/emoji/1f9ce-1f3ff-200d-2640-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9ce-1f3ff-200d-2642-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f9ce-1f3ff-200d-2642-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..d7949f6c48 --- /dev/null +++ b/public/emoji/1f9ce-1f3ff-200d-2642-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9ce-1f3ff-200d-27a1-fe0f.svg b/public/emoji/1f9ce-1f3ff-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..36bba79b42 --- /dev/null +++ b/public/emoji/1f9ce-1f3ff-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9ce-200d-2640-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f9ce-200d-2640-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..d234fee29e --- /dev/null +++ b/public/emoji/1f9ce-200d-2640-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9ce-200d-2642-fe0f-200d-27a1-fe0f.svg b/public/emoji/1f9ce-200d-2642-fe0f-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..df257035f1 --- /dev/null +++ b/public/emoji/1f9ce-200d-2642-fe0f-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9ce-200d-27a1-fe0f.svg b/public/emoji/1f9ce-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..e1f21e61e6 --- /dev/null +++ b/public/emoji/1f9ce-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9d1-1f3fb-200d-1f9af-200d-27a1-fe0f.svg b/public/emoji/1f9d1-1f3fb-200d-1f9af-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..14dc4174f7 --- /dev/null +++ b/public/emoji/1f9d1-1f3fb-200d-1f9af-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9d1-1f3fb-200d-1f9bc-200d-27a1-fe0f.svg b/public/emoji/1f9d1-1f3fb-200d-1f9bc-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..559200edf7 --- /dev/null +++ b/public/emoji/1f9d1-1f3fb-200d-1f9bc-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9d1-1f3fb-200d-1f9bd-200d-27a1-fe0f.svg b/public/emoji/1f9d1-1f3fb-200d-1f9bd-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..976fa28272 --- /dev/null +++ b/public/emoji/1f9d1-1f3fb-200d-1f9bd-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9d1-1f3fc-200d-1f9af-200d-27a1-fe0f.svg b/public/emoji/1f9d1-1f3fc-200d-1f9af-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..828d98dd8c --- /dev/null +++ b/public/emoji/1f9d1-1f3fc-200d-1f9af-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9d1-1f3fc-200d-1f9bc-200d-27a1-fe0f.svg b/public/emoji/1f9d1-1f3fc-200d-1f9bc-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..fe8198d2d9 --- /dev/null +++ b/public/emoji/1f9d1-1f3fc-200d-1f9bc-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9d1-1f3fc-200d-1f9bd-200d-27a1-fe0f.svg b/public/emoji/1f9d1-1f3fc-200d-1f9bd-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..0690a87f97 --- /dev/null +++ b/public/emoji/1f9d1-1f3fc-200d-1f9bd-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9d1-1f3fd-200d-1f9af-200d-27a1-fe0f.svg b/public/emoji/1f9d1-1f3fd-200d-1f9af-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..8d1215cdfd --- /dev/null +++ b/public/emoji/1f9d1-1f3fd-200d-1f9af-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9d1-1f3fd-200d-1f9bc-200d-27a1-fe0f.svg b/public/emoji/1f9d1-1f3fd-200d-1f9bc-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..816b25386e --- /dev/null +++ b/public/emoji/1f9d1-1f3fd-200d-1f9bc-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9d1-1f3fd-200d-1f9bd-200d-27a1-fe0f.svg b/public/emoji/1f9d1-1f3fd-200d-1f9bd-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..bc0fd100b8 --- /dev/null +++ b/public/emoji/1f9d1-1f3fd-200d-1f9bd-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9d1-1f3fe-200d-1f9af-200d-27a1-fe0f.svg b/public/emoji/1f9d1-1f3fe-200d-1f9af-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..ac01e1ed20 --- /dev/null +++ b/public/emoji/1f9d1-1f3fe-200d-1f9af-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9d1-1f3fe-200d-1f9bc-200d-27a1-fe0f.svg b/public/emoji/1f9d1-1f3fe-200d-1f9bc-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..b4e76bb908 --- /dev/null +++ b/public/emoji/1f9d1-1f3fe-200d-1f9bc-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9d1-1f3fe-200d-1f9bd-200d-27a1-fe0f.svg b/public/emoji/1f9d1-1f3fe-200d-1f9bd-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..36a9bc02dd --- /dev/null +++ b/public/emoji/1f9d1-1f3fe-200d-1f9bd-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9d1-1f3ff-200d-1f9af-200d-27a1-fe0f.svg b/public/emoji/1f9d1-1f3ff-200d-1f9af-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..95cc631972 --- /dev/null +++ b/public/emoji/1f9d1-1f3ff-200d-1f9af-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9d1-1f3ff-200d-1f9bc-200d-27a1-fe0f.svg b/public/emoji/1f9d1-1f3ff-200d-1f9bc-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..b22836fb7b --- /dev/null +++ b/public/emoji/1f9d1-1f3ff-200d-1f9bc-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9d1-1f3ff-200d-1f9bd-200d-27a1-fe0f.svg b/public/emoji/1f9d1-1f3ff-200d-1f9bd-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..f76097294d --- /dev/null +++ b/public/emoji/1f9d1-1f3ff-200d-1f9bd-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9d1-200d-1f9af-200d-27a1-fe0f.svg b/public/emoji/1f9d1-200d-1f9af-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..7efa589bf7 --- /dev/null +++ b/public/emoji/1f9d1-200d-1f9af-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9d1-200d-1f9bc-200d-27a1-fe0f.svg b/public/emoji/1f9d1-200d-1f9bc-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..b460c1288f --- /dev/null +++ b/public/emoji/1f9d1-200d-1f9bc-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9d1-200d-1f9bd-200d-27a1-fe0f.svg b/public/emoji/1f9d1-200d-1f9bd-200d-27a1-fe0f.svg new file mode 100644 index 0000000000..9bf865e809 --- /dev/null +++ b/public/emoji/1f9d1-200d-1f9bd-200d-27a1-fe0f.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9d1-200d-1f9d1-200d-1f9d2-200d-1f9d2.svg b/public/emoji/1f9d1-200d-1f9d1-200d-1f9d2-200d-1f9d2.svg new file mode 100644 index 0000000000..317e600ed1 --- /dev/null +++ b/public/emoji/1f9d1-200d-1f9d1-200d-1f9d2-200d-1f9d2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9d1-200d-1f9d1-200d-1f9d2.svg b/public/emoji/1f9d1-200d-1f9d1-200d-1f9d2.svg new file mode 100644 index 0000000000..743b7ba469 --- /dev/null +++ b/public/emoji/1f9d1-200d-1f9d1-200d-1f9d2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9d1-200d-1f9d2-200d-1f9d2.svg b/public/emoji/1f9d1-200d-1f9d2-200d-1f9d2.svg new file mode 100644 index 0000000000..9fe81618ff --- /dev/null +++ b/public/emoji/1f9d1-200d-1f9d2-200d-1f9d2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/1f9d1-200d-1f9d2.svg b/public/emoji/1f9d1-200d-1f9d2.svg new file mode 100644 index 0000000000..da28199a88 --- /dev/null +++ b/public/emoji/1f9d1-200d-1f9d2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/26d3-fe0f-200d-1f4a5.svg b/public/emoji/26d3-fe0f-200d-1f4a5.svg new file mode 100644 index 0000000000..556308f00c --- /dev/null +++ b/public/emoji/26d3-fe0f-200d-1f4a5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/emoji/sheet_15.png b/public/emoji/sheet_15.png deleted file mode 100644 index 3d0a679119..0000000000 Binary files a/public/emoji/sheet_15.png and /dev/null differ diff --git a/public/emoji/sheet_15_1.png b/public/emoji/sheet_15_1.png new file mode 100644 index 0000000000..e28f2b7648 Binary files /dev/null and b/public/emoji/sheet_15_1.png differ diff --git a/yarn.lock b/yarn.lock index b30bb9294e..738be73184 100644 --- a/yarn.lock +++ b/yarn.lock @@ -55,119 +55,119 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.26.2": - version: 7.26.2 - resolution: "@babel/code-frame@npm:7.26.2" +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/code-frame@npm:7.27.1" dependencies: - "@babel/helper-validator-identifier": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.27.1" js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.0.0" - checksum: 10c0/7d79621a6849183c415486af99b1a20b84737e8c11cd55b6544f688c51ce1fd710e6d869c3dd21232023da272a79b91efb3e83b5bc2dc65c1187c5fcd1b72ea8 + picocolors: "npm:^1.1.1" + checksum: 10c0/5dd9a18baa5fce4741ba729acc3a3272c49c25cb8736c4b18e113099520e7ef7b545a4096a26d600e4416157e63e87d66db46aa3fbf0a5f2286da2705c12da00 languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.26.5, @babel/compat-data@npm:^7.26.8": - version: 7.26.8 - resolution: "@babel/compat-data@npm:7.26.8" - checksum: 10c0/66408a0388c3457fff1c2f6c3a061278dd7b3d2f0455ea29bb7b187fa52c60ae8b4054b3c0a184e21e45f0eaac63cf390737bc7504d1f4a088a6e7f652c068ca +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/compat-data@npm:7.27.1" + checksum: 10c0/03e3a01b6772858dc5064f332ad4dc16fbbc0353f2180fd663a2651e8305058e35b6db57114e345d925def9b73cd7a322e95a45913428b8db705a098fd3dd289 languageName: node linkType: hard "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.22.1, @babel/core@npm:^7.24.4, @babel/core@npm:^7.26.10": - version: 7.26.10 - resolution: "@babel/core@npm:7.26.10" + version: 7.27.1 + resolution: "@babel/core@npm:7.27.1" dependencies: "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.26.2" - "@babel/generator": "npm:^7.26.10" - "@babel/helper-compilation-targets": "npm:^7.26.5" - "@babel/helper-module-transforms": "npm:^7.26.0" - "@babel/helpers": "npm:^7.26.10" - "@babel/parser": "npm:^7.26.10" - "@babel/template": "npm:^7.26.9" - "@babel/traverse": "npm:^7.26.10" - "@babel/types": "npm:^7.26.10" + "@babel/code-frame": "npm:^7.27.1" + "@babel/generator": "npm:^7.27.1" + "@babel/helper-compilation-targets": "npm:^7.27.1" + "@babel/helper-module-transforms": "npm:^7.27.1" + "@babel/helpers": "npm:^7.27.1" + "@babel/parser": "npm:^7.27.1" + "@babel/template": "npm:^7.27.1" + "@babel/traverse": "npm:^7.27.1" + "@babel/types": "npm:^7.27.1" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 10c0/e046e0e988ab53841b512ee9d263ca409f6c46e2a999fe53024688b92db394346fa3aeae5ea0866331f62133982eee05a675d22922a4603c3f603aa09a581d62 + checksum: 10c0/0fc31f87f5401ac5d375528cb009f4ea5527fc8c5bb5b64b5b22c033b60fd0ad723388933a5f3f5db14e1edd13c958e9dd7e5c68f9b68c767aeb496199c8a4bb languageName: node linkType: hard -"@babel/generator@npm:^7.26.10, @babel/generator@npm:^7.27.0, @babel/generator@npm:^7.7.2": - version: 7.27.0 - resolution: "@babel/generator@npm:7.27.0" +"@babel/generator@npm:^7.27.1, @babel/generator@npm:^7.7.2": + version: 7.27.1 + resolution: "@babel/generator@npm:7.27.1" dependencies: - "@babel/parser": "npm:^7.27.0" - "@babel/types": "npm:^7.27.0" + "@babel/parser": "npm:^7.27.1" + "@babel/types": "npm:^7.27.1" "@jridgewell/gen-mapping": "npm:^0.3.5" "@jridgewell/trace-mapping": "npm:^0.3.25" jsesc: "npm:^3.0.2" - checksum: 10c0/7cb10693d2b365c278f109a745dc08856cae139d262748b77b70ce1d97da84627f79648cab6940d847392c0e5d180441669ed958b3aee98d9c7d274b37c553bd + checksum: 10c0/c4156434b21818f558ebd93ce45f027c53ee570ce55a84fd2d9ba45a79ad204c17e0bff753c886fb6c07df3385445a9e34dc7ccb070d0ac7e80bb91c8b57f423 languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-annotate-as-pure@npm:7.25.9" +"@babel/helper-annotate-as-pure@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-annotate-as-pure@npm:7.27.1" dependencies: - "@babel/types": "npm:^7.25.9" - checksum: 10c0/095b6ba50489d797733abebc4596a81918316a99e3632755c9f02508882912b00c2ae5e468532a25a5c2108d109ddbe9b7da78333ee7cc13817fc50c00cf06fe + "@babel/types": "npm:^7.27.1" + checksum: 10c0/fc4751b59c8f5417e1acb0455d6ffce53fa5e79b3aca690299fbbf73b1b65bfaef3d4a18abceb190024c5836bb6cfbc3711e83888648df93df54e18152a1196c languageName: node linkType: hard -"@babel/helper-builder-react-jsx@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-builder-react-jsx@npm:7.25.9" +"@babel/helper-builder-react-jsx@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-builder-react-jsx@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" - checksum: 10c0/99d6e87eede0971f25b5e638220f5f966c56c03f6a6278a693c73ac0a31acddb86110208a89d948aa337c8cf7998fb317c00e8baf2e9fa0a42b9207b977dc9c6 + "@babel/helper-annotate-as-pure": "npm:^7.27.1" + "@babel/types": "npm:^7.27.1" + checksum: 10c0/5c0319f6b9e3153623afc4d1ede3802a7d153f5a4491dcea2cc9dddb409ccc1529812edcecf740a5c23054e19b5671ed52c926a2383fe05a4b6148d919a75e59 languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.25.9, @babel/helper-compilation-targets@npm:^7.26.5": - version: 7.26.5 - resolution: "@babel/helper-compilation-targets@npm:7.26.5" +"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-compilation-targets@npm:7.27.1" dependencies: - "@babel/compat-data": "npm:^7.26.5" - "@babel/helper-validator-option": "npm:^7.25.9" + "@babel/compat-data": "npm:^7.27.1" + "@babel/helper-validator-option": "npm:^7.27.1" browserslist: "npm:^4.24.0" lru-cache: "npm:^5.1.1" semver: "npm:^6.3.1" - checksum: 10c0/9da5c77e5722f1a2fcb3e893049a01d414124522bbf51323bb1a0c9dcd326f15279836450fc36f83c9e8a846f3c40e88be032ed939c5a9840922bed6073edfb4 + checksum: 10c0/1cfd3760a1bf1e367ea4a91214c041be7076197ba7a4f3c0710cab00fb5734eb010a2946efe6ecfb1ca9dc63e6c69644a1afa399db4082f374b9311e129f6f0b languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.25.9, @babel/helper-create-class-features-plugin@npm:^7.27.0": - version: 7.27.0 - resolution: "@babel/helper-create-class-features-plugin@npm:7.27.0" +"@babel/helper-create-class-features-plugin@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-create-class-features-plugin@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.9" - "@babel/helper-member-expression-to-functions": "npm:^7.25.9" - "@babel/helper-optimise-call-expression": "npm:^7.25.9" - "@babel/helper-replace-supers": "npm:^7.26.5" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" - "@babel/traverse": "npm:^7.27.0" + "@babel/helper-annotate-as-pure": "npm:^7.27.1" + "@babel/helper-member-expression-to-functions": "npm:^7.27.1" + "@babel/helper-optimise-call-expression": "npm:^7.27.1" + "@babel/helper-replace-supers": "npm:^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.27.1" + "@babel/traverse": "npm:^7.27.1" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/c4945903136d934050e070f69a4d72ec425f1f70634e0ddf14ad36695f935125a6df559f8d5b94cc1ed49abd4ce9c5be8ef3ba033fa8d09c5dd78d1a9b97d8cc + checksum: 10c0/4ee199671d6b9bdd4988aa2eea4bdced9a73abfc831d81b00c7634f49a8fc271b3ceda01c067af58018eb720c6151322015d463abea7072a368ee13f35adbb4c languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.9" +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.9" - regexpu-core: "npm:^6.1.1" + "@babel/helper-annotate-as-pure": "npm:^7.27.1" + regexpu-core: "npm:^6.2.0" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/3adc60a758febbf07d65a15eaccab1f7b9fcc55e7141e59122f13c9f81fc0d1cce4525b7f4af50285d27c93b34c859fd2c39c39820c5fb92211898c3bbdc77ef + checksum: 10c0/591fe8bd3bb39679cc49588889b83bd628d8c4b99c55bafa81e80b1e605a348b64da955e3fd891c4ba3f36fd015367ba2eadea22af6a7de1610fbb5bcc2d3df0 languageName: node linkType: hard @@ -186,200 +186,200 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-member-expression-to-functions@npm:7.25.9" +"@babel/helper-member-expression-to-functions@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-member-expression-to-functions@npm:7.27.1" dependencies: - "@babel/traverse": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" - checksum: 10c0/e08c7616f111e1fb56f398365e78858e26e466d4ac46dff25921adc5ccae9b232f66e952a2f4162bbe336627ba336c7fd9eca4835b6548935973d3380d77eaff + "@babel/traverse": "npm:^7.27.1" + "@babel/types": "npm:^7.27.1" + checksum: 10c0/5762ad009b6a3d8b0e6e79ff6011b3b8fdda0fefad56cfa8bfbe6aa02d5a8a8a9680a45748fe3ac47e735a03d2d88c0a676e3f9f59f20ae9fadcc8d51ccd5a53 languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.0.0-beta.49, @babel/helper-module-imports@npm:^7.10.4, @babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-module-imports@npm:7.25.9" +"@babel/helper-module-imports@npm:^7.0.0-beta.49, @babel/helper-module-imports@npm:^7.10.4, @babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-module-imports@npm:7.27.1" dependencies: - "@babel/traverse": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" - checksum: 10c0/078d3c2b45d1f97ffe6bb47f61961be4785d2342a4156d8b42c92ee4e1b7b9e365655dd6cb25329e8fe1a675c91eeac7e3d04f0c518b67e417e29d6e27b6aa70 + "@babel/traverse": "npm:^7.27.1" + "@babel/types": "npm:^7.27.1" + checksum: 10c0/e00aace096e4e29290ff8648455c2bc4ed982f0d61dbf2db1b5e750b9b98f318bf5788d75a4f974c151bd318fd549e81dbcab595f46b14b81c12eda3023f51e8 languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.25.9, @babel/helper-module-transforms@npm:^7.26.0": - version: 7.26.0 - resolution: "@babel/helper-module-transforms@npm:7.26.0" +"@babel/helper-module-transforms@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-module-transforms@npm:7.27.1" dependencies: - "@babel/helper-module-imports": "npm:^7.25.9" - "@babel/helper-validator-identifier": "npm:^7.25.9" - "@babel/traverse": "npm:^7.25.9" + "@babel/helper-module-imports": "npm:^7.27.1" + "@babel/helper-validator-identifier": "npm:^7.27.1" + "@babel/traverse": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/ee111b68a5933481d76633dad9cdab30c41df4479f0e5e1cc4756dc9447c1afd2c9473b5ba006362e35b17f4ebddd5fca090233bef8dfc84dca9d9127e56ec3a + checksum: 10c0/196ab29635fe6eb5ba6ead2972d41b1c0d40f400f99bd8fc109cef21440de24c26c972fabf932585e618694d590379ab8d22def8da65a54459d38ec46112ead7 languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-optimise-call-expression@npm:7.25.9" +"@babel/helper-optimise-call-expression@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-optimise-call-expression@npm:7.27.1" dependencies: - "@babel/types": "npm:^7.25.9" - checksum: 10c0/90203e6607edeadd2a154940803fd616c0ed92c1013d6774c4b8eb491f1a5a3448b68faae6268141caa5c456e55e3ee49a4ed2bd7ddaf2365daea321c435914c + "@babel/types": "npm:^7.27.1" + checksum: 10c0/6b861e7fcf6031b9c9fc2de3cd6c005e94a459d6caf3621d93346b52774925800ca29d4f64595a5ceacf4d161eb0d27649ae385110ed69491d9776686fa488e6 languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.9, @babel/helper-plugin-utils@npm:^7.26.5, @babel/helper-plugin-utils@npm:^7.8.0": - version: 7.26.5 - resolution: "@babel/helper-plugin-utils@npm:7.26.5" - checksum: 10c0/cdaba71d4b891aa6a8dfbe5bac2f94effb13e5fa4c2c487667fdbaa04eae059b78b28d85a885071f45f7205aeb56d16759e1bed9c118b94b16e4720ef1ab0f65 +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.26.5, @babel/helper-plugin-utils@npm:^7.27.1, @babel/helper-plugin-utils@npm:^7.8.0": + version: 7.27.1 + resolution: "@babel/helper-plugin-utils@npm:7.27.1" + checksum: 10c0/94cf22c81a0c11a09b197b41ab488d416ff62254ce13c57e62912c85700dc2e99e555225787a4099ff6bae7a1812d622c80fbaeda824b79baa10a6c5ac4cf69b languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-remap-async-to-generator@npm:7.25.9" +"@babel/helper-remap-async-to-generator@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-remap-async-to-generator@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.9" - "@babel/helper-wrap-function": "npm:^7.25.9" - "@babel/traverse": "npm:^7.25.9" + "@babel/helper-annotate-as-pure": "npm:^7.27.1" + "@babel/helper-wrap-function": "npm:^7.27.1" + "@babel/traverse": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/6798b562f2788210980f29c5ee96056d90dc73458c88af5bd32f9c82e28e01975588aa2a57bb866c35556bd9b76bac937e824ee63ba472b6430224b91b4879e9 + checksum: 10c0/5ba6258f4bb57c7c9fa76b55f416b2d18c867b48c1af4f9f2f7cd7cc933fe6da7514811d08ceb4972f1493be46f4b69c40282b811d1397403febae13c2ec57b5 languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.25.9, @babel/helper-replace-supers@npm:^7.26.5": - version: 7.26.5 - resolution: "@babel/helper-replace-supers@npm:7.26.5" +"@babel/helper-replace-supers@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-replace-supers@npm:7.27.1" dependencies: - "@babel/helper-member-expression-to-functions": "npm:^7.25.9" - "@babel/helper-optimise-call-expression": "npm:^7.25.9" - "@babel/traverse": "npm:^7.26.5" + "@babel/helper-member-expression-to-functions": "npm:^7.27.1" + "@babel/helper-optimise-call-expression": "npm:^7.27.1" + "@babel/traverse": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/b19b1245caf835207aaaaac3a494f03a16069ae55e76a2e1350b5acd560e6a820026997a8160e8ebab82ae873e8208759aa008eb8422a67a775df41f0a4633d4 + checksum: 10c0/4f2eaaf5fcc196580221a7ccd0f8873447b5d52745ad4096418f6101a1d2e712e9f93722c9a32bc9769a1dc197e001f60d6f5438d4dfde4b9c6a9e4df719354c languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.9" +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.27.1" dependencies: - "@babel/traverse": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" - checksum: 10c0/09ace0c6156961624ac9524329ce7f45350bab94bbe24335cbe0da7dfaa1448e658771831983cb83fe91cf6635b15d0a3cab57c03b92657480bfb49fb56dd184 + "@babel/traverse": "npm:^7.27.1" + "@babel/types": "npm:^7.27.1" + checksum: 10c0/f625013bcdea422c470223a2614e90d2c1cc9d832e97f32ca1b4f82b34bb4aa67c3904cb4b116375d3b5b753acfb3951ed50835a1e832e7225295c7b0c24dff7 languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-string-parser@npm:7.25.9" - checksum: 10c0/7244b45d8e65f6b4338a6a68a8556f2cb161b782343e97281a5f2b9b93e420cad0d9f5773a59d79f61d0c448913d06f6a2358a87f2e203cf112e3c5b53522ee6 +"@babel/helper-string-parser@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-string-parser@npm:7.27.1" + checksum: 10c0/8bda3448e07b5583727c103560bcf9c4c24b3c1051a4c516d4050ef69df37bb9a4734a585fe12725b8c2763de0a265aa1e909b485a4e3270b7cfd3e4dbe4b602 languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-validator-identifier@npm:7.25.9" - checksum: 10c0/4fc6f830177b7b7e887ad3277ddb3b91d81e6c4a24151540d9d1023e8dc6b1c0505f0f0628ae653601eb4388a8db45c1c14b2c07a9173837aef7e4116456259d +"@babel/helper-validator-identifier@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-validator-identifier@npm:7.27.1" + checksum: 10c0/c558f11c4871d526498e49d07a84752d1800bf72ac0d3dad100309a2eaba24efbf56ea59af5137ff15e3a00280ebe588560534b0e894a4750f8b1411d8f78b84 languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-validator-option@npm:7.25.9" - checksum: 10c0/27fb195d14c7dcb07f14e58fe77c44eea19a6a40a74472ec05c441478fa0bb49fa1c32b2d64be7a38870ee48ef6601bdebe98d512f0253aea0b39756c4014f3e +"@babel/helper-validator-option@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-validator-option@npm:7.27.1" + checksum: 10c0/6fec5f006eba40001a20f26b1ef5dbbda377b7b68c8ad518c05baa9af3f396e780bdfded24c4eef95d14bb7b8fd56192a6ed38d5d439b97d10efc5f1a191d148 languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-wrap-function@npm:7.25.9" +"@babel/helper-wrap-function@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-wrap-function@npm:7.27.1" dependencies: - "@babel/template": "npm:^7.25.9" - "@babel/traverse": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" - checksum: 10c0/b6627d83291e7b80df020f8ee2890c52b8d49272962cac0114ef90f189889c90f1027985873d1b5261a4e986e109b2754292dc112392f0b1fcbfc91cc08bd003 + "@babel/template": "npm:^7.27.1" + "@babel/traverse": "npm:^7.27.1" + "@babel/types": "npm:^7.27.1" + checksum: 10c0/c472f75c0951bc657ab0a117538c7c116566ae7579ed47ac3f572c42dc78bd6f1e18f52ebe80d38300c991c3fcaa06979e2f8864ee919369dabd59072288de30 languageName: node linkType: hard -"@babel/helpers@npm:^7.26.10": - version: 7.26.10 - resolution: "@babel/helpers@npm:7.26.10" +"@babel/helpers@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helpers@npm:7.27.1" dependencies: - "@babel/template": "npm:^7.26.9" - "@babel/types": "npm:^7.26.10" - checksum: 10c0/f99e1836bcffce96db43158518bb4a24cf266820021f6461092a776cba2dc01d9fc8b1b90979d7643c5c2ab7facc438149064463a52dd528b21c6ab32509784f + "@babel/template": "npm:^7.27.1" + "@babel/types": "npm:^7.27.1" + checksum: 10c0/e078257b9342dae2c041ac050276c5a28701434ad09478e6dc6976abd99f721a5a92e4bebddcbca6b1c3a7e8acace56a946340c701aad5e7507d2c87446459ba languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.26.10, @babel/parser@npm:^7.27.0": - version: 7.27.0 - resolution: "@babel/parser@npm:7.27.0" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/parser@npm:7.27.1" dependencies: - "@babel/types": "npm:^7.27.0" + "@babel/types": "npm:^7.27.1" bin: parser: ./bin/babel-parser.js - checksum: 10c0/ba2ed3f41735826546a3ef2a7634a8d10351df221891906e59b29b0a0cd748f9b0e7a6f07576858a9de8e77785aad925c8389ddef146de04ea2842047c9d2859 + checksum: 10c0/ae4a5eda3ada3fd54c9942d9f14385df7a18e71b386cf2652505bb9a40a32250dfde3bdda71fb08af00b1e154f0a6213e6cdaaa88e9941229ec0003f7fead759 languageName: node linkType: hard -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.9" +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/traverse": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/traverse": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/7aab47fcbb8c1ddc195a3cd66609edcad54c5022f018db7de40185f0182950389690e953e952f117a1737b72f665ff02ad30de6c02b49b97f1d8f4ccdffedc34 + checksum: 10c0/7dfffa978ae1cd179641a7c4b4ad688c6828c2c58ec96b118c2fb10bc3715223de6b88bff1ebff67056bb5fccc568ae773e3b83c592a1b843423319f80c99ebd languageName: node linkType: hard -"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.9" +"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/3a652b3574ca62775c5f101f8457950edc540c3581226579125da535d67765f41ad7f0e6327f8efeb2540a5dad5bb0c60a89fb934af3f67472e73fb63612d004 + checksum: 10c0/2cd7a55a856e5e59bbd9484247c092a41e0d9f966778e7019da324d9e0928892d26afc4fbb2ac3d76a3c5a631cd3cf0d72dd2653b44f634f6c663b9e6f80aacd languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.9" +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/18fc9004104a150f9f5da9f3307f361bc3104d16778bb593b7523d5110f04a8df19a2587e6bdd5e726fb1d397191add45223f4f731bb556c33f14f2779d596e8 + checksum: 10c0/cf29835498c4a25bd470908528919729a0799b2ec94e89004929a5532c94a5e4b1a49bc5d6673a22e5afe05d08465873e14ee3b28c42eb3db489cdf5ca47c680 languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.25.9" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" - "@babel/plugin-transform-optional-chaining": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.27.1" + "@babel/plugin-transform-optional-chaining": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.13.0 - checksum: 10c0/3f6c8781a2f7aa1791a31d2242399ca884df2ab944f90c020b6f112fb19f05fa6dad5be143d274dad1377e40415b63d24d5489faf5060b9c4a99e55d8f0c317c + checksum: 10c0/eddcd056f76e198868cbff883eb148acfade8f0890973ab545295df0c08e39573a72e65372bcc0b0bfadba1b043fe1aea6b0907d0b4889453ac154c404194ebc languageName: node linkType: hard -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.9" +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/traverse": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/traverse": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/02b365f0cc4df8b8b811c68697c93476da387841e5f153fe42766f34241b685503ea51110d5ed6df7132759820b93e48d9fa3743cffc091eed97c19f7e5fe272 + checksum: 10c0/b94e6c3fc019e988b1499490829c327a1067b4ddea8ad402f6d0554793c9124148c2125338c723661b6dff040951abc1f092afbf3f2d234319cd580b68e52445 languageName: node linkType: hard @@ -425,25 +425,25 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-assertions@npm:^7.26.0": - version: 7.26.0 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.26.0" +"@babel/plugin-syntax-import-assertions@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/525b174e60b210d96c1744c1575fc2ddedcc43a479cba64a5344cf77bd0541754fc58120b5a11ff832ba098437bb05aa80900d1f49bb3d888c5e349a4a3a356e + checksum: 10c0/06a954ee672f7a7c44d52b6e55598da43a7064e80df219765c51c37a0692641277e90411028f7cae4f4d1dedeed084f0c453576fa421c35a81f1603c5e3e0146 languageName: node linkType: hard -"@babel/plugin-syntax-import-attributes@npm:^7.26.0": - version: 7.26.0 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.26.0" +"@babel/plugin-syntax-import-attributes@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e594c185b12bfe0bbe7ca78dfeebe870e6d569a12128cac86f3164a075fe0ff70e25ddbd97fd0782906b91f65560c9dc6957716b7b4a68aba2516c9b7455e352 + checksum: 10c0/e66f7a761b8360419bbb93ab67d87c8a97465ef4637a985ff682ce7ba6918b34b29d81190204cf908d0933058ee7b42737423cd8a999546c21b3aabad4affa9a languageName: node linkType: hard @@ -469,14 +469,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.25.9, @babel/plugin-syntax-jsx@npm:^7.7.2": - version: 7.25.9 - resolution: "@babel/plugin-syntax-jsx@npm:7.25.9" +"@babel/plugin-syntax-jsx@npm:^7.25.9, @babel/plugin-syntax-jsx@npm:^7.27.1, @babel/plugin-syntax-jsx@npm:^7.7.2": + version: 7.27.1 + resolution: "@babel/plugin-syntax-jsx@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d56597aff4df39d3decda50193b6dfbe596ca53f437ff2934622ce19a743bf7f43492d3fb3308b0289f5cee2b825d99ceb56526a2b9e7b68bf04901546c5618c + checksum: 10c0/bc5afe6a458d5f0492c02a54ad98c5756a0c13bd6d20609aae65acd560a9e141b0876da5f358dce34ea136f271c1016df58b461184d7ae9c4321e0f98588bc84 languageName: node linkType: hard @@ -557,14 +557,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.25.9, @babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.25.9 - resolution: "@babel/plugin-syntax-typescript@npm:7.25.9" +"@babel/plugin-syntax-typescript@npm:^7.27.1, @babel/plugin-syntax-typescript@npm:^7.7.2": + version: 7.27.1 + resolution: "@babel/plugin-syntax-typescript@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/5192ebe11bd46aea68b7a60fd9555465c59af7e279e71126788e59121b86e00b505816685ab4782abe159232b0f73854e804b54449820b0d950b397ee158caa2 + checksum: 10c0/11589b4c89c66ef02d57bf56c6246267851ec0c361f58929327dc3e070b0dab644be625bbe7fb4c4df30c3634bfdfe31244e1f517be397d2def1487dbbe3c37d languageName: node linkType: hard @@ -580,452 +580,452 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.9" +"@babel/plugin-transform-arrow-functions@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/851fef9f58be60a80f46cc0ce1e46a6f7346a6f9d50fa9e0fa79d46ec205320069d0cc157db213e2bea88ef5b7d9bd7618bb83f0b1996a836e2426c3a3a1f622 + checksum: 10c0/19abd7a7d11eef58c9340408a4c2594503f6c4eaea1baa7b0e5fbdda89df097e50663edb3448ad2300170b39efca98a75e5767af05cad3b0facb4944326896a3 languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.26.8": - version: 7.26.8 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.26.8" +"@babel/plugin-transform-async-generator-functions@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.26.5" - "@babel/helper-remap-async-to-generator": "npm:^7.25.9" - "@babel/traverse": "npm:^7.26.8" + "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-remap-async-to-generator": "npm:^7.27.1" + "@babel/traverse": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/f6fefce963fe2e6268dde1958975d7adbce65fba94ca6f4bc554c90da03104ad1dd2e66d03bc0462da46868498428646e30b03a218ef0e5a84bfc87a7e375cec + checksum: 10c0/772e449c69ee42a466443acefb07083bd89efb1a1d95679a4dc99ea3be9d8a3c43a2b74d2da95d7c818e9dd9e0b72bfa7c03217a1feaf108f21b7e542f0943c0 languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.25.9" +"@babel/plugin-transform-async-to-generator@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.27.1" dependencies: - "@babel/helper-module-imports": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/helper-remap-async-to-generator": "npm:^7.25.9" + "@babel/helper-module-imports": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-remap-async-to-generator": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c443d9e462ddef733ae56360064f32fc800105803d892e4ff32d7d6a6922b3765fa97b9ddc9f7f1d3f9d8c2d95721d85bef9dbf507804214c6cf6466b105c168 + checksum: 10c0/e76b1f6f9c3bbf72e17d7639406d47f09481806de4db99a8de375a0bb40957ea309b20aa705f0c25ab1d7c845e3f365af67eafa368034521151a0e352a03ef2f languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.26.5": - version: 7.26.5 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.26.5" +"@babel/plugin-transform-block-scoped-functions@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.26.5" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/2f3060800ead46b09971dd7bf830d66383b7bc61ced9945633b4ef9bf87787956ea83fcf49b387cecb377812588c6b81681714c760f9cf89ecba45edcbab1192 + checksum: 10c0/3313130ba3bf0699baad0e60da1c8c3c2f0c2c0a7039cd0063e54e72e739c33f1baadfc9d8c73b3fea8c85dd7250c3964fb09c8e1fa62ba0b24a9fefe0a8dbde languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-block-scoping@npm:7.25.9" +"@babel/plugin-transform-block-scoping@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-block-scoping@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/a76e30becb6c75b4d87a2cd53556fddb7c88ddd56bfadb965287fd944810ac159aa8eb5705366fc37336041f63154ed9fab3862fb10482a45bf5ede63fd55fda + checksum: 10c0/d3f357beeb92fbdf3045aea2ba286a60dafc9c2d2a9f89065bb3c4bea9cc48934ee6689df3db0439d9ec518eda5e684f3156cab792b7c38c33ece2f8204ddee8 languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-class-properties@npm:7.25.9" +"@babel/plugin-transform-class-properties@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-class-properties@npm:7.27.1" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-create-class-features-plugin": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/f0603b6bd34d8ba62c03fc0572cb8bbc75874d097ac20cc7c5379e001081210a84dba1749e7123fca43b978382f605bb9973c99caf2c5b4c492d5c0a4a441150 + checksum: 10c0/cc0662633c0fe6df95819fef223506ddf26c369c8d64ab21a728d9007ec866bf9436a253909819216c24a82186b6ccbc1ec94d7aaf3f82df227c7c02fa6a704b languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.26.0": - version: 7.26.0 - resolution: "@babel/plugin-transform-class-static-block@npm:7.26.0" +"@babel/plugin-transform-class-static-block@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-class-static-block@npm:7.27.1" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-create-class-features-plugin": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.12.0 - checksum: 10c0/cdcf5545ae6514ed75fbd73cccfa209c6a5dfdf0c2bb7bb62c0fb4ec334a32281bcf1bc16ace494d9dbe93feb8bdc0bd3cf9d9ccb6316e634a67056fa13b741b + checksum: 10c0/396997dd81fc1cf242b921e337d25089d6b9dc3596e81322ff11a6359326dc44f2f8b82dcc279c2e514cafaf8964dc7ed39e9fab4b8af1308b57387d111f6a20 languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-classes@npm:7.25.9" +"@babel/plugin-transform-classes@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-classes@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.9" - "@babel/helper-compilation-targets": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/helper-replace-supers": "npm:^7.25.9" - "@babel/traverse": "npm:^7.25.9" + "@babel/helper-annotate-as-pure": "npm:^7.27.1" + "@babel/helper-compilation-targets": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-replace-supers": "npm:^7.27.1" + "@babel/traverse": "npm:^7.27.1" globals: "npm:^11.1.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/02742ea7cd25be286c982e672619effca528d7a931626a6f3d6cea11852951b7ee973276127eaf6418ac0e18c4d749a16b520709c707e86a67012bd23ff2927d + checksum: 10c0/1071f4cb1ed5deb5e6f8d0442f2293a540cac5caa5ab3c25ad0571aadcbf961f61e26d367a67894976165a543e02f3a19e40b63b909afbed6e710801a590635c languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-computed-properties@npm:7.25.9" +"@babel/plugin-transform-computed-properties@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-computed-properties@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/template": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/template": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/948c0ae3ce0ba2375241d122a9bc7cda4a7ac8110bd8a62cd804bc46a5fdb7a7a42c7799c4cd972e14e0a579d2bd0999b92e53177b73f240bb0d4b09972c758b + checksum: 10c0/e09a12f8c8ae0e6a6144c102956947b4ec05f6c844169121d0ec4529c2d30ad1dc59fee67736193b87a402f44552c888a519a680a31853bdb4d34788c28af3b0 languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-destructuring@npm:7.25.9" +"@babel/plugin-transform-destructuring@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-destructuring@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/7beec5fda665d108f69d5023aa7c298a1e566b973dd41290faa18aeea70f6f571295c1ece0a058f3ceb6c6c96de76de7cd34f5a227fbf09a1b8d8a735d28ca49 + checksum: 10c0/56afda7a0b205f8d1af727daef4c529fc2e756887408affd39033ae4476e54d586d3d9dc1e72cfb15c74a2a5ca0653ab13dbaa8cbf79fbb2a3a746d0f107cb86 languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.25.9" +"@babel/plugin-transform-dotall-regex@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.27.1" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-create-regexp-features-plugin": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/7c3471ae5cf7521fd8da5b03e137e8d3733fc5ee4524ce01fb0c812f0bb77cb2c9657bc8a6253186be3a15bb4caa8974993c7ddc067f554ecc6a026f0a3b5e12 + checksum: 10c0/f9caddfad9a551b4dabe0dcb7c040f458fbaaa7bbb44200c20198b32c8259be8e050e58d2c853fdac901a4cfe490b86aa857036d8d461b192dd010d0e242dedb languageName: node linkType: hard -"@babel/plugin-transform-duplicate-keys@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.25.9" +"@babel/plugin-transform-duplicate-keys@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d0c74894b9bf6ff2a04189afffb9cd43d87ebd7b7943e51a827c92d2aaa40fa89ac81565a2fd6fbeabf9e38413a9264c45862eee2b017f1d49046cc3c8ff06b4 + checksum: 10c0/22a822e5342b7066f83eaedc4fd9bb044ac6bc68725484690b33ba04a7104980e43ea3229de439286cb8db8e7db4a865733a3f05123ab58a10f189f03553746f languageName: node linkType: hard -"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.9" +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.27.1" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-create-regexp-features-plugin": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/a8039a6d2b90e011c7b30975edee47b5b1097cf3c2f95ec1f5ddd029898d783a995f55f7d6eb8d6bb8873c060fb64f9f1ccba938dfe22d118d09cf68e0cd3bf6 + checksum: 10c0/121502a252b3206913e1e990a47fea34397b4cbf7804d4cd872d45961bc45b603423f60ca87f3a3023a62528f5feb475ac1c9ec76096899ec182fcb135eba375 languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.25.9" +"@babel/plugin-transform-dynamic-import@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/5e643a8209072b668350f5788f23c64e9124f81f958b595c80fecca6561086d8ef346c04391b9e5e4cad8b8cbe22c258f0cd5f4ea89b97e74438e7d1abfd98cf + checksum: 10c0/8dcd3087aca134b064fc361d2cc34eec1f900f6be039b6368104afcef10bb75dea726bb18cabd046716b89b0edaa771f50189fa16bc5c5914a38cbcf166350f7 languageName: node linkType: hard -"@babel/plugin-transform-exponentiation-operator@npm:^7.26.3": - version: 7.26.3 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.26.3" +"@babel/plugin-transform-exponentiation-operator@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/cac922e851c6a0831fdd2e3663564966916015aeff7f4485825fc33879cbc3a313ceb859814c9200248e2875d65bb13802a723e5d7d7b40a2e90da82a5a1e15c + checksum: 10c0/953d21e01fed76da8e08fb5094cade7bf8927c1bb79301916bec2db0593b41dbcfbca1024ad5db886b72208a93ada8f57a219525aad048cf15814eeb65cf760d languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.9" +"@babel/plugin-transform-export-namespace-from@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/f291ea2ec5f36de9028a00cbd5b32f08af281b8183bf047200ff001f4cb260be56f156b2449f42149448a4a033bd6e86a3a7f06d0c2825532eb0ae6b03058dfb + checksum: 10c0/d7165cad11f571a54c8d9263d6c6bf2b817aff4874f747cb51e6e49efb32f2c9b37a6850cdb5e3b81e0b638141bb77dc782a6ec1a94128859fbdf7767581e07c languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.26.9": - version: 7.26.9 - resolution: "@babel/plugin-transform-for-of@npm:7.26.9" +"@babel/plugin-transform-for-of@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-for-of@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.26.5" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e28a521521cf9f84ddd69ca8da7c89fb9f7aa38e4dea35742fe973e4e1d7c23f9cee1a4861a2fdd9e9f18ff945886a44d7335cea1c603b96bfcb1c7c8791ef09 + checksum: 10c0/4635763173a23aae24480681f2b0996b4f54a0cb2368880301a1801638242e263132d1e8adbe112ab272913d1d900ee0d6f7dea79443aef9d3325168cd88b3fb languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-function-name@npm:7.25.9" +"@babel/plugin-transform-function-name@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-function-name@npm:7.27.1" dependencies: - "@babel/helper-compilation-targets": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/traverse": "npm:^7.25.9" + "@babel/helper-compilation-targets": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/traverse": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8e67fbd1dd367927b8b6afdf0a6e7cb3a3fd70766c52f700ca77428b6d536f6c9d7ec643e7762d64b23093233765c66bffa40e31aabe6492682879bcb45423e1 + checksum: 10c0/5abdc7b5945fbd807269dcc6e76e52b69235056023b0b35d311e8f5dfd6c09d9f225839798998fc3b663f50cf701457ddb76517025a0d7a5474f3fe56e567a4c languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-json-strings@npm:7.25.9" +"@babel/plugin-transform-json-strings@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-json-strings@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/00bc2d4751dfc9d44ab725be16ee534de13cfd7e77dfb386e5dac9e48101ce8fcbc5971df919dc25b3f8a0fa85d6dc5f2a0c3cf7ec9d61c163d9823c091844f0 + checksum: 10c0/2379714aca025516452a7c1afa1ca42a22b9b51a5050a653cc6198a51665ab82bdecf36106d32d731512706a1e373c5637f5ff635737319aa42f3827da2326d6 languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-literals@npm:7.25.9" +"@babel/plugin-transform-literals@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-literals@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/00b14e9c14cf1e871c1f3781bf6334cac339c360404afd6aba63d2f6aca9270854d59a2b40abff1c4c90d4ffdca614440842d3043316c2f0ceb155fdf7726b3b + checksum: 10c0/c40dc3eb2f45a92ee476412314a40e471af51a0f51a24e91b85cef5fc59f4fe06758088f541643f07f949d2c67ee7bdce10e11c5ec56791ae09b15c3b451eeca languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.9" +"@babel/plugin-transform-logical-assignment-operators@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/6e2051e10b2d6452980fc4bdef9da17c0d6ca48f81b8529e8804b031950e4fff7c74a7eb3de4a2b6ad22ffb631d0b67005425d232cce6e2b29ce861c78ed04f5 + checksum: 10c0/5b0abc7c0d09d562bf555c646dce63a30288e5db46fd2ce809a61d064415da6efc3b2b3c59b8e4fe98accd072c89a2f7c3765b400e4bf488651735d314d9feeb languageName: node linkType: hard -"@babel/plugin-transform-member-expression-literals@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.25.9" +"@babel/plugin-transform-member-expression-literals@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/91d17b451bcc5ea9f1c6f8264144057ade3338d4b92c0b248366e4db3a7790a28fd59cc56ac433a9627a9087a17a5684e53f4995dd6ae92831cb72f1bd540b54 + checksum: 10c0/0874ccebbd1c6a155e5f6b3b29729fade1221b73152567c1af1e1a7c12848004dffecbd7eded6dc463955120040ae57c17cb586b53fb5a7a27fcd88177034c30 languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-modules-amd@npm:7.25.9" +"@babel/plugin-transform-modules-amd@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-modules-amd@npm:7.27.1" dependencies: - "@babel/helper-module-transforms": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-module-transforms": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/849957d9484d0a2d93331226ed6cf840cee7d57454549534c447c93f8b839ef8553eae9877f8f550e3c39f14d60992f91244b2e8e7502a46064b56c5d68ba855 + checksum: 10c0/76e86cd278b6a3c5b8cca8dfb3428e9cd0c81a5df7096e04c783c506696b916a9561386d610a9d846ef64804640e0bd818ea47455fed0ee89b7f66c555b29537 languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.26.3": - version: 7.26.3 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.26.3" +"@babel/plugin-transform-modules-commonjs@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.27.1" dependencies: - "@babel/helper-module-transforms": "npm:^7.26.0" - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-module-transforms": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/82e59708f19f36da29531a64a7a94eabbf6ff46a615e0f5d9b49f3f59e8ef10e2bac607d749091508d3fa655146c9e5647c3ffeca781060cdabedb4c7a33c6f2 + checksum: 10c0/4def972dcd23375a266ea1189115a4ff61744b2c9366fc1de648b3fab2c650faf1a94092de93a33ff18858d2e6c4dddeeee5384cb42ba0129baeab01a5cdf1e2 languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.9" +"@babel/plugin-transform-modules-systemjs@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.27.1" dependencies: - "@babel/helper-module-transforms": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/helper-validator-identifier": "npm:^7.25.9" - "@babel/traverse": "npm:^7.25.9" + "@babel/helper-module-transforms": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-validator-identifier": "npm:^7.27.1" + "@babel/traverse": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8299e3437542129c2684b86f98408c690df27db4122a79edded4782cf04e755d6ecb05b1e812c81a34224a81e664303392d5f3c36f3d2d51fdc99bb91c881e9a + checksum: 10c0/f16fca62d144d9cbf558e7b5f83e13bb6d0f21fdeff3024b0cecd42ffdec0b4151461da42bd0963512783ece31aafa5ffe03446b4869220ddd095b24d414e2b5 languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-modules-umd@npm:7.25.9" +"@babel/plugin-transform-modules-umd@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-modules-umd@npm:7.27.1" dependencies: - "@babel/helper-module-transforms": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-module-transforms": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/fa11a621f023e2ac437b71d5582f819e667c94306f022583d77da9a8f772c4128861a32bbb63bef5cba581a70cd7dbe87a37238edaafcfacf889470c395e7076 + checksum: 10c0/e5962a8874889da2ab1aa32eb93ec21d419c7423c766e4befb39b4bb512b9ad44b47837b6cd1c8f1065445cbbcc6dc2be10298ac6e734e5ca1059fc23698daed languageName: node linkType: hard -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.25.9" +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.27.1" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-create-regexp-features-plugin": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/32b14fda5c885d1706863f8af2ee6c703d39264355b57482d3a24fce7f6afbd4c7a0896e501c0806ed2b0759beb621bf7f3f7de1fbbc82026039a98d961e78ef + checksum: 10c0/8eaa8c9aee00a00f3bd8bd8b561d3f569644d98cb2cfe3026d7398aabf9b29afd62f24f142b4112fa1f572d9b0e1928291b099cde59f56d6b59f4d565e58abf2 languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-new-target@npm:7.25.9" +"@babel/plugin-transform-new-target@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-new-target@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/7b5f1b7998f1cf183a7fa646346e2f3742e5805b609f28ad5fee22d666a15010f3e398b7e1ab78cddb7901841a3d3f47135929af23d54e8bf4ce69b72051f71e + checksum: 10c0/9b0581412fcc5ab1b9a2d86a0c5407bd959391f0a1e77a46953fef9f7a57f3f4020d75f71098c5f9e5dcc680a87f9fd99b3205ab12e25ef8c19eed038c1e4b28 languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.3, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.26.6": - version: 7.26.6 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.26.6" +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.3, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.26.5" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/574d6db7cbc5c092db5d1dece8ce26195e642b9c40dbfeaf3082058a78ad7959c1c333471cdd45f38b784ec488850548075d527b178c5010ee9bff7aa527cc7a + checksum: 10c0/a435fc03aaa65c6ef8e99b2d61af0994eb5cdd4a28562d78c3b0b0228ca7e501aa255e1dff091a6996d7d3ea808eb5a65fd50ecd28dfb10687a8a1095dcadc7a languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.9" +"@babel/plugin-transform-numeric-separator@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/ad63ad341977844b6f9535fcca15ca0d6d6ad112ed9cc509d4f6b75e9bf4b1b1a96a0bcb1986421a601505d34025373608b5f76d420d924b4e21f86b1a1f2749 + checksum: 10c0/b72cbebbfe46fcf319504edc1cf59f3f41c992dd6840db766367f6a1d232cd2c52143c5eaf57e0316710bee251cae94be97c6d646b5022fcd9274ccb131b470c languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.9" +"@babel/plugin-transform-object-rest-spread@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.27.1" dependencies: - "@babel/helper-compilation-targets": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/plugin-transform-parameters": "npm:^7.25.9" + "@babel/helper-compilation-targets": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/plugin-transform-parameters": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/02077d8abd83bf6a48ff0b59e98d7561407cf75b591cffd3fdc5dc5e9a13dec1c847a7a690983762a3afecddb244831e897e0515c293e7c653b262c30cd614af + checksum: 10c0/ac73caea178b51a64cc1c5e5ce1a67bacf89c1af664ef219aa1403d54258804113d6f267820c211768460e056f3aeb642c98ee14842c4fb548974c82f7dbe7dd languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-object-super@npm:7.25.9" +"@babel/plugin-transform-object-super@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-object-super@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/helper-replace-supers": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-replace-supers": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/0348d00e76f1f15ada44481a76e8c923d24cba91f6e49ee9b30d6861eb75344e7f84d62a18df8a6f9e9a7eacf992f388174b7f9cc4ce48287bcefca268c07600 + checksum: 10c0/efa2d092ef55105deb06d30aff4e460c57779b94861188128489b72378bf1f0ab0f06a4a4d68b9ae2a59a79719fbb2d148b9a3dca19ceff9c73b1f1a95e0527c languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.9" +"@babel/plugin-transform-optional-catch-binding@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/722fd5ee12ab905309d4e84421584fce4b6d9e6b639b06afb20b23fa809e6ab251e908a8d5e8b14d066a28186b8ef8f58d69fd6eca9ce1b9ef7af08333378f6c + checksum: 10c0/807a4330f1fac08e2682d57bc82e714868fc651c8876f9a8b3a3fd8f53c129e87371f8243e712ac7dae11e090b737a2219a02fe1b6459a29e664fa073c3277bb languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.9" +"@babel/plugin-transform-optional-chaining@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/041ad2beae5affb8e68a0bcb6882a2dadb758db3c629a0e012f57488ab43a822ac1ea17a29db8ef36560a28262a5dfa4dbbbf06ed6e431db55abe024b7cd3961 + checksum: 10c0/5b18ff5124e503f0a25d6b195be7351a028b3992d6f2a91fb4037e2a2c386400d66bc1df8f6df0a94c708524f318729e81a95c41906e5a7919a06a43e573a525 languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-parameters@npm:7.25.9" +"@babel/plugin-transform-parameters@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-parameters@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/aecb446754b9e09d6b6fa95fd09e7cf682f8aaeed1d972874ba24c0a30a7e803ad5f014bb1fffc7bfeed22f93c0d200947407894ea59bf7687816f2f464f8df3 + checksum: 10c0/453a9618735eeff5551d4c7f02c250606586fe1dd210ec9f69a4f15629ace180cd944339ebff2b0f11e1a40567d83a229ba1c567620e70b2ebedea576e12196a languageName: node linkType: hard -"@babel/plugin-transform-private-methods@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-private-methods@npm:7.25.9" +"@babel/plugin-transform-private-methods@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-private-methods@npm:7.27.1" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-create-class-features-plugin": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/64bd71de93d39daefa3e6c878d6f2fd238ed7d4ecfb13b0e771ddbbc131487def3ceb405b62b534a5cbb5043046b504e1b189b0a45229cc75af979a9fbcaa7bd + checksum: 10c0/232bedfe9d28df215fb03cc7623bdde468b1246bdd6dc24465ff4bf9cc5f5a256ae33daea1fafa6cc59705e4d29da9024bb79baccaa5cd92811ac5db9b9244f2 languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.9" +"@babel/plugin-transform-private-property-in-object@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.9" - "@babel/helper-create-class-features-plugin": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-annotate-as-pure": "npm:^7.27.1" + "@babel/helper-create-class-features-plugin": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d4965de19d9f204e692cc74dbc39f0bb469e5f29df96dd4457ea23c5e5596fba9d5af76eaa96f9d48a9fc20ec5f12a94c679285e36b8373406868ea228109e27 + checksum: 10c0/a8c4536273ca716dcc98e74ea25ca76431528554922f184392be3ddaf1761d4aa0e06f1311577755bd1613f7054fb51d29de2ada1130f743d329170a1aa1fe56 languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-property-literals@npm:7.25.9" +"@babel/plugin-transform-property-literals@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-property-literals@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/1639e35b2438ccf3107af760d34e6a8e4f9acdd3ae6186ae771a6e3029bd59dfe778e502d67090f1185ecda5c16addfed77561e39c518a3f51ff10d41790e106 + checksum: 10c0/15713a87edd6db620d6e66eb551b4fbfff5b8232c460c7c76cedf98efdc5cd21080c97040231e19e06594c6d7dfa66e1ab3d0951e29d5814fb25e813f6d6209c languageName: node linkType: hard @@ -1040,303 +1040,302 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-display-name@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-react-display-name@npm:7.25.9" +"@babel/plugin-transform-react-display-name@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-react-display-name@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/63a0f962d64e71baf87c212755419e25c637d2d95ea6fdc067df26b91e606ae186442ae815b99a577eca9bf5404d9577ecad218a3cf42d0e9e286ca7b003a992 + checksum: 10c0/6cd474b5fb30a2255027d8fc19975aee1c1da54dd8bc8b79802676096182ca4136302ce65a24fbb277f8fe30f266006bbf327ef6be2846d3681eb57509744125 languageName: node linkType: hard "@babel/plugin-transform-react-inline-elements@npm:^7.21.0": - version: 7.25.9 - resolution: "@babel/plugin-transform-react-inline-elements@npm:7.25.9" + version: 7.27.1 + resolution: "@babel/plugin-transform-react-inline-elements@npm:7.27.1" dependencies: - "@babel/helper-builder-react-jsx": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-builder-react-jsx": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d745bcfa8e51acc497b5ea2ff2fc4215cd39ebdb54703f2973962e3818a4829081ebc9e7818db28f90d1295e0b02e140986509ba48eef8aaa9de8c09b9434646 + checksum: 10c0/92a50ae593942a0f9882966fbd8cdc3254ed7281e4aefa3645eafe970f8959b40d4fa5ced99d9f3f2d0ca60628428186de8c8a47a8aae66d42a1bdf0749f8844 languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-development@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-react-jsx-development@npm:7.25.9" +"@babel/plugin-transform-react-jsx-development@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-react-jsx-development@npm:7.27.1" dependencies: - "@babel/plugin-transform-react-jsx": "npm:^7.25.9" + "@babel/plugin-transform-react-jsx": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c0b92ff9eb029620abf320ff74aae182cea87524723d740fb48a4373d0d16bddf5edbe1116e7ba341332a5337e55c2ceaee8b8cad5549e78af7f4b3cfe77debb + checksum: 10c0/eb8c4b6a79dc5c49b41e928e2037e1ee0bbfa722e4fd74c0b7c0d11103c82c2c25c434000e1b051d534c7261ab5c92b6d1e85313bf1b26e37db3f051ae217b58 languageName: node linkType: hard -"@babel/plugin-transform-react-jsx@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-react-jsx@npm:7.25.9" +"@babel/plugin-transform-react-jsx@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-react-jsx@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.9" - "@babel/helper-module-imports": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/plugin-syntax-jsx": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" + "@babel/helper-annotate-as-pure": "npm:^7.27.1" + "@babel/helper-module-imports": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/plugin-syntax-jsx": "npm:^7.27.1" + "@babel/types": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/5c9947e8ed141f7606f54da3e05eea1074950c5b8354c39df69cb7f43cb5a83c6c9d7973b24bc3d89341c8611f8ad50830a98ab10d117d850e6bdd8febdce221 + checksum: 10c0/1a08637c39fc78c9760dd4a3ed363fdbc762994bf83ed7872ad5bda0232fcd0fc557332f2ce36b522c0226dfd9cc8faac6b88eddda535f24825198a689e571af languageName: node linkType: hard -"@babel/plugin-transform-react-pure-annotations@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.25.9" +"@babel/plugin-transform-react-pure-annotations@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-annotate-as-pure": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/7c8eac04644ad19dcd71bb8e949b0ae22b9e548fa4a58e545d3d0342f647fb89db7f8789a7c5b8074d478ce6d3d581eaf47dd4b36027e16fd68211c383839abc + checksum: 10c0/34bc090f4a7e460d82a851971b4d0f32e4bb519bafb927154f4174506283fe02b0f471fc20655c6050a8bf7b748bfa31c7e8f7d688849476d8266623554fbb28 languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-regenerator@npm:7.25.9" +"@babel/plugin-transform-regenerator@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-regenerator@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - regenerator-transform: "npm:^0.15.2" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/eef3ffc19f7d291b863635f32b896ad7f87806d9219a0d3404a470219abcfc5b43aabecd691026c48e875b965760d9c16abee25e6447272233f30cd07f453ec7 + checksum: 10c0/42395908899310bb107d9ca31ebd4c302e14c582e3ad3ebfe1498fabafc43155c8f10850265c1e686a2afcf50d1f402cc5c5218fba72e167852607a4d8d6492e languageName: node linkType: hard -"@babel/plugin-transform-regexp-modifiers@npm:^7.26.0": - version: 7.26.0 - resolution: "@babel/plugin-transform-regexp-modifiers@npm:7.26.0" +"@babel/plugin-transform-regexp-modifiers@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-regexp-modifiers@npm:7.27.1" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-create-regexp-features-plugin": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/4abc1db6c964efafc7a927cda814c7275275afa4b530483e0936fd614de23cb5802f7ca43edaa402008a723d4e7eac282b6f5283aa2eeb3b27da6d6c1dd7f8ed + checksum: 10c0/31ae596ab56751cf43468a6c0a9d6bc3521d306d2bee9c6957cdb64bea53812ce24bd13a32f766150d62b737bca5b0650b2c62db379382fff0dccbf076055c33 languageName: node linkType: hard -"@babel/plugin-transform-reserved-words@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-reserved-words@npm:7.25.9" +"@babel/plugin-transform-reserved-words@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-reserved-words@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8b028b80d1983e3e02f74e21924323cc66ba930e5c5758909a122aa7d80e341b8b0f42e1698e42b50d47a6ba911332f584200b28e1a4e2104b7514d9dc011e96 + checksum: 10c0/e1a87691cce21a644a474d7c9a8107d4486c062957be32042d40f0a3d0cc66e00a3150989655019c255ff020d2640ac16aaf544792717d586f219f3bad295567 languageName: node linkType: hard "@babel/plugin-transform-runtime@npm:^7.22.4": - version: 7.26.10 - resolution: "@babel/plugin-transform-runtime@npm:7.26.10" + version: 7.27.1 + resolution: "@babel/plugin-transform-runtime@npm:7.27.1" dependencies: - "@babel/helper-module-imports": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.26.5" + "@babel/helper-module-imports": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" babel-plugin-polyfill-corejs2: "npm:^0.4.10" babel-plugin-polyfill-corejs3: "npm:^0.11.0" babel-plugin-polyfill-regenerator: "npm:^0.6.1" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/4b70a63b904a3f7faa6ca95f9034d2f29330764820b06cf1814dda4ab0482b233a28241e98d8497bc1690dd31972e72861d8534ae0e37f26e04637e7d615e43d + checksum: 10c0/7abbae60a6441ba8546dee3fcbc00b38038304250ba2419adaf0c76267bff43420ff75b7049003a24a829e01d9fde2ac8a422352af6d88aebd31996a83f04c2f languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.9" +"@babel/plugin-transform-shorthand-properties@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/05a20d45f0fb62567644c507ccd4e379c1a74dacf887d2b2cac70247415e3f6d7d3bf4850c8b336053144715fedb6200fc38f7130c4b76c94eec9b9c0c2a8e9b + checksum: 10c0/bd5544b89520a22c41a6df5ddac9039821d3334c0ef364d18b0ba9674c5071c223bcc98be5867dc3865cb10796882b7594e2c40dedaff38e1b1273913fe353e1 languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-spread@npm:7.25.9" +"@babel/plugin-transform-spread@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-spread@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/996c8fed238efc30e0664f9f58bd7ec8c148f4659f84425f68923a094fe891245711d26eb10d1f815f50c124434e076e860dbe9662240844d1b77cd09907dcdf + checksum: 10c0/b34fc58b33bd35b47d67416655c2cbc8578fbb3948b4592bc15eb6d8b4046986e25c06e3b9929460fa4ab08e9653582415e7ef8b87d265e1239251bdf5a4c162 languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.25.9" +"@babel/plugin-transform-sticky-regex@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e9612b0615dab4c4fba1c560769616a9bd7b9226c73191ef84b6c3ee185c8b719b4f887cdd8336a0a13400ce606ab4a0d33bc8fa6b4fcdb53e2896d07f2568f6 + checksum: 10c0/5698df2d924f0b1b7bdb7ef370e83f99ed3f0964eb3b9c27d774d021bee7f6d45f9a73e2be369d90b4aff1603ce29827f8743f091789960e7669daf9c3cda850 languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.26.8": - version: 7.26.8 - resolution: "@babel/plugin-transform-template-literals@npm:7.26.8" +"@babel/plugin-transform-template-literals@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-template-literals@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.26.5" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/205a938ded9554857a604416d369023a961334b6c20943bd861b45f0e5dbbeca1cf6fda1c2049126e38a0d18865993433fdc78eae3028e94836b3b643c08ba0d + checksum: 10c0/c90f403e42ef062b60654d1c122c70f3ec6f00c2f304b0931ebe6d0b432498ef8a5ef9266ddf00debc535f8390842207e44d3900eff1d2bab0cc1a700f03e083 languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.26.7": - version: 7.26.7 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.26.7" +"@babel/plugin-transform-typeof-symbol@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.26.5" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d5640e3457637e6eee1d7205d255602ccca124ed30e4de10ec75ba179d167e0a826ceeab424e119921f5c995dfddf39ef1f2c91efd2dcbf3f0dc1e7931dfd1d1 + checksum: 10c0/a13c68015311fefa06a51830bc69d5badd06c881b13d5cf9ba04bf7c73e3fc6311cc889e18d9645ce2a64a79456dc9c7be88476c0b6802f62a686cb6f662ecd6 languageName: node linkType: hard -"@babel/plugin-transform-typescript@npm:^7.27.0": - version: 7.27.0 - resolution: "@babel/plugin-transform-typescript@npm:7.27.0" +"@babel/plugin-transform-typescript@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-typescript@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.25.9" - "@babel/helper-create-class-features-plugin": "npm:^7.27.0" - "@babel/helper-plugin-utils": "npm:^7.26.5" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" - "@babel/plugin-syntax-typescript": "npm:^7.25.9" + "@babel/helper-annotate-as-pure": "npm:^7.27.1" + "@babel/helper-create-class-features-plugin": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.27.1" + "@babel/plugin-syntax-typescript": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/028e75dd6195495dc2d105ca8ded19d62aef90a215d597451cee57c35325960a87963913aa9a21b8ade190c638b588422292ea7e23b21565baf53c469254dbd4 + checksum: 10c0/48f1db5de17a0f9fc365ff4fb046010aedc7aad813a7aa42fb73fcdab6442f9e700dde2cc0481086e01b0dae662ae4d3e965a52cde154f0f146d243a8ac68e93 languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.25.9" +"@babel/plugin-transform-unicode-escapes@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/615c84d7c53e1575d54ba9257e753e0b98c5de1e3225237d92f55226eaab8eb5bceb74df43f50f4aa162b0bbcc934ed11feafe2b60b8ec4934ce340fad4b8828 + checksum: 10c0/a6809e0ca69d77ee9804e0c1164e8a2dea5e40718f6dcf234aeddf7292e7414f7ee331d87f17eb6f160823a329d1d6751bd49b35b392ac4a6efc032e4d3038d8 languageName: node linkType: hard -"@babel/plugin-transform-unicode-property-regex@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.25.9" +"@babel/plugin-transform-unicode-property-regex@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.27.1" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-create-regexp-features-plugin": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/1685836fc38af4344c3d2a9edbd46f7c7b28d369b63967d5b83f2f6849ec45b97223461cea3d14cc3f0be6ebb284938e637a5ca3955c0e79c873d62f593d615c + checksum: 10c0/a332bc3cb3eeea67c47502bc52d13a0f8abae5a7bfcb08b93a8300ddaff8d9e1238f912969494c1b494c1898c6f19687054440706700b6d12cb0b90d88beb4d0 languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.25.9" +"@babel/plugin-transform-unicode-regex@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.27.1" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-create-regexp-features-plugin": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/448004f978279e726af26acd54f63f9002c9e2582ecd70d1c5c4436f6de490fcd817afb60016d11c52f5ef17dbaac2590e8cc7bfaf4e91b58c452cf188c7920f + checksum: 10c0/6abda1bcffb79feba6f5c691859cdbe984cc96481ea65d5af5ba97c2e843154005f0886e25006a37a2d213c0243506a06eaeafd93a040dbe1f79539016a0d17a languageName: node linkType: hard -"@babel/plugin-transform-unicode-sets-regex@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.25.9" +"@babel/plugin-transform-unicode-sets-regex@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.27.1" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-create-regexp-features-plugin": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/56ee04fbe236b77cbcd6035cbf0be7566d1386b8349154ac33244c25f61170c47153a9423cd1d92855f7d6447b53a4a653d9e8fd1eaeeee14feb4b2baf59bd9f + checksum: 10c0/236645f4d0a1fba7c18dc8ffe3975933af93e478f2665650c2d91cf528cfa1587cde5cfe277e0e501fc03b5bf57638369575d6539cef478632fb93bd7d7d7178 languageName: node linkType: hard "@babel/preset-env@npm:^7.11.0, @babel/preset-env@npm:^7.12.1, @babel/preset-env@npm:^7.22.4": - version: 7.26.9 - resolution: "@babel/preset-env@npm:7.26.9" + version: 7.27.1 + resolution: "@babel/preset-env@npm:7.27.1" dependencies: - "@babel/compat-data": "npm:^7.26.8" - "@babel/helper-compilation-targets": "npm:^7.26.5" - "@babel/helper-plugin-utils": "npm:^7.26.5" - "@babel/helper-validator-option": "npm:^7.25.9" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.25.9" - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.25.9" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.25.9" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.25.9" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.9" + "@babel/compat-data": "npm:^7.27.1" + "@babel/helper-compilation-targets": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-validator-option": "npm:^7.27.1" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.27.1" + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.27.1" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.27.1" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.27.1" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.27.1" "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-import-assertions": "npm:^7.26.0" - "@babel/plugin-syntax-import-attributes": "npm:^7.26.0" + "@babel/plugin-syntax-import-assertions": "npm:^7.27.1" + "@babel/plugin-syntax-import-attributes": "npm:^7.27.1" "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" - "@babel/plugin-transform-arrow-functions": "npm:^7.25.9" - "@babel/plugin-transform-async-generator-functions": "npm:^7.26.8" - "@babel/plugin-transform-async-to-generator": "npm:^7.25.9" - "@babel/plugin-transform-block-scoped-functions": "npm:^7.26.5" - "@babel/plugin-transform-block-scoping": "npm:^7.25.9" - "@babel/plugin-transform-class-properties": "npm:^7.25.9" - "@babel/plugin-transform-class-static-block": "npm:^7.26.0" - "@babel/plugin-transform-classes": "npm:^7.25.9" - "@babel/plugin-transform-computed-properties": "npm:^7.25.9" - "@babel/plugin-transform-destructuring": "npm:^7.25.9" - "@babel/plugin-transform-dotall-regex": "npm:^7.25.9" - "@babel/plugin-transform-duplicate-keys": "npm:^7.25.9" - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.9" - "@babel/plugin-transform-dynamic-import": "npm:^7.25.9" - "@babel/plugin-transform-exponentiation-operator": "npm:^7.26.3" - "@babel/plugin-transform-export-namespace-from": "npm:^7.25.9" - "@babel/plugin-transform-for-of": "npm:^7.26.9" - "@babel/plugin-transform-function-name": "npm:^7.25.9" - "@babel/plugin-transform-json-strings": "npm:^7.25.9" - "@babel/plugin-transform-literals": "npm:^7.25.9" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.25.9" - "@babel/plugin-transform-member-expression-literals": "npm:^7.25.9" - "@babel/plugin-transform-modules-amd": "npm:^7.25.9" - "@babel/plugin-transform-modules-commonjs": "npm:^7.26.3" - "@babel/plugin-transform-modules-systemjs": "npm:^7.25.9" - "@babel/plugin-transform-modules-umd": "npm:^7.25.9" - "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.25.9" - "@babel/plugin-transform-new-target": "npm:^7.25.9" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.26.6" - "@babel/plugin-transform-numeric-separator": "npm:^7.25.9" - "@babel/plugin-transform-object-rest-spread": "npm:^7.25.9" - "@babel/plugin-transform-object-super": "npm:^7.25.9" - "@babel/plugin-transform-optional-catch-binding": "npm:^7.25.9" - "@babel/plugin-transform-optional-chaining": "npm:^7.25.9" - "@babel/plugin-transform-parameters": "npm:^7.25.9" - "@babel/plugin-transform-private-methods": "npm:^7.25.9" - "@babel/plugin-transform-private-property-in-object": "npm:^7.25.9" - "@babel/plugin-transform-property-literals": "npm:^7.25.9" - "@babel/plugin-transform-regenerator": "npm:^7.25.9" - "@babel/plugin-transform-regexp-modifiers": "npm:^7.26.0" - "@babel/plugin-transform-reserved-words": "npm:^7.25.9" - "@babel/plugin-transform-shorthand-properties": "npm:^7.25.9" - "@babel/plugin-transform-spread": "npm:^7.25.9" - "@babel/plugin-transform-sticky-regex": "npm:^7.25.9" - "@babel/plugin-transform-template-literals": "npm:^7.26.8" - "@babel/plugin-transform-typeof-symbol": "npm:^7.26.7" - "@babel/plugin-transform-unicode-escapes": "npm:^7.25.9" - "@babel/plugin-transform-unicode-property-regex": "npm:^7.25.9" - "@babel/plugin-transform-unicode-regex": "npm:^7.25.9" - "@babel/plugin-transform-unicode-sets-regex": "npm:^7.25.9" + "@babel/plugin-transform-arrow-functions": "npm:^7.27.1" + "@babel/plugin-transform-async-generator-functions": "npm:^7.27.1" + "@babel/plugin-transform-async-to-generator": "npm:^7.27.1" + "@babel/plugin-transform-block-scoped-functions": "npm:^7.27.1" + "@babel/plugin-transform-block-scoping": "npm:^7.27.1" + "@babel/plugin-transform-class-properties": "npm:^7.27.1" + "@babel/plugin-transform-class-static-block": "npm:^7.27.1" + "@babel/plugin-transform-classes": "npm:^7.27.1" + "@babel/plugin-transform-computed-properties": "npm:^7.27.1" + "@babel/plugin-transform-destructuring": "npm:^7.27.1" + "@babel/plugin-transform-dotall-regex": "npm:^7.27.1" + "@babel/plugin-transform-duplicate-keys": "npm:^7.27.1" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.27.1" + "@babel/plugin-transform-dynamic-import": "npm:^7.27.1" + "@babel/plugin-transform-exponentiation-operator": "npm:^7.27.1" + "@babel/plugin-transform-export-namespace-from": "npm:^7.27.1" + "@babel/plugin-transform-for-of": "npm:^7.27.1" + "@babel/plugin-transform-function-name": "npm:^7.27.1" + "@babel/plugin-transform-json-strings": "npm:^7.27.1" + "@babel/plugin-transform-literals": "npm:^7.27.1" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.27.1" + "@babel/plugin-transform-member-expression-literals": "npm:^7.27.1" + "@babel/plugin-transform-modules-amd": "npm:^7.27.1" + "@babel/plugin-transform-modules-commonjs": "npm:^7.27.1" + "@babel/plugin-transform-modules-systemjs": "npm:^7.27.1" + "@babel/plugin-transform-modules-umd": "npm:^7.27.1" + "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.27.1" + "@babel/plugin-transform-new-target": "npm:^7.27.1" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.27.1" + "@babel/plugin-transform-numeric-separator": "npm:^7.27.1" + "@babel/plugin-transform-object-rest-spread": "npm:^7.27.1" + "@babel/plugin-transform-object-super": "npm:^7.27.1" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.27.1" + "@babel/plugin-transform-optional-chaining": "npm:^7.27.1" + "@babel/plugin-transform-parameters": "npm:^7.27.1" + "@babel/plugin-transform-private-methods": "npm:^7.27.1" + "@babel/plugin-transform-private-property-in-object": "npm:^7.27.1" + "@babel/plugin-transform-property-literals": "npm:^7.27.1" + "@babel/plugin-transform-regenerator": "npm:^7.27.1" + "@babel/plugin-transform-regexp-modifiers": "npm:^7.27.1" + "@babel/plugin-transform-reserved-words": "npm:^7.27.1" + "@babel/plugin-transform-shorthand-properties": "npm:^7.27.1" + "@babel/plugin-transform-spread": "npm:^7.27.1" + "@babel/plugin-transform-sticky-regex": "npm:^7.27.1" + "@babel/plugin-transform-template-literals": "npm:^7.27.1" + "@babel/plugin-transform-typeof-symbol": "npm:^7.27.1" + "@babel/plugin-transform-unicode-escapes": "npm:^7.27.1" + "@babel/plugin-transform-unicode-property-regex": "npm:^7.27.1" + "@babel/plugin-transform-unicode-regex": "npm:^7.27.1" + "@babel/plugin-transform-unicode-sets-regex": "npm:^7.27.1" "@babel/preset-modules": "npm:0.1.6-no-external-plugins" babel-plugin-polyfill-corejs2: "npm:^0.4.10" babel-plugin-polyfill-corejs3: "npm:^0.11.0" @@ -1345,7 +1344,7 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/6812ca76bd38165a58fe8354bab5e7204e1aa17d8b9270bd8f8babb08cc7fa94cd29525fe41b553f2ba0e84033d566f10da26012b8ee0f81897005c5225d0051 + checksum: 10c0/893b269f5e7e2084ee7fb60d3a1f154470c89169475170a8a595f1910cade9c9978b42df5405a46a699529dfdb1c6b0135cc4c0aa8f9e685ae230b1cb0172ad9 languageName: node linkType: hard @@ -1363,33 +1362,33 @@ __metadata: linkType: hard "@babel/preset-react@npm:^7.12.5, @babel/preset-react@npm:^7.22.3": - version: 7.26.3 - resolution: "@babel/preset-react@npm:7.26.3" + version: 7.27.1 + resolution: "@babel/preset-react@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/helper-validator-option": "npm:^7.25.9" - "@babel/plugin-transform-react-display-name": "npm:^7.25.9" - "@babel/plugin-transform-react-jsx": "npm:^7.25.9" - "@babel/plugin-transform-react-jsx-development": "npm:^7.25.9" - "@babel/plugin-transform-react-pure-annotations": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-validator-option": "npm:^7.27.1" + "@babel/plugin-transform-react-display-name": "npm:^7.27.1" + "@babel/plugin-transform-react-jsx": "npm:^7.27.1" + "@babel/plugin-transform-react-jsx-development": "npm:^7.27.1" + "@babel/plugin-transform-react-pure-annotations": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/b470dcba11032ef6c832066f4af5c75052eaed49feb0f445227231ef1b5c42aacd6e216988c0bd469fd5728cd27b6b059ca307c9ecaa80c6bb5da4bf1c833e12 + checksum: 10c0/a80b02ef08b026cb9830d6512d08c7cd378eef4c0631dacba4aa1106240d9bb76af6373463f0255f4bbdbfcce40375a61e92735375906ba5871629b0c314bc45 languageName: node linkType: hard "@babel/preset-typescript@npm:^7.21.5": - version: 7.27.0 - resolution: "@babel/preset-typescript@npm:7.27.0" + version: 7.27.1 + resolution: "@babel/preset-typescript@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.26.5" - "@babel/helper-validator-option": "npm:^7.25.9" - "@babel/plugin-syntax-jsx": "npm:^7.25.9" - "@babel/plugin-transform-modules-commonjs": "npm:^7.26.3" - "@babel/plugin-transform-typescript": "npm:^7.27.0" + "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-validator-option": "npm:^7.27.1" + "@babel/plugin-syntax-jsx": "npm:^7.27.1" + "@babel/plugin-transform-modules-commonjs": "npm:^7.27.1" + "@babel/plugin-transform-typescript": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/986b20edab3c18727d911a6e1a14095c1271afc6cc625b02f42b371f06c1e041e5d7c1baf2afe8b0029b60788a06f02fd6844dedfe54183b148ab9a7429438a9 + checksum: 10c0/cba6ca793d915f8aff9fe2f13b0dfbf5fd3f2e9a17f17478ec9878e9af0d206dcfe93154b9fd353727f16c1dca7c7a3ceb4943f8d28b216235f106bc0fbbcaa3 languageName: node linkType: hard @@ -1402,48 +1401,46 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.2.0, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.22.3, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.3, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": - version: 7.27.0 - resolution: "@babel/runtime@npm:7.27.0" - dependencies: - regenerator-runtime: "npm:^0.14.0" - checksum: 10c0/35091ea9de48bd7fd26fb177693d64f4d195eb58ab2b142b893b7f3fa0f1d7c677604d36499ae0621a3703f35ba0c6a8f6c572cc8f7dc0317213841e493cf663 +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.2.0, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.22.3, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.3, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": + version: 7.27.1 + resolution: "@babel/runtime@npm:7.27.1" + checksum: 10c0/530a7332f86ac5a7442250456823a930906911d895c0b743bf1852efc88a20a016ed4cd26d442d0ca40ae6d5448111e02a08dd638a4f1064b47d080e2875dc05 languageName: node linkType: hard -"@babel/template@npm:^7.25.9, @babel/template@npm:^7.26.9, @babel/template@npm:^7.27.0, @babel/template@npm:^7.3.3": - version: 7.27.0 - resolution: "@babel/template@npm:7.27.0" +"@babel/template@npm:^7.27.1, @babel/template@npm:^7.3.3": + version: 7.27.1 + resolution: "@babel/template@npm:7.27.1" dependencies: - "@babel/code-frame": "npm:^7.26.2" - "@babel/parser": "npm:^7.27.0" - "@babel/types": "npm:^7.27.0" - checksum: 10c0/13af543756127edb5f62bf121f9b093c09a2b6fe108373887ccffc701465cfbcb17e07cf48aa7f440415b263f6ec006e9415c79dfc2e8e6010b069435f81f340 + "@babel/code-frame": "npm:^7.27.1" + "@babel/parser": "npm:^7.27.1" + "@babel/types": "npm:^7.27.1" + checksum: 10c0/155a8e056e82f1f1e2413b7bf9d96890e371d617c7f77f25621fb0ddb32128958d86bc5c3356f00be266e9f8c121d886de5b4143dbb72eac362377f53aba72a2 languageName: node linkType: hard -"@babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.26.10, @babel/traverse@npm:^7.26.5, @babel/traverse@npm:^7.26.8, @babel/traverse@npm:^7.27.0": - version: 7.27.0 - resolution: "@babel/traverse@npm:7.27.0" +"@babel/traverse@npm:^7.26.10, @babel/traverse@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/traverse@npm:7.27.1" dependencies: - "@babel/code-frame": "npm:^7.26.2" - "@babel/generator": "npm:^7.27.0" - "@babel/parser": "npm:^7.27.0" - "@babel/template": "npm:^7.27.0" - "@babel/types": "npm:^7.27.0" + "@babel/code-frame": "npm:^7.27.1" + "@babel/generator": "npm:^7.27.1" + "@babel/parser": "npm:^7.27.1" + "@babel/template": "npm:^7.27.1" + "@babel/types": "npm:^7.27.1" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 10c0/c7af29781960dacaae51762e8bc6c4b13d6ab4b17312990fbca9fc38e19c4ad7fecaae24b1cf52fb844e8e6cdc76c70ad597f90e496bcb3cc0a1d66b41a0aa5b + checksum: 10c0/d912110037b03b1d70a2436cfd51316d930366a5f54252da2bced1ba38642f644f848240a951e5caf12f1ef6c40d3d96baa92ea6e84800f2e891c15e97b25d50 languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.0.0-beta.49, @babel/types@npm:^7.12.6, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.10, @babel/types@npm:^7.27.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": - version: 7.27.0 - resolution: "@babel/types@npm:7.27.0" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.0.0-beta.49, @babel/types@npm:^7.12.6, @babel/types@npm:^7.20.7, @babel/types@npm:^7.26.10, @babel/types@npm:^7.27.1, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": + version: 7.27.1 + resolution: "@babel/types@npm:7.27.1" dependencies: - "@babel/helper-string-parser": "npm:^7.25.9" - "@babel/helper-validator-identifier": "npm:^7.25.9" - checksum: 10c0/6f1592eabe243c89a608717b07b72969be9d9d2fce1dee21426238757ea1fa60fdfc09b29de9e48d8104311afc6e6fb1702565a9cc1e09bc1e76f2b2ddb0f6e1 + "@babel/helper-string-parser": "npm:^7.27.1" + "@babel/helper-validator-identifier": "npm:^7.27.1" + checksum: 10c0/ed736f14db2fdf0d36c539c8e06b6bb5e8f9649a12b5c0e1c516fed827f27ef35085abe08bf4d1302a4e20c9a254e762eed453bce659786d4a6e01ba26a91377 languageName: node linkType: hard @@ -2044,13 +2041,6 @@ __metadata: languageName: node linkType: hard -"@emoji-mart/data@npm:1.2.1": - version: 1.2.1 - resolution: "@emoji-mart/data@npm:1.2.1" - checksum: 10c0/6784b97bf49a0d3ff110d8447bbd3b0449fcbc497294be3d1c3a6cb1609308776895c7520200be604cbecaa5e172c76927e47f34419c72ba8a76fd4e5a53674b - languageName: node - linkType: hard - "@emotion/babel-plugin@npm:^11.11.0": version: 11.11.0 resolution: "@emotion/babel-plugin@npm:11.11.0" @@ -2827,7 +2817,6 @@ __metadata: "@dnd-kit/core": "npm:^6.1.0" "@dnd-kit/sortable": "npm:^10.0.0" "@dnd-kit/utilities": "npm:^3.2.2" - "@emoji-mart/data": "npm:1.2.1" "@eslint/js": "npm:^9.23.0" "@formatjs/cli": "npm:^6.1.1" "@formatjs/intl-pluralrules": "npm:^5.4.4" @@ -5457,13 +5446,13 @@ __metadata: linkType: hard "axios@npm:^1.4.0": - version: 1.8.4 - resolution: "axios@npm:1.8.4" + version: 1.9.0 + resolution: "axios@npm:1.9.0" dependencies: follow-redirects: "npm:^1.15.6" form-data: "npm:^4.0.0" proxy-from-env: "npm:^1.1.0" - checksum: 10c0/450993c2ba975ffccaf0d480b68839a3b2435a5469a71fa2fb0b8a55cdb2c2ae47e609360b9c1e2b2534b73dfd69e2733a1cf9f8215bee0bcd729b72f801b0ce + checksum: 10c0/9371a56886c2e43e4ff5647b5c2c3c046ed0a3d13482ef1d0135b994a628c41fbad459796f101c655e62f0c161d03883454474d2e435b2e021b1924d9f24994c languageName: node linkType: hard @@ -6695,9 +6684,9 @@ __metadata: linkType: hard "core-js@npm:^3.30.2": - version: 3.41.0 - resolution: "core-js@npm:3.41.0" - checksum: 10c0/a29ed0b7fe81acf49d04ce5c17a1947166b1c15197327a5d12f95bbe84b46d60c3c13de701d808f41da06fa316285f3f55ce5903abc8d5642afc1eac4457afc8 + version: 3.42.0 + resolution: "core-js@npm:3.42.0" + checksum: 10c0/2913d3d5452d54ad92f058d66046782d608c05e037bcc523aab79c04454fe640998f94e6011292969d66dfa472f398b085ce843dcb362056532a5799c627184e languageName: node linkType: hard @@ -15292,15 +15281,6 @@ __metadata: languageName: node linkType: hard -"regenerator-transform@npm:^0.15.2": - version: 0.15.2 - resolution: "regenerator-transform@npm:0.15.2" - dependencies: - "@babel/runtime": "npm:^7.8.4" - checksum: 10c0/7cfe6931ec793269701994a93bab89c0cc95379191fad866270a7fea2adfec67ea62bb5b374db77058b60ba4509319d9b608664d0d288bd9989ca8dbd08fae90 - languageName: node - linkType: hard - "regex-not@npm:^1.0.0, regex-not@npm:^1.0.2": version: 1.0.2 resolution: "regex-not@npm:1.0.2" @@ -15325,17 +15305,17 @@ __metadata: languageName: node linkType: hard -"regexpu-core@npm:^6.1.1": - version: 6.1.1 - resolution: "regexpu-core@npm:6.1.1" +"regexpu-core@npm:^6.2.0": + version: 6.2.0 + resolution: "regexpu-core@npm:6.2.0" dependencies: regenerate: "npm:^1.4.2" regenerate-unicode-properties: "npm:^10.2.0" regjsgen: "npm:^0.8.0" - regjsparser: "npm:^0.11.0" + regjsparser: "npm:^0.12.0" unicode-match-property-ecmascript: "npm:^2.0.0" unicode-match-property-value-ecmascript: "npm:^2.1.0" - checksum: 10c0/07d49697e20f9b65977535abba4858b7f5171c13f7c366be53ec1886d3d5f69f1b98cc6a6e63cf271adda077c3366a4c851c7473c28bbd69cf5a6b6b008efc3e + checksum: 10c0/bbcb83a854bf96ce4005ee4e4618b71c889cda72674ce6092432f0039b47890c2d0dfeb9057d08d440999d9ea03879ebbb7f26ca005ccf94390e55c348859b98 languageName: node linkType: hard @@ -15346,14 +15326,14 @@ __metadata: languageName: node linkType: hard -"regjsparser@npm:^0.11.0": - version: 0.11.0 - resolution: "regjsparser@npm:0.11.0" +"regjsparser@npm:^0.12.0": + version: 0.12.0 + resolution: "regjsparser@npm:0.12.0" dependencies: jsesc: "npm:~3.0.2" bin: regjsparser: bin/parser - checksum: 10c0/155143a8f2c95e3170df4fff10ddf3f16a351b5d2b8cbb257e9f4a50abb9a980a28af0936b5bf850fee767537ffa8eb77c6b211fe8be19834dbe584dfd950c62 + checksum: 10c0/99d3e4e10c8c7732eb7aa843b8da2fd8b647fe144d3711b480e4647dc3bff4b1e96691ccf17f3ace24aa866a50b064236177cb25e6e4fbbb18285d99edaed83b languageName: node linkType: hard