Merge branch 'develop' into feat/scylladb

This commit is contained in:
ThatOneCalculator 2023-10-02 23:29:17 -07:00
commit 7f9283127b
No known key found for this signature in database
GPG key ID: 8703CACD01000000
25 changed files with 190 additions and 147 deletions

View file

@ -21,7 +21,7 @@ version: 0.1.2
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "rc"
appVersion: 'v1.0.4-beta31'
dependencies:
- name: elasticsearch

View file

@ -119,7 +119,7 @@ port: 3000
db:
{{- if .Values.postgresql.enabled }}
host: {{ template "firefish.postgresql.fullname" . }}
port: '5432'
port: 5432
{{- else }}
host: {{ .Values.postgresql.postgresqlHostname }}
port: {{ .Values.postgresql.postgresqlPort | default "5432" | quote }}
@ -150,13 +150,13 @@ redis:
{{- else }}
host: {{ required "When the redis chart is disabled .Values.redis.hostname is required" .Values.redis.hostname }}
{{- end }}
port: {{ .Values.redis.port | default "6379" | quote }}
port: {{ .Values.redis.port | default 6379 }}
#family: 0 # 0=Both, 4=IPv4, 6=IPv6
pass: {{ .Values.redis.auth.password | quote }}
#prefix: example-prefix
#db: 1
#user: default
#tls:
#user: default
#tls:
# host: localhost
# rejectUnauthorized: false

View file

@ -1988,7 +1988,7 @@ migration: Migración
silenced: Silenciado
deleted: Eliminado
edited: 'Editado a las {date} {time}'
editNote: Editar nota
editNote: Editar publicación
silenceThisInstance: Silenciar este servidor
findOtherInstance: Buscar otro servidor
userSaysSomethingReasonRenote: '{name} impulsó una publicación que contiene {reason]'
@ -2164,3 +2164,4 @@ noGraze: Por favor desactiva la extensión de navegador "Graze for Mastodon" ya
silencedWarning: Esta página se muestra debido a que estos usuarios son de servidores
que tu administrador ha silenciado, ya que son presumiblemente fuente de spam.
isBot: Esta cuenta es un bot
clickToShowPatterns: Haz clic para mostrar patrones de módulos

View file

@ -833,7 +833,7 @@ translatedFrom: "{x}から翻訳"
accountDeletionInProgress: "アカウントの削除が進行中です"
usernameInfo: "サーバー上であなたのアカウントを一意に識別するための名前です。アルファベット(a~z, A~Z)、数字(0~9)、およびアンダーバー(_)が使用できます。ユーザー名は後から変更できません。"
aiChanMode: "藍モードクラシックUI"
enterSendsMessage: "メッセージングでReturnキーを押すと、メッセージが送信されますデフォルトはCtrl + Returnです)"
enterSendsMessage: "チャットでEnterキー(Returnキー)を押すと、メッセージが送信されますオフの場合はCtrl + Enterで送信します)"
keepCw: "CWを維持する"
pubSub: "Pub/Subのアカウント"
lastCommunication: "直近の通信"
@ -1989,3 +1989,4 @@ emojiPackCreator: 絵文字パックの作者
confirm: 確認
exportZip: ZIPをエクスポート
openServerInfo: "投稿内のサーバー名をクリックでサーバー情報を開く"
indexableDescription: MastodonやFirefishなどの検索機能に、あなたの投稿が表示されるのを許可します。

View file

@ -64,7 +64,7 @@ import: "インポート"
export: "エクスポート"
files: "ファイル"
download: "ダウンロード"
driveFileDeleteConfirm: "ファイル「{name}」を消してしもうてええか?このファイルを添付した投稿も消えてまうで。"
driveFileDeleteConfirm: "ファイル「{name}」を消してええんか?添付した全部の投稿から、きれいさっぱり消えてなくなるで。"
unfollowConfirm: "{name}のフォローを解除してもええんか?"
exportRequested: "エクスポートしてな、ってリクエストしたけど、これ多分めっちゃ時間かかるで。エクスポート終わったら「ドライブ」に突っ込んどくで。"
importRequested: "インポートしてな、ってリクエストしたけど、これ多分めっちゃ時間かかるで。"
@ -86,7 +86,7 @@ serverIsDead: "サーバーの応答がおまへん。ちーとの間待って
youShouldUpgradeClient: "このページを表示するには、リロードして新しいバージョンのクライアントを使うてや。"
enterListName: "リスト名を入れてや"
privacy: "プライバシー"
makeFollowManuallyApprove: "自分が認めた人だけがこのアカウントをフォローできるようにする"
makeFollowManuallyApprove: "ワイが認めた奴だけがワイをフォローできるようにする"
defaultNoteVisibility: "もとからの公開範囲"
follow: "フォロー"
followRequest: "フォローを頼む"
@ -247,7 +247,7 @@ uploadFromUrlDescription: "このURLのファイルをアップロードした
uploadFromUrlRequested: "アップロードしたい言うといたで"
uploadFromUrlMayTakeTime: "アップロード終わるんにちょい時間かかるかもしれへんわ。"
explore: "みつける"
messageRead: "もう読んだ"
messageRead: "もう読まはった"
noMoreHistory: "これより過去の履歴はあらへんで"
startMessaging: "チャットやるで"
nUsersRead: "{n}人が読んでもうた"
@ -363,7 +363,7 @@ caseSensitive: "大文字と小文字は別もんや"
withReplies: "返信も入れたって"
connectedTo: "次のアカウントに繋がっとるで"
notesAndReplies: "投稿と返信"
withFiles: "ファイル付いとる"
withFiles: "ファイル付いとるやつ"
silence: "サイレンス"
silenceConfirm: "サイレンスしよか?"
unsilence: "サイレンスやめるで"
@ -389,7 +389,7 @@ securityKeyName: "キーの名前"
registerSecurityKey: "セキュリティキーを登録するで"
lastUsed: "最後につこうた日"
unregister: "登録やめる"
passwordLessLogin: "パスワード無くてもログインできるようにする"
passwordLessLogin: "パスワードなんか無うてもログインでけるようにする"
resetPassword: "パスワードをリセット"
newPasswordIs: "今度のパスワードは「{password}」や"
reduceUiAnimation: "UIの動きやアニメーションを減らす"
@ -398,8 +398,8 @@ notFound: "見つからへんね"
notFoundDescription: "指定されたURLに該当するページはあらへんやった。"
uploadFolder: "とりあえずアップロードしたやつ置いとく所"
cacheClear: "キャッシュをほかす"
markAsReadAllNotifications: "通知はもう全て読んだわっ"
markAsReadAllUnreadNotes: "投稿は全て読んだわっ"
markAsReadAllNotifications: "通知はもうぜんぶ読んだわっ"
markAsReadAllUnreadNotes: "投稿はぜんぶ読んだわっ"
markAsReadAllTalkMessages: "チャットはもうぜんぶ読んだわっ"
help: "ヘルプ"
inputMessageHere: "ここにメッセージ書いてや"
@ -507,8 +507,8 @@ listen: "聴く"
none: "なし"
showInPage: "ページで表示"
popout: "ポップアウト"
volume: "音量"
masterVolume: "全体の音量"
volume: "やかましさ"
masterVolume: "全体的なやかましさ"
details: "もっと"
chooseEmoji: "絵文字を選ぶ"
unableToProcess: "なんか作業が止まってしまったようやね"
@ -527,7 +527,7 @@ scratchpad: "スクラッチパッド"
scratchpadDescription: "スクラッチパッドではAiScriptを色々試すことができるんや。Firefishに対して色々できるコードを書いて動かしてみたり、結果を見たりできるで。"
output: "出力"
script: "スクリプト"
disablePagesScript: "Pagesのスクリプトを無効にしてや"
disablePagesScript: "ページ機能のスクリプトを無効にしてや"
updateRemoteUser: "リモートユーザー情報の更新してくれん?"
deleteAllFiles: "すべてのファイルを削除"
deleteAllFilesConfirm: "ホンマにすべてのファイルを削除するん?消したもんはもう戻ってこんのやで?"
@ -714,7 +714,7 @@ saveConfirm: "保存するで?"
deleteConfirm: "ホンマに削除するで?"
invalidValue: "有効な値じゃないみたいやで。"
registry: "レジストリ"
closeAccount: "アカウントを閉鎖する"
closeAccount: "このアカウントにさいならする"
currentVersion: "現在のバージョン"
latestVersion: "最新のバージョン"
youAreRunningUpToDateClient: "今使ってるクライアントが最新やで!"
@ -872,8 +872,8 @@ _registry:
domain: "ドメイン"
createKey: "キーを作る"
_aboutFirefish:
about: "Firefishは、ThatOneCalculatorが2022年にMisskeyをいじって作った、オープンなソースのソフトウェアや。"
contributors: "主な貢献者"
about: "Firefishは、ThatOneCalculatorが2022年にMisskeyをいじって作った、オープンなソースのソフトウェアや。"
contributors: "ごっつい貢献者"
allContributors: "全ての貢献者"
source: "ソースコード"
translation: "Firefishを翻訳"
@ -1082,8 +1082,9 @@ _visibility:
public: 公開
homeDescription: ローカルTLやグローバルTLには流さへん
_profile:
name: "名前"
name: "名前"
username: "ユーザー名"
youCanIncludeHashtags: ハッシュタグを書いてもええよ。
_exportOrImport:
allNotes: "すべての投稿"
followingList: "フォロー"
@ -1449,7 +1450,7 @@ _postForm:
d: なんや言いたいんちゃいますか?
f: あんさん書くんを待っとるんどす...
a: いまなにしとん?
flagSpeakAsCat: 猫弁で話す
flagSpeakAsCat: 猫弁で喋る
flagSpeakAsCatDescription: オンにすると、ワレの投稿の「な」を「にゃ」に変換したるで。
welcomeBackWithName: おおきに、{name}はん
migration: アカウントの引っ越し

View file

@ -36,11 +36,11 @@ save: "Opslaan"
users: "Gebruikers"
addUser: "Toevoegen gebruiker"
favorite: "Favorieten"
favorites: "Toevoegen aan favorieten"
favorites: "Favorieten"
unfavorite: "Verwijderen uit favorieten"
favorited: "Toegevoegd aan favorieten."
alreadyFavorited: "Al toegevoegd aan favorieten"
cantFavorite: "Kon niet toevoegen aan favorieten"
cantFavorite: "Kon niet toevoegen aan favorieten."
pin: "Vastmaken aan profielpagina"
unpin: "Losmaken van profielpagina"
copyContent: "Kopiëren inhoud"
@ -302,7 +302,7 @@ nsfw: "NSFW"
whenServerDisconnected: "Wanneer de verbinding met de server wordt onderbroken"
disconnectedFromServer: "Verbinding met de server onderbroken."
inMb: "in megabytes"
pinnedNotes: "Vastgemaakte notitie"
pinnedNotes: "Vastgemaakte posts"
userList: "Lijsten"
aboutFirefish: "Over Firefish"
administrator: "Beheerder"
@ -412,7 +412,7 @@ emoji: Emoji
selectList: Selecteer een lijst
selectAntenna: Selecteer een antenne
deleted: Verwijderd
editNote: Bewerk notitie
editNote: Bewerk post
edited: 'Bewerkt om {date} {time}'
emojis: Emojis
emojiName: Emoji naam
@ -682,3 +682,27 @@ serverLogs: Server logboek
deleteAll: Verwijder alles
showFixedPostForm: Toon het post formulier bovenaan de tijdlijn
newNoteRecived: Er zijn nieuwe posts
pinnedUsersDescription: Lijst gebruikersnamen gescheiden door regeleinden om vast
te pinnen in het tabblad "Verkennen".
silencedInstancesDescription: Geef de hostnames op van de servers die je het zwijgen
wilt opleggen. Accounts op de vermelde servers worden als "Stil" behandeld, kunnen
alleen volgverzoeken doen en kunnen geen lokale accounts vermelden als ze niet worden
gevolgd. Dit heeft geen invloed op de geblokkeerde servers.
searchPlaceholder: Doorzoek Firefish
pinnedPagesDescription: Voer de paden in van de pagina's die je aan de bovenste pagina
van deze server wilt vastmaken, gescheiden door regeleinden.
_permissions:
"read:favorites": Lijst van uw favorieten
"write:favorites": Beheer uw favorieten
clipsDesc: Paperclips zijn deelbare gebundelde favorieten. Je kunt paperclips maken
vanuit het menu van individuele posts.
selectChannel: Selecteer een kanaal
removeReaction: Uw reactie verwijderen
antennasDesc: "Antennes geven nieuwe berichten weer die voldoen aan de criteria die
je hebt ingesteld!\nZe zijn toegankelijk via de pagina Tijdlijnen."
pinnedClipId: ID van de paperclip om vast te pinnen
hiddenTagsDescription: 'Vermeld de hashtags (zonder #) van de hashtags die je wilt
verbergen voor trending en verkennen. Verborgen hashtags zijn nog steeds op andere
manieren te ontdekken.'
listsDesc: Met lijsten kun je tijdlijnen aanmaken met gespecificeerde gebruikers.
Ze zijn toegankelijk via de pagina Tijdlijnen.

View file

@ -9,8 +9,8 @@
"packageManager": "pnpm@8.8.0",
"private": true,
"scripts": {
"rebuild": "pnpm run clean && ./scripts/build-greet.sh && pnpm --filter !sw -r --parallel run build && pnpm --filter sw run build && pnpm run gulp",
"build": "./scripts/build-greet.sh && pnpm --filter !sw -r --parallel run build && pnpm --filter sw run build && pnpm run gulp",
"rebuild": "pnpm run clean && pnpm run build",
"build": "./scripts/build-greet.sh && pnpm --filter firefish-js run build && pnpm --filter !firefish-js -r --parallel run build && pnpm run gulp",
"start": "pnpm --filter backend run start",
"start:test": "pnpm --filter backend run start:test",
"init": "pnpm run migrate",

View file

@ -44,8 +44,8 @@
"test": "pnpm run cargo:test && pnpm run build:napi && ava",
"universal": "napi universal",
"version": "napi version",
"format": "cargo fmt --all -- --check",
"lint": "cargo clippy --fix --allow-dirty --allow-staged && cargo fmt --all -- --check",
"format": "cargo fmt --all --",
"lint": "cargo clippy --fix --allow-dirty --allow-staged && cargo fmt --all --",
"cargo:test": "pnpm run cargo:unit && pnpm run cargo:integration",
"cargo:unit": "cargo test unit_test && cargo test -F napi unit_test",
"cargo:integration": "cargo test int_test"

View file

@ -47,7 +47,7 @@ export async function toDbReaction(
const _reacterHost = toPunyNullable(reacterHost);
if (reaction === "♥️") return { name: "❤️", emoji: null };
if (reaction.includes("❤") || reaction.includes("♥️")) return { name: "❤️", emoji: null };
// Allow unicode reactions
const match = emojiRegex.exec(reaction);

View file

@ -63,6 +63,7 @@ export const paramDef = {
type: "string",
default: "chronological",
nullable: true,
description: "Either 'chronological' or 'relevancy'",
},
},
required: ["query"],
@ -76,9 +77,11 @@ export default define(meta, paramDef, async (ps, me) => {
ps.untilId,
);
if (ps.userId) {
if (ps.userId != null) {
query.andWhere("note.userId = :userId", { userId: ps.userId });
} else if (ps.channelId) {
}
if (ps.channelId != null) {
query.andWhere("note.channelId = :channelId", {
channelId: ps.channelId,
});

View file

@ -43,11 +43,11 @@
"chartjs-plugin-zoom": "2.0.1",
"city-timezones": "^1.2.1",
"compare-versions": "6.1.0",
"cropperjs": "2.0.0-beta.2",
"cropperjs": "2.0.0-beta.4",
"cross-env": "7.0.3",
"cypress": "10.11.0",
"date-fns": "2.30.0",
"emojilib": "github:thatonecalculator/emojilib",
"emojilib": "^3.0.11",
"escape-regexp": "0.0.1",
"eslint-config-prettier": "9.0.0",
"eslint-plugin-file-progress": "^1.3.0",

View file

@ -97,9 +97,9 @@ function fetchAccount(token: string): Promise<Account> {
.then((res) => {
if (res.error) {
if (res.error.id === "a8c724b3-6e9c-4b46-b1a8-bc3ed6258370") {
showSuspendedDialog().then(() => {
signout();
});
showSuspendedDialog();
signout();
return;
} else {
alert({
type: "error",
@ -116,6 +116,14 @@ function fetchAccount(token: string): Promise<Account> {
});
}
function showSuspendedDialog() {
alert({
type: "error",
title: i18n.ts.yourAccountSuspendedTitle,
text: i18n.ts.yourAccountSuspendedDescription,
});
}
export function updateAccount(accountData) {
for (const [key, value] of Object.entries(accountData)) {
$i[key] = value;

View file

@ -131,7 +131,12 @@ export default defineComponent({
this.$el.style.setProperty("--maxHeight", this.maxHeight + "px");
const calcOmit = () => {
if (this.omitted || this.ignoreOmit || this.maxHeight == null)
if (
this.omitted ||
this.ignoreOmit ||
this.maxHeight == null ||
this.$refs.content == null
)
return;
const height = this.$refs.content.offsetHeight;
this.omitted = height > this.maxHeight;

View file

@ -52,6 +52,7 @@ function close() {
display: flex;
align-items: center;
gap: 0.4em;
white-space: pre-line;
&.warn {
background: var(--infoWarnBg);

View file

@ -3,9 +3,9 @@
<VueDraggable
v-model="_files"
class="files"
animation="150"
delay="100"
delay-on-touch-only="true"
:animation="150"
:delay="100"
:delay-on-touch-only="true"
>
<div
v-for="element in _files"

View file

@ -28,7 +28,7 @@
i18n.ts.close
}}</MkButton>
</header>
<VueDraggable v-model="widgets_" handle=".handle" animation="150">
<VueDraggable v-model="widgets_" handle=".handle" :animation="150">
<div v-for="element in widgets_" :key="element.id">
<div class="customize-container">
<button

View file

@ -24,6 +24,7 @@ export const api = ((
endpoint: string,
data: Record<string, any> = {},
token?: string | null | undefined,
useToken: boolean = true,
) => {
pendingApiRequestsCount.value++;
@ -42,7 +43,7 @@ export const api = ((
body: JSON.stringify(data),
credentials: "omit",
cache: "no-cache",
headers: authorization ? { authorization } : {},
headers: authorization && useToken ? { authorization } : {},
})
.then(async (res) => {
const body = res.status === 204 ? null : await res.json();

View file

@ -71,7 +71,8 @@ function send() {
os.api(
endpoint.value as keyof Endpoints,
requestBody,
requestBody.i || (withCredential.value ? undefined : null),
null,
withCredential.value,
).then(
(resp) => {
sending.value = false;

View file

@ -4,8 +4,8 @@
tag="div"
handle=".drag-handle"
:group="{ name: 'blocks' }"
animation="150"
swap-threshold="0.5"
:animation="150"
:swap-threshold="0.5"
>
<component
:is="'x-' + element.type"

View file

@ -125,8 +125,8 @@
class="variables"
handle=".drag-handle"
:group="{ name: 'variables' }"
animation="150"
swap-threshold="0.5"
:animation="150"
:swap-threshold="0.5"
>
<XVariable
v-for="element in variables"

View file

@ -80,6 +80,19 @@
{{ i18n.ts.reflectMayTakeTime }}</template
></FormSwitch
>
<!-- <FormSwitch
v-model="$i.injectFeaturedNote"
class="_formBlock"
@update:modelValue="onChangeInjectFeaturedNote"
>
{{ i18n.ts.showFeaturedNotesInTimeline }}
</FormSwitch> -->
<!-- <FormSwitch v-model="reportError" class="_formBlock"
>{{ i18n.ts.sendErrorReports
}}<template #caption>{{
i18n.ts.sendErrorReportsDescription
}}</template></FormSwitch
> -->
<FormSwitch v-model="detectPostLanguage" class="_formBlock">{{
i18n.ts.detectPostLanguage
}}</FormSwitch>
@ -391,6 +404,15 @@ const openServerInfo = computed(
defaultStore.makeGetterSetter("openServerInfo"),
);
// This feature (along with injectPromo) is currently disabled
// function onChangeInjectFeaturedNote(v) {
// os.api("i/update", {
// injectFeaturedNote: v,
// }).then((i) => {
// $i!.injectFeaturedNote = i.injectFeaturedNote;
// });
// }
watch(swipeOnDesktop, () => {
defaultStore.set("swipeOnMobile", true);
});

View file

@ -1,17 +1,5 @@
<template>
<div class="_formRoot">
<FormSwitch
v-model="$i.injectFeaturedNote"
class="_formBlock"
@update:modelValue="onChangeInjectFeaturedNote"
>
{{ i18n.ts.showFeaturedNotesInTimeline }}
</FormSwitch>
<!--
<FormSwitch v-model="reportError" class="_formBlock">{{ i18n.ts.sendErrorReports }}<template #caption>{{ i18n.ts.sendErrorReportsDescription }}</template></FormSwitch>
-->
<FormLink to="/settings/account-info" class="_formBlock">{{
i18n.ts.accountInfo
}}</FormLink>
@ -29,21 +17,10 @@
</template>
<script lang="ts" setup>
import FormSwitch from "@/components/form/switch.vue";
import FormLink from "@/components/form/link.vue";
import * as os from "@/os";
import { $i } from "@/account";
import { i18n } from "@/i18n";
import { definePageMetadata } from "@/scripts/page-metadata";
function onChangeInjectFeaturedNote(v) {
os.api("i/update", {
injectFeaturedNote: v,
}).then((i) => {
$i!.injectFeaturedNote = i.injectFeaturedNote;
});
}
definePageMetadata({
title: i18n.ts.other,
icon: "ph-dots-three-outline ph-bold ph-lg",

View file

@ -13,9 +13,9 @@
<VueDraggable
v-model="reactions"
class="zoaiodol"
animation="150"
delay="100"
delay-on-touch-only="true"
:animation="150"
:delay="100"
:delay-on-touch-only="true"
@end="save"
>
<div

View file

@ -12,8 +12,8 @@
"api": "pnpm api-extractor run --local --verbose",
"api-prod": "pnpm api-extractor run --verbose",
"api-doc": "pnpm api-documenter markdown -i ./etc/",
"lint": "pnpm biome check --apply *.ts",
"format": "pnpm biome format --write *.ts",
"lint": "pnpm biome check --apply **/*.ts",
"format": "pnpm biome format --write **/*.ts",
"jest": "jest --coverage --detectOpenHandles",
"test": "pnpm jest && pnpm tsd"
},

View file

@ -732,8 +732,8 @@ importers:
specifier: 6.1.0
version: 6.1.0
cropperjs:
specifier: 2.0.0-beta.2
version: 2.0.0-beta.2
specifier: 2.0.0-beta.4
version: 2.0.0-beta.4
cross-env:
specifier: 7.0.3
version: 7.0.3
@ -744,8 +744,8 @@ importers:
specifier: 2.30.0
version: 2.30.0
emojilib:
specifier: github:thatonecalculator/emojilib
version: github.com/thatonecalculator/emojilib/c3c82a3c8f360e1ec567c61012b95d23f0d22175
specifier: ^3.0.11
version: 3.0.11
escape-regexp:
specifier: 0.0.1
version: 0.0.1
@ -1661,92 +1661,92 @@ packages:
dev: true
optional: true
/@cropper/element-canvas@2.0.0-beta.3:
resolution: {integrity: sha512-G4KqpZHAqb2PNY63lt7MxSIXQhYrQUWImDmsQYrXSTVYC5yrMLlk5bT9oEaSTjQZnV4x5EaujFM+gx6lWh/5sg==}
/@cropper/element-canvas@2.0.0-beta.4:
resolution: {integrity: sha512-xL7k5YgtbCLdR/QEj81An4HpPcBTJXf1lq+2xisyHALGeUKQXjA9cJQL7bldYscHAKjmFgNZ5xOMrNaYM++qZw==}
dependencies:
'@cropper/element': 2.0.0-beta.3
'@cropper/utils': 2.0.0-beta.3
'@cropper/element': 2.0.0-beta.4
'@cropper/utils': 2.0.0-beta.4
dev: true
/@cropper/element-crosshair@2.0.0-beta.3:
resolution: {integrity: sha512-SfrzZjO+x7ND/CgAclfwDQ9T/nTlZTKsLtM+dDXfjJQjuqreMaWaLD23isB1kh8H7iqjz1g+VE2ZsdiLB932ww==}
/@cropper/element-crosshair@2.0.0-beta.4:
resolution: {integrity: sha512-NiwIQZFh963i3E3QbXFiU9oNqs+P1cLJur3+e+DK0E3oLTa7rEfcigP/ZoMj/3DZ9Et0LPhKKRDY2SJ8ZszyPA==}
dependencies:
'@cropper/element': 2.0.0-beta.3
'@cropper/utils': 2.0.0-beta.3
'@cropper/element': 2.0.0-beta.4
'@cropper/utils': 2.0.0-beta.4
dev: true
/@cropper/element-grid@2.0.0-beta.3:
resolution: {integrity: sha512-/U1/sNcJ9TKcUD7N+yHJqxRfZcW15XHz63LYMLaWQ7Cnnq2uYopopJUqtTiAdIoCh6mwoIWdYvLZ1Vhr6XKJBg==}
/@cropper/element-grid@2.0.0-beta.4:
resolution: {integrity: sha512-uMVVNk1SICwM2nA/7BHkyEojc0DAqsDFIUnC/sIGPtNf3fe5hYQyukby8BEPO7dlqzfIXYmnxacgLaPM9BZ7GQ==}
dependencies:
'@cropper/element': 2.0.0-beta.3
'@cropper/utils': 2.0.0-beta.3
'@cropper/element': 2.0.0-beta.4
'@cropper/utils': 2.0.0-beta.4
dev: true
/@cropper/element-handle@2.0.0-beta.3:
resolution: {integrity: sha512-bjxZfX0rqj4RsTBGxJ1WcxDya1/25dKe9j4+YRZFyASQUOPuUrqVOpWKQcGaQ0PeN+wfwLo3422vjaGSXNA+Pg==}
/@cropper/element-handle@2.0.0-beta.4:
resolution: {integrity: sha512-PHjC4ptBi0leQ82mPWvivNilNOpiBnV90ueqz99tli8f9bQobx+Os7dzKFwLIpj4WKCNRYhyEvxf1KuKhQisIg==}
dependencies:
'@cropper/element': 2.0.0-beta.3
'@cropper/utils': 2.0.0-beta.3
'@cropper/element': 2.0.0-beta.4
'@cropper/utils': 2.0.0-beta.4
dev: true
/@cropper/element-image@2.0.0-beta.3:
resolution: {integrity: sha512-1VjqaJG+IxPDkvEUvnKAfR12zK8fx+C6+ZsC5T4986KLtpltmqccaYiupgGXX8CVHrVyaW5ncBvOXSTGowiC7Q==}
/@cropper/element-image@2.0.0-beta.4:
resolution: {integrity: sha512-Nu5z5EFpyOEC2CAdhNZGfvpG9Xj6ZD46jvpJGKxsel7J7Kqf4qy+5m6nNdq2J+lK7YfTi16svkHeFwzNWZYLAA==}
dependencies:
'@cropper/element': 2.0.0-beta.3
'@cropper/element-canvas': 2.0.0-beta.3
'@cropper/utils': 2.0.0-beta.3
'@cropper/element': 2.0.0-beta.4
'@cropper/element-canvas': 2.0.0-beta.4
'@cropper/utils': 2.0.0-beta.4
dev: true
/@cropper/element-selection@2.0.0-beta.3:
resolution: {integrity: sha512-FjcNwUaV5/KzQROoaoNZzOpeRe92PCd8PPTgfl4/b2rGgpYvGcjwpjei5HRsF+uaDJwR2f1MOK8L+3ZkAUw18Q==}
/@cropper/element-selection@2.0.0-beta.4:
resolution: {integrity: sha512-wHZhWI80cC5TfFHI/2HT1A+ZbHifnAO+/IAr4IqkbaxtDZ9duqEvM2hhC+ZXgB3BYqVidAJNwpSnZkVK+DlJ6A==}
dependencies:
'@cropper/element': 2.0.0-beta.3
'@cropper/element-canvas': 2.0.0-beta.3
'@cropper/element-image': 2.0.0-beta.3
'@cropper/utils': 2.0.0-beta.3
'@cropper/element': 2.0.0-beta.4
'@cropper/element-canvas': 2.0.0-beta.4
'@cropper/element-image': 2.0.0-beta.4
'@cropper/utils': 2.0.0-beta.4
dev: true
/@cropper/element-shade@2.0.0-beta.3:
resolution: {integrity: sha512-WCmGYbmewIF49GUeJyXCXZUBwmLsu7B+G22o5FObhtxoY8pF7mp1SclIZdJU5KfvGFFOzXKHJg4yx1wO9IAfvQ==}
/@cropper/element-shade@2.0.0-beta.4:
resolution: {integrity: sha512-sTFTzlmu+Z31Hp7RHgUAxfDsRIQ/uG8RueOBBHLeKVGFZbYhsIElQaLcVDwebgqXLHVr9imCEvvIX11JeTqiTQ==}
dependencies:
'@cropper/element': 2.0.0-beta.3
'@cropper/element-canvas': 2.0.0-beta.3
'@cropper/element-selection': 2.0.0-beta.3
'@cropper/utils': 2.0.0-beta.3
'@cropper/element': 2.0.0-beta.4
'@cropper/element-canvas': 2.0.0-beta.4
'@cropper/element-selection': 2.0.0-beta.4
'@cropper/utils': 2.0.0-beta.4
dev: true
/@cropper/element-viewer@2.0.0-beta.3:
resolution: {integrity: sha512-A2yh8ULbxuykJHVvcG3eI81VX2ug/IklDuOAzCP4yRMGSvGb9eK0BQDkOButoViwM2FtleCf2blXPuXjzD1OMA==}
/@cropper/element-viewer@2.0.0-beta.4:
resolution: {integrity: sha512-bXW8OuezoHjyGFmQzX1QEj3OqvmSZwaLiQts+mVhcarYqAEVrK9s/bC/OqZKR2ZKkHeaiGWq+rTOBVAmhZja/A==}
dependencies:
'@cropper/element': 2.0.0-beta.3
'@cropper/element-canvas': 2.0.0-beta.3
'@cropper/element-image': 2.0.0-beta.3
'@cropper/element-selection': 2.0.0-beta.3
'@cropper/utils': 2.0.0-beta.3
'@cropper/element': 2.0.0-beta.4
'@cropper/element-canvas': 2.0.0-beta.4
'@cropper/element-image': 2.0.0-beta.4
'@cropper/element-selection': 2.0.0-beta.4
'@cropper/utils': 2.0.0-beta.4
dev: true
/@cropper/element@2.0.0-beta.3:
resolution: {integrity: sha512-Ta1QPx6uqO4WtlvWbQanKSdTi0NptfnSk4h93TSk/GTKYTUI6Qa1g5C+2ibdsomcD/bVTTY6cbuGMFfM8E8zQQ==}
/@cropper/element@2.0.0-beta.4:
resolution: {integrity: sha512-1P8Vm9+OqTQz4B/rEA0t8xmzKUkYyxzxTiOaDMPKjKbG2R3UZgJBWRzvTgTsDudld9vlR6FfXpDBU1ZWA1BWxQ==}
dependencies:
'@cropper/utils': 2.0.0-beta.3
'@cropper/utils': 2.0.0-beta.4
dev: true
/@cropper/elements@2.0.0-beta.3:
resolution: {integrity: sha512-oHRnhrFN/S2vadX1/ogaoZQuPUwUxYRoZ+BZjPUxr0kdX4SwumU0pMD2hxVMbveTl0zxFc0S3HdqXx8kcHGPtg==}
/@cropper/elements@2.0.0-beta.4:
resolution: {integrity: sha512-cXKNFwudKcFrxn75VU9nLWNpjUnHcY0rUvtLn+2YVOLAnCTFLlu+azjOW1XZJ01FAEcC62Itb4CvDae+qgDpcQ==}
dependencies:
'@cropper/element': 2.0.0-beta.3
'@cropper/element-canvas': 2.0.0-beta.3
'@cropper/element-crosshair': 2.0.0-beta.3
'@cropper/element-grid': 2.0.0-beta.3
'@cropper/element-handle': 2.0.0-beta.3
'@cropper/element-image': 2.0.0-beta.3
'@cropper/element-selection': 2.0.0-beta.3
'@cropper/element-shade': 2.0.0-beta.3
'@cropper/element-viewer': 2.0.0-beta.3
'@cropper/element': 2.0.0-beta.4
'@cropper/element-canvas': 2.0.0-beta.4
'@cropper/element-crosshair': 2.0.0-beta.4
'@cropper/element-grid': 2.0.0-beta.4
'@cropper/element-handle': 2.0.0-beta.4
'@cropper/element-image': 2.0.0-beta.4
'@cropper/element-selection': 2.0.0-beta.4
'@cropper/element-shade': 2.0.0-beta.4
'@cropper/element-viewer': 2.0.0-beta.4
dev: true
/@cropper/utils@2.0.0-beta.3:
resolution: {integrity: sha512-3oBwFN2DZiqfKzkB+fpAa+LV2izRUpbH0MS427p8rgMb7EEOP/UFaKeq/P/Ovs3dhLbiA48aLiV6GmX9piEmlw==}
/@cropper/utils@2.0.0-beta.4:
resolution: {integrity: sha512-mrUTA3LbEq1Y3nPTC5X6koTd2Dk8P+6xTuhp4P8X3mg5Z7d8AVK+0OU5kbB49OLAaEfvGEqbZJ84rLwgMy9RHw==}
dev: true
/@cspotcode/source-map-consumer@0.8.0:
@ -7413,11 +7413,11 @@ packages:
luxon: 3.3.0
dev: false
/cropperjs@2.0.0-beta.2:
resolution: {integrity: sha512-jDRSODDGKmi9vp3p/+WXkxMqV/AE+GpSld1U3cHZDRdLy9UykRzurSe8k1dR0TExn45ygCMrv31qkg+K3EeXXw==}
/cropperjs@2.0.0-beta.4:
resolution: {integrity: sha512-tWIQnvbou6eJvQkajwhGLOOEw03dM/i23FmnUQtMKjuzbTDSMP61kcwM77Uit8MXEWcUb5PH8n4jawyrFvj5ag==}
dependencies:
'@cropper/elements': 2.0.0-beta.3
'@cropper/utils': 2.0.0-beta.3
'@cropper/elements': 2.0.0-beta.4
'@cropper/utils': 2.0.0-beta.4
dev: true
/cross-env@7.0.3:
@ -8181,6 +8181,10 @@ packages:
/emoji-regex@9.2.2:
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
/emojilib@3.0.11:
resolution: {integrity: sha512-OuML9z640prB+0Rms1RgzJrBAqNC9mFdqT2HeFcXSGSGNEiZh9adsaPPxWbqRoMyJPzu+zNKPyGKv4/sPmJDyg==}
dev: true
/emojis-list@3.0.0:
resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
engines: {node: '>= 4'}
@ -19484,9 +19488,3 @@ packages:
rangetouch: 2.0.1
url-polyfill: 1.1.12
dev: true
github.com/thatonecalculator/emojilib/c3c82a3c8f360e1ec567c61012b95d23f0d22175:
resolution: {tarball: https://codeload.github.com/thatonecalculator/emojilib/tar.gz/c3c82a3c8f360e1ec567c61012b95d23f0d22175}
name: emojilib
version: 3.0.10
dev: true