From f0914073e0258d1b1ef9b5e4cc9f567c8ca15480 Mon Sep 17 00:00:00 2001 From: plebeius Date: Thu, 16 Oct 2025 22:56:33 +0200 Subject: [PATCH 01/15] Update .gitignore --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index f5857e93..18023bbf 100644 --- a/.gitignore +++ b/.gitignore @@ -158,4 +158,6 @@ npm-debug.log* yarn-debug.log* yarn-error.log* -.vscode \ No newline at end of file +.vscode +.cursor +.playwright-mcp \ No newline at end of file From d57bf885869072587e3de9b1d75e796b52389903 Mon Sep 17 00:00:00 2001 From: plebeius Date: Thu, 16 Oct 2025 23:05:51 +0200 Subject: [PATCH 02/15] Remove workspace and service worker files --- .idea/workspace.xml | 19 ------------------- dev-dist/registerSW.js | 1 - 2 files changed, 20 deletions(-) delete mode 100644 .idea/workspace.xml delete mode 100644 dev-dist/registerSW.js diff --git a/.idea/workspace.xml b/.idea/workspace.xml deleted file mode 100644 index a6dbfd3a..00000000 --- a/.idea/workspace.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/dev-dist/registerSW.js b/dev-dist/registerSW.js deleted file mode 100644 index fdeaac12..00000000 --- a/dev-dist/registerSW.js +++ /dev/null @@ -1 +0,0 @@ -if('serviceWorker' in navigator) navigator.serviceWorker.register('/dev-sw.js?dev-sw', { scope: '/', type: 'module' }) \ No newline at end of file From b10ada55e7c7603a9d1680ee4240e120655e0798 Mon Sep 17 00:00:00 2001 From: plebeius Date: Thu, 16 Oct 2025 23:13:18 +0200 Subject: [PATCH 03/15] perf: eliminate redundant derived state in board and post views --- src/hooks/use-comment-media-info.ts | 74 +++++++++++++++++------------ src/views/board/board.tsx | 10 +--- src/views/catalog/catalog.tsx | 3 +- src/views/post/post.tsx | 9 +--- 4 files changed, 48 insertions(+), 48 deletions(-) diff --git a/src/hooks/use-comment-media-info.ts b/src/hooks/use-comment-media-info.ts index bf646401..99c9a7fd 100644 --- a/src/hooks/use-comment-media-info.ts +++ b/src/hooks/use-comment-media-info.ts @@ -1,42 +1,56 @@ -import { useCallback, useEffect } from 'react'; +import { useState, useEffect } from 'react'; import { useLocation, useParams } from 'react-router-dom'; -import { getCommentMediaInfo, fetchWebpageThumbnailIfNeeded } from '../lib/utils/media-utils'; +import { getCommentMediaInfo, fetchWebpageThumbnailIfNeeded, CommentMediaInfo } from '../lib/utils/media-utils'; import { isPendingPostView, isPostPageView } from '../lib/utils/view-utils'; -export const useCommentMediaInfo = (link: string, thumbnailUrl: string, linkWidth: number, linkHeight: number) => { +/** + * Hook to fetch and cache media info with thumbnail dimensions for comments. + * Properly tracks thumbnail dimensions using state so they're available after the image loads. + */ +export const useCommentMediaInfo = (link: string, thumbnailUrl: string, linkWidth: number, linkHeight: number): CommentMediaInfo | undefined => { const location = useLocation(); const params = useParams(); const isInPostPageView = isPostPageView(location.pathname, params); const isInPendingPostView = isPendingPostView(location.pathname, params); - // some sites have CORS access, so the thumbnail can be fetched client-side, which is helpful if subplebbit.settings.fetchThumbnailUrls is false - const fetchThumbnail = useCallback(async () => { - let commentMediaInfo = getCommentMediaInfo(link, thumbnailUrl, linkWidth, linkHeight); - if (commentMediaInfo?.type === 'webpage' && !commentMediaInfo.thumbnail) { - const newMediaInfo = await fetchWebpageThumbnailIfNeeded(commentMediaInfo); - // Fetch the dimensions of the thumbnail - if (newMediaInfo.thumbnail) { - const img = new Image(); - img.onload = () => { - commentMediaInfo = { - ...newMediaInfo, - thumbnailWidth: img.width, - thumbnailHeight: img.height, - }; - }; - img.src = newMediaInfo.thumbnail; - } - commentMediaInfo = newMediaInfo; - } - return commentMediaInfo; - }, [link, thumbnailUrl, linkWidth, linkHeight]); + const [thumbnailDimensions, setThumbnailDimensions] = useState<{ width: number; height: number } | null>(null); + // Fetch and cache thumbnail dimensions for webpage media useEffect(() => { - // don't fetch in feed view, it displaces the posts - if (isInPostPageView && isInPendingPostView) { - fetchThumbnail(); - } - }, [fetchThumbnail, isInPostPageView, isInPendingPostView]); + if (!(isInPostPageView || isInPendingPostView)) return; - return getCommentMediaInfo(link, thumbnailUrl, linkWidth, linkHeight); + const fetchAndCacheThumbnail = async () => { + const mediaInfo = getCommentMediaInfo(link, thumbnailUrl, linkWidth, linkHeight); + + if (mediaInfo?.type === 'webpage' && !mediaInfo.thumbnail) { + const newMediaInfo = await fetchWebpageThumbnailIfNeeded(mediaInfo); + + if (newMediaInfo.thumbnail) { + const img = new Image(); + img.onload = () => { + setThumbnailDimensions({ width: img.width, height: img.height }); + }; + img.onerror = () => { + // Silently handle failed image loads + }; + img.src = newMediaInfo.thumbnail; + } + } + }; + + fetchAndCacheThumbnail(); + }, [link, thumbnailUrl, linkWidth, linkHeight, isInPostPageView, isInPendingPostView]); + + const mediaInfo = getCommentMediaInfo(link, thumbnailUrl, linkWidth, linkHeight); + + // Return media info with cached thumbnail dimensions if available + if (thumbnailDimensions && mediaInfo) { + return { + ...mediaInfo, + thumbnailWidth: thumbnailDimensions.width, + thumbnailHeight: thumbnailDimensions.height, + }; + } + + return mediaInfo; }; diff --git a/src/views/board/board.tsx b/src/views/board/board.tsx index c76bf5ec..5be4f1e0 100644 --- a/src/views/board/board.tsx +++ b/src/views/board/board.tsx @@ -269,15 +269,7 @@ const Board = () => { document.title = boardTitle + ' - plebchan'; }, [title, shortAddress, subplebbitAddress]); - // probably not necessary to show the error to the user if the feed loaded successfully - const [shouldShowErrorToUser, setShouldShowErrorToUser] = useState(false); - useEffect(() => { - if (error?.message && feed.length === 0) { - setShouldShowErrorToUser(true); - } else if (feed.length > 0) { - setShouldShowErrorToUser(false); - } - }, [error, feed]); + const shouldShowErrorToUser = error?.message && feed.length === 0; return ( <> diff --git a/src/views/catalog/catalog.tsx b/src/views/catalog/catalog.tsx index d3b710a3..a8da37fb 100644 --- a/src/views/catalog/catalog.tsx +++ b/src/views/catalog/catalog.tsx @@ -462,7 +462,7 @@ const Catalog = () => { }, [clearMatchedFilters, subplebbitAddress]); // Apply filter colors to posts when feed changes - useEffect(() => { + const coloredFeed = useMemo(() => { if (combinedFeed.length > 0 && filterItems.length > 0) { // Clear existing matched filters clearMatchedFilters(); @@ -482,6 +482,7 @@ const Catalog = () => { } }); } + return combinedFeed; }, [combinedFeed, filterItems, clearMatchedFilters]); return ( diff --git a/src/views/post/post.tsx b/src/views/post/post.tsx index 34d3ba7e..5fb7b3a1 100644 --- a/src/views/post/post.tsx +++ b/src/views/post/post.tsx @@ -85,14 +85,7 @@ const PostPage = () => { }, [title, shortAddress, subplebbitAddress, post?.title, post?.content, isInAllView, t]); // probably not necessary to show the error to the user if the post loaded successfully - const [shouldShowErrorToUser, setShouldShowErrorToUser] = useState(false); - useEffect(() => { - if (post?.error && ((post?.replyCount > 0 && post?.replies?.length === 0) || (post?.state === 'failed' && post?.error))) { - setShouldShowErrorToUser(true); - } else if (post?.replyCount > 0 && post?.replies?.length > 0) { - setShouldShowErrorToUser(false); - } - }, [post]); + const shouldShowErrorToUser = post?.error && ((post?.replyCount > 0 && post?.replies?.length === 0) || (post?.state === 'failed' && post?.error)); return (
From 760e8d900ef0a9dc91dae31949aba555c9624d9c Mon Sep 17 00:00:00 2001 From: plebeius Date: Thu, 16 Oct 2025 23:16:38 +0200 Subject: [PATCH 04/15] fix: remove unused variables from catalog and post views - catalog.tsx: Remove unused 'coloredFeed' variable assignment in useMemo - post.tsx: Remove unused 'useState' import The useMemo in catalog.tsx still executes its side effects (applying filter colors to the store) without needing to assign the return value. --- src/views/catalog/catalog.tsx | 5 ++--- src/views/post/post.tsx | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/views/catalog/catalog.tsx b/src/views/catalog/catalog.tsx index a8da37fb..efa9d511 100644 --- a/src/views/catalog/catalog.tsx +++ b/src/views/catalog/catalog.tsx @@ -461,8 +461,8 @@ const Catalog = () => { }; }, [clearMatchedFilters, subplebbitAddress]); - // Apply filter colors to posts when feed changes - const coloredFeed = useMemo(() => { + // Memoize filter color application to avoid redundant iterations + useMemo(() => { if (combinedFeed.length > 0 && filterItems.length > 0) { // Clear existing matched filters clearMatchedFilters(); @@ -482,7 +482,6 @@ const Catalog = () => { } }); } - return combinedFeed; }, [combinedFeed, filterItems, clearMatchedFilters]); return ( diff --git a/src/views/post/post.tsx b/src/views/post/post.tsx index 5fb7b3a1..c1ba138c 100644 --- a/src/views/post/post.tsx +++ b/src/views/post/post.tsx @@ -1,4 +1,4 @@ -import { useEffect, useState } from 'react'; +import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { Comment, Role, useComment, useEditedComment, useSubplebbit } from '@plebbit/plebbit-react-hooks'; import useSubplebbitsStore from '@plebbit/plebbit-react-hooks/dist/stores/subplebbits'; From 55c7e685d604a77f787db5a8eada62e8dd2981b6 Mon Sep 17 00:00:00 2001 From: plebeius Date: Thu, 16 Oct 2025 23:20:13 +0200 Subject: [PATCH 05/15] chore(package.json): upgrade plebbit-react-hooks Update plebbit-react-hooks to commit eecac4503b7099b2dde22505869f2a70d280e14f for latest improvements and features. --- package.json | 3 +- yarn.lock | 2530 ++++++++++++++++++++++++++------------------------ 2 files changed, 1316 insertions(+), 1217 deletions(-) diff --git a/package.json b/package.json index 4306a92f..1435e6a7 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "@capacitor/status-bar": "7.0.1", "@capawesome/capacitor-android-edge-to-edge-support": "7.2.2", "@floating-ui/react": "0.26.1", - "@plebbit/plebbit-react-hooks": "https://github.com/plebbit/plebbit-react-hooks.git#60177ea1bfc4df4bcde6a793656e01b11a85aa1d", + "@plebbit/plebbit-react-hooks": "https://github.com/plebbit/plebbit-react-hooks.git#eecac4503b7099b2dde22505869f2a70d280e14f", "@react-spring/web": "9.7.5", "@testing-library/jest-dom": "5.14.1", "@testing-library/react": "13.0.0", @@ -45,6 +45,7 @@ "remark-supersub": "1.0.0", "tcp-port-used": "1.0.2", "typescript": "5.1.6", + "uuid": "^13.0.0", "zustand": "4.4.3" }, "scripts": { diff --git a/yarn.lock b/yarn.lock index 1a52521b..2d7a0ece 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,18 +15,18 @@ uint8arrays "^5.1.0" "@achingbrain/nat-port-mapper@^4.0.2": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@achingbrain/nat-port-mapper/-/nat-port-mapper-4.0.4.tgz#01f1967d2f4e9a0e2147c5e265f4d2a5825f7272" - integrity sha512-mSdQUDdaZ4ElHDPiDqc9VGkx8kuwvLrtjIFuh3jIlpMPeZgJ7yMmLIueYE00yivAy4sMR9UDeAWjOaqbYWXYtQ== + version "4.0.5" + resolved "https://registry.yarnpkg.com/@achingbrain/nat-port-mapper/-/nat-port-mapper-4.0.5.tgz#a30d7c0c6e2a9dfaacc877e422ddfa237c190ae4" + integrity sha512-YAA4MW6jO6W7pmJaFzQ0AOLpu8iQClUkdT2HbfKLmtFjrpoZugnFj9wH8EONV9LxnIW+0W1J98ri+oApKyAKLQ== dependencies: "@achingbrain/ssdp" "^4.1.0" "@chainsafe/is-ip" "^2.0.2" - "@libp2p/logger" "^5.0.1" + "@libp2p/logger" "^6.0.5" abort-error "^1.0.0" err-code "^3.0.1" netmask "^2.0.2" p-defer "^4.0.0" - race-signal "^1.1.0" + race-signal "^2.0.0" xml2js "^0.6.0" "@achingbrain/ssdp@^4.1.0": @@ -45,17 +45,9 @@ integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== "@adraffy/ens-normalize@^1.10.1": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz#42cc67c5baa407ac25059fcd7d405cc5ecdb0c33" - integrity sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg== - -"@ampproject/remapping@^2.2.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" - integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.24" + version "1.11.1" + resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.11.1.tgz#6c2d657d4b2dfb37f8ea811dcb3e60843d4ac24a" + integrity sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ== "@apideck/better-ajv-errors@^0.3.1": version "0.3.6" @@ -81,25 +73,25 @@ picocolors "^1.1.1" "@babel/compat-data@^7.27.2", "@babel/compat-data@^7.27.7", "@babel/compat-data@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.0.tgz#9fc6fd58c2a6a15243cd13983224968392070790" - integrity sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw== + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.4.tgz#96fdf1af1b8859c8474ab39c295312bfb7c24b04" + integrity sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw== "@babel/core@^7.16.0", "@babel/core@^7.24.4", "@babel/core@^7.26.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.0.tgz#55dad808d5bf3445a108eefc88ea3fdf034749a4" - integrity sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ== + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.4.tgz#12a550b8794452df4c8b084f95003bce1742d496" + integrity sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA== dependencies: - "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.28.0" + "@babel/generator" "^7.28.3" "@babel/helper-compilation-targets" "^7.27.2" - "@babel/helper-module-transforms" "^7.27.3" - "@babel/helpers" "^7.27.6" - "@babel/parser" "^7.28.0" + "@babel/helper-module-transforms" "^7.28.3" + "@babel/helpers" "^7.28.4" + "@babel/parser" "^7.28.4" "@babel/template" "^7.27.2" - "@babel/traverse" "^7.28.0" - "@babel/types" "^7.28.0" + "@babel/traverse" "^7.28.4" + "@babel/types" "^7.28.4" + "@jridgewell/remapping" "^2.3.5" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -107,21 +99,21 @@ semver "^6.3.1" "@babel/eslint-parser@^7.16.3": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.28.0.tgz#c1b3fbba070f5bac32e3d02f244201add4afdd6e" - integrity sha512-N4ntErOlKvcbTt01rr5wj3y55xnIdx1ymrfIr8C2WnM1Y9glFgWaGDEULJIazOX3XM9NRzhfJ6zZnQ1sBNWU+w== + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.28.4.tgz#80dd86e0aeaae9704411a044db60e1ae6477d93f" + integrity sha512-Aa+yDiH87980jR6zvRfFuCR1+dLb00vBydhTL+zI992Rz/wQhSvuxjmOOuJOgO3XmakO6RykRGD2S1mq1AtgHA== dependencies: "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" eslint-visitor-keys "^2.1.0" semver "^6.3.1" -"@babel/generator@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.0.tgz#9cc2f7bd6eb054d77dc66c2664148a0c5118acd2" - integrity sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg== +"@babel/generator@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.3.tgz#9626c1741c650cbac39121694a0f2d7451b8ef3e" + integrity sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw== dependencies: - "@babel/parser" "^7.28.0" - "@babel/types" "^7.28.0" + "@babel/parser" "^7.28.3" + "@babel/types" "^7.28.2" "@jridgewell/gen-mapping" "^0.3.12" "@jridgewell/trace-mapping" "^0.3.28" jsesc "^3.0.2" @@ -144,17 +136,17 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz#5bee4262a6ea5ddc852d0806199eb17ca3de9281" - integrity sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.27.1", "@babel/helper-create-class-features-plugin@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz#3e747434ea007910c320c4d39a6b46f20f371d46" + integrity sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg== dependencies: - "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-annotate-as-pure" "^7.27.3" "@babel/helper-member-expression-to-functions" "^7.27.1" "@babel/helper-optimise-call-expression" "^7.27.1" "@babel/helper-replace-supers" "^7.27.1" "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - "@babel/traverse" "^7.27.1" + "@babel/traverse" "^7.28.3" semver "^6.3.1" "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.27.1": @@ -198,14 +190,14 @@ "@babel/traverse" "^7.27.1" "@babel/types" "^7.27.1" -"@babel/helper-module-transforms@^7.27.1", "@babel/helper-module-transforms@^7.27.3": - version "7.27.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz#db0bbcfba5802f9ef7870705a7ef8788508ede02" - integrity sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg== +"@babel/helper-module-transforms@^7.27.1", "@babel/helper-module-transforms@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz#a2b37d3da3b2344fe085dab234426f2b9a2fa5f6" + integrity sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw== dependencies: "@babel/helper-module-imports" "^7.27.1" "@babel/helper-validator-identifier" "^7.27.1" - "@babel/traverse" "^7.27.3" + "@babel/traverse" "^7.28.3" "@babel/helper-optimise-call-expression@^7.27.1": version "7.27.1" @@ -261,28 +253,28 @@ integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== "@babel/helper-wrap-function@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz#b88285009c31427af318d4fe37651cd62a142409" - integrity sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ== - dependencies: - "@babel/template" "^7.27.1" - "@babel/traverse" "^7.27.1" - "@babel/types" "^7.27.1" - -"@babel/helpers@^7.27.6": - version "7.28.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.2.tgz#80f0918fecbfebea9af856c419763230040ee850" - integrity sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw== + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz#fe4872092bc1438ffd0ce579e6f699609f9d0a7a" + integrity sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g== dependencies: "@babel/template" "^7.27.2" + "@babel/traverse" "^7.28.3" "@babel/types" "^7.28.2" -"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.24.4", "@babel/parser@^7.27.2", "@babel/parser@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.0.tgz#979829fbab51a29e13901e5a80713dbcb840825e" - integrity sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g== +"@babel/helpers@^7.28.4": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.4.tgz#fe07274742e95bdf7cf1443593eeb8926ab63827" + integrity sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w== dependencies: - "@babel/types" "^7.28.0" + "@babel/template" "^7.27.2" + "@babel/types" "^7.28.4" + +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.24.4", "@babel/parser@^7.27.2", "@babel/parser@^7.28.3", "@babel/parser@^7.28.4": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.4.tgz#da25d4643532890932cc03f7705fe19637e03fa8" + integrity sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg== + dependencies: + "@babel/types" "^7.28.4" "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.27.1": version "7.27.1" @@ -315,13 +307,13 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" "@babel/plugin-transform-optional-chaining" "^7.27.1" -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz#bb1c25af34d75115ce229a1de7fa44bf8f955670" - integrity sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz#373f6e2de0016f73caf8f27004f61d167743742a" + integrity sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw== dependencies: "@babel/helper-plugin-utils" "^7.27.1" - "@babel/traverse" "^7.27.1" + "@babel/traverse" "^7.28.3" "@babel/plugin-proposal-class-properties@^7.16.0": version "7.18.6" @@ -499,9 +491,9 @@ "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-block-scoping@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.0.tgz#e7c50cbacc18034f210b93defa89638666099451" - integrity sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q== + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.4.tgz#e19ac4ddb8b7858bac1fd5c1be98a994d9726410" + integrity sha512-1yxmvN0MJHOhPVmAsmoW5liWwoILobu/d/ShymZmj867bAdxGbehIrew1DuLpw2Ukv+qDSSPQdYW1dLNE7t11A== dependencies: "@babel/helper-plugin-utils" "^7.27.1" @@ -513,25 +505,25 @@ "@babel/helper-create-class-features-plugin" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-class-static-block@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz#7e920d5625b25bbccd3061aefbcc05805ed56ce4" - integrity sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA== +"@babel/plugin-transform-class-static-block@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz#d1b8e69b54c9993bc558203e1f49bfc979bfd852" + integrity sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-create-class-features-plugin" "^7.28.3" "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-classes@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.0.tgz#12fa46cffc32a6e084011b650539e880add8a0f8" - integrity sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA== +"@babel/plugin-transform-classes@^7.28.3": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz#75d66175486788c56728a73424d67cbc7473495c" + integrity sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA== dependencies: "@babel/helper-annotate-as-pure" "^7.27.3" "@babel/helper-compilation-targets" "^7.27.2" "@babel/helper-globals" "^7.28.0" "@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-replace-supers" "^7.27.1" - "@babel/traverse" "^7.28.0" + "@babel/traverse" "^7.28.4" "@babel/plugin-transform-computed-properties@^7.27.1": version "7.27.1" @@ -718,15 +710,15 @@ "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-object-rest-spread@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.0.tgz#d23021857ffd7cd809f54d624299b8086402ed8d" - integrity sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA== + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz#9ee1ceca80b3e6c4bac9247b2149e36958f7f98d" + integrity sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew== dependencies: "@babel/helper-compilation-targets" "^7.27.2" "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-destructuring" "^7.28.0" "@babel/plugin-transform-parameters" "^7.27.7" - "@babel/traverse" "^7.28.0" + "@babel/traverse" "^7.28.4" "@babel/plugin-transform-object-super@^7.27.1": version "7.27.1" @@ -829,10 +821,10 @@ "@babel/helper-annotate-as-pure" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-regenerator@^7.28.0": - version "7.28.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.1.tgz#bde80603442ff4bb4e910bc8b35485295d556ab1" - integrity sha512-P0QiV/taaa3kXpLY+sXla5zec4E+4t4Aqc9ggHlfZ7a2cp8/x/Gv08jfwEtn9gnnYIMvHx6aoOZ8XJL8eU71Dg== +"@babel/plugin-transform-regenerator@^7.28.3": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz#9d3fa3bebb48ddd0091ce5729139cd99c67cea51" + integrity sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA== dependencies: "@babel/helper-plugin-utils" "^7.27.1" @@ -852,9 +844,9 @@ "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-runtime@^7.16.4": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.0.tgz#462e79008cc7bdac03e4c5e1765b9de2bcd31c21" - integrity sha512-dGopk9nZrtCs2+nfIem25UuHyt5moSJamArzIoh9/vezUQPmYDOzjaHDCkAzuGJibCIkPup8rMT2+wYB6S73cA== + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.3.tgz#f5990a1b2d2bde950ed493915e0719841c8d0eaa" + integrity sha512-Y6ab1kGqZ0u42Zv/4a7l0l72n9DKP/MKoKWaUSBylrhNZO2prYuqFOLbn5aW5SIFXwSH93yfjbgllL8lxuGKLg== dependencies: "@babel/helper-module-imports" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1" @@ -942,9 +934,9 @@ "@babel/helper-plugin-utils" "^7.27.1" "@babel/preset-env@^7.11.0", "@babel/preset-env@^7.16.4": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.28.0.tgz#d23a6bc17b43227d11db77081a0779c706b5569c" - integrity sha512-VmaxeGOwuDqzLl5JUkIRM1X2Qu2uKGxHEQWh+cvvbl7JuJRgKGJSfsEF/bUaxFhJl/XAyxBe7q7qSuTbKFuCyg== + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.28.3.tgz#2b18d9aff9e69643789057ae4b942b1654f88187" + integrity sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg== dependencies: "@babel/compat-data" "^7.28.0" "@babel/helper-compilation-targets" "^7.27.2" @@ -954,7 +946,7 @@ "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.27.1" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.27.1" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.27.1" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.27.1" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.28.3" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-import-assertions" "^7.27.1" "@babel/plugin-syntax-import-attributes" "^7.27.1" @@ -965,8 +957,8 @@ "@babel/plugin-transform-block-scoped-functions" "^7.27.1" "@babel/plugin-transform-block-scoping" "^7.28.0" "@babel/plugin-transform-class-properties" "^7.27.1" - "@babel/plugin-transform-class-static-block" "^7.27.1" - "@babel/plugin-transform-classes" "^7.28.0" + "@babel/plugin-transform-class-static-block" "^7.28.3" + "@babel/plugin-transform-classes" "^7.28.3" "@babel/plugin-transform-computed-properties" "^7.27.1" "@babel/plugin-transform-destructuring" "^7.28.0" "@babel/plugin-transform-dotall-regex" "^7.27.1" @@ -998,7 +990,7 @@ "@babel/plugin-transform-private-methods" "^7.27.1" "@babel/plugin-transform-private-property-in-object" "^7.27.1" "@babel/plugin-transform-property-literals" "^7.27.1" - "@babel/plugin-transform-regenerator" "^7.28.0" + "@babel/plugin-transform-regenerator" "^7.28.3" "@babel/plugin-transform-regexp-modifiers" "^7.27.1" "@babel/plugin-transform-reserved-words" "^7.27.1" "@babel/plugin-transform-shorthand-properties" "^7.27.1" @@ -1050,16 +1042,16 @@ "@babel/plugin-transform-typescript" "^7.27.1" "@babel/runtime-corejs3@^7.10.2": - version "7.28.2" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.28.2.tgz#1382be38259226003575d9597a57f1eb467de2e7" - integrity sha512-FVFaVs2/dZgD3Y9ZD+AKNKjyGKzwu0C54laAXWUXgLcVXcCX6YZ6GhK2cp7FogSN2OA0Fu+QT8dP3FUdo9ShSQ== + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.28.4.tgz#c25be39c7997ce2f130d70b9baecb8ed94df93fa" + integrity sha512-h7iEYiW4HebClDEhtvFObtPmIvrd1SSfpI9EhOeKk4CtIK/ngBWFpuhCzhdmRKtg71ylcue+9I6dv54XYO1epQ== dependencies: core-js-pure "^3.43.0" "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.19.4", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.25.0", "@babel/runtime@^7.9.2": - version "7.28.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.2.tgz#2ae5a9d51cc583bd1f5673b3bb70d6d819682473" - integrity sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA== + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326" + integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== "@babel/template@^7.27.1", "@babel/template@^7.27.2": version "7.27.2" @@ -1070,23 +1062,23 @@ "@babel/parser" "^7.27.2" "@babel/types" "^7.27.1" -"@babel/traverse@^7.27.1", "@babel/traverse@^7.27.3", "@babel/traverse@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.0.tgz#518aa113359b062042379e333db18380b537e34b" - integrity sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg== +"@babel/traverse@^7.27.1", "@babel/traverse@^7.28.0", "@babel/traverse@^7.28.3", "@babel/traverse@^7.28.4": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.4.tgz#8d456101b96ab175d487249f60680221692b958b" + integrity sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ== dependencies: "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.28.0" + "@babel/generator" "^7.28.3" "@babel/helper-globals" "^7.28.0" - "@babel/parser" "^7.28.0" + "@babel/parser" "^7.28.4" "@babel/template" "^7.27.2" - "@babel/types" "^7.28.0" + "@babel/types" "^7.28.4" debug "^4.3.1" -"@babel/types@^7.0.0", "@babel/types@^7.19.0", "@babel/types@^7.20.7", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.28.0", "@babel/types@^7.28.2", "@babel/types@^7.4.4": - version "7.28.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.2.tgz#da9db0856a9a88e0a13b019881d7513588cf712b" - integrity sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ== +"@babel/types@^7.0.0", "@babel/types@^7.19.0", "@babel/types@^7.20.7", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.28.2", "@babel/types@^7.28.4", "@babel/types@^7.4.4": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.4.tgz#0a4e618f4c60a7cd6c11cb2d48060e4dbe38ac3a" + integrity sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q== dependencies: "@babel/helper-string-parser" "^7.27.1" "@babel/helper-validator-identifier" "^7.27.1" @@ -1201,9 +1193,9 @@ uint8arrays "^5.0.1" "@chainsafe/libp2p-noise@^16.0.1", "@chainsafe/libp2p-noise@^16.1.3": - version "16.1.4" - resolved "https://registry.yarnpkg.com/@chainsafe/libp2p-noise/-/libp2p-noise-16.1.4.tgz#6788c1ad3e2567f37189e552fc77e67c57f88505" - integrity sha512-f4FlyRVndcs4PoioOIZWrFc6wfO/mrAj7H63o0+eA0O2xhcoRkxHh6zna4W+WtScaF/Ua/UULgiNGuKNpLvLlQ== + version "16.1.5" + resolved "https://registry.yarnpkg.com/@chainsafe/libp2p-noise/-/libp2p-noise-16.1.5.tgz#f846fcd9ca94d75450fbaba4d0b9ccbbb3473b68" + integrity sha512-yac0bknwfuYdXXOAFGVL4fYR0de0p1Uk7W0gIkuxlj8JSqhkHr+kEt3958PfnfmX880QJAIogsh/ZupFjg0uJA== dependencies: "@chainsafe/as-chacha20poly1305" "^0.1.0" "@chainsafe/as-sha256" "^1.0.0" @@ -1244,28 +1236,28 @@ dependencies: "@chainsafe/is-ip" "^2.0.1" -"@commitlint/config-validator@^19.8.1": - version "19.8.1" - resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-19.8.1.tgz#29e9bb1360fa41b9439b23d8e25deaaf097306b5" - integrity sha512-0jvJ4u+eqGPBIzzSdqKNX1rvdbSU1lPNYlfQQRIFnBgLy26BtC0cFnr7c/AyuzExMxWsMOte6MkTi9I3SQ3iGQ== +"@commitlint/config-validator@^20.0.0": + version "20.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-20.0.0.tgz#d97d83be722a04be2038e54bdd3ec7d11efec557" + integrity sha512-BeyLMaRIJDdroJuYM2EGhDMGwVBMZna9UiIqV9hxj+J551Ctc6yoGuGSmghOy/qPhBSuhA6oMtbEiTmxECafsg== dependencies: - "@commitlint/types" "^19.8.1" + "@commitlint/types" "^20.0.0" ajv "^8.11.0" -"@commitlint/execute-rule@^19.8.1": - version "19.8.1" - resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-19.8.1.tgz#53000363b737773e2d25e97c20f15eaa78742067" - integrity sha512-YfJyIqIKWI64Mgvn/sE7FXvVMQER/Cd+s3hZke6cI1xgNT/f6ZAz5heND0QtffH+KbcqAwXDEE1/5niYayYaQA== +"@commitlint/execute-rule@^20.0.0": + version "20.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-20.0.0.tgz#013628e09179cf2d3c977e1cf37937b5cb869af8" + integrity sha512-xyCoOShoPuPL44gVa+5EdZsBVao/pNzpQhkzq3RdtlFdKZtjWcLlUFQHSWBuhk5utKYykeJPSz2i8ABHQA+ZZw== "@commitlint/load@>6.1.1": - version "19.8.1" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-19.8.1.tgz#b997b1f65a961bf0a47189f15f6dc8786ceb4576" - integrity sha512-9V99EKG3u7z+FEoe4ikgq7YGRCSukAcvmKQuTtUyiYPnOd9a2/H9Ak1J9nJA1HChRQp9OA/sIKPugGS+FK/k1A== + version "20.1.0" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-20.1.0.tgz#8eb7aefbfb066db903d1a89c4727093a57fcffbc" + integrity sha512-qo9ER0XiAimATQR5QhvvzePfeDfApi/AFlC1G+YN+ZAY8/Ua6IRrDrxRvQAr+YXUKAxUsTDSp9KXeXLBPsNRWg== dependencies: - "@commitlint/config-validator" "^19.8.1" - "@commitlint/execute-rule" "^19.8.1" - "@commitlint/resolve-extends" "^19.8.1" - "@commitlint/types" "^19.8.1" + "@commitlint/config-validator" "^20.0.0" + "@commitlint/execute-rule" "^20.0.0" + "@commitlint/resolve-extends" "^20.1.0" + "@commitlint/types" "^20.0.0" chalk "^5.3.0" cosmiconfig "^9.0.0" cosmiconfig-typescript-loader "^6.1.0" @@ -1273,22 +1265,22 @@ lodash.merge "^4.6.2" lodash.uniq "^4.5.0" -"@commitlint/resolve-extends@^19.8.1": - version "19.8.1" - resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-19.8.1.tgz#a44bb4c22e3e7d407cc9a3758fcf58f5c360b694" - integrity sha512-GM0mAhFk49I+T/5UCYns5ayGStkTt4XFFrjjf0L4S26xoMTSkdCf9ZRO8en1kuopC4isDFuEm7ZOm/WRVeElVg== +"@commitlint/resolve-extends@^20.1.0": + version "20.1.0" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-20.1.0.tgz#bfccbd7772ffa49f99f3e0f828cf8612667b2e8e" + integrity sha512-cxKXQrqHjZT3o+XPdqDCwOWVFQiae++uwd9dUBC7f2MdV58ons3uUvASdW7m55eat5sRiQ6xUHyMWMRm6atZWw== dependencies: - "@commitlint/config-validator" "^19.8.1" - "@commitlint/types" "^19.8.1" + "@commitlint/config-validator" "^20.0.0" + "@commitlint/types" "^20.0.0" global-directory "^4.0.1" import-meta-resolve "^4.0.0" lodash.mergewith "^4.6.2" resolve-from "^5.0.0" -"@commitlint/types@^19.8.1": - version "19.8.1" - resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-19.8.1.tgz#7971fbd56b0cfb31692a4e1941b74ac8217c44e5" - integrity sha512-/yCrWGCoA1SVKOks25EGadP9Pnj0oAIHGpl2wH2M2Y46dPM2ueb8wyCVOD7O3WCTkaJ0IkKvzhl1JY7+uCT2Dw== +"@commitlint/types@^20.0.0": + version "20.0.0" + resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-20.0.0.tgz#70edef6e1c1d3aaca15e1e87242d8d256beebe67" + integrity sha512-bVUNBqG6aznYcYjTjnc3+Cat/iBgbgpflxbIBTnsHTX0YVpnmINPEkSRWymT2Q8aSH3Y7aKnEbunilkYe8TybA== dependencies: "@types/conventional-commits-parser" "^5.0.0" chalk "^5.3.0" @@ -1325,9 +1317,9 @@ optionalDependencies: global-agent "^3.0.0" -"@electron/node-gyp@git+https://github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2": +"@electron/node-gyp@https://github.com/electron/node-gyp#06b29aafb7708acef8b3669835c8a7857ebc92d2": version "10.2.0-electron.1" - resolved "git+https://github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2" + resolved "https://github.com/electron/node-gyp#06b29aafb7708acef8b3669835c8a7857ebc92d2" dependencies: env-paths "^2.2.0" exponential-backoff "^3.1.1" @@ -1399,140 +1391,140 @@ resolved "https://registry.yarnpkg.com/@enhances/with-resolvers/-/with-resolvers-0.0.5.tgz#0a776e37670af2c5c7b9d6ce295992d368966424" integrity sha512-buJ33mixZb60qp8EGQhCccZ/rU8Lcb4BVHK8QOs7tLkzqwuT3fimPT9wuxL631teNxx1DwDGkgen9KsjjHW0xQ== -"@esbuild/aix-ppc64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.8.tgz#a1414903bb38027382f85f03dda6065056757727" - integrity sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA== +"@esbuild/aix-ppc64@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.11.tgz#2ae33300598132cc4cf580dbbb28d30fed3c5c49" + integrity sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg== -"@esbuild/android-arm64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.8.tgz#c859994089e9767224269884061f89dae6fb51c6" - integrity sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w== +"@esbuild/android-arm64@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.11.tgz#927708b3db5d739d6cb7709136924cc81bec9b03" + integrity sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ== -"@esbuild/android-arm@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.8.tgz#96a8f2ca91c6cd29ea90b1af79d83761c8ba0059" - integrity sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw== +"@esbuild/android-arm@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.11.tgz#571f94e7f4068957ec4c2cfb907deae3d01b55ae" + integrity sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg== -"@esbuild/android-x64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.8.tgz#a3a626c4fec4a024a9fa8c7679c39996e92916f0" - integrity sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA== +"@esbuild/android-x64@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.11.tgz#8a3bf5cae6c560c7ececa3150b2bde76e0fb81e6" + integrity sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g== -"@esbuild/darwin-arm64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.8.tgz#a5e1252ca2983d566af1c0ea39aded65736fc66d" - integrity sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw== +"@esbuild/darwin-arm64@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.11.tgz#0a678c4ac4bf8717e67481e1a797e6c152f93c84" + integrity sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w== -"@esbuild/darwin-x64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.8.tgz#5271b0df2bb12ce8df886704bfdd1c7cc01385d2" - integrity sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg== +"@esbuild/darwin-x64@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.11.tgz#70f5e925a30c8309f1294d407a5e5e002e0315fe" + integrity sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ== -"@esbuild/freebsd-arm64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.8.tgz#d0a0e7fdf19733b8bb1566b81df1aa0bb7e46ada" - integrity sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA== +"@esbuild/freebsd-arm64@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.11.tgz#4ec1db687c5b2b78b44148025da9632397553e8a" + integrity sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA== -"@esbuild/freebsd-x64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.8.tgz#2de8b2e0899d08f1cb1ef3128e159616e7e85343" - integrity sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw== +"@esbuild/freebsd-x64@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.11.tgz#4c81abd1b142f1e9acfef8c5153d438ca53f44bb" + integrity sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw== -"@esbuild/linux-arm64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.8.tgz#a4209efadc0c2975716458484a4e90c237c48ae9" - integrity sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w== +"@esbuild/linux-arm64@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.11.tgz#69517a111acfc2b93aa0fb5eaeb834c0202ccda5" + integrity sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA== -"@esbuild/linux-arm@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.8.tgz#ccd9e291c24cd8d9142d819d463e2e7200d25b19" - integrity sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg== +"@esbuild/linux-arm@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.11.tgz#58dac26eae2dba0fac5405052b9002dac088d38f" + integrity sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw== -"@esbuild/linux-ia32@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.8.tgz#006ad1536d0c2b28fb3a1cf0b53bcb85aaf92c4d" - integrity sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg== +"@esbuild/linux-ia32@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.11.tgz#b89d4efe9bdad46ba944f0f3b8ddd40834268c2b" + integrity sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw== -"@esbuild/linux-loong64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.8.tgz#127b3fbfb2c2e08b1397e985932f718f09a8f5c4" - integrity sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ== +"@esbuild/linux-loong64@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.11.tgz#11f603cb60ad14392c3f5c94d64b3cc8b630fbeb" + integrity sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw== -"@esbuild/linux-mips64el@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.8.tgz#837d1449517791e3fa7d82675a2d06d9f56cb340" - integrity sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw== +"@esbuild/linux-mips64el@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.11.tgz#b7d447ff0676b8ab247d69dac40a5cf08e5eeaf5" + integrity sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ== -"@esbuild/linux-ppc64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.8.tgz#aa2e3bd93ab8df084212f1895ca4b03c42d9e0fe" - integrity sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ== +"@esbuild/linux-ppc64@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.11.tgz#b3a28ed7cc252a61b07ff7c8fd8a984ffd3a2f74" + integrity sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw== -"@esbuild/linux-riscv64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.8.tgz#a340620e31093fef72767dd28ab04214b3442083" - integrity sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg== +"@esbuild/linux-riscv64@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.11.tgz#ce75b08f7d871a75edcf4d2125f50b21dc9dc273" + integrity sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww== -"@esbuild/linux-s390x@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.8.tgz#ddfed266c8c13f5efb3105a0cd47f6dcd0e79e71" - integrity sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg== +"@esbuild/linux-s390x@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.11.tgz#cd08f6c73b6b6ff9ccdaabbd3ff6ad3dca99c263" + integrity sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw== -"@esbuild/linux-x64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.8.tgz#9a4f78c75c051e8c060183ebb39a269ba936a2ac" - integrity sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ== +"@esbuild/linux-x64@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.11.tgz#3c3718af31a95d8946ebd3c32bb1e699bdf74910" + integrity sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ== -"@esbuild/netbsd-arm64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.8.tgz#902c80e1d678047926387230bc037e63e00697d0" - integrity sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw== +"@esbuild/netbsd-arm64@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.11.tgz#b4c767082401e3a4e8595fe53c47cd7f097c8077" + integrity sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg== -"@esbuild/netbsd-x64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.8.tgz#2d9eb4692add2681ff05a14ce99de54fbed7079c" - integrity sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg== +"@esbuild/netbsd-x64@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.11.tgz#f2a930458ed2941d1f11ebc34b9c7d61f7a4d034" + integrity sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A== -"@esbuild/openbsd-arm64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.8.tgz#89c3b998c6de739db38ab7fb71a8a76b3fa84a45" - integrity sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ== +"@esbuild/openbsd-arm64@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.11.tgz#b4ae93c75aec48bc1e8a0154957a05f0641f2dad" + integrity sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg== -"@esbuild/openbsd-x64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.8.tgz#2f01615cf472b0e48c077045cfd96b5c149365cc" - integrity sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ== +"@esbuild/openbsd-x64@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.11.tgz#b42863959c8dcf9b01581522e40012d2c70045e2" + integrity sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw== -"@esbuild/openharmony-arm64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.8.tgz#a201f720cd2c3ebf9a6033fcc3feb069a54b509a" - integrity sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg== +"@esbuild/openharmony-arm64@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.11.tgz#b2e717141c8fdf6bddd4010f0912e6b39e1640f1" + integrity sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ== -"@esbuild/sunos-x64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.8.tgz#07046c977985a3334667f19e6ab3a01a80862afb" - integrity sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w== +"@esbuild/sunos-x64@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.11.tgz#9fbea1febe8778927804828883ec0f6dd80eb244" + integrity sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA== -"@esbuild/win32-arm64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.8.tgz#4a5470caf0d16127c05d4833d4934213c69392d1" - integrity sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ== +"@esbuild/win32-arm64@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.11.tgz#501539cedb24468336073383989a7323005a8935" + integrity sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q== -"@esbuild/win32-ia32@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.8.tgz#3de3e8470b7b328d99dbc3e9ec1eace207e5bbc4" - integrity sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg== +"@esbuild/win32-ia32@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.11.tgz#8ac7229aa82cef8f16ffb58f1176a973a7a15343" + integrity sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA== -"@esbuild/win32-x64@0.25.8": - version "0.25.8" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.8.tgz#610d7ea539d2fcdbe39237b5cc175eb2c4451f9c" - integrity sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw== +"@esbuild/win32-x64@0.25.11": + version "0.25.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.11.tgz#5ecda6f3fe138b7e456f4e429edde33c823f392f" + integrity sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": - version "4.7.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz#607084630c6c033992a082de6e6fbc1a8b52175a" - integrity sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw== + version "4.9.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz#7308df158e064f0dd8b8fdb58aa14fa2a7f913b3" + integrity sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g== dependencies: eslint-visitor-keys "^3.4.3" @@ -2160,27 +2152,27 @@ "@ethersproject/properties" "^5.8.0" "@ethersproject/strings" "^5.8.0" -"@floating-ui/core@^1.7.2": - version "1.7.2" - resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.7.2.tgz#3d1c35263950b314b6d5a72c8bfb9e3c1551aefd" - integrity sha512-wNB5ooIKHQc+Kui96jE/n69rHFWAVoxn5CAzL1Xdd8FG03cgY3MLO+GF9U3W737fYDSgPWA6MReKhBQBop6Pcw== +"@floating-ui/core@^1.7.3": + version "1.7.3" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.7.3.tgz#462d722f001e23e46d86fd2bd0d21b7693ccb8b7" + integrity sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w== dependencies: "@floating-ui/utils" "^0.2.10" -"@floating-ui/dom@^1.7.2": - version "1.7.2" - resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.7.2.tgz#3540b051cf5ce0d4f4db5fb2507a76e8ea5b4a45" - integrity sha512-7cfaOQuCS27HD7DX+6ib2OrnW+b4ZBwDNnCcT0uTyidcmyWb03FnQqJybDBoCnpdxwBSfA94UAYlRCt7mV+TbA== +"@floating-ui/dom@^1.7.4": + version "1.7.4" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.7.4.tgz#ee667549998745c9c3e3e84683b909c31d6c9a77" + integrity sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA== dependencies: - "@floating-ui/core" "^1.7.2" + "@floating-ui/core" "^1.7.3" "@floating-ui/utils" "^0.2.10" "@floating-ui/react-dom@^2.0.2": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.1.4.tgz#a0689be8978352fff2be2dfdd718cf668c488ec3" - integrity sha512-JbbpPhp38UmXDDAu60RJmbeme37Jbgsm7NrHGgzYYFKmblzRUh6Pa641dII6LsjwF4XlScDrde2UAzDo/b9KPw== + version "2.1.6" + resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.1.6.tgz#189f681043c1400561f62972f461b93f01bf2231" + integrity sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw== dependencies: - "@floating-ui/dom" "^1.7.2" + "@floating-ui/dom" "^1.7.4" "@floating-ui/react@0.26.1": version "0.26.1" @@ -2218,10 +2210,10 @@ dependencies: "@hapi/hoek" "^9.0.0" -"@helia/bitswap@^2.1.2", "@helia/bitswap@^2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@helia/bitswap/-/bitswap-2.1.3.tgz#8621bedb69aabd30fd72e91d43e66a8aa573197e" - integrity sha512-nK8clINmgKlD9FTh1hTWPxceitt7vZqKpZO8Q+OzcmU6HFC62VXWItxbaEAireJ7vnNRDhYeaLxyQ+94EfUS/g== +"@helia/bitswap@^2.1.3", "@helia/bitswap@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@helia/bitswap/-/bitswap-2.2.0.tgz#e60334e390fcefa33f39547a8a14296534d51a4d" + integrity sha512-fYHjXM8SZpgRkGRM7qq8VVpBsrSLHlRGTLUEesfKZ+wYBYHZaqpn0mT9KbdLZowLrooz0qaUUiF6OIZBNmArcw== dependencies: "@helia/interface" "^5.4.0" "@helia/utils" "^1.4.0" @@ -2247,25 +2239,7 @@ uint8arraylist "^2.4.8" uint8arrays "^5.1.0" -"@helia/block-brokers@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@helia/block-brokers/-/block-brokers-4.2.2.tgz#7cc202bf39a800f104a7c2cfefed64202dc16a61" - integrity sha512-2Iq5basphEn8RcRK+wMiSfy5EJWgjI69wKH8CB66dSyaiduV7etP8E69eP5oGv43ShPycel4Xnmb2mNl6WWp5w== - dependencies: - "@helia/bitswap" "^2.1.2" - "@helia/interface" "^5.3.2" - "@helia/utils" "^1.3.2" - "@libp2p/interface" "^2.2.1" - "@libp2p/utils" "^6.2.1" - "@multiformats/multiaddr" "^12.3.3" - "@multiformats/multiaddr-matcher" "^1.6.0" - "@multiformats/multiaddr-to-uri" "^11.0.0" - interface-blockstore "^5.3.1" - interface-store "^6.0.2" - multiformats "^13.3.1" - progress-events "^1.0.1" - -"@helia/block-brokers@^4.2.2": +"@helia/block-brokers@4.2.3": version "4.2.3" resolved "https://registry.yarnpkg.com/@helia/block-brokers/-/block-brokers-4.2.3.tgz#8186c059b664685ac88e7f49cb9ff0e4dc8608d2" integrity sha512-Bv/CVJka2/XkD8SfnQloD6uQCu2hPHw57dEGPivTzyLR0s/TKC1HAP2nwaOcn64Bb29BQ18QK48/6agnVeEBaA== @@ -2284,6 +2258,25 @@ progress-events "^1.0.1" uint8arraylist "^2.4.8" +"@helia/block-brokers@^4.2.3": + version "4.2.4" + resolved "https://registry.yarnpkg.com/@helia/block-brokers/-/block-brokers-4.2.4.tgz#247fd8911171b007e5172b1a79b3ccab591c516f" + integrity sha512-Xz7JyRIprbldi5bxfvuj5xTDijkfndgLPKoK/AUVeFOBD0n04Cb6RzqYGVQN6of8a6hfL6tD0fO4RVUFh/Jl6A== + dependencies: + "@helia/bitswap" "^2.2.0" + "@helia/interface" "^5.4.0" + "@helia/utils" "^1.4.0" + "@libp2p/interface" "^2.2.1" + "@libp2p/utils" "^6.2.1" + "@multiformats/multiaddr" "^12.3.3" + "@multiformats/multiaddr-matcher" "^2.0.1" + "@multiformats/multiaddr-to-uri" "^11.0.0" + interface-blockstore "^5.3.1" + interface-store "^6.0.2" + multiformats "^13.3.1" + progress-events "^1.0.1" + uint8arraylist "^2.4.8" + "@helia/delegated-routing-v1-http-api-client@4.2.5", "@helia/delegated-routing-v1-http-api-client@^4.2.1": version "4.2.5" resolved "https://registry.yarnpkg.com/@helia/delegated-routing-v1-http-api-client/-/delegated-routing-v1-http-api-client-4.2.5.tgz#a52c229b681ff8f66368306a20f027eb62a4648d" @@ -2304,7 +2297,7 @@ p-queue "^8.0.1" uint8arrays "^5.1.0" -"@helia/interface@^5.3.2", "@helia/interface@^5.4.0": +"@helia/interface@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@helia/interface/-/interface-5.4.0.tgz#c3684c15a7082e0c8b079b2c993e75a0c34ee4e0" integrity sha512-UfY/Xa2qYJ6Bh4XUUSgwU3s2VY69cKwRznkS9Ab0C3ciU+dUeyz3IPIn5qqRGVfNVM9SD2wISXmwA7FJvhdRAQ== @@ -2318,12 +2311,12 @@ multiformats "^13.3.1" progress-events "^1.0.1" -"@helia/ipns@8.2.3": - version "8.2.3" - resolved "https://registry.yarnpkg.com/@helia/ipns/-/ipns-8.2.3.tgz#d66eb6e9211b910ac97354d2b407c0c811b81f47" - integrity sha512-BdoJ7W9kHGpwWrsd8hhStjZJ04Jcl8IrIrQq0LFynleN/TzCf2bTyVrWzvM/dBVzqRCndka7eeLwcPXS5mskWg== +"@helia/ipns@8.2.4": + version "8.2.4" + resolved "https://registry.yarnpkg.com/@helia/ipns/-/ipns-8.2.4.tgz#290fded2be3aa60a0db2d9758deda4e96b2d514d" + integrity sha512-Jdx6yQvSDpV2IRQR06TlBjW5yOPxj820eoNK44P+kU/xU+dwREs8JJAj455SsDboj2XV9YnA9OQJVhu7SmtpBw== dependencies: - "@helia/interface" "^5.3.2" + "@helia/interface" "^5.4.0" "@libp2p/interface" "^2.2.1" "@libp2p/kad-dht" "^15.0.2" "@libp2p/logger" "^5.1.4" @@ -2335,7 +2328,7 @@ progress-events "^1.0.1" uint8arrays "^5.1.0" -"@helia/routers@^3.1.2": +"@helia/routers@^3.1.3": version "3.1.3" resolved "https://registry.yarnpkg.com/@helia/routers/-/routers-3.1.3.tgz#076e5a49226e82a927bbd8548225c71c0a9918e8" integrity sha512-BPbzN3WCe6EF3yXjeORJbbb5hZjv0PKaJri1sSPHRZX6sKUCvRzwAc0AkQKUMHeMzTLrrAcl0yAz5x1r8z3Ynw== @@ -2351,12 +2344,12 @@ multiformats "^13.3.1" uint8arrays "^5.1.0" -"@helia/unixfs@5.0.3": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@helia/unixfs/-/unixfs-5.0.3.tgz#c9fd55207515ee2b118a16d7af608e299b72c7c0" - integrity sha512-Z9R1l2Dso4CtgGqavwko2nEnNSSoOB8uWnkmmOE7C47uzQ2W/d5YIDmgPkptrSkT7h/OPH2O1ctKgLqsSLIAPQ== +"@helia/unixfs@5.0.4": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@helia/unixfs/-/unixfs-5.0.4.tgz#b9aa954ba6444fa70304695ed698586d42991591" + integrity sha512-/s+S6xcXk750EyH2z5zq18m+Uw0Ngdu53OSiaDGvSdJi0zpkSSrspO0CDzn+d7SGD5G7HESzOMa32tcRtAYrGQ== dependencies: - "@helia/interface" "^5.3.2" + "@helia/interface" "^5.4.0" "@ipld/dag-pb" "^4.1.3" "@libp2p/interface" "^2.2.1" "@libp2p/logger" "^5.1.4" @@ -2377,7 +2370,7 @@ sparse-array "^1.3.2" uint8arrays "^5.1.0" -"@helia/utils@^1.3.2", "@helia/utils@^1.4.0": +"@helia/utils@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@helia/utils/-/utils-1.4.0.tgz#bbcab48b7f5f68ed77c37bcb6d1bf8744e8c65f8" integrity sha512-xXwhQbfSQEC5uHd6HVwdGXksZayy5xnYB5aOk0TU1fDnwbaeJz46o/GdWcxkTxnbfGyxqs9hyK5NqHw1B58yAw== @@ -2518,9 +2511,9 @@ wrap-ansi "^7.0.0" "@ipld/dag-cbor@^9.0.0", "@ipld/dag-cbor@^9.2.2", "@ipld/dag-cbor@^9.2.4": - version "9.2.4" - resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-9.2.4.tgz#64aba7060836af081debe87610cd1c915997ba6a" - integrity sha512-GbDWYl2fdJgkYtIJN0HY9oO0o50d1nB4EQb7uYWKUd2ztxCjxiEW3PjwGG0nqUpN1G4Cug6LX8NzbA7fKT+zfA== + version "9.2.5" + resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-9.2.5.tgz#4f792380966190e7d5a82a8d9ba9c7a8589eb1b0" + integrity sha512-84wSr4jv30biui7endhobYhXBQzQE4c/wdoWlFrKcfiwH+ofaPg8fwsM8okX9cOzkkrsAsNdDyH3ou+kiLquwQ== dependencies: cborg "^4.0.0" multiformats "^13.1.0" @@ -2598,12 +2591,12 @@ resolved "https://registry.yarnpkg.com/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz#0ededeae4d071f5c8ffe3678d15f3a1be09156be" integrity sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw== -"@jest/expect-utils@30.0.5": - version "30.0.5" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-30.0.5.tgz#9d42e4b8bc80367db30abc6c42b2cb14073f66fc" - integrity sha512-F3lmTT7CXWYywoVUGTCmom0vXq3HTTkaZyTAzIy+bXSBizB7o5qzlC9VCtq0arOa8GqmNsbg/cE9C6HLn7Szew== +"@jest/expect-utils@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-30.2.0.tgz#4f95413d4748454fdb17404bf1141827d15e6011" + integrity sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA== dependencies: - "@jest/get-type" "30.0.1" + "@jest/get-type" "30.1.0" "@jest/expect-utils@^29.7.0": version "29.7.0" @@ -2612,10 +2605,10 @@ dependencies: jest-get-type "^29.6.3" -"@jest/get-type@30.0.1": - version "30.0.1" - resolved "https://registry.yarnpkg.com/@jest/get-type/-/get-type-30.0.1.tgz#0d32f1bbfba511948ad247ab01b9007724fc9f52" - integrity sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw== +"@jest/get-type@30.1.0": + version "30.1.0" + resolved "https://registry.yarnpkg.com/@jest/get-type/-/get-type-30.1.0.tgz#4fcb4dc2ebcf0811be1c04fd1cb79c2dba431cbc" + integrity sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA== "@jest/pattern@30.0.1": version "30.0.1" @@ -2639,10 +2632,10 @@ dependencies: "@sinclair/typebox" "^0.27.8" -"@jest/types@30.0.5": - version "30.0.5" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-30.0.5.tgz#29a33a4c036e3904f1cfd94f6fe77f89d2e1cc05" - integrity sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ== +"@jest/types@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-30.2.0.tgz#1c678a7924b8f59eafd4c77d56b6d0ba976d62b8" + integrity sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg== dependencies: "@jest/pattern" "30.0.1" "@jest/schemas" "30.0.5" @@ -2665,35 +2658,43 @@ chalk "^4.0.0" "@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": - version "0.3.12" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz#2234ce26c62889f03db3d7fea43c1932ab3e927b" - integrity sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg== + version "0.3.13" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" + integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== dependencies: "@jridgewell/sourcemap-codec" "^1.5.0" "@jridgewell/trace-mapping" "^0.3.24" +"@jridgewell/remapping@^2.3.5": + version "2.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1" + integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + "@jridgewell/resolve-uri@^3.1.0": version "3.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== "@jridgewell/source-map@^0.3.3": - version "0.3.10" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.10.tgz#a35714446a2e84503ff9bfe66f1d1d4846f2075b" - integrity sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q== + version "0.3.11" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.11.tgz#b21835cbd36db656b857c2ad02ebd413cc13a9ba" + integrity sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA== dependencies: "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.25" -"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": - version "1.5.4" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz#7358043433b2e5da569aa02cbc4c121da3af27d7" - integrity sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw== +"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0", "@jridgewell/sourcemap-codec@^1.5.5": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" + integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28": - version "0.3.29" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz#a58d31eaadaf92c6695680b2e1d464a9b8fbf7fc" - integrity sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ== + version "0.3.31" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" + integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -2704,15 +2705,15 @@ integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== "@libp2p/autonat@^2.0.19": - version "2.0.37" - resolved "https://registry.yarnpkg.com/@libp2p/autonat/-/autonat-2.0.37.tgz#7234ac441ee197ee9b5435a40632462c162e2797" - integrity sha512-GEcwSIdcPu3Q4Xh6cp2+dyO7tWJ0qC+Zzw+kfn4y12Jgpp4cGvDSsI7CPvne8lfc9YGvLaMfHYYkjOQr9W7Z7Q== + version "2.0.38" + resolved "https://registry.yarnpkg.com/@libp2p/autonat/-/autonat-2.0.38.tgz#38ab31e2ede7daaf38b8d4c971d7660903a87b17" + integrity sha512-SuJUbXsF0YQg926hxb6d/f7x4NEHqWHLSXnR6Og5fJSOv2A1i1xRUe8zXaCuxQkPa+CguH2tAPZ+l1A+NZlF5A== dependencies: - "@libp2p/interface" "^2.10.5" - "@libp2p/interface-internal" "^2.3.18" - "@libp2p/peer-collections" "^6.0.34" - "@libp2p/peer-id" "^5.1.8" - "@libp2p/utils" "^6.7.1" + "@libp2p/interface" "^2.11.0" + "@libp2p/interface-internal" "^2.3.19" + "@libp2p/peer-collections" "^6.0.35" + "@libp2p/peer-id" "^5.1.9" + "@libp2p/utils" "^6.7.2" "@multiformats/multiaddr" "^12.4.4" any-signal "^4.1.1" it-protobuf-stream "^2.0.2" @@ -2722,29 +2723,29 @@ uint8arraylist "^2.4.8" "@libp2p/bootstrap@^11.0.20": - version "11.0.46" - resolved "https://registry.yarnpkg.com/@libp2p/bootstrap/-/bootstrap-11.0.46.tgz#0e8e1803c48d91959580cc5d5264b27b30119b34" - integrity sha512-VxWHWjryu6YCv5JEylL5L9z2p38DvZPjEhH9jR382Ts19Dg0G+30DAcv7A3Ad1R2Bg8q2acxZGE3W0nwXrpJxQ== + version "11.0.47" + resolved "https://registry.yarnpkg.com/@libp2p/bootstrap/-/bootstrap-11.0.47.tgz#bac0e737888a537821f5a4ccef0ee68706b08a99" + integrity sha512-D3V8AHZvX9R0cFD0BKmDp7fKTo+GgPFFWa55z62VP14yA3f3kSAELyZ7NujrD0QXEtUdd/d7suqeJ4tKGsnZ5A== dependencies: - "@libp2p/interface" "^2.10.5" - "@libp2p/interface-internal" "^2.3.18" - "@libp2p/peer-id" "^5.1.8" + "@libp2p/interface" "^2.11.0" + "@libp2p/interface-internal" "^2.3.19" + "@libp2p/peer-id" "^5.1.9" "@multiformats/mafmt" "^12.1.6" "@multiformats/multiaddr" "^12.4.4" main-event "^1.0.1" "@libp2p/circuit-relay-v2@^3.1.10": - version "3.2.23" - resolved "https://registry.yarnpkg.com/@libp2p/circuit-relay-v2/-/circuit-relay-v2-3.2.23.tgz#1433a3b108ab63e1e74e6a024fa04838927c8dd9" - integrity sha512-i6t3h5IaydcPCDXk2hNPCH2k6rY0JTRduqRmmVw3FbVpgM/DVonJV/XZa735K/a4jT8QRo6psI6UYSt+3ceqdg== + version "3.2.24" + resolved "https://registry.yarnpkg.com/@libp2p/circuit-relay-v2/-/circuit-relay-v2-3.2.24.tgz#2bd568f2be46e813cd201b968590e8da38cfce95" + integrity sha512-JXSm0dOOpPC+Yax0ngLYWqELHLFmaYPNZOhZkrr0iEtbiXwhDXuDuwT71pwmozp7h/rYd2YFoIk178AhZ4711Q== dependencies: - "@libp2p/crypto" "^5.1.7" - "@libp2p/interface" "^2.10.5" - "@libp2p/interface-internal" "^2.3.18" - "@libp2p/peer-collections" "^6.0.34" - "@libp2p/peer-id" "^5.1.8" - "@libp2p/peer-record" "^8.0.34" - "@libp2p/utils" "^6.7.1" + "@libp2p/crypto" "^5.1.8" + "@libp2p/interface" "^2.11.0" + "@libp2p/interface-internal" "^2.3.19" + "@libp2p/peer-collections" "^6.0.35" + "@libp2p/peer-id" "^5.1.9" + "@libp2p/peer-record" "^8.0.35" + "@libp2p/utils" "^6.7.2" "@multiformats/multiaddr" "^12.4.4" "@multiformats/multiaddr-matcher" "^2.0.0" any-signal "^4.1.1" @@ -2760,15 +2761,15 @@ uint8arrays "^5.1.0" "@libp2p/config@^1.0.3": - version "1.1.13" - resolved "https://registry.yarnpkg.com/@libp2p/config/-/config-1.1.13.tgz#a2c3e1c0e5f9c66573110dfb404ee1d87f0addd9" - integrity sha512-D/N0NaGb3wzVhBS+RYN9Ft67MRMaN3hHAOEFl7T3TIu/5I19gUfw2vABTC8ULy0qAOBWCZZZT7pLj/YjBNZQUw== + version "1.1.20" + resolved "https://registry.yarnpkg.com/@libp2p/config/-/config-1.1.20.tgz#daada46ea047843ed003fd7a5dc4a856798d2dba" + integrity sha512-/1FGSuyAmW8zd5iDHRx/xtqYoyReIrc2i9FJFZQcAupvoKHnNo8wa9fhTH6wFbNF/veCqqscAtgzXtV66TsGSw== dependencies: - "@libp2p/crypto" "^5.1.7" - "@libp2p/interface" "^2.10.5" - "@libp2p/keychain" "^5.2.8" - "@libp2p/logger" "^5.1.21" - interface-datastore "^8.3.1" + "@libp2p/crypto" "^5.1.12" + "@libp2p/interface" "^3.0.2" + "@libp2p/keychain" "^6.0.5" + "@libp2p/logger" "^6.0.5" + interface-datastore "^9.0.1" "@libp2p/crypto@^4.1.9": version "4.1.9" @@ -2784,27 +2785,27 @@ uint8arraylist "^2.4.8" uint8arrays "^5.1.0" -"@libp2p/crypto@^5.0.0", "@libp2p/crypto@^5.0.6", "@libp2p/crypto@^5.0.9", "@libp2p/crypto@^5.1.5", "@libp2p/crypto@^5.1.7": - version "5.1.7" - resolved "https://registry.yarnpkg.com/@libp2p/crypto/-/crypto-5.1.7.tgz#5a27652c1801873194e19891578242251ccbc6d8" - integrity sha512-7DO0piidLEKfCuNfS420BlHG0e2tH7W/zugdsPSiC/1Apa/s1B1dBkaIEgfDkGjrRP4S/8Or86Rtq7zXeEu67g== +"@libp2p/crypto@^5.0.0", "@libp2p/crypto@^5.0.6", "@libp2p/crypto@^5.0.9", "@libp2p/crypto@^5.1.12", "@libp2p/crypto@^5.1.7", "@libp2p/crypto@^5.1.8": + version "5.1.12" + resolved "https://registry.yarnpkg.com/@libp2p/crypto/-/crypto-5.1.12.tgz#dd5937d0142a24a89310b84bd37f1dd93505db90" + integrity sha512-1yJS0BZj+HF4M3Uv/92y3oIbMcCar218accFBcX+nKVhBlwDbx6fkUURhs5GilIhMgDtir+qQ8Un1hwF4CgGzw== dependencies: - "@libp2p/interface" "^2.10.5" - "@noble/curves" "^1.9.1" - "@noble/hashes" "^1.8.0" - multiformats "^13.3.6" - protons-runtime "^5.5.0" + "@libp2p/interface" "^3.0.2" + "@noble/curves" "^2.0.1" + "@noble/hashes" "^2.0.1" + multiformats "^13.4.0" + protons-runtime "^5.6.0" uint8arraylist "^2.4.8" uint8arrays "^5.1.0" "@libp2p/dcutr@^2.0.18": - version "2.0.37" - resolved "https://registry.yarnpkg.com/@libp2p/dcutr/-/dcutr-2.0.37.tgz#cbbe748c89a35e6a6bb46f3e0d1108700c0f072d" - integrity sha512-jI7A0SsiXeFJ5mIYz4zPUW1G/hv2wBRVnP82eGcqekxvYRet0yt3kXKjr0j0kBn9h/qCUtQVAHCKmdIMFyEmCg== + version "2.0.38" + resolved "https://registry.yarnpkg.com/@libp2p/dcutr/-/dcutr-2.0.38.tgz#7545818c9d3accc85580fc2f5acb616426d71746" + integrity sha512-Ny3yA/BqtmRrPIiWjobduccZrUCP+H0HD+2x83wO723iCqBYIMN8Usa5arLTu+TUiMTbxtlWHYaZxGHqfKqn9Q== dependencies: - "@libp2p/interface" "^2.10.5" - "@libp2p/interface-internal" "^2.3.18" - "@libp2p/utils" "^6.7.1" + "@libp2p/interface" "^2.11.0" + "@libp2p/interface-internal" "^2.3.19" + "@libp2p/utils" "^6.7.2" "@multiformats/multiaddr" "^12.4.4" "@multiformats/multiaddr-matcher" "^2.0.0" delay "^6.0.0" @@ -2812,13 +2813,13 @@ protons-runtime "^5.5.0" uint8arraylist "^2.4.8" -"@libp2p/fetch@3.0.18": - version "3.0.18" - resolved "https://registry.yarnpkg.com/@libp2p/fetch/-/fetch-3.0.18.tgz#f33a4ad3243727921f714b37e6fb18a27ab4a1ab" - integrity sha512-/1W8IkTvgmMTADa5BQjkw3RAFjUzOyo3o0AFEXV95/rSqttyzz3H7gjLU6Vpg8E7cyBSUABglJVgnXSq0wKhzA== +"@libp2p/fetch@3.0.21": + version "3.0.21" + resolved "https://registry.yarnpkg.com/@libp2p/fetch/-/fetch-3.0.21.tgz#8313d02e9108af06d2e4fdd4c6f35f27140841ae" + integrity sha512-Tb7oitURrlof9k6MzjxlUIXQaOXHbC+MZAf+xlrhqLrhG4F3Gux2QrFtnEWtW83D6xnRHtTvsjBkxeAm6qNKNQ== dependencies: - "@libp2p/interface" "^2.10.3" - "@libp2p/interface-internal" "^2.3.15" + "@libp2p/interface" "^2.10.5" + "@libp2p/interface-internal" "^2.3.18" it-protobuf-stream "^2.0.2" main-event "^1.0.1" protons-runtime "^5.5.0" @@ -2845,28 +2846,7 @@ uint8arrays "^5.1.0" undici "^6.21.0" -"@libp2p/identify@3.0.33": - version "3.0.33" - resolved "https://registry.yarnpkg.com/@libp2p/identify/-/identify-3.0.33.tgz#eee1c754827c3f45071add9f175c18fdcebb8194" - integrity sha512-cwMwXcQC4h1msBayTBS49yPwnoJUjXcxMm2orxAb96gVbzGW7h+OIFikZR23yOcDEcOPO8wHTurL1SXrr3O/SQ== - dependencies: - "@libp2p/crypto" "^5.1.5" - "@libp2p/interface" "^2.10.3" - "@libp2p/interface-internal" "^2.3.15" - "@libp2p/peer-id" "^5.1.6" - "@libp2p/peer-record" "^8.0.31" - "@libp2p/utils" "^6.6.6" - "@multiformats/multiaddr" "^12.4.0" - "@multiformats/multiaddr-matcher" "^1.7.2" - it-drain "^3.0.9" - it-parallel "^3.0.11" - it-protobuf-stream "^2.0.2" - main-event "^1.0.1" - protons-runtime "^5.5.0" - uint8arraylist "^2.4.8" - uint8arrays "^5.1.0" - -"@libp2p/identify@^3.0.18": +"@libp2p/identify@3.0.38": version "3.0.38" resolved "https://registry.yarnpkg.com/@libp2p/identify/-/identify-3.0.38.tgz#c58266472bd38fe9cbdadc3d22210a5c373b31fd" integrity sha512-2eCZU5CSTvyt78jtMLQ88m6Rlrcrt7BVccGHsdjx8hguvFYWqBjq19RQ5Zm47bbHlNzjLwrAUi6vfKx2r7fKIg== @@ -2887,13 +2867,34 @@ uint8arraylist "^2.4.8" uint8arrays "^5.1.0" -"@libp2p/interface-internal@^2.0.0", "@libp2p/interface-internal@^2.0.10", "@libp2p/interface-internal@^2.2.2", "@libp2p/interface-internal@^2.3.15", "@libp2p/interface-internal@^2.3.18": - version "2.3.18" - resolved "https://registry.yarnpkg.com/@libp2p/interface-internal/-/interface-internal-2.3.18.tgz#0a163b52c63317483138283aa0576f42a2a9b077" - integrity sha512-tnZ20IFASXLbDc2JxeUPZNIXDuN5Ge7be6BU458WLvmquf93NlSqZkWs6xFdi+0yXUrw7GGTgzIP5v+1LnDUmA== +"@libp2p/identify@^3.0.18": + version "3.0.39" + resolved "https://registry.yarnpkg.com/@libp2p/identify/-/identify-3.0.39.tgz#93cef746674fcdee8d60ba3decfeb62bab16bd38" + integrity sha512-302y1LAGuPy8im+LUiB5+2sUOa/VZuAphOAKLsAQ/74EglWlSrw0Q7f09WUQvfNXmn7XpQnDh7GEI3NZBl54Jw== dependencies: - "@libp2p/interface" "^2.10.5" - "@libp2p/peer-collections" "^6.0.34" + "@libp2p/crypto" "^5.1.8" + "@libp2p/interface" "^2.11.0" + "@libp2p/interface-internal" "^2.3.19" + "@libp2p/peer-id" "^5.1.9" + "@libp2p/peer-record" "^8.0.35" + "@libp2p/utils" "^6.7.2" + "@multiformats/multiaddr" "^12.4.4" + "@multiformats/multiaddr-matcher" "^2.0.0" + it-drain "^3.0.9" + it-parallel "^3.0.11" + it-protobuf-stream "^2.0.2" + main-event "^1.0.1" + protons-runtime "^5.5.0" + uint8arraylist "^2.4.8" + uint8arrays "^5.1.0" + +"@libp2p/interface-internal@^2.0.0", "@libp2p/interface-internal@^2.0.10", "@libp2p/interface-internal@^2.2.2", "@libp2p/interface-internal@^2.3.18", "@libp2p/interface-internal@^2.3.19": + version "2.3.19" + resolved "https://registry.yarnpkg.com/@libp2p/interface-internal/-/interface-internal-2.3.19.tgz#14df8fbefcc24b5309b949b6e9333a2d3e647567" + integrity sha512-v335EB0i5CaNF+0SqT01CTBp0VyjJizpy46KprcshFFjX16UQ8+/QzoTZqmot9WiAmAzwR0b87oKmlAE9cpxzQ== + dependencies: + "@libp2p/interface" "^2.11.0" + "@libp2p/peer-collections" "^6.0.35" "@multiformats/multiaddr" "^12.4.4" progress-events "^1.0.1" @@ -2909,10 +2910,10 @@ progress-events "^1.0.0" uint8arraylist "^2.4.8" -"@libp2p/interface@^2.0.0", "@libp2p/interface@^2.10.3", "@libp2p/interface@^2.10.5", "@libp2p/interface@^2.2.0", "@libp2p/interface@^2.2.1", "@libp2p/interface@^2.4.0", "@libp2p/interface@^2.5.0", "@libp2p/interface@^2.9.0": - version "2.10.5" - resolved "https://registry.yarnpkg.com/@libp2p/interface/-/interface-2.10.5.tgz#c8f7990a19071488831ede202f37ae6c840f3b6b" - integrity sha512-Z52n04Mph/myGdwyExbFi5S/HqrmZ9JOmfLc2v4r2Cik3GRdw98vrGH19PFvvwjLwAjaqsweCtlGaBzAz09YDw== +"@libp2p/interface@^2.0.0", "@libp2p/interface@^2.10.5", "@libp2p/interface@^2.11.0", "@libp2p/interface@^2.2.0", "@libp2p/interface@^2.2.1", "@libp2p/interface@^2.4.0", "@libp2p/interface@^2.5.0", "@libp2p/interface@^2.9.0": + version "2.11.0" + resolved "https://registry.yarnpkg.com/@libp2p/interface/-/interface-2.11.0.tgz#a1032271d6532e53989781bd25b24f158e900e27" + integrity sha512-0MUFKoXWHTQW3oWIgSHApmYMUKWO/Y02+7Hpyp+n3z+geD4Xo2Rku2gYWmxcq+Pyjkz6Q9YjDWz3Yb2SoV2E8Q== dependencies: "@multiformats/dns" "^1.0.6" "@multiformats/multiaddr" "^12.4.4" @@ -2923,24 +2924,36 @@ progress-events "^1.0.1" uint8arraylist "^2.4.8" +"@libp2p/interface@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@libp2p/interface/-/interface-3.0.2.tgz#252dab108b171842eeecf6b9206ade18b2268190" + integrity sha512-nb3H0eu9RPCBjwWUCafSL3TpFmt1Jhe4zgWlV98VrrWhtxg8xaunbEWzfVnU+R2TvV8IAljGw80OcqSst3gBlw== + dependencies: + "@multiformats/dns" "^1.0.6" + "@multiformats/multiaddr" "^13.0.1" + main-event "^1.0.1" + multiformats "^13.4.0" + progress-events "^1.0.1" + uint8arraylist "^2.4.8" + "@libp2p/interfaces@3.3.2": version "3.3.2" resolved "https://registry.yarnpkg.com/@libp2p/interfaces/-/interfaces-3.3.2.tgz#5d8079be845b0960939b5b18880e785a4714465a" integrity sha512-p/M7plbrxLzuQchvNwww1Was7ZeGE2NaOFulMaZBYIihU8z3fhaV+a033OqnC/0NTX/yhfdNOG7znhYq3XoR/g== "@libp2p/kad-dht@^15.0.2": - version "15.1.10" - resolved "https://registry.yarnpkg.com/@libp2p/kad-dht/-/kad-dht-15.1.10.tgz#1c13d876aa61666b62fb4bce9a4a768e91999c38" - integrity sha512-0lZOLQ+I6fbmf01K3RwPScXgQOjB4gl+YUJQ5ys9VVfNsj1XU+PHgWSy4e+ZHvK/xTskcIqwLJGdkluFflw7Qg== + version "15.1.11" + resolved "https://registry.yarnpkg.com/@libp2p/kad-dht/-/kad-dht-15.1.11.tgz#cba48339e04e7d866c3bbe087fa49ef6b7f8eb26" + integrity sha512-a5sdnkztx8AVRDG/+llboRfTLkjQJpSPsSD6F/q6xlI2GbAyEf+JnNKJv0GAUZe9UJCl+g4htM1jA/Rjl0IuCg== dependencies: - "@libp2p/crypto" "^5.1.7" - "@libp2p/interface" "^2.10.5" - "@libp2p/interface-internal" "^2.3.18" - "@libp2p/peer-collections" "^6.0.34" - "@libp2p/peer-id" "^5.1.8" - "@libp2p/ping" "^2.0.36" + "@libp2p/crypto" "^5.1.8" + "@libp2p/interface" "^2.11.0" + "@libp2p/interface-internal" "^2.3.19" + "@libp2p/peer-collections" "^6.0.35" + "@libp2p/peer-id" "^5.1.9" + "@libp2p/ping" "^2.0.37" "@libp2p/record" "^4.0.7" - "@libp2p/utils" "^6.7.1" + "@libp2p/utils" "^6.7.2" "@multiformats/multiaddr" "^12.4.4" any-signal "^4.1.1" interface-datastore "^8.3.1" @@ -2965,14 +2978,14 @@ uint8arraylist "^2.4.8" uint8arrays "^5.1.0" -"@libp2p/keychain@^5.0.12", "@libp2p/keychain@^5.0.14", "@libp2p/keychain@^5.2.8": - version "5.2.8" - resolved "https://registry.yarnpkg.com/@libp2p/keychain/-/keychain-5.2.8.tgz#ef269ff62a1569f22f036af26afdc5c7f511b3e9" - integrity sha512-NIM4mNVO8dlgKEIMKn/p3Yens+qdIr4dRWFRunGD3Y1FouTyyQtkRKzYjS+ek4uAyvZovO7eDYa+2BVW7xSgrQ== +"@libp2p/keychain@^5.0.12", "@libp2p/keychain@^5.0.14", "@libp2p/keychain@^5.2.8", "@libp2p/keychain@^5.2.9": + version "5.2.9" + resolved "https://registry.yarnpkg.com/@libp2p/keychain/-/keychain-5.2.9.tgz#6c0d7af0f06a61efe0d88c36e90925dafea682a7" + integrity sha512-BgZKMqQCu3Xzd7YFIdwWqG2xXtvsO6RVHJKS8VOw6Dg5tuPAWcQhs0T84TZ5PCg5r6NNBwwI8fWdZGVtu/pPfQ== dependencies: - "@libp2p/crypto" "^5.1.7" - "@libp2p/interface" "^2.10.5" - "@libp2p/utils" "^6.7.1" + "@libp2p/crypto" "^5.1.8" + "@libp2p/interface" "^2.11.0" + "@libp2p/utils" "^6.7.2" "@noble/hashes" "^1.8.0" asn1js "^3.0.6" interface-datastore "^8.3.1" @@ -2980,26 +2993,51 @@ sanitize-filename "^1.6.3" uint8arrays "^5.1.0" -"@libp2p/logger@^5.0.0", "@libp2p/logger@^5.0.1", "@libp2p/logger@^5.1.18", "@libp2p/logger@^5.1.21", "@libp2p/logger@^5.1.4", "@libp2p/logger@^5.1.8": - version "5.1.21" - resolved "https://registry.yarnpkg.com/@libp2p/logger/-/logger-5.1.21.tgz#40ce0b9bfbc7d17b6cece0b63547711621ec5ff8" - integrity sha512-V1TWlZM5BuKkiGQ7En4qOnseVP82JwDIpIfNjceUZz1ArL32A5HXJjLQnJchkZ3VW8PVciJzUos/vP6slhPY6Q== +"@libp2p/keychain@^6.0.5": + version "6.0.5" + resolved "https://registry.yarnpkg.com/@libp2p/keychain/-/keychain-6.0.5.tgz#dd85182be183c7d6569f773beefd3dc74f7bc4a1" + integrity sha512-Wm1GfBktp8aRCVYi5c5vsScIJ3u0ULwGV9CfQ6VXODsfGd8qqdUqt10+YTFXQIjYVLnvReUS9pqRQjseKhHpzA== dependencies: - "@libp2p/interface" "^2.10.5" + "@libp2p/crypto" "^5.1.12" + "@libp2p/interface" "^3.0.2" + "@noble/hashes" "^2.0.1" + asn1js "^3.0.6" + interface-datastore "^9.0.1" + multiformats "^13.4.0" + sanitize-filename "^1.6.3" + uint8arrays "^5.1.0" + +"@libp2p/logger@^5.0.0", "@libp2p/logger@^5.0.1", "@libp2p/logger@^5.1.18", "@libp2p/logger@^5.1.21", "@libp2p/logger@^5.1.4", "@libp2p/logger@^5.1.8", "@libp2p/logger@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@libp2p/logger/-/logger-5.2.0.tgz#a3d85304c8341828bd675c5f016e9b0fc1f93e7e" + integrity sha512-OEFS529CnIKfbWEHmuCNESw9q0D0hL8cQ8klQfjIVPur15RcgAEgc1buQ7Y6l0B6tCYg120bp55+e9tGvn8c0g== + dependencies: + "@libp2p/interface" "^2.11.0" "@multiformats/multiaddr" "^12.4.4" interface-datastore "^8.3.1" multiformats "^13.3.6" weald "^1.0.4" -"@libp2p/mdns@^11.0.20": - version "11.0.46" - resolved "https://registry.yarnpkg.com/@libp2p/mdns/-/mdns-11.0.46.tgz#90423f4ee49ed5b8f9178a4650b80b5caf01ded3" - integrity sha512-7E3kkdzXe6x+6lBc3ogniJJubaxz6SCAASi70Ne2NWZSMCOYaCjtGtnh5/Ddtel80ZJl92C/0nj9T4Gtgtr+Zg== +"@libp2p/logger@^6.0.4", "@libp2p/logger@^6.0.5": + version "6.0.5" + resolved "https://registry.yarnpkg.com/@libp2p/logger/-/logger-6.0.5.tgz#76142d290a8cdbabbb597a8aeb78bfb6fc5e42c3" + integrity sha512-4HdUwusPh57KKSY0v0YMYw6T2wl93svOLFNJuosy2xLto9zty1KWkrjaEFyF6jF0a7zBd1k5trjJsDXo8OKDxw== dependencies: - "@libp2p/interface" "^2.10.5" - "@libp2p/interface-internal" "^2.3.18" - "@libp2p/peer-id" "^5.1.8" - "@libp2p/utils" "^6.7.1" + "@libp2p/interface" "^3.0.2" + "@multiformats/multiaddr" "^13.0.1" + interface-datastore "^9.0.1" + multiformats "^13.4.0" + weald "^1.0.6" + +"@libp2p/mdns@^11.0.20": + version "11.0.47" + resolved "https://registry.yarnpkg.com/@libp2p/mdns/-/mdns-11.0.47.tgz#f4779a046c45907cccb3d59e2253141f03a96f01" + integrity sha512-mHIOfzyrJaXw2oVba1xZ5/6ETqsckkdQZVe66+7XNbjlr1plfO+FneEQ66N03LkqeffHDLht0BAm3WYae6XGkw== + dependencies: + "@libp2p/interface" "^2.11.0" + "@libp2p/interface-internal" "^2.3.19" + "@libp2p/peer-id" "^5.1.9" + "@libp2p/utils" "^6.7.2" "@multiformats/multiaddr" "^12.4.4" "@types/multicast-dns" "^7.2.4" dns-packet "^5.6.1" @@ -3007,12 +3045,12 @@ multicast-dns "^7.2.5" "@libp2p/mplex@^11.0.20": - version "11.0.46" - resolved "https://registry.yarnpkg.com/@libp2p/mplex/-/mplex-11.0.46.tgz#e21df7ef31ce4b76801caa1a7c89dc148845fe0e" - integrity sha512-01b077JuqqsDBUcSE68h+6kI1+/9HZM0eog6vM8EOuVttPwDhmyObpuUiBmBTTK8ggCWQrct2KWxR7+PHJDJIw== + version "11.0.47" + resolved "https://registry.yarnpkg.com/@libp2p/mplex/-/mplex-11.0.47.tgz#659d85e05406b579c6cd670a3dd85a0ebcd16750" + integrity sha512-bZvToaf//ITkLzKx2FxpHP/J7IHvUI7lPHzSYAo2dRfB67VMnTnmAkP4IZmR9DV5oORaUrSt8ZRzQfXO7XjzlQ== dependencies: - "@libp2p/interface" "^2.10.5" - "@libp2p/utils" "^6.7.1" + "@libp2p/interface" "^2.11.0" + "@libp2p/utils" "^6.7.2" it-pipe "^3.0.1" it-pushable "^3.2.3" it-stream-types "^2.0.2" @@ -3020,12 +3058,12 @@ uint8arraylist "^2.4.8" uint8arrays "^5.1.0" -"@libp2p/multistream-select@^6.0.28": - version "6.0.28" - resolved "https://registry.yarnpkg.com/@libp2p/multistream-select/-/multistream-select-6.0.28.tgz#52ff7c37de3e806b4fbe4bcfa8b29692fa39a5fb" - integrity sha512-ILu65FAX2Hak7x40DXb0gYptF6BmlGGW2kNgGeKIcNeseuvsAkBPO8k0CHwr8MU5mnHamTiweLJh5jD0iVZJ1A== +"@libp2p/multistream-select@^6.0.29": + version "6.0.29" + resolved "https://registry.yarnpkg.com/@libp2p/multistream-select/-/multistream-select-6.0.29.tgz#9dcf144c21b2a0831beb74a2ce9309a82e6b3de9" + integrity sha512-SWQbPcABOIpznEY7+vAp0Y3HNrE2PlaVY4EywN0lUZ7zvTv9VnAb7av3/gMvfaLI+YrOvhCr1mZ9qbSB93k4kA== dependencies: - "@libp2p/interface" "^2.10.5" + "@libp2p/interface" "^2.11.0" it-length-prefixed "^10.0.1" it-length-prefixed-stream "^2.0.2" it-stream-types "^2.0.2" @@ -3035,14 +3073,14 @@ uint8arraylist "^2.4.8" uint8arrays "^5.1.0" -"@libp2p/peer-collections@^6.0.12", "@libp2p/peer-collections@^6.0.34": - version "6.0.34" - resolved "https://registry.yarnpkg.com/@libp2p/peer-collections/-/peer-collections-6.0.34.tgz#a56ef2f2d0bb4acd42ada0b790a1e9550b319ff9" - integrity sha512-rw8gDGhou4sF6W6i9ntmRARFePX19Dw9MMVpZHr6Kx9q2kvBJq91IXUzsXP06roexEOu1CUlZwxtUAqOBy+Eww== +"@libp2p/peer-collections@^6.0.12", "@libp2p/peer-collections@^6.0.35": + version "6.0.35" + resolved "https://registry.yarnpkg.com/@libp2p/peer-collections/-/peer-collections-6.0.35.tgz#7c933447b9487c938f5c283d3d916ff5b38c2f61" + integrity sha512-QiloK3T7DXW7R2cpL38dBnALCHf5pMzs/TyFzlEK33WezA2YFVoj7CtOJKqbn29bmV9uspWOxMgfmLUXf8ALvA== dependencies: - "@libp2p/interface" "^2.10.5" - "@libp2p/peer-id" "^5.1.8" - "@libp2p/utils" "^6.7.1" + "@libp2p/interface" "^2.11.0" + "@libp2p/peer-id" "^5.1.9" + "@libp2p/utils" "^6.7.2" multiformats "^13.3.6" "@libp2p/peer-id-factory@4.2.4": @@ -3057,13 +3095,13 @@ uint8arraylist "^2.4.8" uint8arrays "^5.1.0" -"@libp2p/peer-id@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@libp2p/peer-id/-/peer-id-5.1.6.tgz#e9631c75c758f6bef891ea9391d02473ec87b95e" - integrity sha512-eeRekc3FokZPijkLa0conZJJZHbI4JkFjYp4p20XSYwz3YhFp30VURzwdXHzNr9y+rYEyYWrw3X7YLaj0taINg== +"@libp2p/peer-id@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@libp2p/peer-id/-/peer-id-5.1.8.tgz#646fdda7d3346ce072adee6727c792ddcf1631ea" + integrity sha512-pGaM4BwjnXdGtAtd84L4/wuABpsnFYE+AQ+h3GxNFme0IsTaTVKWd1jBBE5YFeKHBHGUOhF3TlHsdjFfjQA7TA== dependencies: - "@libp2p/crypto" "^5.1.5" - "@libp2p/interface" "^2.10.3" + "@libp2p/crypto" "^5.1.7" + "@libp2p/interface" "^2.10.5" multiformats "^13.3.6" uint8arrays "^5.1.0" @@ -3076,25 +3114,25 @@ multiformats "^13.1.0" uint8arrays "^5.1.0" -"@libp2p/peer-id@^5.0.0", "@libp2p/peer-id@^5.0.1", "@libp2p/peer-id@^5.0.7", "@libp2p/peer-id@^5.0.8", "@libp2p/peer-id@^5.1.0", "@libp2p/peer-id@^5.1.6", "@libp2p/peer-id@^5.1.8": - version "5.1.8" - resolved "https://registry.yarnpkg.com/@libp2p/peer-id/-/peer-id-5.1.8.tgz#646fdda7d3346ce072adee6727c792ddcf1631ea" - integrity sha512-pGaM4BwjnXdGtAtd84L4/wuABpsnFYE+AQ+h3GxNFme0IsTaTVKWd1jBBE5YFeKHBHGUOhF3TlHsdjFfjQA7TA== +"@libp2p/peer-id@^5.0.0", "@libp2p/peer-id@^5.0.1", "@libp2p/peer-id@^5.0.7", "@libp2p/peer-id@^5.0.8", "@libp2p/peer-id@^5.1.0", "@libp2p/peer-id@^5.1.8", "@libp2p/peer-id@^5.1.9": + version "5.1.9" + resolved "https://registry.yarnpkg.com/@libp2p/peer-id/-/peer-id-5.1.9.tgz#9cde34f713c6255497e52e989f09492f6a412d40" + integrity sha512-cVDp7lX187Epmi/zr0Qq2RsEMmueswP9eIxYSFoMcHL/qcvRFhsxOfUGB8361E26s2WJvC9sXZ0oJS9XVueJhQ== dependencies: - "@libp2p/crypto" "^5.1.7" - "@libp2p/interface" "^2.10.5" + "@libp2p/crypto" "^5.1.8" + "@libp2p/interface" "^2.11.0" multiformats "^13.3.6" uint8arrays "^5.1.0" -"@libp2p/peer-record@^8.0.31", "@libp2p/peer-record@^8.0.34": - version "8.0.34" - resolved "https://registry.yarnpkg.com/@libp2p/peer-record/-/peer-record-8.0.34.tgz#6f90f40e01771d70a2f1fdcec12ab582a37b667f" - integrity sha512-GqvRBpvclscoKuF0JUfLyZTv+BwzICBBe50LFiAKio8LijZMBr43b+AcEaSEwFWDwlWmaKU73q8EQLrCb/e67Q== +"@libp2p/peer-record@^8.0.34", "@libp2p/peer-record@^8.0.35": + version "8.0.35" + resolved "https://registry.yarnpkg.com/@libp2p/peer-record/-/peer-record-8.0.35.tgz#feb5e2e0b30e36f5dfdd8ccd0119bc8d83fd7a78" + integrity sha512-0818zvjKbucq5XBnusG8oSWxJ992rVry/2qlfcn/nyK/uDrZ12tjDYHNMCoOWTNeFvFUVkMg9pRkvXvTNp6Yiw== dependencies: - "@libp2p/crypto" "^5.1.7" - "@libp2p/interface" "^2.10.5" - "@libp2p/peer-id" "^5.1.8" - "@libp2p/utils" "^6.7.1" + "@libp2p/crypto" "^5.1.8" + "@libp2p/interface" "^2.11.0" + "@libp2p/peer-id" "^5.1.9" + "@libp2p/utils" "^6.7.2" "@multiformats/multiaddr" "^12.4.4" multiformats "^13.3.6" protons-runtime "^5.5.0" @@ -3102,16 +3140,16 @@ uint8arraylist "^2.4.8" uint8arrays "^5.1.0" -"@libp2p/peer-store@^11.2.6": - version "11.2.6" - resolved "https://registry.yarnpkg.com/@libp2p/peer-store/-/peer-store-11.2.6.tgz#6df8d9bae22507b5bab5c9781733a3a7aa9f409c" - integrity sha512-3Lc982/7drqlXa51s9l1/DFHD48zzIjMMYajxFM2KbobyStH+lztYnFc3kNGB9sZijULaW1480PvbTMm9WaJ0g== +"@libp2p/peer-store@^11.2.7": + version "11.2.7" + resolved "https://registry.yarnpkg.com/@libp2p/peer-store/-/peer-store-11.2.7.tgz#45c36be5360ea881a4f19ae684b56d9d9d061e17" + integrity sha512-dwTM+0i7mAgAnZvMHghgGcFoWPGaTbKx2nBueMd2Yg38mCs9WeambmR6gQdjwvYpybvNgFDAA+XesCKCotuczg== dependencies: - "@libp2p/crypto" "^5.1.7" - "@libp2p/interface" "^2.10.5" - "@libp2p/peer-collections" "^6.0.34" - "@libp2p/peer-id" "^5.1.8" - "@libp2p/peer-record" "^8.0.34" + "@libp2p/crypto" "^5.1.8" + "@libp2p/interface" "^2.11.0" + "@libp2p/peer-collections" "^6.0.35" + "@libp2p/peer-id" "^5.1.9" + "@libp2p/peer-record" "^8.0.35" "@multiformats/multiaddr" "^12.4.4" interface-datastore "^8.3.1" it-all "^3.0.8" @@ -3122,30 +3160,30 @@ uint8arraylist "^2.4.8" uint8arrays "^5.1.0" -"@libp2p/ping@^2.0.18", "@libp2p/ping@^2.0.36": - version "2.0.36" - resolved "https://registry.yarnpkg.com/@libp2p/ping/-/ping-2.0.36.tgz#63b21b0abb1652244b416f6b45225d775a511138" - integrity sha512-susC5yMBZhMDz+jIjX7RvQ7NXNL5L4fkRzPhwu+1eLbwNXTYZtDd7fJ53p40I5Ur/A+DgtCpIk03X2nrHPc5Jg== +"@libp2p/ping@^2.0.18", "@libp2p/ping@^2.0.37": + version "2.0.37" + resolved "https://registry.yarnpkg.com/@libp2p/ping/-/ping-2.0.37.tgz#621813d32960a285e4c30f68607d48b977a3732e" + integrity sha512-SvCYM/tHvK3LQzCEa4eflQmrHEL5EAPWPxbIclqJ6SA0mi7jW3xO21AIsHkQDxfFVevIRWKaKoLj6MAythrNcg== dependencies: - "@libp2p/crypto" "^5.1.7" - "@libp2p/interface" "^2.10.5" - "@libp2p/interface-internal" "^2.3.18" + "@libp2p/crypto" "^5.1.8" + "@libp2p/interface" "^2.11.0" + "@libp2p/interface-internal" "^2.3.19" "@multiformats/multiaddr" "^12.4.4" it-byte-stream "^2.0.2" main-event "^1.0.1" uint8arrays "^5.1.0" "@libp2p/pubsub@^10.0.0": - version "10.1.17" - resolved "https://registry.yarnpkg.com/@libp2p/pubsub/-/pubsub-10.1.17.tgz#2afd350e694e4ce7cbe25c42130ce2bab9f54768" - integrity sha512-hQMld/RiU7HbK81rGO///aNaM5yjBrEaULSo2m1pGB0Qy9SAhXdYJYgFP3ln+Pc18DwEU7wEjDIkE32CCYzpGA== + version "10.1.18" + resolved "https://registry.yarnpkg.com/@libp2p/pubsub/-/pubsub-10.1.18.tgz#ba3b43d88d89356133fa58250cb7d8d35c27b675" + integrity sha512-Bxa0cwkaQvadyJNlJlzH0m1eo7m03G2nCpuKbcv+i0qNbyyTOydBcuoslG/UWFYhRBB9Js9R6zNIsaIgpo+iGw== dependencies: - "@libp2p/crypto" "^5.1.7" - "@libp2p/interface" "^2.10.5" - "@libp2p/interface-internal" "^2.3.18" - "@libp2p/peer-collections" "^6.0.34" - "@libp2p/peer-id" "^5.1.8" - "@libp2p/utils" "^6.7.1" + "@libp2p/crypto" "^5.1.8" + "@libp2p/interface" "^2.11.0" + "@libp2p/interface-internal" "^2.3.19" + "@libp2p/peer-collections" "^6.0.35" + "@libp2p/peer-id" "^5.1.9" + "@libp2p/utils" "^6.7.2" it-length-prefixed "^10.0.1" it-pipe "^3.0.1" it-pushable "^3.2.3" @@ -3156,21 +3194,21 @@ uint8arrays "^5.1.0" "@libp2p/record@^4.0.7": - version "4.0.7" - resolved "https://registry.yarnpkg.com/@libp2p/record/-/record-4.0.7.tgz#3e4bb8e94b1d11c4070890c4df0fe74819615a0c" - integrity sha512-9JFfOytFS730Z79azWi3Ozlb7IufpwbjC/frAv1yZUCLPp7flT9HNsNB+JQwi+V7z68MaNUYeAFE86VQaq2ccA== + version "4.0.8" + resolved "https://registry.yarnpkg.com/@libp2p/record/-/record-4.0.8.tgz#e97222b75d54b7fa7ff95ef7ca6d1d763864e5db" + integrity sha512-ZsGKBA1zuzqiwNPO2q0PHFhZzAJi/p+YLDtYdkwLYW0FbIgeMb5FX7cmopDk5Aa8mM9UbINb+nK5xz4+Bz8ShQ== dependencies: - protons-runtime "^5.5.0" + protons-runtime "^5.6.0" uint8arraylist "^2.4.8" uint8arrays "^5.1.0" "@libp2p/tcp@^10.0.18": - version "10.1.18" - resolved "https://registry.yarnpkg.com/@libp2p/tcp/-/tcp-10.1.18.tgz#822fba55569e8e9ad9d613848a001bfcfcee5491" - integrity sha512-tB7rjETju5UMiYpyzAEOsX7qGVahJwaoBlsMAfpb35a8lH+KU0AaxBMMK8P4cFbKZZQSuDN86Is0mb5EG7npVA== + version "10.1.19" + resolved "https://registry.yarnpkg.com/@libp2p/tcp/-/tcp-10.1.19.tgz#32e6304ca2d2cb1127a201aecb84c9faa82085c0" + integrity sha512-Z+s1n7gBexc32d+DUhOGgQpA8HVukubmNJHzolzZPqly5DYkG2f6SIelitp+M5tDYOPH/43EH9pPSSZ3vUuOwQ== dependencies: - "@libp2p/interface" "^2.10.5" - "@libp2p/utils" "^6.7.1" + "@libp2p/interface" "^2.11.0" + "@libp2p/utils" "^6.7.2" "@multiformats/multiaddr" "^12.4.4" "@multiformats/multiaddr-matcher" "^2.0.0" "@types/sinon" "^17.0.4" @@ -3182,13 +3220,13 @@ stream-to-it "^1.0.1" "@libp2p/tls@^2.0.15": - version "2.2.6" - resolved "https://registry.yarnpkg.com/@libp2p/tls/-/tls-2.2.6.tgz#0534156aff7af5c40568b0a34111da974dc9819d" - integrity sha512-dX+BwABEGx+0ab2pUPtgjcHWXg/IYc4hnRSqpvzM3DH9SfhofT0c6gm9nmuUNAXmithbBwe/TvDoXIwbuJoaZg== + version "2.2.7" + resolved "https://registry.yarnpkg.com/@libp2p/tls/-/tls-2.2.7.tgz#59983954eebcae45f6d26794dea374becb8bf169" + integrity sha512-sPCzDtyR24+4fV+0lTTLIa2iIQONRx6s+Ad96P5YyHvjFTff/SrHQEPpn0f+A/d93qIoiEuovVo/tGjcho5e1A== dependencies: - "@libp2p/crypto" "^5.1.7" - "@libp2p/interface" "^2.10.5" - "@libp2p/peer-id" "^5.1.8" + "@libp2p/crypto" "^5.1.8" + "@libp2p/interface" "^2.11.0" + "@libp2p/peer-id" "^5.1.9" "@peculiar/asn1-schema" "^2.3.15" "@peculiar/asn1-x509" "^2.3.15" "@peculiar/webcrypto" "^1.5.0" @@ -3201,22 +3239,22 @@ uint8arrays "^5.1.0" "@libp2p/upnp-nat@^3.1.1": - version "3.1.21" - resolved "https://registry.yarnpkg.com/@libp2p/upnp-nat/-/upnp-nat-3.1.21.tgz#4d178a2159500b00290155a86f10c2a57e552ead" - integrity sha512-NwomERhazoRwR/R3kQ03y/WU4LqiliDbyarnrudmR0PGaqNs/fgzG7a+4wIZXtWcYKef6qWpGG+gxwRhQdGr5w== + version "3.1.22" + resolved "https://registry.yarnpkg.com/@libp2p/upnp-nat/-/upnp-nat-3.1.22.tgz#58ed114480f8bb116aece52d4ea48703feb48b7f" + integrity sha512-+Hm78LtgJzEEFrQDqnL8A2tkiQVAwEEe8aAE1niyBmujNLu1KYmqmmjsH6F5F4wacBOetU0QGXmBNMx6eq42CA== dependencies: "@achingbrain/nat-port-mapper" "^4.0.2" "@chainsafe/is-ip" "^2.1.0" - "@libp2p/interface" "^2.10.5" - "@libp2p/interface-internal" "^2.3.18" - "@libp2p/utils" "^6.7.1" + "@libp2p/interface" "^2.11.0" + "@libp2p/interface-internal" "^2.3.19" + "@libp2p/utils" "^6.7.2" "@multiformats/multiaddr" "^12.4.4" "@multiformats/multiaddr-matcher" "^2.0.0" main-event "^1.0.1" p-defer "^4.0.1" race-signal "^1.1.3" -"@libp2p/utils@6.7.1", "@libp2p/utils@^6.0.0", "@libp2p/utils@^6.2.1", "@libp2p/utils@^6.3.1", "@libp2p/utils@^6.5.1", "@libp2p/utils@^6.6.0", "@libp2p/utils@^6.6.6", "@libp2p/utils@^6.7.1": +"@libp2p/utils@6.7.1", "@libp2p/utils@^6.0.0", "@libp2p/utils@^6.2.1", "@libp2p/utils@^6.3.1", "@libp2p/utils@^6.5.1", "@libp2p/utils@^6.6.0", "@libp2p/utils@^6.7.1", "@libp2p/utils@^6.7.2": version "6.7.1" resolved "https://registry.yarnpkg.com/@libp2p/utils/-/utils-6.7.1.tgz#0f6dbe587474f62b2c2a32b7d5ede0be57ebebda" integrity sha512-x3WImvw4unmx1ZeAedj8AkRe4UImUlkw0ZItYAiKiekElMNUXwv+Yt48dI/LmB38JIof8sng29XvUeCVU3F6OA== @@ -3246,19 +3284,19 @@ uint8arrays "^5.1.0" "@libp2p/webrtc@^5.1.0": - version "5.2.23" - resolved "https://registry.yarnpkg.com/@libp2p/webrtc/-/webrtc-5.2.23.tgz#dba9f1523729e4bdb2961114def3a0eb52d4610e" - integrity sha512-2iNEkiqNBlRXbdpIyP96tp+dvpXEnVJJk91WUPryS9ULrsyceTraKjEnlQUmSyKcxZRChfdLXax7LtpPJqjZAA== + version "5.2.24" + resolved "https://registry.yarnpkg.com/@libp2p/webrtc/-/webrtc-5.2.24.tgz#13256c82df227f5b3299720e734d59c82b1ae181" + integrity sha512-0Ne/GDR0FBnKQ/KpJDdQ0Ohii1jyhSCJvbKRxLISm8XItCuJtE1WA2awiWZddZwp2lPDPh9iQmFaYUvv8Zel2w== dependencies: "@chainsafe/is-ip" "^2.1.0" "@chainsafe/libp2p-noise" "^16.1.3" "@ipshipyard/node-datachannel" "^0.26.6" - "@libp2p/crypto" "^5.1.7" - "@libp2p/interface" "^2.10.5" - "@libp2p/interface-internal" "^2.3.18" - "@libp2p/keychain" "^5.2.8" - "@libp2p/peer-id" "^5.1.8" - "@libp2p/utils" "^6.7.1" + "@libp2p/crypto" "^5.1.8" + "@libp2p/interface" "^2.11.0" + "@libp2p/interface-internal" "^2.3.19" + "@libp2p/keychain" "^5.2.9" + "@libp2p/peer-id" "^5.1.9" + "@libp2p/utils" "^6.7.2" "@multiformats/multiaddr" "^12.4.4" "@multiformats/multiaddr-matcher" "^2.0.0" "@peculiar/webcrypto" "^1.5.0" @@ -3286,12 +3324,12 @@ uint8arrays "^5.1.0" "@libp2p/websockets@^9.1.5": - version "9.2.18" - resolved "https://registry.yarnpkg.com/@libp2p/websockets/-/websockets-9.2.18.tgz#5e7f41276e9ec156f708d3f191f52d6a9dcae8b6" - integrity sha512-P27ZMv5TuKZDr8nfvVOExaDxBMCwvGLaPxbK3qMC8WiaFBuR5Z38X/HpnTFI5wog8LcKCRD+gFzRZWd/9nEVZw== + version "9.2.19" + resolved "https://registry.yarnpkg.com/@libp2p/websockets/-/websockets-9.2.19.tgz#e680b896a803a6a9d1e4f2a0f62fc8f9f7d60a08" + integrity sha512-+g2qI9Lgvyofoc6GFztPoPVZV+z/lg9pIUfneHht6j88Y7tH3NrAQ7Ki+9lqS5XBX2h1O1bHULWbCaVYCj9TZg== dependencies: - "@libp2p/interface" "^2.10.5" - "@libp2p/utils" "^6.7.1" + "@libp2p/interface" "^2.11.0" + "@libp2p/utils" "^6.7.2" "@multiformats/multiaddr" "^12.4.4" "@multiformats/multiaddr-matcher" "^2.0.0" "@multiformats/multiaddr-to-uri" "^11.0.0" @@ -3349,15 +3387,14 @@ integrity sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw== "@multiformats/dns@^1.0.3", "@multiformats/dns@^1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@multiformats/dns/-/dns-1.0.6.tgz#b8c7de11459a02a5f4e609d35d3cdb95cb6ad152" - integrity sha512-nt/5UqjMPtyvkG9BQYdJ4GfLK3nMqGpFZOzf4hAmIa0sJh2LlS9YKXZ4FgwBDsaHvzZqR/rUFIywIc7pkHNNuw== + version "1.0.10" + resolved "https://registry.yarnpkg.com/@multiformats/dns/-/dns-1.0.10.tgz#1b3ac723bace511e3563120f2007f32d102aa567" + integrity sha512-6X200ceQLns0b/CU0S/So16tGjB5eIXHJ1xvJMPoWaKFHWSgfpW2EhkWJrqap4U3+c37zcowVR0ToPXeYEL7Vw== dependencies: - "@types/dns-packet" "^5.6.5" buffer "^6.0.3" dns-packet "^5.6.1" hashlru "^2.3.0" - p-queue "^8.0.1" + p-queue "^9.0.0" progress-events "^1.0.0" uint8arrays "^5.0.2" @@ -3368,7 +3405,7 @@ dependencies: "@multiformats/multiaddr" "^12.0.0" -"@multiformats/multiaddr-matcher@^1.6.0", "@multiformats/multiaddr-matcher@^1.7.2": +"@multiformats/multiaddr-matcher@^1.6.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@multiformats/multiaddr-matcher/-/multiaddr-matcher-1.8.0.tgz#40a4813a591f64938335b12ebb100ee4a932e40b" integrity sha512-tR/HFhDucXjvwCef5lfXT7kikqR2ffUjliuYlg/RKYGPySVKVlvrDufz86cIuHNc+i/fNR16FWWgD/pMJ6RW4w== @@ -3404,6 +3441,16 @@ uint8-varint "^2.0.1" uint8arrays "^5.0.0" +"@multiformats/multiaddr@^13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz#1a0252e83a3afe7db13f997c5e902d03df271b18" + integrity sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g== + dependencies: + "@chainsafe/is-ip" "^2.0.1" + multiformats "^13.0.0" + uint8-varint "^2.0.1" + uint8arrays "^5.0.0" + "@multiformats/murmur3@^2.1.8": version "2.1.8" resolved "https://registry.yarnpkg.com/@multiformats/murmur3/-/murmur3-2.1.8.tgz#81c1c15b6391109f3febfca4b3205196615a04e9" @@ -3413,9 +3460,9 @@ murmurhash3js-revisited "^3.0.0" "@multiformats/uri-to-multiaddr@^9.0.1": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@multiformats/uri-to-multiaddr/-/uri-to-multiaddr-9.0.1.tgz#d86c01300ba8b6a5b04ef835f5861c90175003cb" - integrity sha512-xH2nIA98EGNfrjt4A3wiT9xw8bg7HkrRhSIUTb8am9flxweu6ObUZSAhSmaRMBWL1UnlBMPDiGNYGxVlhmygBQ== + version "9.0.2" + resolved "https://registry.yarnpkg.com/@multiformats/uri-to-multiaddr/-/uri-to-multiaddr-9.0.2.tgz#2469c5a48af7fa2ab08a268870dfaceb58bbb7ab" + integrity sha512-2TCQR5Y2unG2s9Jm1BdBMTSFmmfgHy8D0777PRT+U2D+IXC1E9JkKF1OS0QlHtGyKUA0IRIk8T0JV4D3v5iOyQ== dependencies: "@multiformats/multiaddr" "^12.1.14" is-ip "^5.0.0" @@ -3446,13 +3493,20 @@ dependencies: "@noble/hashes" "1.7.2" -"@noble/curves@^1.1.0", "@noble/curves@^1.4.0", "@noble/curves@^1.4.2", "@noble/curves@^1.6.0", "@noble/curves@^1.9.1", "@noble/curves@~1.9.0": - version "1.9.5" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.5.tgz#d3e15de15ff1a37e4bf629170ada84395e4cf6b5" - integrity sha512-IHiC8xU74NLKg7gNmwMbUVtqqZy9OWKphTAChESCgsXI5NTK6n3ewOFXrj4Dxal/Ml8D3msbPIHfpHLwv50Q2w== +"@noble/curves@^1.1.0", "@noble/curves@^1.4.0", "@noble/curves@^1.4.2", "@noble/curves@^1.6.0", "@noble/curves@~1.9.0": + version "1.9.7" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" + integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== dependencies: "@noble/hashes" "1.8.0" +"@noble/curves@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-2.0.1.tgz#64ba8bd5e8564a02942655602515646df1cdb3ad" + integrity sha512-vs1Az2OOTBiP4q0pwjW5aF0xp9n4MxVrmkFBxc6EKZc6ddYx5gaZiAsZoq0uRRXWbi3AT/sBqn05eRPtn1JCPw== + dependencies: + "@noble/hashes" "2.0.1" + "@noble/ed25519@^1.5.1": version "1.7.5" resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.5.tgz#94df8bdb9fec9c4644a56007eecb57b0e9fbd0d7" @@ -3473,6 +3527,11 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== +"@noble/hashes@2.0.1", "@noble/hashes@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-2.0.1.tgz#fc1a928061d1232b0a52bb754393c37a5216c89e" + integrity sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw== + "@noble/secp256k1@^1.3.0": version "1.7.2" resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.2.tgz#c2c3343e2dce80e15a914d7442147507f8a98e7f" @@ -3515,108 +3574,108 @@ mkdirp "^1.0.4" rimraf "^3.0.2" -"@peculiar/asn1-cms@^2.3.15", "@peculiar/asn1-cms@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-cms/-/asn1-cms-2.4.0.tgz#327c459460d6fa6d3e582208784543a4b7aeaa73" - integrity sha512-TJvw5Tna/txvzzwnKUlCFd6zIz4R7qysHCaU6M2oe/MUT6EkvJDOzGGNY0hdjJYpuuHoqanQbIqEBhSLSWe1Tg== +"@peculiar/asn1-cms@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-cms/-/asn1-cms-2.5.0.tgz#3a7e857d86686898ce78efdbf481922bb805c68a" + integrity sha512-p0SjJ3TuuleIvjPM4aYfvYw8Fk1Hn/zAVyPJZTtZ2eE9/MIer6/18ROxX6N/e6edVSfvuZBqhxAj3YgsmSjQ/A== dependencies: - "@peculiar/asn1-schema" "^2.4.0" - "@peculiar/asn1-x509" "^2.4.0" - "@peculiar/asn1-x509-attr" "^2.4.0" + "@peculiar/asn1-schema" "^2.5.0" + "@peculiar/asn1-x509" "^2.5.0" + "@peculiar/asn1-x509-attr" "^2.5.0" asn1js "^3.0.6" tslib "^2.8.1" -"@peculiar/asn1-csr@^2.3.15": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-csr/-/asn1-csr-2.4.0.tgz#2182dd35061b03930bdc10034b3d548c38cf1264" - integrity sha512-9yQz0hQ9ynGr/I1X1v64QQGfRMbviHXyqY07cy69UzXa8s4ayCKx/TncU6lDWcTKs7P/X/AEcuJcG7Xbw0cl1A== +"@peculiar/asn1-csr@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-csr/-/asn1-csr-2.5.0.tgz#4dd7534bd7d7db5bbbbde4d00d4836bf7e818d1c" + integrity sha512-ioigvA6WSYN9h/YssMmmoIwgl3RvZlAYx4A/9jD2qaqXZwGcNlAxaw54eSx2QG1Yu7YyBC5Rku3nNoHrQ16YsQ== dependencies: - "@peculiar/asn1-schema" "^2.4.0" - "@peculiar/asn1-x509" "^2.4.0" + "@peculiar/asn1-schema" "^2.5.0" + "@peculiar/asn1-x509" "^2.5.0" asn1js "^3.0.6" tslib "^2.8.1" -"@peculiar/asn1-ecc@^2.3.15": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-ecc/-/asn1-ecc-2.4.0.tgz#e21f87b12a0be3e57d6a914e576b6d10aa4a35d4" - integrity sha512-fJiYUBCJBDkjh347zZe5H81BdJ0+OGIg0X9z06v8xXUoql3MFeENUX0JsjCaVaU9A0L85PefLPGYkIoGpTnXLQ== +"@peculiar/asn1-ecc@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-ecc/-/asn1-ecc-2.5.0.tgz#3bbeaa3443567055be112b4c7e9d5562951242cf" + integrity sha512-t4eYGNhXtLRxaP50h3sfO6aJebUCDGQACoeexcelL4roMFRRVgB20yBIu2LxsPh/tdW9I282gNgMOyg3ywg/mg== dependencies: - "@peculiar/asn1-schema" "^2.4.0" - "@peculiar/asn1-x509" "^2.4.0" + "@peculiar/asn1-schema" "^2.5.0" + "@peculiar/asn1-x509" "^2.5.0" asn1js "^3.0.6" tslib "^2.8.1" -"@peculiar/asn1-pfx@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-pfx/-/asn1-pfx-2.4.0.tgz#654327b736ca24f585e5b687d8a3f661dc60d0b1" - integrity sha512-fhpeoJ6T4nCLWT5tt3Un+BbyM1lLFnGXcRC2Ioe5ra2I0yptdjw05j20rV8BlUVzPIvUYpatq6joMQKe3ibh0w== +"@peculiar/asn1-pfx@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-pfx/-/asn1-pfx-2.5.0.tgz#22d12e676c063dfc6244278fe18eb75c2c121880" + integrity sha512-Vj0d0wxJZA+Ztqfb7W+/iu8Uasw6hhKtCdLKXLG/P3kEPIQpqGI4P4YXlROfl7gOCqFIbgsj1HzFIFwQ5s20ug== dependencies: - "@peculiar/asn1-cms" "^2.4.0" - "@peculiar/asn1-pkcs8" "^2.4.0" - "@peculiar/asn1-rsa" "^2.4.0" - "@peculiar/asn1-schema" "^2.4.0" + "@peculiar/asn1-cms" "^2.5.0" + "@peculiar/asn1-pkcs8" "^2.5.0" + "@peculiar/asn1-rsa" "^2.5.0" + "@peculiar/asn1-schema" "^2.5.0" asn1js "^3.0.6" tslib "^2.8.1" -"@peculiar/asn1-pkcs8@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.4.0.tgz#53c3c8dd2e99a2499f4a1e1639b8b4284f0b6a46" - integrity sha512-4r2LtsAM0HWXLxetGTYKyBumky7W6C1EuiOctqhl7zFK5MHjiZ+9WOeaoeTPR1g3OEoeG7KEWIkaUOyRH4ojTw== +"@peculiar/asn1-pkcs8@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.5.0.tgz#1939643773e928a4802813b595e324a05b453709" + integrity sha512-L7599HTI2SLlitlpEP8oAPaJgYssByI4eCwQq2C9eC90otFpm8MRn66PpbKviweAlhinWQ3ZjDD2KIVtx7PaVw== dependencies: - "@peculiar/asn1-schema" "^2.4.0" - "@peculiar/asn1-x509" "^2.4.0" + "@peculiar/asn1-schema" "^2.5.0" + "@peculiar/asn1-x509" "^2.5.0" asn1js "^3.0.6" tslib "^2.8.1" -"@peculiar/asn1-pkcs9@^2.3.15": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.4.0.tgz#6ceb3041358b31bd2b3f68545ec1aefa3ad1af43" - integrity sha512-D7paqEVpu9wuWuClMN+vR5cqJWJITNPaMoa9R+FmkJ8ywF9UaS2JFI0RYclKILNoLdLg1N4eUCoJvM+ubsIIZQ== +"@peculiar/asn1-pkcs9@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.5.0.tgz#8c5b873a721bb92b4fe758da9de1ead63165106d" + integrity sha512-UgqSMBLNLR5TzEZ5ZzxR45Nk6VJrammxd60WMSkofyNzd3DQLSNycGWSK5Xg3UTYbXcDFyG8pA/7/y/ztVCa6A== dependencies: - "@peculiar/asn1-cms" "^2.4.0" - "@peculiar/asn1-pfx" "^2.4.0" - "@peculiar/asn1-pkcs8" "^2.4.0" - "@peculiar/asn1-schema" "^2.4.0" - "@peculiar/asn1-x509" "^2.4.0" - "@peculiar/asn1-x509-attr" "^2.4.0" + "@peculiar/asn1-cms" "^2.5.0" + "@peculiar/asn1-pfx" "^2.5.0" + "@peculiar/asn1-pkcs8" "^2.5.0" + "@peculiar/asn1-schema" "^2.5.0" + "@peculiar/asn1-x509" "^2.5.0" + "@peculiar/asn1-x509-attr" "^2.5.0" asn1js "^3.0.6" tslib "^2.8.1" -"@peculiar/asn1-rsa@^2.3.15", "@peculiar/asn1-rsa@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-rsa/-/asn1-rsa-2.4.0.tgz#da988b4b0a8d97f7f515f1a8f583accb43a475e7" - integrity sha512-6PP75voaEnOSlWR9sD25iCQyLgFZHXbmxvUfnnDcfL6Zh5h2iHW38+bve4LfH7a60x7fkhZZNmiYqAlAff9Img== +"@peculiar/asn1-rsa@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-rsa/-/asn1-rsa-2.5.0.tgz#7283756ec596ccfbef23ff0e7eda0c37133ebed8" + integrity sha512-qMZ/vweiTHy9syrkkqWFvbT3eLoedvamcUdnnvwyyUNv5FgFXA3KP8td+ATibnlZ0EANW5PYRm8E6MJzEB/72Q== dependencies: - "@peculiar/asn1-schema" "^2.4.0" - "@peculiar/asn1-x509" "^2.4.0" + "@peculiar/asn1-schema" "^2.5.0" + "@peculiar/asn1-x509" "^2.5.0" asn1js "^3.0.6" tslib "^2.8.1" -"@peculiar/asn1-schema@^2.3.13", "@peculiar/asn1-schema@^2.3.15", "@peculiar/asn1-schema@^2.3.8", "@peculiar/asn1-schema@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.4.0.tgz#e3aa7917d433b4c3fcfa1fcb57eac233b1c38787" - integrity sha512-umbembjIWOrPSOzEGG5vxFLkeM8kzIhLkgigtsOrfLKnuzxWxejAcUX+q/SoZCdemlODOcr5WiYa7+dIEzBXZQ== +"@peculiar/asn1-schema@^2.3.13", "@peculiar/asn1-schema@^2.3.15", "@peculiar/asn1-schema@^2.3.8", "@peculiar/asn1-schema@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.5.0.tgz#4e58d7c3087c4259cebf5363e092f85b9cbf0ca1" + integrity sha512-YM/nFfskFJSlHqv59ed6dZlLZqtZQwjRVJ4bBAiWV08Oc+1rSd5lDZcBEx0lGDHfSoH3UziI2pXt2UM33KerPQ== dependencies: asn1js "^3.0.6" pvtsutils "^1.3.6" tslib "^2.8.1" -"@peculiar/asn1-x509-attr@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.4.0.tgz#f68346bf24ee2691682e5e58b5116e81cb91e280" - integrity sha512-Tr5Zi+wcE2sfR0gKRvsPwXoA1U8CuDnwiFbxCS+5Z1Nck9zlHj86+4/EZhwucjKXwPEHk1ekhqb3iwISY/+E/w== +"@peculiar/asn1-x509-attr@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.5.0.tgz#d413597dfe097620a00780e9e2ae851b06f32aed" + integrity sha512-9f0hPOxiJDoG/bfNLAFven+Bd4gwz/VzrCIIWc1025LEI4BXO0U5fOCTNDPbbp2ll+UzqKsZ3g61mpBp74gk9A== dependencies: - "@peculiar/asn1-schema" "^2.4.0" - "@peculiar/asn1-x509" "^2.4.0" + "@peculiar/asn1-schema" "^2.5.0" + "@peculiar/asn1-x509" "^2.5.0" asn1js "^3.0.6" tslib "^2.8.1" -"@peculiar/asn1-x509@^2.3.15", "@peculiar/asn1-x509@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.4.0.tgz#ca8ec0d409678e1a47bc324c3dc739085186123f" - integrity sha512-F7mIZY2Eao2TaoVqigGMLv+NDdpwuBKU1fucHPONfzaBS4JXXCNCmfO0Z3dsy7JzKGqtDcYC1mr9JjaZQZNiuw== +"@peculiar/asn1-x509@^2.3.15", "@peculiar/asn1-x509@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.5.0.tgz#305f9cd534f4b6a723d27fc59363f382debf5500" + integrity sha512-CpwtMCTJvfvYTFMuiME5IH+8qmDe3yEWzKHe7OOADbGfq7ohxeLaXwQo0q4du3qs0AII3UbLCvb9NF/6q0oTKQ== dependencies: - "@peculiar/asn1-schema" "^2.4.0" + "@peculiar/asn1-schema" "^2.5.0" asn1js "^3.0.6" pvtsutils "^1.3.6" tslib "^2.8.1" @@ -3640,17 +3699,17 @@ webcrypto-core "^1.8.0" "@peculiar/x509@^1.11.0", "@peculiar/x509@^1.12.3": - version "1.13.0" - resolved "https://registry.yarnpkg.com/@peculiar/x509/-/x509-1.13.0.tgz#c404d075aac4dfa52320e0a1cb11268efacdb9dd" - integrity sha512-r9BOb1GZ3gx58Pog7u9x70spnHlCQPFm7u/ZNlFv+uBsU7kTDY9QkUD+l+X0awopDuCK1fkH3nEIZeMDSG/jlw== + version "1.14.0" + resolved "https://registry.yarnpkg.com/@peculiar/x509/-/x509-1.14.0.tgz#4b1abdf7ca5e46f2cb303fba608ef0507762e84a" + integrity sha512-Yc4PDxN3OrxUPiXgU63c+ZRXKGE8YKF2McTciYhUHFtHVB0KMnjeFSU0qpztGhsp4P0uKix4+J2xEpIEDu8oXg== dependencies: - "@peculiar/asn1-cms" "^2.3.15" - "@peculiar/asn1-csr" "^2.3.15" - "@peculiar/asn1-ecc" "^2.3.15" - "@peculiar/asn1-pkcs9" "^2.3.15" - "@peculiar/asn1-rsa" "^2.3.15" - "@peculiar/asn1-schema" "^2.3.15" - "@peculiar/asn1-x509" "^2.3.15" + "@peculiar/asn1-cms" "^2.5.0" + "@peculiar/asn1-csr" "^2.5.0" + "@peculiar/asn1-ecc" "^2.5.0" + "@peculiar/asn1-pkcs9" "^2.5.0" + "@peculiar/asn1-rsa" "^2.5.0" + "@peculiar/asn1-schema" "^2.5.0" + "@peculiar/asn1-x509" "^2.5.0" pvtsutils "^1.3.6" reflect-metadata "^0.2.2" tslib "^2.8.1" @@ -3661,21 +3720,21 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@plebbit/plebbit-js@https://github.com/plebbit/plebbit-js.git#6612569127ae5c62906b2e66a96c8735a207af0a": +"@plebbit/plebbit-js@https://github.com/plebbit/plebbit-js.git#8958f72cc1e4487cabe7d6458df5e77a47571692": version "0.0.7" - resolved "https://github.com/plebbit/plebbit-js.git#6612569127ae5c62906b2e66a96c8735a207af0a" + resolved "https://github.com/plebbit/plebbit-js.git#8958f72cc1e4487cabe7d6458df5e77a47571692" dependencies: "@bonfida/spl-name-service" "3.0.10" "@chainsafe/libp2p-gossipsub" "14.1.1" "@enhances/with-resolvers" "0.0.5" - "@helia/block-brokers" "4.2.2" + "@helia/block-brokers" "4.2.3" "@helia/delegated-routing-v1-http-api-client" "4.2.5" - "@helia/ipns" "8.2.3" - "@helia/unixfs" "5.0.3" - "@libp2p/fetch" "3.0.18" - "@libp2p/identify" "3.0.33" + "@helia/ipns" "8.2.4" + "@helia/unixfs" "5.0.4" + "@libp2p/fetch" "3.0.21" + "@libp2p/identify" "3.0.38" "@libp2p/interfaces" "3.3.2" - "@libp2p/peer-id" "5.1.6" + "@libp2p/peer-id" "5.1.8" "@libp2p/peer-id-factory" "4.2.4" "@plebbit/plebbit-logger" "github:plebbit/plebbit-logger#355a96d7659ed820047980049dfa627d30d83a69" "@plebbit/proper-lockfile" "github:plebbit/node-proper-lockfile#7fd6332117340c1d3d98dd0afee2d31cc06f72b8" @@ -3692,13 +3751,13 @@ err-code "3.0.1" ethers "6.14.0" ext-name "5.0.0" - helia "5.4.2" + helia "5.5.0" hpagent "1.2.0" it-all "3.0.6" jose "4.11.0" js-sha256 "0.11.0" js-sha512 "0.9.0" - kubo-rpc-client "5.1.0" + kubo-rpc-client "5.2.0" libp2p-crypto "0.21.2" limiter-es6-compat "2.1.2" localforage "1.10.0" @@ -3737,11 +3796,11 @@ dependencies: debug "4.3.4" -"@plebbit/plebbit-react-hooks@https://github.com/plebbit/plebbit-react-hooks.git#60177ea1bfc4df4bcde6a793656e01b11a85aa1d": +"@plebbit/plebbit-react-hooks@https://github.com/plebbit/plebbit-react-hooks.git#eecac4503b7099b2dde22505869f2a70d280e14f": version "0.0.1" - resolved "https://github.com/plebbit/plebbit-react-hooks.git#60177ea1bfc4df4bcde6a793656e01b11a85aa1d" + resolved "https://github.com/plebbit/plebbit-react-hooks.git#eecac4503b7099b2dde22505869f2a70d280e14f" dependencies: - "@plebbit/plebbit-js" "https://github.com/plebbit/plebbit-js.git#6612569127ae5c62906b2e66a96c8735a207af0a" + "@plebbit/plebbit-js" "https://github.com/plebbit/plebbit-js.git#8958f72cc1e4487cabe7d6458df5e77a47571692" "@plebbit/plebbit-logger" "https://github.com/plebbit/plebbit-logger.git" assert "2.0.0" ethers "5.6.9" @@ -3750,7 +3809,7 @@ memoizee "0.4.15" quick-lru "5.1.1" uint8arrays "3.1.1" - uuid "8.3.2" + uuid "11.1.0" zustand "4.0.0" "@plebbit/proper-lockfile@github:plebbit/node-proper-lockfile#7fd6332117340c1d3d98dd0afee2d31cc06f72b8": @@ -3927,113 +3986,123 @@ picomatch "^2.2.2" "@rollup/pluginutils@^5.0.1": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.2.0.tgz#eac25ca5b0bdda4ba735ddaca5fbf26bd435f602" - integrity sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw== + version "5.3.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.3.0.tgz#57ba1b0cbda8e7a3c597a4853c807b156e21a7b4" + integrity sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q== dependencies: "@types/estree" "^1.0.0" estree-walker "^2.0.2" picomatch "^4.0.2" -"@rollup/rollup-android-arm-eabi@4.46.1": - version "4.46.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.1.tgz#c659481d5b15054d4636b3dd0c2f50ab3083d839" - integrity sha512-oENme6QxtLCqjChRUUo3S6X8hjCXnWmJWnedD7VbGML5GUtaOtAyx+fEEXnBXVf0CBZApMQU0Idwi0FmyxzQhw== +"@rollup/rollup-android-arm-eabi@4.52.4": + version "4.52.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.4.tgz#59e7478d310f7e6a7c72453978f562483828112f" + integrity sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA== -"@rollup/rollup-android-arm64@4.46.1": - version "4.46.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.1.tgz#7e05c3c0bf6a79ee6b40ab5e778679742f06815d" - integrity sha512-OikvNT3qYTl9+4qQ9Bpn6+XHM+ogtFadRLuT2EXiFQMiNkXFLQfNVppi5o28wvYdHL2s3fM0D/MZJ8UkNFZWsw== +"@rollup/rollup-android-arm64@4.52.4": + version "4.52.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.4.tgz#a825192a0b1b2f27a5c950c439e7e37a33c5d056" + integrity sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w== -"@rollup/rollup-darwin-arm64@4.46.1": - version "4.46.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.1.tgz#b190fbd0274fbbd4d257ff0b3d68f0885c454e0d" - integrity sha512-EFYNNGij2WllnzljQDQnlFTXzSJw87cpAs4TVBAWLdkvic5Uh5tISrIL6NRcxoh/b2EFBG/TK8hgRrGx94zD4A== +"@rollup/rollup-darwin-arm64@4.52.4": + version "4.52.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.4.tgz#4ee37078bccd725ae3c5f30ef92efc8e1bf886f3" + integrity sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg== -"@rollup/rollup-darwin-x64@4.46.1": - version "4.46.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.1.tgz#a4df7fa06ac318b66a6aa66d6f1e0a58fef58cd3" - integrity sha512-ZaNH06O1KeTug9WI2+GRBE5Ujt9kZw4a1+OIwnBHal92I8PxSsl5KpsrPvthRynkhMck4XPdvY0z26Cym/b7oA== +"@rollup/rollup-darwin-x64@4.52.4": + version "4.52.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.4.tgz#43cc08bd05bf9f388f125e7210a544e62d368d90" + integrity sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw== -"@rollup/rollup-freebsd-arm64@4.46.1": - version "4.46.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.1.tgz#6634478a78a0c17dcf55adb621fa66faa58a017b" - integrity sha512-n4SLVebZP8uUlJ2r04+g2U/xFeiQlw09Me5UFqny8HGbARl503LNH5CqFTb5U5jNxTouhRjai6qPT0CR5c/Iig== +"@rollup/rollup-freebsd-arm64@4.52.4": + version "4.52.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.4.tgz#bc8e640e28abe52450baf3fc80d9b26d9bb6587d" + integrity sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ== -"@rollup/rollup-freebsd-x64@4.46.1": - version "4.46.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.1.tgz#db42c46c0263b2562e2ba5c2e00e318646f2b24c" - integrity sha512-8vu9c02F16heTqpvo3yeiu7Vi1REDEC/yES/dIfq3tSXe6mLndiwvYr3AAvd1tMNUqE9yeGYa5w7PRbI5QUV+w== +"@rollup/rollup-freebsd-x64@4.52.4": + version "4.52.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.4.tgz#e981a22e057cc8c65bb523019d344d3a66b15bbc" + integrity sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw== -"@rollup/rollup-linux-arm-gnueabihf@4.46.1": - version "4.46.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.1.tgz#88ca443ad42c70555978b000c6d1dd925fb3203b" - integrity sha512-K4ncpWl7sQuyp6rWiGUvb6Q18ba8mzM0rjWJ5JgYKlIXAau1db7hZnR0ldJvqKWWJDxqzSLwGUhA4jp+KqgDtQ== +"@rollup/rollup-linux-arm-gnueabihf@4.52.4": + version "4.52.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.4.tgz#4036b68904f392a20f3499d63b33e055b67eb274" + integrity sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ== -"@rollup/rollup-linux-arm-musleabihf@4.46.1": - version "4.46.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.1.tgz#36106fe103d32c2a97583ebadcfb28dc63988bda" - integrity sha512-YykPnXsjUjmXE6j6k2QBBGAn1YsJUix7pYaPLK3RVE0bQL2jfdbfykPxfF8AgBlqtYbfEnYHmLXNa6QETjdOjQ== +"@rollup/rollup-linux-arm-musleabihf@4.52.4": + version "4.52.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.4.tgz#d3b1b9589606e0ff916801c855b1ace9e733427a" + integrity sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q== -"@rollup/rollup-linux-arm64-gnu@4.46.1": - version "4.46.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.1.tgz#00c28bc9210dcfbb5e7fa8e52fd827fb570afe26" - integrity sha512-kKvqBGbZ8i9pCGW3a1FH3HNIVg49dXXTsChGFsHGXQaVJPLA4f/O+XmTxfklhccxdF5FefUn2hvkoGJH0ScWOA== +"@rollup/rollup-linux-arm64-gnu@4.52.4": + version "4.52.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.4.tgz#cbf0943c477e3b96340136dd3448eaf144378cf2" + integrity sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg== -"@rollup/rollup-linux-arm64-musl@4.46.1": - version "4.46.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.1.tgz#45a13486b5523235eb87b349e7ca5a0bb85a5b0e" - integrity sha512-zzX5nTw1N1plmqC9RGC9vZHFuiM7ZP7oSWQGqpbmfjK7p947D518cVK1/MQudsBdcD84t6k70WNczJOct6+hdg== +"@rollup/rollup-linux-arm64-musl@4.52.4": + version "4.52.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.4.tgz#837f5a428020d5dce1c3b4cc049876075402cf78" + integrity sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g== -"@rollup/rollup-linux-loongarch64-gnu@4.46.1": - version "4.46.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.1.tgz#b8edd99f072cd652acbbddc1c539b1ac4254381d" - integrity sha512-O8CwgSBo6ewPpktFfSDgB6SJN9XDcPSvuwxfejiddbIC/hn9Tg6Ai0f0eYDf3XvB/+PIWzOQL+7+TZoB8p9Yuw== +"@rollup/rollup-linux-loong64-gnu@4.52.4": + version "4.52.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.4.tgz#532c214ababb32ab4bc21b4054278b9a8979e516" + integrity sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ== -"@rollup/rollup-linux-ppc64-gnu@4.46.1": - version "4.46.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.1.tgz#0ec72a4f8b7a86b13c0f6b7666ed1d3b6e8e67cc" - integrity sha512-JnCfFVEKeq6G3h3z8e60kAp8Rd7QVnWCtPm7cxx+5OtP80g/3nmPtfdCXbVl063e3KsRnGSKDHUQMydmzc/wBA== +"@rollup/rollup-linux-ppc64-gnu@4.52.4": + version "4.52.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.4.tgz#93900163b61b49cee666d10ee38257a8b1dd161a" + integrity sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g== -"@rollup/rollup-linux-riscv64-gnu@4.46.1": - version "4.46.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.1.tgz#99f06928528fb58addd12e50827e1a0269c1cca8" - integrity sha512-dVxuDqS237eQXkbYzQQfdf/njgeNw6LZuVyEdUaWwRpKHhsLI+y4H/NJV8xJGU19vnOJCVwaBFgr936FHOnJsQ== +"@rollup/rollup-linux-riscv64-gnu@4.52.4": + version "4.52.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.4.tgz#f0ffdcc7066ca04bc972370c74289f35c7a7dc42" + integrity sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg== -"@rollup/rollup-linux-riscv64-musl@4.46.1": - version "4.46.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.1.tgz#3c14aba63b4170fe3d9d0b6ad98361366170590e" - integrity sha512-CvvgNl2hrZrTR9jXK1ye0Go0HQRT6ohQdDfWR47/KFKiLd5oN5T14jRdUVGF4tnsN8y9oSfMOqH6RuHh+ck8+w== +"@rollup/rollup-linux-riscv64-musl@4.52.4": + version "4.52.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.4.tgz#361695c39dbe96773509745d77a870a32a9f8e48" + integrity sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA== -"@rollup/rollup-linux-s390x-gnu@4.46.1": - version "4.46.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.1.tgz#34c647a823dcdca0f749a2bdcbde4fb131f37a4c" - integrity sha512-x7ANt2VOg2565oGHJ6rIuuAon+A8sfe1IeUx25IKqi49OjSr/K3awoNqr9gCwGEJo9OuXlOn+H2p1VJKx1psxA== +"@rollup/rollup-linux-s390x-gnu@4.52.4": + version "4.52.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.4.tgz#09fc6cc2e266a2324e366486ae5d1bca48c43a6a" + integrity sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA== -"@rollup/rollup-linux-x64-gnu@4.46.1": - version "4.46.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.1.tgz#3991010418c005e8791c415e7c2072b247157710" - integrity sha512-9OADZYryz/7E8/qt0vnaHQgmia2Y0wrjSSn1V/uL+zw/i7NUhxbX4cHXdEQ7dnJgzYDS81d8+tf6nbIdRFZQoQ== +"@rollup/rollup-linux-x64-gnu@4.52.4": + version "4.52.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.4.tgz#aa9d5b307c08f05d3454225bb0a2b4cc87eeb2e1" + integrity sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg== -"@rollup/rollup-linux-x64-musl@4.46.1": - version "4.46.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.1.tgz#f3943e5f284f40ffbcf4a14da9ee2e43d303b462" - integrity sha512-NuvSCbXEKY+NGWHyivzbjSVJi68Xfq1VnIvGmsuXs6TCtveeoDRKutI5vf2ntmNnVq64Q4zInet0UDQ+yMB6tA== +"@rollup/rollup-linux-x64-musl@4.52.4": + version "4.52.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.4.tgz#26949e5b4645502a61daba2f7a8416bd17cb5382" + integrity sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw== -"@rollup/rollup-win32-arm64-msvc@4.46.1": - version "4.46.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.1.tgz#45b5a1d3f0af63f85044913c371d7b0519c913ad" - integrity sha512-mWz+6FSRb82xuUMMV1X3NGiaPFqbLN9aIueHleTZCc46cJvwTlvIh7reQLk4p97dv0nddyewBhwzryBHH7wtPw== +"@rollup/rollup-openharmony-arm64@4.52.4": + version "4.52.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.4.tgz#ef493c072f9dac7e0edb6c72d63366846b6ffcd9" + integrity sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA== -"@rollup/rollup-win32-ia32-msvc@4.46.1": - version "4.46.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.1.tgz#900ef7211d2929e9809f3a044c4e2fd3aa685a0c" - integrity sha512-7Thzy9TMXDw9AU4f4vsLNBxh7/VOKuXi73VH3d/kHGr0tZ3x/ewgL9uC7ojUKmH1/zvmZe2tLapYcZllk3SO8Q== +"@rollup/rollup-win32-arm64-msvc@4.52.4": + version "4.52.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.4.tgz#56e1aaa6a630d2202ee7ec0adddd05cf384ffd44" + integrity sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ== -"@rollup/rollup-win32-x64-msvc@4.46.1": - version "4.46.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.1.tgz#932d8696dfef673bee1a1e291a5531d25a6903be" - integrity sha512-7GVB4luhFmGUNXXJhH2jJwZCFB3pIOixv2E3s17GQHBFUOQaISlt7aGcQgqvCaDSxTZJUzlK/QJ1FN8S94MrzQ== +"@rollup/rollup-win32-ia32-msvc@4.52.4": + version "4.52.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.4.tgz#0a44bbf933a9651c7da2b8569fa448dec0de7480" + integrity sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw== + +"@rollup/rollup-win32-x64-gnu@4.52.4": + version "4.52.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.4.tgz#730e12f0b60b234a7c02d5d3179ca3ec7972033d" + integrity sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ== + +"@rollup/rollup-win32-x64-msvc@4.52.4": + version "4.52.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.4.tgz#5b2dd648a960b8fa00d76f2cc4eea2f03daa80f4" + integrity sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w== "@rtsao/scc@^1.1.0": version "1.1.0" @@ -4041,9 +4110,9 @@ integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g== "@rushstack/eslint-patch@^1.1.0": - version "1.12.0" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.12.0.tgz#326a7b46f6d4cfa54ae25bb888551697873069b4" - integrity sha512-5EwMtOqvJMMa3HbmxLlF74e+3/HhwBTMcvt3nqVJgGCozO6hzIPOBlwm8mGVNR9SN2IJpxSnlxczyDjcn7qIyw== + version "1.14.0" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.14.0.tgz#61b05741089552a3d352b3503d6a242978a2cb08" + integrity sha512-WJFej426qe4RWOm9MMtP4V3CV4AucXolQty+GRgAWLgQXmpCuwzs7hEpxxhSc/znXUSxum9d/P/32MW0FlAAlA== "@scure/base@^1.1.6", "@scure/base@~1.2.2", "@scure/base@~1.2.4", "@scure/base@~1.2.5": version "1.2.6" @@ -4107,9 +4176,9 @@ integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== "@sinclair/typebox@^0.34.0": - version "0.34.38" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.34.38.tgz#2365df7c23406a4d79413a766567bfbca708b49d" - integrity sha512-HpkxMmc2XmZKhvaKIZZThlHmx1L0I/V1hWK1NubtlFnr6ZqdiOpV72TKudZUNQjZNsyDBay72qFEhEvb+bcwcA== + version "0.34.41" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.34.41.tgz#aa51a6c1946df2c5a11494a2cdb9318e026db16c" + integrity sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g== "@sindresorhus/fnv1a@^3.1.0": version "3.1.0" @@ -4318,9 +4387,9 @@ buffer "^6.0.3" "@solana/web3.js@^1.32.0": - version "1.98.2" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.2.tgz#45167a5cfb64436944bf4dc1e8be8482bd6d4c14" - integrity sha512-BqVwEG+TaG2yCkBMbD3C4hdpustR4FpuUFRPUmqRZYYlPI9Hg4XMWxHWOWRzHE9Lkc9NDjzXFX7lDXSgzC7R1A== + version "1.98.4" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.4.tgz#df51d78be9d865181ec5138b4e699d48e6895bbe" + integrity sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw== dependencies: "@babel/runtime" "^7.25.0" "@noble/curves" "^1.4.2" @@ -4444,11 +4513,11 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.7.tgz#968cdc2366ec3da159f61166428ee40f370e56c2" - integrity sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng== + version "7.28.0" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.28.0.tgz#07d713d6cce0d265c9849db0cbe62d3f61f36f74" + integrity sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q== dependencies: - "@babel/types" "^7.20.7" + "@babel/types" "^7.28.2" "@types/cacheable-request@^6.0.1": version "6.0.3" @@ -4481,7 +4550,7 @@ dependencies: "@types/ms" "*" -"@types/dns-packet@*", "@types/dns-packet@^5.6.5": +"@types/dns-packet@*": version "5.6.5" resolved "https://registry.yarnpkg.com/@types/dns-packet/-/dns-packet-5.6.5.tgz#49fc29a40f5d30227ed028fa1ee82601d3745e15" integrity sha512-qXOC7XLOEe43ehtWJCMnQXvgcIpv6rPmQ1jXT98Ad8A3TB1Ue50jsCbSSSyuazScEuZ/Q026vHbrOTVkmwA+7Q== @@ -4634,11 +4703,11 @@ "@types/node" "*" "@types/node@*", "@types/node@>=13.7.0": - version "24.1.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.1.0.tgz#0993f7dc31ab5cc402d112315b463e383d68a49c" - integrity sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w== + version "24.8.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-24.8.0.tgz#a98a689a687c31d9c553f603961230333e4b5230" + integrity sha512-5x08bUtU8hfboMTrJ7mEO4CpepS9yBwAqcL52y86SWNmbPX8LVbNs3EP4cNrIZgdjk2NAlP2ahNihozpoZIxSg== dependencies: - undici-types "~7.8.0" + undici-types "~7.14.0" "@types/node@20.8.2": version "20.8.2" @@ -4658,9 +4727,9 @@ integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== "@types/node@^22.7.7": - version "22.17.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.17.0.tgz#e8c9090e957bd4d9860efb323eb92d297347eac7" - integrity sha512-bbAKTCqX5aNVryi7qXVMi+OkB3w/OyblodicMbvE38blyAz7GxXf6XYhklokijuPwwVg9sDLKRxt0ZHXQwZVfQ== + version "22.18.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.18.10.tgz#37f0ac8d2ec41af7bba06f162c85ff409e4e3420" + integrity sha512-anNG/V/Efn/YZY4pRzbACnKxNKoBng2VTFydVu8RRs5hQjikP8CQfaeAV59VFSCzKNp90mXiVXW2QzV56rwMrg== dependencies: undici-types "~6.21.0" @@ -4695,9 +4764,9 @@ "@types/retry" "*" "@types/react-dom@*": - version "19.1.7" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.1.7.tgz#2863f2aa89e023592b981204ef92c5221b286410" - integrity sha512-i5ZzwYpqjmrKenzkoLM2Ibzt6mAsM7pxB6BCIouEVVmgiqaMj1TjaK7hnA36hbW5aZv20kx7Lw6hWzPWg0Rurw== + version "19.2.2" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.2.2.tgz#a4cc874797b7ddc9cb180ef0d5dc23f596fc2332" + integrity sha512-9KQPoO6mZCi7jcIStSnlOWn2nEF3mNmyr3rIAsGnAbQKYbRLyqmeSc39EVgtxXVia+LMT8j3knZLAZAh+xLmrw== "@types/react-dom@18.2.10": version "18.2.10" @@ -4707,9 +4776,9 @@ "@types/react" "*" "@types/react@*": - version "19.1.9" - resolved "https://registry.yarnpkg.com/@types/react/-/react-19.1.9.tgz#f42b24f35474566a39b5c3a98e4d0c425b79a849" - integrity sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA== + version "19.2.2" + resolved "https://registry.yarnpkg.com/@types/react/-/react-19.2.2.tgz#ba123a75d4c2a51158697160a4ea2ff70aa6bf36" + integrity sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA== dependencies: csstype "^3.0.2" @@ -4750,9 +4819,9 @@ integrity sha512-WFHp9YUJQ6CKshqoC37iOlHnQSmxNc795UhB26CyBBttrN9svdIrUjl/NjnNmfcwtncN0h/0PPAFWv9ovP8mLA== "@types/semver@^7.3.12": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.7.0.tgz#64c441bdae033b378b6eef7d0c3d77c329b9378e" - integrity sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA== + version "7.7.1" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.7.1.tgz#3ce3af1a5524ef327d2da9e4fd8b6d95c8d70528" + integrity sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA== "@types/sinon@^17.0.4": version "17.0.4" @@ -5042,9 +5111,9 @@ react-refresh "^0.14.2" "@xmldom/xmldom@^0.8.8": - version "0.8.10" - resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz#a1337ca426aa61cef9fe15b5b28e340a72f6fa99" - integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw== + version "0.8.11" + resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.11.tgz#b79de2d67389734c57c52595f7a7305e30c2d608" + integrity sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw== JSONStream@^1.3.5: version "1.3.5" @@ -5059,11 +5128,16 @@ abbrev@1, abbrev@^1.0.0: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== -abitype@1.0.8, abitype@^1.0.6: +abitype@1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.0.8.tgz#3554f28b2e9d6e9f35eb59878193eabd1b9f46ba" integrity sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg== +abitype@^1.0.6: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.1.1.tgz#b50ed400f8bfca5452eb4033445c309d3e1117c8" + integrity sha512-Loe5/6tAgsBukY95eGaPSDmQHIjRZYQq8PB1MpsNccDIK8WiV+Uw6WzaIXipvaxTEL2yEB0OpEaQv3gs8pkS9Q== + abort-error@^1.0.0, abort-error@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/abort-error/-/abort-error-1.0.1.tgz#526c17caf2ac9eb1fab1ffdff18c5076157a324e" @@ -5085,7 +5159,7 @@ acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.14.0, acorn@^8.9.0: +acorn@^8.15.0, acorn@^8.9.0: version "8.15.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== @@ -5170,9 +5244,9 @@ ansi-regex@^5.0.1: integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" - integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== + version "6.2.2" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" + integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== ansi-styles@^3.2.1: version "3.2.1" @@ -5194,9 +5268,9 @@ ansi-styles@^5.0.0, ansi-styles@^5.2.0: integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== ansi-styles@^6.0.0, ansi-styles@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + version "6.2.3" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" + integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== any-signal@^4.1.1: version "4.1.1" @@ -5449,7 +5523,7 @@ async-function@^1.0.0: resolved "https://registry.yarnpkg.com/async-function/-/async-function-1.0.0.tgz#509c9fca60eaf85034c6829838188e4e4c8ffb2b" integrity sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA== -async@^3.2.3: +async@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== @@ -5477,9 +5551,9 @@ available-typed-arrays@^1.0.7: possible-typed-array-names "^1.0.0" axe-core@^4.10.0: - version "4.10.3" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.10.3.tgz#04145965ac7894faddbac30861e5d8f11bfd14fc" - integrity sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg== + version "4.11.0" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.11.0.tgz#16f74d6482e343ff263d4f4503829e9ee91a86b6" + integrity sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ== axios@^0.27.2: version "0.27.2" @@ -5490,9 +5564,9 @@ axios@^0.27.2: form-data "^4.0.0" axios@^1.7.2: - version "1.11.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.11.0.tgz#c2ec219e35e414c025b2095e8b8280278478fdb6" - integrity sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA== + version "1.12.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.12.2.tgz#6c307390136cf7a2278d09cec63b136dfc6e6da7" + integrity sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw== dependencies: follow-redirects "^1.15.6" form-data "^4.0.4" @@ -5598,6 +5672,11 @@ base64-js@1.5.1, base64-js@^1.3.1, base64-js@^1.5.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +baseline-browser-mapping@^2.8.9: + version "2.8.17" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.8.17.tgz#85aff3f7dd6326ea25b77ce834b96bb698545dc6" + integrity sha512-j5zJcx6golJYTG6c05LUZ3Z8Gi+M62zRT/ycz4Xq4iCOdpcxwg7ngEYD4KA0eWZC7U17qh/Smq8bYbACJ0ipBA== + bech32@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" @@ -5728,7 +5807,7 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.2.tgz#3d8fed6796c24e177737f7cc5172ee04ef39ec99" integrity sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw== -bn.js@^5.2.0, bn.js@^5.2.1: +bn.js@^5.2.0, bn.js@^5.2.1, bn.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.2.tgz#82c09f9ebbb17107cd72cb7fd39bd1f9d0aaa566" integrity sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw== @@ -5839,7 +5918,7 @@ browserify-des@^1.0.0: inherits "^2.0.1" safe-buffer "^5.1.2" -browserify-rsa@^4.0.0, browserify-rsa@^4.1.0: +browserify-rsa@^4.0.0, browserify-rsa@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.1.tgz#06e530907fe2949dc21fc3c2e2302e10b1437238" integrity sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ== @@ -5849,18 +5928,17 @@ browserify-rsa@^4.0.0, browserify-rsa@^4.1.0: safe-buffer "^5.2.1" browserify-sign@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.3.tgz#7afe4c01ec7ee59a89a558a4b75bd85ae62d4208" - integrity sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw== + version "4.2.5" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.5.tgz#3979269fa8af55ba18aac35deef11b45515cd27d" + integrity sha512-C2AUdAJg6rlM2W5QMp2Q4KGQMVBwR1lIimTsUnutJ8bMpW5B52pGpR2gEnNBNwijumDo5FojQ0L9JrXA8m4YEw== dependencies: - bn.js "^5.2.1" - browserify-rsa "^4.1.0" + bn.js "^5.2.2" + browserify-rsa "^4.1.1" create-hash "^1.2.0" create-hmac "^1.1.7" - elliptic "^6.5.5" - hash-base "~3.0" + elliptic "^6.6.1" inherits "^2.0.4" - parse-asn1 "^5.1.7" + parse-asn1 "^5.1.9" readable-stream "^2.3.8" safe-buffer "^5.2.1" @@ -5871,14 +5949,15 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.24.0, browserslist@^4.25.1: - version "4.25.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.25.1.tgz#ba9e8e6f298a1d86f829c9b975e07948967bb111" - integrity sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw== +browserslist@^4.24.0, browserslist@^4.26.3: + version "4.26.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.26.3.tgz#40fbfe2d1cd420281ce5b1caa8840049c79afb56" + integrity sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w== dependencies: - caniuse-lite "^1.0.30001726" - electron-to-chromium "^1.5.173" - node-releases "^2.0.19" + baseline-browser-mapping "^2.8.9" + caniuse-lite "^1.0.30001746" + electron-to-chromium "^1.5.227" + node-releases "^2.0.21" update-browserslist-db "^1.1.3" bs58@5.0.0: @@ -6083,10 +6162,10 @@ camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30001726: - version "1.0.30001731" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001731.tgz#277c07416ea4613ec564e5b0ffb47e7b60f32e2f" - integrity sha512-lDdp2/wrOmTRWuoB5DpfNkC0rJDU8DqRa6nYL6HK6sytw70QMopt/NIc/9SM7ylItlBWfACXk0tEn37UWM/+mg== +caniuse-lite@^1.0.30001746: + version "1.0.30001751" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz#dacd5d9f4baeea841641640139d2b2a4df4226ad" + integrity sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw== captcha-canvas@3.2.1: version "3.2.1" @@ -6108,9 +6187,9 @@ cbor@9.0.1: nofilter "^3.1.0" cborg@^4.0.0, cborg@^4.2.3, cborg@^4.2.6: - version "4.2.12" - resolved "https://registry.yarnpkg.com/cborg/-/cborg-4.2.12.tgz#2f9826773f559e436cb85a49c88fc1bb08bdc373" - integrity sha512-z126yLoavS75cdTuiKu61RC3Y3trqtDAgQRa5Q0dpHn1RmqhIedptWXKnk0lQ5yo/GmcV9myvIkzFgZ8GnqSog== + version "4.2.18" + resolved "https://registry.yarnpkg.com/cborg/-/cborg-4.2.18.tgz#d17dca8dc93d375e05dfdae08462614abf73697d" + integrity sha512-uzhkd5HOaLccokqeZa5B0Qz7/aa9C12pmUq5yU3vcy6I6OhTKdPHSzOuBPZfcoQHdcx8Emz/dWZbPNNfF/puvg== ccount@^2.0.0: version "2.0.1" @@ -6134,7 +6213,7 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -6143,9 +6222,9 @@ chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: supports-color "^7.1.0" chalk@^5.3.0, chalk@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.4.1.tgz#1b48bf0963ec158dce2aacf69c093ae2dd2092d8" - integrity sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w== + version "5.6.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" + integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== character-entities@^2.0.0: version "2.0.2" @@ -6217,9 +6296,9 @@ ci-info@^3.2.0: integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== ci-info@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.3.0.tgz#c39b1013f8fdbd28cd78e62318357d02da160cd7" - integrity sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ== + version "4.3.1" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.3.1.tgz#355ad571920810b5623e11d40232f443f16f1daa" + integrity sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA== cids@^1.0.0, cids@^1.1.5, cids@^1.1.6: version "1.1.9" @@ -6232,12 +6311,13 @@ cids@^1.0.0, cids@^1.1.5, cids@^1.1.6: uint8arrays "^3.0.0" cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.6.tgz#8fe672437d01cd6c4561af5334e0cc50ff1955f7" - integrity sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw== + version "1.0.7" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.7.tgz#bd094bfef42634ccfd9e13b9fc73274997111e39" + integrity sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA== dependencies: inherits "^2.0.4" safe-buffer "^5.2.1" + to-buffer "^1.2.2" class-is@^1.1.0: version "1.1.0" @@ -6378,9 +6458,9 @@ commander@^12.0.0, commander@^12.1.0: integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== commander@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.0.tgz#f244fc74a92343514e56229f16ef5c5e22ced5e9" - integrity sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA== + version "14.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.1.tgz#2f9225c19e6ebd0dc4404dd45821b2caa17ea09b" + integrity sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A== commander@^2.20.0, commander@^2.20.3, commander@^2.8.1: version "2.20.3" @@ -6642,16 +6722,16 @@ cordova-res@0.15.4: tslib "^2.0.3" core-js-compat@^3.43.0: - version "3.44.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.44.0.tgz#62b9165b97e4cbdb8bca16b14818e67428b4a0f8" - integrity sha512-JepmAj2zfl6ogy34qfWtcE7nHKAJnKsQFRn++scjVS2bZFllwptzw61BZcZFYBPpUznLfAvh0LGhxKppk04ClA== + version "3.46.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.46.0.tgz#0c87126a19a1af00371e12b02a2b088a40f3c6f7" + integrity sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law== dependencies: - browserslist "^4.25.1" + browserslist "^4.26.3" core-js-pure@^3.43.0: - version "3.44.0" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.44.0.tgz#6e9d6c128c8b967c5eac4f181c2b654d85c28090" - integrity sha512-gvMQAGB4dfVUxpYD0k3Fq8J+n5bB6Ytl15lqlZrOIXFzxOhtPaObfkQGHtMRdyjIf7z2IeNULwi1jEwyS+ltKQ== + version "3.46.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.46.0.tgz#9bb80248584c6334bb54cd381b0f41c619ef1b43" + integrity sha512-NMCW30bHNofuhwLhYPt66OLOKTMbOhgTTatKVbaQC3KRHpTCiRIBYvtshr+NBYSnBxwAFhjW/RfJ0XbIjS16rw== core-util-is@1.0.2: version "1.0.2" @@ -6664,11 +6744,11 @@ core-util-is@~1.0.0: integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cosmiconfig-typescript-loader@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-6.1.0.tgz#7f644503e1c2bff90aed2d29a637008f279646bb" - integrity sha512-tJ1w35ZRUiM5FeTzT7DtYWAFFv37ZLqSRkGi2oeCK1gPhvaWjkAtfXvLmvE1pRfxxp9aQo6ba/Pvg1dKj05D4g== + version "6.2.0" + resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-6.2.0.tgz#26399fa92e9569052062846afd038c94628f0f69" + integrity sha512-GEN39v7TgdxgIoNcdkRE3uiAzQt3UXLyHbRHD6YoL048XAeOomyxaP+Hh/+2C6C2wYjxJ2onhJcsQp+L4YEkVQ== dependencies: - jiti "^2.4.1" + jiti "^2.6.1" cosmiconfig@^7.0.0: version "7.1.0" @@ -6717,16 +6797,6 @@ create-hash@^1.1.0, create-hash@^1.2.0: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hash@~1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" - integrity sha512-snRpch/kwQhcdlnZKYanNF1m0RDlrCdSKQaH87w1FCFPVPNCQ/Il9QJKAX2jVBZddRdaHBMC+zXa9Gw9tmkNUA== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - ripemd160 "^2.0.0" - sha.js "^2.4.0" - create-hmac@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" @@ -6928,9 +6998,9 @@ debug@2: ms "2.0.0" debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@^4.3.5, debug@^4.3.6, debug@^4.4.0, debug@^4.4.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b" - integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== + version "4.4.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== dependencies: ms "^2.1.3" @@ -7178,9 +7248,9 @@ detect-libc@^1.0.3: integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== detect-libc@^2.0.0, detect-libc@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.4.tgz#f04715b8ba815e53b4d8109655b6508a6865a7e8" - integrity sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA== + version "2.1.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad" + integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== detect-node@^2.0.4: version "2.1.0" @@ -7415,10 +7485,10 @@ electron-publish@24.13.1: lazy-val "^1.0.5" mime "^2.5.2" -electron-to-chromium@^1.5.173: - version "1.5.192" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.192.tgz#6dfc57a41846a57b18f9c0121821a6df1e165cc1" - integrity sha512-rP8Ez0w7UNw/9j5eSXCe10o1g/8B1P5SM90PCCMVkIRQn2R0LEHWz4Eh9RnxkniuDe1W0cTSOB3MLlkTGDcuCg== +electron-to-chromium@^1.5.227: + version "1.5.237" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.237.tgz#eacf61cef3f6345d0069ab427585c5a04d7084f0" + integrity sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg== electron@36.0.0: version "36.0.0" @@ -7449,7 +7519,7 @@ elliptic@6.5.4: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" -elliptic@6.6.1, elliptic@^6.5.3, elliptic@^6.5.5: +elliptic@6.6.1, elliptic@^6.5.3, elliptic@^6.6.1: version "6.6.1" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== @@ -7520,9 +7590,9 @@ err-code@^2.0.2: integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== error-ex@^1.3.1, error-ex@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + version "1.3.4" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.4.tgz#b3a8d8bb6f92eecc1629e3e27d3c8607a8a32414" + integrity sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ== dependencies: is-arrayish "^0.2.1" @@ -7726,36 +7796,36 @@ es6-weak-map@^2.0.3: es6-symbol "^3.1.1" esbuild@^0.25.0: - version "0.25.8" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.8.tgz#482d42198b427c9c2f3a81b63d7663aecb1dda07" - integrity sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q== + version "0.25.11" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.11.tgz#0f31b82f335652580f75ef6897bba81962d9ae3d" + integrity sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q== optionalDependencies: - "@esbuild/aix-ppc64" "0.25.8" - "@esbuild/android-arm" "0.25.8" - "@esbuild/android-arm64" "0.25.8" - "@esbuild/android-x64" "0.25.8" - "@esbuild/darwin-arm64" "0.25.8" - "@esbuild/darwin-x64" "0.25.8" - "@esbuild/freebsd-arm64" "0.25.8" - "@esbuild/freebsd-x64" "0.25.8" - "@esbuild/linux-arm" "0.25.8" - "@esbuild/linux-arm64" "0.25.8" - "@esbuild/linux-ia32" "0.25.8" - "@esbuild/linux-loong64" "0.25.8" - "@esbuild/linux-mips64el" "0.25.8" - "@esbuild/linux-ppc64" "0.25.8" - "@esbuild/linux-riscv64" "0.25.8" - "@esbuild/linux-s390x" "0.25.8" - "@esbuild/linux-x64" "0.25.8" - "@esbuild/netbsd-arm64" "0.25.8" - "@esbuild/netbsd-x64" "0.25.8" - "@esbuild/openbsd-arm64" "0.25.8" - "@esbuild/openbsd-x64" "0.25.8" - "@esbuild/openharmony-arm64" "0.25.8" - "@esbuild/sunos-x64" "0.25.8" - "@esbuild/win32-arm64" "0.25.8" - "@esbuild/win32-ia32" "0.25.8" - "@esbuild/win32-x64" "0.25.8" + "@esbuild/aix-ppc64" "0.25.11" + "@esbuild/android-arm" "0.25.11" + "@esbuild/android-arm64" "0.25.11" + "@esbuild/android-x64" "0.25.11" + "@esbuild/darwin-arm64" "0.25.11" + "@esbuild/darwin-x64" "0.25.11" + "@esbuild/freebsd-arm64" "0.25.11" + "@esbuild/freebsd-x64" "0.25.11" + "@esbuild/linux-arm" "0.25.11" + "@esbuild/linux-arm64" "0.25.11" + "@esbuild/linux-ia32" "0.25.11" + "@esbuild/linux-loong64" "0.25.11" + "@esbuild/linux-mips64el" "0.25.11" + "@esbuild/linux-ppc64" "0.25.11" + "@esbuild/linux-riscv64" "0.25.11" + "@esbuild/linux-s390x" "0.25.11" + "@esbuild/linux-x64" "0.25.11" + "@esbuild/netbsd-arm64" "0.25.11" + "@esbuild/netbsd-x64" "0.25.11" + "@esbuild/openbsd-arm64" "0.25.11" + "@esbuild/openbsd-x64" "0.25.11" + "@esbuild/openharmony-arm64" "0.25.11" + "@esbuild/sunos-x64" "0.25.11" + "@esbuild/win32-arm64" "0.25.11" + "@esbuild/win32-ia32" "0.25.11" + "@esbuild/win32-x64" "0.25.11" escalade@^3.1.1, escalade@^3.2.0: version "3.2.0" @@ -8223,21 +8293,21 @@ expect@^29.0.0: jest-util "^29.7.0" expect@^30.0.0: - version "30.0.5" - resolved "https://registry.yarnpkg.com/expect/-/expect-30.0.5.tgz#c23bf193c5e422a742bfd2990ad990811de41a5a" - integrity sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ== + version "30.2.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-30.2.0.tgz#d4013bed267013c14bc1199cec8aa57cee9b5869" + integrity sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw== dependencies: - "@jest/expect-utils" "30.0.5" - "@jest/get-type" "30.0.1" - jest-matcher-utils "30.0.5" - jest-message-util "30.0.5" - jest-mock "30.0.5" - jest-util "30.0.5" + "@jest/expect-utils" "30.2.0" + "@jest/get-type" "30.1.0" + jest-matcher-utils "30.2.0" + jest-message-util "30.2.0" + jest-mock "30.2.0" + jest-util "30.2.0" exponential-backoff@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.2.tgz#a8f26adb96bf78e8cd8ad1037928d5e5c0679d91" - integrity sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA== + version "3.1.3" + resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.3.tgz#51cf92c1c0493c766053f9d3abee4434c244d2f6" + integrity sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA== ext-list@^2.0.0: version "2.2.2" @@ -8333,9 +8403,9 @@ fast-stable-stringify@^1.0.0: integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== fast-uri@^3.0.1: - version "3.0.6" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.6.tgz#88f130b77cfaea2378d56bf970dea21257a68748" - integrity sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa" + integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA== fastq@^1.6.0: version "1.19.1" @@ -8351,10 +8421,10 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" -fdir@^6.4.4: - version "6.4.6" - resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.6.tgz#2b268c0232697063111bbf3f64810a2a741ba281" - integrity sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w== +fdir@^6.5.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" + integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== figures@^3.0.0: version "3.2.0" @@ -8473,9 +8543,9 @@ flatted@^3.2.9: integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== follow-redirects@^1.0.0, follow-redirects@^1.14.9, follow-redirects@^1.15.6: - version "1.15.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1" - integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== + version "1.15.11" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340" + integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== for-each@^0.3.3, for-each@^0.3.5: version "0.3.5" @@ -8513,7 +8583,7 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@11.3.0, fs-extra@^11.2.0: +fs-extra@11.3.0: version "11.3.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.0.tgz#0daced136bbaf65a555a326719af931adc7a314d" integrity sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew== @@ -8541,6 +8611,15 @@ fs-extra@^10.0.0, fs-extra@^10.1.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@^11.2.0: + version "11.3.2" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.2.tgz#c838aeddc6f4a8c74dd15f85e11fe5511bfe02a4" + integrity sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -8609,6 +8688,11 @@ gauge@^3.0.0: strip-ansi "^6.0.1" wide-align "^1.1.2" +generator-function@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/generator-function/-/generator-function-2.0.1.tgz#0e75dd410d1243687a0ba2e951b94eedb8f737a2" + integrity sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g== + gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -8960,23 +9044,17 @@ has-unicode@^2.0.1: resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== -hash-base@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" - integrity sha512-0TROgQ1/SxE6KmxWSvXHvRj90/Xo1JvZShofnYF+f6ZsGtR4eES7WfrQzPalmyagfKZCXpVnitiRebZulWsbiw== - dependencies: - inherits "^2.0.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== +hash-base@^3.0.0, hash-base@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.2.tgz#79d72def7611c3f6e3c3b5730652638001b10a74" + integrity sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg== dependencies: inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" + readable-stream "^2.3.8" + safe-buffer "^5.2.1" + to-buffer "^1.2.1" -hash-base@~3.0, hash-base@~3.0.4: +hash-base@~3.0.4: version "3.0.5" resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.5.tgz#52480e285395cf7fba17dc4c9e47acdc7f248a8a" integrity sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg== @@ -9080,18 +9158,18 @@ hastscript@^9.0.0: property-information "^7.0.0" space-separated-tokens "^2.0.0" -helia@5.4.2: - version "5.4.2" - resolved "https://registry.yarnpkg.com/helia/-/helia-5.4.2.tgz#d5abbd55c7f771ad505ed3de44464616f3334f82" - integrity sha512-4jFBFE+dn+1UClCDbJBP+dA6OT9TrD+f8m5VIle7TCTAYTkDfR4mi0VtaWM4CWvrbDYwBk26xR9roYtXlG9oHw== +helia@5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/helia/-/helia-5.5.0.tgz#ec21e3f81afadf7ed82e018b0a0d6d1d334176e9" + integrity sha512-nQT+447bM1WYOrKjy0jQkhwSsvoTlfeu0yjSaoa6/3iFCQp9dsoIo5SbKeiSLumiOM+JAkrBz8w2Y9fSJQA+bQ== dependencies: "@chainsafe/libp2p-noise" "^16.0.1" "@chainsafe/libp2p-yamux" "^7.0.1" - "@helia/block-brokers" "^4.2.2" + "@helia/block-brokers" "^4.2.3" "@helia/delegated-routing-v1-http-api-client" "^4.2.1" - "@helia/interface" "^5.3.2" - "@helia/routers" "^3.1.2" - "@helia/utils" "^1.3.2" + "@helia/interface" "^5.4.0" + "@helia/routers" "^3.1.3" + "@helia/utils" "^1.4.0" "@ipshipyard/libp2p-auto-tls" "^1.0.0" "@libp2p/autonat" "^2.0.19" "@libp2p/bootstrap" "^11.0.20" @@ -9113,10 +9191,9 @@ helia@5.4.2: "@multiformats/dns" "^1.0.6" blockstore-core "^5.0.2" datastore-core "^10.0.2" - interface-blockstore "^5.3.1" interface-datastore "^8.3.1" ipns "^10.0.0" - libp2p "^2.3.1" + libp2p "^2.9.0" multiformats "^13.3.1" hermes-estree@0.25.1: @@ -9349,9 +9426,9 @@ import-fresh@^3.2.1, import-fresh@^3.3.0: resolve-from "^4.0.0" import-meta-resolve@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz#f9db8bead9fafa61adb811db77a2bf22c5399706" - integrity sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw== + version "4.2.0" + resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz#08cb85b5bd37ecc8eb1e0f670dc2767002d43734" + integrity sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg== imurmurhash@^0.1.4: version "0.1.4" @@ -9430,7 +9507,7 @@ interface-blockstore@^5.0.0, interface-blockstore@^5.3.1, interface-blockstore@^ interface-store "^6.0.0" multiformats "^13.3.6" -interface-datastore@^8.0.0, interface-datastore@^8.3.0, interface-datastore@^8.3.1: +interface-datastore@^8.0.0, interface-datastore@^8.3.1: version "8.3.2" resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-8.3.2.tgz#1ae2f78d1cbc7a99421d551fd0cec00b8859399d" integrity sha512-R3NLts7pRbJKc3qFdQf+u40hK8XWc0w4Qkx3OFEstC80VoaDUABY/dXA2EJPhtNC+bsrf41Ehvqb6+pnIclyRA== @@ -9438,6 +9515,14 @@ interface-datastore@^8.0.0, interface-datastore@^8.3.0, interface-datastore@^8.3 interface-store "^6.0.0" uint8arrays "^5.1.0" +interface-datastore@^9.0.1, interface-datastore@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-9.0.2.tgz#6cc02cc07d5946b6198e7262ea03937297de6662" + integrity sha512-jebn+GV/5LTDDoyicNIB4D9O0QszpPqT09Z/MpEWvf3RekjVKpXJCDguM5Au2fwIFxFDAQMZe5bSla0jMamCNg== + dependencies: + interface-store "^7.0.0" + uint8arrays "^5.1.0" + interface-ipld-format@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/interface-ipld-format/-/interface-ipld-format-1.0.1.tgz#bee39c70c584a033e186ff057a2be89f215963e3" @@ -9452,6 +9537,11 @@ interface-store@^6.0.0, interface-store@^6.0.2, interface-store@^6.0.3: resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-6.0.3.tgz#a4443490976f52e1b40ff99ddfbc690dfbb00863" integrity sha512-+WvfEZnFUhRwFxgz+QCQi7UC6o9AM0EHM9bpIe2Nhqb100NHCsTvNAn4eJgvgV2/tmLo1MP9nGxQKEcZTAueLA== +interface-store@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-7.0.1.tgz#6d1c011854218a075eae6d471b5adc1edc372a95" + integrity sha512-OPRRUO3Cs6Jr/t98BrJLQp1jUTPgrRH0PqFfuNoPAqd+J7ABN1tjFVjQdaOBiybYJTS/AyBSZnZVWLPvp3dW3w== + internal-slot@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.1.0.tgz#1eac91762947d2f7056bc838d93e13b2e9604961" @@ -9461,13 +9551,10 @@ internal-slot@^1.1.0: hasown "^2.0.2" side-channel "^1.1.0" -ip-address@^9.0.5: - version "9.0.5" - resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a" - integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g== - dependencies: - jsbn "1.1.0" - sprintf-js "^1.1.3" +ip-address@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-10.0.1.tgz#a8180b783ce7788777d796286d61bce4276818ed" + integrity sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA== ip-regex@^4.1.0: version "4.3.0" @@ -9493,9 +9580,9 @@ ipfs-only-hash@^4.0.0: meow "^9.0.0" ipfs-unixfs-exporter@^13.6.1: - version "13.6.6" - resolved "https://registry.yarnpkg.com/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-13.6.6.tgz#d6d5f5a2c56edb48960727dddaf445960d65c046" - integrity sha512-i/U1gU8AIFuuJH4y06SjtpFpFAhBixrMkvZJsurrGregSkoSroBxsxJZDMb64p2TenN+m5397oznINEbOzPQZA== + version "13.7.3" + resolved "https://registry.yarnpkg.com/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-13.7.3.tgz#0b2f5de59ad8429356e2a02633b362a58d085243" + integrity sha512-sTFjAEnsPu5irh9rvT1j5mNf7nXnW78x5SJrCIrNZb1UqkXQtNX81RjAnTBShUtZ5ujSOc/yrC9Az8il8NVkKQ== dependencies: "@ipld/dag-cbor" "^9.2.4" "@ipld/dag-json" "^10.2.5" @@ -9585,15 +9672,15 @@ ipld-dag-pb@^0.22.2: uint8arrays "^2.0.5" ipns@^10.0.0: - version "10.1.2" - resolved "https://registry.yarnpkg.com/ipns/-/ipns-10.1.2.tgz#f0b0e76bc98e86872ffb751b7fd202cd2c2c61ae" - integrity sha512-RKAX20vZSHWEobmUw4zpU8t/kw+0CkrJYMA5ou39kNW5B4sAPGOiR/wGK9c51tQKA3rb8SeKs5g7ndNvNiS/vg== + version "10.1.3" + resolved "https://registry.yarnpkg.com/ipns/-/ipns-10.1.3.tgz#371db68357c0e633a72cc6ec9ca7565e1f733cf6" + integrity sha512-b2Zeh8+7qOV11NjnTsYLpG8K6T13uBMndpzk9N9E2Qjz/u80qsxvKpspSP32sErOLr/GWjdFVVc02E9PMojQNA== dependencies: "@libp2p/crypto" "^5.0.0" - "@libp2p/interface" "^2.0.0" - "@libp2p/logger" "^5.0.0" + "@libp2p/interface" "^3.0.2" + "@libp2p/logger" "^6.0.4" cborg "^4.2.3" - interface-datastore "^8.3.0" + interface-datastore "^9.0.2" multiformats "^13.2.2" protons-runtime "^5.5.0" timestamp-nano "^1.0.1" @@ -9623,9 +9710,9 @@ is-arrayish@^0.2.1: integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + version "0.3.4" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.4.tgz#1ee5553818511915685d33bb13d31bf854e5059d" + integrity sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA== is-async-function@^2.0.0: version "2.1.1" @@ -9727,12 +9814,13 @@ is-fullwidth-code-point@^4.0.0: integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== is-generator-function@^1.0.10, is-generator-function@^1.0.7: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.1.0.tgz#bf3eeda931201394f57b5dba2800f91a238309ca" - integrity sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ== + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.1.2.tgz#ae3b61e3d5ea4e4839b90bad22b02335051a17d5" + integrity sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA== dependencies: - call-bound "^1.0.3" - get-proto "^1.0.0" + call-bound "^1.0.4" + generator-function "^2.0.0" + get-proto "^1.0.1" has-tostringtag "^1.0.2" safe-regex-test "^1.1.0" @@ -9795,9 +9883,9 @@ is-negative-zero@^2.0.3: integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== is-network-error@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-network-error/-/is-network-error-1.1.0.tgz#d26a760e3770226d11c169052f266a4803d9c997" - integrity sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g== + version "1.3.0" + resolved "https://registry.yarnpkg.com/is-network-error/-/is-network-error-1.3.0.tgz#2ce62cbca444abd506f8a900f39d20b898d37512" + integrity sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw== is-number-object@^1.1.1: version "1.1.1" @@ -9992,9 +10080,9 @@ isbinaryfile@^4.0.8: integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== isbinaryfile@^5.0.0: - version "5.0.4" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-5.0.4.tgz#2a2edefa76cafa66613fe4c1ea52f7f031017bdf" - integrity sha512-YKBKVkKhty7s8rxddb40oOkuP0NbaeXrQvLin6QMHL7Ypiy2RW9LwOVrVgZRyOrhQlayMd9t+D8yDy8MKFTSDQ== + version "5.0.6" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-5.0.6.tgz#01eac28867aeffaebaee7eaf21d1dd3a67d7c0c7" + integrity sha512-I+NmIfBHUl+r2wcDd6JwE9yWje/PIVY/R5/CmV8dXLZd5K+L9X2klAOwfAHNnondLXkbHyTAleQAWonpTJBTtw== isexe@^2.0.0: version "2.0.0" @@ -10330,14 +10418,13 @@ jackspeak@^4.1.1: "@isaacs/cliui" "^8.0.2" jake@^10.8.5: - version "10.9.2" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.2.tgz#6ae487e6a69afec3a5e167628996b59f35ae2b7f" - integrity sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA== + version "10.9.4" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.4.tgz#d626da108c63d5cfb00ab5c25fadc7e0084af8e6" + integrity sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA== dependencies: - async "^3.2.3" - chalk "^4.0.2" + async "^3.2.6" filelist "^1.0.4" - minimatch "^3.1.2" + picocolors "^1.1.1" jayson@^4.1.1: version "4.2.0" @@ -10357,15 +10444,15 @@ jayson@^4.1.1: uuid "^8.3.2" ws "^7.5.10" -jest-diff@30.0.5: - version "30.0.5" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-30.0.5.tgz#b40f81e0c0d13e5b81c4d62b0d0dfa6a524ee0fd" - integrity sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A== +jest-diff@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-30.2.0.tgz#e3ec3a6ea5c5747f605c9e874f83d756cba36825" + integrity sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A== dependencies: "@jest/diff-sequences" "30.0.1" - "@jest/get-type" "30.0.1" + "@jest/get-type" "30.1.0" chalk "^4.1.2" - pretty-format "30.0.5" + pretty-format "30.2.0" jest-diff@^29.7.0: version "29.7.0" @@ -10382,15 +10469,15 @@ jest-get-type@^29.6.3: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== -jest-matcher-utils@30.0.5: - version "30.0.5" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-30.0.5.tgz#dff3334be58faea4a5e1becc228656fbbfc2467d" - integrity sha512-uQgGWt7GOrRLP1P7IwNWwK1WAQbq+m//ZY0yXygyfWp0rJlksMSLQAA4wYQC3b6wl3zfnchyTx+k3HZ5aPtCbQ== +jest-matcher-utils@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz#69a0d4c271066559ec8b0d8174829adc3f23a783" + integrity sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg== dependencies: - "@jest/get-type" "30.0.1" + "@jest/get-type" "30.1.0" chalk "^4.1.2" - jest-diff "30.0.5" - pretty-format "30.0.5" + jest-diff "30.2.0" + pretty-format "30.2.0" jest-matcher-utils@^29.7.0: version "29.7.0" @@ -10402,18 +10489,18 @@ jest-matcher-utils@^29.7.0: jest-get-type "^29.6.3" pretty-format "^29.7.0" -jest-message-util@30.0.5: - version "30.0.5" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-30.0.5.tgz#dd12ffec91dd3fa6a59cbd538a513d8e239e070c" - integrity sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA== +jest-message-util@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-30.2.0.tgz#fc97bf90d11f118b31e6131e2b67fc4f39f92152" + integrity sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw== dependencies: "@babel/code-frame" "^7.27.1" - "@jest/types" "30.0.5" + "@jest/types" "30.2.0" "@types/stack-utils" "^2.0.3" chalk "^4.1.2" graceful-fs "^4.2.11" micromatch "^4.0.8" - pretty-format "30.0.5" + pretty-format "30.2.0" slash "^3.0.0" stack-utils "^2.0.6" @@ -10432,26 +10519,26 @@ jest-message-util@^29.7.0: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@30.0.5: - version "30.0.5" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-30.0.5.tgz#ef437e89212560dd395198115550085038570bdd" - integrity sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ== +jest-mock@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-30.2.0.tgz#69f991614eeb4060189459d3584f710845bff45e" + integrity sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw== dependencies: - "@jest/types" "30.0.5" + "@jest/types" "30.2.0" "@types/node" "*" - jest-util "30.0.5" + jest-util "30.2.0" jest-regex-util@30.0.1: version "30.0.1" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-30.0.1.tgz#f17c1de3958b67dfe485354f5a10093298f2a49b" integrity sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA== -jest-util@30.0.5: - version "30.0.5" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-30.0.5.tgz#035d380c660ad5f1748dff71c4105338e05f8669" - integrity sha512-pvyPWssDZR0FlfMxCBoc0tvM8iUEskaRFALUtGQYzVEAqisAztmy+R8LnU14KT4XA0H/a5HMVTXat1jLne010g== +jest-util@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-30.2.0.tgz#5142adbcad6f4e53c2776c067a4db3c14f913705" + integrity sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA== dependencies: - "@jest/types" "30.0.5" + "@jest/types" "30.2.0" "@types/node" "*" chalk "^4.1.2" ci-info "^4.2.0" @@ -10470,10 +10557,10 @@ jest-util@^29.7.0: graceful-fs "^4.2.9" picomatch "^2.2.3" -jiti@^2.4.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-2.5.1.tgz#bd099c1c2be1c59bbea4e5adcd127363446759d0" - integrity sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w== +jiti@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-2.6.1.tgz#178ef2fc9a1a594248c20627cd820187a4d78d92" + integrity sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ== joi@^17.7.0: version "17.13.3" @@ -10492,9 +10579,9 @@ jose@4.11.0: integrity sha512-wLe+lJHeG8Xt6uEubS4x0LVjS/3kXXu9dGoj9BNnlhYq7Kts0Pbb2pvv5KiI0yaKH/eaiR0LUOBhOVo9ktd05A== js-base64@^3.6.0: - version "3.7.7" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.7.tgz#e51b84bf78fbf5702b9541e2cb7bfcb893b43e79" - integrity sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw== + version "3.7.8" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.8.tgz#af44496bc09fa178ed9c4adf67eb2b46f5c6d2a4" + integrity sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow== js-sha256@0.11.0: version "0.11.0" @@ -10528,21 +10615,11 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -jsbn@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" - integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== - -jsesc@^3.0.2: +jsesc@^3.0.2, jsesc@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== -jsesc@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" - integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== - json-buffer@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" @@ -10608,9 +10685,9 @@ jsonfile@^4.0.0: graceful-fs "^4.1.6" jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + version "6.2.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.2.0.tgz#7c265bd1b65de6977478300087c99f1c84383f62" + integrity sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg== dependencies: universalify "^2.0.0" optionalDependencies: @@ -10663,10 +10740,10 @@ kleur@^4.0.3, kleur@^4.1.5: resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== -kubo-rpc-client@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kubo-rpc-client/-/kubo-rpc-client-5.1.0.tgz#06f9216b2b8a62487a150261b16fd941a75adb34" - integrity sha512-yTBoyEN1Ymwi0Tzi8+Mfxylg3BRAatzykih8jzwaJjfYCqKUEqCX+43m4X78CdTPRXyIHUbdI9N0DcKRwNwk+A== +kubo-rpc-client@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/kubo-rpc-client/-/kubo-rpc-client-5.2.0.tgz#b8dfe823305ee7bc957f98a01532479b2c7005b7" + integrity sha512-J3ppL1xf7f27NDI9jUPGkr1QiExXLyxUTUwHUMMB1a4AZR4s6113SVXPHRYwe1pFIO3hRb5G+0SuHaxYSfhzBA== dependencies: "@ipld/dag-cbor" "^9.0.0" "@ipld/dag-json" "^10.0.0" @@ -10746,22 +10823,22 @@ libp2p-crypto@0.21.2, libp2p-crypto@^0.21.0: protobufjs "^6.11.2" uint8arrays "^3.0.0" -libp2p@^2.3.1, libp2p@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/libp2p/-/libp2p-2.9.0.tgz#390ab280b9716910819f421ba8adaa4c72e6d140" - integrity sha512-gzRnhLY+k9KjYifWQCYbdEfmWqCFdM0TZ5Q7qqdY13sAUKXixK0MF5+Z9LMrm5ELGDPWX7pRVLGK8BOSv5/v3Q== +libp2p@^2.9.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/libp2p/-/libp2p-2.10.0.tgz#8c69731e80b77e76c821a904b805c22b4448f92b" + integrity sha512-tgDz7YuGg1XX7UfxebCUii+IGsly/8V0ZRZdFJSDySY2i3UuqpCTsEbRApH3cBKFhcAf00nx9xj8GL9zfo+XWw== dependencies: "@chainsafe/is-ip" "^2.1.0" "@chainsafe/netmask" "^2.0.0" - "@libp2p/crypto" "^5.1.7" - "@libp2p/interface" "^2.10.5" - "@libp2p/interface-internal" "^2.3.18" - "@libp2p/logger" "^5.1.21" - "@libp2p/multistream-select" "^6.0.28" - "@libp2p/peer-collections" "^6.0.34" - "@libp2p/peer-id" "^5.1.8" - "@libp2p/peer-store" "^11.2.6" - "@libp2p/utils" "^6.7.1" + "@libp2p/crypto" "^5.1.8" + "@libp2p/interface" "^2.11.0" + "@libp2p/interface-internal" "^2.3.19" + "@libp2p/logger" "^5.2.0" + "@libp2p/multistream-select" "^6.0.29" + "@libp2p/peer-collections" "^6.0.35" + "@libp2p/peer-id" "^5.1.9" + "@libp2p/peer-store" "^11.2.7" + "@libp2p/utils" "^6.7.2" "@multiformats/dns" "^1.0.6" "@multiformats/multiaddr" "^12.4.4" "@multiformats/multiaddr-matcher" "^2.0.0" @@ -10972,9 +11049,9 @@ lru-cache@^10.0.1, lru-cache@^10.2.0: integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== lru-cache@^11.0.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.1.0.tgz#afafb060607108132dbc1cf8ae661afb69486117" - integrity sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A== + version "11.2.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.2.2.tgz#40fd37edffcfae4b2940379c0722dc6eeaa75f24" + integrity sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg== lru-cache@^5.1.1: version "5.1.1" @@ -11015,11 +11092,11 @@ magic-string@^0.25.0, magic-string@^0.25.7: sourcemap-codec "^1.4.8" magic-string@^0.30.3: - version "0.30.17" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453" - integrity sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA== + version "0.30.19" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.19.tgz#cebe9f104e565602e5d2098c5f2e79a77cc86da9" + integrity sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw== dependencies: - "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/sourcemap-codec" "^1.5.5" main-event@^1.0.0, main-event@^1.0.1: version "1.0.1" @@ -11839,9 +11916,9 @@ ms@^2.0.0, ms@^2.1.1, ms@^2.1.3: integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== ms@^3.0.0-canary.1: - version "3.0.0-canary.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-3.0.0-canary.1.tgz#c7b34fbce381492fd0b345d1cf56e14d67b77b80" - integrity sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g== + version "3.0.0-canary.202508261828" + resolved "https://registry.yarnpkg.com/ms/-/ms-3.0.0-canary.202508261828.tgz#be2e8829740af5bd1db8605ca4fcb0d1ff44c11f" + integrity sha512-NotsCoUCIUkojWCzQff4ttdCfIPoA1UGZsyQbi7KmqkNRfKCrvga8JJi2PknHymHOuor0cJSn/ylj52Cbt2IrQ== multibase@^4.0.1: version "4.0.6" @@ -11866,10 +11943,10 @@ multicodec@^3.0.1: uint8arrays "^3.0.0" varint "^6.0.0" -multiformats@^13.0.0, multiformats@^13.0.1, multiformats@^13.1.0, multiformats@^13.2.2, multiformats@^13.3.0, multiformats@^13.3.1, multiformats@^13.3.6, multiformats@^13.3.7: - version "13.3.7" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-13.3.7.tgz#9313edd1b152d9997ab6830c4f702783e724d62f" - integrity sha512-meL9DERHj+fFVWoOX9fXqfcYcSpUfSYJPcFvDPKrxitICbwAoWR+Ut4j5NO9zAT917HUHLQmqzQbAsGNHlDcxQ== +multiformats@^13.0.0, multiformats@^13.0.1, multiformats@^13.1.0, multiformats@^13.2.2, multiformats@^13.3.0, multiformats@^13.3.1, multiformats@^13.3.6, multiformats@^13.3.7, multiformats@^13.4.0: + version "13.4.1" + resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-13.4.1.tgz#d4d0aeaef73ed9dde1b04ea20c40554372085704" + integrity sha512-VqO6OSvLrFVAYYjgsr8tyv62/rCQhPgsZUXLTqoFLSgdkgiUYKYeArbt1uWLlEpkjxQe+P0+sHlbPEte1Bi06Q== multiformats@^9.4.2, multiformats@^9.4.5: version "9.9.0" @@ -11918,9 +11995,9 @@ nanoid@^3.3.11: integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== nanoid@^5.0.7, nanoid@^5.1.5: - version "5.1.5" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-5.1.5.tgz#f7597f9d9054eb4da9548cdd53ca70f1790e87de" - integrity sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw== + version "5.1.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-5.1.6.tgz#30363f664797e7d40429f6c16946d6bd7a3f26c9" + integrity sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg== napi-build-utils@^2.0.0: version "2.0.0" @@ -11989,16 +12066,16 @@ next-tick@^1.1.0: integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== node-abi@^3.3.0: - version "3.75.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.75.0.tgz#2f929a91a90a0d02b325c43731314802357ed764" - integrity sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg== + version "3.78.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.78.0.tgz#fd0ecbd0aa89857b98da06bd3909194abb0821ba" + integrity sha512-E2wEyrgX/CqvicaQYU3Ze1PFGjc4QYPGsjUrlYkqAE0WjHEZwgOsGMPMzkMse4LjJbDmaEuDX3CM036j5K2DSQ== dependencies: semver "^7.3.5" node-abi@^4.2.0: - version "4.12.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-4.12.0.tgz#2e24da338f07a09beeb2d7ad840aa83d94345c3e" - integrity sha512-bPSN9a/qIEiURzVVO/I7P/8oPeYTSl+vnvVZBXM/8XerKOgA3dMAIUjl+a+lz9VwTowwSKS3EMsgz/vWDXOkuQ== + version "4.14.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-4.14.0.tgz#7846b36a732f1afa221be3ca0e6248448bc111ef" + integrity sha512-E4n91K4Nk1Rch2KzD+edU2bfZTP4W42GypAUDXU4vu1A+4u9PvUNDkGI0dXbsy8ZeF3WGj0SD/uHxnXD/sW+3w== dependencies: semver "^7.6.3" @@ -12036,10 +12113,10 @@ node-gyp-build@^4.3.0: resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== -node-releases@^2.0.19: - version "2.0.19" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" - integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== +node-releases@^2.0.21: + version "2.0.25" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.25.tgz#95479437bd409231e03981c1f6abee67f5e962df" + integrity sha512-4auku8B/vw5psvTiiN9j1dAOsXvMoGqJuKJcR+dTdqiXEK20mMTk1UEo3HS16LeGQsVG6+qKTPM9u/qQ2LqATA== node-stdlib-browser@^1.2.0: version "1.3.1" @@ -12407,13 +12484,21 @@ p-map@^4.0.0: aggregate-error "^3.0.0" p-queue@^8.0.1, p-queue@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-8.1.0.tgz#d71929249868b10b16f885d8a82beeaf35d32279" - integrity sha512-mxLDbbGIBEXTJL0zEx8JIylaj3xQ7Z/7eEVjcF9fJX4DBiH9oqe+oahYnlKKxm0Ci9TlWTyhSHgygxMxjIB2jw== + version "8.1.1" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-8.1.1.tgz#dac3e8c57412fffa18fe6c341b141dbb3a16408b" + integrity sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ== dependencies: eventemitter3 "^5.0.1" p-timeout "^6.1.2" +p-queue@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-9.0.0.tgz#c571d6fd46ae8e79a39c842935e92d352f7701ec" + integrity sha512-KO1RyxstL9g1mK76530TExamZC/S2Glm080Nx8PE5sTd7nlduDQsAfEl4uXX+qZjLiwvDauvzXavufy3+rJ9zQ== + dependencies: + eventemitter3 "^5.0.1" + p-timeout "^7.0.0" + p-retry@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-6.2.1.tgz#81828f8dc61c6ef5a800585491572cc9892703af" @@ -12433,6 +12518,11 @@ p-timeout@^6.0.0, p-timeout@^6.1.2, p-timeout@^6.1.4: resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-6.1.4.tgz#418e1f4dd833fa96a2e3f532547dd2abdb08dbc2" integrity sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg== +p-timeout@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-7.0.1.tgz#95680a6aa693c530f14ac337b8bd32d4ec6ae4f0" + integrity sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg== + p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -12472,16 +12562,15 @@ parenthesis@^3.1.5: resolved "https://registry.yarnpkg.com/parenthesis/-/parenthesis-3.1.8.tgz#3457fccb8f05db27572b841dad9d2630b912f125" integrity sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw== -parse-asn1@^5.0.0, parse-asn1@^5.1.7: - version "5.1.7" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.7.tgz#73cdaaa822125f9647165625eb45f8a051d2df06" - integrity sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg== +parse-asn1@^5.0.0, parse-asn1@^5.1.9: + version "5.1.9" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.9.tgz#8dd24c3ea8da77dffbc708d94eaf232fd6156e95" + integrity sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg== dependencies: asn1.js "^4.10.1" browserify-aes "^1.2.0" evp_bytestokey "^1.0.3" - hash-base "~3.0" - pbkdf2 "^3.1.2" + pbkdf2 "^3.1.5" safe-buffer "^5.2.1" parse-duration@^2.1.2: @@ -12588,17 +12677,17 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pbkdf2@^3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.3.tgz#8be674d591d65658113424592a95d1517318dd4b" - integrity sha512-wfRLBZ0feWRhCIkoMB6ete7czJcnNnqRpcoWQBLqatqXXmelSRqfdDK4F3u9T2s2cXas/hQJcryI/4lAL+XTlA== +pbkdf2@^3.1.2, pbkdf2@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.5.tgz#444a59d7a259a95536c56e80c89de31cc01ed366" + integrity sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ== dependencies: - create-hash "~1.1.3" + create-hash "^1.2.0" create-hmac "^1.1.7" - ripemd160 "=2.0.1" + ripemd160 "^2.0.3" safe-buffer "^5.2.1" - sha.js "^2.4.11" - to-buffer "^1.2.0" + sha.js "^2.4.12" + to-buffer "^1.2.1" peer-id@0.16.0: version "0.16.0" @@ -12626,7 +12715,7 @@ picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -picomatch@^4.0.2: +picomatch@^4.0.2, picomatch@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== @@ -12733,10 +12822,10 @@ pretty-bytes@^6.1.1: resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-6.1.1.tgz#38cd6bb46f47afbf667c202cfc754bffd2016a3b" integrity sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ== -pretty-format@30.0.5, pretty-format@^30.0.0: - version "30.0.5" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-30.0.5.tgz#e001649d472800396c1209684483e18a4d250360" - integrity sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw== +pretty-format@30.2.0, pretty-format@^30.0.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-30.2.0.tgz#2d44fe6134529aed18506f6d11509d8a62775ebe" + integrity sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA== dependencies: "@jest/schemas" "30.0.5" ansi-styles "^5.2.0" @@ -12853,7 +12942,7 @@ protobufjs@^6.10.2, protobufjs@^6.11.2: "@types/node" ">=13.7.0" long "^4.0.0" -protons-runtime@^5.4.0, protons-runtime@^5.5.0: +protons-runtime@^5.4.0, protons-runtime@^5.5.0, protons-runtime@^5.6.0: version "5.6.0" resolved "https://registry.yarnpkg.com/protons-runtime/-/protons-runtime-5.6.0.tgz#df1ef57497d04529a23ee6020f1c24f1d15db141" integrity sha512-/Kde+sB9DsMFrddJT/UZWe6XqvL7SL5dbag/DBCElFKhkwDj7XKt53S+mzLyaDP5OqS0wXjV5SA572uWDaT0Hg== @@ -12962,11 +13051,16 @@ race-event@^1.3.0: dependencies: abort-error "^1.0.1" -race-signal@^1.1.0, race-signal@^1.1.3: +race-signal@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/race-signal/-/race-signal-1.1.3.tgz#688c117d626161abfd5ee6d9b5d84bd59df54ee5" integrity sha512-Mt2NznMgepLfORijhQMncE26IhkmjEphig+/1fKC0OtaKwys/gpvpmswSjoN01SS+VO951mj0L4VIDXdXsjnfA== +race-signal@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/race-signal/-/race-signal-2.0.0.tgz#979d58493098ad6a6b556ef5b07b897d253d6b0f" + integrity sha512-P31bLhE4ByBX/70QDXMutxnqgwrF1WUXea1O8DXuviAgkdbQ1iQMQotNgzJIBC9yUSn08u/acZrMUhgw7w6GpA== + randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -13051,9 +13145,9 @@ react-native-fetch-api@^3.0.0: p-defer "^3.0.0" react-native-webrtc@^124.0.5: - version "124.0.6" - resolved "https://registry.yarnpkg.com/react-native-webrtc/-/react-native-webrtc-124.0.6.tgz#340b61a7c35031f3281bc886af8a01e0200b7769" - integrity sha512-5GviOGK19vujT7sGvSYdZE+bBlh0KC9g1JLharzajpCDVrNdCSpYxveOJUINSRevLsmL12FgNJJgnTjFKn7Aqw== + version "124.0.7" + resolved "https://registry.yarnpkg.com/react-native-webrtc/-/react-native-webrtc-124.0.7.tgz#f50647a8eb3fae0ef29843eb1b5fe2c4ff75a56e" + integrity sha512-gnXPdbUS8IkKHq9WNaWptW/yy5s6nMyI6cNn90LXdobPVCgYSk6NA2uUGdT4c4J14BRgaFA95F+cR28tUPkMVA== dependencies: base64-js "1.5.1" debug "4.3.4" @@ -13202,10 +13296,10 @@ reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9: get-proto "^1.0.1" which-builtin-type "^1.2.1" -regenerate-unicode-properties@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz#626e39df8c372338ea9b8028d1f99dc3fd9c3db0" - integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== +regenerate-unicode-properties@^10.2.2: + version "10.2.2" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz#aa113812ba899b630658c7623466be71e1f86f66" + integrity sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g== dependencies: regenerate "^1.4.2" @@ -13227,28 +13321,28 @@ regexp.prototype.flags@^1.5.1, regexp.prototype.flags@^1.5.3, regexp.prototype.f set-function-name "^2.0.2" regexpu-core@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.2.0.tgz#0e5190d79e542bf294955dccabae04d3c7d53826" - integrity sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA== + version "6.4.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.4.0.tgz#3580ce0c4faedef599eccb146612436b62a176e5" + integrity sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA== dependencies: regenerate "^1.4.2" - regenerate-unicode-properties "^10.2.0" + regenerate-unicode-properties "^10.2.2" regjsgen "^0.8.0" - regjsparser "^0.12.0" + regjsparser "^0.13.0" unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.1.0" + unicode-match-property-value-ecmascript "^2.2.1" regjsgen@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== -regjsparser@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.12.0.tgz#0e846df6c6530586429377de56e0475583b088dc" - integrity sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== +regjsparser@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.13.0.tgz#01f8351335cf7898d43686bc74d2dd71c847ecc0" + integrity sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q== dependencies: - jsesc "~3.0.2" + jsesc "~3.1.0" rehype-raw@7.0.0: version "7.0.0" @@ -13420,21 +13514,13 @@ rimraf@^6.0.1: glob "^11.0.0" package-json-from-dist "^1.0.0" -ripemd160@=2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" - integrity sha512-J7f4wutN8mdbV08MJnXibYpCOPHR+yzy+iQ/AsjMv2j8cLavQ8VGagDFUwwTAdF8FmRKVeNpbTTEwNHCW1g94w== +ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.3.tgz#9be54e4ba5e3559c8eee06a25cd7648bbccdf5a8" + integrity sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA== dependencies: - hash-base "^2.0.0" - inherits "^2.0.1" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" + hash-base "^3.1.2" + inherits "^2.0.4" roarr@^2.15.3: version "2.15.4" @@ -13456,32 +13542,34 @@ rollup@^2.43.1, rollup@^2.77.2: fsevents "~2.3.2" rollup@^4.30.1: - version "4.46.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.46.1.tgz#287d07ef0ea17950b348b027c634a9544a1a375f" - integrity sha512-33xGNBsDJAkzt0PvninskHlWnTIPgDtTwhg0U38CUoNP/7H6wI2Cz6dUeoNPbjdTdsYTGuiFFASuUOWovH0SyQ== + version "4.52.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.52.4.tgz#71e64cce96a865fcbaa6bb62c6e82807f4e378a1" + integrity sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ== dependencies: "@types/estree" "1.0.8" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.46.1" - "@rollup/rollup-android-arm64" "4.46.1" - "@rollup/rollup-darwin-arm64" "4.46.1" - "@rollup/rollup-darwin-x64" "4.46.1" - "@rollup/rollup-freebsd-arm64" "4.46.1" - "@rollup/rollup-freebsd-x64" "4.46.1" - "@rollup/rollup-linux-arm-gnueabihf" "4.46.1" - "@rollup/rollup-linux-arm-musleabihf" "4.46.1" - "@rollup/rollup-linux-arm64-gnu" "4.46.1" - "@rollup/rollup-linux-arm64-musl" "4.46.1" - "@rollup/rollup-linux-loongarch64-gnu" "4.46.1" - "@rollup/rollup-linux-ppc64-gnu" "4.46.1" - "@rollup/rollup-linux-riscv64-gnu" "4.46.1" - "@rollup/rollup-linux-riscv64-musl" "4.46.1" - "@rollup/rollup-linux-s390x-gnu" "4.46.1" - "@rollup/rollup-linux-x64-gnu" "4.46.1" - "@rollup/rollup-linux-x64-musl" "4.46.1" - "@rollup/rollup-win32-arm64-msvc" "4.46.1" - "@rollup/rollup-win32-ia32-msvc" "4.46.1" - "@rollup/rollup-win32-x64-msvc" "4.46.1" + "@rollup/rollup-android-arm-eabi" "4.52.4" + "@rollup/rollup-android-arm64" "4.52.4" + "@rollup/rollup-darwin-arm64" "4.52.4" + "@rollup/rollup-darwin-x64" "4.52.4" + "@rollup/rollup-freebsd-arm64" "4.52.4" + "@rollup/rollup-freebsd-x64" "4.52.4" + "@rollup/rollup-linux-arm-gnueabihf" "4.52.4" + "@rollup/rollup-linux-arm-musleabihf" "4.52.4" + "@rollup/rollup-linux-arm64-gnu" "4.52.4" + "@rollup/rollup-linux-arm64-musl" "4.52.4" + "@rollup/rollup-linux-loong64-gnu" "4.52.4" + "@rollup/rollup-linux-ppc64-gnu" "4.52.4" + "@rollup/rollup-linux-riscv64-gnu" "4.52.4" + "@rollup/rollup-linux-riscv64-musl" "4.52.4" + "@rollup/rollup-linux-s390x-gnu" "4.52.4" + "@rollup/rollup-linux-x64-gnu" "4.52.4" + "@rollup/rollup-linux-x64-musl" "4.52.4" + "@rollup/rollup-openharmony-arm64" "4.52.4" + "@rollup/rollup-win32-arm64-msvc" "4.52.4" + "@rollup/rollup-win32-ia32-msvc" "4.52.4" + "@rollup/rollup-win32-x64-gnu" "4.52.4" + "@rollup/rollup-win32-x64-msvc" "4.52.4" fsevents "~2.3.2" rpc-websockets@10.0.0: @@ -13501,9 +13589,9 @@ rpc-websockets@10.0.0: utf-8-validate "^5.0.2" rpc-websockets@^9.0.2: - version "9.1.3" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.1.3.tgz#6805dfc01232389dab043861ab9fbfe9d1d75572" - integrity sha512-I+kNjW0udB4Fetr3vvtRuYZJS0PcSPyyvBcH5sDdoV8DFs5E4W2pTr7aiMlKfPxANTClP9RlqCPolj9dd5MsEA== + version "9.2.0" + resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.2.0.tgz#c95633929ca92c311ed6e169f4c986623f001505" + integrity sha512-DS/XHdPxplQTtNRKiBCRWGBJfjOk56W7fyFUpiYi9fSTWTzoEMbUkn3J4gB0IMniIEVeAGR1/rzFQogzD5MxvQ== dependencies: "@swc/helpers" "^0.5.11" "@types/uuid" "^8.3.4" @@ -13553,7 +13641,7 @@ safe-array-concat@^1.1.3: has-symbols "^1.1.0" isarray "^2.0.5" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -13645,9 +13733,9 @@ semver@^6.0.0, semver@^6.2.0, semver@^6.3.1: integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.6.0, semver@^7.6.3: - version "7.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58" - integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== + version "7.7.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946" + integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== serialize-error@^7.0.1: version "7.0.1" @@ -13704,7 +13792,7 @@ setimmediate@^1.0.4: resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== -sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8: +sha.js@^2.4.0, sha.js@^2.4.12, sha.js@^2.4.8: version "2.4.12" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.12.tgz#eb8b568bf383dfd1867a32c3f2b74eb52bdbf23f" integrity sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w== @@ -13814,9 +13902,9 @@ simple-get@^4.0.0, simple-get@^4.0.1: simple-concat "^1.0.0" simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + version "0.2.4" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.4.tgz#a8d11a45a11600d6a1ecdff6363329e3648c3667" + integrity sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw== dependencies: is-arrayish "^0.3.1" @@ -13907,11 +13995,11 @@ socks-proxy-agent@^7.0.0: socks "^2.6.2" socks@^2.6.2: - version "2.8.6" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.6.tgz#e335486a2552f34f932f0c27d8dbb93f2be867aa" - integrity sha512-pe4Y2yzru68lXCb38aAqRf5gvN8YdjP1lok5o0J7BOHljkyCGKVz7H3vpVIXKD27rj2giOJ7DwVyk/GWrPHDWA== + version "2.8.7" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.7.tgz#e2fb1d9a603add75050a2067db8c381a0b5669ea" + integrity sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A== dependencies: - ip-address "^9.0.5" + ip-address "^10.0.1" smart-buffer "^4.2.0" sort-keys-length@^1.0.0: @@ -14003,16 +14091,16 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.21" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz#6d6e980c9df2b6fc905343a3b2d702a6239536c3" - integrity sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg== + version "3.0.22" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz#abf5a08a6f5d7279559b669f47f0a43e8f3464ef" + integrity sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ== split2@^4.0.0, split2@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== -sprintf-js@^1.1.2, sprintf-js@^1.1.3: +sprintf-js@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== @@ -14248,9 +14336,9 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: ansi-regex "^5.0.1" strip-ansi@^7.0.1: - version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + version "7.1.2" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" + integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== dependencies: ansi-regex "^6.0.1" @@ -14326,6 +14414,11 @@ superstruct@^2.0.2: resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-2.0.2.tgz#3f6d32fbdc11c357deff127d591a39b996300c54" integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== +supports-color@^10.0.0: + version "10.2.2" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-10.2.2.tgz#466c2978cc5cd0052d542a0b576461c2b802ebb4" + integrity sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g== + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -14347,7 +14440,7 @@ supports-color@^8.1.1: dependencies: has-flag "^4.0.0" -supports-color@^9.2.1, supports-color@^9.4.0: +supports-color@^9.2.1: version "9.4.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.4.0.tgz#17bfcf686288f531db3dea3215510621ccb55954" integrity sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw== @@ -14363,9 +14456,9 @@ tabbable@^6.0.1: integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== tar-fs@^2.0.0, tar-fs@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.3.tgz#fb3b8843a26b6f13a08e606f7922875eb1fbbf92" - integrity sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg== + version "2.1.4" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.4.tgz#800824dbf4ef06ded9afea4acafe71c67c76b930" + integrity sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ== dependencies: chownr "^1.1.1" mkdirp-classic "^0.5.2" @@ -14452,12 +14545,12 @@ tempy@^0.6.0: unique-string "^2.0.0" terser@^5.17.4: - version "5.43.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.43.1.tgz#88387f4f9794ff1a29e7ad61fb2932e25b4fdb6d" - integrity sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg== + version "5.44.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.44.0.tgz#ebefb8e5b8579d93111bfdfc39d2cf63879f4a82" + integrity sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w== dependencies: "@jridgewell/source-map" "^0.3.3" - acorn "^8.14.0" + acorn "^8.15.0" commander "^2.20.0" source-map-support "~0.5.20" @@ -14538,12 +14631,12 @@ tinycache@1.1.2: js-sizeof "0.0.1" tinyglobby@^0.2.10: - version "0.2.14" - resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.14.tgz#5280b0cf3f972b050e74ae88406c0a6a58f4079d" - integrity sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ== + version "0.2.15" + resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.15.tgz#e228dd1e638cea993d2fdb4fcd2d4602a79951c2" + integrity sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ== dependencies: - fdir "^6.4.4" - picomatch "^4.0.2" + fdir "^6.5.0" + picomatch "^4.0.3" tldts-core@^6.1.86: version "6.1.86" @@ -14572,14 +14665,14 @@ tmp@^0.0.33: os-tmpdir "~1.0.2" tmp@^0.2.0: - version "0.2.3" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" - integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== + version "0.2.5" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.5.tgz#b06bcd23f0f3c8357b426891726d16015abfd8f8" + integrity sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow== -to-buffer@^1.1.1, to-buffer@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.2.1.tgz#2ce650cdb262e9112a18e65dc29dcb513c8155e0" - integrity sha512-tB82LpAIWjhLYbqjx3X4zEeHN6M8CiuOEy2JY8SEQVdYRe3CCHOFaqrBW1doLDrfpWhplcW7BL+bO3/6S3pcDQ== +to-buffer@^1.1.1, to-buffer@^1.2.0, to-buffer@^1.2.1, to-buffer@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.2.2.tgz#ffe59ef7522ada0a2d1cb5dfe03bb8abc3cdc133" + integrity sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw== dependencies: isarray "^2.0.5" safe-buffer "^5.2.1" @@ -14807,9 +14900,9 @@ typescript@5.1.6: integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== typescript@^5.3.3: - version "5.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e" - integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ== + version "5.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" + integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== typestub-ipfs-only-hash@4.0.0: version "4.0.0" @@ -14887,20 +14980,20 @@ undici-types@~6.21.0: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== -undici-types@~7.8.0: - version "7.8.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.8.0.tgz#de00b85b710c54122e44fbfd911f8d70174cd294" - integrity sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw== +undici-types@~7.14.0: + version "7.14.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.14.0.tgz#4c037b32ca4d7d62fae042174604341588bc0840" + integrity sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA== undici@^6.21.0: - version "6.21.3" - resolved "https://registry.yarnpkg.com/undici/-/undici-6.21.3.tgz#185752ad92c3d0efe7a7d1f6854a50f83b552d7a" - integrity sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw== + version "6.22.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-6.22.0.tgz#281adbc157af41da8e75393c9d75a1b788811bc3" + integrity sha512-hU/10obOIu62MGYjdskASR3CUAiYaFTtC9Pa6vHyf//mAipSvSQg6od2CnJswq7fvzNS3zJhxoRkgNVaHurWKw== undici@^7.12.0: - version "7.12.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-7.12.0.tgz#e93244fa49383e8a0e1a4295048fd454541c7ccb" - integrity sha512-GrKEsc3ughskmGA9jevVlIOPMiiAHJ4OFUtaAH+NhfTUSiZ1wMPIQqQvAJUrJspFXJt3EBWgpAeoHEDVT1IBug== + version "7.16.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-7.16.0.tgz#cb2a1e957726d458b536e3f076bf51f066901c1a" + integrity sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g== unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.1" @@ -14915,15 +15008,15 @@ unicode-match-property-ecmascript@^2.0.0: unicode-canonical-property-names-ecmascript "^2.0.0" unicode-property-aliases-ecmascript "^2.0.0" -unicode-match-property-value-ecmascript@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz#a0401aee72714598f739b68b104e4fe3a0cb3c71" - integrity sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg== +unicode-match-property-value-ecmascript@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz#65a7adfad8574c219890e219285ce4c64ed67eaa" + integrity sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg== unicode-property-aliases-ecmascript@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" - integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + version "2.2.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz#301d4f8a43d2b75c97adfad87c9dd5350c9475d1" + integrity sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ== unicode-trie@^2.0.0: version "2.0.0" @@ -14980,9 +15073,9 @@ unist-util-is@^5.0.0: "@types/unist" "^2.0.0" unist-util-is@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.0.tgz#b775956486aff107a9ded971d996c173374be424" - integrity sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw== + version "6.0.1" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.1.tgz#d0a3f86f2dd0db7acd7d8c2478080b5c67f9c6a9" + integrity sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g== dependencies: "@types/unist" "^3.0.0" @@ -15023,9 +15116,9 @@ unist-util-visit-parents@^5.0.0, unist-util-visit-parents@^5.1.1: unist-util-is "^5.0.0" unist-util-visit-parents@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz#4d5f85755c3b8f0dc69e21eca5d6d82d22162815" - integrity sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw== + version "6.0.2" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz#777df7fb98652ce16b4b7cd999d0a1a40efa3a02" + integrity sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ== dependencies: "@types/unist" "^3.0.0" unist-util-is "^6.0.0" @@ -15137,7 +15230,12 @@ uuid@11.1.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.0.tgz#9549028be1753bb934fc96e2bca09bb4105ae912" integrity sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A== -uuid@8.3.2, uuid@^8.3.2: +uuid@^13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-13.0.0.tgz#263dc341b19b4d755eb8fe36b78d95a6b65707e8" + integrity sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w== + +uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== @@ -15302,13 +15400,13 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" -weald@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/weald/-/weald-1.0.4.tgz#8858cf9186869deba58357ae10cf26eaada80bb0" - integrity sha512-+kYTuHonJBwmFhP1Z4YQK/dGi3jAnJGCYhyODFpHK73rbxnp9lnZQj7a2m+WVgn8fXr5bJaxUpF6l8qZpPeNWQ== +weald@^1.0.4, weald@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/weald/-/weald-1.0.6.tgz#988e7c01a332909e7cb347287ba6bd662d2fa64a" + integrity sha512-sX1PzkcMJZUJ848JbFzB6aKHHglTxqACEnq2KgI75b7vWYvfXFBNbOuDKqFKwCT44CrP6c5r+L4+5GmPnb5/SQ== dependencies: ms "^3.0.0-canary.1" - supports-color "^9.4.0" + supports-color "^10.0.0" web-namespaces@^2.0.0: version "2.0.1" From fc4802186d06ed24b7410cc49c022da06a2afc80 Mon Sep 17 00:00:00 2001 From: plebeius Date: Thu, 16 Oct 2025 23:27:06 +0200 Subject: [PATCH 06/15] fix: prevent race conditions and memory leaks in useCommentMediaInfo hook --- src/hooks/use-comment-media-info.ts | 34 ++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/src/hooks/use-comment-media-info.ts b/src/hooks/use-comment-media-info.ts index 99c9a7fd..0646aa5e 100644 --- a/src/hooks/use-comment-media-info.ts +++ b/src/hooks/use-comment-media-info.ts @@ -19,26 +19,50 @@ export const useCommentMediaInfo = (link: string, thumbnailUrl: string, linkWidt useEffect(() => { if (!(isInPostPageView || isInPendingPostView)) return; + // Reset dimensions when inputs change to avoid stale state + setThumbnailDimensions(null); + + let isMounted = true; + let img: HTMLImageElement | null = null; + const fetchAndCacheThumbnail = async () => { const mediaInfo = getCommentMediaInfo(link, thumbnailUrl, linkWidth, linkHeight); if (mediaInfo?.type === 'webpage' && !mediaInfo.thumbnail) { const newMediaInfo = await fetchWebpageThumbnailIfNeeded(mediaInfo); - if (newMediaInfo.thumbnail) { - const img = new Image(); - img.onload = () => { - setThumbnailDimensions({ width: img.width, height: img.height }); + if (newMediaInfo.thumbnail && isMounted) { + img = new Image(); + + const handleLoad = () => { + // Only update state if component is still mounted and this is the latest request + if (isMounted && img) { + setThumbnailDimensions({ width: img.width, height: img.height }); + } }; - img.onerror = () => { + + const handleError = () => { // Silently handle failed image loads }; + + img.onload = handleLoad; + img.onerror = handleError; img.src = newMediaInfo.thumbnail; } } }; fetchAndCacheThumbnail(); + + // Cleanup function to prevent memory leaks and race conditions + return () => { + isMounted = false; + if (img) { + // Remove event handlers to prevent them from being called after cleanup + img.onload = null; + img.onerror = null; + } + }; }, [link, thumbnailUrl, linkWidth, linkHeight, isInPostPageView, isInPendingPostView]); const mediaInfo = getCommentMediaInfo(link, thumbnailUrl, linkWidth, linkHeight); From 4941ec77b5c105036e8288b38dcd2ca084091213 Mon Sep 17 00:00:00 2001 From: plebeius Date: Thu, 16 Oct 2025 23:28:51 +0200 Subject: [PATCH 07/15] Update .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 18023bbf..f8e95f94 100644 --- a/.gitignore +++ b/.gitignore @@ -96,6 +96,7 @@ out # Nuxt.js build / generate output .nuxt dist +dev-dist # Gatsby files .cache/ From e1f1f280cc9a71e36406740314040c2db94d50bb Mon Sep 17 00:00:00 2001 From: plebeius Date: Thu, 16 Oct 2025 23:37:58 +0200 Subject: [PATCH 08/15] fix(post): don't render empty avatar space when image url is invalid --- src/components/post-desktop/post-desktop.tsx | 6 ++---- src/components/post-mobile/post-mobile.tsx | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/components/post-desktop/post-desktop.tsx b/src/components/post-desktop/post-desktop.tsx index 7256a21c..97661cc5 100644 --- a/src/components/post-desktop/post-desktop.tsx +++ b/src/components/post-desktop/post-desktop.tsx @@ -127,13 +127,11 @@ const PostInfo = ({ post, postReplyCount = 0, roles, isHidden }: PostProps) => { {!(isDescription || isRules) && ( <> - {author?.avatar && !(deleted || removed) && !hideAvatars ? ( + {author?.avatar && !(deleted || removed) && !hideAvatars && avatarImageUrl ? ( - ) : ( - ' ' - )} + ) : null} (ID:{' '} {deleted ? ( t('deleted') diff --git a/src/components/post-mobile/post-mobile.tsx b/src/components/post-mobile/post-mobile.tsx index cc2031e2..6a9b7db9 100644 --- a/src/components/post-mobile/post-mobile.tsx +++ b/src/components/post-mobile/post-mobile.tsx @@ -118,13 +118,11 @@ const PostInfoAndMedia = ({ post, postReplyCount = 0, roles }: PostProps) => { {!(isDescription || isRules) && ( <> - {author?.avatar && !(deleted || removed) && !hideAvatars ? ( + {author?.avatar && !(deleted || removed) && !hideAvatars && avatarImageUrl ? ( - ) : ( - ' ' - )} + ) : null} (ID: {''} {removed ? ( _.lowerCase(t('removed')) From 1360dd8348d309f041b3ad78e3e6789f5da243fc Mon Sep 17 00:00:00 2001 From: plebeius Date: Fri, 17 Oct 2025 23:30:35 +0200 Subject: [PATCH 09/15] feat: rename plebchan to 5chan --- .github/workflows/release.yml | 10 ++-- README.md | 24 ++++---- android/app/build.gradle | 4 +- android/app/src/main/AndroidManifest.xml | 2 +- .../app/src/main/assets/capacitor.config.json | 4 +- .../plebchan/android/FileUploaderPlugin.java | 2 +- .../main/java/plebchan/android/FileUtils.java | 2 +- .../java/plebchan/android/MainActivity.java | 2 +- android/app/src/main/res/values/strings.xml | 8 +-- capacitor.config.ts | 4 +- electron/after-all-artifact-build.cjs | 8 +-- electron/build-docker.sh | 16 +++--- electron/main.js | 12 ++-- index.html | 2 +- package.json | 6 +- public/assets/logo/logo-transparent.png | Bin 116556 -> 17765 bytes public/manifest.json | 4 +- public/translations/ar/default.json | 10 ++-- public/translations/bn/default.json | 10 ++-- public/translations/cs/default.json | 10 ++-- public/translations/da/default.json | 10 ++-- public/translations/de/default.json | 10 ++-- public/translations/el/default.json | 10 ++-- public/translations/en/default.json | 12 ++-- public/translations/es/default.json | 10 ++-- public/translations/fa/default.json | 10 ++-- public/translations/fi/default.json | 10 ++-- public/translations/fil/default.json | 10 ++-- public/translations/fr/default.json | 10 ++-- public/translations/he/default.json | 10 ++-- public/translations/hi/default.json | 10 ++-- public/translations/hu/default.json | 10 ++-- public/translations/id/default.json | 10 ++-- public/translations/it/default.json | 10 ++-- public/translations/ja/default.json | 10 ++-- public/translations/ko/default.json | 10 ++-- public/translations/mr/default.json | 10 ++-- public/translations/nl/default.json | 10 ++-- public/translations/no/default.json | 10 ++-- public/translations/pl/default.json | 10 ++-- public/translations/pt/default.json | 10 ++-- public/translations/ro/default.json | 10 ++-- public/translations/ru/default.json | 10 ++-- public/translations/sq/default.json | 10 ++-- public/translations/sv/default.json | 10 ++-- public/translations/te/default.json | 10 ++-- public/translations/th/default.json | 10 ++-- public/translations/tr/default.json | 10 ++-- public/translations/uk/default.json | 10 ++-- public/translations/ur/default.json | 10 ++-- public/translations/vi/default.json | 10 ++-- public/translations/zh/default.json | 10 ++-- scripts/deploy.sh | 20 +++---- scripts/release-body.js | 12 ++-- src/components/markdown/markdown.tsx | 14 ++--- .../interface-settings/interface-settings.tsx | 8 +-- src/components/topbar/topbar.tsx | 2 +- src/components/version/version.tsx | 2 +- src/constants/nsfwTags.ts | 2 +- src/hooks/use-auto-subscribe.ts | 2 +- src/hooks/use-default-subplebbits.ts | 4 +- src/hooks/use-fetch-gif-first-frame.ts | 2 +- src/hooks/use-time-filter.ts | 4 +- src/lib/utils/media-utils.ts | 2 +- src/lib/utils/url-utils.ts | 24 ++++---- src/views/board/board.tsx | 2 +- src/views/catalog/catalog.tsx | 2 +- src/views/faq/faq.tsx | 52 +++++++++--------- src/views/home/home.tsx | 8 +-- src/views/post/post.tsx | 4 +- vite.config.js | 4 +- 71 files changed, 316 insertions(+), 316 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a0e10808..5f406640 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -46,7 +46,7 @@ jobs: run: node scripts/release-body > release-body.txt - uses: ncipollo/release-action@v1 with: - artifacts: 'dist/plebchan*.AppImage,dist/plebchan-html*.zip' + artifacts: 'dist/5chan*.AppImage,dist/5chan-html*.zip' token: ${{ secrets.GITHUB_TOKEN }} replacesArtifacts: true bodyFile: "release-body.txt" @@ -93,7 +93,7 @@ jobs: run: node scripts/release-body > release-body.txt - uses: ncipollo/release-action@v1 with: - artifacts: 'dist/plebchan*.dmg' + artifacts: 'dist/5chan*.dmg' token: ${{ secrets.GITHUB_TOKEN }} replacesArtifacts: true bodyFile: "release-body.txt" @@ -127,7 +127,7 @@ jobs: run: node scripts/release-body > release-body.txt - uses: ncipollo/release-action@v1 with: - artifacts: 'dist/plebchan*.exe' + artifacts: 'dist/5chan*.exe' token: ${{ secrets.GITHUB_TOKEN }} replacesArtifacts: true bodyFile: "release-body.txt" @@ -174,14 +174,14 @@ jobs: # to create keystore: keytool -genkey -v -keystore plebbit.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias release - run: cd android/app/build/outputs/apk/release && apksigner sign --ks ../../../../../plebbit.keystore --ks-pass pass:${{ secrets.PLEBBIT_REACT_KEYSTORE_PASSWORD }} --ks-key-alias release --out app-release-signed.apk app-release-unsigned-zip.apk # move apk to dist folder - - run: mkdir -p dist && mv android/app/build/outputs/apk/release/app-release-signed.apk dist/plebchan-$(node -e "console.log(require('./package.json').version)").apk + - run: mkdir -p dist && mv android/app/build/outputs/apk/release/app-release-signed.apk dist/5chan-$(node -e "console.log(require('./package.json').version)").apk - run: ls dist # publish version release - run: node scripts/release-body > release-body.txt - uses: ncipollo/release-action@v1 with: - artifacts: 'dist/plebchan*.apk' + artifacts: 'dist/5chan*.apk' token: ${{ secrets.GITHUB_TOKEN }} replacesArtifacts: true bodyFile: "release-body.txt" diff --git a/README.md b/README.md index 0fdad157..c69d0a2f 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,33 @@ - + -_Telegram group for this repo https://t.me/plebchanreact_ +_Telegram group for this repo https://t.me/5chanreact_ -# Plebchan +# 5chan -Plebchan is a serverless, adminless, decentralized 4chan alternative where any pleb can create and own unlimited boards. All data comes from the Plebbit protocol, it's all text including links from which media is embedded, shared peer-to-peer. Users do not need to register an account before participating in the community. +5chan is a serverless, adminless, decentralized 4chan alternative where any pleb can create and own unlimited boards. All data comes from the Plebbit protocol, it's all text including links from which media is embedded, shared peer-to-peer. Users do not need to register an account before participating in the community. -- web version: https://plebchan.app, also available using Brave/IPFS Companion on https://plebchan.eth +- web version: https://5chan.app, also available using Brave/IPFS Companion on https://5chan.eth ### Downloads -- desktop version (full p2p plebbit node, seeds automatically): available for Mac/Windows/Linux, [download link in the release page](https://github.com/plebbit/plebchan/releases/latest) -- mobile version: available for Android, [download link in the release page](https://github.com/plebbit/plebchan/releases/latest) +- desktop version (full p2p plebbit node, seeds automatically): available for Mac/Windows/Linux, [download link in the release page](https://github.com/plebbit/5chan/releases/latest) +- mobile version: available for Android, [download link in the release page](https://github.com/plebbit/5chan/releases/latest) ## How to create a board -In the plebbit protocol, a plebchan board is called a _subplebbit_. To run a subplebbit, you can choose between two options: +In the plebbit protocol, a 5chan board is called a _subplebbit_. To run a subplebbit, you can choose between two options: 1. If you prefer to use a **GUI**, download the desktop version of the Seedit client, available for Windows, MacOS and Linux: [latest release](https://github.com/plebbit/seedit/releases/latest). Create a subplebbit using using the familiar old.reddit-like UI, and modify its settings to your liking. The app runs an IPFS node, meaning you have to keep it running to have your board online. 2. If you prefer to use a **command line interface**, install plebbit-cli, available for Windows, MacOS and Linux: [latest release](https://github.com/plebbit/plebbit-cli/releases/latest). Follow the instructions in the readme of the repo. When running the daemon for the first time, it will output WebUI links you can use to manage your subplebbit with the ease of the GUI. -Peers can connect to your subplebbit using any plebbit client, such as Plebchan or Seedit. They only need the subplebbit's address, which is not stored in any central database, as plebbit is a pure peer-to-peer protocol. +Peers can connect to your subplebbit using any plebbit client, such as 5chan or Seedit. They only need the subplebbit's address, which is not stored in any central database, as plebbit is a pure peer-to-peer protocol. ### How to add a board to the boards list -The boards list on plebchan is plebbit's [temporary-default-subplebbits](https://github.com/plebbit/temporary-default-subplebbits) list. You can open a pull request in that repo to add your subplebbit to the list, or contact devs via telegram [@plebbit](https://t.me/plebbit). In the future, this process will be automated by submitting proposals to a plebbit DAO, using the [plebbit token](https://etherscan.io/token/0xea81dab2e0ecbc6b5c4172de4c22b6ef6e55bd8f). +The boards list on 5chan is plebbit's [temporary-default-subplebbits](https://github.com/plebbit/temporary-default-subplebbits) list. You can open a pull request in that repo to add your subplebbit to the list, or contact devs via telegram [@plebbit](https://t.me/plebbit). In the future, this process will be automated by submitting proposals to a plebbit DAO, using the [plebbit token](https://etherscan.io/token/0xea81dab2e0ecbc6b5c4172de4c22b6ef6e55bd8f). ## To run locally 1. Install Node v22 (Download from https://nodejs.org) 2. Install Yarn: `npm install -g yarn` -3. `yarn install --frozen-lockfile` to install Plebchan dependencies +3. `yarn install --frozen-lockfile` to install 5chan dependencies 4. `yarn start` to run the web client ### Scripts: @@ -40,4 +40,4 @@ The boards list on plebchan is plebbit's [temporary-default-subplebbits](https:/ ### Build: -The linux/windows/mac/android build scripts are in https://github.com/plebbit/plebchan/blob/master/.github/workflows/release.yml +The linux/windows/mac/android build scripts are in https://github.com/plebbit/5chan/blob/master/.github/workflows/release.yml diff --git a/android/app/build.gradle b/android/app/build.gradle index 0e40d160..670cc41f 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -1,10 +1,10 @@ apply plugin: 'com.android.application' android { - namespace "plebchan.android" + namespace "5chan.android" compileSdkVersion rootProject.ext.compileSdkVersion defaultConfig { - applicationId "plebchan.android" + applicationId "5chan.android" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 6ffe9d38..085e1a14 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -13,7 +13,7 @@ - plebchan - plebchan - plebchan.android - plebchan.android + 5chan + 5chan + 5chan.android + 5chan.android diff --git a/capacitor.config.ts b/capacitor.config.ts index 53f05884..fc366b4d 100644 --- a/capacitor.config.ts +++ b/capacitor.config.ts @@ -1,8 +1,8 @@ import { CapacitorConfig } from '@capacitor/cli'; const config: CapacitorConfig = { - appId: 'plebchan.android', - appName: 'plebchan', + appId: '5chan.android', + appName: '5chan', webDir: 'build', plugins: { CapacitorHttp: { diff --git a/electron/after-all-artifact-build.cjs b/electron/after-all-artifact-build.cjs index 7b684bc2..e19a0f46 100644 --- a/electron/after-all-artifact-build.cjs +++ b/electron/after-all-artifact-build.cjs @@ -10,7 +10,7 @@ function addPortableToPortableExecutableFileName() { for (const file of files) { if (file.endsWith('.exe') && !file.match('Setup')) { const filePath = path.resolve(distFolderPath, file); - const renamedFilePath = path.resolve(distFolderPath, file.replace('plebchan', 'plebchan Portable')); + const renamedFilePath = path.resolve(distFolderPath, file.replace('5chan', '5chan Portable')); fs.moveSync(filePath, renamedFilePath); } } @@ -21,12 +21,12 @@ function createHtmlArchive() { return; } const zipBinPath = path.resolve(rootPath, 'node_modules', '7zip-bin', 'linux', 'x64', '7za'); - const plebchanHtmlFolderName = `plebchan-html-${packageJson.version}`; - const outputFile = path.resolve(distFolderPath, `${plebchanHtmlFolderName}.zip`); + const 5chanHtmlFolderName = `5chan-html-${packageJson.version}`; + const outputFile = path.resolve(distFolderPath, `${5chanHtmlFolderName}.zip`); const inputFolder = path.resolve(rootPath, 'build'); try { execSync(`${zipBinPath} a ${outputFile} ${inputFolder}`); - execSync(`${zipBinPath} rn -r ${outputFile} build ${plebchanHtmlFolderName}`); + execSync(`${zipBinPath} rn -r ${outputFile} build ${5chanHtmlFolderName}`); } catch (e) { console.error('electron build createHtmlArchive error:', e); } diff --git a/electron/build-docker.sh b/electron/build-docker.sh index a051f1ed..63080d48 100755 --- a/electron/build-docker.sh +++ b/electron/build-docker.sh @@ -14,7 +14,7 @@ dockerfile=' FROM electronuserland/builder:16 # install node_modules -WORKDIR /usr/src/plebchan +WORKDIR /usr/src/5chan COPY ./package.json . COPY ./yarn.lock . RUN yarn @@ -41,22 +41,22 @@ RUN yarn build echo $'node_modules\ndist' > .dockerignore echo "$dockerfile" | sudo docker build \ . \ - --tag plebchan-electron-builder \ + --tag 5chan-electron-builder \ --file - rm .dockerignore # build linux binary sudo docker run \ - --name plebchan-electron-builder \ - --volume "$root_path"/dist:/usr/src/plebchan/dist \ + --name 5chan-electron-builder \ + --volume "$root_path"/dist:/usr/src/5chan/dist \ --rm \ - plebchan-electron-builder \ + 5chan-electron-builder \ yarn electron:build:linux # build windows binary sudo docker run \ - --name plebchan-electron-builder \ - --volume "$root_path"/dist:/usr/src/plebchan/dist \ + --name 5chan-electron-builder \ + --volume "$root_path"/dist:/usr/src/5chan/dist \ --rm \ - plebchan-electron-builder \ + 5chan-electron-builder \ yarn electron:build:windows diff --git a/electron/main.js b/electron/main.js index ad5f6589..c0a9e3bb 100644 --- a/electron/main.js +++ b/electron/main.js @@ -38,7 +38,7 @@ ipcMain.on('get-plebbit-rpc-auth-key', (event) => event.reply('plebbit-rpc-auth- let fakeUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'; if (process.platform === 'darwin') fakeUserAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 13_5_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'; if (process.platform === 'linux') fakeUserAgent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'; -const realUserAgent = `plebchan/${packageJson.version}`; +const realUserAgent = `5chan/${packageJson.version}`; // add right click menu contextMenu({ @@ -159,7 +159,7 @@ const createMainWindow = () => { }); // open links in external browser - // do not open links in plebchan or will lead to remote execution + // do not open links in 5chan or will lead to remote execution mainWindow.webContents.on('will-navigate', (e, originalUrl) => { if (originalUrl != mainWindow.webContents.getURL()) { e.preventDefault(); @@ -190,7 +190,7 @@ const createMainWindow = () => { }); // open links (with target="_blank") in external browser - // do not open links in plebchan or will lead to remote execution + // do not open links in 5chan or will lead to remote execution mainWindow.webContents.setWindowOpenHandler(({ url }) => { const originalUrl = url; try { @@ -235,16 +235,16 @@ const createMainWindow = () => { // tray const trayIconPath = path.join(dirname, '..', isDev ? 'public' : 'build', 'electron-tray-icon.png'); const tray = new Tray(trayIconPath); - tray.setToolTip('plebchan'); + tray.setToolTip('5chan'); const trayMenu = Menu.buildFromTemplate([ { - label: 'Open plebchan', + label: 'Open 5chan', click: () => { mainWindow.show(); }, }, { - label: 'Quit plebchan', + label: 'Quit 5chan', click: () => { mainWindow.destroy(); app.quit(); diff --git a/index.html b/index.html index 30a474de..5447976b 100644 --- a/index.html +++ b/index.html @@ -9,7 +9,7 @@ - plebchan + 5chan diff --git a/package.json b/package.json index 1435e6a7..d0a23341 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "plebchan", + "name": "5chan", "version": "0.5.3", "description": "A GUI for plebbit similar to 4chan", "type": "module", @@ -127,8 +127,8 @@ }, "main": "electron/main.js", "build": { - "appId": "plebchan.desktop", - "productName": "plebchan", + "appId": "5chan.desktop", + "productName": "5chan", "beforePack": "electron/before-pack.js", "afterAllArtifactBuild": "electron/after-all-artifact-build.cjs", "extraResources": [ diff --git a/public/assets/logo/logo-transparent.png b/public/assets/logo/logo-transparent.png index 8a221d454a54ceb7709de13878ed683fce893a8f..46d428ee718fdd8054b9fcd1c09f95ac51594092 100644 GIT binary patch literal 17765 zcmce-WmH_vwkX=T1%kVU;4Z;ESa5fDcL)xRL$KiPPUG(GZjHN3a0~wU_CDvH{oZ}| z?_Fz*UUN;UDYa@=kE&VW3UU(2i1>&A003F?ho}+&073r&yTikN{Qkh2BK>$kn+wYd z0{}HKNH2ykAMd2bKa^wv08dH)02l-SJbj>mM*x5;GXQX6008i$001}+8Lf(Z9|Q$c z4M{UuSpe+^3=e>WKnFm5KoB1{Ak-27{Vx~*_-N_lg35vTA8HQde^VjobD;hk2Dtyj zIPQe44gf&1TB>NcXvoU&7~9)28k*P}nKHWDI{d=`;B)8s0BucO3`yN>ZS0(R-1*7= z#liCd|AS^CBmEbPi#0!)hO7dqh`p03DF-7nBQu!*A}J{;pOc9hkCLePe~Ev*@snA& zxH#}IF}b<9F}kra+B=yuv2b&9GcmI=v9dCJa44*RDk8bl>GDeck3{hyv9kUBsVuF1XjbZQtw^2=1FB! z1$chSE8z7JZhRrwR5G-yI!=JOwF#q z1?Q zNg2ATVyu#?Q)00S8FrnSQ?TgFP1;s;WvRQ^K==rM{PSUa-S$FA6X3fW*_$nupQW~R zMT4tIhm~!qlB{duymlr2DXq$^BW8}N{NXh?se+cSs=_m=_33cYGzx8k)qtuL0P6}XH%}$*;oC#lbEcl{!llb zdl^%F^l)Lo=#tLJS|2(yhQFQYbqJ z_983;A^?%VBw!*e0R$oAcJuO=Rn=-Pghy2^ zZQ3-ibvkNd0Sm5wR64$_u~wz0G!c-J%?Wczxp=_d$37~_&ZDZvqNd#9#gDr|KAVNR`oo{FqQ+lA~Yx(i$lAyt&9 z9^#ow{W}D5bXACvp6k}1@>e-YLLjXZA+2Gn0pXH4`A3jgb}Zct6RMV5WE6Xm0bbBN zkU|CiT(+myDv0r+qq7NCVt6s7NlroeJF_}zj3j^@2c;RTitlE1Fsio}i`Nk&Mm81| zZ(HNd$S`_{Fbk0=WA|rvDWFIPp2zQsEu_hSDCh|^%X1493o@dFgW6#=#U!QE6FOB% z+FYzN{NLX=v65zVv;Z2ysib;*6dJl$J4q1O7yo79@0m zNj(BJgVH?%#9aGIl(=Wx-=B+p>b^Y;x&M?A;NzS6Bb0(H|Mbbqi53*X97XC&ICDF4 z{@i9>Ab|1DSe=Z7#DNMmEk*g8I|d&+FGJm>20~)1ET(5WQ`O+eP=OyA5=$HG z)%ZiSXWtux@B7wkpt8A?1?Q;%am+xpM`r^>x0GqojVBB76y89X&kJ6nSVes*%!PeSYX2>6CXQ`GV#!n5y3C<``cH%B>7U4T zR$LO7w4(IEKd<+OcPOsqhrIkdLu1e){?b{Hc}AK(+t`T~(VSh_UWK1$TGSnFLtbeR zWYLQpS{IQ>2}S+hEZT9OeWy6RvhPmhj7YbVu zn^RmE>h$}I8JR%4K&Vp=<~iu?fpcJnWld{OYRpkU=AW}s#Wa(3Zv|Ix?mFAlXVtG( zv0?@`k9gjAYt}rmURQs#u&zW(>a!T^_hmyvXYU=u>20(Tpk8Q8u2aT*1X0RgwdpZ6 zd_^U;{IBc2hF||5dvi4oqqm?L40pg#FySyUj`WMFt{v|^lY7!bPp$Qsp02N|$NPL| z>EwQA*ern*oXw)$9p5`F=9Y>fs5MP#f@R{Q@SD&CMB;*E@Y-T|g(^9=k{Ej~x8;R~x_T$Aw6Nf#MHT83?)61rT`{@>` zG0ocCmVv_anN@$Es1Jh+5PPRhdTr;&yJoOU4ng-hXQC~Q7x|6RpgVh}yvB|9h=PGC zgxVwB=%y|ALRBB14WnfLS<)aPcuAwEj8^&2fb>=yEsDYR5aJd(DyWoN5n-sYmd&nw zs}+H6TL-GBosB&MKh0x(9O;Axx+oZelx|&1K$LgFJ<@|>pU`j>-=VSCp9=F`^b;m< zmb5TiLJNd@!n8nB0g94LW8*xa|^2vjhDMdGHx5HMQZzcp}pD2 zj^`!&2j%jSu{}d?w}no`ZMWdNsQ6oP*Wtf&F$nlv;@ zEoW5_R_6)rcBg_pglxPr_soS#4bQ{Etd1p5C;ywuPq%x_-$1BTIsMG6#*8J(U$)qE zx9HvmU~mGAP7-W|0y!o#dL?Z;bjbl%1+@S)BeFxI=ly_P!-Yc(eo9JQryrdBl^^)E z;e4Q-O@j;)XB5c~En-OEz|+^1>|jY-%X)r6))hYm0~qh%>r@cD_Ln3q@VXm|8)=*+ zL}yY==U#fw_P8s1W9nA`LI`9sE{qzo0eH=Tlf}{x#>^b)`POEJ4gu$j0sGjo#krXr zeS|32h3(d@)j5EV~o^8*5acm{1bfGb|)O}X?^wEwFB?U z656Go%Boo?!qPw*K=HB{_0t3nk}C=HR`U*v1knYNqTsr-=v}nzrSg^A?(+7SX}+l- zKKC~zzT>985&j8vjw*GUJ5ye}cQPYgNm)%T+qQDaRj+UjJQ!ppZ&7h)gClzP@JX2` zh3-ZhC!SDjDg$TVC70N{!?Od4G zQQ3Fqu=BLlG?+^G@qS$y8L!uJ|J^kImSK|{$&=P!2<@d$zfOiIH`roRs}}K33F(R& zi#)dmVK28YLv(UAc!K@SjTu($zx$|>-Xq{(IcY;0r0vH23_s*nYNpzW#uu}{8;*wq zU*#$;b1sFhFK+I=zHrLF^o7SmU{qTv$*Kd?{0s*wIG@A>8CHEOJ8EHOm) zMhd-&z_qxvzf}gfWk$C$rZbd_(EW|wealZbk*JNq$?y{VFX({e5tLdX%sWBR7 z#8xDf{#{ziO^4_7O%rMw(WWrq5dMeBH6oC@B7>>TtYgKkTK?`+bn@S5A7@1@XIF_6 z0nUODIrOm*J(hX>uBtbz>&?b&t zRWg)SzOB#IJS&_9h+=N&)t*9F;3n~Ng46_-@emYKPGXC-u*#E&^797cr_`nPN;%z{ z28e0bC3{?V*Y3wQJ#?@XSH_SChNFFc3%w_l=!hT#4egX^7a0M_BRPKnG5R8d40fuq zYmnqkp_J)+z-cmBUvXlqWvNU2&u!{zE5O**nqtur^<3rfsQQ|*bObOMT9|3Od{5X} zV~yP)I3tGsUfLUzYVx{rW48QGi~lPIji6aarX-)nbM6Wg@_V*nWM1!dZhOytPwt>= z)Ms>O?$Ptl83w8sEw5Db$cr{Ae|@QVO4I>p(XuI-%K|^rdoA}hOP`PHB<6e0g%iah zK5O`7MsDh;*PM%HpJ3>uB3C?Xfe>jPc1Q31h;5{7tSVL2Z7k<~_k<~;gjNQn1{pVq zY!syO`m|htVXw!Sp9)e(sLE|gN95^S{CMKax>@s>*|bUhueDS0yyj2nr_)r_Qj^Ww%>@W zex-)WbK4Wxj*9{3)9=JSp+6BTN%sZ1nrJ3fqy*`Htw0 zy#MOP1!f+u(R{!&RZ8tLG}$L#elk+{-1=D zt53^n>Nm{f1`Lz|FZD-m=^V;((J(SK>`rYA(??VC+3>M-Y_|;LlCG1 zVC8rFmP#+>xzP0f;wPPE{r$PCTe~Ue3+Vbc8fEGu)z0FFpO!52TBR9K@!fqT?uLJt zv+_?$aoYAo34c9p9_&t)A*xO>tuZS5NV`%rYFq@>J&}7@XElPu^}VNq-kSJ z{~E-AOoT19_~ZNl$gpLPqUQOQp{R+CtkCqJ33Dp!Di~1oPi7^BQTuEltkY(3VaO^7 zx5%84Isyt0FK@K`)l84}h^?nZk5Tzca29`hk9$vzTvo`M&CZZ^w)S;!B@DEeo;ttU za1aupWW#cwgb_tqe%AMNLge?X%3b7bfReFicJ_s1bH^w8dY0aWSF-D;f-5RdnB6$vp0K z+Qy-=(>FR^Y9iA2@gI4A*_y9E$kF3lqZ>lEQdCAsK!tg@v1#!zdH4cm`}G)5l~vub zl*uOd*7o%wGK|0P#Q-cb|E#;Q(@|5aH1}^yHM0$6-MK`hT5%fn1wSFPjN^5 zoMv{S0C-U_w<%}*(CMJR+W>v6je{HYayFh9wIYa)W;?QHjFY_#nb7l>p&7-ggS}Dk z`DXacK`&F?VP)2FS^2XYuGiZaz*X;-i8%l0$!2FDq}Gn!vZ~kT422jz=O4(C)}d(f zc_v+K+vIN^Hit_~y-!>ep2nv4=DUynfui45FtYojD0B+vzzSu< zef11WwVckG?^7cYpZZ7;=FgfNe7Z#(uA=3FNYyOkgn)$`)aaPu&FzI@SO;BV_ls($ z>bETmPhWeCPjltAMz!BoNf=y-mw^LqewJ^p^c@81x{vY6@nMW*b)Kwao44N=#lJXc zG>59WB(Cc$cg|s{7di3_i4>L%cyjUyf6xo;XDHU^Ul$z>wYWkw6;Z3>Yz0LeRDDF^ zsUJ1*Z^109btK~BuNy`_)5w{dpIvUW%qhD)266g+&h_S}ePjYi#B%()kVhY^ndF9Nm(!j^i}P&u-*60 zKv0bSl|4PZ#l~-}hsMx%CWAD%;f_b0-qIlBWmxuezf=2D2cIgkUTRbG*G%oqTZRZF z`>!BX2##+iq*hg1;oVJW$4*dum`}NvyG_TQ@VB#mp4XVuYu9(L%|&eLr9P>Wy1~13 zH-FkQ+#ntT0uVScEFiCm*2uVsXn@ps))ZOC!La}8ToZ`ROlnYwTze_iW3@MYRDY5e zvAz@@E*IlOoOcw_2+C5oSQ(fLzU8!e+ixGi6OAX5O05uLq5>~kXoHZdc@lKp$}8tb zwWBHzJN+;AlDEVwjejD(L$hs{8i$!U0sB?8)9cf*&GwA$04=pUm8*vGKd zj-EoPR1Ui@JrOsd;ch8ikp=+~DNuaafA!zL@513@sL|h(Y`r5?Zi+yV&hcY`+rSEAJX+6!I z6Ng=HG{|WSzaaB@@KeJb%gDc!sE3R9VsqW(sv4Es$S$mavjjQoy~M?27r&cW#7A5w zt_`HP8shGPe6d5k{^-P*8j9Q&NBy)b;>XigO{rWpzt{+TN6=!Vch23&T|9wbwOdZY zl|rt_=e#h^8x{3qSJwg}HVq=W(Urwb^z0Bwc^f63(%}IUv5`!joF|;L{R2EZ1*EgY zEGyI>74ifd53BJWg?yIxi1bHqe{QIO8^Y<5$Heora$`BhKGL2f9tF~G{m$#uf zyfQ3a|NN$sG*Gp)RG{b9XO=0_&j&%}bEv6C0uxp!Z|9D~+&6_|`S+PjPqZghN0?wP zT2=;xhEo6AxUXo7BVzAMvHZ-J&hajZ>^oN({_NO+Ko4CWkVIpR&6dOq%}K|u3)b(> z(E6BcX$Os^Bp@bPF>qi=QrpIfi5|Tp=IWAk{|&9?MmXF==Ch-9^5I;t{MhC%W`i>( zj8w*wM(Xo#51G^=f{&5_Gs9LOQI0e3)tQd@?0c{({}27QTbFuRcb=oa=GfS2?{bgn zdDn(rCN^g`H}u!-V`erWh-R~{6fvI1TCoQ2g2MiZ<|<{5_`b&AI;kNDZ0`Dc{A~58 zJ1qPXrDh;ntdxr?ggI7Nke2+wkDxY0A<1rO7wtGE$XZfaAz3v7)BHM{Vvl=N0T7@4 zw9{*s9Cztdhspr^+v41S%9WgGj~h8r@tLZ+UB8e^N12IoU6>P^0>Td%1DJgF&(-8| zP}mRDdYdrae;W|0!(S5tOU!1-KIM7Qa+4*NC@ndIWF-7H%a1xUQ|oPE;RAR+#UO}k zK%_jgO=^&;`TV0Yo7Rd-?PM&^oy4_{FSpZ?_ECc7ER`B~K65+Hugc@fcv;NK#j4$~y?LDMk zI9~6^|6_&KN{fYaHR$qg($}UKzU`lQ5QTu0gY#a~i2)chs2hK2slHICAoY6o(y@hH zXtxf}&Pcbz>lOk@MAjo6^B2P!qrXV=m)O&Vwm!OvtpSenM(wl#dIi!*<@1Mk%0gHU zU^Bedi!Z35Q=Y=YqoJA3gxZP1`N&)kZRaOpoVu+%agef4^-1 zo~$=3n!W>qMG|;1s^iScaz=1qhWGcs2P0MV)oLxUx6d@pljLVu$_?%;s9~P;DykZV zbQ7X*kr$O=-*s~EeG$$jR@$!%;iuBksiElUl) zm*)PRhJPw=YbhAKK|k6zRe5OwBGD2j=DF2+a`!vO=&Mv2_^PgWSY>pkuccWDpeQB$f%Y!!g6;9#H($*P1L6pyV#fz)zSek!V~+@`>8 z&jErj-$Gy)YX$n4+H=Wct1Hd0Dhf-Lo*UyFCm>PdIZ>Y>0f=0&%+Z2)v41(;sAQ8< z;neW!At$9zh`TSZM-F+wZ^k}lVYOih0#R?~HofTvg_*Mb=4iG1%K`Dyf5a&|i2ybm zUIkQ)d8^=bZH+HB^E);GqP=M#W|*H8=0$)KFg59!JbsB2K1Xt`-K~Qt71x)`({%=X zROGT=(X4{Ko@KK}JTa~Uwf9cc#1ljB0uq^V#tYK3RSceG>g5r4VQ@1@1k1?a0CF&7 z_Tc{ZtUr(>u1MocMuZ|Es6{*+jT_-zoFyD_)hU@LY6EovM}6k1Pk#^_kdk3Y-LiDA zlGRQEAhF}``IGW18+FH)*R()s1c%*HT;wXUUo3*jh;!JG)NUYXyrYGz1l+J34Iq8< z-qHKU^4I%TJUgtJHNuB}*C$7fyw@$1by!bzculT+Bds5L@f74{}wF4^rI-fl>q(1$*__#~;0t z;yI9dGX7%Rj1VAZAMBFvfC$kZp%_z;9zEFa<@O7BnX{bINmCBJPQqu=F96^7y`P`T z*Xetv2HH&0*!*+UhM&ReRDO-gpP!;VF_X=~jS|^{d985b^PsBra@(GMN*Q28F02gB z?!sqCIac4_p9EwAmAbuQtBA4?WT_#_b- zlApg1+2$1+RQSgVT;mvXW+@(zR-@Kd_B~*7Gx^%E_f88ctI(UA5l~DUKi$T{z-{Lw zA*#{=h6YBnq3Yc3kLG!+E#GhdVbe5FsM1`tvMav)Ml*?A;D^tSX@=)Nlou)I9*3L5cYnt z>^6$L@u$+#O^-t2rdBjz+N&gElsUl&KNdO!dj47NJL#WJ8SN=Ekl8@4x|S!*d07Or zfuF03(I*2p=eSX-IrtH^OMc$HYo%#tsjxhJ*zV2oL!z8=)B@)cLsym^; zq}N3>*P*4;Ir^512`E-eC)bCC}ri!$Wn8ktWq_%D0eSMQSsy8n6exXl-c`V^`?Ra*1{nCk1c^<##K|1P} z=Cx|MGv##)16A(MClGuXh)|TpnK-iCdk0TC0jW0pWx`QeIL+6*cQOEr6sI3XC%M@# zmfP>8KWyc-*YS>w4ycJEbNvFjs@Ex7Dd^a~hcv_}$gwdugCX4g`1M;f0z{=@(SFlO z@d-(c$HKGE>f2dQY3UOQ-&=s^+mEUh-#hUJSK~l|Mj85TsOShr7LJhbTk%wAfa6AU*_0s08eL)GY zuU;1@e~5UUxk!KO7Rl1NM@oj9Snu4Rm>uQ|xwIJSX7@z5_>g=W*ad40d@4i!2$M?a z^-j}(8}_fqrUM4Qxz4_hB(bM8iIE-D1A@i{{EoGSE8RfifDT#BWmrFwzS zms>Ru9TLpS-6!b?pVVBnDp!uN*S!8Dtgm(z`W1EMXK${;ApTMPqqhFlo!6&8aJ7rX ztK7ae{0SxD+Mesz_ctzrbnBVA21n)rah<8f#Uy90;J$!BE@V-9=#r)L{Npcq*+9$< zQXoS%Sl-)Y`{%)Mjj-$AepC;bvvN7Xs?Ko>sBgS|hJDGShS+{1cl(Hc1*VIa#yUhC zoMVN)8fOQ$h>c@hK6)_zIh}75tDTG~JKS&38H2>W6XfgK3igEkCPvQ(A|)NDdfLV8 zOa+~l({jHD|C|whezZRr*KT$Iis=(b5&V2G@e~Ne+skAd_&(<>;dyrcruY*n8RQzJ zx`L`izovZDjGABl!`x^TfyF@y?|wF1zeLYPS;Sb`DnJCcy4Z*oLE#Y&E#%yEQb5Bc zLPESLYBXd^jA}VG{!d{t{O95$%hj2Cp&7b2I+U*)dsrRX&ZD*$=_z4j;WJ)a=pc>A zk}9Kt&rs@$c~k(VZE~0))2iI&)mR2`j8yu!nn5sW-yWa1kgUUmXAk32*DBkR^OlX* z8X7?PXW{;F65uP63$6Te=&aN$C)wMt2g=I1;BWg$QrQe}yp3M>`($45{wHiMUPEFF zcdFoZBt#8XM@@zoVt{cVJMXWghn3iI87=RE2jm!#3zT8Hk@93*`N#*Gi;*k{=BMq>fvg36+tvE$ zX+&-nhJ0C+o}rk}=y$}!VKZc;`RIcD4-q(lg6v1Fy7%=VmbvyAIj7$ahTHVbQQYMX~Rj% zTJ=l4y3-o(R~!$M0acu)x^8S)egs42wT`wiFz8~!qF)%!E%z}6Qs|!nNKRALG3SbM z{mV$VcVF$0BS0yIf6BJ(lpbX|A@om?8+YxCHYVV;D~?(g6wL#1Zst4|-*{JEb>{DT zdCzsqu7AEc3rT|1k5Rr6+u+yR*ZodQ;CeWX0J*DMmepTi#aE?tzP~*yA~4{;oL6ln z#@Ny=*||EQ-&VS_boNBGaCWya`=~lfu=83nB)uVSyi4vLpX+XbnsxWdTHJd8RMIC2 z?J&0z^YqrV*6mNk0AL!!W?Qe@83XRm1>>J8avYi>^rR`PS5nNenXjrEzKmPbc{EB8B6xO3mrt<^-|oI=JXF zLvOi*I*(&;vY2q$0U9>KJuY9%_30$$4i#zlYc{fTvz@lrTDUm$QjR>xAAk7m+D5@C zMw1xST!*p!A-s4`R?a-jCB&IZSGM@v%298#lo@4Cve(~RmSlfaRm>I|x_$~2$+p5qk8hR>uo(lLX z23wClDb+lrJ1ydEa8{Jj?&j1W+!xxM4uDaEF*vq|B*G{r|9s6Cmg3qk?FIJ|u-T0_ zjRjP}pG27W^zNM)zRVK2`GVGEV)^^~S~-jghi6h#uyZh{q8Z(s`B!>LsP6gxSvBPD zIAD~r+6TJZ+|q>+s9_kVz~AdRZ_fAT}$N+cU`qiIj)LE#(+N z=b5f>=oI0!77CR0s8tgVihtv14jjMoPxe&A^TT-#s{6A)OJW-3C9+;|I0@R4%Kq7+ z+z8aNgZcI6=k@tcEA{tb-3F#bO^eGBXfvGJ?@i1XhY;n#j@FMpcYuXvzum--QTr&^TXF;1RLXwNJr zOKZPXbR;G1NK36Ps)Rk`sC}6Os>OLhlEzPfjVPEh7E}b%Ayq2#CrPqr6ScR%^bN>9 zetFS}eB3%@BUWY*3UOfGn$Xc|CmH}p-{?9t$Rob|0K$j^!fb-Ma)Hd$-Vjg9Wg>p3Z;wksvH zYnm98%~I~O^eE*MyxFe7d3yZ$pFqbb6MIc{Ca9BEBcCX*$Psm3fWhy#2T&8I3i#^= znj2n^SDQg7G&~Mtr~} zMQkT6D>qTHJwqeI!m5!kAA$EhppSW_y5@WKL08C0l`w{ywx9Lu6f9DpE)YlT;UkTGNWXRjrM4Qma!q2KdRS$TD(-q~-~2(?B;vSWRMkdjPL4jqmd4x?PRmAc&S)8L(l z;Je-AeOsVq4Fw8WLJuDMyjn?8h?FXF7B$UKu)Fm7VBjUa*fEf_s&IN4S zo(#^Q()Rf%?oD(Rx}4b1*wobLEP*vOnha?-Zcwy0o&9NZbxVVfO;hoH%wxWJ0Q_`` z9w-mN0x`+jxRvlxb$VxNWyA{dd>Uc~Wd81>kh<=C(DQuv#3t@saj8Gv=)CWIJ%LB_xs8d! zq2ahPeHDY4PcM}Ro;*>M@oY*$4okxhlKH$`8l~bI^B#YuPij=#WfbWC?iR$=NbDTS zt6})erA{bu(9DZ+`-2@!;eQA>E$Yk*K-2dGNIjwa2H*#fUCY0n9(v?Z49YcN74D>o zE0ioa60y*5Ayk*R#4lmNbE<{Z>d_(sn9AfA1+)cgW@Y{|P6_+ET;jLy!B^MT1|4*^ zGLN0?;?}l@z9yQ!;uJYs`$)gOTQnEuT9?jw7DOe}z`HY0oiHpW8k;OVHY+{nMfO_0 zY>)DN8FqV0CB%7j6J7|-=Ly5$~Ra^^hol6cq9-0`d?+Rq8k9{B!ep`>j>8(x4 z-xx4%YfopE@Q*;M27q|l?2u4zJ$UV2Sv7*3_;O=%?CmP&Q2;P#d+ziKq^MW8bj!EJ zu(XCvx7wEwa+ahB0CJgJBW}5JXnu9dZ23pA3tFYDgn8=fu8UE~5F=IUYtup&_5m(!-_W^HaSIQhrat*qSYUQ zc0@-TkbI6Kw>{y?a?N)6G{qCB7x@LWUGkx9zp$F<#c)C5)=S9Xwb!67fx8i>9T*S-C%NE3j_w*!1bb|@qW+^vLD=Lb{niVlE-=Uwg(PV7mCLgMC zn@u?^8alTkT8kYk7k`!)W=3dmsTo)Wd@yJF<=-ij$!9P4Sh}Chx zxo4q~$EQEhL6v8?;4@VlY%VG^qynPheluaX(_IZMn+pk9vZ{ z(;M_}b12v~IT56b@f|LVB4$ccSVgg{_B$%|)dhxTB!^tH1IlMB9h6&NbHISDuw<0s z;sRcG)6M2i*h?AXuaqeRBTHF#(z2Pd1ij}OG3hZH_n#7c*cJ(n$1-(dW>7Wiu1Sqa z!!Anfo!}BgWFt|{pML@yhN0= zdRP0?J(2S#OBlA=Y!lNBQ6wq@h&-xk6S)H1tkr|-uV0rFF7qjMhxHL^3x0qV0!CD# zUh~Ns{`xnp`>-GcqmY6+YJbpxYr7H_q{fPM&E}euhqURGGJmgYiKxI#w|{A(%}9;Z z_GLjd0J>Dn?Tdx{6AmD*AMQ+&_gY`y3F$`Ev8Syb{gxWC;*LSpLAMis%EXZ7Ro{G0 zUakRDl~I-0hf+Af1=|%oW5fAV{Y7C1H%N7dSNzW`W2jZHD~DquOAzb1L3HrYx|BihhY-r%b=Q@g@>Osk=LQXug`6QsFmhW<`?Xo z+j7yQlt^UJ+)u>Zce~M=0sW^KNi_wCYcx~b?{k(3Gjf2MuDF*QUB*-Q(GG_a_4W7s zVxN=L-t}?hb^Qwg^0UUZg=aAz!kt{`tfd*OA+k}>cwY_E?&q5>Www|qVBT8YMoWv5HZhmn34p8 z?+Ut^v+;V}(r}%YZ=o+gx)Uub#dky$Wmh$OEMXp94oVcdZ6R2NiSyVa`iM|tjfViN zgc2p_a(_!v@Dn^=oeV+Wre~^herU8+(v9MM`-&`G=3rQtp|ONKQtHK!DEg)R>#sN$ zh>B~(dx2<572;RyryA?TKK3bkQd(c)3tx$DkIW&;q)IJOdMEg%0`8(h=c-N>q560| zADVVGeK>WGm|o2;9go`6j-!e39;3*&JhcC;-sw{fh$^q@< z{#_%6tpJF3k;~tFGZfuegYhDKT<{ODTq7TA`k^O46H2N#cr#0oM=65^Rhh&&1eav6 zFusBq$t_z0wBuf?Z1MULcR7=d+$MP!pkT=gfuUN&+6-V@ru&CVmKjrn08;}DRHdg& z>N^h0Do_&TSWc%}3jqY_JSodx0|0W-Uv)*9XDQ&}D0WgDXwj0tVu^NtX$aOV#FvEc z`SBH_7_1?wi$+qdBY8b+M~pV%;;Snv2zv*&g`q}qHH)1>W0!STNxB|XPvetto8vQ5 zyqX--l1v)?U=V?(V5v#dh_0&M7)chJ`cbLEL0#PnF~&H^l19G``ppm^Gi!h{HDT!y zhr0IlG8Px&69gqh!boWbkEhL#i}m!+p90{VCj29Sp&^XA`31qM&V9smh}YykXn-`B z?wrb!&%&9`q?q-=*3&w|9q!HgUiQCb7Zuy>r16o6^O6o`!?|gy%5jDRfFE^c)?tvK zCpi5$rqn?f18A3SSKd&@tt$h&S;REv@IEGMZ0%ldrj4NBbnXqdGGd>nu#J4q^kgZy zCy8FdZunv7ZVD-f5h{o*@e8+j^UXTvCvkyHi2~VDWqpY1A1tqo>_L`FYA*K17@p&>IjM@Y37dXl03+EVKgu^xmA$6H;_^M*J?+peEqyiw5YY7}_H`-)|vM)M~ zpHSpW4JT>Goy#H}=biHC)}J8TdG!*W8mBiQkQNLrt}tu&bi*;yR-D zUGaXb)B3pjXrrHI>uBlI?&$PK)z(yY-hkf#c0@;?;lASGKc&v-McpT`^zedvD0fXI zNma&UF322*_Qc!p_s6M_=aC=VvKHYO0yXw&Ur?IpA=C@hcd7qq$B(;fT1F1+#x4!0 zNU#k0O>mDG7SvH9kNZGyO(N`_=iZFQQF=LN&{T^MM2*^iIi`fWk+X}-9~d3(ll$_q z!Z7DL!taT4GUv&diM@w0&=M9hKS2uwCqJ~CMRV2-Ze?Af=1$PW;SM6=MhtU9{jjuS zvLKg;dG9?C&3>bMes<|Q=uhbQTlb)04T4Spno5wxIr*VS)tAW`p2k=g=_Y| zUtfpT>Dkdg$#R)aItZkbP*#NVB>@q|FX~)RT1V*b6f4a9Z*>LX4iI|pT1H2q_}m~u z*lwSbx8SM*=Ro}xpUzWFDHLdPh>r91@oMLuc9?GuwSirgIVXda;AC;XS-;1EZ z71r$P(D~7@wB&q^&<)UXzEb(_*DnKQgM|$m8{yr&mukNlTw5~DI@Jxu9Oe!uE`Bw* z7+C5aw|lByz1dq6et*o`x%}NKt^Hd6cvM zz6Mz4vU$Hd*L@>Qw|*$TbWg*)$XSW2uJwWQV2O`jg9QmU%?py*fd>&g2tdJ1@kGak zKSJ*zPE`!P{96x@j`fSl?w?R-a!tSE@+@jXmY3nq-?NrdgT52HJK+fADCmT*cAu^o zP5Bn>B;hzIRf6Ax)Sp{gRGR&}SY^Lo0W7lBp!>ug&%kAjvD!*?G$dJ>R!IDDifaK8 zh7rFTu?y92kJ#tO5%k5*9RGfF+fR@3_U062-hz6(9x}y}2+g1nL}c>oaY2aB5M^7~ z1vfOXMS)-At%?*-6+ip!znupQ!cW4ijUk%(7AeReN6VEx@!Y>7Zb>q{EGDnH>6Pk2}N6 zgm@c}LK3E%xbchwObEdNe%cypT_A(cjNkBM6uDKW# zlZETV(XdcT{sw|9M_)obN&GY8>~Pp05>Tv8;u`0Q?|`_LvF-!E8g-JyR3B# zByS(Ua2P;71WR4E9ZsWH_fZN(>FnU+1SCw*(1n{%#c2Y#`K{{ivjO4V zdWy09!>1_F$M!_xAvvMpqA2vI{_Y$*VHV3&3thjEI>hZ-=&qtAm35z=`D}$Bp(ci5 zwCtAJSK6^EfGhM;L}6zzNOo1479wj#gZ4l_Khc;9OPji*pl}4_wK< z{eM=oJl*O{=_%j7J59d7;$Li3#wg7j)AIQ`+c;5J6OQhbrmY30LzfZe)tv|?^aQlnTzK}oBM`hi2uM$iS zI;e9~=`wf3+q?JIwy7D_>BvbRxPN8(@AohF=kL6j{w?L#>2=zhFQopJndjiGu9p7B zxFh@p=Y>MxNfKV5 zvjEm~01K;xhbq_ob64B6yl-0_;I%eA+rLI;_ev+=CPrHu^)oA+W0|w=Ka?|Nd;a)H za?LaI3K}nE7tTtnv;6FHGa-_7!Bwld`XOKWeQzvImefsp_Tb=?p91f4 z`#8Qo?NT~xm9+a^z2u)`9~zHln`{K_Q|=B_5b6^1-o50}tozsh6vv(U|6XGDzIj)j zEnC(5B9HA5cPLfSs>+~Ta{r25Nz?9L{QdRb{`kzhYV(1??ce~~MQjwa=1H{d>7S-%&ie%; zKS=4F6K4tNx@VCWTi0Ru!glZd7k~eG|131A+wjr!#p*g)of_TH{3E)|yE7eh{Cf)y z-6-$Q`>5^wo!9nf&@F>hUe;?`tk*;mT;q+zKACDQO}QT@oW|z5&0K!xqW#|=tc!h~ zaof9nQ#RkVEh>MXn4SNYWs#sJT>eIU*X>>WtN9iHH(D|d1K7CLtMNa-+PlQEc|TUZ Q1)W0T>FVdQ&MBb@015W66#xJL literal 116556 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 onpRe#dpZ=GF8z9RdYwIB63q%K#xZkciH z=^sNHpjV_e8|wVX*a0&JjZkcqm9PiUqdR3hQTA`ZPQ!vnArrg60_+WOKuiLLtz+Tu zHeKuZv6T)i;fOYXl-lA)q5#P2^yTP z*St-e)JPMm&6S)8fnX=J)#C^ReRjK<)=>YuZnojn>dff}r#5(C8rv`X3s`iUKw$cA zV4+GN_o)4QV3wul_3{quk!_D@;0&e(Ul*z5v#8JU7IFbOn`>F*96oK8sTioAsa(Tt z5>&$YZGO5=4?zfk=DE_L0s#==&cTBRKgD>D{NMZUdmase&1E10amX(b@gTP!kot; zGAuH3=mew(B@&78?1)hlu|3!*H5DZi5#|qvy+N8<>ctOZ>B`zXka@c>N)c7XhLxMG zLsRt{t8)BRRfm9Ts#?_9+=_uU0mv}gwLvi8h7&{?xdUo577$=79+5l=x`xwIe$x(! zxJ{98jFUT*7ywB(I5<;PVn8|QN;D{9ZYLP*V^L6SoAloH$&Q@sRmOlFf(A8Ha|DH> z#R?9sLgAJMX@&UEAawp=VX`(WTRxxrx!iH*U4$>fXaY%t&exvI3TSOz77Ynuka#On z1Pcf};uIti&C-s0+78x-C<>7%LQ5@kCH80&_aM4Zm@PmR+T^it{RzGvs&D?DnX#peQ`5t-PHXwXbSm6hP?V;cc-&rk4pMR+;e2H7{&%}p(^ z^RzSK;1?w!P^=IHsvu=J``omsn1o*4+%S^%50V1xFP?k#U3ve5xpLl_r^wOMk6=Ea zKAnm}F;d0UwmCK< zUmMI5>@UQ9`)hwWV~uqR!^rD?Z7#0+`yT>)6)vI||8Dlw!e

gv|bn$a2oj2kwq; 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

Frequently Asked Questions

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 u6Rz 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%0Aq@wV3t~J)s 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 diff --git a/public/manifest.json b/public/manifest.json index f0a20fa2..40f9b7a4 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -1,6 +1,6 @@ { - "short_name": "plebchan", - "name": "plebchan", + "short_name": "5chan", + "name": "5chan", "icons": [ { "src": "manifest-icon-192x192.png", diff --git a/public/translations/ar/default.json b/public/translations/ar/default.json index 497b4e74..d5142f48 100644 --- a/public/translations/ar/default.json +++ b/public/translations/ar/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "ما هو بليبتشان؟", + "what_is_5chan": "ما هو بليبتشان؟", "go": "اذهب", "or": "أو", - "plebchan_description": "Plebchan هو بديل لـ 4chan موزع، بدون خادم، بدون مسؤولين، حيث يمكن لأي شخص إنشاء وامتلاك منتديات غير محدودة. جميع البيانات تأتي من بروتوكول <1>plebbit، كلها نصوص بما في ذلك الروابط التي يتم تضمين الوسائط فيها، مشتركة نقطة لنقطة. لا يحتاج المستخدمون إلى تسجيل حساب قبل المشاركة في المجتمع. لا تتردد في النقر فوق منتدى أدناه الذي يهمك والانضمام فورًا!", + "5chan_description": "5chan هو بديل لـ 4chan موزع، بدون خادم، بدون مسؤولين، حيث يمكن لأي شخص إنشاء وامتلاك منتديات غير محدودة. جميع البيانات تأتي من بروتوكول <1>plebbit، كلها نصوص بما في ذلك الروابط التي يتم تضمين الوسائط فيها، مشتركة نقطة لنقطة. لا يحتاج المستخدمون إلى تسجيل حساب قبل المشاركة في المجتمع. لا تتردد في النقر فوق منتدى أدناه الذي يهمك والانضمام فورًا!", "no_global_rules_info": "لا توجد قواعد عالمية، كل منتدى مستقل تمامًا وصاحبه يقرر كيفية/ما إذا كان يعتد به.", "boards": "منتديات", "popular_threads": "المواضيع الشائعة", @@ -77,12 +77,12 @@ "embed": "تضمين", "remove": "إزالة", "download_latest_desktop": "حمل أحدث إصدار سطح المكتب هنا: {{link}}", - "new_stable_version": "إصدار مستقر جديد متاح، plebchan v{{newVersion}}. أنت تستخدم plebchan v{{oldVersion}}.", + "new_stable_version": "إصدار مستقر جديد متاح، 5chan v{{newVersion}}. أنت تستخدم 5chan v{{oldVersion}}.", "refresh_to_update": "قم بتحديث الصفحة للتحديث", "new_development_version": "إصدار تطوير جديد متاح، كوميت {{newCommit}}. أنت تستخدم كوميت {{oldCommit}}.", "check_for_updates": "<1>تحقق من التحديثات", "latest_development_version": "أنت على أحدث إصدار تطوير، النسخة {{commit}}. لاستخدام النسخة الثابتة، انتقل إلى {{link}}.", - "latest_stable_version": "أنت على أحدث نسخة ثابتة، plebchan v{{version}}.", + "latest_stable_version": "أنت على أحدث نسخة ثابتة، 5chan v{{version}}.", "check": "تحقق", "update": "تحديث", "style": "الأسلوب", @@ -231,7 +231,7 @@ "order": "ترتيب", "text": "نص", "filtered_threads": "المواضيع المفلترة", - "missing_link_confirm": "مشاركتك تفتقر إلى رابط يحتوي على صورة، سيتم تصفيتها افتراضيًا على Plebchan. يمكنك تعطيل هذا الفلتر في الإعدادات، أو عرض مشاركتك على عميل Plebbit آخر، مثل Seedit. هل تريد النشر على أي حال؟", + "missing_link_confirm": "مشاركتك تفتقر إلى رابط يحتوي على صورة، سيتم تصفيتها افتراضيًا على 5chan. يمكنك تعطيل هذا الفلتر في الإعدادات، أو عرض مشاركتك على عميل Plebbit آخر، مثل Seedit. هل تريد النشر على أي حال؟", "no_board_selected_warning": "يرجى تحديد لوحة قبل النشر.", "invalid_url_alert": "الرابط المقدم ليس عنوان URL صالحًا.", "empty_comment_alert": "لا يمكن نشر تعليق فارغ.", diff --git a/public/translations/bn/default.json b/public/translations/bn/default.json index 309fa637..8a95fc24 100644 --- a/public/translations/bn/default.json +++ b/public/translations/bn/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "প্লেবচ্যান কি?", + "what_is_5chan": "প্লেবচ্যান কি?", "go": "যাও", "or": "অথবা", - "plebchan_description": "Plebchan একটি সার্ভারলেস, অ্যাডমিনলেস, ডিসেন্ট্রালাইজড 4chan বিকল্প যেখানে কেউই অসীম বোর্ড তৈরি এবং মালিকত্ব করতে পারেন। সমস্ত তথ্য প্রোটোকল <1>plebbit থেকে এসেছে, যেমন সব টেক্সট, যেখানে মিডিয়া সংযুক্ত লিংক থেকে অবস্থান করে, শেয়ার পির-টু-পি। ব্যবহারকারীদের কোনও অ্যাকাউন্ট নিবন্ধন করতে হয় না যাতে কোম্যুনিটিতে অংশগ্রহণ করতে পারেন। আপনি যেটা আপনার সাথে আগ্রহী তার নিচে একটি বোর্ডে ক্লিক করে যথাযথভাবে যোগদান করতে পারেন!", + "5chan_description": "5chan একটি সার্ভারলেস, অ্যাডমিনলেস, ডিসেন্ট্রালাইজড 4chan বিকল্প যেখানে কেউই অসীম বোর্ড তৈরি এবং মালিকত্ব করতে পারেন। সমস্ত তথ্য প্রোটোকল <1>plebbit থেকে এসেছে, যেমন সব টেক্সট, যেখানে মিডিয়া সংযুক্ত লিংক থেকে অবস্থান করে, শেয়ার পির-টু-পি। ব্যবহারকারীদের কোনও অ্যাকাউন্ট নিবন্ধন করতে হয় না যাতে কোম্যুনিটিতে অংশগ্রহণ করতে পারেন। আপনি যেটা আপনার সাথে আগ্রহী তার নিচে একটি বোর্ডে ক্লিক করে যথাযথভাবে যোগদান করতে পারেন!", "no_global_rules_info": "কোন গ্লোবাল নিয়ম নেই, প্রতিটি বোর্ড সম্পূর্ণভাবে স্বতন্ত্র এবং তার মালিক কীভাবে/যদি তা নিয়ন্ত্রণ করতে চায় তা নির্ধারণ করে।", "boards": "বোর্ডসমূহ", "popular_threads": "জনপ্রিয় থ্রেডগুলি", @@ -77,12 +77,12 @@ "embed": "এম্বেড", "remove": "অপসারণ", "download_latest_desktop": "সর্বশেষ ডেস্কটপ সংস্করণ এখানে ডাউনলোড করুন: {{link}}", - "new_stable_version": "নতুন স্থিতিশীল সংস্করণ উপলব্ধ, plebchan v{{newVersion}}। আপনি plebchan v{{oldVersion}} ব্যবহার করছেন।", + "new_stable_version": "নতুন স্থিতিশীল সংস্করণ উপলব্ধ, 5chan v{{newVersion}}। আপনি 5chan v{{oldVersion}} ব্যবহার করছেন।", "refresh_to_update": "আপডেট করতে পৃষ্ঠাটি রিফ্রেশ করুন", "new_development_version": "নতুন ডেভেলপমেন্ট সংস্করণ উপলব্ধ, কমিট {{newCommit}}। আপনি কমিট {{oldCommit}} ব্যবহার করছেন।", "check_for_updates": "<1>যাচাই করুন আপডেট", "latest_development_version": "আপনি সর্বশেষ ডেভেলপমেন্ট সংস্করণে আছেন, কমিট {{commit}}। স্থিতিশীল সংস্করণ ব্যবহার করতে, {{link}} যান।", - "latest_stable_version": "আপনি সর্বশেষ স্থিতিশীল সংস্করণে আছেন, plebchan v{{version}}।", + "latest_stable_version": "আপনি সর্বশেষ স্থিতিশীল সংস্করণে আছেন, 5chan v{{version}}।", "check": "চেক", "update": "আপডেট", "style": "স্টাইল", @@ -231,7 +231,7 @@ "order": "অর্ডার", "text": "টেক্সট", "filtered_threads": "ফিল্টার করা থ্রেড", - "missing_link_confirm": "আপনার পোস্টে একটি চিত্র সহ একটি লিঙ্ক নেই, এটি ডিফল্টভাবে Plebchan এ ফিল্টার করা হবে। আপনি সেটিংসে এই ফিল্টারটি অক্ষম করতে পারেন, অথবা Seedit এর মতো অন্য Plebbit ক্লায়েন্টে আপনার পোস্টটি দেখতে পারেন। তবুও পোস্ট করতে চান?", + "missing_link_confirm": "আপনার পোস্টে একটি চিত্র সহ একটি লিঙ্ক নেই, এটি ডিফল্টভাবে 5chan এ ফিল্টার করা হবে। আপনি সেটিংসে এই ফিল্টারটি অক্ষম করতে পারেন, অথবা Seedit এর মতো অন্য Plebbit ক্লায়েন্টে আপনার পোস্টটি দেখতে পারেন। তবুও পোস্ট করতে চান?", "no_board_selected_warning": "পোস্ট করার আগে একটি বোর্ড নির্বাচন করুন।", "invalid_url_alert": "দেওয়া লিঙ্কটি একটি বৈধ URL নয়।", "empty_comment_alert": "খালি মন্তব্য পোস্ট করা যাবে না।", diff --git a/public/translations/cs/default.json b/public/translations/cs/default.json index 93873900..8ed09da1 100644 --- a/public/translations/cs/default.json +++ b/public/translations/cs/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "Co je Plebchan?", + "what_is_5chan": "Co je 5chan?", "go": "jít", "or": "nebo", - "plebchan_description": "Plebchan je decentralizovaná alternativa 4chan bez serveru, bez administrátorů, kde si každý pleb může vytvořit a vlastnit neomezené nástěnky. Všechna data pocházejí z protokolu <1>plebbit, jsou všechno texty včetně odkazů, ze kterých jsou média vložena, sdílená peer-to-peer. Uživatelé se nemusí registrovat před účastí v komunitě. Neváhejte kliknout na nástěnku níže, která vás zajímá, a okamžitě se připojit!", + "5chan_description": "5chan je decentralizovaná alternativa 4chan bez serveru, bez administrátorů, kde si každý pleb může vytvořit a vlastnit neomezené nástěnky. Všechna data pocházejí z protokolu <1>plebbit, jsou všechno texty včetně odkazů, ze kterých jsou média vložena, sdílená peer-to-peer. Uživatelé se nemusí registrovat před účastí v komunitě. Neváhejte kliknout na nástěnku níže, která vás zajímá, a okamžitě se připojit!", "no_global_rules_info": "Žádná globální pravidla neexistují, každá nástěnka je zcela nezávislá a její vlastník rozhoduje o tom, jak/či ji moderovat.", "boards": "nástěnky", "popular_threads": "Oblíbená vlákna", @@ -77,12 +77,12 @@ "embed": "vložit", "remove": "odstranit", "download_latest_desktop": "Stáhněte si nejnovější verzi pro stolní počítače zde: {{link}}", - "new_stable_version": "Nová stabilní verze k dispozici, plebchan v{{newVersion}}. Používáte plebchan v{{oldVersion}}.", + "new_stable_version": "Nová stabilní verze k dispozici, 5chan v{{newVersion}}. Používáte 5chan v{{oldVersion}}.", "refresh_to_update": "Obnovte stránku pro aktualizaci", "new_development_version": "Nová vývojová verze k dispozici, commit {{newCommit}}. Používáte commit {{oldCommit}}.", "check_for_updates": "<1>Zkontrolujte aktualizace", "latest_development_version": "Jste na nejnovější vývojové verzi, commit {{commit}}. Chcete-li použít stabilní verzi, přejděte na {{link}}.", - "latest_stable_version": "Jste na nejnovější stabilní verzi, plebchan v{{version}}.", + "latest_stable_version": "Jste na nejnovější stabilní verzi, 5chan v{{version}}.", "check": "kontrolovat", "update": "Aktualizovat", "style": "Styl", @@ -231,7 +231,7 @@ "order": "Pořadí", "text": "Text", "filtered_threads": "Filtr threads", - "missing_link_confirm": "Váš příspěvek postrádá odkaz s obrázkem, ve výchozím nastavení bude na Plebchanu filtrován. Tento filtr můžete vypnout v nastavení nebo si můžete svůj příspěvek prohlédnout na jiném klientovi Plebbit, jako je Seedit. Přesto zveřejnit?", + "missing_link_confirm": "Váš příspěvek postrádá odkaz s obrázkem, ve výchozím nastavení bude na 5chanu filtrován. Tento filtr můžete vypnout v nastavení nebo si můžete svůj příspěvek prohlédnout na jiném klientovi Plebbit, jako je Seedit. Přesto zveřejnit?", "no_board_selected_warning": "Vyberte desku před odesláním.", "invalid_url_alert": "Poskytnutý odkaz není platná adresa URL.", "empty_comment_alert": "Nelze publikovat prázdný komentář.", diff --git a/public/translations/da/default.json b/public/translations/da/default.json index e70236d7..98ddf00b 100644 --- a/public/translations/da/default.json +++ b/public/translations/da/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "Hvad er Plebchan?", + "what_is_5chan": "Hvad er 5chan?", "go": "gå", "or": "eller", - "plebchan_description": "Plebchan er et serverløst, adminløst, decentraliseret 4chan-alternativ, hvor enhver pleb kan oprette og eje ubegrænsede opslagstavler. Alle data kommer fra protokollen <1>plebbit, det hele er tekst inklusive links, hvorfra medier er indlejret, delt peer-to-peer. Brugere behøver ikke at registrere en konto før deltagelse i fællesskabet. Du er velkommen til at klikke på en opslagstavle nedenfor, der interesserer dig, og springe direkte ind!", + "5chan_description": "5chan er et serverløst, adminløst, decentraliseret 4chan-alternativ, hvor enhver pleb kan oprette og eje ubegrænsede opslagstavler. Alle data kommer fra protokollen <1>plebbit, det hele er tekst inklusive links, hvorfra medier er indlejret, delt peer-to-peer. Brugere behøver ikke at registrere en konto før deltagelse i fællesskabet. Du er velkommen til at klikke på en opslagstavle nedenfor, der interesserer dig, og springe direkte ind!", "no_global_rules_info": "Der er ingen globale regler, hver opslagstavle er helt uafhængig, og dens ejer beslutter hvordan/om at moderere den.", "boards": "opslagstavler", "popular_threads": "Populære tråde", @@ -77,12 +77,12 @@ "embed": "integrer", "remove": "fjern", "download_latest_desktop": "Download den seneste version til skrivebordet her: {{link}}", - "new_stable_version": "Ny stabil version tilgængelig, plebchan v{{newVersion}}. Du bruger plebchan v{{oldVersion}}.", + "new_stable_version": "Ny stabil version tilgængelig, 5chan v{{newVersion}}. Du bruger 5chan v{{oldVersion}}.", "refresh_to_update": "Opdater siden for at opdatere", "new_development_version": "Ny udviklingsversion tilgængelig, commit {{newCommit}}. Du bruger commit {{oldCommit}}.", "check_for_updates": "<1>Tjek for opdateringer", "latest_development_version": "Du er på den nyeste udviklingsversion, commit {{commit}}. For at bruge den stabile version, gå til {{link}}.", - "latest_stable_version": "Du er på den seneste stabile version, plebchan v{{version}}.", + "latest_stable_version": "Du er på den seneste stabile version, 5chan v{{version}}.", "check": "check", "update": "Opdater", "style": "Stil", @@ -231,7 +231,7 @@ "order": "Rækkefølge", "text": "Tekst", "filtered_threads": "Filtrerede tråde", - "missing_link_confirm": "Dit indlæg mangler et link med et billede, det vil som standard blive filtreret på Plebchan. Du kan deaktivere dette filter i indstillingerne eller se dit indlæg på en anden Plebbit-klient, som Seedit. Vil du alligevel poste?", + "missing_link_confirm": "Dit indlæg mangler et link med et billede, det vil som standard blive filtreret på 5chan. Du kan deaktivere dette filter i indstillingerne eller se dit indlæg på en anden Plebbit-klient, som Seedit. Vil du alligevel poste?", "no_board_selected_warning": "Vælg en tavle, før du poster.", "invalid_url_alert": "Det angivne link er ikke en gyldig URL.", "empty_comment_alert": "Kan ikke poste en tom kommentar.", diff --git a/public/translations/de/default.json b/public/translations/de/default.json index f660f65c..c7b729bc 100644 --- a/public/translations/de/default.json +++ b/public/translations/de/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "Was ist Plebchan?", + "what_is_5chan": "Was ist 5chan?", "go": "gehen", "or": "oder", - "plebchan_description": "Plebchan ist eine serverlose, adminlose, dezentralisierte Alternative zu 4chan, bei der jeder Pleb unbegrenzte Foren erstellen und besitzen kann. Alle Daten stammen aus dem Protokoll <1>plebbit, es handelt sich ausschließlich um Texte einschließlich Links, aus denen Medien eingebettet werden, die peer-to-peer geteilt werden. Benutzer müssen sich nicht registrieren, bevor sie an der Community teilnehmen. Fühlen Sie sich frei, auf ein Forum unten zu klicken, das Sie interessiert, und steigen Sie direkt ein!", + "5chan_description": "5chan ist eine serverlose, adminlose, dezentralisierte Alternative zu 4chan, bei der jeder Pleb unbegrenzte Foren erstellen und besitzen kann. Alle Daten stammen aus dem Protokoll <1>plebbit, es handelt sich ausschließlich um Texte einschließlich Links, aus denen Medien eingebettet werden, die peer-to-peer geteilt werden. Benutzer müssen sich nicht registrieren, bevor sie an der Community teilnehmen. Fühlen Sie sich frei, auf ein Forum unten zu klicken, das Sie interessiert, und steigen Sie direkt ein!", "no_global_rules_info": "Es gibt keine globalen Regeln, jedes Forum ist völlig unabhängig und sein Besitzer entscheidet, wie/ob es moderiert wird.", "boards": "Foren", "popular_threads": "Beliebte Threads", @@ -77,12 +77,12 @@ "embed": "einbetten", "remove": "entfernen", "download_latest_desktop": "Laden Sie hier die neueste Desktop-Version herunter: {{link}}", - "new_stable_version": "Neue stabile Version verfügbar, plebchan v{{newVersion}}. Du verwendest plebchan v{{oldVersion}}.", + "new_stable_version": "Neue stabile Version verfügbar, 5chan v{{newVersion}}. Du verwendest 5chan v{{oldVersion}}.", "refresh_to_update": "Aktualisieren Sie die Seite, um zu aktualisieren", "new_development_version": "Neue Entwicklungsversion verfügbar, Commit {{newCommit}}. Du verwendest Commit {{oldCommit}}.", "check_for_updates": "<1>Überprüfen Sie auf Updates", "latest_development_version": "Du befindest dich auf der neuesten Entwicklungsversion, Commit {{commit}}. Um die stabile Version zu verwenden, gehe zu {{link}}.", - "latest_stable_version": "Du befindest dich auf der neuesten stabilen Version, plebchan v{{version}}.", + "latest_stable_version": "Du befindest dich auf der neuesten stabilen Version, 5chan v{{version}}.", "check": "überprüfen", "update": "Aktualisieren", "style": "Stil", @@ -231,7 +231,7 @@ "order": "Reihenfolge", "text": "Text", "filtered_threads": "Gefilterte Threads", - "missing_link_confirm": "Ihr Beitrag fehlt ein Link mit einem Bild, er wird standardmäßig auf Plebchan herausgefiltert. Sie können diesen Filter in den Einstellungen deaktivieren oder Ihren Beitrag in einem anderen Plebbit-Client wie Seedit anzeigen. Trotzdem posten?", + "missing_link_confirm": "Ihr Beitrag fehlt ein Link mit einem Bild, er wird standardmäßig auf 5chan herausgefiltert. Sie können diesen Filter in den Einstellungen deaktivieren oder Ihren Beitrag in einem anderen Plebbit-Client wie Seedit anzeigen. Trotzdem posten?", "no_board_selected_warning": "Bitte wählen Sie ein Board, bevor Sie posten.", "invalid_url_alert": "Der bereitgestellte Link ist keine gültige URL.", "empty_comment_alert": "Kann keinen leeren Kommentar posten.", diff --git a/public/translations/el/default.json b/public/translations/el/default.json index f3a5c50c..dad7bd1c 100644 --- a/public/translations/el/default.json +++ b/public/translations/el/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "Τι είναι το plebchan;", + "what_is_5chan": "Τι είναι το 5chan;", "go": "πήγαινε", "or": "ή", - "plebchan_description": "Το Plebchan είναι μια αντικατάσταση του 4chan χωρίς διακομιστή, χωρίς διαχειριστές, αποκεντρωμένη, όπου οποιοσδήποτε pleb μπορεί να δημιουργήσει και να έχει απεριόριστα boards. Όλα τα δεδομένα προέρχονται από το πρωτόκολλο <1>plebbit, είναι όλα κείμενα συμπεριλαμβανομένων των συνδέσμων από τους οποίους ενσωματώνονται τα πολυμέσα, κοινοποιούνται peer-to-peer. Οι χρήστες δεν χρειάζεται να εγγραφούν πριν να συμμετάσχουν στην κοινότητα. Μη διστάσετε να κάνετε κλικ σε ένα board παρακάτω που σας ενδιαφέρει και να μπείτε αμέσως μέσα!", + "5chan_description": "Το 5chan είναι μια αντικατάσταση του 4chan χωρίς διακομιστή, χωρίς διαχειριστές, αποκεντρωμένη, όπου οποιοσδήποτε pleb μπορεί να δημιουργήσει και να έχει απεριόριστα boards. Όλα τα δεδομένα προέρχονται από το πρωτόκολλο <1>plebbit, είναι όλα κείμενα συμπεριλαμβανομένων των συνδέσμων από τους οποίους ενσωματώνονται τα πολυμέσα, κοινοποιούνται peer-to-peer. Οι χρήστες δεν χρειάζεται να εγγραφούν πριν να συμμετάσχουν στην κοινότητα. Μη διστάσετε να κάνετε κλικ σε ένα board παρακάτω που σας ενδιαφέρει και να μπείτε αμέσως μέσα!", "no_global_rules_info": "Δεν υπάρχουν παγκόσμιοι κανόνες, κάθε Διαδικτυακή πίνακας είναι εντελώς ανεξάρτητος και ο ιδιοκτήτης του αποφασίζει πώς/εάν να τον ελέγξει.", "boards": "διαδικτυακές πινακίδες", "popular_threads": "Δημοφιλή νήματα", @@ -77,12 +77,12 @@ "embed": "ενσωμάτωση", "remove": "αφαίρεση", "download_latest_desktop": "Κατεβάστε την πιο πρόσφατη έκδοση για επιτραπέζιο υπολογιστή εδώ: {{link}}", - "new_stable_version": "Νέα σταθερή έκδοση διαθέσιμη, plebchan v{{newVersion}}. Χρησιμοποιείτε plebchan v{{oldVersion}}.", + "new_stable_version": "Νέα σταθερή έκδοση διαθέσιμη, 5chan v{{newVersion}}. Χρησιμοποιείτε 5chan v{{oldVersion}}.", "refresh_to_update": "Ανανεώστε τη σελίδα για να ενημερωθεί", "new_development_version": "Νέα έκδοση ανάπτυξης διαθέσιμη, commit {{newCommit}}. Χρησιμοποιείτε commit {{oldCommit}}.", "check_for_updates": "<1>Ελέγξτε για ενημερώσεις", "latest_development_version": "Βρίσκεστε στην πιο πρόσφατη έκδοση ανάπτυξης, commit {{commit}}. Για να χρησιμοποιήσετε την σταθερή έκδοση, πηγαίνετε στη διεύθυνση {{link}}.", - "latest_stable_version": "Βρίσκεστε στην πιο πρόσφατη σταθερή έκδοση, plebchan v{{version}}.", + "latest_stable_version": "Βρίσκεστε στην πιο πρόσφατη σταθερή έκδοση, 5chan v{{version}}.", "check": "ελέγξτε", "update": "Ενημέρωση", "style": "Στυλ", @@ -231,7 +231,7 @@ "order": "Σειρά", "text": "Κείμενο", "filtered_threads": "Φιλτραρισμένα θέματα", - "missing_link_confirm": "Η ανάρτησή σας λείπει από έναν σύνδεσμο με μια εικόνα, θα φιλτραριστεί από προεπιλογή στο Plebchan. Μπορείτε να απενεργοποιήσετε αυτό το φίλτρο στις ρυθμίσεις ή να δείτε την ανάρτησή σας σε έναν άλλο πελάτη Plebbit, όπως το Seedit. Θέλετε να δημοσιεύσετε ούτως ή άλλως;", + "missing_link_confirm": "Η ανάρτησή σας λείπει από έναν σύνδεσμο με μια εικόνα, θα φιλτραριστεί από προεπιλογή στο 5chan. Μπορείτε να απενεργοποιήσετε αυτό το φίλτρο στις ρυθμίσεις ή να δείτε την ανάρτησή σας σε έναν άλλο πελάτη Plebbit, όπως το Seedit. Θέλετε να δημοσιεύσετε ούτως ή άλλως;", "no_board_selected_warning": "Παρακαλώ επιλέξτε μια κατηγορία πριν δημοσιεύσετε.", "invalid_url_alert": "Ο παρεχόμενος σύνδεσμος δεν είναι έγκυρη διεύθυνση URL.", "empty_comment_alert": "Δεν μπορεί να δημοσιευτεί κενό σχόλιο.", diff --git a/public/translations/en/default.json b/public/translations/en/default.json index 9febc6f1..21836d94 100644 --- a/public/translations/en/default.json +++ b/public/translations/en/default.json @@ -1,9 +1,9 @@ { - "what_is_plebchan": "What is plebchan?", + "what_is_5chan": "What is 5chan?", "go": "go", "or": "or", - "plebchan_description": "Plebchan is a serverless, adminless, decentralized 4chan alternative where any pleb can create and own unlimited boards. All data comes from the <1>plebbit protocol, it's all text including links from which media is embedded, shared peer-to-peer. Users do not need to register an account before participating in the community. Feel free to click on a board below that interests you and jump right in!", - "no_global_rules_info": "There are no global rules, each board is completely independent and its owner decides how/if to moderate it.", + "5chan_description": "5chan is a serverless, adminless, decentralized and open-source 4chan alternative, where anyone can create and cryptographically own unlimited boards. All boards are selfhosted by their owners, who run <1>bitsocial nodes that users connect to, peer-to-peer. All data is text-only, including links to load media/embeds. Feel free to click on a board below that interests you and jump right in!", + "no_global_rules_info": "You can always connect to any board, fully P2P, nobody can stop you. Simply paste its address in the search field above.", "boards": "boards", "popular_threads": "Popular threads", "options": "Options", @@ -77,12 +77,12 @@ "embed": "embed", "remove": "remove", "download_latest_desktop": "Download the latest desktop version here: {{link}}", - "new_stable_version": "New stable version available, plebchan v{{newVersion}}. You are using plebchan v{{oldVersion}}.", + "new_stable_version": "New stable version available, 5chan v{{newVersion}}. You are using 5chan v{{oldVersion}}.", "refresh_to_update": "Refresh the page to update", "new_development_version": "New development version available, commit {{newCommit}}. You are using commit {{oldCommit}}.", "check_for_updates": "<1>Check for updates", "latest_development_version": "You're on the latest development version, commit {{commit}}. To use the stable version, go to {{link}}.", - "latest_stable_version": "You are on the latest stable version, plebchan v{{version}}.", + "latest_stable_version": "You are on the latest stable version, 5chan v{{version}}.", "check": "check", "update": "Update", "style": "Style", @@ -232,7 +232,7 @@ "order": "Order", "text": "Text", "filtered_threads": "Filtered threads", - "missing_link_confirm": "Your post is missing a link with an image, it will be filtered out by default on Plebchan. You can disable this filter in the settings, or view your post on another Plebbit client, like Seedit. Post anyway?", + "missing_link_confirm": "Your post is missing a link with an image, it will be filtered out by default on 5chan. You can disable this filter in the settings, or view your post on another Plebbit client, like Seedit. Post anyway?", "no_board_selected_warning": "Please select a board before posting.", "invalid_url_alert": "The provided link is not a valid URL.", "empty_comment_alert": "Cannot post empty comment.", diff --git a/public/translations/es/default.json b/public/translations/es/default.json index ab25f0fc..c7752bd0 100644 --- a/public/translations/es/default.json +++ b/public/translations/es/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "¿Qué es Plebchan?", + "what_is_5chan": "¿Qué es 5chan?", "go": "ir", "or": "o", - "plebchan_description": "Plebchan es una alternativa descentralizada, sin servidor, sin administrador, de 4chan donde cualquier pleb puede crear y poseer foros ilimitados. Todos los datos provienen del protocolo <1>plebbit, son todo texto incluidos los enlaces desde los cuales se incrustan los medios, compartidos de igual a igual. Los usuarios no necesitan registrarse antes de participar en la comunidad. ¡Siéntete libre de hacer clic en un foro a continuación que te interese y únete de inmediato!", + "5chan_description": "5chan es una alternativa descentralizada, sin servidor, sin administrador, de 4chan donde cualquier pleb puede crear y poseer foros ilimitados. Todos los datos provienen del protocolo <1>plebbit, son todo texto incluidos los enlaces desde los cuales se incrustan los medios, compartidos de igual a igual. Los usuarios no necesitan registrarse antes de participar en la comunidad. ¡Siéntete libre de hacer clic en un foro a continuación que te interese y únete de inmediato!", "no_global_rules_info": "No hay reglas globales, cada foro es completamente independiente y su propietario decide cómo/si moderarlo.", "boards": "foros", "popular_threads": "Hilos populares", @@ -77,12 +77,12 @@ "embed": "incrustar", "remove": "eliminar", "download_latest_desktop": "Descarga la última versión de escritorio aquí: {{link}}", - "new_stable_version": "Nueva versión estable disponible, plebchan v{{newVersion}}. Estás usando plebchan v{{oldVersion}}.", + "new_stable_version": "Nueva versión estable disponible, 5chan v{{newVersion}}. Estás usando 5chan v{{oldVersion}}.", "refresh_to_update": "Actualiza la página para actualizar", "new_development_version": "Nueva versión de desarrollo disponible, commit {{newCommit}}. Estás usando commit {{oldCommit}}.", "check_for_updates": "<1>Verifique las actualizaciones", "latest_development_version": "Estás en la última versión de desarrollo, commit {{commit}}. Para usar la versión estable, ve a {{link}}.", - "latest_stable_version": "Estás en la última versión estable, plebchan v{{version}}.", + "latest_stable_version": "Estás en la última versión estable, 5chan v{{version}}.", "check": "verificar", "update": "Actualizar", "style": "Estilo", @@ -231,7 +231,7 @@ "order": "Orden", "text": "Texto", "filtered_threads": "Hilos filtrados", - "missing_link_confirm": "Tu publicación falta un enlace con una imagen, se filtrará de forma predeterminada en Plebchan. Puedes desactivar este filtro en la configuración, o ver tu publicación en otro cliente de Plebbit, como Seedit. ¿Publicar de todos modos?", + "missing_link_confirm": "Tu publicación falta un enlace con una imagen, se filtrará de forma predeterminada en 5chan. Puedes desactivar este filtro en la configuración, o ver tu publicación en otro cliente de Plebbit, como Seedit. ¿Publicar de todos modos?", "no_board_selected_warning": "Por favor, selecciona una tabla antes de publicar.", "invalid_url_alert": "El enlace proporcionado no es una URL válida.", "empty_comment_alert": "No se puede publicar un comentario vacío.", diff --git a/public/translations/fa/default.json b/public/translations/fa/default.json index dd2e4efa..c2a79b07 100644 --- a/public/translations/fa/default.json +++ b/public/translations/fa/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "پلبچن چیست؟", + "what_is_5chan": "پلبچن چیست؟", "go": "برو", "or": "یا", - "plebchan_description": "پلبچن یک جایگزین ۴چن بدون سرور، بدون مدیر و متمرکز است که هر پلب می‌تواند تالارهای نامحدودی را ایجاد و مالکیت کند. تمام داده‌ها از پروتکل <1>پلبیت گرفته می‌شود، همه متن‌اند از جمله پیوندهایی که رسانه‌ها از آنها جاسازی می‌شوند، به صورت همتا به همتا به اشتراک گذاشته می‌شوند. کاربران قبل از شرکت در این جامعه نیازی به ثبت نام ندارند. لطفاً روی یک تالار زیر که به شما علاقه‌مند است کلیک کنید و مستقیماً به آن بپیوندید!", + "5chan_description": "پلبچن یک جایگزین ۴چن بدون سرور، بدون مدیر و متمرکز است که هر پلب می‌تواند تالارهای نامحدودی را ایجاد و مالکیت کند. تمام داده‌ها از پروتکل <1>پلبیت گرفته می‌شود، همه متن‌اند از جمله پیوندهایی که رسانه‌ها از آنها جاسازی می‌شوند، به صورت همتا به همتا به اشتراک گذاشته می‌شوند. کاربران قبل از شرکت در این جامعه نیازی به ثبت نام ندارند. لطفاً روی یک تالار زیر که به شما علاقه‌مند است کلیک کنید و مستقیماً به آن بپیوندید!", "no_global_rules_info": "هیچ قانون جهانی وجود ندارد، هر تالار کاملا مستقل است و مالک آن تصمیم می‌گیرد چگونه/آیا آن را نظارت کند.", "boards": "تالارهای پیام", "popular_threads": "نخستین موضوعات", @@ -77,12 +77,12 @@ "embed": "جاسازی", "remove": "حذف", "download_latest_desktop": "نسخه‌ی جدید سطح میز کامپیوتر را از اینجا دانلود کنید: {{link}}", - "new_stable_version": "نسخه پایدار جدید موجود است، plebchan v{{newVersion}}. شما plebchan v{{oldVersion}} را استفاده می‌کنید.", + "new_stable_version": "نسخه پایدار جدید موجود است، 5chan v{{newVersion}}. شما 5chan v{{oldVersion}} را استفاده می‌کنید.", "refresh_to_update": "برای به‌روزرسانی صفحه را رفرش کنید", "new_development_version": "نسخه توسعه جدید موجود است، کامیت {{newCommit}}. شما کامیت {{oldCommit}} را استفاده می‌کنید.", "check_for_updates": "<1>بررسی برای به‌روزرسانی‌ها", "latest_development_version": "شما در نسخه توسعه‌ی جدیدتر هستید، کامیت {{commit}}. برای استفاده از نسخه پایدار، به {{link}} بروید.", - "latest_stable_version": "شما در آخرین نسخه پایدار، plebchan v{{version}} هستید.", + "latest_stable_version": "شما در آخرین نسخه پایدار، 5chan v{{version}} هستید.", "check": "بررسی کنید", "update": "به‌روزرسانی", "style": "سبک", @@ -231,7 +231,7 @@ "order": "ترتیب", "text": "متن", "filtered_threads": "رشته‌های فیلتر شده", - "missing_link_confirm": "پست شما دارای یک لینک با تصویر نیست، به‌طور پیش‌فرض در Plebchan فیلتر خواهد شد. شما می‌توانید این فیلتر را در تنظیمات غیرفعال کنید یا پست خود را در یک کلاینت Plebbit دیگر، مانند Seedit مشاهده کنید. با این حال، پست کنید؟", + "missing_link_confirm": "پست شما دارای یک لینک با تصویر نیست، به‌طور پیش‌فرض در 5chan فیلتر خواهد شد. شما می‌توانید این فیلتر را در تنظیمات غیرفعال کنید یا پست خود را در یک کلاینت Plebbit دیگر، مانند Seedit مشاهده کنید. با این حال، پست کنید؟", "no_board_selected_warning": "لطفاً قبل از ارسال یک تابلو انتخاب کنید.", "invalid_url_alert": "لینک ارائه شده یک URL معتبر نیست.", "empty_comment_alert": "نمی‌توان نظر خالی ارسال کرد.", diff --git a/public/translations/fi/default.json b/public/translations/fi/default.json index ec8f215c..1d230c76 100644 --- a/public/translations/fi/default.json +++ b/public/translations/fi/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "Mikä on Plebchan?", + "what_is_5chan": "Mikä on 5chan?", "go": "mennä", "or": "tai", - "plebchan_description": "Plebchan on palvelin- ja ylläpitovapaa hajautettu vaihtoehto 4chanille, jossa kuka tahansa pleb voi luoda ja omistaa rajoittamattomasti foorumeita. Kaikki tiedot tulevat <1>plebbit-protokollasta, ne ovat kaikki tekstiä mukaan lukien linkit, joista media upotetaan, jaettuna vertaisverkkona. Käyttäjien ei tarvitse rekisteröityä ennen osallistumista yhteisöön. Voit vapaasti klikata alla olevaa foorumia, joka kiinnostaa sinua, ja liittyä heti mukaan!", + "5chan_description": "5chan on palvelin- ja ylläpitovapaa hajautettu vaihtoehto 4chanille, jossa kuka tahansa pleb voi luoda ja omistaa rajoittamattomasti foorumeita. Kaikki tiedot tulevat <1>plebbit-protokollasta, ne ovat kaikki tekstiä mukaan lukien linkit, joista media upotetaan, jaettuna vertaisverkkona. Käyttäjien ei tarvitse rekisteröityä ennen osallistumista yhteisöön. Voit vapaasti klikata alla olevaa foorumia, joka kiinnostaa sinua, ja liittyä heti mukaan!", "no_global_rules_info": "Maailmanlaajuisia sääntöjä ei ole, jokainen foorumi on täysin itsenäinen ja sen omistaja päättää kuinka / onko se säännelty.", "boards": "foorumit", "popular_threads": "Suositut langat", @@ -77,12 +77,12 @@ "embed": "upota", "remove": "poista", "download_latest_desktop": "Lataa uusin työpöytäversio täältä: {{link}}", - "new_stable_version": "Uusi vakaa versio saatavilla, plebchan v{{newVersion}}. Käytät plebchan v{{oldVersion}}.", + "new_stable_version": "Uusi vakaa versio saatavilla, 5chan v{{newVersion}}. Käytät 5chan v{{oldVersion}}.", "refresh_to_update": "Päivitä sivu päivittääksesi", "new_development_version": "Uusi kehitysversion saatavilla, commit {{newCommit}}. Käytät commit {{oldCommit}}.", "check_for_updates": "<1>Tarkista päivitykset", "latest_development_version": "Olet uusimmassa kehitysversion, commit {{commit}}. Käyttääksesi vakaa versio, siirry osoitteeseen {{link}}.", - "latest_stable_version": "Olet viimeisimmässä vakaa versio, plebchan v{{version}}.", + "latest_stable_version": "Olet viimeisimmässä vakaa versio, 5chan v{{version}}.", "check": "tarkista", "update": "Päivitä", "style": "Tyyli", @@ -231,7 +231,7 @@ "order": "Järjestys", "text": "Teksti", "filtered_threads": "Suodatetut ketjut", - "missing_link_confirm": "Viestistäsi puuttuu kuvaan liittyvä linkki, se suodatetaan oletusarvoisesti Plebchanissa. Voit poistaa tämän suodattimen käytöstä asetuksissa tai katsoa viestiäsi toisella Plebbit-asiakkaalla, kuten Seedit. Haluaako silti julkaista?", + "missing_link_confirm": "Viestistäsi puuttuu kuvaan liittyvä linkki, se suodatetaan oletusarvoisesti 5chanissa. Voit poistaa tämän suodattimen käytöstä asetuksissa tai katsoa viestiäsi toisella Plebbit-asiakkaalla, kuten Seedit. Haluaako silti julkaista?", "no_board_selected_warning": "Valitse taulu ennen julkaisemista.", "invalid_url_alert": "Annettu linkki ei ole voimassa oleva URL.", "empty_comment_alert": "Ei voi julkaista tyhjää kommenttia.", diff --git a/public/translations/fil/default.json b/public/translations/fil/default.json index a8fafc11..1a050a74 100644 --- a/public/translations/fil/default.json +++ b/public/translations/fil/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "Ano ang plebchan?", + "what_is_5chan": "Ano ang 5chan?", "go": "pumunta", "or": "o", - "plebchan_description": "Ang Plebchan ay isang serverless, adminless, decentralized na alternatibo sa 4chan kung saan maaaring lumikha at magmamay-ari ang sinumang pleb ng walang limitasyong boards. Lahat ng data ay nagmumula sa <1>plebbit protocol, ito ay lahat ng teksto kabilang ang mga link mula sa kung saan ang midya ay naka-embed, ibinahagi peer-to-peer. Hindi kailangang magparehistro ang mga gumagamit bago makilahok sa komunidad. Huwag mag-atubiling mag-click sa isang board sa ibaba na nais mong salihan at sumali na agad!", + "5chan_description": "Ang 5chan ay isang serverless, adminless, decentralized na alternatibo sa 4chan kung saan maaaring lumikha at magmamay-ari ang sinumang pleb ng walang limitasyong boards. Lahat ng data ay nagmumula sa <1>plebbit protocol, ito ay lahat ng teksto kabilang ang mga link mula sa kung saan ang midya ay naka-embed, ibinahagi peer-to-peer. Hindi kailangang magparehistro ang mga gumagamit bago makilahok sa komunidad. Huwag mag-atubiling mag-click sa isang board sa ibaba na nais mong salihan at sumali na agad!", "no_global_rules_info": "Walang global na mga patakaran, bawat board ay lubusang independiyente at ang may-ari nito ang nagdedesisyon kung paano / kung ito ay isasakdal.", "boards": "mga board", "popular_threads": "Mga popular na thread", @@ -77,12 +77,12 @@ "embed": "i-embed", "remove": "alisin", "download_latest_desktop": "I-download ang pinakabagong bersyon ng desktop dito: {{link}}", - "new_stable_version": "Bagong stable na bersyon na magagamit, plebchan v{{newVersion}}. Ginagamit mo ang plebchan v{{oldVersion}}.", + "new_stable_version": "Bagong stable na bersyon na magagamit, 5chan v{{newVersion}}. Ginagamit mo ang 5chan v{{oldVersion}}.", "refresh_to_update": "I-refresh ang pahina upang i-update", "new_development_version": "Bagong development version na magagamit, commit {{newCommit}}. Ginagamit mo ang commit {{oldCommit}}.", "check_for_updates": "<1>Tingnan para sa mga update", "latest_development_version": "Nasa pinakabagong bersyon ng pag-unlad, commit {{commit}}. Upang gamitin ang stable na bersyon, pumunta sa {{link}}.", - "latest_stable_version": "Nasa pinakabagong stable na bersyon, plebchan v{{version}}.", + "latest_stable_version": "Nasa pinakabagong stable na bersyon, 5chan v{{version}}.", "check": "suriin", "update": "I-update", "style": "Estilo", @@ -231,7 +231,7 @@ "order": "Kaayusan", "text": "Teksto", "filtered_threads": "Na-filter na mga thread", - "missing_link_confirm": "Ang iyong post ay walang link na may larawan, ito ay awtomatikong magiging filter sa Plebchan. Maaari mong huwag paganahin ang filter na ito sa mga setting, o tingnan ang iyong post sa ibang Plebbit client, tulad ng Seedit. Mag-post pa rin?", + "missing_link_confirm": "Ang iyong post ay walang link na may larawan, ito ay awtomatikong magiging filter sa 5chan. Maaari mong huwag paganahin ang filter na ito sa mga setting, o tingnan ang iyong post sa ibang Plebbit client, tulad ng Seedit. Mag-post pa rin?", "no_board_selected_warning": "Mangyaring pumili ng board bago mag-post.", "invalid_url_alert": "Ang ibinigay na link ay hindi isang wastong URL.", "empty_comment_alert": "Hindi makapag-post ng walang laman na komento.", diff --git a/public/translations/fr/default.json b/public/translations/fr/default.json index eed42fe2..7957d39a 100644 --- a/public/translations/fr/default.json +++ b/public/translations/fr/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "Qu'est-ce que Plebchan?", + "what_is_5chan": "Qu'est-ce que 5chan?", "go": "aller", "or": "ou", - "plebchan_description": "Plebchan est une alternative décentralisée, sans serveur, sans administrateur à 4chan où n'importe quel pleb peut créer et posséder des forums illimités. Toutes les données proviennent du protocole <1>plebbit, elles sont toutes textuelles y compris les liens à partir desquels les médias sont intégrés, partagés de pair à pair. Les utilisateurs n'ont pas besoin de s'inscrire avant de participer à la communauté. N'hésitez pas à cliquer sur un forum ci-dessous qui vous intéresse et à vous joindre immédiatement !", + "5chan_description": "5chan est une alternative décentralisée, sans serveur, sans administrateur à 4chan où n'importe quel pleb peut créer et posséder des forums illimités. Toutes les données proviennent du protocole <1>plebbit, elles sont toutes textuelles y compris les liens à partir desquels les médias sont intégrés, partagés de pair à pair. Les utilisateurs n'ont pas besoin de s'inscrire avant de participer à la communauté. N'hésitez pas à cliquer sur un forum ci-dessous qui vous intéresse et à vous joindre immédiatement !", "no_global_rules_info": "Il n'y a pas de règles globales, chaque forum est complètement indépendant et son propriétaire décide comment/s'il doit le modérer.", "boards": "forums", "popular_threads": "Fils populaires", @@ -77,12 +77,12 @@ "embed": "intégrer", "remove": "supprimer", "download_latest_desktop": "Téléchargez la dernière version de bureau ici : {{link}}", - "new_stable_version": "Nouvelle version stable disponible, plebchan v{{newVersion}}. Vous utilisez plebchan v{{oldVersion}}.", + "new_stable_version": "Nouvelle version stable disponible, 5chan v{{newVersion}}. Vous utilisez 5chan v{{oldVersion}}.", "refresh_to_update": "Actualisez la page pour mettre à jour", "new_development_version": "Nouvelle version de développement disponible, commit {{newCommit}}. Vous utilisez commit {{oldCommit}}.", "check_for_updates": "<1>Vérifiez les mises à jour", "latest_development_version": "Vous êtes sur la dernière version de développement, commit {{commit}}. Pour utiliser la version stable, allez sur {{link}}.", - "latest_stable_version": "Vous êtes sur la dernière version stable, plebchan v{{version}}.", + "latest_stable_version": "Vous êtes sur la dernière version stable, 5chan v{{version}}.", "check": "vérifier", "update": "Mettre à jour", "style": "Style", @@ -231,7 +231,7 @@ "order": "Ordre", "text": "Texte", "filtered_threads": "Threads filtrés", - "missing_link_confirm": "Votre publication est manquante d'un lien avec une image, elle sera filtrée par défaut sur Plebchan. Vous pouvez désactiver ce filtre dans les paramètres, ou voir votre publication sur un autre client Plebbit, comme Seedit. Publier quand même ?", + "missing_link_confirm": "Votre publication est manquante d'un lien avec une image, elle sera filtrée par défaut sur 5chan. Vous pouvez désactiver ce filtre dans les paramètres, ou voir votre publication sur un autre client Plebbit, comme Seedit. Publier quand même ?", "no_board_selected_warning": "Veuillez sélectionner un tableau avant de publier.", "invalid_url_alert": "Le lien fourni n'est pas une URL valide.", "empty_comment_alert": "Impossible de publier un commentaire vide.", diff --git a/public/translations/he/default.json b/public/translations/he/default.json index b9bb6c3d..04c8591f 100644 --- a/public/translations/he/default.json +++ b/public/translations/he/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "מה זה פלבצ׳ן?", + "what_is_5chan": "מה זה פלבצ׳ן?", "go": "לך", "or": "או", - "plebchan_description": "פלבצ'ן הוא אלטרנטיבה חדשה, ללא שרת, ללא מנהל, וללא מרכזית ל־4chan, בה כל pleb יכול ליצור ולבעוט בלוחות ללא הגבלה. כל הנתונים מגיעים מפרוטוקול <1>plebbit, הם כולם טקסט כולל קישורים מהם מוטמעת מדיה, משותפת פר אחד פר אחד. המשתמשים אינם צריכים להירשם לחשבון לפני השתתפותם בקהילה. נכון ללחוץ על לוח מטה שמעניין אתכם ולהצטרף מיידית!", + "5chan_description": "פלבצ'ן הוא אלטרנטיבה חדשה, ללא שרת, ללא מנהל, וללא מרכזית ל־4chan, בה כל pleb יכול ליצור ולבעוט בלוחות ללא הגבלה. כל הנתונים מגיעים מפרוטוקול <1>plebbit, הם כולם טקסט כולל קישורים מהם מוטמעת מדיה, משותפת פר אחד פר אחד. המשתמשים אינם צריכים להירשם לחשבון לפני השתתפותם בקהילה. נכון ללחוץ על לוח מטה שמעניין אתכם ולהצטרף מיידית!", "no_global_rules_info": "אין כלל כללי, כל לוח הודעות הוא לחוד ובעליו מחליט איך/האם להודיע על זה.", "boards": "פורומים", "popular_threads": "אשכולות פופולריים", @@ -77,12 +77,12 @@ "embed": "הטמע", "remove": "הסר", "download_latest_desktop": "הורד את הגרסה האחרונה לשולחן העבודה כאן: {{link}}", - "new_stable_version": "גרסה יציבה חדשה זמינה, plebchan v{{newVersion}}. אתה משתמש plebchan v{{oldVersion}}.", + "new_stable_version": "גרסה יציבה חדשה זמינה, 5chan v{{newVersion}}. אתה משתמש 5chan v{{oldVersion}}.", "refresh_to_update": "רענן את העמוד כדי לעדכן", "new_development_version": "גרסת פיתוח חדשה זמינה, קומיט {{newCommit}}. אתה משתמש בקומיט {{oldCommit}}.", "check_for_updates": "<1>בדוק עבור עדכונים", "latest_development_version": "אתה נמצא בגרסת הפיתוח האחרונה, קומיט {{commit}}. כדי להשתמש בגרסה יציבה, עבור אל {{link}}.", - "latest_stable_version": "אתה נמצא בגרסה היציבה האחרונה, plebchan v{{version}}.", + "latest_stable_version": "אתה נמצא בגרסה היציבה האחרונה, 5chan v{{version}}.", "check": "בדוק", "update": "עדכן", "style": "סגנון", @@ -231,7 +231,7 @@ "order": "סדר", "text": "טקסט", "filtered_threads": "אשכולות ממוינים", - "missing_link_confirm": "הפוסט שלך חסר קישור עם תמונה, הוא ית过滤 ברירת מחדל ב-Plebchan. אתה יכול לבטל את הפילטר הזה בהגדרות, או לצפות בפוסט שלך בלקוח Plebbit אחר, כמו Seedit. לפרסם בכל מקרה?", + "missing_link_confirm": "הפוסט שלך חסר קישור עם תמונה, הוא ית过滤 ברירת מחדל ב-5chan. אתה יכול לבטל את הפילטר הזה בהגדרות, או לצפות בפוסט שלך בלקוח Plebbit אחר, כמו Seedit. לפרסם בכל מקרה?", "no_board_selected_warning": "אנא בחר לוח לפני פרסום.", "invalid_url_alert": "הלינק שסופק אינו כתובת URL חוקית.", "empty_comment_alert": "לא ניתן לפרסם תגובה ריקה.", diff --git a/public/translations/hi/default.json b/public/translations/hi/default.json index a1c42d3f..75d1e8a9 100644 --- a/public/translations/hi/default.json +++ b/public/translations/hi/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "प्लेबचैन क्या है?", + "what_is_5chan": "प्लेबचैन क्या है?", "go": "जाओ", "or": "या", - "plebchan_description": "प्लेबचान एक सर्वरलेस, एडमिनलेस, डीसेंट्रलाइज्ड 4chan का विकल्प है जहां कोई भी प्लेब असीमित बोर्ड बना सकता है और मालिक हो सकता है। सभी डेटा प्रोटोकॉल <1>प्लेबिट से आता है, यह सभी पाठ है जिसमें मीडिया एम्बेड है, पीयर-टू-पीर साझा किया जाता है, सहित लिंक। उपयोगकर्ताओं को समुदाय में भाग लेने से पहले खाता रजिस्टर करने की आवश्यकता नहीं है। आपको जो भी बोर्ड नीचे पसंद है, उसपर क्लिक करें और तुरंत शामिल हों!", + "5chan_description": "प्लेबचान एक सर्वरलेस, एडमिनलेस, डीसेंट्रलाइज्ड 4chan का विकल्प है जहां कोई भी प्लेब असीमित बोर्ड बना सकता है और मालिक हो सकता है। सभी डेटा प्रोटोकॉल <1>प्लेबिट से आता है, यह सभी पाठ है जिसमें मीडिया एम्बेड है, पीयर-टू-पीर साझा किया जाता है, सहित लिंक। उपयोगकर्ताओं को समुदाय में भाग लेने से पहले खाता रजिस्टर करने की आवश्यकता नहीं है। आपको जो भी बोर्ड नीचे पसंद है, उसपर क्लिक करें और तुरंत शामिल हों!", "no_global_rules_info": "कोई वैश्विक नियम नहीं हैं, प्रत्येक मंच पूरी तरह से स्वतंत्र है और इसके मालिक यह तय करता है कि कैसे/क्या उसे नियंत्रित किया जाए।", "boards": "मंच", "popular_threads": "लोकप्रिय थ्रेड्स", @@ -77,12 +77,12 @@ "embed": "एम्बेड", "remove": "हटाएं", "download_latest_desktop": "यहां सबसे नवीन डेस्कटॉप संस्करण डाउनलोड करें: {{link}}", - "new_stable_version": "नई स्थिर संस्करण उपलब्ध है, plebchan v{{newVersion}}। आप plebchan v{{oldVersion}} का उपयोग कर रहे हैं।", + "new_stable_version": "नई स्थिर संस्करण उपलब्ध है, 5chan v{{newVersion}}। आप 5chan v{{oldVersion}} का उपयोग कर रहे हैं।", "refresh_to_update": "अपडेट करने के लिए पृष्ठ को रिफ्रेश करें", "new_development_version": "नई डेवलपमेंट संस्करण उपलब्ध है, कमिट {{newCommit}}। आप कमिट {{oldCommit}} का उपयोग कर रहे हैं।", "check_for_updates": "<1>जाँचें अपडेट के लिए", "latest_development_version": "आप नवीनतम विकास संस्करण पर हैं, कमिट {{commit}}। स्थिर संस्करण का उपयोग करने के लिए, {{link}} पर जाएं।", - "latest_stable_version": "आप नवीनतम स्थिर संस्करण पर हैं, plebchan v{{version}}।", + "latest_stable_version": "आप नवीनतम स्थिर संस्करण पर हैं, 5chan v{{version}}।", "check": "जाँच करें", "update": "अपडेट करें", "style": "शैली", @@ -231,7 +231,7 @@ "order": "क्रम", "text": "पाठ", "filtered_threads": "फ़िल्टर किए गए थ्रेड्स", - "missing_link_confirm": "आपके पोस्ट में एक छवि के साथ लिंक नहीं है, इसे डिफ़ॉल्ट रूप से Plebchan पर फ़िल्टर किया जाएगा। आप सेटिंग्स में इस फ़िल्टर को अक्षम कर सकते हैं, या अपने पोस्ट को किसी अन्य Plebbit क्लाइंट, जैसे Seedit पर देख सकते हैं। फिर भी पोस्ट करें?", + "missing_link_confirm": "आपके पोस्ट में एक छवि के साथ लिंक नहीं है, इसे डिफ़ॉल्ट रूप से 5chan पर फ़िल्टर किया जाएगा। आप सेटिंग्स में इस फ़िल्टर को अक्षम कर सकते हैं, या अपने पोस्ट को किसी अन्य Plebbit क्लाइंट, जैसे Seedit पर देख सकते हैं। फिर भी पोस्ट करें?", "no_board_selected_warning": "पोस्ट करने से पहले कृपया एक बोर्ड चुनें।", "invalid_url_alert": "प्रदत्त लिंक एक वैध URL नहीं है।", "empty_comment_alert": "खाली टिप्पणी पोस्ट नहीं कर सकते।", diff --git a/public/translations/hu/default.json b/public/translations/hu/default.json index 666daaa6..57e69622 100644 --- a/public/translations/hu/default.json +++ b/public/translations/hu/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "Mi az a Plebchan?", + "what_is_5chan": "Mi az a 5chan?", "go": "menni", "or": "vagy", - "plebchan_description": "A Plebchan egy szerver nélküli, admin nélküli, decentralizált 4chan alternatíva, ahol bármelyik pleb létrehozhat és birtokolhat korlátlan fórumokat. Az adatok mindegyike a <1>plebbit protokollból származik, minden szöveg, beleértve a hivatkozásokat is, amelyekből a média be van ágyazva, peer-to-peer megosztással. A felhasználóknak nem kell fiókot regisztrálniuk a közösség részvételéhez. Kattints bármelyik lent lévő fórumra, amely érdekel, és csatlakozz azonnal!", + "5chan_description": "A 5chan egy szerver nélküli, admin nélküli, decentralizált 4chan alternatíva, ahol bármelyik pleb létrehozhat és birtokolhat korlátlan fórumokat. Az adatok mindegyike a <1>plebbit protokollból származik, minden szöveg, beleértve a hivatkozásokat is, amelyekből a média be van ágyazva, peer-to-peer megosztással. A felhasználóknak nem kell fiókot regisztrálniuk a közösség részvételéhez. Kattints bármelyik lent lévő fórumra, amely érdekel, és csatlakozz azonnal!", "no_global_rules_info": "Nincsenek globális szabályok, minden fórum teljesen független, és tulajdonosa dönti el, hogyan/ha moderálja azt.", "boards": "fórumok", "popular_threads": "Népszerű szálak", @@ -77,12 +77,12 @@ "embed": "beágyaz", "remove": "eltávolít", "download_latest_desktop": "Töltsd le a legújabb asztali verziót itt: {{link}}", - "new_stable_version": "Új stabil verzió elérhető, plebchan v{{newVersion}}. A plebchan v{{oldVersion}}-t használod.", + "new_stable_version": "Új stabil verzió elérhető, 5chan v{{newVersion}}. A 5chan v{{oldVersion}}-t használod.", "refresh_to_update": "Frissítse az oldalt az frissítéshez", "new_development_version": "Új fejlesztési verzió elérhető, commit {{newCommit}}. A commit {{oldCommit}}-t használod.", "check_for_updates": "<1>Ellenőrizd a frissítéseket", "latest_development_version": "A legújabb fejlesztői verziót használod, commit {{commit}}. A stabil verzió használatához látogass el ide: {{link}}.", - "latest_stable_version": "A legújabb stabil verziót használod, plebchan v{{version}}.", + "latest_stable_version": "A legújabb stabil verziót használod, 5chan v{{version}}.", "check": "ellenőriz", "update": "Frissítés", "style": "Stílus", @@ -231,7 +231,7 @@ "order": "Rendelés", "text": "Szöveg", "filtered_threads": "Szűrt szálak", - "missing_link_confirm": "A bejegyzésedből hiányzik egy képet tartalmazó hivatkozás, alapértelmezés szerint kiszűrésre kerül a Plebchan-on. Ezt a szűrőt letilthatod a beállításokban, vagy megnézheted a bejegyzésedet egy másik Plebbit kliensben, például a Seedit-en. Mégis posztolj?", + "missing_link_confirm": "A bejegyzésedből hiányzik egy képet tartalmazó hivatkozás, alapértelmezés szerint kiszűrésre kerül a 5chan-on. Ezt a szűrőt letilthatod a beállításokban, vagy megnézheted a bejegyzésedet egy másik Plebbit kliensben, például a Seedit-en. Mégis posztolj?", "no_board_selected_warning": "Kérlek, válassz egy táblát a közzététel előtt.", "invalid_url_alert": "A megadott hivatkozás nem érvényes URL.", "empty_comment_alert": "Üres hozzászólást nem lehet közzétenni.", diff --git a/public/translations/id/default.json b/public/translations/id/default.json index 5eef3d29..c97bb3b8 100644 --- a/public/translations/id/default.json +++ b/public/translations/id/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "Apa itu plebchan?", + "what_is_5chan": "Apa itu 5chan?", "go": "pergi", "or": "atau", - "plebchan_description": "Plebchan adalah alternatif 4chan tanpa server, tanpa admin, terdesentralisasi di mana siapa pun pleb bisa membuat dan memiliki papan tak terbatas. Semua data berasal dari protokol <1>plebbit, semuanya teks termasuk tautan dari mana media disematkan, dibagikan peer-to-peer. Pengguna tidak perlu mendaftar akun sebelum berpartisipasi dalam komunitas. Jangan ragu untuk mengklik papan di bawah yang menarik bagi Anda dan bergabung segera!", + "5chan_description": "5chan adalah alternatif 4chan tanpa server, tanpa admin, terdesentralisasi di mana siapa pun pleb bisa membuat dan memiliki papan tak terbatas. Semua data berasal dari protokol <1>plebbit, semuanya teks termasuk tautan dari mana media disematkan, dibagikan peer-to-peer. Pengguna tidak perlu mendaftar akun sebelum berpartisipasi dalam komunitas. Jangan ragu untuk mengklik papan di bawah yang menarik bagi Anda dan bergabung segera!", "no_global_rules_info": "Tidak ada aturan global, setiap papan adalah sepenuhnya independen dan pemiliknya yang menentukan bagaimana/apa yang dimoderasi.", "boards": "papan pesan", "popular_threads": "Benang populer", @@ -77,12 +77,12 @@ "embed": "sematkan", "remove": "hapus", "download_latest_desktop": "Unduh versi desktop terbaru di sini: {{link}}", - "new_stable_version": "Versi stabil baru tersedia, plebchan v{{newVersion}}. Anda menggunakan plebchan v{{oldVersion}}.", + "new_stable_version": "Versi stabil baru tersedia, 5chan v{{newVersion}}. Anda menggunakan 5chan v{{oldVersion}}.", "refresh_to_update": "Segarkan halaman untuk memperbarui", "new_development_version": "Versi pengembangan baru tersedia, commit {{newCommit}}. Anda menggunakan commit {{oldCommit}}.", "check_for_updates": "<1>Periksa pembaruan", "latest_development_version": "Anda menggunakan versi pengembangan terbaru, commit {{commit}}. Untuk menggunakan versi stabil, pergi ke {{link}}.", - "latest_stable_version": "Anda menggunakan versi stabil terbaru, plebchan v{{version}}.", + "latest_stable_version": "Anda menggunakan versi stabil terbaru, 5chan v{{version}}.", "check": "periksa", "update": "Perbarui", "style": "Gaya", @@ -231,7 +231,7 @@ "order": "Urutan", "text": "Teks", "filtered_threads": "Thread yang difilter", - "missing_link_confirm": "Postingan Anda tidak memiliki tautan dengan gambar, itu akan difilter secara default di Plebchan. Anda dapat menonaktifkan filter ini di pengaturan, atau melihat postingan Anda di klien Plebbit lain, seperti Seedit. Posting saja?", + "missing_link_confirm": "Postingan Anda tidak memiliki tautan dengan gambar, itu akan difilter secara default di 5chan. Anda dapat menonaktifkan filter ini di pengaturan, atau melihat postingan Anda di klien Plebbit lain, seperti Seedit. Posting saja?", "no_board_selected_warning": "Silakan pilih papan sebelum memposting.", "invalid_url_alert": "Tautan yang diberikan bukan URL yang valid.", "empty_comment_alert": "Tidak dapat memposting komentar kosong.", diff --git a/public/translations/it/default.json b/public/translations/it/default.json index 8b2baf25..6294c4da 100644 --- a/public/translations/it/default.json +++ b/public/translations/it/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "Cos'è plebchan?", + "what_is_5chan": "Cos'è 5chan?", "go": "vai", "or": "oppure", - "plebchan_description": "Plebchan è un'alternativa a 4chan decentralizzata, senza server, senza amministratori, in cui qualunque pleb può creare e possedere board illimitate. Tutti i dati provengono dal protocollo <1>plebbit, sono tutti testo inclusi i link da cui sono incorporati i media, condivisi peer-to-peer. Gli utenti non devono registrare un account prima di partecipare alla community. Sentiti libero di cliccare su una board qui sotto che ti interessa e unisciti subito!", + "5chan_description": "5chan è un'alternativa a 4chan decentralizzata, senza server, senza amministratori, in cui qualunque pleb può creare e possedere board illimitate. Tutti i dati provengono dal protocollo <1>plebbit, sono tutti testo inclusi i link da cui sono incorporati i media, condivisi peer-to-peer. Gli utenti non devono registrare un account prima di partecipare alla community. Sentiti libero di cliccare su una board qui sotto che ti interessa e unisciti subito!", "no_global_rules_info": "Non ci sono regole globali, ogni board è completamente indipendente e il suo proprietario decide come/se moderarlo.", "boards": "board", "popular_threads": "Thread popolari", @@ -77,12 +77,12 @@ "embed": "incorpora", "remove": "rimuovi", "download_latest_desktop": "Scarica l'ultima versione desktop qui: {{link}}", - "new_stable_version": "Nuova versione stabile disponibile, plebchan v{{newVersion}}. Stai utilizzando plebchan v{{oldVersion}}.", + "new_stable_version": "Nuova versione stabile disponibile, 5chan v{{newVersion}}. Stai utilizzando 5chan v{{oldVersion}}.", "refresh_to_update": "Ricarica la pagina per aggiornare", "new_development_version": "Nuova versione di sviluppo disponibile, commit {{newCommit}}. Stai utilizzando commit {{oldCommit}}.", "check_for_updates": "<1>Controlla aggiornamenti", "latest_development_version": "Stai utilizzando la versione per sviluppatori più recente, commit {{commit}}. Per utilizzare la versione stabile, vai su {{link}}.", - "latest_stable_version": "Stai utilizzando l'ultima versione stabile, plebchan v{{version}}.", + "latest_stable_version": "Stai utilizzando l'ultima versione stabile, 5chan v{{version}}.", "check": "controlla", "update": "Aggiorna", "style": "Stile", @@ -231,7 +231,7 @@ "order": "Ordine", "text": "Testo", "filtered_threads": "Thread filtrati", - "missing_link_confirm": "Il tuo post è privo di un link con un'immagine, verrà filtrato per impostazione predefinita su Plebchan. Puoi disabilitare questo filtro nelle impostazioni o visualizzare il tuo post su un altro client Plebbit, come Seedit. Pubblica comunque?", + "missing_link_confirm": "Il tuo post è privo di un link con un'immagine, verrà filtrato per impostazione predefinita su 5chan. Puoi disabilitare questo filtro nelle impostazioni o visualizzare il tuo post su un altro client Plebbit, come Seedit. Pubblica comunque?", "no_board_selected_warning": "Per favore, seleziona una board prima di pubblicare.", "invalid_url_alert": "Il link fornito non è un URL valido.", "empty_comment_alert": "Impossibile pubblicare un commento vuoto.", diff --git a/public/translations/ja/default.json b/public/translations/ja/default.json index e6fb2884..b96d6539 100644 --- a/public/translations/ja/default.json +++ b/public/translations/ja/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "プレブチャンとは何ですか?", + "what_is_5chan": "プレブチャンとは何ですか?", "go": "行く", "or": "または", - "plebchan_description": "Plebchan は、サーバーレス、管理者なし、分散型の 4chan の代替であり、どんな pleb も無制限のボードを作成して所有できます。すべてのデータは、<1>plebbit プロトコルから取得され、すべてのテキスト、埋め込まれるメディアが含まれるリンク、ピアツーピアで共有されます。ユーザーはコミュニティに参加する前にアカウントを登録する必要はありません。興味のあるボードをクリックして、すぐに参加してください!", + "5chan_description": "5chan は、サーバーレス、管理者なし、分散型の 4chan の代替であり、どんな pleb も無制限のボードを作成して所有できます。すべてのデータは、<1>plebbit プロトコルから取得され、すべてのテキスト、埋め込まれるメディアが含まれるリンク、ピアツーピアで共有されます。ユーザーはコミュニティに参加する前にアカウントを登録する必要はありません。興味のあるボードをクリックして、すぐに参加してください!", "no_global_rules_info": "グローバルなルールはありません、各掲示板は完全に独立しており、その所有者がそれをどのように/どのようにモデレートするかを決定します。", "boards": "掲示板", "popular_threads": "人気のあるスレッド", @@ -77,12 +77,12 @@ "embed": "埋め込み", "remove": "削除", "download_latest_desktop": "最新のデスクトップバージョンをこちらからダウンロード: {{link}}", - "new_stable_version": "新しい安定版が利用可能です、plebchan v{{newVersion}}。あなたはplebchan v{{oldVersion}} を使用しています。", + "new_stable_version": "新しい安定版が利用可能です、5chan v{{newVersion}}。あなたは5chan v{{oldVersion}} を使用しています。", "refresh_to_update": "更新するにはページを更新してください", "new_development_version": "新しい開発バージョンが利用可能です、コミット {{newCommit}}。あなたはコミット {{oldCommit}} を使用しています。", "check_for_updates": "<1>更新 を確認", "latest_development_version": "最新の開発バージョン、コミット{{commit}}を使用しています。安定版を使用するには、{{link}}に移動してください。", - "latest_stable_version": "最新の安定版、plebchan v{{version}}を使用しています。", + "latest_stable_version": "最新の安定版、5chan v{{version}}を使用しています。", "check": "チェック", "update": "更新", "style": "スタイル", @@ -231,7 +231,7 @@ "order": "順序", "text": "テキスト", "filtered_threads": "フィルタリングされたスレッド", - "missing_link_confirm": "あなたの投稿には画像付きのリンクがありません。それはPlebchanでデフォルトでフィルタリングされます。このフィルタを設定で無効にするか、Seeditのような別のPlebbitクライアントで投稿を表示できます。それでも投稿しますか?", + "missing_link_confirm": "あなたの投稿には画像付きのリンクがありません。それは5chanでデフォルトでフィルタリングされます。このフィルタを設定で無効にするか、Seeditのような別のPlebbitクライアントで投稿を表示できます。それでも投稿しますか?", "no_board_selected_warning": "投稿する前にボードを選択してください。", "invalid_url_alert": "提供されたリンクは有効なURLではありません。", "empty_comment_alert": "空のコメントは投稿できません。", diff --git a/public/translations/ko/default.json b/public/translations/ko/default.json index 0fbb21f6..865bce58 100644 --- a/public/translations/ko/default.json +++ b/public/translations/ko/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "플레브찬이란 무엇인가요?", + "what_is_5chan": "플레브찬이란 무엇인가요?", "go": "가기", "or": "또는", - "plebchan_description": "Plebchan은 서버 없이, 관리자 없이, 분산형인 4chan 대안으로 어떤 pleb도 무제한의 게시판을 생성하고 소유할 수 있습니다. 모든 데이터는 <1>plebbit 프로토콜에서 나온 것으로, 모두 텍스트이며, 그 안에 미디어가 포함된 링크를 통해 peer-to-peer로 공유됩니다. 사용자는 커뮤니티에 참여하기 전에 계정을 등록할 필요가 없습니다. 관심 있는 아래의 게시판을 클릭하고 바로 참여해보세요!", + "5chan_description": "5chan은 서버 없이, 관리자 없이, 분산형인 4chan 대안으로 어떤 pleb도 무제한의 게시판을 생성하고 소유할 수 있습니다. 모든 데이터는 <1>plebbit 프로토콜에서 나온 것으로, 모두 텍스트이며, 그 안에 미디어가 포함된 링크를 통해 peer-to-peer로 공유됩니다. 사용자는 커뮤니티에 참여하기 전에 계정을 등록할 필요가 없습니다. 관심 있는 아래의 게시판을 클릭하고 바로 참여해보세요!", "no_global_rules_info": "전역 규칙이 없습니다. 각 게시판은 완전히 독립적이며 소유자가 어떻게/모디레이션할지를 결정합니다.", "boards": "게시판", "popular_threads": "인기 있는 스레드", @@ -77,12 +77,12 @@ "embed": "임베드", "remove": "제거", "download_latest_desktop": "최신 데스크톱 버전을 여기에서 다운로드하세요: {{link}}", - "new_stable_version": "새로운 안정 버전이 사용 가능합니다, plebchan v{{newVersion}}. plebchan v{{oldVersion}}을(를) 사용 중입니다.", + "new_stable_version": "새로운 안정 버전이 사용 가능합니다, 5chan v{{newVersion}}. 5chan v{{oldVersion}}을(를) 사용 중입니다.", "refresh_to_update": "업데이트를 위해 페이지를 새로 고칩니다", "new_development_version": "새로운 개발 버전이 사용 가능합니다, 커밋 {{newCommit}}. 커밋 {{oldCommit}}을(를) 사용 중입니다.", "check_for_updates": "<1>업데이트 확인", "latest_development_version": "최신 개발 버전, 커밋 {{commit}}을 사용 중입니다. 안정 버전을 사용하려면 {{link}}로 이동하세요.", - "latest_stable_version": "최신 안정 버전, plebchan v{{version}}을 사용 중입니다.", + "latest_stable_version": "최신 안정 버전, 5chan v{{version}}을 사용 중입니다.", "check": "확인", "update": "업데이트", "style": "스타일", @@ -231,7 +231,7 @@ "order": "순서", "text": "텍스트", "filtered_threads": "필터링된 스레드", - "missing_link_confirm": "당신의 게시물에는 이미지가 포함된 링크가 없습니다. 기본적으로 Plebchan에서 필터링됩니다. 설정에서 이 필터를 비활성화하거나 Seedit와 같은 다른 Plebbit 클라이언트에서 게시물을 볼 수 있습니다. 그래도 게시하시겠습니까?", + "missing_link_confirm": "당신의 게시물에는 이미지가 포함된 링크가 없습니다. 기본적으로 5chan에서 필터링됩니다. 설정에서 이 필터를 비활성화하거나 Seedit와 같은 다른 Plebbit 클라이언트에서 게시물을 볼 수 있습니다. 그래도 게시하시겠습니까?", "no_board_selected_warning": "게시하기 전에 보드를 선택하십시오.", "invalid_url_alert": "제공된 링크는 유효한 URL이 아닙니다.", "empty_comment_alert": "빈 댓글을 게시할 수 없습니다.", diff --git a/public/translations/mr/default.json b/public/translations/mr/default.json index b42e1862..355b3071 100644 --- a/public/translations/mr/default.json +++ b/public/translations/mr/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "प्लेबचॅन काय आहे?", + "what_is_5chan": "प्लेबचॅन काय आहे?", "go": "जा", "or": "किव्हा", - "plebchan_description": "प्लेबचॅन हा सर्व्हरलेस, एडमिनलेस, डीसेंट्रलाइझ्ड ४चॅनचा पर्याय आहे ज्यात कोणत्याही प्लेबला अमित बोर्ड तयार करून ठेवू शकतात. सर्व डेटा <1>प्लेबिट प्रोटोकॉलपासून आला आहे, ते सर्व पाठ आहेत, त्यातून मीडिया एम्बेड केला जातो, पीयर-ते-पीयर सामायिक केला जातो. वापरकर्त्यांना समुदायात सहभाग घेण्यापूर्वी खाते नोंदविण्याची आवश्यकता नाही. आपल्याला आवडता असलेला खालील बोर्ड क्लिक करून प्रवेश करा आणि लवकरच ज्वाइन करा!", + "5chan_description": "प्लेबचॅन हा सर्व्हरलेस, एडमिनलेस, डीसेंट्रलाइझ्ड ४चॅनचा पर्याय आहे ज्यात कोणत्याही प्लेबला अमित बोर्ड तयार करून ठेवू शकतात. सर्व डेटा <1>प्लेबिट प्रोटोकॉलपासून आला आहे, ते सर्व पाठ आहेत, त्यातून मीडिया एम्बेड केला जातो, पीयर-ते-पीयर सामायिक केला जातो. वापरकर्त्यांना समुदायात सहभाग घेण्यापूर्वी खाते नोंदविण्याची आवश्यकता नाही. आपल्याला आवडता असलेला खालील बोर्ड क्लिक करून प्रवेश करा आणि लवकरच ज्वाइन करा!", "no_global_rules_info": "कोणत्याही जागतिक कायद्या नाहीत, प्रत्येक बोर्ड पूर्णपणे स्वतंत्र आहे आणि त्याचा मालक कसा/आणि कशा प्रकारे याची नियमन करावी हे त्याच्याकडून ठरतो.", "boards": "संदेश फलक", "popular_threads": "लोकप्रिय थ्रेड्स", @@ -77,12 +77,12 @@ "embed": "एम्बेड", "remove": "काढा", "download_latest_desktop": "येथे नवीन डेस्कटॉप संस्करण डाउनलोड करा: {{link}}", - "new_stable_version": "नवीन स्थिर संस्करण उपलब्ध आहे, plebchan v{{newVersion}}. आपण plebchan v{{oldVersion}} वापरत आहात.", + "new_stable_version": "नवीन स्थिर संस्करण उपलब्ध आहे, 5chan v{{newVersion}}. आपण 5chan v{{oldVersion}} वापरत आहात.", "refresh_to_update": "अपडेट करण्यासाठी पृष्ठ पुन्हा लोड करा", "new_development_version": "नवीन विकास संस्करण उपलब्ध आहे, कमिट {{newCommit}}. आपण कमिट {{oldCommit}} वापरत आहात.", "check_for_updates": "<1>चेक अपडेट्ससाठी", "latest_development_version": "तुम्ही आधुनिक विकास संस्करणावर आहात, कमिट {{commit}}. स्थिर संस्करण वापरण्यासाठी, {{link}} जा.", - "latest_stable_version": "तुम्ही आधुनिक स्थिर संस्करणावर आहात, plebchan v{{version}}.", + "latest_stable_version": "तुम्ही आधुनिक स्थिर संस्करणावर आहात, 5chan v{{version}}.", "check": "तपासा", "update": "अद्यतनित करा", "style": "शैली", @@ -231,7 +231,7 @@ "order": "आदेश", "text": "पाठ", "filtered_threads": "फिल्टर केलेले ध糹रे", - "missing_link_confirm": "तुमच्या पोस्टमध्ये चित्रासह लिंक नाही, हे डिफॉल्टवर Plebchan द्वारे फिल्टर केले जाईल. तुम्ही सेटिंग्जमध्ये हा फिल्टर अक्षम करू शकता किंवा Seedit सारख्या दुसऱ्या Plebbit क्लायंटवर तुमचा पोस्ट पाहू शकता. तरीही पोस्ट करायचे आहे का?", + "missing_link_confirm": "तुमच्या पोस्टमध्ये चित्रासह लिंक नाही, हे डिफॉल्टवर 5chan द्वारे फिल्टर केले जाईल. तुम्ही सेटिंग्जमध्ये हा फिल्टर अक्षम करू शकता किंवा Seedit सारख्या दुसऱ्या Plebbit क्लायंटवर तुमचा पोस्ट पाहू शकता. तरीही पोस्ट करायचे आहे का?", "no_board_selected_warning": "पोस्ट करण्यापूर्वी कृपया एक बोर्ड निवडा.", "invalid_url_alert": "दिलेला लिंक वैध URL नाही.", "empty_comment_alert": "रिक्त टिप्पणी पोस्ट करू शकत नाही.", diff --git a/public/translations/nl/default.json b/public/translations/nl/default.json index d0d0f3cb..2bd30115 100644 --- a/public/translations/nl/default.json +++ b/public/translations/nl/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "Wat is plebchan?", + "what_is_5chan": "Wat is 5chan?", "go": "gaan", "or": "of", - "plebchan_description": "Plebchan is een serverloos, adminloos, gedecentraliseerd alternatief voor 4chan waar elke pleb onbeperkte forums kan maken en bezitten. Alle gegevens komen van het <1>plebbit-protocol, het is allemaal tekst inclusief links waaruit media is ingesloten, gedeeld peer-to-peer. Gebruikers hoeven geen account te registreren voordat ze deelnemen aan de community. Voel je vrij om op een forum hieronder te klikken dat je interesseert en spring er meteen in!", + "5chan_description": "5chan is een serverloos, adminloos, gedecentraliseerd alternatief voor 4chan waar elke pleb onbeperkte forums kan maken en bezitten. Alle gegevens komen van het <1>plebbit-protocol, het is allemaal tekst inclusief links waaruit media is ingesloten, gedeeld peer-to-peer. Gebruikers hoeven geen account te registreren voordat ze deelnemen aan de community. Voel je vrij om op een forum hieronder te klikken dat je interesseert en spring er meteen in!", "no_global_rules_info": "Er zijn geen wereldwijde regels, elk forum is volledig onafhankelijk en de eigenaar beslist hoe/wel of niet te modereren.", "boards": "forums", "popular_threads": "Populaire threads", @@ -77,12 +77,12 @@ "embed": "insluiten", "remove": "verwijderen", "download_latest_desktop": "Download de nieuwste desktopversie hier: {{link}}", - "new_stable_version": "Nieuwe stabiele versie beschikbaar, plebchan v{{newVersion}}. Je gebruikt plebchan v{{oldVersion}}.", + "new_stable_version": "Nieuwe stabiele versie beschikbaar, 5chan v{{newVersion}}. Je gebruikt 5chan v{{oldVersion}}.", "refresh_to_update": "Vernieuw de pagina om bij te werken", "new_development_version": "Nieuwe ontwikkelingsversie beschikbaar, commit {{newCommit}}. Je gebruikt commit {{oldCommit}}.", "check_for_updates": "<1>Controleer op updates", "latest_development_version": "Je gebruikt de nieuwste ontwikkelingsversie, commit {{commit}}. Ga naar {{link}} om de stabiele versie te gebruiken.", - "latest_stable_version": "Je gebruikt de nieuwste stabiele versie, plebchan v{{version}}.", + "latest_stable_version": "Je gebruikt de nieuwste stabiele versie, 5chan v{{version}}.", "check": "controleren", "update": "Bijwerken", "style": "Stijl", @@ -231,7 +231,7 @@ "order": "Volgorde", "text": "Tekst", "filtered_threads": "Gefilterde threads", - "missing_link_confirm": "Je bericht mist een link met een afbeelding, deze zal standaard op Plebchan worden gefilterd. Je kunt deze filter in de instellingen uitschakelen of je bericht bekijken op een andere Plebbit-client, zoals Seedit. Toch posten?", + "missing_link_confirm": "Je bericht mist een link met een afbeelding, deze zal standaard op 5chan worden gefilterd. Je kunt deze filter in de instellingen uitschakelen of je bericht bekijken op een andere Plebbit-client, zoals Seedit. Toch posten?", "no_board_selected_warning": "Selecteer een bord voordat je plaatst.", "invalid_url_alert": "De opgegeven link is geen geldige URL.", "empty_comment_alert": "Kan geen lege opmerking plaatsen.", diff --git a/public/translations/no/default.json b/public/translations/no/default.json index 2fbc0794..6c1e0b31 100644 --- a/public/translations/no/default.json +++ b/public/translations/no/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "Hva er plebchan?", + "what_is_5chan": "Hva er 5chan?", "go": "gå", "or": "eller", - "plebchan_description": "Plebchan er et serverløst, adminløst, desentralisert alternativ til 4chan der hvilken som helst pleb kan opprette og eie ubegrensede fora. Alle data kommer fra protokollen <1>plebbit, det er all tekst inkludert lenker fra hvilke medier er innebygd, delt peer-to-peer. Brukere trenger ikke å registrere en konto før de deltar i fellesskapet. Ikke nøl med å klikke på et forum nedenfor som interesserer deg og bli med en gang!", + "5chan_description": "5chan er et serverløst, adminløst, desentralisert alternativ til 4chan der hvilken som helst pleb kan opprette og eie ubegrensede fora. Alle data kommer fra protokollen <1>plebbit, det er all tekst inkludert lenker fra hvilke medier er innebygd, delt peer-to-peer. Brukere trenger ikke å registrere en konto før de deltar i fellesskapet. Ikke nøl med å klikke på et forum nedenfor som interesserer deg og bli med en gang!", "no_global_rules_info": "Det er ingen globale regler, hvert forum er helt uavhengig, og eieren bestemmer hvordan/om å moderere det.", "boards": "fora", "popular_threads": "Populære tråder", @@ -77,12 +77,12 @@ "embed": "bygg inn", "remove": "fjern", "download_latest_desktop": "Last ned den nyeste skrivebordsversjonen her: {{link}}", - "new_stable_version": "Ny stabil versjon tilgjengelig, plebchan v{{newVersion}}. Du bruker plebchan v{{oldVersion}}.", + "new_stable_version": "Ny stabil versjon tilgjengelig, 5chan v{{newVersion}}. Du bruker 5chan v{{oldVersion}}.", "refresh_to_update": "Oppdater siden for å oppdatere", "new_development_version": "Ny utviklingsversjon tilgjengelig, commit {{newCommit}}. Du bruker commit {{oldCommit}}.", "check_for_updates": "<1>Sjekk for oppdateringer", "latest_development_version": "Du bruker den nyeste utviklingsversjonen, commit {{commit}}. For å bruke den stabile versjonen, gå til {{link}}.", - "latest_stable_version": "Du bruker den nyeste stabile versjonen, plebchan v{{version}}.", + "latest_stable_version": "Du bruker den nyeste stabile versjonen, 5chan v{{version}}.", "check": "sjekk", "update": "Oppdater", "style": "Stil", @@ -231,7 +231,7 @@ "order": "Rekkefølge", "text": "Tekst", "filtered_threads": "Filtrerte tråder", - "missing_link_confirm": "Innlegget ditt mangler en lenke med et bilde, og vil bli filtrert som standard på Plebchan. Du kan deaktivere dette filteret i innstillingene, eller se innlegget ditt på en annen Plebbit-klient, som Seedit. Vil du legge ut uansett?", + "missing_link_confirm": "Innlegget ditt mangler en lenke med et bilde, og vil bli filtrert som standard på 5chan. Du kan deaktivere dette filteret i innstillingene, eller se innlegget ditt på en annen Plebbit-klient, som Seedit. Vil du legge ut uansett?", "no_board_selected_warning": "Vennligst velg et brett før du poster.", "invalid_url_alert": "Den angitte lenken er ikke en gyldig URL.", "empty_comment_alert": "Kan ikke poste tom kommentar.", diff --git a/public/translations/pl/default.json b/public/translations/pl/default.json index ec963255..c2237058 100644 --- a/public/translations/pl/default.json +++ b/public/translations/pl/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "Co to jest plebchan?", + "what_is_5chan": "Co to jest 5chan?", "go": "iść", "or": "lub", - "plebchan_description": "Plebchan to serwer, admin, zdecentralizowana alternatywa dla 4chan, gdzie każdy pleb może tworzyć i posiadać nieograniczone fora. Wszystkie dane pochodzą z protokołu <1>plebbit, są to same teksty, w tym linki, z których osadzone są media, udostępniane w trybie peer-to-peer. Użytkownicy nie muszą rejestrować konta przed uczestnictwem w społeczności. Śmiało kliknij na forum poniżej, które Cię interesuje, i dołącz!", + "5chan_description": "5chan to serwer, admin, zdecentralizowana alternatywa dla 4chan, gdzie każdy pleb może tworzyć i posiadać nieograniczone fora. Wszystkie dane pochodzą z protokołu <1>plebbit, są to same teksty, w tym linki, z których osadzone są media, udostępniane w trybie peer-to-peer. Użytkownicy nie muszą rejestrować konta przed uczestnictwem w społeczności. Śmiało kliknij na forum poniżej, które Cię interesuje, i dołącz!", "no_global_rules_info": "Nie ma globalnych zasad, każda tablica jest całkowicie niezależna, a jej właściciel decyduje, w jaki sposób/czy ją moderować.", "boards": "fora", "popular_threads": "Popularne wątki", @@ -77,12 +77,12 @@ "embed": "osadź", "remove": "usuń", "download_latest_desktop": "Pobierz najnowszą wersję na pulpit tutaj: {{link}}", - "new_stable_version": "Nowa stabilna wersja dostępna, plebchan v{{newVersion}}. Używasz plebchan v{{oldVersion}}.", + "new_stable_version": "Nowa stabilna wersja dostępna, 5chan v{{newVersion}}. Używasz 5chan v{{oldVersion}}.", "refresh_to_update": "Odśwież stronę, aby zaktualizować", "new_development_version": "Nowa wersja rozwojowa dostępna, commit {{newCommit}}. Używasz commit {{oldCommit}}.", "check_for_updates": "<1>Sprawdź aktualizacje", "latest_development_version": "Korzystasz z najnowszej wersji rozwojowej, commit {{commit}}. Aby użyć wersji stabilnej, przejdź pod {{link}}.", - "latest_stable_version": "Korzystasz z najnowszej wersji stabilnej, plebchan v{{version}}.", + "latest_stable_version": "Korzystasz z najnowszej wersji stabilnej, 5chan v{{version}}.", "check": "sprawdź", "update": "Aktualizuj", "style": "Styl", @@ -231,7 +231,7 @@ "order": "Kolejność", "text": "Tekst", "filtered_threads": "Filtrowane wątki", - "missing_link_confirm": "Twój post nie zawiera linku z obrazem, domyślnie zostanie przefiltrowany na Plebchan. Możesz wyłączyć ten filtr w ustawieniach lub zobaczyć swój post w innym kliencie Plebbit, takim jak Seedit. Chcesz opublikować mimo to?", + "missing_link_confirm": "Twój post nie zawiera linku z obrazem, domyślnie zostanie przefiltrowany na 5chan. Możesz wyłączyć ten filtr w ustawieniach lub zobaczyć swój post w innym kliencie Plebbit, takim jak Seedit. Chcesz opublikować mimo to?", "no_board_selected_warning": "Proszę wybrać tablicę przed opublikowaniem.", "invalid_url_alert": "Podany link nie jest poprawnym adresem URL.", "empty_comment_alert": "Nie można opublikować pustego komentarza.", diff --git a/public/translations/pt/default.json b/public/translations/pt/default.json index 230583d8..6f91b3f1 100644 --- a/public/translations/pt/default.json +++ b/public/translations/pt/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "O que é Plebchan?", + "what_is_5chan": "O que é 5chan?", "go": "vai", "or": "ou", - "plebchan_description": "Plebchan é uma alternativa descentralizada, sem servidor, sem administradores ao 4chan onde qualquer plebeu pode criar e possuir fóruns ilimitados. Todos os dados vêm do protocolo <1>plebbit, são todos textos incluindo links dos quais a mídia é incorporada, compartilhada peer-to-peer. Os usuários não precisam se registrar antes de participar da comunidade. Sinta-se à vontade para clicar em um fórum abaixo que lhe interesse e participar imediatamente!", + "5chan_description": "5chan é uma alternativa descentralizada, sem servidor, sem administradores ao 4chan onde qualquer plebeu pode criar e possuir fóruns ilimitados. Todos os dados vêm do protocolo <1>plebbit, são todos textos incluindo links dos quais a mídia é incorporada, compartilhada peer-to-peer. Os usuários não precisam se registrar antes de participar da comunidade. Sinta-se à vontade para clicar em um fórum abaixo que lhe interesse e participar imediatamente!", "no_global_rules_info": "Não existem regras globais, cada fórum é completamente independente e o seu proprietário decide como/se o moderar.", "boards": "fóruns", "popular_threads": "Tópicos populares", @@ -77,12 +77,12 @@ "embed": "embutir", "remove": "remover", "download_latest_desktop": "Baixe a versão mais recente para desktop aqui: {{link}}", - "new_stable_version": "Nova versão estável disponível, plebchan v{{newVersion}}. Você está usando plebchan v{{oldVersion}}.", + "new_stable_version": "Nova versão estável disponível, 5chan v{{newVersion}}. Você está usando 5chan v{{oldVersion}}.", "refresh_to_update": "Atualize a página para atualizar", "new_development_version": "Nova versão de desenvolvimento disponível, commit {{newCommit}}. Você está usando o commit {{oldCommit}}.", "check_for_updates": "<1>Verifique as atualizações", "latest_development_version": "Você está na última versão de desenvolvimento, commit {{commit}}. Para usar a versão estável, vá para {{link}}.", - "latest_stable_version": "Você está na versão estável mais recente, plebchan v{{version}}.", + "latest_stable_version": "Você está na versão estável mais recente, 5chan v{{version}}.", "check": "verificar", "update": "Atualizar", "style": "Estilo", @@ -231,7 +231,7 @@ "order": "Ordem", "text": "Texto", "filtered_threads": "Threads filtrados", - "missing_link_confirm": "Sua postagem está faltando um link com uma imagem, ela será filtrada por padrão no Plebchan. Você pode desativar esse filtro nas configurações ou visualizar sua postagem em outro cliente Plebbit, como o Seedit. Postar mesmo assim?", + "missing_link_confirm": "Sua postagem está faltando um link com uma imagem, ela será filtrada por padrão no 5chan. Você pode desativar esse filtro nas configurações ou visualizar sua postagem em outro cliente Plebbit, como o Seedit. Postar mesmo assim?", "no_board_selected_warning": "Por favor, selecione um quadro antes de postar.", "invalid_url_alert": "O link fornecido não é uma URL válida.", "empty_comment_alert": "Não é possível postar um comentário vazio.", diff --git a/public/translations/ro/default.json b/public/translations/ro/default.json index d4add305..457b9d64 100644 --- a/public/translations/ro/default.json +++ b/public/translations/ro/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "Ce este Plebchan?", + "what_is_5chan": "Ce este 5chan?", "go": "du-te", "or": "sau", - "plebchan_description": "Plebchan este o alternativă descentralizată, fără server, fără administratori la 4chan, unde orice pleb poate crea și deține forumuri nelimitate. Toate datele vin de la protocolul <1>plebbit, sunt toate text inclusiv linkuri din care sunt încorporate media, distribuite peer-to-peer. Utilizatorii nu trebuie să-și înregistreze un cont înainte de a participa la comunitate. Nu ezitați să faceți clic pe un forum de mai jos care vă interesează și să vă alăturați imediat!", + "5chan_description": "5chan este o alternativă descentralizată, fără server, fără administratori la 4chan, unde orice pleb poate crea și deține forumuri nelimitate. Toate datele vin de la protocolul <1>plebbit, sunt toate text inclusiv linkuri din care sunt încorporate media, distribuite peer-to-peer. Utilizatorii nu trebuie să-și înregistreze un cont înainte de a participa la comunitate. Nu ezitați să faceți clic pe un forum de mai jos care vă interesează și să vă alăturați imediat!", "no_global_rules_info": "Nu există reguli globale, fiecare forum este complet independent și proprietarul său decide cum/sau dacă să îl modereze.", "boards": "forumuri", "popular_threads": "Threaduri populare", @@ -77,12 +77,12 @@ "embed": "încorpora", "remove": "elimina", "download_latest_desktop": "Descărcați cea mai recentă versiune de desktop aici: {{link}}", - "new_stable_version": "Noua versiune stabilă disponibilă, plebchan v{{newVersion}}. Folosiți plebchan v{{oldVersion}}.", + "new_stable_version": "Noua versiune stabilă disponibilă, 5chan v{{newVersion}}. Folosiți 5chan v{{oldVersion}}.", "refresh_to_update": "Actualizați pagina pentru a actualiza", "new_development_version": "Noua versiune de dezvoltare disponibilă, commit {{newCommit}}. Folosiți commit {{oldCommit}}.", "check_for_updates": "<1>Verifică pentru actualizări", "latest_development_version": "Ești pe cea mai recentă versiune de dezvoltare, commit {{commit}}. Pentru a folosi versiunea stabilă, mergi la {{link}}.", - "latest_stable_version": "Ești pe cea mai recentă versiune stabilă, plebchan v{{version}}.", + "latest_stable_version": "Ești pe cea mai recentă versiune stabilă, 5chan v{{version}}.", "check": "verificați", "update": "Actualizează", "style": "Stil", @@ -231,7 +231,7 @@ "order": "Ordine", "text": "Text", "filtered_threads": "Fire filtrate", - "missing_link_confirm": "Postarea ta nu are un link cu o imagine, va fi filtrată în mod implicit pe Plebchan. Poți dezactiva acest filtru în setări sau vizualiza postarea ta pe un alt client Plebbit, cum ar fi Seedit. Postează oricum?", + "missing_link_confirm": "Postarea ta nu are un link cu o imagine, va fi filtrată în mod implicit pe 5chan. Poți dezactiva acest filtru în setări sau vizualiza postarea ta pe un alt client Plebbit, cum ar fi Seedit. Postează oricum?", "no_board_selected_warning": "Vă rugăm să selectați un tablou înainte de a publica.", "invalid_url_alert": "Linkul furnizat nu este un URL valid.", "empty_comment_alert": "Nu se poate publica un comentariu gol.", diff --git a/public/translations/ru/default.json b/public/translations/ru/default.json index b70e9a17..7d3cd0fb 100644 --- a/public/translations/ru/default.json +++ b/public/translations/ru/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "Что такое плебчан?", + "what_is_5chan": "Что такое плебчан?", "go": "идти", "or": "или", - "plebchan_description": "Plebchan - это безсерверная, безадминистративная, децентрализованная альтернатива 4chan, где любой плеб может создавать и владеть неограниченным количеством форумов. Все данные поступают из протокола <1>plebbit, это весь текст, включая ссылки, из которых встроены медиа, и распространяются по сети peer-to-peer. Пользователи не должны регистрировать учетную запись перед участием в сообществе. Не стесняйтесь нажимать на форум ниже, который вас интересует, и присоединяйтесь немедленно!", + "5chan_description": "5chan - это безсерверная, безадминистративная, децентрализованная альтернатива 4chan, где любой плеб может создавать и владеть неограниченным количеством форумов. Все данные поступают из протокола <1>plebbit, это весь текст, включая ссылки, из которых встроены медиа, и распространяются по сети peer-to-peer. Пользователи не должны регистрировать учетную запись перед участием в сообществе. Не стесняйтесь нажимать на форум ниже, который вас интересует, и присоединяйтесь немедленно!", "no_global_rules_info": "Нет глобальных правил, каждая доска полностью независима, и ее владелец решает, как/если ее модерировать.", "boards": "форумы", "popular_threads": "Популярные темы", @@ -77,12 +77,12 @@ "embed": "встроить", "remove": "удалить", "download_latest_desktop": "Скачать последнюю версию для рабочего стола здесь: {{link}}", - "new_stable_version": "Доступна новая стабильная версия, plebchan v{{newVersion}}. Вы используете plebchan v{{oldVersion}}.", + "new_stable_version": "Доступна новая стабильная версия, 5chan v{{newVersion}}. Вы используете 5chan v{{oldVersion}}.", "refresh_to_update": "Обновите страницу, чтобы обновить", "new_development_version": "Доступна новая версия разработки, коммит {{newCommit}}. Вы используете коммит {{oldCommit}}.", "check_for_updates": "<1>Проверить наличие обновлений", "latest_development_version": "Вы используете последнюю версию разработки, коммит {{commit}}. Чтобы использовать стабильную версию, перейдите по ссылке {{link}}.", - "latest_stable_version": "Вы используете последнюю стабильную версию, plebchan v{{version}}.", + "latest_stable_version": "Вы используете последнюю стабильную версию, 5chan v{{version}}.", "check": "проверьте", "update": "Обновить", "style": "Стиль", @@ -231,7 +231,7 @@ "order": "Порядок", "text": "Текст", "filtered_threads": "Отфильтрованные темы", - "missing_link_confirm": "Ваш пост не содержит ссылки с изображением, он будет отфильтрован по умолчанию на Plebchan. Вы можете отключить этот фильтр в настройках или просмотреть свой пост в другом клиенте Plebbit, таком как Seedit. Опубликовать все равно?", + "missing_link_confirm": "Ваш пост не содержит ссылки с изображением, он будет отфильтрован по умолчанию на 5chan. Вы можете отключить этот фильтр в настройках или просмотреть свой пост в другом клиенте Plebbit, таком как Seedit. Опубликовать все равно?", "no_board_selected_warning": "Пожалуйста, выберите доску перед публикацией.", "invalid_url_alert": "Предоставленная ссылка не является действительным URL.", "empty_comment_alert": "Невозможно опубликовать пустой комментарий.", diff --git a/public/translations/sq/default.json b/public/translations/sq/default.json index b33080ab..ff4e8ef8 100644 --- a/public/translations/sq/default.json +++ b/public/translations/sq/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "Çfarë është Plebchan?", + "what_is_5chan": "Çfarë është 5chan?", "go": "shko", "or": "ose", - "plebchan_description": "Plebchan është një alternativë e 4chan decentralizuar, pa server, pa administratorë, ku çdo pleb mund të krijojë dhe të posedojë forume të pakufizuara. Të gjitha të dhënat vijnë nga protokoli <1>plebbit, janë të gjitha tekste duke përfshirë lidhjet nga të cilat mediat janë të mbështjellë, ndarë peer-to-peer. Përdoruesit nuk duhet të regjistrojnë një llogari para se të marrin pjesë në komunitet. Mos ngurroni të klikoni në një forum më poshtë që ju intereson dhe të bashkoheni menjëherë!", + "5chan_description": "5chan është një alternativë e 4chan decentralizuar, pa server, pa administratorë, ku çdo pleb mund të krijojë dhe të posedojë forume të pakufizuara. Të gjitha të dhënat vijnë nga protokoli <1>plebbit, janë të gjitha tekste duke përfshirë lidhjet nga të cilat mediat janë të mbështjellë, ndarë peer-to-peer. Përdoruesit nuk duhet të regjistrojnë një llogari para se të marrin pjesë në komunitet. Mos ngurroni të klikoni në një forum më poshtë që ju intereson dhe të bashkoheni menjëherë!", "no_global_rules_info": "Nuk ka rregulla globale, çdo forum është plotësisht i pavarur dhe pronari i tij vendos se si/nëse ta moderohet.", "boards": "forume", "popular_threads": "Threadet e njohur", @@ -77,12 +77,12 @@ "embed": "integro", "remove": "hiq", "download_latest_desktop": "Shkarko versionin më të ri të desktopit këtu: {{link}}", - "new_stable_version": "Version i ri i qëndrueshëm është në dispozicion, plebchan v{{newVersion}}. Ju po përdorni plebchan v{{oldVersion}}.", + "new_stable_version": "Version i ri i qëndrueshëm është në dispozicion, 5chan v{{newVersion}}. Ju po përdorni 5chan v{{oldVersion}}.", "refresh_to_update": "Rifresko faqen për të rifreskuar", "new_development_version": "Versioni i ri i zhvillimit është në dispozicion, komiti {{newCommit}}. Ju po përdorni komitin {{oldCommit}}.", "check_for_updates": "<1>Kontrolloni për përditësime", "latest_development_version": "Jeni në versionin më të fundit të zhvillimit, komitimi {{commit}}. Për të përdorur versionin e qëndrueshëm, shkoni te {{link}}.", - "latest_stable_version": "Jeni në versionin më të fundit të qëndrueshëm, plebchan v{{version}}.", + "latest_stable_version": "Jeni në versionin më të fundit të qëndrueshëm, 5chan v{{version}}.", "check": "kontrollo", "update": "Përditëso", "style": "Stil", @@ -231,7 +231,7 @@ "order": "Rendit", "text": "Tekst", "filtered_threads": "Tema të filtruar", - "missing_link_confirm": "Postimi juaj i mungon një lidhje me një imazh, ai do të filtrohet automatikisht në Plebchan. Mund ta çaktivizoni këtë filtër në cilësimet, ose të shihni postimin tuaj në një klient tjetër Plebbit, si Seedit. A dëshironi të postoni gjithsesi?", + "missing_link_confirm": "Postimi juaj i mungon një lidhje me një imazh, ai do të filtrohet automatikisht në 5chan. Mund ta çaktivizoni këtë filtër në cilësimet, ose të shihni postimin tuaj në një klient tjetër Plebbit, si Seedit. A dëshironi të postoni gjithsesi?", "no_board_selected_warning": "Ju lutemi zgjidhni një bord para se të postoni.", "invalid_url_alert": "Lidhja e ofruar nuk është një URL e vlefshme.", "empty_comment_alert": "Nuk mund të postoni një koment bosh.", diff --git a/public/translations/sv/default.json b/public/translations/sv/default.json index 5a69c3d3..bad70940 100644 --- a/public/translations/sv/default.json +++ b/public/translations/sv/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "Vad är Plebchan?", + "what_is_5chan": "Vad är 5chan?", "go": "gå", "or": "eller", - "plebchan_description": "Plebchan är ett serverlöst, adminlöst, decentraliserat alternativ till 4chan där vilken pleb som helst kan skapa och äga obegränsade forum. Alla data kommer från protokollet <1>plebbit, det är all text inklusive länkar från vilka media bäddas in, delat peer-to-peer. Användare behöver inte registrera ett konto innan de deltar i gemenskapen. Tveka inte att klicka på ett forum nedan som intresserar dig och gå med direkt!", + "5chan_description": "5chan är ett serverlöst, adminlöst, decentraliserat alternativ till 4chan där vilken pleb som helst kan skapa och äga obegränsade forum. Alla data kommer från protokollet <1>plebbit, det är all text inklusive länkar från vilka media bäddas in, delat peer-to-peer. Användare behöver inte registrera ett konto innan de deltar i gemenskapen. Tveka inte att klicka på ett forum nedan som intresserar dig och gå med direkt!", "no_global_rules_info": "Det finns inga globala regler, varje forum är helt oberoende och dess ägare bestämmer hur/om att moderera den.", "boards": "forum", "popular_threads": "Populära trådar", @@ -77,12 +77,12 @@ "embed": "bädda in", "remove": "ta bort", "download_latest_desktop": "Ladda ner den senaste skrivbordsversionen här: {{link}}", - "new_stable_version": "Ny stabil version tillgänglig, plebchan v{{newVersion}}. Du använder plebchan v{{oldVersion}}.", + "new_stable_version": "Ny stabil version tillgänglig, 5chan v{{newVersion}}. Du använder 5chan v{{oldVersion}}.", "refresh_to_update": "Uppdatera sidan för att uppdatera", "new_development_version": "Ny utvecklingsversion tillgänglig, commit {{newCommit}}. Du använder commit {{oldCommit}}.", "check_for_updates": "<1>Kontrollera uppdateringar", "latest_development_version": "Du är på den senaste utvecklingsversionen, commit {{commit}}. För att använda den stabila versionen, gå till {{link}}.", - "latest_stable_version": "Du är på den senaste stabila versionen, plebchan v{{version}}.", + "latest_stable_version": "Du är på den senaste stabila versionen, 5chan v{{version}}.", "check": "kontrollera", "update": "Uppdatera", "style": "Stil", @@ -231,7 +231,7 @@ "order": "Ordning", "text": "Text", "filtered_threads": "Filtrerade trådar", - "missing_link_confirm": "Ditt inlägg saknar en länk med en bild, det kommer att filtreras som standard på Plebchan. Du kan inaktivera detta filter i inställningarna, eller visa ditt inlägg på en annan Plebbit-klient, som Seedit. Vill du ändå posta?", + "missing_link_confirm": "Ditt inlägg saknar en länk med en bild, det kommer att filtreras som standard på 5chan. Du kan inaktivera detta filter i inställningarna, eller visa ditt inlägg på en annan Plebbit-klient, som Seedit. Vill du ändå posta?", "no_board_selected_warning": "Vänligen välj en tavla innan du postar.", "invalid_url_alert": "Den angivna länken är inte en giltig URL.", "empty_comment_alert": "Kan inte posta tom kommentar.", diff --git a/public/translations/te/default.json b/public/translations/te/default.json index 11f9e583..33d09c47 100644 --- a/public/translations/te/default.json +++ b/public/translations/te/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "ప్లెబ్‌చాన్ ఏమిటి?", + "what_is_5chan": "ప్లెబ్‌చాన్ ఏమిటి?", "go": "వెళ్లు", "or": "లేదా", - "plebchan_description": "ప్లెబ్చాన్ ఒక సర్వర్ లేని, అడ్మిన్ లేని, డిసెంట్రలైజ్‌డ్ 4చాన్ వైకల్పికం దీనిలో ఏ ప్లెబ్ యొక్క సర్వర్లేస్, అడ్మిన్‌లేస్, అసంబద్ధ బోర్డులు సృష్టించవచ్చు. అన్ని డేటా <1>ప్లెబిట్ ప్రోటోకాల్‌నుండి వస్తాయి, అది అన్ని లింక్‌లు జాబితానుండి మీడియా ఎంబెడ్ చేయబడినపుడు ఉంటుంది, అది పీయర్‌టు‌పీయర్ గా పంపబడుతుంది. వాడుకరు కమ్యూనిటీలో పాల్గొనుటకు ముందు ఎకౌంటు నమోదు చేయాల్సిన అవసరం లేదు. మీకు ఆసక్తి కలిగించే బోర్డుకు క్లిక్ చేసి ప్రత్యక్షంగా చేరవచ్చు!", + "5chan_description": "ప్లెబ్చాన్ ఒక సర్వర్ లేని, అడ్మిన్ లేని, డిసెంట్రలైజ్‌డ్ 4చాన్ వైకల్పికం దీనిలో ఏ ప్లెబ్ యొక్క సర్వర్లేస్, అడ్మిన్‌లేస్, అసంబద్ధ బోర్డులు సృష్టించవచ్చు. అన్ని డేటా <1>ప్లెబిట్ ప్రోటోకాల్‌నుండి వస్తాయి, అది అన్ని లింక్‌లు జాబితానుండి మీడియా ఎంబెడ్ చేయబడినపుడు ఉంటుంది, అది పీయర్‌టు‌పీయర్ గా పంపబడుతుంది. వాడుకరు కమ్యూనిటీలో పాల్గొనుటకు ముందు ఎకౌంటు నమోదు చేయాల్సిన అవసరం లేదు. మీకు ఆసక్తి కలిగించే బోర్డుకు క్లిక్ చేసి ప్రత్యక్షంగా చేరవచ్చు!", "no_global_rules_info": "గ్లోబల్ నియమాలు లేవు, ప్రతి బోర్డు పూర్తిగా స్వతంత్రంగా ఉంటుంది మరియు అది మాలిక ఏమి/అయితే అని నిర్వచించండి.", "boards": "సందేశ బోర్డులు", "popular_threads": "జనప్రియమైన థ్రెడ్‌లు", @@ -77,12 +77,12 @@ "embed": "ఎంబెడ్", "remove": "తొలగించు", "download_latest_desktop": "ఇక్కడ తాజా డెస్క్టాప్ వెర్షన్‌ను డౌన్‌లోడ్ చేయండి: {{link}}", - "new_stable_version": "కొత్త స్థిర వెర్షన్ అందుబాటులో ఉంది, plebchan v{{newVersion}}. మీరు plebchan v{{oldVersion}} ను ఉపయోగిస్తున్నారు.", + "new_stable_version": "కొత్త స్థిర వెర్షన్ అందుబాటులో ఉంది, 5chan v{{newVersion}}. మీరు 5chan v{{oldVersion}} ను ఉపయోగిస్తున్నారు.", "refresh_to_update": "అప్డేట్ చేయడానికి పేజీను రిఫ్రెష్ చేయండి", "new_development_version": "కొత్త డెవలప్మెంట్ వెర్షన్ అందుబాటులో ఉంది, కమిట్ {{newCommit}}. మీరు కమిట్ {{oldCommit}} ను ఉపయోగిస్తున్నారు.", "check_for_updates": "<1>తనిఖీ అప్డేట్లను", "latest_development_version": "మీరు తొలగించే త్వరిత అప్డేటు, కమిట్ {{commit}} పరిపాలన ముగింది స్థిర అప్డేటు కోసం {{link}}.", - "latest_stable_version": "మీరు తొలగించిన తొలగిన సంస్కరణం, plebchan v{{version}} నందు.", + "latest_stable_version": "మీరు తొలగించిన తొలగిన సంస్కరణం, 5chan v{{version}} నందు.", "check": "తనిఖీ", "update": "నవీకరణ", "style": "శైలి", @@ -231,7 +231,7 @@ "order": "ఆర్డర్", "text": "పాఠం", "filtered_threads": "ఫిల్టర్ చేయబడిన థ్రెడ్లు", - "missing_link_confirm": "మీ పోస్టు చిత్రంతో లింక్ మిస్సింగ్ ఉంది, ఇది Plebchan లో డిఫాల్ట్‌గా ఫిల్టర్ అవుతుంది. మీరు ఈ ఫిల్టర్‌ను సెటింగ్స్ లో డిసేబుల్ చేయవచ్చు, లేదా Seedit వంటి మరో Plebbit క్లయింట్ లో మీ పోస్టును చూడవచ్చు. అయినప్పటికీ పోస్టు చేయాలా?", + "missing_link_confirm": "మీ పోస్టు చిత్రంతో లింక్ మిస్సింగ్ ఉంది, ఇది 5chan లో డిఫాల్ట్‌గా ఫిల్టర్ అవుతుంది. మీరు ఈ ఫిల్టర్‌ను సెటింగ్స్ లో డిసేబుల్ చేయవచ్చు, లేదా Seedit వంటి మరో Plebbit క్లయింట్ లో మీ పోస్టును చూడవచ్చు. అయినప్పటికీ పోస్టు చేయాలా?", "no_board_selected_warning": "పోస్ట్ చేయడానికి ముందు దయచేసి ఒక బోర్డు ఎంచుకోండి.", "invalid_url_alert": "నివేదిక ఇవ్వబడిన లింక్ చెల్లుబాటులో లేని URL.", "empty_comment_alert": "ఖాళీ వ్యాఖ్యను పోస్ట్ చేయలేరు.", diff --git a/public/translations/th/default.json b/public/translations/th/default.json index 803be4e7..a78fa7d9 100644 --- a/public/translations/th/default.json +++ b/public/translations/th/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "พล็อกไซต์คืออะไร?", + "what_is_5chan": "พล็อกไซต์คืออะไร?", "go": "ไป", "or": "หรือ", - "plebchan_description": "Plebchan เป็นทางเลือกที่ไม่มีเซิร์ฟเวอร์ แอดมินไม่มี แบบกระจายสำหรับ 4chan ที่ใครก็สามารถสร้างและเป็นเจ้าของบอร์ดได้ไม่จำกัด ข้อมูลทั้งหมดมาจากโปรโตคอล <1>plebbit มันเป็นข้อความทั้งหมดที่รวมถึงลิงก์จากซึ่งมีสื่อที่ฝังอยู่ และแบ่งปันแบบ peer-to-peer ผู้ใช้ไม่จำเป็นต้องลงทะเบียนบัญชีก่อนที่จะเข้าร่วมชุมชน อย่าลังเลที่จะคลิกบอร์ดด้านล่างที่คุณสนใจและเข้าร่วมทันที!", + "5chan_description": "5chan เป็นทางเลือกที่ไม่มีเซิร์ฟเวอร์ แอดมินไม่มี แบบกระจายสำหรับ 4chan ที่ใครก็สามารถสร้างและเป็นเจ้าของบอร์ดได้ไม่จำกัด ข้อมูลทั้งหมดมาจากโปรโตคอล <1>plebbit มันเป็นข้อความทั้งหมดที่รวมถึงลิงก์จากซึ่งมีสื่อที่ฝังอยู่ และแบ่งปันแบบ peer-to-peer ผู้ใช้ไม่จำเป็นต้องลงทะเบียนบัญชีก่อนที่จะเข้าร่วมชุมชน อย่าลังเลที่จะคลิกบอร์ดด้านล่างที่คุณสนใจและเข้าร่วมทันที!", "no_global_rules_info": "ไม่มีกฎทั่วโลกที่มีอยู่, แต่ละกระดานเป็นอิสระและเจ้าของกำหนดว่าจะ/จะไม่ต้องควบคุมมันอย่างไร", "boards": "กระดานข่าว", "popular_threads": "กระทู้ยอดนิยม", @@ -77,12 +77,12 @@ "embed": "ฝัง", "remove": "ลบ", "download_latest_desktop": "ดาวน์โหลดเวอร์ชันเดสก์ท็อปล่าสุดที่นี่: {{link}}", - "new_stable_version": "มีเวอร์ชันที่มีความเสถียรใหม่ที่ใช้ได้, plebchan v{{newVersion}} คุณกำลังใช้ plebchan v{{oldVersion}}", + "new_stable_version": "มีเวอร์ชันที่มีความเสถียรใหม่ที่ใช้ได้, 5chan v{{newVersion}} คุณกำลังใช้ 5chan v{{oldVersion}}", "refresh_to_update": "รีเฟรชหน้าเพื่ออัปเดต", "new_development_version": "มีเวอร์ชันการพัฒนาใหม่ที่ใช้ได้, คอมมิต {{newCommit}} คุณกำลังใช้คอมมิต {{oldCommit}}", "check_for_updates": "<1>ตรวจสอบ อัปเดต", "latest_development_version": "คุณกำลังใช้รุ่นการพัฒนาล่าสุด, คอมมิต {{commit}} ในการใช้รุ่นเสถียร ไปที่ {{link}}.", - "latest_stable_version": "คุณกำลังใช้รุ่นเสถียรล่าสุด, plebchan v{{version}}.", + "latest_stable_version": "คุณกำลังใช้รุ่นเสถียรล่าสุด, 5chan v{{version}}.", "check": "ตรวจสอบ", "update": "อัปเดต", "style": "สไตล์", @@ -231,7 +231,7 @@ "order": "ลำดับ", "text": "ข้อความ", "filtered_threads": "กระทู้ที่กรองแล้ว", - "missing_link_confirm": "โพสต์ของคุณขาดลิงก์ที่มีรูปภาพจะถูกกรองตามค่าเริ่มต้นใน Plebchan คุณสามารถปิดการกรองนี้ในการตั้งค่าหรือดูโพสต์ของคุณในไคลเอนต์ Plebbit อื่น เช่น Seedit คุณจะโพสต์อยู่ดีไหม?", + "missing_link_confirm": "โพสต์ของคุณขาดลิงก์ที่มีรูปภาพจะถูกกรองตามค่าเริ่มต้นใน 5chan คุณสามารถปิดการกรองนี้ในการตั้งค่าหรือดูโพสต์ของคุณในไคลเอนต์ Plebbit อื่น เช่น Seedit คุณจะโพสต์อยู่ดีไหม?", "no_board_selected_warning": "กรุณาเลือกกระดานก่อนที่จะโพสต์.", "invalid_url_alert": "ลิงก์ที่ให้ไม่ใช่ URL ที่ถูกต้อง", "empty_comment_alert": "ไม่สามารถโพสต์ความคิดเห็นว่างเปล่าได้", diff --git a/public/translations/tr/default.json b/public/translations/tr/default.json index b197ac77..ae79fa17 100644 --- a/public/translations/tr/default.json +++ b/public/translations/tr/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "Plebchan nedir?", + "what_is_5chan": "5chan nedir?", "go": "git", "or": "veya", - "plebchan_description": "Plebchan, herhangi bir plebin sınırsız tahtalar oluşturabileceği ve sahip olabileceği sunucusuz, yöneticisiz, merkezi olmayan 4chan alternatifidir. Tüm veriler, tüm metinler ve yerleştirilen medyaların içinde bulunduğu bağlantılar da dahil olmak üzere <1>plebbit protokolünden gelir ve eşler arası olarak paylaşılır. Kullanıcıların topluluğa katılmadan önce bir hesap kaydetmelerine gerek yoktur. Sizi ilgilendiren aşağıdaki tahtaya tıklayın ve hemen katılın!", + "5chan_description": "5chan, herhangi bir plebin sınırsız tahtalar oluşturabileceği ve sahip olabileceği sunucusuz, yöneticisiz, merkezi olmayan 4chan alternatifidir. Tüm veriler, tüm metinler ve yerleştirilen medyaların içinde bulunduğu bağlantılar da dahil olmak üzere <1>plebbit protokolünden gelir ve eşler arası olarak paylaşılır. Kullanıcıların topluluğa katılmadan önce bir hesap kaydetmelerine gerek yoktur. Sizi ilgilendiren aşağıdaki tahtaya tıklayın ve hemen katılın!", "no_global_rules_info": "Küresel kurallar yoktur, her forum tamamen bağımsızdır ve sahibi nasıl/modere edileceğine karar verir.", "boards": "forumlar", "popular_threads": "Popüler konular", @@ -77,12 +77,12 @@ "embed": "göm", "remove": "kaldır", "download_latest_desktop": "Son masaüstü sürümünü buradan indirin: {{link}}", - "new_stable_version": "Yeni stabil sürüm kullanılabilir, plebchan v{{newVersion}}. plebchan v{{oldVersion}} kullanıyorsunuz.", + "new_stable_version": "Yeni stabil sürüm kullanılabilir, 5chan v{{newVersion}}. 5chan v{{oldVersion}} kullanıyorsunuz.", "refresh_to_update": "Güncellemek için sayfayı yenileyin", "new_development_version": "Yeni geliştirme sürümü kullanılabilir, commit {{newCommit}}. Commit {{oldCommit}} kullanıyorsunuz.", "check_for_updates": "<1>Güncellemeleri kontrol et", "latest_development_version": "En son geliştirme sürümündesiniz, commit {{commit}}. Kararlı sürümü kullanmak için {{link}} gidin.", - "latest_stable_version": "En son kararlı sürümünde, plebchan v{{version}}s.", + "latest_stable_version": "En son kararlı sürümünde, 5chan v{{version}}s.", "check": "kontrol etmek", "update": "Güncelle", "style": "Stil", @@ -231,7 +231,7 @@ "order": "Sıra", "text": "Metin", "filtered_threads": "Filtrelenmiş başlıklar", - "missing_link_confirm": "Gönderinizin bir resmi içeren bağlantısı yok, varsayılan olarak Plebchan'da filtrelenecek. Bu filtreyi ayarlardan devre dışı bırakabilir veya gönderinizi Seedit gibi başka bir Plebbit istemcisinde görüntüleyebilirsiniz. Yine de gönderi paylaşmak ister misiniz?", + "missing_link_confirm": "Gönderinizin bir resmi içeren bağlantısı yok, varsayılan olarak 5chan'da filtrelenecek. Bu filtreyi ayarlardan devre dışı bırakabilir veya gönderinizi Seedit gibi başka bir Plebbit istemcisinde görüntüleyebilirsiniz. Yine de gönderi paylaşmak ister misiniz?", "no_board_selected_warning": "Lütfen gönderimden önce bir pano seçin.", "invalid_url_alert": "Verilen bağlantı geçerli bir URL değildir.", "empty_comment_alert": "Boş yorum gönderilemez.", diff --git a/public/translations/uk/default.json b/public/translations/uk/default.json index 7da2f5c7..3a153ee1 100644 --- a/public/translations/uk/default.json +++ b/public/translations/uk/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "Що таке Плебчан?", + "what_is_5chan": "Що таке Плебчан?", "go": "йди", "or": "або", - "plebchan_description": "Plebchan - це безсерверний, безадміністративний, децентралізований альтернативний 4chan, де будь-який плеб може створити та володіти необмеженою кількістю форумів. Усі дані надходять з протоколу <1>plebbit, це весь текст, включаючи посилання, з яких вбудовані медіа, та розповсюджуються у режимі peer-to-peer. Користувачам не потрібно реєструвати обліковий запис перед участю в спільноті. Не соромтеся натискати на дошку нижче, яка цікавить вас, і приєднуйтеся одразу!", + "5chan_description": "5chan - це безсерверний, безадміністративний, децентралізований альтернативний 4chan, де будь-який плеб може створити та володіти необмеженою кількістю форумів. Усі дані надходять з протоколу <1>plebbit, це весь текст, включаючи посилання, з яких вбудовані медіа, та розповсюджуються у режимі peer-to-peer. Користувачам не потрібно реєструвати обліковий запис перед участю в спільноті. Не соромтеся натискати на дошку нижче, яка цікавить вас, і приєднуйтеся одразу!", "no_global_rules_info": "Немає глобальних правил, кожна дошка цілком незалежна, і її власник вирішує, як/чи модерувати її.", "boards": "форуми", "popular_threads": "Популярні теми", @@ -77,12 +77,12 @@ "embed": "вбудувати", "remove": "видалити", "download_latest_desktop": "Завантажте останню версію для робочого столу тут: {{link}}", - "new_stable_version": "Нова стабільна версія доступна, plebchan v{{newVersion}}. Ви використовуєте plebchan v{{oldVersion}}.", + "new_stable_version": "Нова стабільна версія доступна, 5chan v{{newVersion}}. Ви використовуєте 5chan v{{oldVersion}}.", "refresh_to_update": "Оновіть сторінку, щоб оновити", "new_development_version": "Нова версія розробки доступна, коміт {{newCommit}}. Ви використовуєте коміт {{oldCommit}}.", "check_for_updates": "<1>Перевірити оновлення", "latest_development_version": "Ви використовуєте останню версію розробки, коміт {{commit}}. Щоб використовувати стабільну версію, перейдіть за посиланням {{link}}.", - "latest_stable_version": "Ви використовуєте останню стабільну версію, plebchan v{{version}}.", + "latest_stable_version": "Ви використовуєте останню стабільну версію, 5chan v{{version}}.", "check": "перевірити", "update": "Оновити", "style": "Стиль", @@ -231,7 +231,7 @@ "order": "Порядок", "text": "Текст", "filtered_threads": "Відфільтровані треди", - "missing_link_confirm": "Ваш пост не має посилання з зображенням, за замовчуванням він буде відфільтровано на Plebchan. Ви можете вимкнути цей фільтр у налаштуваннях або переглянути свій пост в іншому клієнті Plebbit, такому як Seedit. Все ж таки опублікувати?", + "missing_link_confirm": "Ваш пост не має посилання з зображенням, за замовчуванням він буде відфільтровано на 5chan. Ви можете вимкнути цей фільтр у налаштуваннях або переглянути свій пост в іншому клієнті Plebbit, такому як Seedit. Все ж таки опублікувати?", "no_board_selected_warning": "Будь ласка, виберіть дошку перед публікацією.", "invalid_url_alert": "Надане посилання не є дійсною URL-адресою.", "empty_comment_alert": "Не можна опублікувати порожній коментар.", diff --git a/public/translations/ur/default.json b/public/translations/ur/default.json index 54f20b41..94a9c667 100644 --- a/public/translations/ur/default.json +++ b/public/translations/ur/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "پلیبچان کیا ہے؟", + "what_is_5chan": "پلیبچان کیا ہے؟", "go": "جا", "or": "یا", - "plebchan_description": "پلیبچان ایک سرور کم، ایڈمن کم، غیر مرکزی 4chan کی بدلتا ہے جہاں ہر کوئی پلیب بے حد بورڈ بنا سکتا ہے اور مالک ہو سکتا ہے۔ تمام ڈیٹا پروٹوکول <1>پلیبٹ سے آتا ہے، یہ سب ٹیکسٹ ہے جس میں میڈیا شامل ہے، پیر-سے-پیر اشتراک کیا گیا ہے۔ صارفین کو بہمت شامل ہونے سے پہلے اکاؤنٹ رجسٹر کرانے کی ضرورت نہیں ہے۔ نیچے کسی بھی بورڈ پر کلک کریں جو آپ کو دلچسپ لگتا ہے اور فوراً شامل ہوں!", + "5chan_description": "پلیبچان ایک سرور کم، ایڈمن کم، غیر مرکزی 4chan کی بدلتا ہے جہاں ہر کوئی پلیب بے حد بورڈ بنا سکتا ہے اور مالک ہو سکتا ہے۔ تمام ڈیٹا پروٹوکول <1>پلیبٹ سے آتا ہے، یہ سب ٹیکسٹ ہے جس میں میڈیا شامل ہے، پیر-سے-پیر اشتراک کیا گیا ہے۔ صارفین کو بہمت شامل ہونے سے پہلے اکاؤنٹ رجسٹر کرانے کی ضرورت نہیں ہے۔ نیچے کسی بھی بورڈ پر کلک کریں جو آپ کو دلچسپ لگتا ہے اور فوراً شامل ہوں!", "no_global_rules_info": "کوئی عالمی اصول نہیں ہیں، ہر بورڈ مکمل طور پر آزاد ہے اور اس کا مالک یہ فیصلہ کرتا ہے کہ وہ کیسے/کیا اسے موڈریٹ کرے گا۔", "boards": "پیغام بورڈز", "popular_threads": "مقبول تھریڈز", @@ -77,12 +77,12 @@ "embed": "ایمبیڈ", "remove": "ہٹائیں", "download_latest_desktop": "یہاں سب سے تازہ ڈیسک ٹاپ ورژن ڈاؤن لوڈ کریں: {{link}}", - "new_stable_version": "نیو مستقر ورژن دستیاب ہے, plebchan v{{newVersion}}۔ آپ plebchan v{{oldVersion}} استعمال کر رہے ہیں۔", + "new_stable_version": "نیو مستقر ورژن دستیاب ہے, 5chan v{{newVersion}}۔ آپ 5chan v{{oldVersion}} استعمال کر رہے ہیں۔", "refresh_to_update": "اپ ڈیٹ کرنے کے لئے صفحہ تازہ کریں", "new_development_version": "نیو ڈویلپمنٹ ورژن دستیاب ہے, کمیٹ {{newCommit}}۔ آپ کمیٹ {{oldCommit}} استعمال کر رہے ہیں۔", "check_for_updates": "<1>چیک کریں اپ ڈیٹس کے لئے", "latest_development_version": "آپ تازہ ترین ڈویلپمنٹ ورژن پر ہیں, کمیٹ {{commit}}۔ مستحکم ورژن استعمال کرنے کے لئے, {{link}} پر جائیں۔", - "latest_stable_version": "آپ تازہ ترین مستحکم ورژن پر ہیں, plebchan v{{version}}۔", + "latest_stable_version": "آپ تازہ ترین مستحکم ورژن پر ہیں, 5chan v{{version}}۔", "check": "چیک کریں", "update": "اپ ڈیٹ", "style": "اسٹائل", @@ -231,7 +231,7 @@ "order": "ترتیب", "text": "متن", "filtered_threads": "فلٹر کیے گئے تھریڈز", - "missing_link_confirm": "آپ کی پوسٹ میں ایک تصویر کے ساتھ ایک لنک غائب ہے، یہ Plebchan پر ڈیفالٹ کے طور پر فلٹر ہوگی۔ آپ اس فلٹر کو سیٹنگز میں غیر فعال کرسکتے ہیں، یا اپنے پوسٹ کو کسی دوسرے Plebbit کلائنٹ، جیسے Seedit پر دیکھ سکتے ہیں۔ پھر بھی پوسٹ کریں؟", + "missing_link_confirm": "آپ کی پوسٹ میں ایک تصویر کے ساتھ ایک لنک غائب ہے، یہ 5chan پر ڈیفالٹ کے طور پر فلٹر ہوگی۔ آپ اس فلٹر کو سیٹنگز میں غیر فعال کرسکتے ہیں، یا اپنے پوسٹ کو کسی دوسرے Plebbit کلائنٹ، جیسے Seedit پر دیکھ سکتے ہیں۔ پھر بھی پوسٹ کریں؟", "no_board_selected_warning": "براہ کرم پوسٹ کرنے سے پہلے ایک بورڈ منتخب کریں۔", "invalid_url_alert": "فراہم کردہ لنک درست URL نہیں ہے۔", "empty_comment_alert": "خالی تبصرہ پوسٹ نہیں کیا جا سکتا۔", diff --git a/public/translations/vi/default.json b/public/translations/vi/default.json index 52b4e0a1..a6b9ec5a 100644 --- a/public/translations/vi/default.json +++ b/public/translations/vi/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "Plebchan là gì?", + "what_is_5chan": "5chan là gì?", "go": "đi", "or": "hoặc", - "plebchan_description": "Plebchan là một lựa chọn phi tập trung, không có máy chủ, không có quản trị viên cho 4chan nơi bất kỳ pleb nào cũng có thể tạo và sở hữu các bảng không giới hạn. Tất cả dữ liệu đều đến từ giao thức <1>plebbit, đó là toàn bộ văn bản bao gồm cả liên kết từ đó các phương tiện được nhúng, được chia sẻ ngang hàng. Người dùng không cần đăng ký tài khoản trước khi tham gia cộng đồng. Hãy thoải mái nhấp vào một bảng dưới đây mà bạn quan tâm và tham gia ngay!", + "5chan_description": "5chan là một lựa chọn phi tập trung, không có máy chủ, không có quản trị viên cho 4chan nơi bất kỳ pleb nào cũng có thể tạo và sở hữu các bảng không giới hạn. Tất cả dữ liệu đều đến từ giao thức <1>plebbit, đó là toàn bộ văn bản bao gồm cả liên kết từ đó các phương tiện được nhúng, được chia sẻ ngang hàng. Người dùng không cần đăng ký tài khoản trước khi tham gia cộng đồng. Hãy thoải mái nhấp vào một bảng dưới đây mà bạn quan tâm và tham gia ngay!", "no_global_rules_info": "Không có quy tắc toàn cầu, mỗi diễn đàn là hoàn toàn độc lập và chủ sở hữu quyết định cách/nếu muốn kiểm duyệt nó.", "boards": "diễn đàn", "popular_threads": "Chủ đề phổ biến", @@ -77,12 +77,12 @@ "embed": "nhúng", "remove": "xóa", "download_latest_desktop": "Tải xuống phiên bản máy tính để bàn mới nhất tại đây: {{link}}", - "new_stable_version": "Phiên bản ổn định mới có sẵn, plebchan v{{newVersion}}. Bạn đang sử dụng plebchan v{{oldVersion}}.", + "new_stable_version": "Phiên bản ổn định mới có sẵn, 5chan v{{newVersion}}. Bạn đang sử dụng 5chan v{{oldVersion}}.", "refresh_to_update": "Làm mới trang để cập nhật", "new_development_version": "Phiên bản phát triển mới có sẵn, commit {{newCommit}}. Bạn đang sử dụng commit {{oldCommit}}.", "check_for_updates": "<1>Kiểm tra cập nhật", "latest_development_version": "Bạn đang sử dụng phiên bản phát triển mới nhất, commit {{commit}}. Để sử dụng phiên bản ổn định, hãy truy cập {{link}}.", - "latest_stable_version": "Bạn đang sử dụng phiên bản ổn định mới nhất, plebchan v{{version}}.", + "latest_stable_version": "Bạn đang sử dụng phiên bản ổn định mới nhất, 5chan v{{version}}.", "check": "kiểm tra", "update": "Cập nhật", "style": "Phong cách", @@ -231,7 +231,7 @@ "order": "Thứ tự", "text": "Văn bản", "filtered_threads": "Các chủ đề đã lọc", - "missing_link_confirm": "Bài đăng của bạn thiếu một liên kết với hình ảnh, nó sẽ bị lọc theo mặc định trên Plebchan. Bạn có thể tắt bộ lọc này trong cài đặt hoặc xem bài đăng của bạn trên một khách hàng Plebbit khác, như Seedit. Vẫn muốn đăng?", + "missing_link_confirm": "Bài đăng của bạn thiếu một liên kết với hình ảnh, nó sẽ bị lọc theo mặc định trên 5chan. Bạn có thể tắt bộ lọc này trong cài đặt hoặc xem bài đăng của bạn trên một khách hàng Plebbit khác, như Seedit. Vẫn muốn đăng?", "no_board_selected_warning": "Vui lòng chọn một bảng trước khi đăng.", "invalid_url_alert": "Liên kết được cung cấp không phải là một URL hợp lệ.", "empty_comment_alert": "Không thể đăng bình luận trống.", diff --git a/public/translations/zh/default.json b/public/translations/zh/default.json index d776cf13..43e0c4f7 100644 --- a/public/translations/zh/default.json +++ b/public/translations/zh/default.json @@ -1,8 +1,8 @@ { - "what_is_plebchan": "Plebchan是什么?", + "what_is_5chan": "5chan是什么?", "go": "去", "or": "或者", - "plebchan_description": "Plebchan是4chan的无服务器,无管理员,去中心化替代品,任何平民都可以创建和拥有无限的板块。所有数据都来自<1>plebbit协议,所有内容都是文本,包括嵌入媒体的链接,采用对等方式共享。用户在参与社区之前无需注册帐户。随时点击下面您感兴趣的板块,立即加入吧!", + "5chan_description": "5chan是4chan的无服务器,无管理员,去中心化替代品,任何平民都可以创建和拥有无限的板块。所有数据都来自<1>plebbit协议,所有内容都是文本,包括嵌入媒体的链接,采用对等方式共享。用户在参与社区之前无需注册帐户。随时点击下面您感兴趣的板块,立即加入吧!", "no_global_rules_info": "没有全球规则,每个板块都是完全独立的,其所有者决定如何/是否对其进行审查。", "boards": "论坛", "popular_threads": "热门主题", @@ -77,12 +77,12 @@ "embed": "嵌入", "remove": "移除", "download_latest_desktop": "在这里下载最新的桌面版本: {{link}}", - "new_stable_version": "新的稳定版可用,plebchan v{{newVersion}}。您正在使用plebchan v{{oldVersion}}。", + "new_stable_version": "新的稳定版可用,5chan v{{newVersion}}。您正在使用5chan v{{oldVersion}}。", "refresh_to_update": "刷新页面以更新", "new_development_version": "新的开发版本可用,commit {{newCommit}}。您正在使用commit {{oldCommit}}。", "check_for_updates": "<1>检查 更新", "latest_development_version": "您正在使用最新的开发版本,提交 {{commit}}。要使用稳定版本,请前往 {{link}}。", - "latest_stable_version": "您正在使用最新的稳定版本,plebchan v{{version}}。", + "latest_stable_version": "您正在使用最新的稳定版本,5chan v{{version}}。", "check": "检查", "update": "更新", "style": "风格", @@ -231,7 +231,7 @@ "order": "顺序", "text": "文本", "filtered_threads": "已过滤的帖子", - "missing_link_confirm": "您的帖子缺少带图像的链接,默认情况下将在 Plebchan 中被过滤。您可以在设置中禁用此过滤器,或者在另一个 Plebbit 客户端(如 Seedit)中查看您的帖子。还是发布吗?", + "missing_link_confirm": "您的帖子缺少带图像的链接,默认情况下将在 5chan 中被过滤。您可以在设置中禁用此过滤器,或者在另一个 Plebbit 客户端(如 Seedit)中查看您的帖子。还是发布吗?", "no_board_selected_warning": "请在发布之前选择一个板块。", "invalid_url_alert": "提供的链接不是有效的 URL。", "empty_comment_alert": "无法发布空评论。", diff --git a/scripts/deploy.sh b/scripts/deploy.sh index 7e1a9fe8..b7bd62d7 100755 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -16,33 +16,33 @@ if [ -z "${DEPLOY_USER+xxx}" ]; then echo "DEPLOY_USER not set" && exit; fi if [ -z "${DEPLOY_PASSWORD+xxx}" ]; then echo "DEPLOY_PASSWORD not set" && exit; fi # save version -PLEBCHAN_VERSION=$(node -e "console.log(require('../package.json').version)") -PLEBCHAN_HTML_NAME="plebchan-html-$PLEBCHAN_VERSION" +5chan_VERSION=$(node -e "console.log(require('../package.json').version)") +5chan_HTML_NAME="5chan-html-$5chan_VERSION" SCRIPT=" # download html cd ~ -rm $PLEBCHAN_HTML_NAME.zip -rm -fr $PLEBCHAN_HTML_NAME -wget https://github.com/plebbit/plebchan/releases/download/v$PLEBCHAN_VERSION/$PLEBCHAN_HTML_NAME.zip || exit +rm $5chan_HTML_NAME.zip +rm -fr $5chan_HTML_NAME +wget https://github.com/plebbit/5chan/releases/download/v$5chan_VERSION/$5chan_HTML_NAME.zip || exit # extract html -unzip $PLEBCHAN_HTML_NAME.zip || exit -rm $PLEBCHAN_HTML_NAME.zip || exit +unzip $5chan_HTML_NAME.zip || exit +rm $5chan_HTML_NAME.zip || exit # add to ipfs -CID=\`ipfs add --recursive --pin --quieter $PLEBCHAN_HTML_NAME | tail -n 1\` +CID=\`ipfs add --recursive --pin --quieter $5chan_HTML_NAME | tail -n 1\` ipfs pin add --recursive \"\$CID\" # start ipfs daemon if not started ipfs init nohup ipfs daemon & -# the CID of plebchan html, add this CID to ENS +# the CID of 5chan html, add this CID to ENS sleep 3 echo \"\" CID=\`ipfs cid base32 \$CID\` -echo $PLEBCHAN_HTML_NAME \"CID: \$CID\" +echo $5chan_HTML_NAME \"CID: \$CID\" echo \"\" " diff --git a/scripts/release-body.js b/scripts/release-body.js index 6af1d62b..355c1628 100644 --- a/scripts/release-body.js +++ b/scripts/release-body.js @@ -19,15 +19,15 @@ releaseChangelog = releaseChangelog.trim().replace(/\n\n+/g, '\n\n') const releaseBody = `This version fixes a bug that prevented publishing. -- Web app: https://plebchan.app -- Decentralized web app: https://plebchan.eth (only works on [Brave Browser](https://brave.com/) or via [IPFS Companion](https://docs.ipfs.tech/install/ipfs-companion/#prerequisites)) +- Web app: https://5chan.app +- Decentralized web app: https://5chan.eth (only works on [Brave Browser](https://brave.com/) or via [IPFS Companion](https://docs.ipfs.tech/install/ipfs-companion/#prerequisites)) ## Downloads -- Android app: [Download APK](https://github.com/plebbit/plebchan/releases/download/v${version}/plebchan-${version}.apk) -- Linux app: [Download AppImage](https://github.com/plebbit/plebchan/releases/download/v${version}/plebchan-${version}.AppImage) -- macOS app: [Download DMG](https://github.com/plebbit/plebchan/releases/download/v${version}/plebchan-${version}.dmg) -- Windows app: [Download EXE](https://github.com/plebbit/plebchan/releases/download/v${version}/plebchan.Setup.${version}.exe) +- Android app: [Download APK](https://github.com/plebbit/5chan/releases/download/v${version}/5chan-${version}.apk) +- Linux app: [Download AppImage](https://github.com/plebbit/5chan/releases/download/v${version}/5chan-${version}.AppImage) +- macOS app: [Download DMG](https://github.com/plebbit/5chan/releases/download/v${version}/5chan-${version}.dmg) +- Windows app: [Download EXE](https://github.com/plebbit/5chan/releases/download/v${version}/5chan.Setup.${version}.exe) ${releaseChangelog}` diff --git a/src/components/markdown/markdown.tsx b/src/components/markdown/markdown.tsx index ecf424df..05f98ef6 100644 --- a/src/components/markdown/markdown.tsx +++ b/src/components/markdown/markdown.tsx @@ -13,7 +13,7 @@ import CommentMedia from '../comment-media'; import styles from './markdown.module.css'; import { Link, useLocation, useParams } from 'react-router-dom'; import { canEmbed } from '../embed'; -import { isPlebchanLink, transformPlebchanLinkToInternal, preprocessPlebchanPatterns } from '../../lib/utils/url-utils'; +import { is5chanLink, transform5chanLinkToInternal, preprocess5chanPatterns } from '../../lib/utils/url-utils'; interface ContentLinkEmbedProps { children: any; @@ -159,9 +159,9 @@ const renderAnchorLink = (children: React.ReactNode, href: string) => { return {children}; } - // Check if this is a valid plebchan link that should be handled internally - if (isPlebchanLink(href)) { - const internalPath = transformPlebchanLinkToInternal(href); + // Check if this is a valid 5chan link that should be handled internally + if (is5chanLink(href)) { + const internalPath = transform5chanLinkToInternal(href); if (internalPath) { // Check if the link text should be replaced with the internal path let shouldReplaceText = false; @@ -182,7 +182,7 @@ const renderAnchorLink = (children: React.ReactNode, href: string) => { return {displayText}; } else { - console.warn('Failed to transform plebchan link to internal path:', href); + console.warn('Failed to transform 5chan link to internal path:', href); return {children}; } } @@ -226,8 +226,8 @@ const Markdown = ({ content, title }: MarkdownProps) => { const isInCatalogView = isCatalogView(useLocation().pathname, useParams()); - // Preprocess content to convert plain text plebchan patterns to markdown links - const processedContent = preprocessPlebchanPatterns(content || ''); + // Preprocess content to convert plain text 5chan patterns to markdown links + const processedContent = preprocess5chanPatterns(content || ''); return ( diff --git a/src/components/settings-modal/interface-settings/interface-settings.tsx b/src/components/settings-modal/interface-settings/interface-settings.tsx index 5430f235..80ff88bd 100644 --- a/src/components/settings-modal/interface-settings/interface-settings.tsx +++ b/src/components/settings-modal/interface-settings/interface-settings.tsx @@ -22,21 +22,21 @@ const CheckForUpdates = () => { const checkForUpdates = async () => { try { setLoading(true); - const packageRes = await fetch('https://raw.githubusercontent.com/plebbit/plebchan/master/package.json', { cache: 'no-cache' }); + const packageRes = await fetch('https://raw.githubusercontent.com/plebbit/5chan/master/package.json', { cache: 'no-cache' }); const packageData = await packageRes.json(); let updateAvailable = false; if (packageJson.version !== packageData.version) { const newVersionText = t('new_stable_version', { newVersion: packageData.version, oldVersion: packageJson.version }); const updateActionText = isElectron - ? t('download_latest_desktop', { link: 'https://github.com/plebbit/plebchan/releases/latest', interpolation: { escapeValue: false } }) + ? t('download_latest_desktop', { link: 'https://github.com/plebbit/5chan/releases/latest', interpolation: { escapeValue: false } }) : t('refresh_to_update'); alert(newVersionText + ' ' + updateActionText); updateAvailable = true; } if (commitRef && commitRef.length > 0) { - const commitRes = await fetch('https://api.github.com/repos/plebbit/plebchan/commits?per_page=1&sha=development', { cache: 'no-cache' }); + const commitRes = await fetch('https://api.github.com/repos/plebbit/5chan/commits?per_page=1&sha=development', { cache: 'no-cache' }); const commitData = await commitRes.json(); const latestCommitHash = commitData[0].sha; @@ -52,7 +52,7 @@ const CheckForUpdates = () => { if (!updateAvailable) { alert( commitRef - ? `${t('latest_development_version', { commit: commitRef.slice(0, 7), link: 'https://plebchan.app/#/', interpolation: { escapeValue: false } })}` + ? `${t('latest_development_version', { commit: commitRef.slice(0, 7), link: 'https://5chan.app/#/', interpolation: { escapeValue: false } })}` : `${t('latest_stable_version', { version: packageJson.version })}`, ); } diff --git a/src/components/topbar/topbar.tsx b/src/components/topbar/topbar.tsx index 2e4b7d3b..246f508c 100644 --- a/src/components/topbar/topbar.tsx +++ b/src/components/topbar/topbar.tsx @@ -109,7 +109,7 @@ const TopBarDesktop = () => { )} [ - + {t('create_board')} diff --git a/src/components/version/version.tsx b/src/components/version/version.tsx index bbfb9ec0..65bbcff7 100644 --- a/src/components/version/version.tsx +++ b/src/components/version/version.tsx @@ -10,7 +10,7 @@ const Version = () => { return ( <> diff --git a/src/constants/nsfwTags.ts b/src/constants/nsfwTags.ts index ef5abc19..38e09d6d 100644 --- a/src/constants/nsfwTags.ts +++ b/src/constants/nsfwTags.ts @@ -1,2 +1,2 @@ -// plebchan shouldn't consider 'vulgar' or 'anti' as nsfw tags, unlike more sfw-oriented clients +// 5chan shouldn't consider 'vulgar' or 'anti' as nsfw tags, unlike more sfw-oriented clients export const nsfwTags = ['adult', 'gore']; diff --git a/src/hooks/use-auto-subscribe.ts b/src/hooks/use-auto-subscribe.ts index 6d3bea5d..ff267547 100644 --- a/src/hooks/use-auto-subscribe.ts +++ b/src/hooks/use-auto-subscribe.ts @@ -3,7 +3,7 @@ import { useAccount, setAccount } from '@plebbit/plebbit-react-hooks'; import { getAutoSubscribeAddresses, useDefaultSubplebbits } from './use-default-subplebbits'; import { useAutoSubscribeStore } from '../stores/use-auto-subscribe-store'; -const AUTO_SUBSCRIBE_KEY_PREFIX = 'plebchan-auto-subscribe-done-'; +const AUTO_SUBSCRIBE_KEY_PREFIX = '5chan-auto-subscribe-done-'; // Keep track of which accounts have been processed globally const processedAccounts = new Set(); diff --git a/src/hooks/use-default-subplebbits.ts b/src/hooks/use-default-subplebbits.ts index 0bb38870..4de798b2 100644 --- a/src/hooks/use-default-subplebbits.ts +++ b/src/hooks/use-default-subplebbits.ts @@ -12,7 +12,7 @@ export interface MultisubSubplebbit { address: string; tags?: string[]; features?: string[]; - plebchanAutoSubscribe?: boolean; + autoSubscribe5Chan?: boolean; lowUptime?: boolean; } @@ -58,7 +58,7 @@ export const useDefaultSubplebbits = () => { // Cache auto-subscribe addresses when we fetch subplebbits cacheAutoSubscribeAddresses = filteredSubplebbits - .filter((sub: MultisubSubplebbit) => sub.plebchanAutoSubscribe && sub.address) + .filter((sub: MultisubSubplebbit) => sub.autoSubscribe5Chan && sub.address) .map((sub: MultisubSubplebbit) => sub.address); setState({ diff --git a/src/hooks/use-fetch-gif-first-frame.ts b/src/hooks/use-fetch-gif-first-frame.ts index f936caae..9a8fdd92 100644 --- a/src/hooks/use-fetch-gif-first-frame.ts +++ b/src/hooks/use-fetch-gif-first-frame.ts @@ -1,7 +1,7 @@ import { useEffect, useState } from 'react'; import localForageLru from '@plebbit/plebbit-react-hooks/dist/lib/localforage-lru/index.js'; -const gifFrameDb = localForageLru.createInstance({ name: 'plebchanGifFrames', size: 500 }); +const gifFrameDb = localForageLru.createInstance({ name: '5chanGifFrames', size: 500 }); const getCachedGifFrame = async (url: string): Promise => { return await gifFrameDb.getItem(url); diff --git a/src/hooks/use-time-filter.ts b/src/hooks/use-time-filter.ts index e3e920fd..f8a03ba1 100644 --- a/src/hooks/use-time-filter.ts +++ b/src/hooks/use-time-filter.ts @@ -2,11 +2,11 @@ import assert from 'assert'; import { useParams } from 'react-router-dom'; // the timestamp the last time the user visited -const lastVisitTimestamp = localStorage.getItem('plebchanLastVisitTimestamp'); +const lastVisitTimestamp = localStorage.getItem('5chanLastVisitTimestamp'); // update the last visited timestamp every n seconds setInterval(() => { - localStorage.setItem('plebchanLastVisitTimestamp', Date.now().toString()); + localStorage.setItem('5chanLastVisitTimestamp', Date.now().toString()); }, 60 * 1000); const timeFilterNamesToSeconds: Record = { diff --git a/src/lib/utils/media-utils.ts b/src/lib/utils/media-utils.ts index 6575b252..68a811fb 100644 --- a/src/lib/utils/media-utils.ts +++ b/src/lib/utils/media-utils.ts @@ -245,7 +245,7 @@ export const getMediaDimensions = memoize( { max: 1000 }, ); -const thumbnailUrlsDb = localForageLru.createInstance({ name: 'plebchanThumbnailUrls', size: 500 }); +const thumbnailUrlsDb = localForageLru.createInstance({ name: '5chanThumbnailUrls', size: 500 }); export const getCachedThumbnail = async (url: string): Promise => { return await thumbnailUrlsDb.getItem(url); diff --git a/src/lib/utils/url-utils.ts b/src/lib/utils/url-utils.ts index 9edc727f..4fea811a 100644 --- a/src/lib/utils/url-utils.ts +++ b/src/lib/utils/url-utils.ts @@ -18,19 +18,19 @@ export const isValidURL = (url: string) => { }; export const copyShareLinkToClipboard = async (subplebbitAddress: string, cid: string) => { - const shareLink = `https://pleb.bz/p/${subplebbitAddress}/c/${cid}?redirect=plebchan.app`; + const shareLink = `https://pleb.bz/p/${subplebbitAddress}/c/${cid}?redirect=5chan.app`; await copyToClipboard(shareLink); }; -const PLEBCHAN_HOSTNAMES = ['pleb.bz', 'plebchan.app', 'plebchan.eth.limo', 'plebchan.eth.link', 'plebchan.eth.sucks', 'plebchan.netlify.app']; +const CHAN_5_HOSTNAMES = ['pleb.bz', '5chan.app', '5chan.eth.limo', '5chan.eth.link', '5chan.eth.sucks', '5chan.netlify.app']; -// Check if a URL is a valid plebchan link that should be handled internally -export const isPlebchanLink = (url: string): boolean => { +// Check if a URL is a valid 5chan link that should be handled internally +export const is5chanLink = (url: string): boolean => { try { const parsedUrl = new URL(url); const hostname = parsedUrl.hostname.replace(/^www\./, ''); - if (!PLEBCHAN_HOSTNAMES.includes(hostname)) { + if (!CHAN_5_HOSTNAMES.includes(hostname)) { return false; } @@ -49,7 +49,7 @@ export const isPlebchanLink = (url: string): boolean => { return /^\/p\/[^/]+\/c\/[^/]+$/.test(routePath); } - // For other plebchan hostnames, support: + // For other 5chan hostnames, support: // - /p/{subplebbitAddress} // - /p/{subplebbitAddress}/c/{commentCid} return /^\/p\/[^/]+(\/c\/[^/]+)?$/.test(routePath); @@ -58,9 +58,9 @@ export const isPlebchanLink = (url: string): boolean => { } }; -// Transform a valid plebchan URL to an internal route -export const transformPlebchanLinkToInternal = (url: string): string | null => { - if (!isPlebchanLink(url)) { +// Transform a valid 5chan URL to an internal route +export const transform5chanLinkToInternal = (url: string): string | null => { + if (!is5chanLink(url)) { return null; } @@ -97,7 +97,7 @@ const isValidDomain = (str: string): boolean => { return str.includes('.') && str.split('.').length >= 2 && str.split('.').every((part) => part.length > 0); }; -// Check if a plain text pattern is a valid plebchan subplebbit reference +// Check if a plain text pattern is a valid 5chan subplebbit reference export const isValidSubplebbitPattern = (pattern: string): boolean => { // Must start with "p/" if (!pattern.startsWith('p/')) { @@ -118,8 +118,8 @@ export const isValidSubplebbitPattern = (pattern: string): boolean => { return isValidDomain(pathPart) || isValidIPNSKey(pathPart); }; -// Preprocess content to convert plain text plebchan patterns to markdown links -export const preprocessPlebchanPatterns = (content: string): string => { +// Preprocess content to convert plain text 5chan patterns to markdown links +export const preprocess5chanPatterns = (content: string): string => { // Pattern to match "p/something" or "p/something/c/something" // Negative lookbehind prevents matching patterns that are already part of URLs const pattern = /(? { useEffect(() => { const boardTitle = title ? title : shortAddress || subplebbitAddress; - document.title = boardTitle + ' - plebchan'; + document.title = boardTitle + ' - 5chan'; }, [title, shortAddress, subplebbitAddress]); const shouldShowErrorToUser = error?.message && feed.length === 0; diff --git a/src/views/catalog/catalog.tsx b/src/views/catalog/catalog.tsx index efa9d511..cb401ba0 100644 --- a/src/views/catalog/catalog.tsx +++ b/src/views/catalog/catalog.tsx @@ -450,7 +450,7 @@ const Catalog = () => { let documentTitle = title ? title : shortAddress; if (isInAllView) documentTitle = t('all'); else if (isInSubscriptionsView) documentTitle = t('subscriptions'); - document.title = documentTitle + ` - ${t('catalog')} - plebchan`; + document.title = documentTitle + ` - ${t('catalog')} - 5chan`; }, [title, shortAddress, isInAllView, isInSubscriptionsView, t]); // Clear matched filters when component mounts or when subplebbit changes diff --git a/src/views/faq/faq.tsx b/src/views/faq/faq.tsx index d8d3a30d..7e19febc 100644 --- a/src/views/faq/faq.tsx +++ b/src/views/faq/faq.tsx @@ -6,7 +6,7 @@ import styles from './faq.module.css'; const FAQ = () => { useEffect(() => { window.scrollTo(0, 0); - document.title = 'FAQ - plebchan'; + document.title = 'FAQ - 5chan'; }, []); return ( @@ -18,8 +18,8 @@ const FAQ = () => {

- Welcome to Plebchan's Frequently Asked Questions page. Please remember that Plebchan does not have - global admins or rules. + Welcome to 5chan's Frequently Asked Questions page. Please remember that 5chan does not have global + admins or rules.
@@ -35,7 +35,7 @@ const FAQ = () => {
  • - What is Plebchan? + What is 5chan?
    • @@ -82,11 +82,11 @@ const FAQ = () => {
-
- What is Plebchan? +
+ What is 5chan?
- Plebchan is a serverless, adminless, decentralized 4chan alternative where any pleb can create and own unlimited boards. All data comes from the Plebbit + 5chan is a serverless, adminless, decentralized 4chan alternative where any pleb can create and own unlimited boards. All data comes from the Plebbit protocol, it's all text including links from which media is embedded, shared peer-to-peer. Users do not need to register an account before participating in the community.
@@ -106,9 +106,9 @@ const FAQ = () => { To post as "Anonymous", simply do not fill in the [Name] field when submitting content.

- Plebchan uses the Plebbit protocol to function, which does not leak IP addresses of people who post. When you post on Plebchan, no board admin can know - your IP address, nor can the app itself, which is just static HTML. However, the Plebbit protocol is not fully anonymous, it uses IPFS, which means your - IP address is part of a public P2P swarm, similarly to how BitTorrent works. + 5chan uses the Plebbit protocol to function, which does not leak IP addresses of people who post. When you post on 5chan, no board admin can know your + IP address, nor can the app itself, which is just static HTML. However, the Plebbit protocol is not fully anonymous, it uses IPFS, which means your IP + address is part of a public P2P swarm, similarly to how BitTorrent works.
Can I register a username?
@@ -123,16 +123,16 @@ const FAQ = () => {
How do I post an image?
You need a link to the image, ideally using an image hosting service, like Imgur or catbox.moe. Paste the link to the image in the [Link] field when - submitting content. Plebchan will attempt to load the media from the link and show its type next to the [Link] field. If the link type is "webpage", the + submitting content. 5chan will attempt to load the media from the link and show its type next to the [Link] field. If the link type is "webpage", the link is not an image, and you should try another link.

- You can also post videos, audios and gifs by pasting their direct links. Plebchan also supports the following websites to embed media without a direct + You can also post videos, audios and gifs by pasting their direct links. 5chan also supports the following websites to embed media without a direct link: YouTube, Twitter/X, Reddit, Twitch, TikTok, Instagram, Odysee, Bitchute, Streamable, Spotify and Soundcloud.
Can I upload an image?
- Yes, but only in the Android app, which you can download on GitHub. The app is able to + Yes, but only in the Android app, which you can download on GitHub. The app is able to automatically upload media to image hosting services, like Imgur or catbox.moe, sharing your IP address with the image hosting service. This is not possible in the browser, which can't make backend requests.
@@ -141,21 +141,21 @@ const FAQ = () => { when submitting content. You can paste any link, not just image links. You can also get an image link from social media, by right clicking the image and selecting "Copy image URL", or by using tools such as cobalt.

- The reason why uploading media directly to boards is not possible, is because Plebchan is a client for the Plebbit protocol, which is text-only - (including links, from which media is embedded by clients). However, Plebbit uses IPFS, so in theory it could let users upload media to the subplebbit - (board) owner's IPFS node, and then post the direct IPFS link for the media. This is not enabled because loading media from IPFS is extremely slow at - the moment (because most people have slow internet). + The reason why uploading media directly to boards is not possible, is because 5chan is a client for the Plebbit protocol, which is text-only (including + links, from which media is embedded by clients). However, Plebbit uses IPFS, so in theory it could let users upload media to the subplebbit (board) + owner's IPFS node, and then post the direct IPFS link for the media. This is not enabled because loading media from IPFS is extremely slow at the moment + (because most people have slow internet).
Must I post an image?
- It depends on the board. Each board has its own rules, and a board owner might decide to only allow posts with images in their community. Plebchan + It depends on the board. Each board has its own rules, and a board owner might decide to only allow posts with images in their community. 5chan automatically filters out text-only threads in the catalog view, to resemble an imageboard, and you can disable this in the [Filters] menu.
Can I reply with an image?
Yes. To reply to a thread with an image of your own, fill in the post box as you normally would, making sure to specify a direct image link (e.g., - ending in .png or .jpeg) in the "Link" field. Plebchan will attempt to load the image, and if it worked it will show the Link type as "image", next to - the field, before posting. If the Link type is "webpage", the link is not an image, and you should try another link. + ending in .png or .jpeg) in the "Link" field. 5chan will attempt to load the image, and if it worked it will show the Link type as "image", next to the + field, before posting. If the Link type is "webpage", the link is not an image, and you should try another link.
How do I quote somebody?
@@ -163,14 +163,14 @@ const FAQ = () => { {'>'}This is a quote").

- Unlike 4chan and other imageboards, Plebchan does not allow to quote more than one post at a time. You can only reply to one post at a time. This - is because Plebchan is a client for the Plebbit protocol, which is designed to be an alternative to Reddit-like social media, in which you can only - reply to one post at a time. + Unlike 4chan and other imageboards, 5chan does not allow to quote more than one post at a time. You can only reply to one post at a time. This is + because 5chan is a client for the Plebbit protocol, which is designed to be an alternative to Reddit-like social media, in which you can only reply to + one post at a time.

- Further, post numbers are not possible on Plebchan, because Plebbit is fully decentralized (serverless) using IPFS, meaning there is no central database - to store post numbers, and it uses CIDs to load posts directly. Retrieving the CID from an hypothetical post number from the single board's database - would be far too expensive for the node to calculate. + Further, post numbers are not possible on 5chan, because Plebbit is fully decentralized (serverless) using IPFS, meaning there is no central database to + store post numbers, and it uses CIDs to load posts directly. Retrieving the CID from an hypothetical post number from the single board's database would + be far too expensive for the node to calculate.

diff --git a/src/views/home/home.tsx b/src/views/home/home.tsx index b751236b..ad930eda 100644 --- a/src/views/home/home.tsx +++ b/src/views/home/home.tsx @@ -47,11 +47,11 @@ const InfoBox = () => { return (
-

{t('what_is_plebchan')}

+

{t('what_is_5chan')}

, @@ -138,7 +138,7 @@ export const Footer = () => {
  • - + GitHub
  • @@ -176,7 +176,7 @@ const Home = () => { const { subplebbits } = useSubplebbits({ subplebbitAddresses }); useEffect(() => { - document.title = 'plebchan'; + document.title = '5chan'; }, []); return ( diff --git a/src/views/post/post.tsx b/src/views/post/post.tsx index c1ba138c..e1676fd4 100644 --- a/src/views/post/post.tsx +++ b/src/views/post/post.tsx @@ -80,8 +80,8 @@ const PostPage = () => { useEffect(() => { const boardTitle = title ? title : shortAddress || subplebbitAddress; const postTitle = post?.title?.slice(0, 30) || post?.content?.slice(0, 30); - const postDucumentTitle = (postTitle ? postTitle.trim() + '... - ' : '') + boardTitle + ' - plebchan'; - document.title = isInAllView ? `${t('all')} - plebchan` : postDucumentTitle; + const postDucumentTitle = (postTitle ? postTitle.trim() + '... - ' : '') + boardTitle + ' - 5chan'; + document.title = isInAllView ? `${t('all')} - 5chan` : postDucumentTitle; }, [title, shortAddress, subplebbitAddress, post?.title, post?.content, isInAllView, t]); // probably not necessary to show the error to the user if the post loaded successfully diff --git a/vite.config.js b/vite.config.js index 3c102257..1ae80123 100644 --- a/vite.config.js +++ b/vite.config.js @@ -48,8 +48,8 @@ export default defineConfig({ }, includeAssets: ['favicon.ico', 'robots.txt', 'apple-touch-icon.png'], manifest: { - name: 'plebchan', - short_name: 'plebchan', + name: '5chan', + short_name: '5chan', description: 'A GUI for plebbit similar to 4chan', theme_color: '#ffffff', background_color: '#ffffee', From ba070fec8624a28e712314f1f4affa3c39b12f5d Mon Sep 17 00:00:00 2001 From: plebeius Date: Sat, 18 Oct 2025 00:32:25 +0200 Subject: [PATCH 10/15] update translations --- public/translations/ar/default.json | 4 ++-- public/translations/bn/default.json | 4 ++-- public/translations/cs/default.json | 4 ++-- public/translations/da/default.json | 4 ++-- public/translations/de/default.json | 4 ++-- public/translations/el/default.json | 4 ++-- public/translations/es/default.json | 4 ++-- public/translations/fa/default.json | 4 ++-- public/translations/fi/default.json | 4 ++-- public/translations/fil/default.json | 4 ++-- public/translations/fr/default.json | 4 ++-- public/translations/he/default.json | 4 ++-- public/translations/hi/default.json | 4 ++-- public/translations/hu/default.json | 4 ++-- public/translations/id/default.json | 4 ++-- public/translations/it/default.json | 4 ++-- public/translations/ja/default.json | 4 ++-- public/translations/ko/default.json | 4 ++-- public/translations/mr/default.json | 4 ++-- public/translations/nl/default.json | 4 ++-- public/translations/no/default.json | 4 ++-- public/translations/pl/default.json | 4 ++-- public/translations/pt/default.json | 4 ++-- public/translations/ro/default.json | 4 ++-- public/translations/ru/default.json | 4 ++-- public/translations/sq/default.json | 4 ++-- public/translations/sv/default.json | 4 ++-- public/translations/te/default.json | 4 ++-- public/translations/th/default.json | 4 ++-- public/translations/tr/default.json | 4 ++-- public/translations/uk/default.json | 4 ++-- public/translations/ur/default.json | 4 ++-- public/translations/vi/default.json | 4 ++-- public/translations/zh/default.json | 4 ++-- 34 files changed, 68 insertions(+), 68 deletions(-) diff --git a/public/translations/ar/default.json b/public/translations/ar/default.json index d5142f48..4a53b8f0 100644 --- a/public/translations/ar/default.json +++ b/public/translations/ar/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "ما هو بليبتشان؟", "go": "اذهب", "or": "أو", - "5chan_description": "5chan هو بديل لـ 4chan موزع، بدون خادم، بدون مسؤولين، حيث يمكن لأي شخص إنشاء وامتلاك منتديات غير محدودة. جميع البيانات تأتي من بروتوكول <1>plebbit، كلها نصوص بما في ذلك الروابط التي يتم تضمين الوسائط فيها، مشتركة نقطة لنقطة. لا يحتاج المستخدمون إلى تسجيل حساب قبل المشاركة في المجتمع. لا تتردد في النقر فوق منتدى أدناه الذي يهمك والانضمام فورًا!", - "no_global_rules_info": "لا توجد قواعد عالمية، كل منتدى مستقل تمامًا وصاحبه يقرر كيفية/ما إذا كان يعتد به.", + "5chan_description": "5chan هو بديل لـ 4chan موزع، بدون خادم، بدون مسؤولين، ومفتوح المصدر، حيث يمكن لأي شخص إنشاء وامتلاك منتديات غير محدودة بشكل تشفيري. جميع المنتديات مستضافة ذاتياً من قبل أصحابها، الذين يشغلون عقد <1>bitsocial التي يتصل بها المستخدمون، نقطة لنقطة. جميع البيانات نصية فقط، بما في ذلك الروابط لتحميل الوسائط/التضمينات. لا تتردد في النقر فوق منتدى أدناه الذي يهمك والانضمام فورًا!", + "no_global_rules_info": "يمكنك دائمًا الاتصال بأي منتدى، بشكل كامل P2P، لا يمكن لأحد إيقافك. ببساطة الصق عنوانه في حقل البحث أعلاه.", "boards": "منتديات", "popular_threads": "المواضيع الشائعة", "options": "الخيارات", diff --git a/public/translations/bn/default.json b/public/translations/bn/default.json index 8a95fc24..06eb1e5d 100644 --- a/public/translations/bn/default.json +++ b/public/translations/bn/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "প্লেবচ্যান কি?", "go": "যাও", "or": "অথবা", - "5chan_description": "5chan একটি সার্ভারলেস, অ্যাডমিনলেস, ডিসেন্ট্রালাইজড 4chan বিকল্প যেখানে কেউই অসীম বোর্ড তৈরি এবং মালিকত্ব করতে পারেন। সমস্ত তথ্য প্রোটোকল <1>plebbit থেকে এসেছে, যেমন সব টেক্সট, যেখানে মিডিয়া সংযুক্ত লিংক থেকে অবস্থান করে, শেয়ার পির-টু-পি। ব্যবহারকারীদের কোনও অ্যাকাউন্ট নিবন্ধন করতে হয় না যাতে কোম্যুনিটিতে অংশগ্রহণ করতে পারেন। আপনি যেটা আপনার সাথে আগ্রহী তার নিচে একটি বোর্ডে ক্লিক করে যথাযথভাবে যোগদান করতে পারেন!", - "no_global_rules_info": "কোন গ্লোবাল নিয়ম নেই, প্রতিটি বোর্ড সম্পূর্ণভাবে স্বতন্ত্র এবং তার মালিক কীভাবে/যদি তা নিয়ন্ত্রণ করতে চায় তা নির্ধারণ করে।", + "5chan_description": "5chan একটি সার্ভারলেস, অ্যাডমিনলেস, ডিসেন্ট্রালাইজড এবং ওপেন-সোর্স 4chan বিকল্প যেখানে কেউই অসীম বোর্ড তৈরি এবং ক্রিপ্টোগ্রাফিকভাবে মালিকত্ব করতে পারেন। সমস্ত বোর্ড তাদের মালিকদের দ্বারা স্ব-হোস্ট করা হয়, যারা <1>bitsocial নোড চালায় যেগুলিতে ব্যবহারকারীরা পিয়ার-টু-পিয়ার সংযোগ করে। সমস্ত ডেটা শুধুমাত্র টেক্সট, মিডিয়া/এমবেড লোড করার লিংক সহ। আপনি যেটা আপনার সাথে আগ্রহী তার নিচে একটি বোর্ডে ক্লিক করে যথাযথভাবে যোগদান করতে পারেন!", + "no_global_rules_info": "আপনি সবসময় যেকোনো বোর্ডে সংযোগ করতে পারেন, সম্পূর্ণ P2P, কেউ আপনাকে থামাতে পারে না। উপরের সার্চ ফিল্ডে এর ঠিকানা পেস্ট করুন।", "boards": "বোর্ডসমূহ", "popular_threads": "জনপ্রিয় থ্রেডগুলি", "options": "বিকল্পসমূহ", diff --git a/public/translations/cs/default.json b/public/translations/cs/default.json index 8ed09da1..62725e2e 100644 --- a/public/translations/cs/default.json +++ b/public/translations/cs/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "Co je 5chan?", "go": "jít", "or": "nebo", - "5chan_description": "5chan je decentralizovaná alternativa 4chan bez serveru, bez administrátorů, kde si každý pleb může vytvořit a vlastnit neomezené nástěnky. Všechna data pocházejí z protokolu <1>plebbit, jsou všechno texty včetně odkazů, ze kterých jsou média vložena, sdílená peer-to-peer. Uživatelé se nemusí registrovat před účastí v komunitě. Neváhejte kliknout na nástěnku níže, která vás zajímá, a okamžitě se připojit!", - "no_global_rules_info": "Žádná globální pravidla neexistují, každá nástěnka je zcela nezávislá a její vlastník rozhoduje o tom, jak/či ji moderovat.", + "5chan_description": "5chan je decentralizovaná alternativa 4chan bez serveru, bez administrátorů, open-source, kde si každý může vytvořit a kryptograficky vlastnit neomezené nástěnky. Všechny nástěnky jsou hostovány jejich vlastníky, kteří provozují <1>bitsocial uzly, ke kterým se uživatelé připojují peer-to-peer. Všechna data jsou pouze textová, včetně odkazů pro načítání médií/embedů. Neváhejte kliknout na nástěnku níže, která vás zajímá, a okamžitě se připojit!", + "no_global_rules_info": "Můžete se vždy připojit k jakékoli nástěnce, plně P2P, nikdo vás nemůže zastavit. Jednoduše vložte její adresu do vyhledávacího pole výše.", "boards": "nástěnky", "popular_threads": "Oblíbená vlákna", "options": "Možnosti", diff --git a/public/translations/da/default.json b/public/translations/da/default.json index 98ddf00b..7be2fc6e 100644 --- a/public/translations/da/default.json +++ b/public/translations/da/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "Hvad er 5chan?", "go": "gå", "or": "eller", - "5chan_description": "5chan er et serverløst, adminløst, decentraliseret 4chan-alternativ, hvor enhver pleb kan oprette og eje ubegrænsede opslagstavler. Alle data kommer fra protokollen <1>plebbit, det hele er tekst inklusive links, hvorfra medier er indlejret, delt peer-to-peer. Brugere behøver ikke at registrere en konto før deltagelse i fællesskabet. Du er velkommen til at klikke på en opslagstavle nedenfor, der interesserer dig, og springe direkte ind!", - "no_global_rules_info": "Der er ingen globale regler, hver opslagstavle er helt uafhængig, og dens ejer beslutter hvordan/om at moderere den.", + "5chan_description": "5chan er et serverløst, adminløst, decentraliseret og open-source 4chan-alternativ, hvor enhver kan oprette og kryptografisk eje ubegrænsede opslagstavler. Alle opslagstavler er selv-hostet af deres ejere, som kører <1>bitsocial noder, som brugere forbinder til peer-to-peer. Alle data er kun tekst, inklusive links til at indlæse medier/embeds. Du er velkommen til at klikke på en opslagstavle nedenfor, der interesserer dig, og springe direkte ind!", + "no_global_rules_info": "Du kan altid forbinde til enhver opslagstavle, fuldt P2P, ingen kan stoppe dig. Indsæt simpelthen dens adresse i søgefeltet ovenfor.", "boards": "opslagstavler", "popular_threads": "Populære tråde", "options": "Indstillinger", diff --git a/public/translations/de/default.json b/public/translations/de/default.json index c7b729bc..78513a1e 100644 --- a/public/translations/de/default.json +++ b/public/translations/de/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "Was ist 5chan?", "go": "gehen", "or": "oder", - "5chan_description": "5chan ist eine serverlose, adminlose, dezentralisierte Alternative zu 4chan, bei der jeder Pleb unbegrenzte Foren erstellen und besitzen kann. Alle Daten stammen aus dem Protokoll <1>plebbit, es handelt sich ausschließlich um Texte einschließlich Links, aus denen Medien eingebettet werden, die peer-to-peer geteilt werden. Benutzer müssen sich nicht registrieren, bevor sie an der Community teilnehmen. Fühlen Sie sich frei, auf ein Forum unten zu klicken, das Sie interessiert, und steigen Sie direkt ein!", - "no_global_rules_info": "Es gibt keine globalen Regeln, jedes Forum ist völlig unabhängig und sein Besitzer entscheidet, wie/ob es moderiert wird.", + "5chan_description": "5chan ist eine serverlose, adminlose, dezentralisierte und open-source Alternative zu 4chan, bei der jeder unbegrenzte Foren erstellen und kryptografisch besitzen kann. Alle Foren werden von ihren Besitzern selbst gehostet, die <1>bitsocial Knoten betreiben, zu denen sich Benutzer peer-to-peer verbinden. Alle Daten sind nur Text, einschließlich Links zum Laden von Medien/Embeds. Fühlen Sie sich frei, auf ein Forum unten zu klicken, das Sie interessiert, und steigen Sie direkt ein!", + "no_global_rules_info": "Sie können sich jederzeit mit jedem Forum verbinden, vollständig P2P, niemand kann Sie aufhalten. Fügen Sie einfach seine Adresse in das Suchfeld oben ein.", "boards": "Foren", "popular_threads": "Beliebte Threads", "options": "Optionen", diff --git a/public/translations/el/default.json b/public/translations/el/default.json index dad7bd1c..8b3374ee 100644 --- a/public/translations/el/default.json +++ b/public/translations/el/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "Τι είναι το 5chan;", "go": "πήγαινε", "or": "ή", - "5chan_description": "Το 5chan είναι μια αντικατάσταση του 4chan χωρίς διακομιστή, χωρίς διαχειριστές, αποκεντρωμένη, όπου οποιοσδήποτε pleb μπορεί να δημιουργήσει και να έχει απεριόριστα boards. Όλα τα δεδομένα προέρχονται από το πρωτόκολλο <1>plebbit, είναι όλα κείμενα συμπεριλαμβανομένων των συνδέσμων από τους οποίους ενσωματώνονται τα πολυμέσα, κοινοποιούνται peer-to-peer. Οι χρήστες δεν χρειάζεται να εγγραφούν πριν να συμμετάσχουν στην κοινότητα. Μη διστάσετε να κάνετε κλικ σε ένα board παρακάτω που σας ενδιαφέρει και να μπείτε αμέσως μέσα!", - "no_global_rules_info": "Δεν υπάρχουν παγκόσμιοι κανόνες, κάθε Διαδικτυακή πίνακας είναι εντελώς ανεξάρτητος και ο ιδιοκτήτης του αποφασίζει πώς/εάν να τον ελέγξει.", + "5chan_description": "Το 5chan είναι μια αντικατάσταση του 4chan χωρίς διακομιστή, χωρίς διαχειριστές, αποκεντρωμένη και ανοιχτού κώδικα, όπου οποιοσδήποτε μπορεί να δημιουργήσει και να έχει κρυπτογραφικά απεριόριστα boards. Όλα τα boards φιλοξενούνται από τους ιδιοκτήτες τους, οι οποίοι τρέχουν κόμβους <1>bitsocial στους οποίους συνδέονται οι χρήστες peer-to-peer. Όλα τα δεδομένα είναι μόνο κείμενο, συμπεριλαμβανομένων των συνδέσμων για φόρτωση πολυμέσων/embeds. Μη διστάσετε να κάνετε κλικ σε ένα board παρακάτω που σας ενδιαφέρει και να μπείτε αμέσως μέσα!", + "no_global_rules_info": "Μπορείτε πάντα να συνδεθείτε σε οποιοδήποτε board, πλήρως P2P, κανείς δεν μπορεί να σας σταματήσει. Απλά επικολλήστε τη διεύθυνσή του στο πεδίο αναζήτησης παραπάνω.", "boards": "διαδικτυακές πινακίδες", "popular_threads": "Δημοφιλή νήματα", "options": "Επιλογές", diff --git a/public/translations/es/default.json b/public/translations/es/default.json index c7752bd0..9c5d2561 100644 --- a/public/translations/es/default.json +++ b/public/translations/es/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "¿Qué es 5chan?", "go": "ir", "or": "o", - "5chan_description": "5chan es una alternativa descentralizada, sin servidor, sin administrador, de 4chan donde cualquier pleb puede crear y poseer foros ilimitados. Todos los datos provienen del protocolo <1>plebbit, son todo texto incluidos los enlaces desde los cuales se incrustan los medios, compartidos de igual a igual. Los usuarios no necesitan registrarse antes de participar en la comunidad. ¡Siéntete libre de hacer clic en un foro a continuación que te interese y únete de inmediato!", - "no_global_rules_info": "No hay reglas globales, cada foro es completamente independiente y su propietario decide cómo/si moderarlo.", + "5chan_description": "5chan es una alternativa descentralizada, sin servidor, sin administrador y de código abierto de 4chan donde cualquiera puede crear y poseer criptográficamente foros ilimitados. Todos los foros son auto-hospedados por sus propietarios, quienes ejecutan nodos <1>bitsocial a los que los usuarios se conectan peer-to-peer. Todos los datos son solo texto, incluyendo enlaces para cargar medios/embeds. ¡Siéntete libre de hacer clic en un foro a continuación que te interese y únete de inmediato!", + "no_global_rules_info": "Siempre puedes conectarte a cualquier foro, completamente P2P, nadie puede detenerte. Simplemente pega su dirección en el campo de búsqueda de arriba.", "boards": "foros", "popular_threads": "Hilos populares", "options": "Opciones", diff --git a/public/translations/fa/default.json b/public/translations/fa/default.json index c2a79b07..cf6f6cb9 100644 --- a/public/translations/fa/default.json +++ b/public/translations/fa/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "پلبچن چیست؟", "go": "برو", "or": "یا", - "5chan_description": "پلبچن یک جایگزین ۴چن بدون سرور، بدون مدیر و متمرکز است که هر پلب می‌تواند تالارهای نامحدودی را ایجاد و مالکیت کند. تمام داده‌ها از پروتکل <1>پلبیت گرفته می‌شود، همه متن‌اند از جمله پیوندهایی که رسانه‌ها از آنها جاسازی می‌شوند، به صورت همتا به همتا به اشتراک گذاشته می‌شوند. کاربران قبل از شرکت در این جامعه نیازی به ثبت نام ندارند. لطفاً روی یک تالار زیر که به شما علاقه‌مند است کلیک کنید و مستقیماً به آن بپیوندید!", - "no_global_rules_info": "هیچ قانون جهانی وجود ندارد، هر تالار کاملا مستقل است و مالک آن تصمیم می‌گیرد چگونه/آیا آن را نظارت کند.", + "5chan_description": "پلبچن یک جایگزین ۴چن بدون سرور، بدون مدیر، غیرمتمرکز و منبع باز است که هر کسی می‌تواند تالارهای نامحدودی را ایجاد و رمزنگاری کند. تمام تالارها توسط مالکانشان خودمیزبان هستند، که گره‌های <1>بیت‌سوشال را اجرا می‌کنند که کاربران به آنها همتا به همتا متصل می‌شوند. تمام داده‌ها فقط متن هستند، از جمله پیوندها برای بارگذاری رسانه/جاسازی‌ها. لطفاً روی یک تالار زیر که به شما علاقه‌مند است کلیک کنید و مستقیماً به آن بپیوندید!", + "no_global_rules_info": "شما همیشه می‌توانید به هر تالاری متصل شوید، کاملاً P2P، هیچ کس نمی‌تواند شما را متوقف کند. به سادگی آدرس آن را در فیلد جستجوی بالا قرار دهید.", "boards": "تالارهای پیام", "popular_threads": "نخستین موضوعات", "options": "گزینه‌ها", diff --git a/public/translations/fi/default.json b/public/translations/fi/default.json index 1d230c76..33c38fa1 100644 --- a/public/translations/fi/default.json +++ b/public/translations/fi/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "Mikä on 5chan?", "go": "mennä", "or": "tai", - "5chan_description": "5chan on palvelin- ja ylläpitovapaa hajautettu vaihtoehto 4chanille, jossa kuka tahansa pleb voi luoda ja omistaa rajoittamattomasti foorumeita. Kaikki tiedot tulevat <1>plebbit-protokollasta, ne ovat kaikki tekstiä mukaan lukien linkit, joista media upotetaan, jaettuna vertaisverkkona. Käyttäjien ei tarvitse rekisteröityä ennen osallistumista yhteisöön. Voit vapaasti klikata alla olevaa foorumia, joka kiinnostaa sinua, ja liittyä heti mukaan!", - "no_global_rules_info": "Maailmanlaajuisia sääntöjä ei ole, jokainen foorumi on täysin itsenäinen ja sen omistaja päättää kuinka / onko se säännelty.", + "5chan_description": "5chan on palvelin- ja ylläpitovapaa hajautettu avoimen lähdekoodin vaihtoehto 4chanille, jossa kuka tahansa voi luoda ja kryptografisesti omistaa rajoittamattomasti foorumeita. Kaikki foorumit ovat omistajiensa itsehostaamia, jotka ajavat <1>bitsocial-solmuja, joihin käyttäjät yhdistyvät vertaisverkossa. Kaikki tiedot ovat vain tekstiä, mukaan lukien linkit mediasisältöjen/upotusten lataamiseen. Voit vapaasti klikata alla olevaa foorumia, joka kiinnostaa sinua, ja liittyä heti mukaan!", + "no_global_rules_info": "Voit aina yhdistää mihin tahansa foorumiin, täysin P2P, kukaan ei voi pysäyttää sinua. Liitä vain sen osoite yllä olevaan hakukenttään.", "boards": "foorumit", "popular_threads": "Suositut langat", "options": "Vaihtoehdot", diff --git a/public/translations/fil/default.json b/public/translations/fil/default.json index 1a050a74..4abce1dd 100644 --- a/public/translations/fil/default.json +++ b/public/translations/fil/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "Ano ang 5chan?", "go": "pumunta", "or": "o", - "5chan_description": "Ang 5chan ay isang serverless, adminless, decentralized na alternatibo sa 4chan kung saan maaaring lumikha at magmamay-ari ang sinumang pleb ng walang limitasyong boards. Lahat ng data ay nagmumula sa <1>plebbit protocol, ito ay lahat ng teksto kabilang ang mga link mula sa kung saan ang midya ay naka-embed, ibinahagi peer-to-peer. Hindi kailangang magparehistro ang mga gumagamit bago makilahok sa komunidad. Huwag mag-atubiling mag-click sa isang board sa ibaba na nais mong salihan at sumali na agad!", - "no_global_rules_info": "Walang global na mga patakaran, bawat board ay lubusang independiyente at ang may-ari nito ang nagdedesisyon kung paano / kung ito ay isasakdal.", + "5chan_description": "Ang 5chan ay isang serverless, adminless, decentralized at open-source na alternatibo sa 4chan kung saan maaaring lumikha at kriptograpikong magmamay-ari ang sinuman ng walang limitasyong boards. Lahat ng boards ay self-hosted ng kanilang mga may-ari, na nagpapatakbo ng <1>bitsocial nodes na kinokonekta ng mga user peer-to-peer. Lahat ng data ay text-only, kabilang ang mga link para sa pag-load ng media/embeds. Huwag mag-atubiling mag-click sa isang board sa ibaba na nais mong salihan at sumali na agad!", + "no_global_rules_info": "Maaari mong palaging kumonekta sa anumang board, ganap na P2P, walang makakapigil sa iyo. Ilagay lamang ang address nito sa search field sa itaas.", "boards": "mga board", "popular_threads": "Mga popular na thread", "options": "Mga Opsyon", diff --git a/public/translations/fr/default.json b/public/translations/fr/default.json index 7957d39a..165c9f5d 100644 --- a/public/translations/fr/default.json +++ b/public/translations/fr/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "Qu'est-ce que 5chan?", "go": "aller", "or": "ou", - "5chan_description": "5chan est une alternative décentralisée, sans serveur, sans administrateur à 4chan où n'importe quel pleb peut créer et posséder des forums illimités. Toutes les données proviennent du protocole <1>plebbit, elles sont toutes textuelles y compris les liens à partir desquels les médias sont intégrés, partagés de pair à pair. Les utilisateurs n'ont pas besoin de s'inscrire avant de participer à la communauté. N'hésitez pas à cliquer sur un forum ci-dessous qui vous intéresse et à vous joindre immédiatement !", - "no_global_rules_info": "Il n'y a pas de règles globales, chaque forum est complètement indépendant et son propriétaire décide comment/s'il doit le modérer.", + "5chan_description": "5chan est une alternative décentralisée, sans serveur, sans administrateur et open-source à 4chan où n'importe qui peut créer et posséder cryptographiquement des forums illimités. Tous les forums sont auto-hébergés par leurs propriétaires, qui exécutent des nœuds <1>bitsocial auxquels les utilisateurs se connectent peer-to-peer. Toutes les données sont uniquement du texte, y compris les liens pour charger les médias/embeds. N'hésitez pas à cliquer sur un forum ci-dessous qui vous intéresse et à vous joindre immédiatement !", + "no_global_rules_info": "Vous pouvez toujours vous connecter à n'importe quel forum, entièrement P2P, personne ne peut vous arrêter. Collez simplement son adresse dans le champ de recherche ci-dessus.", "boards": "forums", "popular_threads": "Fils populaires", "options": "Options", diff --git a/public/translations/he/default.json b/public/translations/he/default.json index 04c8591f..b8c22904 100644 --- a/public/translations/he/default.json +++ b/public/translations/he/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "מה זה פלבצ׳ן?", "go": "לך", "or": "או", - "5chan_description": "פלבצ'ן הוא אלטרנטיבה חדשה, ללא שרת, ללא מנהל, וללא מרכזית ל־4chan, בה כל pleb יכול ליצור ולבעוט בלוחות ללא הגבלה. כל הנתונים מגיעים מפרוטוקול <1>plebbit, הם כולם טקסט כולל קישורים מהם מוטמעת מדיה, משותפת פר אחד פר אחד. המשתמשים אינם צריכים להירשם לחשבון לפני השתתפותם בקהילה. נכון ללחוץ על לוח מטה שמעניין אתכם ולהצטרף מיידית!", - "no_global_rules_info": "אין כלל כללי, כל לוח הודעות הוא לחוד ובעליו מחליט איך/האם להודיע על זה.", + "5chan_description": "פלבצ'ן הוא אלטרנטיבה חדשה, ללא שרת, ללא מנהל, ללא מרכזית וקוד פתוח ל־4chan, בה כל אחד יכול ליצור ולבעוט בלוחות ללא הגבלה בצורה קריפטוגרפית. כל הלוחות מארחים את עצמם על ידי בעליהם, שמפעילים צמתים <1>bitsocial שמשתמשים מתחברים אליהם פר-לפר. כל הנתונים הם טקסט בלבד, כולל קישורים לטעינת מדיה/הטמעות. נכון ללחוץ על לוח מטה שמעניין אתכם ולהצטרף מיידית!", + "no_global_rules_info": "תמיד תוכל להתחבר לכל לוח, לגמרי P2P, אף אחד לא יכול לעצור אותך. פשוט הדבק את הכתובת שלו בשדה החיפוש למעלה.", "boards": "פורומים", "popular_threads": "אשכולות פופולריים", "options": "אפשרויות", diff --git a/public/translations/hi/default.json b/public/translations/hi/default.json index 75d1e8a9..d59d5148 100644 --- a/public/translations/hi/default.json +++ b/public/translations/hi/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "प्लेबचैन क्या है?", "go": "जाओ", "or": "या", - "5chan_description": "प्लेबचान एक सर्वरलेस, एडमिनलेस, डीसेंट्रलाइज्ड 4chan का विकल्प है जहां कोई भी प्लेब असीमित बोर्ड बना सकता है और मालिक हो सकता है। सभी डेटा प्रोटोकॉल <1>प्लेबिट से आता है, यह सभी पाठ है जिसमें मीडिया एम्बेड है, पीयर-टू-पीर साझा किया जाता है, सहित लिंक। उपयोगकर्ताओं को समुदाय में भाग लेने से पहले खाता रजिस्टर करने की आवश्यकता नहीं है। आपको जो भी बोर्ड नीचे पसंद है, उसपर क्लिक करें और तुरंत शामिल हों!", - "no_global_rules_info": "कोई वैश्विक नियम नहीं हैं, प्रत्येक मंच पूरी तरह से स्वतंत्र है और इसके मालिक यह तय करता है कि कैसे/क्या उसे नियंत्रित किया जाए।", + "5chan_description": "प्लेबचान एक सर्वरलेस, एडमिनलेस, डीसेंट्रलाइज्ड और ओपन-सोर्स 4chan का विकल्प है जहां कोई भी असीमित बोर्ड बना सकता है और क्रिप्टोग्राफिक रूप से मालिक हो सकता है। सभी बोर्ड उनके मालिकों द्वारा सेल्फ-होस्टेड हैं, जो <1>बिटसोशल नोड्स चलाते हैं जिनसे उपयोगकर्ता पीयर-टू-पीयर जुड़ते हैं। सभी डेटा केवल टेक्स्ट है, मीडिया/एम्बेड्स लोड करने के लिंक सहित। आपको जो भी बोर्ड नीचे पसंद है, उसपर क्लिक करें और तुरंत शामिल हों!", + "no_global_rules_info": "आप हमेशा किसी भी बोर्ड से जुड़ सकते हैं, पूरी तरह से P2P, कोई आपको रोक नहीं सकता। बस उसका पता ऊपर के खोज क्षेत्र में पेस्ट करें।", "boards": "मंच", "popular_threads": "लोकप्रिय थ्रेड्स", "options": "विकल्प", diff --git a/public/translations/hu/default.json b/public/translations/hu/default.json index 57e69622..f200dbdc 100644 --- a/public/translations/hu/default.json +++ b/public/translations/hu/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "Mi az a 5chan?", "go": "menni", "or": "vagy", - "5chan_description": "A 5chan egy szerver nélküli, admin nélküli, decentralizált 4chan alternatíva, ahol bármelyik pleb létrehozhat és birtokolhat korlátlan fórumokat. Az adatok mindegyike a <1>plebbit protokollból származik, minden szöveg, beleértve a hivatkozásokat is, amelyekből a média be van ágyazva, peer-to-peer megosztással. A felhasználóknak nem kell fiókot regisztrálniuk a közösség részvételéhez. Kattints bármelyik lent lévő fórumra, amely érdekel, és csatlakozz azonnal!", - "no_global_rules_info": "Nincsenek globális szabályok, minden fórum teljesen független, és tulajdonosa dönti el, hogyan/ha moderálja azt.", + "5chan_description": "A 5chan egy szerver nélküli, admin nélküli, decentralizált és nyílt forráskódú 4chan alternatíva, ahol bárki létrehozhat és kriptográfiai módon birtokolhat korlátlan fórumokat. Minden fórum a tulajdonosok által önállóan üzemeltetett, akik <1>bitsocial csomópontokat futtatnak, amelyekhez a felhasználók peer-to-peer kapcsolódnak. Minden adat csak szöveg, beleértve a médiák/beágyazások betöltéséhez szükséges hivatkozásokat. Kattints bármelyik lent lévő fórumra, amely érdekel, és csatlakozz azonnal!", + "no_global_rules_info": "Bármikor csatlakozhatsz bármely fórumhoz, teljesen P2P, senki sem tud megállítani. Egyszerűen illeszd be a címét a fenti keresőmezőbe.", "boards": "fórumok", "popular_threads": "Népszerű szálak", "options": "Beállítások", diff --git a/public/translations/id/default.json b/public/translations/id/default.json index c97bb3b8..b5e581b4 100644 --- a/public/translations/id/default.json +++ b/public/translations/id/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "Apa itu 5chan?", "go": "pergi", "or": "atau", - "5chan_description": "5chan adalah alternatif 4chan tanpa server, tanpa admin, terdesentralisasi di mana siapa pun pleb bisa membuat dan memiliki papan tak terbatas. Semua data berasal dari protokol <1>plebbit, semuanya teks termasuk tautan dari mana media disematkan, dibagikan peer-to-peer. Pengguna tidak perlu mendaftar akun sebelum berpartisipasi dalam komunitas. Jangan ragu untuk mengklik papan di bawah yang menarik bagi Anda dan bergabung segera!", - "no_global_rules_info": "Tidak ada aturan global, setiap papan adalah sepenuhnya independen dan pemiliknya yang menentukan bagaimana/apa yang dimoderasi.", + "5chan_description": "5chan adalah alternatif 4chan tanpa server, tanpa admin, terdesentralisasi dan open-source di mana siapa pun bisa membuat dan memiliki kriptografis papan tak terbatas. Semua papan di-host sendiri oleh pemiliknya, yang menjalankan node <1>bitsocial yang dihubungkan pengguna peer-to-peer. Semua data hanya teks, termasuk tautan untuk memuat media/embeds. Jangan ragu untuk mengklik papan di bawah yang menarik bagi Anda dan bergabung segera!", + "no_global_rules_info": "Anda selalu dapat terhubung ke papan mana pun, sepenuhnya P2P, tidak ada yang bisa menghentikan Anda. Cukup tempelkan alamatnya di bidang pencarian di atas.", "boards": "papan pesan", "popular_threads": "Benang populer", "options": "Opsi", diff --git a/public/translations/it/default.json b/public/translations/it/default.json index 6294c4da..9d522fb2 100644 --- a/public/translations/it/default.json +++ b/public/translations/it/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "Cos'è 5chan?", "go": "vai", "or": "oppure", - "5chan_description": "5chan è un'alternativa a 4chan decentralizzata, senza server, senza amministratori, in cui qualunque pleb può creare e possedere board illimitate. Tutti i dati provengono dal protocollo <1>plebbit, sono tutti testo inclusi i link da cui sono incorporati i media, condivisi peer-to-peer. Gli utenti non devono registrare un account prima di partecipare alla community. Sentiti libero di cliccare su una board qui sotto che ti interessa e unisciti subito!", - "no_global_rules_info": "Non ci sono regole globali, ogni board è completamente indipendente e il suo proprietario decide come/se moderarlo.", + "5chan_description": "5chan è un'alternativa a 4chan decentralizzata, senza server, senza amministratori e open-source, in cui chiunque può creare e possedere criptograficamente board illimitate. Tutte le board sono self-hosted dai loro proprietari, che eseguono nodi <1>bitsocial a cui gli utenti si connettono peer-to-peer. Tutti i dati sono solo testo, inclusi i link per caricare media/embeds. Sentiti libero di cliccare su una board qui sotto che ti interessa e unisciti subito!", + "no_global_rules_info": "Puoi sempre connetterti a qualsiasi board, completamente P2P, nessuno può fermarti. Basta incollare il suo indirizzo nel campo di ricerca sopra.", "boards": "board", "popular_threads": "Thread popolari", "options": "Opzioni", diff --git a/public/translations/ja/default.json b/public/translations/ja/default.json index b96d6539..380ebc5f 100644 --- a/public/translations/ja/default.json +++ b/public/translations/ja/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "プレブチャンとは何ですか?", "go": "行く", "or": "または", - "5chan_description": "5chan は、サーバーレス、管理者なし、分散型の 4chan の代替であり、どんな pleb も無制限のボードを作成して所有できます。すべてのデータは、<1>plebbit プロトコルから取得され、すべてのテキスト、埋め込まれるメディアが含まれるリンク、ピアツーピアで共有されます。ユーザーはコミュニティに参加する前にアカウントを登録する必要はありません。興味のあるボードをクリックして、すぐに参加してください!", - "no_global_rules_info": "グローバルなルールはありません、各掲示板は完全に独立しており、その所有者がそれをどのように/どのようにモデレートするかを決定します。", + "5chan_description": "5chan は、サーバーレス、管理者なし、分散型、オープンソースの 4chan の代替であり、誰でも無制限のボードを作成して暗号学的に所有できます。すべてのボードは所有者によってセルフホストされ、ユーザーがピアツーピアで接続する <1>bitsocial ノードを実行します。すべてのデータはテキストのみで、メディア/埋め込みを読み込むためのリンクを含みます。興味のあるボードをクリックして、すぐに参加してください!", + "no_global_rules_info": "いつでも任意のボードに接続できます、完全にP2P、誰もあなたを止めることはできません。上記の検索フィールドにそのアドレスを貼り付けるだけです。", "boards": "掲示板", "popular_threads": "人気のあるスレッド", "options": "オプション", diff --git a/public/translations/ko/default.json b/public/translations/ko/default.json index 865bce58..dc2f343d 100644 --- a/public/translations/ko/default.json +++ b/public/translations/ko/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "플레브찬이란 무엇인가요?", "go": "가기", "or": "또는", - "5chan_description": "5chan은 서버 없이, 관리자 없이, 분산형인 4chan 대안으로 어떤 pleb도 무제한의 게시판을 생성하고 소유할 수 있습니다. 모든 데이터는 <1>plebbit 프로토콜에서 나온 것으로, 모두 텍스트이며, 그 안에 미디어가 포함된 링크를 통해 peer-to-peer로 공유됩니다. 사용자는 커뮤니티에 참여하기 전에 계정을 등록할 필요가 없습니다. 관심 있는 아래의 게시판을 클릭하고 바로 참여해보세요!", - "no_global_rules_info": "전역 규칙이 없습니다. 각 게시판은 완전히 독립적이며 소유자가 어떻게/모디레이션할지를 결정합니다.", + "5chan_description": "5chan은 서버 없이, 관리자 없이, 분산형이고 오픈소스인 4chan 대안으로 누구나 무제한의 게시판을 생성하고 암호학적으로 소유할 수 있습니다. 모든 게시판은 소유자에 의해 자체 호스팅되며, 사용자가 피어투피어로 연결하는 <1>bitsocial 노드를 실행합니다. 모든 데이터는 텍스트만이며, 미디어/임베드를 로드하는 링크를 포함합니다. 관심 있는 아래의 게시판을 클릭하고 바로 참여해보세요!", + "no_global_rules_info": "언제든지 어떤 게시판이든 연결할 수 있습니다, 완전히 P2P, 아무도 당신을 막을 수 없습니다. 위의 검색 필드에 주소를 붙여넣기만 하면 됩니다.", "boards": "게시판", "popular_threads": "인기 있는 스레드", "options": "옵션", diff --git a/public/translations/mr/default.json b/public/translations/mr/default.json index 355b3071..10e169a3 100644 --- a/public/translations/mr/default.json +++ b/public/translations/mr/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "प्लेबचॅन काय आहे?", "go": "जा", "or": "किव्हा", - "5chan_description": "प्लेबचॅन हा सर्व्हरलेस, एडमिनलेस, डीसेंट्रलाइझ्ड ४चॅनचा पर्याय आहे ज्यात कोणत्याही प्लेबला अमित बोर्ड तयार करून ठेवू शकतात. सर्व डेटा <1>प्लेबिट प्रोटोकॉलपासून आला आहे, ते सर्व पाठ आहेत, त्यातून मीडिया एम्बेड केला जातो, पीयर-ते-पीयर सामायिक केला जातो. वापरकर्त्यांना समुदायात सहभाग घेण्यापूर्वी खाते नोंदविण्याची आवश्यकता नाही. आपल्याला आवडता असलेला खालील बोर्ड क्लिक करून प्रवेश करा आणि लवकरच ज्वाइन करा!", - "no_global_rules_info": "कोणत्याही जागतिक कायद्या नाहीत, प्रत्येक बोर्ड पूर्णपणे स्वतंत्र आहे आणि त्याचा मालक कसा/आणि कशा प्रकारे याची नियमन करावी हे त्याच्याकडून ठरतो.", + "5chan_description": "प्लेबचॅन हा सर्व्हरलेस, एडमिनलेस, डीसेंट्रलाइझ्ड आणि ओपन-सोर्स ४चॅनचा पर्याय आहे ज्यात कोणीही अमित बोर्ड तयार करून क्रिप्टोग्राफिकली मालकी घेऊ शकतो. सर्व बोर्ड त्यांच्या मालकांकडून सेल्फ-होस्टेड असतात, जे <1>bitsocial नोड्स चालवतात ज्यांना वापरकर्ते पीयर-टू-पीयर कनेक्ट करतात. सर्व डेटा फक्त टेक्स्ट आहे, मीडिया/एम्बेड्स लोड करण्यासाठी लिंक्ससह. आपल्याला आवडता असलेला खालील बोर्ड क्लिक करून प्रवेश करा आणि लगेच ज्वाइन करा!", + "no_global_rules_info": "तुम्ही नेहमी कोणत्याही बोर्डशी कनेक्ट होऊ शकता, पूर्णपणे P2P, कोणीही तुम्हाला थांबवू शकत नाही. फक्त वरील शोध फील्डमध्ये त्याचा पत्ता पेस्ट करा.", "boards": "संदेश फलक", "popular_threads": "लोकप्रिय थ्रेड्स", "options": "पर्याय", diff --git a/public/translations/nl/default.json b/public/translations/nl/default.json index 2bd30115..a73244c9 100644 --- a/public/translations/nl/default.json +++ b/public/translations/nl/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "Wat is 5chan?", "go": "gaan", "or": "of", - "5chan_description": "5chan is een serverloos, adminloos, gedecentraliseerd alternatief voor 4chan waar elke pleb onbeperkte forums kan maken en bezitten. Alle gegevens komen van het <1>plebbit-protocol, het is allemaal tekst inclusief links waaruit media is ingesloten, gedeeld peer-to-peer. Gebruikers hoeven geen account te registreren voordat ze deelnemen aan de community. Voel je vrij om op een forum hieronder te klikken dat je interesseert en spring er meteen in!", - "no_global_rules_info": "Er zijn geen wereldwijde regels, elk forum is volledig onafhankelijk en de eigenaar beslist hoe/wel of niet te modereren.", + "5chan_description": "5chan is een serverloos, adminloos, gedecentraliseerd en open-source alternatief voor 4chan waar iedereen onbeperkte forums kan maken en cryptografisch bezitten. Alle forums worden zelf gehost door hun eigenaren, die <1>bitsocial nodes draaien waarmee gebruikers peer-to-peer verbinden. Alle gegevens zijn alleen tekst, inclusief links voor het laden van media/embeds. Voel je vrij om op een forum hieronder te klikken dat je interesseert en spring er meteen in!", + "no_global_rules_info": "Je kunt altijd verbinden met elk forum, volledig P2P, niemand kan je stoppen. Plak gewoon het adres in het zoekveld hierboven.", "boards": "forums", "popular_threads": "Populaire threads", "options": "Opties", diff --git a/public/translations/no/default.json b/public/translations/no/default.json index 6c1e0b31..6a61f881 100644 --- a/public/translations/no/default.json +++ b/public/translations/no/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "Hva er 5chan?", "go": "gå", "or": "eller", - "5chan_description": "5chan er et serverløst, adminløst, desentralisert alternativ til 4chan der hvilken som helst pleb kan opprette og eie ubegrensede fora. Alle data kommer fra protokollen <1>plebbit, det er all tekst inkludert lenker fra hvilke medier er innebygd, delt peer-to-peer. Brukere trenger ikke å registrere en konto før de deltar i fellesskapet. Ikke nøl med å klikke på et forum nedenfor som interesserer deg og bli med en gang!", - "no_global_rules_info": "Det er ingen globale regler, hvert forum er helt uavhengig, og eieren bestemmer hvordan/om å moderere det.", + "5chan_description": "5chan er et serverløst, adminløst, desentralisert og open-source alternativ til 4chan der hvem som helst kan opprette og kryptografisk eie ubegrensede fora. Alle fora er selv-hostet av sine eiere, som kjører <1>bitsocial noder som brukere kobler til peer-to-peer. Alle data er bare tekst, inkludert lenker for å laste medier/embeds. Ikke nøl med å klikke på et forum nedenfor som interesserer deg og bli med en gang!", + "no_global_rules_info": "Du kan alltid koble til hvilket som helst forum, fullt P2P, ingen kan stoppe deg. Lim bare adressen i søkefeltet ovenfor.", "boards": "fora", "popular_threads": "Populære tråder", "options": "Alternativer", diff --git a/public/translations/pl/default.json b/public/translations/pl/default.json index c2237058..be1632a8 100644 --- a/public/translations/pl/default.json +++ b/public/translations/pl/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "Co to jest 5chan?", "go": "iść", "or": "lub", - "5chan_description": "5chan to serwer, admin, zdecentralizowana alternatywa dla 4chan, gdzie każdy pleb może tworzyć i posiadać nieograniczone fora. Wszystkie dane pochodzą z protokołu <1>plebbit, są to same teksty, w tym linki, z których osadzone są media, udostępniane w trybie peer-to-peer. Użytkownicy nie muszą rejestrować konta przed uczestnictwem w społeczności. Śmiało kliknij na forum poniżej, które Cię interesuje, i dołącz!", - "no_global_rules_info": "Nie ma globalnych zasad, każda tablica jest całkowicie niezależna, a jej właściciel decyduje, w jaki sposób/czy ją moderować.", + "5chan_description": "5chan to bezserwerowa, bezadministracyjna, zdecentralizowana i open-source alternatywa dla 4chan, gdzie każdy może tworzyć i kryptograficznie posiadać nieograniczone fora. Wszystkie fora są hostowane przez ich właścicieli, którzy uruchamiają węzły <1>bitsocial, z którymi użytkownicy łączą się peer-to-peer. Wszystkie dane to tylko tekst, w tym linki do ładowania mediów/embeds. Śmiało kliknij na forum poniżej, które Cię interesuje, i dołącz!", + "no_global_rules_info": "Zawsze możesz połączyć się z dowolnym forum, w pełni P2P, nikt nie może cię zatrzymać. Po prostu wklej jego adres w polu wyszukiwania powyżej.", "boards": "fora", "popular_threads": "Popularne wątki", "options": "Opcje", diff --git a/public/translations/pt/default.json b/public/translations/pt/default.json index 6f91b3f1..8b5a467c 100644 --- a/public/translations/pt/default.json +++ b/public/translations/pt/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "O que é 5chan?", "go": "vai", "or": "ou", - "5chan_description": "5chan é uma alternativa descentralizada, sem servidor, sem administradores ao 4chan onde qualquer plebeu pode criar e possuir fóruns ilimitados. Todos os dados vêm do protocolo <1>plebbit, são todos textos incluindo links dos quais a mídia é incorporada, compartilhada peer-to-peer. Os usuários não precisam se registrar antes de participar da comunidade. Sinta-se à vontade para clicar em um fórum abaixo que lhe interesse e participar imediatamente!", - "no_global_rules_info": "Não existem regras globais, cada fórum é completamente independente e o seu proprietário decide como/se o moderar.", + "5chan_description": "5chan é uma alternativa descentralizada, sem servidor, sem administradores e de código aberto ao 4chan onde qualquer pessoa pode criar e possuir criptograficamente fóruns ilimitados. Todos os fóruns são auto-hospedados por seus proprietários, que executam nós <1>bitsocial aos quais os usuários se conectam peer-to-peer. Todos os dados são apenas texto, incluindo links para carregar mídia/embeds. Sinta-se à vontade para clicar em um fórum abaixo que lhe interesse e participar imediatamente!", + "no_global_rules_info": "Você sempre pode se conectar a qualquer fórum, completamente P2P, ninguém pode impedi-lo. Simplesmente cole o endereço no campo de pesquisa acima.", "boards": "fóruns", "popular_threads": "Tópicos populares", "options": "Opções", diff --git a/public/translations/ro/default.json b/public/translations/ro/default.json index 457b9d64..21a6b658 100644 --- a/public/translations/ro/default.json +++ b/public/translations/ro/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "Ce este 5chan?", "go": "du-te", "or": "sau", - "5chan_description": "5chan este o alternativă descentralizată, fără server, fără administratori la 4chan, unde orice pleb poate crea și deține forumuri nelimitate. Toate datele vin de la protocolul <1>plebbit, sunt toate text inclusiv linkuri din care sunt încorporate media, distribuite peer-to-peer. Utilizatorii nu trebuie să-și înregistreze un cont înainte de a participa la comunitate. Nu ezitați să faceți clic pe un forum de mai jos care vă interesează și să vă alăturați imediat!", - "no_global_rules_info": "Nu există reguli globale, fiecare forum este complet independent și proprietarul său decide cum/sau dacă să îl modereze.", + "5chan_description": "5chan este o alternativă descentralizată, fără server, fără administratori și open-source la 4chan, unde oricine poate crea și deține criptografic forumuri nelimitate. Toate forumurile sunt auto-găzduite de proprietarii lor, care rulează noduri <1>bitsocial la care utilizatorii se conectează peer-to-peer. Toate datele sunt doar text, inclusiv linkuri pentru încărcarea mediilor/embeds. Nu ezitați să faceți clic pe un forum de mai jos care vă interesează și să vă alăturați imediat!", + "no_global_rules_info": "Poți să te conectezi întotdeauna la orice forum, complet P2P, nimeni nu te poate opri. Pur și simplu lipește adresa în câmpul de căutare de mai sus.", "boards": "forumuri", "popular_threads": "Threaduri populare", "options": "Opțiuni", diff --git a/public/translations/ru/default.json b/public/translations/ru/default.json index 7d3cd0fb..4bea80c4 100644 --- a/public/translations/ru/default.json +++ b/public/translations/ru/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "Что такое плебчан?", "go": "идти", "or": "или", - "5chan_description": "5chan - это безсерверная, безадминистративная, децентрализованная альтернатива 4chan, где любой плеб может создавать и владеть неограниченным количеством форумов. Все данные поступают из протокола <1>plebbit, это весь текст, включая ссылки, из которых встроены медиа, и распространяются по сети peer-to-peer. Пользователи не должны регистрировать учетную запись перед участием в сообществе. Не стесняйтесь нажимать на форум ниже, который вас интересует, и присоединяйтесь немедленно!", - "no_global_rules_info": "Нет глобальных правил, каждая доска полностью независима, и ее владелец решает, как/если ее модерировать.", + "5chan_description": "5chan - это безсерверная, безадминистративная, децентрализованная и открытая альтернатива 4chan, где любой может создавать и криптографически владеть неограниченным количеством форумов. Все форумы само-хостятся их владельцами, которые запускают узлы <1>bitsocial, к которым пользователи подключаются peer-to-peer. Все данные только текстовые, включая ссылки для загрузки медиа/встроек. Не стесняйтесь нажимать на форум ниже, который вас интересует, и присоединяйтесь немедленно!", + "no_global_rules_info": "Вы всегда можете подключиться к любому форуму, полностью P2P, никто не может вас остановить. Просто вставьте адрес в поле поиска выше.", "boards": "форумы", "popular_threads": "Популярные темы", "options": "Опции", diff --git a/public/translations/sq/default.json b/public/translations/sq/default.json index ff4e8ef8..401b7c52 100644 --- a/public/translations/sq/default.json +++ b/public/translations/sq/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "Çfarë është 5chan?", "go": "shko", "or": "ose", - "5chan_description": "5chan është një alternativë e 4chan decentralizuar, pa server, pa administratorë, ku çdo pleb mund të krijojë dhe të posedojë forume të pakufizuara. Të gjitha të dhënat vijnë nga protokoli <1>plebbit, janë të gjitha tekste duke përfshirë lidhjet nga të cilat mediat janë të mbështjellë, ndarë peer-to-peer. Përdoruesit nuk duhet të regjistrojnë një llogari para se të marrin pjesë në komunitet. Mos ngurroni të klikoni në një forum më poshtë që ju intereson dhe të bashkoheni menjëherë!", - "no_global_rules_info": "Nuk ka rregulla globale, çdo forum është plotësisht i pavarur dhe pronari i tij vendos se si/nëse ta moderohet.", + "5chan_description": "5chan është një alternativë e 4chan decentralizuar, pa server, pa administratorë dhe me kod të hapur, ku kushdo mund të krijojë dhe të posedojë kriptografikisht forume të pakufizuara. Të gjitha forumet janë vetë-hostuar nga pronarët e tyre, të cilët drejtojnë nyje <1>bitsocial me të cilat përdoruesit lidhen peer-to-peer. Të gjitha të dhënat janë vetëm tekst, duke përfshirë lidhjet për ngarkimin e media/embeds. Mos ngurroni të klikoni në një forum më poshtë që ju intereson dhe të bashkoheni menjëherë!", + "no_global_rules_info": "Mund të lidheni gjithmonë me çdo forum, plotësisht P2P, askush nuk mund t'ju ndalojë. Thjesht ngjisni adresën në fushën e kërkimit më sipër.", "boards": "forume", "popular_threads": "Threadet e njohur", "options": "Mundësitë", diff --git a/public/translations/sv/default.json b/public/translations/sv/default.json index bad70940..913d6c3f 100644 --- a/public/translations/sv/default.json +++ b/public/translations/sv/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "Vad är 5chan?", "go": "gå", "or": "eller", - "5chan_description": "5chan är ett serverlöst, adminlöst, decentraliserat alternativ till 4chan där vilken pleb som helst kan skapa och äga obegränsade forum. Alla data kommer från protokollet <1>plebbit, det är all text inklusive länkar från vilka media bäddas in, delat peer-to-peer. Användare behöver inte registrera ett konto innan de deltar i gemenskapen. Tveka inte att klicka på ett forum nedan som intresserar dig och gå med direkt!", - "no_global_rules_info": "Det finns inga globala regler, varje forum är helt oberoende och dess ägare bestämmer hur/om att moderera den.", + "5chan_description": "5chan är ett serverlöst, adminlöst, decentraliserat och öppen källkod alternativ till 4chan där vem som helst kan skapa och kryptografiskt äga obegränsade forum. Alla forum är själv-hostade av sina ägare, som kör <1>bitsocial noder som användare ansluter till peer-to-peer. Alla data är endast text, inklusive länkar för att ladda media/embeds. Tveka inte att klicka på ett forum nedan som intresserar dig och gå med direkt!", + "no_global_rules_info": "Du kan alltid ansluta till vilket forum som helst, helt P2P, ingen kan stoppa dig. Klistra bara in adressen i sökfältet ovan.", "boards": "forum", "popular_threads": "Populära trådar", "options": "Alternativ", diff --git a/public/translations/te/default.json b/public/translations/te/default.json index 33d09c47..b349c1c3 100644 --- a/public/translations/te/default.json +++ b/public/translations/te/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "ప్లెబ్‌చాన్ ఏమిటి?", "go": "వెళ్లు", "or": "లేదా", - "5chan_description": "ప్లెబ్చాన్ ఒక సర్వర్ లేని, అడ్మిన్ లేని, డిసెంట్రలైజ్‌డ్ 4చాన్ వైకల్పికం దీనిలో ఏ ప్లెబ్ యొక్క సర్వర్లేస్, అడ్మిన్‌లేస్, అసంబద్ధ బోర్డులు సృష్టించవచ్చు. అన్ని డేటా <1>ప్లెబిట్ ప్రోటోకాల్‌నుండి వస్తాయి, అది అన్ని లింక్‌లు జాబితానుండి మీడియా ఎంబెడ్ చేయబడినపుడు ఉంటుంది, అది పీయర్‌టు‌పీయర్ గా పంపబడుతుంది. వాడుకరు కమ్యూనిటీలో పాల్గొనుటకు ముందు ఎకౌంటు నమోదు చేయాల్సిన అవసరం లేదు. మీకు ఆసక్తి కలిగించే బోర్డుకు క్లిక్ చేసి ప్రత్యక్షంగా చేరవచ్చు!", - "no_global_rules_info": "గ్లోబల్ నియమాలు లేవు, ప్రతి బోర్డు పూర్తిగా స్వతంత్రంగా ఉంటుంది మరియు అది మాలిక ఏమి/అయితే అని నిర్వచించండి.", + "5chan_description": "5chan ఒక సర్వర్‌లేని, అడ్మిన్‌లేని, డిసెంట్రలైజ్‌డ్ మరియు ఓపెన్-సోర్స్ 4chan వైకల్పికం, ఇక్కడ ఎవరైనా అపరిమిత బోర్డ్‌లను సృష్టించి క్రిప్టోగ్రాఫిక్‌గా కలిగి ఉండవచ్చు. అన్ని బోర్డ్‌లు వాటి యజమానులచే సెల్ఫ్-హోస్ట్ చేయబడతాయి, వారు <1>bitsocial నోడ్‌లను నడుపుతారు, వీటికి వినియోగదారులు పీయర్-టు-పీయర్ కనెక్ట్ అవుతారు. అన్ని డేటా టెక్స్ట్ మాత్రమే, మీడియా/ఎంబెడ్‌లను లోడ్ చేయడానికి లింక్‌లతో సహా. మీకు ఆసక్తి కలిగించే క్రింది బోర్డ్‌పై క్లిక్ చేసి వెంటనే చేరండి!", + "no_global_rules_info": "మీరు ఎప్పుడైనా ఏదైనా బోర్డ్‌కు కనెక్ట్ అవ్వవచ్చు, పూర్తిగా P2P, మిమ్మల్ని ఎవరూ ఆపలేరు. దాని చిరునామాను పైన ఉన్న శోధన ఫీల్డ్‌లో అతికించండి.", "boards": "సందేశ బోర్డులు", "popular_threads": "జనప్రియమైన థ్రెడ్‌లు", "options": "ఎంపికలు", diff --git a/public/translations/th/default.json b/public/translations/th/default.json index a78fa7d9..18362f64 100644 --- a/public/translations/th/default.json +++ b/public/translations/th/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "พล็อกไซต์คืออะไร?", "go": "ไป", "or": "หรือ", - "5chan_description": "5chan เป็นทางเลือกที่ไม่มีเซิร์ฟเวอร์ แอดมินไม่มี แบบกระจายสำหรับ 4chan ที่ใครก็สามารถสร้างและเป็นเจ้าของบอร์ดได้ไม่จำกัด ข้อมูลทั้งหมดมาจากโปรโตคอล <1>plebbit มันเป็นข้อความทั้งหมดที่รวมถึงลิงก์จากซึ่งมีสื่อที่ฝังอยู่ และแบ่งปันแบบ peer-to-peer ผู้ใช้ไม่จำเป็นต้องลงทะเบียนบัญชีก่อนที่จะเข้าร่วมชุมชน อย่าลังเลที่จะคลิกบอร์ดด้านล่างที่คุณสนใจและเข้าร่วมทันที!", - "no_global_rules_info": "ไม่มีกฎทั่วโลกที่มีอยู่, แต่ละกระดานเป็นอิสระและเจ้าของกำหนดว่าจะ/จะไม่ต้องควบคุมมันอย่างไร", + "5chan_description": "5chan เป็นทางเลือกที่ไม่มีเซิร์ฟเวอร์ ไม่มีแอดมิน แบบกระจายอำนาจ และโอเพนซอร์สสำหรับ 4chan ที่ใครก็สามารถสร้างและเป็นเจ้าของบอร์ดได้ไม่จำกัดด้วยการเข้ารหัส บอร์ดทั้งหมดถูกโฮสต์เองโดยเจ้าของผู้ซึ่งรันโหนด <1>bitsocial ที่ผู้ใช้เชื่อมต่อแบบ peer-to-peer ข้อมูลทั้งหมดเป็นข้อความเท่านั้น รวมถึงลิงก์สำหรับโหลดสื่อ/embeds อย่าลังเลที่จะคลิกบอร์ดด้านล่างที่คุณสนใจและเข้าร่วมทันที!", + "no_global_rules_info": "คุณสามารถเชื่อมต่อกับบอร์ดใดก็ได้เสมอ แบบ P2P เต็มรูปแบบ ไม่มีใครสามารถหยุดคุณได้ เพียงแค่วางที่อยู่ของมันในช่องค้นหาด้านบน", "boards": "กระดานข่าว", "popular_threads": "กระทู้ยอดนิยม", "options": "ตัวเลือก", diff --git a/public/translations/tr/default.json b/public/translations/tr/default.json index ae79fa17..81878487 100644 --- a/public/translations/tr/default.json +++ b/public/translations/tr/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "5chan nedir?", "go": "git", "or": "veya", - "5chan_description": "5chan, herhangi bir plebin sınırsız tahtalar oluşturabileceği ve sahip olabileceği sunucusuz, yöneticisiz, merkezi olmayan 4chan alternatifidir. Tüm veriler, tüm metinler ve yerleştirilen medyaların içinde bulunduğu bağlantılar da dahil olmak üzere <1>plebbit protokolünden gelir ve eşler arası olarak paylaşılır. Kullanıcıların topluluğa katılmadan önce bir hesap kaydetmelerine gerek yoktur. Sizi ilgilendiren aşağıdaki tahtaya tıklayın ve hemen katılın!", - "no_global_rules_info": "Küresel kurallar yoktur, her forum tamamen bağımsızdır ve sahibi nasıl/modere edileceğine karar verir.", + "5chan_description": "5chan, herkesin sınırsız forum oluşturabileceği ve kriptografik olarak sahip olabileceği sunucusuz, yöneticisiz, merkezi olmayan ve açık kaynaklı bir 4chan alternatifidir. Tüm forumlar sahipleri tarafından kendi kendine barındırılır ve kullanıcıların peer-to-peer bağlandığı <1>bitsocial düğümlerini çalıştırırlar. Tüm veriler yalnızca metindir, medya/embeds yüklemek için bağlantılar dahil. İlgilendiğiniz aşağıdaki foruma tıklamaktan çekinmeyin ve hemen katılın!", + "no_global_rules_info": "Her zaman herhangi bir foruma bağlanabilirsiniz, tamamen P2P, kimse sizi durduramaz. Adresini yukarıdaki arama alanına yapıştırmanız yeterli.", "boards": "forumlar", "popular_threads": "Popüler konular", "options": "Seçenekler", diff --git a/public/translations/uk/default.json b/public/translations/uk/default.json index 3a153ee1..00401942 100644 --- a/public/translations/uk/default.json +++ b/public/translations/uk/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "Що таке Плебчан?", "go": "йди", "or": "або", - "5chan_description": "5chan - це безсерверний, безадміністративний, децентралізований альтернативний 4chan, де будь-який плеб може створити та володіти необмеженою кількістю форумів. Усі дані надходять з протоколу <1>plebbit, це весь текст, включаючи посилання, з яких вбудовані медіа, та розповсюджуються у режимі peer-to-peer. Користувачам не потрібно реєструвати обліковий запис перед участю в спільноті. Не соромтеся натискати на дошку нижче, яка цікавить вас, і приєднуйтеся одразу!", - "no_global_rules_info": "Немає глобальних правил, кожна дошка цілком незалежна, і її власник вирішує, як/чи модерувати її.", + "5chan_description": "5chan - це безсерверний, безадміністративний, децентралізований та відкритий альтернативний 4chan, де будь-хто може створити та криптографічно володіти необмеженою кількістю форумів. Усі форуми само-хостяться їх власниками, які запускають вузли <1>bitsocial, до яких користувачі підключаються peer-to-peer. Усі дані лише текстові, включаючи посилання для завантаження медіа/embeds. Не соромтеся натискати на форум нижче, який вас цікавить, і приєднуйтеся одразу!", + "no_global_rules_info": "Ви завжди можете підключитися до будь-якого форуму, повністю P2P, ніхто не може вас зупинити. Просто вставте його адресу в поле пошуку вище.", "boards": "форуми", "popular_threads": "Популярні теми", "options": "Опції", diff --git a/public/translations/ur/default.json b/public/translations/ur/default.json index 94a9c667..1149d892 100644 --- a/public/translations/ur/default.json +++ b/public/translations/ur/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "پلیبچان کیا ہے؟", "go": "جا", "or": "یا", - "5chan_description": "پلیبچان ایک سرور کم، ایڈمن کم، غیر مرکزی 4chan کی بدلتا ہے جہاں ہر کوئی پلیب بے حد بورڈ بنا سکتا ہے اور مالک ہو سکتا ہے۔ تمام ڈیٹا پروٹوکول <1>پلیبٹ سے آتا ہے، یہ سب ٹیکسٹ ہے جس میں میڈیا شامل ہے، پیر-سے-پیر اشتراک کیا گیا ہے۔ صارفین کو بہمت شامل ہونے سے پہلے اکاؤنٹ رجسٹر کرانے کی ضرورت نہیں ہے۔ نیچے کسی بھی بورڈ پر کلک کریں جو آپ کو دلچسپ لگتا ہے اور فوراً شامل ہوں!", - "no_global_rules_info": "کوئی عالمی اصول نہیں ہیں، ہر بورڈ مکمل طور پر آزاد ہے اور اس کا مالک یہ فیصلہ کرتا ہے کہ وہ کیسے/کیا اسے موڈریٹ کرے گا۔", + "5chan_description": "5chan ایک سرور کے بغیر، ایڈمن کے بغیر، غیر مرکزی اور اوپن سورس 4chan کا متبادل ہے جہاں کوئی بھی لامحدود بورڈز بنا سکتا ہے اور کریپٹوگرافک طور پر ان کا مالک ہو سکتا ہے۔ تمام بورڈز ان کے مالکان کے ذریعے خود میزبانی کیے جاتے ہیں، جو <1>bitsocial نوڈز چلاتے ہیں جن سے صارفین پیر-ٹو-پیر کنیکٹ ہوتے ہیں۔ تمام ڈیٹا صرف ٹیکسٹ ہے، میڈیا/ایمبیڈز لوڈ کرنے کے لیے لنکس سمیت۔ آپ کو جو بورڈ دلچسپ لگے اس پر کلک کریں اور فوراً شامل ہوں!", + "no_global_rules_info": "آپ ہمیشہ کسی بھی بورڈ سے کنیکٹ ہو سکتے ہیں، مکمل طور پر P2P، کوئی آپ کو روک نہیں سکتا۔ بس اس کا پتہ اوپر والے سرچ فیلڈ میں پیسٹ کریں۔", "boards": "پیغام بورڈز", "popular_threads": "مقبول تھریڈز", "options": "اختیارات", diff --git a/public/translations/vi/default.json b/public/translations/vi/default.json index a6b9ec5a..8210cd02 100644 --- a/public/translations/vi/default.json +++ b/public/translations/vi/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "5chan là gì?", "go": "đi", "or": "hoặc", - "5chan_description": "5chan là một lựa chọn phi tập trung, không có máy chủ, không có quản trị viên cho 4chan nơi bất kỳ pleb nào cũng có thể tạo và sở hữu các bảng không giới hạn. Tất cả dữ liệu đều đến từ giao thức <1>plebbit, đó là toàn bộ văn bản bao gồm cả liên kết từ đó các phương tiện được nhúng, được chia sẻ ngang hàng. Người dùng không cần đăng ký tài khoản trước khi tham gia cộng đồng. Hãy thoải mái nhấp vào một bảng dưới đây mà bạn quan tâm và tham gia ngay!", - "no_global_rules_info": "Không có quy tắc toàn cầu, mỗi diễn đàn là hoàn toàn độc lập và chủ sở hữu quyết định cách/nếu muốn kiểm duyệt nó.", + "5chan_description": "5chan là một lựa chọn thay thế phi tập trung, không có máy chủ, không có quản trị viên và mã nguồn mở cho 4chan nơi bất kỳ ai cũng có thể tạo và sở hữu mã hóa các diễn đàn không giới hạn. Tất cả các diễn đàn được tự lưu trữ bởi chủ sở hữu của chúng, những người chạy các nút <1>bitsocial mà người dùng kết nối peer-to-peer. Tất cả dữ liệu chỉ là văn bản, bao gồm các liên kết để tải phương tiện/embeds. Hãy thoải mái nhấp vào một diễn đàn dưới đây mà bạn quan tâm và tham gia ngay!", + "no_global_rules_info": "Bạn luôn có thể kết nối với bất kỳ diễn đàn nào, hoàn toàn P2P, không ai có thể ngăn cản bạn. Chỉ cần dán địa chỉ của nó vào trường tìm kiếm ở trên.", "boards": "diễn đàn", "popular_threads": "Chủ đề phổ biến", "options": "Tùy chọn", diff --git a/public/translations/zh/default.json b/public/translations/zh/default.json index 43e0c4f7..82ed19a1 100644 --- a/public/translations/zh/default.json +++ b/public/translations/zh/default.json @@ -2,8 +2,8 @@ "what_is_5chan": "5chan是什么?", "go": "去", "or": "或者", - "5chan_description": "5chan是4chan的无服务器,无管理员,去中心化替代品,任何平民都可以创建和拥有无限的板块。所有数据都来自<1>plebbit协议,所有内容都是文本,包括嵌入媒体的链接,采用对等方式共享。用户在参与社区之前无需注册帐户。随时点击下面您感兴趣的板块,立即加入吧!", - "no_global_rules_info": "没有全球规则,每个板块都是完全独立的,其所有者决定如何/是否对其进行审查。", + "5chan_description": "5chan是4chan的无服务器、无管理员、去中心化和开源的替代品,任何人都可以创建和加密拥有无限的论坛。所有论坛都由其所有者自托管,他们运行<1>bitsocial节点,用户以点对点方式连接。所有数据都是纯文本,包括加载媒体/嵌入的链接。随时点击下面您感兴趣的论坛,立即加入吧!", + "no_global_rules_info": "您始终可以连接到任何论坛,完全P2P,没有人能阻止您。只需将其地址粘贴到上面的搜索字段中即可。", "boards": "论坛", "popular_threads": "热门主题", "options": "选项", From d82bb58c3eebed3db6b115cdd21abbcb2a75adff Mon Sep 17 00:00:00 2001 From: plebeius Date: Sat, 18 Oct 2025 22:49:09 +0200 Subject: [PATCH 11/15] feat: add script to automate translations --- package.json | 4 +- scripts/update-translations.js | 265 +++++++++++++++++++++++++++++++++ 2 files changed, 268 insertions(+), 1 deletion(-) create mode 100644 scripts/update-translations.js diff --git a/package.json b/package.json index d0a23341..5c0663e7 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,9 @@ "android:build:icons": "cordova-res android --skip-config --copy --resources /tmp/plebbit-react-android-icons --icon-source ./android/icons/icon.png --splash-source ./android/icons/splash.png --icon-foreground-source ./android/icons/icon-foreground.png --icon-background-source '#ffffee'", "prettier": "prettier {src,electron}/**/*.{js,ts,tsx} --write", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0", - "android:build": "yarn build && npx cap sync android && npx cap run android" + "android:build": "yarn build && npx cap sync android && npx cap run android", + "i18n:update": "node scripts/update-translations.js", + "i18n:update:dry": "node scripts/update-translations.js --dry" }, "browserslist": { "production": [ diff --git a/scripts/update-translations.js b/scripts/update-translations.js new file mode 100644 index 00000000..c5b0353f --- /dev/null +++ b/scripts/update-translations.js @@ -0,0 +1,265 @@ +#!/usr/bin/env node + +/* + Translation updater CLI + + Usage examples: + - Copy value of a key from en to all languages (dry run): + node scripts/update-translations.js --key 5chan_description --from en --dry + + - Set a specific value for all languages (including en): + node scripts/update-translations.js --key no_global_rules_info --value "Your value" --include-en --write + + - Use a mapping file with per-language values (JSON object of { langCode: value, ... }): + node scripts/update-translations.js --key my_key --map ./path/to/map.json --write + + - Delete a key from all languages (dry run): + node scripts/update-translations.js --key obsolete_key --delete --dry + + - Delete a key from all languages (actually delete): + node scripts/update-translations.js --key obsolete_key --delete --write + + Flags: + --key Required. The translation key to update/delete. + --delete Delete the key from all languages instead of updating. + --from Source language to read value from if --value/--map are not provided (default: en). + --value Literal value to set for targets (use with caution, no auto-translate). + --map JSON file mapping of { langCode: string } to set per language. + --only Comma-separated list of language codes to update (e.g. "es,fr,it"). + --exclude Comma-separated list of language codes to skip. + --include-en Include the source language (e.g. en) in updates. + --dry|--dry-run Show changes but do not write files (default). + --write Actually write the files. +*/ + +import fs from 'fs/promises' +import path from 'path' + +function parseArgs(argv) { + const out = { flags: new Set() } + for (let i = 0; i < argv.length; i++) { + const arg = argv[i] + const next = i + 1 < argv.length ? argv[i + 1] : undefined + if (arg.startsWith('--')) { + if (['--dry', '--dry-run', '--write', '--include-en', '--delete'].includes(arg)) { + out.flags.add(arg) + continue + } + const key = arg + let value + if (next && !next.startsWith('--')) { + value = next + i++ + } + out[key] = value ?? '' + } + } + return out +} + +function usage(exitCode = 1, msg) { + if (msg) console.error(msg) + console.error( + 'Usage: node scripts/update-translations.js --key [--delete] [--from ] [--value | --map ] [--only ] [--exclude ] [--include-en] [--dry|--write]' + ) + process.exit(exitCode) +} + +async function fileExists(p) { + try { + await fs.access(p) + return true + } catch { + return false + } +} + +function parseCsv(val) { + if (!val) return new Set() + return new Set( + val + .split(',') + .map((s) => s.trim()) + .filter(Boolean) + ) +} + +async function loadJson(filePath) { + const text = await fs.readFile(filePath, 'utf8') + try { + return JSON.parse(text) + } catch (err) { + throw new Error(`Failed to parse JSON: ${filePath}: ${err.message}`) + } +} + +async function writeJson(filePath, data) { + const json = JSON.stringify(data, null, 2) + '\n' + await fs.writeFile(filePath, json, 'utf8') +} + +async function handleDelete(key, translationsRoot, only, exclude, dryRun, write) { + const dirents = await fs.readdir(translationsRoot, { withFileTypes: true }) + const langs = dirents.filter((d) => d.isDirectory()).map((d) => d.name) + + const planned = [] + + for (const lang of langs) { + if (only.size && !only.has(lang)) continue + if (exclude.size && exclude.has(lang)) continue + + const filePath = path.join(translationsRoot, lang, 'default.json') + if (!(await fileExists(filePath))) continue + + const json = await loadJson(filePath) + + if (!Object.prototype.hasOwnProperty.call(json, key)) { + // Key does not exist in this language, skip + continue + } + + const prevVal = json[key] + planned.push({ lang, filePath, prevVal, json }) + } + + if (!planned.length) { + console.log('No changes planned.') + return + } + + for (const change of planned) { + const { lang, filePath, prevVal } = change + const prevPreview = typeof prevVal === 'undefined' ? '' : String(prevVal).substring(0, 60) + console.log(`[${lang}] ${key}:`) + console.log(` - deleted: ${prevPreview}${String(prevVal).length > 60 ? '...' : ''}`) + if (!dryRun) { + delete change.json[key] + await writeJson(filePath, change.json) + } + } + + if (dryRun) { + console.log(`\nDry run complete. ${planned.length} file(s) would change. Re-run with --write to apply.`) + } else if (write) { + console.log(`\nWrote ${planned.length} file(s).`) + } +} + +async function handleUpdate(key, translationsRoot, fromLang, includeEn, only, exclude, literalValue, mapFile, map, dryRun, write) { + let sourceValue = undefined + if (!literalValue && !map) { + // default to --from + const srcPath = path.join(translationsRoot, fromLang, 'default.json') + if (!(await fileExists(srcPath))) usage(1, `Source file not found for --from ${fromLang}: ${srcPath}`) + const srcJson = await loadJson(srcPath) + sourceValue = srcJson[key] + if (typeof sourceValue === 'undefined') usage(1, `Key "${key}" not found in source language ${fromLang}`) + } + + const dirents = await fs.readdir(translationsRoot, { withFileTypes: true }) + const langs = dirents.filter((d) => d.isDirectory()).map((d) => d.name) + + const planned = [] + + for (const lang of langs) { + if (!includeEn && lang === fromLang) continue + if (only.size && !only.has(lang)) continue + if (exclude.size && exclude.has(lang)) continue + + const filePath = path.join(translationsRoot, lang, 'default.json') + if (!(await fileExists(filePath))) continue + + const json = await loadJson(filePath) + + let nextVal + if (map && Object.prototype.hasOwnProperty.call(map, lang)) { + nextVal = map[lang] + } else if (typeof literalValue !== 'undefined') { + nextVal = literalValue + } else { + nextVal = sourceValue + } + + if (typeof nextVal === 'undefined') { + // No value for this lang in the chosen mode; skip + continue + } + + const prevVal = json[key] + if (prevVal === nextVal) continue + + planned.push({ lang, filePath, prevVal, nextVal, json }) + } + + if (!planned.length) { + console.log('No changes planned.') + return + } + + for (const change of planned) { + const { lang, filePath, prevVal, nextVal } = change + const prevPreview = typeof prevVal === 'undefined' ? '' : String(prevVal).substring(0, 60) + const nextPreview = String(nextVal).substring(0, 60) + console.log(`[${lang}] ${key}:`) + console.log(` - from: ${prevPreview}${String(prevVal).length > 60 ? '...' : ''}`) + console.log(` + to : ${nextPreview}${String(nextVal).length > 60 ? '...' : ''}`) + if (!dryRun) { + change.json[key] = nextVal + await writeJson(filePath, change.json) + } + } + + if (dryRun) { + console.log(`\nDry run complete. ${planned.length} file(s) would change. Re-run with --write to apply.`) + } else if (write) { + console.log(`\nWrote ${planned.length} file(s).`) + } +} + +async function main() { + const argv = process.argv.slice(2) + const args = parseArgs(argv) + + const key = args['--key'] + if (!key) usage(1, 'Missing required --key') + + const translationsRoot = path.join(process.cwd(), 'public', 'translations') + if (!(await fileExists(translationsRoot))) { + usage(1, `Translations directory not found: ${translationsRoot}`) + } + + const isDelete = args.flags.has('--delete') + const fromLang = args['--from'] || 'en' + const includeEn = args.flags.has('--include-en') + const dryRun = args.flags.has('--dry') || args.flags.has('--dry-run') || !args.flags.has('--write') + const write = args.flags.has('--write') + const only = parseCsv(args['--only']) + const exclude = parseCsv(args['--exclude']) + + if (isDelete) { + // Delete mode + await handleDelete(key, translationsRoot, only, exclude, dryRun, write) + } else { + // Update mode + let literalValue = args['--value'] + let mapFile = args['--map'] + let map = undefined + + if (mapFile) { + const absMap = path.isAbsolute(mapFile) ? mapFile : path.join(process.cwd(), mapFile) + if (!(await fileExists(absMap))) usage(1, `--map not found: ${absMap}`) + map = await loadJson(absMap) + if (typeof map !== 'object' || map === null) usage(1, '--map must be a JSON object of { lang: value }') + } + + await handleUpdate(key, translationsRoot, fromLang, includeEn, only, exclude, literalValue, mapFile, map, dryRun, write) + } +} + +main().catch((err) => { + console.error(err) + process.exit(1) +}) + + + From caa1daba5485a4bd4b1a681c2ed3608a49c69ac2 Mon Sep 17 00:00:00 2001 From: plebeius Date: Sat, 18 Oct 2025 23:01:39 +0200 Subject: [PATCH 12/15] update translations --- public/translations/ar/default.json | 2 +- public/translations/bn/default.json | 2 +- public/translations/cs/default.json | 2 +- public/translations/da/default.json | 2 +- public/translations/de/default.json | 2 +- public/translations/el/default.json | 2 +- public/translations/en/default.json | 2 +- public/translations/es/default.json | 2 +- public/translations/fi/default.json | 2 +- public/translations/fil/default.json | 2 +- public/translations/fr/default.json | 2 +- public/translations/he/default.json | 2 +- public/translations/hu/default.json | 2 +- public/translations/id/default.json | 2 +- public/translations/it/default.json | 2 +- public/translations/ja/default.json | 2 +- public/translations/ko/default.json | 2 +- public/translations/mr/default.json | 2 +- public/translations/nl/default.json | 2 +- public/translations/no/default.json | 2 +- public/translations/pl/default.json | 2 +- public/translations/pt/default.json | 2 +- public/translations/ro/default.json | 2 +- public/translations/ru/default.json | 2 +- public/translations/sq/default.json | 2 +- public/translations/sv/default.json | 2 +- public/translations/te/default.json | 2 +- public/translations/th/default.json | 2 +- public/translations/tr/default.json | 2 +- public/translations/uk/default.json | 2 +- public/translations/ur/default.json | 2 +- public/translations/vi/default.json | 2 +- public/translations/zh/default.json | 2 +- 33 files changed, 33 insertions(+), 33 deletions(-) diff --git a/public/translations/ar/default.json b/public/translations/ar/default.json index 4a53b8f0..8b0ae009 100644 --- a/public/translations/ar/default.json +++ b/public/translations/ar/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "ما هو بليبتشان؟", "go": "اذهب", "or": "أو", - "5chan_description": "5chan هو بديل لـ 4chan موزع، بدون خادم، بدون مسؤولين، ومفتوح المصدر، حيث يمكن لأي شخص إنشاء وامتلاك منتديات غير محدودة بشكل تشفيري. جميع المنتديات مستضافة ذاتياً من قبل أصحابها، الذين يشغلون عقد <1>bitsocial التي يتصل بها المستخدمون، نقطة لنقطة. جميع البيانات نصية فقط، بما في ذلك الروابط لتحميل الوسائط/التضمينات. لا تتردد في النقر فوق منتدى أدناه الذي يهمك والانضمام فورًا!", + "5chan_description": "5chan هو بديل لـ 4chan موزع، بدون خادم، بدون مسؤولين، ومفتوح المصدر، حيث يمكن لأي شخص إنشاء وامتلاك منتديات غير محدودة بشكل تشفيري. جميع المنتديات مستضافة ذاتياً من قبل أصحابها، الذين يشغلون عقد <1>plebbit التي يتصل بها المستخدمون، نقطة لنقطة. جميع البيانات نصية فقط، بما في ذلك الروابط لتحميل الوسائط/التضمينات. لا تتردد في النقر فوق منتدى أدناه الذي يهمك والانضمام فورًا!", "no_global_rules_info": "يمكنك دائمًا الاتصال بأي منتدى، بشكل كامل P2P، لا يمكن لأحد إيقافك. ببساطة الصق عنوانه في حقل البحث أعلاه.", "boards": "منتديات", "popular_threads": "المواضيع الشائعة", diff --git a/public/translations/bn/default.json b/public/translations/bn/default.json index 06eb1e5d..06058458 100644 --- a/public/translations/bn/default.json +++ b/public/translations/bn/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "প্লেবচ্যান কি?", "go": "যাও", "or": "অথবা", - "5chan_description": "5chan একটি সার্ভারলেস, অ্যাডমিনলেস, ডিসেন্ট্রালাইজড এবং ওপেন-সোর্স 4chan বিকল্প যেখানে কেউই অসীম বোর্ড তৈরি এবং ক্রিপ্টোগ্রাফিকভাবে মালিকত্ব করতে পারেন। সমস্ত বোর্ড তাদের মালিকদের দ্বারা স্ব-হোস্ট করা হয়, যারা <1>bitsocial নোড চালায় যেগুলিতে ব্যবহারকারীরা পিয়ার-টু-পিয়ার সংযোগ করে। সমস্ত ডেটা শুধুমাত্র টেক্সট, মিডিয়া/এমবেড লোড করার লিংক সহ। আপনি যেটা আপনার সাথে আগ্রহী তার নিচে একটি বোর্ডে ক্লিক করে যথাযথভাবে যোগদান করতে পারেন!", + "5chan_description": "5chan একটি সার্ভারলেস, অ্যাডমিনলেস, ডিসেন্ট্রালাইজড এবং ওপেন-সোর্স 4chan বিকল্প যেখানে কেউই অসীম বোর্ড তৈরি এবং ক্রিপ্টোগ্রাফিকভাবে মালিকত্ব করতে পারেন। সমস্ত বোর্ড তাদের মালিকদের দ্বারা স্ব-হোস্ট করা হয়, যারা <1>plebbit নোড চালায় যেগুলিতে ব্যবহারকারীরা পিয়ার-টু-পিয়ার সংযোগ করে। সমস্ত ডেটা শুধুমাত্র টেক্সট, মিডিয়া/এমবেড লোড করার লিংক সহ। আপনি যেটা আপনার সাথে আগ্রহী তার নিচে একটি বোর্ডে ক্লিক করে যথাযথভাবে যোগদান করতে পারেন!", "no_global_rules_info": "আপনি সবসময় যেকোনো বোর্ডে সংযোগ করতে পারেন, সম্পূর্ণ P2P, কেউ আপনাকে থামাতে পারে না। উপরের সার্চ ফিল্ডে এর ঠিকানা পেস্ট করুন।", "boards": "বোর্ডসমূহ", "popular_threads": "জনপ্রিয় থ্রেডগুলি", diff --git a/public/translations/cs/default.json b/public/translations/cs/default.json index 62725e2e..4c10d425 100644 --- a/public/translations/cs/default.json +++ b/public/translations/cs/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "Co je 5chan?", "go": "jít", "or": "nebo", - "5chan_description": "5chan je decentralizovaná alternativa 4chan bez serveru, bez administrátorů, open-source, kde si každý může vytvořit a kryptograficky vlastnit neomezené nástěnky. Všechny nástěnky jsou hostovány jejich vlastníky, kteří provozují <1>bitsocial uzly, ke kterým se uživatelé připojují peer-to-peer. Všechna data jsou pouze textová, včetně odkazů pro načítání médií/embedů. Neváhejte kliknout na nástěnku níže, která vás zajímá, a okamžitě se připojit!", + "5chan_description": "5chan je decentralizovaná alternativa 4chan bez serveru, bez administrátorů, open-source, kde si každý může vytvořit a kryptograficky vlastnit neomezené nástěnky. Všechny nástěnky jsou hostovány jejich vlastníky, kteří provozují <1>plebbit uzly, ke kterým se uživatelé připojují peer-to-peer. Všechna data jsou pouze textová, včetně odkazů pro načítání médií/embedů. Neváhejte kliknout na nástěnku níže, která vás zajímá, a okamžitě se připojit!", "no_global_rules_info": "Můžete se vždy připojit k jakékoli nástěnce, plně P2P, nikdo vás nemůže zastavit. Jednoduše vložte její adresu do vyhledávacího pole výše.", "boards": "nástěnky", "popular_threads": "Oblíbená vlákna", diff --git a/public/translations/da/default.json b/public/translations/da/default.json index 7be2fc6e..a173d7bd 100644 --- a/public/translations/da/default.json +++ b/public/translations/da/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "Hvad er 5chan?", "go": "gå", "or": "eller", - "5chan_description": "5chan er et serverløst, adminløst, decentraliseret og open-source 4chan-alternativ, hvor enhver kan oprette og kryptografisk eje ubegrænsede opslagstavler. Alle opslagstavler er selv-hostet af deres ejere, som kører <1>bitsocial noder, som brugere forbinder til peer-to-peer. Alle data er kun tekst, inklusive links til at indlæse medier/embeds. Du er velkommen til at klikke på en opslagstavle nedenfor, der interesserer dig, og springe direkte ind!", + "5chan_description": "5chan er et serverløst, adminløst, decentraliseret og open-source 4chan-alternativ, hvor enhver kan oprette og kryptografisk eje ubegrænsede opslagstavler. Alle opslagstavler er selv-hostet af deres ejere, som kører <1>plebbit noder, som brugere forbinder til peer-to-peer. Alle data er kun tekst, inklusive links til at indlæse medier/embeds. Du er velkommen til at klikke på en opslagstavle nedenfor, der interesserer dig, og springe direkte ind!", "no_global_rules_info": "Du kan altid forbinde til enhver opslagstavle, fuldt P2P, ingen kan stoppe dig. Indsæt simpelthen dens adresse i søgefeltet ovenfor.", "boards": "opslagstavler", "popular_threads": "Populære tråde", diff --git a/public/translations/de/default.json b/public/translations/de/default.json index 78513a1e..ebc60b61 100644 --- a/public/translations/de/default.json +++ b/public/translations/de/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "Was ist 5chan?", "go": "gehen", "or": "oder", - "5chan_description": "5chan ist eine serverlose, adminlose, dezentralisierte und open-source Alternative zu 4chan, bei der jeder unbegrenzte Foren erstellen und kryptografisch besitzen kann. Alle Foren werden von ihren Besitzern selbst gehostet, die <1>bitsocial Knoten betreiben, zu denen sich Benutzer peer-to-peer verbinden. Alle Daten sind nur Text, einschließlich Links zum Laden von Medien/Embeds. Fühlen Sie sich frei, auf ein Forum unten zu klicken, das Sie interessiert, und steigen Sie direkt ein!", + "5chan_description": "5chan ist eine serverlose, adminlose, dezentralisierte und open-source Alternative zu 4chan, bei der jeder unbegrenzte Foren erstellen und kryptografisch besitzen kann. Alle Foren werden von ihren Besitzern selbst gehostet, die <1>plebbit Knoten betreiben, zu denen sich Benutzer peer-to-peer verbinden. Alle Daten sind nur Text, einschließlich Links zum Laden von Medien/Embeds. Fühlen Sie sich frei, auf ein Forum unten zu klicken, das Sie interessiert, und steigen Sie direkt ein!", "no_global_rules_info": "Sie können sich jederzeit mit jedem Forum verbinden, vollständig P2P, niemand kann Sie aufhalten. Fügen Sie einfach seine Adresse in das Suchfeld oben ein.", "boards": "Foren", "popular_threads": "Beliebte Threads", diff --git a/public/translations/el/default.json b/public/translations/el/default.json index 8b3374ee..5213152e 100644 --- a/public/translations/el/default.json +++ b/public/translations/el/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "Τι είναι το 5chan;", "go": "πήγαινε", "or": "ή", - "5chan_description": "Το 5chan είναι μια αντικατάσταση του 4chan χωρίς διακομιστή, χωρίς διαχειριστές, αποκεντρωμένη και ανοιχτού κώδικα, όπου οποιοσδήποτε μπορεί να δημιουργήσει και να έχει κρυπτογραφικά απεριόριστα boards. Όλα τα boards φιλοξενούνται από τους ιδιοκτήτες τους, οι οποίοι τρέχουν κόμβους <1>bitsocial στους οποίους συνδέονται οι χρήστες peer-to-peer. Όλα τα δεδομένα είναι μόνο κείμενο, συμπεριλαμβανομένων των συνδέσμων για φόρτωση πολυμέσων/embeds. Μη διστάσετε να κάνετε κλικ σε ένα board παρακάτω που σας ενδιαφέρει και να μπείτε αμέσως μέσα!", + "5chan_description": "Το 5chan είναι μια αντικατάσταση του 4chan χωρίς διακομιστή, χωρίς διαχειριστές, αποκεντρωμένη και ανοιχτού κώδικα, όπου οποιοσδήποτε μπορεί να δημιουργήσει και να έχει κρυπτογραφικά απεριόριστα boards. Όλα τα boards φιλοξενούνται από τους ιδιοκτήτες τους, οι οποίοι τρέχουν κόμβους <1>plebbit στους οποίους συνδέονται οι χρήστες peer-to-peer. Όλα τα δεδομένα είναι μόνο κείμενο, συμπεριλαμβανομένων των συνδέσμων για φόρτωση πολυμέσων/embeds. Μη διστάσετε να κάνετε κλικ σε ένα board παρακάτω που σας ενδιαφέρει και να μπείτε αμέσως μέσα!", "no_global_rules_info": "Μπορείτε πάντα να συνδεθείτε σε οποιοδήποτε board, πλήρως P2P, κανείς δεν μπορεί να σας σταματήσει. Απλά επικολλήστε τη διεύθυνσή του στο πεδίο αναζήτησης παραπάνω.", "boards": "διαδικτυακές πινακίδες", "popular_threads": "Δημοφιλή νήματα", diff --git a/public/translations/en/default.json b/public/translations/en/default.json index 21836d94..6dd47643 100644 --- a/public/translations/en/default.json +++ b/public/translations/en/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "What is 5chan?", "go": "go", "or": "or", - "5chan_description": "5chan is a serverless, adminless, decentralized and open-source 4chan alternative, where anyone can create and cryptographically own unlimited boards. All boards are selfhosted by their owners, who run <1>bitsocial nodes that users connect to, peer-to-peer. All data is text-only, including links to load media/embeds. Feel free to click on a board below that interests you and jump right in!", + "5chan_description": "5chan is a serverless, adminless, decentralized and open-source 4chan alternative, where anyone can create and cryptographically own unlimited boards. All boards are selfhosted by their owners, who run <1>plebbit nodes that users connect to, peer-to-peer. All data is text-only, including links to load media/embeds. Feel free to click on a board below that interests you and jump right in!", "no_global_rules_info": "You can always connect to any board, fully P2P, nobody can stop you. Simply paste its address in the search field above.", "boards": "boards", "popular_threads": "Popular threads", diff --git a/public/translations/es/default.json b/public/translations/es/default.json index 9c5d2561..8f560cbb 100644 --- a/public/translations/es/default.json +++ b/public/translations/es/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "¿Qué es 5chan?", "go": "ir", "or": "o", - "5chan_description": "5chan es una alternativa descentralizada, sin servidor, sin administrador y de código abierto de 4chan donde cualquiera puede crear y poseer criptográficamente foros ilimitados. Todos los foros son auto-hospedados por sus propietarios, quienes ejecutan nodos <1>bitsocial a los que los usuarios se conectan peer-to-peer. Todos los datos son solo texto, incluyendo enlaces para cargar medios/embeds. ¡Siéntete libre de hacer clic en un foro a continuación que te interese y únete de inmediato!", + "5chan_description": "5chan es una alternativa descentralizada, sin servidor, sin administrador y de código abierto de 4chan donde cualquiera puede crear y poseer criptográficamente foros ilimitados. Todos los foros son auto-hospedados por sus propietarios, quienes ejecutan nodos <1>plebbit a los que los usuarios se conectan peer-to-peer. Todos los datos son solo texto, incluyendo enlaces para cargar medios/embeds. ¡Siéntete libre de hacer clic en un foro a continuación que te interese y únete de inmediato!", "no_global_rules_info": "Siempre puedes conectarte a cualquier foro, completamente P2P, nadie puede detenerte. Simplemente pega su dirección en el campo de búsqueda de arriba.", "boards": "foros", "popular_threads": "Hilos populares", diff --git a/public/translations/fi/default.json b/public/translations/fi/default.json index 33c38fa1..d98d0cdd 100644 --- a/public/translations/fi/default.json +++ b/public/translations/fi/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "Mikä on 5chan?", "go": "mennä", "or": "tai", - "5chan_description": "5chan on palvelin- ja ylläpitovapaa hajautettu avoimen lähdekoodin vaihtoehto 4chanille, jossa kuka tahansa voi luoda ja kryptografisesti omistaa rajoittamattomasti foorumeita. Kaikki foorumit ovat omistajiensa itsehostaamia, jotka ajavat <1>bitsocial-solmuja, joihin käyttäjät yhdistyvät vertaisverkossa. Kaikki tiedot ovat vain tekstiä, mukaan lukien linkit mediasisältöjen/upotusten lataamiseen. Voit vapaasti klikata alla olevaa foorumia, joka kiinnostaa sinua, ja liittyä heti mukaan!", + "5chan_description": "5chan on palvelin- ja ylläpitovapaa hajautettu avoimen lähdekoodin vaihtoehto 4chanille, jossa kuka tahansa voi luoda ja kryptografisesti omistaa rajoittamattomasti foorumeita. Kaikki foorumit ovat omistajiensa itsehostaamia, jotka ajavat <1>plebbit-solmuja, joihin käyttäjät yhdistyvät vertaisverkossa. Kaikki tiedot ovat vain tekstiä, mukaan lukien linkit mediasisältöjen/upotusten lataamiseen. Voit vapaasti klikata alla olevaa foorumia, joka kiinnostaa sinua, ja liittyä heti mukaan!", "no_global_rules_info": "Voit aina yhdistää mihin tahansa foorumiin, täysin P2P, kukaan ei voi pysäyttää sinua. Liitä vain sen osoite yllä olevaan hakukenttään.", "boards": "foorumit", "popular_threads": "Suositut langat", diff --git a/public/translations/fil/default.json b/public/translations/fil/default.json index 4abce1dd..07a6d5fb 100644 --- a/public/translations/fil/default.json +++ b/public/translations/fil/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "Ano ang 5chan?", "go": "pumunta", "or": "o", - "5chan_description": "Ang 5chan ay isang serverless, adminless, decentralized at open-source na alternatibo sa 4chan kung saan maaaring lumikha at kriptograpikong magmamay-ari ang sinuman ng walang limitasyong boards. Lahat ng boards ay self-hosted ng kanilang mga may-ari, na nagpapatakbo ng <1>bitsocial nodes na kinokonekta ng mga user peer-to-peer. Lahat ng data ay text-only, kabilang ang mga link para sa pag-load ng media/embeds. Huwag mag-atubiling mag-click sa isang board sa ibaba na nais mong salihan at sumali na agad!", + "5chan_description": "Ang 5chan ay isang serverless, adminless, decentralized at open-source na alternatibo sa 4chan kung saan maaaring lumikha at kriptograpikong magmamay-ari ang sinuman ng walang limitasyong boards. Lahat ng boards ay self-hosted ng kanilang mga may-ari, na nagpapatakbo ng <1>plebbit nodes na kinokonekta ng mga user peer-to-peer. Lahat ng data ay text-only, kabilang ang mga link para sa pag-load ng media/embeds. Huwag mag-atubiling mag-click sa isang board sa ibaba na nais mong salihan at sumali na agad!", "no_global_rules_info": "Maaari mong palaging kumonekta sa anumang board, ganap na P2P, walang makakapigil sa iyo. Ilagay lamang ang address nito sa search field sa itaas.", "boards": "mga board", "popular_threads": "Mga popular na thread", diff --git a/public/translations/fr/default.json b/public/translations/fr/default.json index 165c9f5d..d7f2139e 100644 --- a/public/translations/fr/default.json +++ b/public/translations/fr/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "Qu'est-ce que 5chan?", "go": "aller", "or": "ou", - "5chan_description": "5chan est une alternative décentralisée, sans serveur, sans administrateur et open-source à 4chan où n'importe qui peut créer et posséder cryptographiquement des forums illimités. Tous les forums sont auto-hébergés par leurs propriétaires, qui exécutent des nœuds <1>bitsocial auxquels les utilisateurs se connectent peer-to-peer. Toutes les données sont uniquement du texte, y compris les liens pour charger les médias/embeds. N'hésitez pas à cliquer sur un forum ci-dessous qui vous intéresse et à vous joindre immédiatement !", + "5chan_description": "5chan est une alternative décentralisée, sans serveur, sans administrateur et open-source à 4chan où n'importe qui peut créer et posséder cryptographiquement des forums illimités. Tous les forums sont auto-hébergés par leurs propriétaires, qui exécutent des nœuds <1>plebbit auxquels les utilisateurs se connectent peer-to-peer. Toutes les données sont uniquement du texte, y compris les liens pour charger les médias/embeds. N'hésitez pas à cliquer sur un forum ci-dessous qui vous intéresse et à vous joindre immédiatement !", "no_global_rules_info": "Vous pouvez toujours vous connecter à n'importe quel forum, entièrement P2P, personne ne peut vous arrêter. Collez simplement son adresse dans le champ de recherche ci-dessus.", "boards": "forums", "popular_threads": "Fils populaires", diff --git a/public/translations/he/default.json b/public/translations/he/default.json index b8c22904..2ef5576e 100644 --- a/public/translations/he/default.json +++ b/public/translations/he/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "מה זה פלבצ׳ן?", "go": "לך", "or": "או", - "5chan_description": "פלבצ'ן הוא אלטרנטיבה חדשה, ללא שרת, ללא מנהל, ללא מרכזית וקוד פתוח ל־4chan, בה כל אחד יכול ליצור ולבעוט בלוחות ללא הגבלה בצורה קריפטוגרפית. כל הלוחות מארחים את עצמם על ידי בעליהם, שמפעילים צמתים <1>bitsocial שמשתמשים מתחברים אליהם פר-לפר. כל הנתונים הם טקסט בלבד, כולל קישורים לטעינת מדיה/הטמעות. נכון ללחוץ על לוח מטה שמעניין אתכם ולהצטרף מיידית!", + "5chan_description": "פלבצ'ן הוא אלטרנטיבה חדשה, ללא שרת, ללא מנהל, ללא מרכזית וקוד פתוח ל־4chan, בה כל אחד יכול ליצור ולבעוט בלוחות ללא הגבלה בצורה קריפטוגרפית. כל הלוחות מארחים את עצמם על ידי בעליהם, שמפעילים צמתים <1>plebbit שמשתמשים מתחברים אליהם פר-לפר. כל הנתונים הם טקסט בלבד, כולל קישורים לטעינת מדיה/הטמעות. נכון ללחוץ על לוח מטה שמעניין אתכם ולהצטרף מיידית!", "no_global_rules_info": "תמיד תוכל להתחבר לכל לוח, לגמרי P2P, אף אחד לא יכול לעצור אותך. פשוט הדבק את הכתובת שלו בשדה החיפוש למעלה.", "boards": "פורומים", "popular_threads": "אשכולות פופולריים", diff --git a/public/translations/hu/default.json b/public/translations/hu/default.json index f200dbdc..f443df49 100644 --- a/public/translations/hu/default.json +++ b/public/translations/hu/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "Mi az a 5chan?", "go": "menni", "or": "vagy", - "5chan_description": "A 5chan egy szerver nélküli, admin nélküli, decentralizált és nyílt forráskódú 4chan alternatíva, ahol bárki létrehozhat és kriptográfiai módon birtokolhat korlátlan fórumokat. Minden fórum a tulajdonosok által önállóan üzemeltetett, akik <1>bitsocial csomópontokat futtatnak, amelyekhez a felhasználók peer-to-peer kapcsolódnak. Minden adat csak szöveg, beleértve a médiák/beágyazások betöltéséhez szükséges hivatkozásokat. Kattints bármelyik lent lévő fórumra, amely érdekel, és csatlakozz azonnal!", + "5chan_description": "A 5chan egy szerver nélküli, admin nélküli, decentralizált és nyílt forráskódú 4chan alternatíva, ahol bárki létrehozhat és kriptográfiai módon birtokolhat korlátlan fórumokat. Minden fórum a tulajdonosok által önállóan üzemeltetett, akik <1>plebbit csomópontokat futtatnak, amelyekhez a felhasználók peer-to-peer kapcsolódnak. Minden adat csak szöveg, beleértve a médiák/beágyazások betöltéséhez szükséges hivatkozásokat. Kattints bármelyik lent lévő fórumra, amely érdekel, és csatlakozz azonnal!", "no_global_rules_info": "Bármikor csatlakozhatsz bármely fórumhoz, teljesen P2P, senki sem tud megállítani. Egyszerűen illeszd be a címét a fenti keresőmezőbe.", "boards": "fórumok", "popular_threads": "Népszerű szálak", diff --git a/public/translations/id/default.json b/public/translations/id/default.json index b5e581b4..37267554 100644 --- a/public/translations/id/default.json +++ b/public/translations/id/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "Apa itu 5chan?", "go": "pergi", "or": "atau", - "5chan_description": "5chan adalah alternatif 4chan tanpa server, tanpa admin, terdesentralisasi dan open-source di mana siapa pun bisa membuat dan memiliki kriptografis papan tak terbatas. Semua papan di-host sendiri oleh pemiliknya, yang menjalankan node <1>bitsocial yang dihubungkan pengguna peer-to-peer. Semua data hanya teks, termasuk tautan untuk memuat media/embeds. Jangan ragu untuk mengklik papan di bawah yang menarik bagi Anda dan bergabung segera!", + "5chan_description": "5chan adalah alternatif 4chan tanpa server, tanpa admin, terdesentralisasi dan open-source di mana siapa pun bisa membuat dan memiliki kriptografis papan tak terbatas. Semua papan di-host sendiri oleh pemiliknya, yang menjalankan node <1>plebbit yang dihubungkan pengguna peer-to-peer. Semua data hanya teks, termasuk tautan untuk memuat media/embeds. Jangan ragu untuk mengklik papan di bawah yang menarik bagi Anda dan bergabung segera!", "no_global_rules_info": "Anda selalu dapat terhubung ke papan mana pun, sepenuhnya P2P, tidak ada yang bisa menghentikan Anda. Cukup tempelkan alamatnya di bidang pencarian di atas.", "boards": "papan pesan", "popular_threads": "Benang populer", diff --git a/public/translations/it/default.json b/public/translations/it/default.json index 9d522fb2..e122023f 100644 --- a/public/translations/it/default.json +++ b/public/translations/it/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "Cos'è 5chan?", "go": "vai", "or": "oppure", - "5chan_description": "5chan è un'alternativa a 4chan decentralizzata, senza server, senza amministratori e open-source, in cui chiunque può creare e possedere criptograficamente board illimitate. Tutte le board sono self-hosted dai loro proprietari, che eseguono nodi <1>bitsocial a cui gli utenti si connettono peer-to-peer. Tutti i dati sono solo testo, inclusi i link per caricare media/embeds. Sentiti libero di cliccare su una board qui sotto che ti interessa e unisciti subito!", + "5chan_description": "5chan è un'alternativa a 4chan decentralizzata, senza server, senza amministratori e open-source, in cui chiunque può creare e possedere criptograficamente board illimitate. Tutte le board sono self-hosted dai loro proprietari, che eseguono nodi <1>plebbit a cui gli utenti si connettono peer-to-peer. Tutti i dati sono solo testo, inclusi i link per caricare media/embeds. Sentiti libero di cliccare su una board qui sotto che ti interessa e unisciti subito!", "no_global_rules_info": "Puoi sempre connetterti a qualsiasi board, completamente P2P, nessuno può fermarti. Basta incollare il suo indirizzo nel campo di ricerca sopra.", "boards": "board", "popular_threads": "Thread popolari", diff --git a/public/translations/ja/default.json b/public/translations/ja/default.json index 380ebc5f..9fcef6a8 100644 --- a/public/translations/ja/default.json +++ b/public/translations/ja/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "プレブチャンとは何ですか?", "go": "行く", "or": "または", - "5chan_description": "5chan は、サーバーレス、管理者なし、分散型、オープンソースの 4chan の代替であり、誰でも無制限のボードを作成して暗号学的に所有できます。すべてのボードは所有者によってセルフホストされ、ユーザーがピアツーピアで接続する <1>bitsocial ノードを実行します。すべてのデータはテキストのみで、メディア/埋め込みを読み込むためのリンクを含みます。興味のあるボードをクリックして、すぐに参加してください!", + "5chan_description": "5chan は、サーバーレス、管理者なし、分散型、オープンソースの 4chan の代替であり、誰でも無制限のボードを作成して暗号学的に所有できます。すべてのボードは所有者によってセルフホストされ、ユーザーがピアツーピアで接続する <1>plebbit ノードを実行します。すべてのデータはテキストのみで、メディア/埋め込みを読み込むためのリンクを含みます。興味のあるボードをクリックして、すぐに参加してください!", "no_global_rules_info": "いつでも任意のボードに接続できます、完全にP2P、誰もあなたを止めることはできません。上記の検索フィールドにそのアドレスを貼り付けるだけです。", "boards": "掲示板", "popular_threads": "人気のあるスレッド", diff --git a/public/translations/ko/default.json b/public/translations/ko/default.json index dc2f343d..81ed6b27 100644 --- a/public/translations/ko/default.json +++ b/public/translations/ko/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "플레브찬이란 무엇인가요?", "go": "가기", "or": "또는", - "5chan_description": "5chan은 서버 없이, 관리자 없이, 분산형이고 오픈소스인 4chan 대안으로 누구나 무제한의 게시판을 생성하고 암호학적으로 소유할 수 있습니다. 모든 게시판은 소유자에 의해 자체 호스팅되며, 사용자가 피어투피어로 연결하는 <1>bitsocial 노드를 실행합니다. 모든 데이터는 텍스트만이며, 미디어/임베드를 로드하는 링크를 포함합니다. 관심 있는 아래의 게시판을 클릭하고 바로 참여해보세요!", + "5chan_description": "5chan은 서버 없이, 관리자 없이, 분산형이고 오픈소스인 4chan 대안으로 누구나 무제한의 게시판을 생성하고 암호학적으로 소유할 수 있습니다. 모든 게시판은 소유자에 의해 자체 호스팅되며, 사용자가 피어투피어로 연결하는 <1>plebbit 노드를 실행합니다. 모든 데이터는 텍스트만이며, 미디어/임베드를 로드하는 링크를 포함합니다. 관심 있는 아래의 게시판을 클릭하고 바로 참여해보세요!", "no_global_rules_info": "언제든지 어떤 게시판이든 연결할 수 있습니다, 완전히 P2P, 아무도 당신을 막을 수 없습니다. 위의 검색 필드에 주소를 붙여넣기만 하면 됩니다.", "boards": "게시판", "popular_threads": "인기 있는 스레드", diff --git a/public/translations/mr/default.json b/public/translations/mr/default.json index 10e169a3..9a91f6cb 100644 --- a/public/translations/mr/default.json +++ b/public/translations/mr/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "प्लेबचॅन काय आहे?", "go": "जा", "or": "किव्हा", - "5chan_description": "प्लेबचॅन हा सर्व्हरलेस, एडमिनलेस, डीसेंट्रलाइझ्ड आणि ओपन-सोर्स ४चॅनचा पर्याय आहे ज्यात कोणीही अमित बोर्ड तयार करून क्रिप्टोग्राफिकली मालकी घेऊ शकतो. सर्व बोर्ड त्यांच्या मालकांकडून सेल्फ-होस्टेड असतात, जे <1>bitsocial नोड्स चालवतात ज्यांना वापरकर्ते पीयर-टू-पीयर कनेक्ट करतात. सर्व डेटा फक्त टेक्स्ट आहे, मीडिया/एम्बेड्स लोड करण्यासाठी लिंक्ससह. आपल्याला आवडता असलेला खालील बोर्ड क्लिक करून प्रवेश करा आणि लगेच ज्वाइन करा!", + "5chan_description": "प्लेबचॅन हा सर्व्हरलेस, एडमिनलेस, डीसेंट्रलाइझ्ड आणि ओपन-सोर्स ४चॅनचा पर्याय आहे ज्यात कोणीही अमित बोर्ड तयार करून क्रिप्टोग्राफिकली मालकी घेऊ शकतो. सर्व बोर्ड त्यांच्या मालकांकडून सेल्फ-होस्टेड असतात, जे <1>plebbit नोड्स चालवतात ज्यांना वापरकर्ते पीयर-टू-पीयर कनेक्ट करतात. सर्व डेटा फक्त टेक्स्ट आहे, मीडिया/एम्बेड्स लोड करण्यासाठी लिंक्ससह. आपल्याला आवडता असलेला खालील बोर्ड क्लिक करून प्रवेश करा आणि लगेच ज्वाइन करा!", "no_global_rules_info": "तुम्ही नेहमी कोणत्याही बोर्डशी कनेक्ट होऊ शकता, पूर्णपणे P2P, कोणीही तुम्हाला थांबवू शकत नाही. फक्त वरील शोध फील्डमध्ये त्याचा पत्ता पेस्ट करा.", "boards": "संदेश फलक", "popular_threads": "लोकप्रिय थ्रेड्स", diff --git a/public/translations/nl/default.json b/public/translations/nl/default.json index a73244c9..959dcd68 100644 --- a/public/translations/nl/default.json +++ b/public/translations/nl/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "Wat is 5chan?", "go": "gaan", "or": "of", - "5chan_description": "5chan is een serverloos, adminloos, gedecentraliseerd en open-source alternatief voor 4chan waar iedereen onbeperkte forums kan maken en cryptografisch bezitten. Alle forums worden zelf gehost door hun eigenaren, die <1>bitsocial nodes draaien waarmee gebruikers peer-to-peer verbinden. Alle gegevens zijn alleen tekst, inclusief links voor het laden van media/embeds. Voel je vrij om op een forum hieronder te klikken dat je interesseert en spring er meteen in!", + "5chan_description": "5chan is een serverloos, adminloos, gedecentraliseerd en open-source alternatief voor 4chan waar iedereen onbeperkte forums kan maken en cryptografisch bezitten. Alle forums worden zelf gehost door hun eigenaren, die <1>plebbit nodes draaien waarmee gebruikers peer-to-peer verbinden. Alle gegevens zijn alleen tekst, inclusief links voor het laden van media/embeds. Voel je vrij om op een forum hieronder te klikken dat je interesseert en spring er meteen in!", "no_global_rules_info": "Je kunt altijd verbinden met elk forum, volledig P2P, niemand kan je stoppen. Plak gewoon het adres in het zoekveld hierboven.", "boards": "forums", "popular_threads": "Populaire threads", diff --git a/public/translations/no/default.json b/public/translations/no/default.json index 6a61f881..18318832 100644 --- a/public/translations/no/default.json +++ b/public/translations/no/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "Hva er 5chan?", "go": "gå", "or": "eller", - "5chan_description": "5chan er et serverløst, adminløst, desentralisert og open-source alternativ til 4chan der hvem som helst kan opprette og kryptografisk eie ubegrensede fora. Alle fora er selv-hostet av sine eiere, som kjører <1>bitsocial noder som brukere kobler til peer-to-peer. Alle data er bare tekst, inkludert lenker for å laste medier/embeds. Ikke nøl med å klikke på et forum nedenfor som interesserer deg og bli med en gang!", + "5chan_description": "5chan er et serverløst, adminløst, desentralisert og open-source alternativ til 4chan der hvem som helst kan opprette og kryptografisk eie ubegrensede fora. Alle fora er selv-hostet av sine eiere, som kjører <1>plebbit noder som brukere kobler til peer-to-peer. Alle data er bare tekst, inkludert lenker for å laste medier/embeds. Ikke nøl med å klikke på et forum nedenfor som interesserer deg og bli med en gang!", "no_global_rules_info": "Du kan alltid koble til hvilket som helst forum, fullt P2P, ingen kan stoppe deg. Lim bare adressen i søkefeltet ovenfor.", "boards": "fora", "popular_threads": "Populære tråder", diff --git a/public/translations/pl/default.json b/public/translations/pl/default.json index be1632a8..2e2d67e7 100644 --- a/public/translations/pl/default.json +++ b/public/translations/pl/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "Co to jest 5chan?", "go": "iść", "or": "lub", - "5chan_description": "5chan to bezserwerowa, bezadministracyjna, zdecentralizowana i open-source alternatywa dla 4chan, gdzie każdy może tworzyć i kryptograficznie posiadać nieograniczone fora. Wszystkie fora są hostowane przez ich właścicieli, którzy uruchamiają węzły <1>bitsocial, z którymi użytkownicy łączą się peer-to-peer. Wszystkie dane to tylko tekst, w tym linki do ładowania mediów/embeds. Śmiało kliknij na forum poniżej, które Cię interesuje, i dołącz!", + "5chan_description": "5chan to bezserwerowa, bezadministracyjna, zdecentralizowana i open-source alternatywa dla 4chan, gdzie każdy może tworzyć i kryptograficznie posiadać nieograniczone fora. Wszystkie fora są hostowane przez ich właścicieli, którzy uruchamiają węzły <1>plebbit, z którymi użytkownicy łączą się peer-to-peer. Wszystkie dane to tylko tekst, w tym linki do ładowania mediów/embeds. Śmiało kliknij na forum poniżej, które Cię interesuje, i dołącz!", "no_global_rules_info": "Zawsze możesz połączyć się z dowolnym forum, w pełni P2P, nikt nie może cię zatrzymać. Po prostu wklej jego adres w polu wyszukiwania powyżej.", "boards": "fora", "popular_threads": "Popularne wątki", diff --git a/public/translations/pt/default.json b/public/translations/pt/default.json index 8b5a467c..fb92b6b6 100644 --- a/public/translations/pt/default.json +++ b/public/translations/pt/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "O que é 5chan?", "go": "vai", "or": "ou", - "5chan_description": "5chan é uma alternativa descentralizada, sem servidor, sem administradores e de código aberto ao 4chan onde qualquer pessoa pode criar e possuir criptograficamente fóruns ilimitados. Todos os fóruns são auto-hospedados por seus proprietários, que executam nós <1>bitsocial aos quais os usuários se conectam peer-to-peer. Todos os dados são apenas texto, incluindo links para carregar mídia/embeds. Sinta-se à vontade para clicar em um fórum abaixo que lhe interesse e participar imediatamente!", + "5chan_description": "5chan é uma alternativa descentralizada, sem servidor, sem administradores e de código aberto ao 4chan onde qualquer pessoa pode criar e possuir criptograficamente fóruns ilimitados. Todos os fóruns são auto-hospedados por seus proprietários, que executam nós <1>plebbit aos quais os usuários se conectam peer-to-peer. Todos os dados são apenas texto, incluindo links para carregar mídia/embeds. Sinta-se à vontade para clicar em um fórum abaixo que lhe interesse e participar imediatamente!", "no_global_rules_info": "Você sempre pode se conectar a qualquer fórum, completamente P2P, ninguém pode impedi-lo. Simplesmente cole o endereço no campo de pesquisa acima.", "boards": "fóruns", "popular_threads": "Tópicos populares", diff --git a/public/translations/ro/default.json b/public/translations/ro/default.json index 21a6b658..dfdafe28 100644 --- a/public/translations/ro/default.json +++ b/public/translations/ro/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "Ce este 5chan?", "go": "du-te", "or": "sau", - "5chan_description": "5chan este o alternativă descentralizată, fără server, fără administratori și open-source la 4chan, unde oricine poate crea și deține criptografic forumuri nelimitate. Toate forumurile sunt auto-găzduite de proprietarii lor, care rulează noduri <1>bitsocial la care utilizatorii se conectează peer-to-peer. Toate datele sunt doar text, inclusiv linkuri pentru încărcarea mediilor/embeds. Nu ezitați să faceți clic pe un forum de mai jos care vă interesează și să vă alăturați imediat!", + "5chan_description": "5chan este o alternativă descentralizată, fără server, fără administratori și open-source la 4chan, unde oricine poate crea și deține criptografic forumuri nelimitate. Toate forumurile sunt auto-găzduite de proprietarii lor, care rulează noduri <1>plebbit la care utilizatorii se conectează peer-to-peer. Toate datele sunt doar text, inclusiv linkuri pentru încărcarea mediilor/embeds. Nu ezitați să faceți clic pe un forum de mai jos care vă interesează și să vă alăturați imediat!", "no_global_rules_info": "Poți să te conectezi întotdeauna la orice forum, complet P2P, nimeni nu te poate opri. Pur și simplu lipește adresa în câmpul de căutare de mai sus.", "boards": "forumuri", "popular_threads": "Threaduri populare", diff --git a/public/translations/ru/default.json b/public/translations/ru/default.json index 4bea80c4..6c6077d1 100644 --- a/public/translations/ru/default.json +++ b/public/translations/ru/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "Что такое плебчан?", "go": "идти", "or": "или", - "5chan_description": "5chan - это безсерверная, безадминистративная, децентрализованная и открытая альтернатива 4chan, где любой может создавать и криптографически владеть неограниченным количеством форумов. Все форумы само-хостятся их владельцами, которые запускают узлы <1>bitsocial, к которым пользователи подключаются peer-to-peer. Все данные только текстовые, включая ссылки для загрузки медиа/встроек. Не стесняйтесь нажимать на форум ниже, который вас интересует, и присоединяйтесь немедленно!", + "5chan_description": "5chan - это безсерверная, безадминистративная, децентрализованная и открытая альтернатива 4chan, где любой может создавать и криптографически владеть неограниченным количеством форумов. Все форумы само-хостятся их владельцами, которые запускают узлы <1>plebbit, к которым пользователи подключаются peer-to-peer. Все данные только текстовые, включая ссылки для загрузки медиа/встроек. Не стесняйтесь нажимать на форум ниже, который вас интересует, и присоединяйтесь немедленно!", "no_global_rules_info": "Вы всегда можете подключиться к любому форуму, полностью P2P, никто не может вас остановить. Просто вставьте адрес в поле поиска выше.", "boards": "форумы", "popular_threads": "Популярные темы", diff --git a/public/translations/sq/default.json b/public/translations/sq/default.json index 401b7c52..8c6a915d 100644 --- a/public/translations/sq/default.json +++ b/public/translations/sq/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "Çfarë është 5chan?", "go": "shko", "or": "ose", - "5chan_description": "5chan është një alternativë e 4chan decentralizuar, pa server, pa administratorë dhe me kod të hapur, ku kushdo mund të krijojë dhe të posedojë kriptografikisht forume të pakufizuara. Të gjitha forumet janë vetë-hostuar nga pronarët e tyre, të cilët drejtojnë nyje <1>bitsocial me të cilat përdoruesit lidhen peer-to-peer. Të gjitha të dhënat janë vetëm tekst, duke përfshirë lidhjet për ngarkimin e media/embeds. Mos ngurroni të klikoni në një forum më poshtë që ju intereson dhe të bashkoheni menjëherë!", + "5chan_description": "5chan është një alternativë e 4chan decentralizuar, pa server, pa administratorë dhe me kod të hapur, ku kushdo mund të krijojë dhe të posedojë kriptografikisht forume të pakufizuara. Të gjitha forumet janë vetë-hostuar nga pronarët e tyre, të cilët drejtojnë nyje <1>plebbit me të cilat përdoruesit lidhen peer-to-peer. Të gjitha të dhënat janë vetëm tekst, duke përfshirë lidhjet për ngarkimin e media/embeds. Mos ngurroni të klikoni në një forum më poshtë që ju intereson dhe të bashkoheni menjëherë!", "no_global_rules_info": "Mund të lidheni gjithmonë me çdo forum, plotësisht P2P, askush nuk mund t'ju ndalojë. Thjesht ngjisni adresën në fushën e kërkimit më sipër.", "boards": "forume", "popular_threads": "Threadet e njohur", diff --git a/public/translations/sv/default.json b/public/translations/sv/default.json index 913d6c3f..2380c16e 100644 --- a/public/translations/sv/default.json +++ b/public/translations/sv/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "Vad är 5chan?", "go": "gå", "or": "eller", - "5chan_description": "5chan är ett serverlöst, adminlöst, decentraliserat och öppen källkod alternativ till 4chan där vem som helst kan skapa och kryptografiskt äga obegränsade forum. Alla forum är själv-hostade av sina ägare, som kör <1>bitsocial noder som användare ansluter till peer-to-peer. Alla data är endast text, inklusive länkar för att ladda media/embeds. Tveka inte att klicka på ett forum nedan som intresserar dig och gå med direkt!", + "5chan_description": "5chan är ett serverlöst, adminlöst, decentraliserat och öppen källkod alternativ till 4chan där vem som helst kan skapa och kryptografiskt äga obegränsade forum. Alla forum är själv-hostade av sina ägare, som kör <1>plebbit noder som användare ansluter till peer-to-peer. Alla data är endast text, inklusive länkar för att ladda media/embeds. Tveka inte att klicka på ett forum nedan som intresserar dig och gå med direkt!", "no_global_rules_info": "Du kan alltid ansluta till vilket forum som helst, helt P2P, ingen kan stoppa dig. Klistra bara in adressen i sökfältet ovan.", "boards": "forum", "popular_threads": "Populära trådar", diff --git a/public/translations/te/default.json b/public/translations/te/default.json index b349c1c3..e19d10ae 100644 --- a/public/translations/te/default.json +++ b/public/translations/te/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "ప్లెబ్‌చాన్ ఏమిటి?", "go": "వెళ్లు", "or": "లేదా", - "5chan_description": "5chan ఒక సర్వర్‌లేని, అడ్మిన్‌లేని, డిసెంట్రలైజ్‌డ్ మరియు ఓపెన్-సోర్స్ 4chan వైకల్పికం, ఇక్కడ ఎవరైనా అపరిమిత బోర్డ్‌లను సృష్టించి క్రిప్టోగ్రాఫిక్‌గా కలిగి ఉండవచ్చు. అన్ని బోర్డ్‌లు వాటి యజమానులచే సెల్ఫ్-హోస్ట్ చేయబడతాయి, వారు <1>bitsocial నోడ్‌లను నడుపుతారు, వీటికి వినియోగదారులు పీయర్-టు-పీయర్ కనెక్ట్ అవుతారు. అన్ని డేటా టెక్స్ట్ మాత్రమే, మీడియా/ఎంబెడ్‌లను లోడ్ చేయడానికి లింక్‌లతో సహా. మీకు ఆసక్తి కలిగించే క్రింది బోర్డ్‌పై క్లిక్ చేసి వెంటనే చేరండి!", + "5chan_description": "5chan ఒక సర్వర్‌లేని, అడ్మిన్‌లేని, డిసెంట్రలైజ్‌డ్ మరియు ఓపెన్-సోర్స్ 4chan వైకల్పికం, ఇక్కడ ఎవరైనా అపరిమిత బోర్డ్‌లను సృష్టించి క్రిప్టోగ్రాఫిక్‌గా కలిగి ఉండవచ్చు. అన్ని బోర్డ్‌లు వాటి యజమానులచే సెల్ఫ్-హోస్ట్ చేయబడతాయి, వారు <1>plebbit నోడ్‌లను నడుపుతారు, వీటికి వినియోగదారులు పీయర్-టు-పీయర్ కనెక్ట్ అవుతారు. అన్ని డేటా టెక్స్ట్ మాత్రమే, మీడియా/ఎంబెడ్‌లను లోడ్ చేయడానికి లింక్‌లతో సహా. మీకు ఆసక్తి కలిగించే క్రింది బోర్డ్‌పై క్లిక్ చేసి వెంటనే చేరండి!", "no_global_rules_info": "మీరు ఎప్పుడైనా ఏదైనా బోర్డ్‌కు కనెక్ట్ అవ్వవచ్చు, పూర్తిగా P2P, మిమ్మల్ని ఎవరూ ఆపలేరు. దాని చిరునామాను పైన ఉన్న శోధన ఫీల్డ్‌లో అతికించండి.", "boards": "సందేశ బోర్డులు", "popular_threads": "జనప్రియమైన థ్రెడ్‌లు", diff --git a/public/translations/th/default.json b/public/translations/th/default.json index 18362f64..b4136413 100644 --- a/public/translations/th/default.json +++ b/public/translations/th/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "พล็อกไซต์คืออะไร?", "go": "ไป", "or": "หรือ", - "5chan_description": "5chan เป็นทางเลือกที่ไม่มีเซิร์ฟเวอร์ ไม่มีแอดมิน แบบกระจายอำนาจ และโอเพนซอร์สสำหรับ 4chan ที่ใครก็สามารถสร้างและเป็นเจ้าของบอร์ดได้ไม่จำกัดด้วยการเข้ารหัส บอร์ดทั้งหมดถูกโฮสต์เองโดยเจ้าของผู้ซึ่งรันโหนด <1>bitsocial ที่ผู้ใช้เชื่อมต่อแบบ peer-to-peer ข้อมูลทั้งหมดเป็นข้อความเท่านั้น รวมถึงลิงก์สำหรับโหลดสื่อ/embeds อย่าลังเลที่จะคลิกบอร์ดด้านล่างที่คุณสนใจและเข้าร่วมทันที!", + "5chan_description": "5chan เป็นทางเลือกที่ไม่มีเซิร์ฟเวอร์ ไม่มีแอดมิน แบบกระจายอำนาจ และโอเพนซอร์สสำหรับ 4chan ที่ใครก็สามารถสร้างและเป็นเจ้าของบอร์ดได้ไม่จำกัดด้วยการเข้ารหัส บอร์ดทั้งหมดถูกโฮสต์เองโดยเจ้าของผู้ซึ่งรันโหนด <1>plebbit ที่ผู้ใช้เชื่อมต่อแบบ peer-to-peer ข้อมูลทั้งหมดเป็นข้อความเท่านั้น รวมถึงลิงก์สำหรับโหลดสื่อ/embeds อย่าลังเลที่จะคลิกบอร์ดด้านล่างที่คุณสนใจและเข้าร่วมทันที!", "no_global_rules_info": "คุณสามารถเชื่อมต่อกับบอร์ดใดก็ได้เสมอ แบบ P2P เต็มรูปแบบ ไม่มีใครสามารถหยุดคุณได้ เพียงแค่วางที่อยู่ของมันในช่องค้นหาด้านบน", "boards": "กระดานข่าว", "popular_threads": "กระทู้ยอดนิยม", diff --git a/public/translations/tr/default.json b/public/translations/tr/default.json index 81878487..9c8b5e09 100644 --- a/public/translations/tr/default.json +++ b/public/translations/tr/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "5chan nedir?", "go": "git", "or": "veya", - "5chan_description": "5chan, herkesin sınırsız forum oluşturabileceği ve kriptografik olarak sahip olabileceği sunucusuz, yöneticisiz, merkezi olmayan ve açık kaynaklı bir 4chan alternatifidir. Tüm forumlar sahipleri tarafından kendi kendine barındırılır ve kullanıcıların peer-to-peer bağlandığı <1>bitsocial düğümlerini çalıştırırlar. Tüm veriler yalnızca metindir, medya/embeds yüklemek için bağlantılar dahil. İlgilendiğiniz aşağıdaki foruma tıklamaktan çekinmeyin ve hemen katılın!", + "5chan_description": "5chan, herkesin sınırsız forum oluşturabileceği ve kriptografik olarak sahip olabileceği sunucusuz, yöneticisiz, merkezi olmayan ve açık kaynaklı bir 4chan alternatifidir. Tüm forumlar sahipleri tarafından kendi kendine barındırılır ve kullanıcıların peer-to-peer bağlandığı <1>plebbit düğümlerini çalıştırırlar. Tüm veriler yalnızca metindir, medya/embeds yüklemek için bağlantılar dahil. İlgilendiğiniz aşağıdaki foruma tıklamaktan çekinmeyin ve hemen katılın!", "no_global_rules_info": "Her zaman herhangi bir foruma bağlanabilirsiniz, tamamen P2P, kimse sizi durduramaz. Adresini yukarıdaki arama alanına yapıştırmanız yeterli.", "boards": "forumlar", "popular_threads": "Popüler konular", diff --git a/public/translations/uk/default.json b/public/translations/uk/default.json index 00401942..adec5352 100644 --- a/public/translations/uk/default.json +++ b/public/translations/uk/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "Що таке Плебчан?", "go": "йди", "or": "або", - "5chan_description": "5chan - це безсерверний, безадміністративний, децентралізований та відкритий альтернативний 4chan, де будь-хто може створити та криптографічно володіти необмеженою кількістю форумів. Усі форуми само-хостяться їх власниками, які запускають вузли <1>bitsocial, до яких користувачі підключаються peer-to-peer. Усі дані лише текстові, включаючи посилання для завантаження медіа/embeds. Не соромтеся натискати на форум нижче, який вас цікавить, і приєднуйтеся одразу!", + "5chan_description": "5chan - це безсерверний, безадміністративний, децентралізований та відкритий альтернативний 4chan, де будь-хто може створити та криптографічно володіти необмеженою кількістю форумів. Усі форуми само-хостяться їх власниками, які запускають вузли <1>plebbit, до яких користувачі підключаються peer-to-peer. Усі дані лише текстові, включаючи посилання для завантаження медіа/embeds. Не соромтеся натискати на форум нижче, який вас цікавить, і приєднуйтеся одразу!", "no_global_rules_info": "Ви завжди можете підключитися до будь-якого форуму, повністю P2P, ніхто не може вас зупинити. Просто вставте його адресу в поле пошуку вище.", "boards": "форуми", "popular_threads": "Популярні теми", diff --git a/public/translations/ur/default.json b/public/translations/ur/default.json index 1149d892..d7baeacc 100644 --- a/public/translations/ur/default.json +++ b/public/translations/ur/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "پلیبچان کیا ہے؟", "go": "جا", "or": "یا", - "5chan_description": "5chan ایک سرور کے بغیر، ایڈمن کے بغیر، غیر مرکزی اور اوپن سورس 4chan کا متبادل ہے جہاں کوئی بھی لامحدود بورڈز بنا سکتا ہے اور کریپٹوگرافک طور پر ان کا مالک ہو سکتا ہے۔ تمام بورڈز ان کے مالکان کے ذریعے خود میزبانی کیے جاتے ہیں، جو <1>bitsocial نوڈز چلاتے ہیں جن سے صارفین پیر-ٹو-پیر کنیکٹ ہوتے ہیں۔ تمام ڈیٹا صرف ٹیکسٹ ہے، میڈیا/ایمبیڈز لوڈ کرنے کے لیے لنکس سمیت۔ آپ کو جو بورڈ دلچسپ لگے اس پر کلک کریں اور فوراً شامل ہوں!", + "5chan_description": "5chan ایک سرور کے بغیر، ایڈمن کے بغیر، غیر مرکزی اور اوپن سورس 4chan کا متبادل ہے جہاں کوئی بھی لامحدود بورڈز بنا سکتا ہے اور کریپٹوگرافک طور پر ان کا مالک ہو سکتا ہے۔ تمام بورڈز ان کے مالکان کے ذریعے خود میزبانی کیے جاتے ہیں، جو <1>plebbit نوڈز چلاتے ہیں جن سے صارفین پیر-ٹو-پیر کنیکٹ ہوتے ہیں۔ تمام ڈیٹا صرف ٹیکسٹ ہے، میڈیا/ایمبیڈز لوڈ کرنے کے لیے لنکس سمیت۔ آپ کو جو بورڈ دلچسپ لگے اس پر کلک کریں اور فوراً شامل ہوں!", "no_global_rules_info": "آپ ہمیشہ کسی بھی بورڈ سے کنیکٹ ہو سکتے ہیں، مکمل طور پر P2P، کوئی آپ کو روک نہیں سکتا۔ بس اس کا پتہ اوپر والے سرچ فیلڈ میں پیسٹ کریں۔", "boards": "پیغام بورڈز", "popular_threads": "مقبول تھریڈز", diff --git a/public/translations/vi/default.json b/public/translations/vi/default.json index 8210cd02..cca42c5f 100644 --- a/public/translations/vi/default.json +++ b/public/translations/vi/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "5chan là gì?", "go": "đi", "or": "hoặc", - "5chan_description": "5chan là một lựa chọn thay thế phi tập trung, không có máy chủ, không có quản trị viên và mã nguồn mở cho 4chan nơi bất kỳ ai cũng có thể tạo và sở hữu mã hóa các diễn đàn không giới hạn. Tất cả các diễn đàn được tự lưu trữ bởi chủ sở hữu của chúng, những người chạy các nút <1>bitsocial mà người dùng kết nối peer-to-peer. Tất cả dữ liệu chỉ là văn bản, bao gồm các liên kết để tải phương tiện/embeds. Hãy thoải mái nhấp vào một diễn đàn dưới đây mà bạn quan tâm và tham gia ngay!", + "5chan_description": "5chan là một lựa chọn thay thế phi tập trung, không có máy chủ, không có quản trị viên và mã nguồn mở cho 4chan nơi bất kỳ ai cũng có thể tạo và sở hữu mã hóa các diễn đàn không giới hạn. Tất cả các diễn đàn được tự lưu trữ bởi chủ sở hữu của chúng, những người chạy các nút <1>plebbit mà người dùng kết nối peer-to-peer. Tất cả dữ liệu chỉ là văn bản, bao gồm các liên kết để tải phương tiện/embeds. Hãy thoải mái nhấp vào một diễn đàn dưới đây mà bạn quan tâm và tham gia ngay!", "no_global_rules_info": "Bạn luôn có thể kết nối với bất kỳ diễn đàn nào, hoàn toàn P2P, không ai có thể ngăn cản bạn. Chỉ cần dán địa chỉ của nó vào trường tìm kiếm ở trên.", "boards": "diễn đàn", "popular_threads": "Chủ đề phổ biến", diff --git a/public/translations/zh/default.json b/public/translations/zh/default.json index 82ed19a1..fe1ea986 100644 --- a/public/translations/zh/default.json +++ b/public/translations/zh/default.json @@ -2,7 +2,7 @@ "what_is_5chan": "5chan是什么?", "go": "去", "or": "或者", - "5chan_description": "5chan是4chan的无服务器、无管理员、去中心化和开源的替代品,任何人都可以创建和加密拥有无限的论坛。所有论坛都由其所有者自托管,他们运行<1>bitsocial节点,用户以点对点方式连接。所有数据都是纯文本,包括加载媒体/嵌入的链接。随时点击下面您感兴趣的论坛,立即加入吧!", + "5chan_description": "5chan是4chan的无服务器、无管理员、去中心化和开源的替代品,任何人都可以创建和加密拥有无限的论坛。所有论坛都由其所有者自托管,他们运行<1>plebbit节点,用户以点对点方式连接。所有数据都是纯文本,包括加载媒体/嵌入的链接。随时点击下面您感兴趣的论坛,立即加入吧!", "no_global_rules_info": "您始终可以连接到任何论坛,完全P2P,没有人能阻止您。只需将其地址粘贴到上面的搜索字段中即可。", "boards": "论坛", "popular_threads": "热门主题", From 3360a41b00bea9a1ae3dd2b837faf1df0777ae03 Mon Sep 17 00:00:00 2001 From: plebeius Date: Sat, 18 Oct 2025 23:06:21 +0200 Subject: [PATCH 13/15] fix: rename invalid identifiers starting with digit to fivechan --- android/app/build.gradle | 4 ++-- android/app/src/main/AndroidManifest.xml | 2 +- .../app/src/main/assets/capacitor.config.json | 2 +- .../plebchan/android/FileUploaderPlugin.java | 2 +- .../main/java/plebchan/android/FileUtils.java | 2 +- .../java/plebchan/android/MainActivity.java | 2 +- android/app/src/main/res/values/strings.xml | 4 ++-- capacitor.config.ts | 2 +- electron/after-all-artifact-build.cjs | 6 +++--- scripts/deploy.sh | 18 +++++++++--------- 10 files changed, 22 insertions(+), 22 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 670cc41f..8ba7e3fd 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -1,10 +1,10 @@ apply plugin: 'com.android.application' android { - namespace "5chan.android" + namespace "fivechan.android" compileSdkVersion rootProject.ext.compileSdkVersion defaultConfig { - applicationId "5chan.android" + applicationId "fivechan.android" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 085e1a14..7c770b88 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -13,7 +13,7 @@ 5chan 5chan - 5chan.android - 5chan.android + fivechan.android + fivechan.android diff --git a/capacitor.config.ts b/capacitor.config.ts index fc366b4d..810e83c1 100644 --- a/capacitor.config.ts +++ b/capacitor.config.ts @@ -1,7 +1,7 @@ import { CapacitorConfig } from '@capacitor/cli'; const config: CapacitorConfig = { - appId: '5chan.android', + appId: 'fivechan.android', appName: '5chan', webDir: 'build', plugins: { diff --git a/electron/after-all-artifact-build.cjs b/electron/after-all-artifact-build.cjs index e19a0f46..2473ee6e 100644 --- a/electron/after-all-artifact-build.cjs +++ b/electron/after-all-artifact-build.cjs @@ -21,12 +21,12 @@ function createHtmlArchive() { return; } const zipBinPath = path.resolve(rootPath, 'node_modules', '7zip-bin', 'linux', 'x64', '7za'); - const 5chanHtmlFolderName = `5chan-html-${packageJson.version}`; - const outputFile = path.resolve(distFolderPath, `${5chanHtmlFolderName}.zip`); + const fivechanHtmlFolderName = `5chan-html-${packageJson.version}`; + const outputFile = path.resolve(distFolderPath, `${fivechanHtmlFolderName}.zip`); const inputFolder = path.resolve(rootPath, 'build'); try { execSync(`${zipBinPath} a ${outputFile} ${inputFolder}`); - execSync(`${zipBinPath} rn -r ${outputFile} build ${5chanHtmlFolderName}`); + execSync(`${zipBinPath} rn -r ${outputFile} build ${fivechanHtmlFolderName}`); } catch (e) { console.error('electron build createHtmlArchive error:', e); } diff --git a/scripts/deploy.sh b/scripts/deploy.sh index b7bd62d7..eef4c3de 100755 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -16,22 +16,22 @@ if [ -z "${DEPLOY_USER+xxx}" ]; then echo "DEPLOY_USER not set" && exit; fi if [ -z "${DEPLOY_PASSWORD+xxx}" ]; then echo "DEPLOY_PASSWORD not set" && exit; fi # save version -5chan_VERSION=$(node -e "console.log(require('../package.json').version)") -5chan_HTML_NAME="5chan-html-$5chan_VERSION" +FIVECHAN_VERSION=$(node -e "console.log(require('../package.json').version)") +FIVECHAN_HTML_NAME="5chan-html-$FIVECHAN_VERSION" SCRIPT=" # download html cd ~ -rm $5chan_HTML_NAME.zip -rm -fr $5chan_HTML_NAME -wget https://github.com/plebbit/5chan/releases/download/v$5chan_VERSION/$5chan_HTML_NAME.zip || exit +rm $FIVECHAN_HTML_NAME.zip +rm -fr $FIVECHAN_HTML_NAME +wget https://github.com/plebbit/5chan/releases/download/v$FIVECHAN_VERSION/$FIVECHAN_HTML_NAME.zip || exit # extract html -unzip $5chan_HTML_NAME.zip || exit -rm $5chan_HTML_NAME.zip || exit +unzip $FIVECHAN_HTML_NAME.zip || exit +rm $FIVECHAN_HTML_NAME.zip || exit # add to ipfs -CID=\`ipfs add --recursive --pin --quieter $5chan_HTML_NAME | tail -n 1\` +CID=\`ipfs add --recursive --pin --quieter $FIVECHAN_HTML_NAME | tail -n 1\` ipfs pin add --recursive \"\$CID\" # start ipfs daemon if not started @@ -42,7 +42,7 @@ nohup ipfs daemon & sleep 3 echo \"\" CID=\`ipfs cid base32 \$CID\` -echo $5chan_HTML_NAME \"CID: \$CID\" +echo $FIVECHAN_HTML_NAME \"CID: \$CID\" echo \"\" " From 09c0543fe18c82a88bddd5de156ed1d4809611b9 Mon Sep 17 00:00:00 2001 From: plebeius Date: Sat, 18 Oct 2025 23:24:10 +0200 Subject: [PATCH 14/15] update translations --- public/translations/ar/default.json | 4 ++-- public/translations/bn/default.json | 4 ++-- public/translations/fa/default.json | 4 ++-- public/translations/he/default.json | 4 ++-- public/translations/hi/default.json | 4 ++-- public/translations/ja/default.json | 4 ++-- public/translations/ko/default.json | 4 ++-- public/translations/mr/default.json | 4 ++-- public/translations/ru/default.json | 4 ++-- public/translations/te/default.json | 4 ++-- public/translations/th/default.json | 4 ++-- public/translations/uk/default.json | 4 ++-- public/translations/ur/default.json | 4 ++-- public/translations/zh/default.json | 4 ++-- 14 files changed, 28 insertions(+), 28 deletions(-) diff --git a/public/translations/ar/default.json b/public/translations/ar/default.json index 8b0ae009..f6b845c9 100644 --- a/public/translations/ar/default.json +++ b/public/translations/ar/default.json @@ -1,5 +1,5 @@ { - "what_is_5chan": "ما هو بليبتشان؟", + "what_is_5chan": "ما هو 5chan؟", "go": "اذهب", "or": "أو", "5chan_description": "5chan هو بديل لـ 4chan موزع، بدون خادم، بدون مسؤولين، ومفتوح المصدر، حيث يمكن لأي شخص إنشاء وامتلاك منتديات غير محدودة بشكل تشفيري. جميع المنتديات مستضافة ذاتياً من قبل أصحابها، الذين يشغلون عقد <1>plebbit التي يتصل بها المستخدمون، نقطة لنقطة. جميع البيانات نصية فقط، بما في ذلك الروابط لتحميل الوسائط/التضمينات. لا تتردد في النقر فوق منتدى أدناه الذي يهمك والانضمام فورًا!", @@ -296,4 +296,4 @@ "filter_and_highlights_help": "مساعدة الفلاتر والإبرازات", "filter_and_highlights": "التصفية والتسليط الضوء", "boards_you_moderate": "المنتديات التي تقوم بالإشراف عليها" -} \ No newline at end of file +} diff --git a/public/translations/bn/default.json b/public/translations/bn/default.json index 06058458..ca982099 100644 --- a/public/translations/bn/default.json +++ b/public/translations/bn/default.json @@ -1,5 +1,5 @@ { - "what_is_5chan": "প্লেবচ্যান কি?", + "what_is_5chan": "5chan কি?", "go": "যাও", "or": "অথবা", "5chan_description": "5chan একটি সার্ভারলেস, অ্যাডমিনলেস, ডিসেন্ট্রালাইজড এবং ওপেন-সোর্স 4chan বিকল্প যেখানে কেউই অসীম বোর্ড তৈরি এবং ক্রিপ্টোগ্রাফিকভাবে মালিকত্ব করতে পারেন। সমস্ত বোর্ড তাদের মালিকদের দ্বারা স্ব-হোস্ট করা হয়, যারা <1>plebbit নোড চালায় যেগুলিতে ব্যবহারকারীরা পিয়ার-টু-পিয়ার সংযোগ করে। সমস্ত ডেটা শুধুমাত্র টেক্সট, মিডিয়া/এমবেড লোড করার লিংক সহ। আপনি যেটা আপনার সাথে আগ্রহী তার নিচে একটি বোর্ডে ক্লিক করে যথাযথভাবে যোগদান করতে পারেন!", @@ -296,4 +296,4 @@ "filter_and_highlights_help": "ফিল্টার এবং হাইলাইট সাহায্য", "filter_and_highlights": "ফিল্টার এবং হাইলাইট", "boards_you_moderate": "আপনি যে বোর্ডগুলি পরিচালনা করেন" -} \ No newline at end of file +} diff --git a/public/translations/fa/default.json b/public/translations/fa/default.json index cf6f6cb9..f3ae2be6 100644 --- a/public/translations/fa/default.json +++ b/public/translations/fa/default.json @@ -1,5 +1,5 @@ { - "what_is_5chan": "پلبچن چیست؟", + "what_is_5chan": "5chan چیست؟", "go": "برو", "or": "یا", "5chan_description": "پلبچن یک جایگزین ۴چن بدون سرور، بدون مدیر، غیرمتمرکز و منبع باز است که هر کسی می‌تواند تالارهای نامحدودی را ایجاد و رمزنگاری کند. تمام تالارها توسط مالکانشان خودمیزبان هستند، که گره‌های <1>بیت‌سوشال را اجرا می‌کنند که کاربران به آنها همتا به همتا متصل می‌شوند. تمام داده‌ها فقط متن هستند، از جمله پیوندها برای بارگذاری رسانه/جاسازی‌ها. لطفاً روی یک تالار زیر که به شما علاقه‌مند است کلیک کنید و مستقیماً به آن بپیوندید!", @@ -296,4 +296,4 @@ "filter_and_highlights_help": "کمک فیلترها و برجسته‌ها", "filter_and_highlights": "فیلترها و برجسته‌ها", "boards_you_moderate": "تابلوهایی که مدیریت می‌کنید" -} \ No newline at end of file +} diff --git a/public/translations/he/default.json b/public/translations/he/default.json index 2ef5576e..8977e131 100644 --- a/public/translations/he/default.json +++ b/public/translations/he/default.json @@ -1,5 +1,5 @@ { - "what_is_5chan": "מה זה פלבצ׳ן?", + "what_is_5chan": "מה זה 5chan?", "go": "לך", "or": "או", "5chan_description": "פלבצ'ן הוא אלטרנטיבה חדשה, ללא שרת, ללא מנהל, ללא מרכזית וקוד פתוח ל־4chan, בה כל אחד יכול ליצור ולבעוט בלוחות ללא הגבלה בצורה קריפטוגרפית. כל הלוחות מארחים את עצמם על ידי בעליהם, שמפעילים צמתים <1>plebbit שמשתמשים מתחברים אליהם פר-לפר. כל הנתונים הם טקסט בלבד, כולל קישורים לטעינת מדיה/הטמעות. נכון ללחוץ על לוח מטה שמעניין אתכם ולהצטרף מיידית!", @@ -296,4 +296,4 @@ "filter_and_highlights_help": "עזרה במסננים והדגשות", "filter_and_highlights": "מסננים והדגשות", "boards_you_moderate": "לוחות שאתה מפקח עליהם" -} \ No newline at end of file +} diff --git a/public/translations/hi/default.json b/public/translations/hi/default.json index d59d5148..bd52298b 100644 --- a/public/translations/hi/default.json +++ b/public/translations/hi/default.json @@ -1,5 +1,5 @@ { - "what_is_5chan": "प्लेबचैन क्या है?", + "what_is_5chan": "5chan क्या है?", "go": "जाओ", "or": "या", "5chan_description": "प्लेबचान एक सर्वरलेस, एडमिनलेस, डीसेंट्रलाइज्ड और ओपन-सोर्स 4chan का विकल्प है जहां कोई भी असीमित बोर्ड बना सकता है और क्रिप्टोग्राफिक रूप से मालिक हो सकता है। सभी बोर्ड उनके मालिकों द्वारा सेल्फ-होस्टेड हैं, जो <1>बिटसोशल नोड्स चलाते हैं जिनसे उपयोगकर्ता पीयर-टू-पीयर जुड़ते हैं। सभी डेटा केवल टेक्स्ट है, मीडिया/एम्बेड्स लोड करने के लिंक सहित। आपको जो भी बोर्ड नीचे पसंद है, उसपर क्लिक करें और तुरंत शामिल हों!", @@ -296,4 +296,4 @@ "filter_and_highlights_help": "फ़िल्टर और हाइलाइट्स सहायता", "filter_and_highlights": "फ़िल्टर और हाइलाइट्स", "boards_you_moderate": "बोर्ड जो आप मॉडरेट करते हैं" -} \ No newline at end of file +} diff --git a/public/translations/ja/default.json b/public/translations/ja/default.json index 9fcef6a8..cd684e0a 100644 --- a/public/translations/ja/default.json +++ b/public/translations/ja/default.json @@ -1,5 +1,5 @@ { - "what_is_5chan": "プレブチャンとは何ですか?", + "what_is_5chan": "5chanとは何ですか?", "go": "行く", "or": "または", "5chan_description": "5chan は、サーバーレス、管理者なし、分散型、オープンソースの 4chan の代替であり、誰でも無制限のボードを作成して暗号学的に所有できます。すべてのボードは所有者によってセルフホストされ、ユーザーがピアツーピアで接続する <1>plebbit ノードを実行します。すべてのデータはテキストのみで、メディア/埋め込みを読み込むためのリンクを含みます。興味のあるボードをクリックして、すぐに参加してください!", @@ -296,4 +296,4 @@ "filter_and_highlights_help": "フィルターとハイライトのヘルプ", "filter_and_highlights": "フィルターとハイライト", "boards_you_moderate": "あなたが管理するボード" -} \ No newline at end of file +} diff --git a/public/translations/ko/default.json b/public/translations/ko/default.json index 81ed6b27..c82673f2 100644 --- a/public/translations/ko/default.json +++ b/public/translations/ko/default.json @@ -1,5 +1,5 @@ { - "what_is_5chan": "플레브찬이란 무엇인가요?", + "what_is_5chan": "5chan이란 무엇인가요?", "go": "가기", "or": "또는", "5chan_description": "5chan은 서버 없이, 관리자 없이, 분산형이고 오픈소스인 4chan 대안으로 누구나 무제한의 게시판을 생성하고 암호학적으로 소유할 수 있습니다. 모든 게시판은 소유자에 의해 자체 호스팅되며, 사용자가 피어투피어로 연결하는 <1>plebbit 노드를 실행합니다. 모든 데이터는 텍스트만이며, 미디어/임베드를 로드하는 링크를 포함합니다. 관심 있는 아래의 게시판을 클릭하고 바로 참여해보세요!", @@ -296,4 +296,4 @@ "filter_and_highlights_help": "필터 및 하이라이트 도움말", "filter_and_highlights": "필터 및 하이라이트", "boards_you_moderate": "당신이 관리하는 게시판" -} \ No newline at end of file +} diff --git a/public/translations/mr/default.json b/public/translations/mr/default.json index 9a91f6cb..356979f7 100644 --- a/public/translations/mr/default.json +++ b/public/translations/mr/default.json @@ -1,5 +1,5 @@ { - "what_is_5chan": "प्लेबचॅन काय आहे?", + "what_is_5chan": "5chan काय आहे?", "go": "जा", "or": "किव्हा", "5chan_description": "प्लेबचॅन हा सर्व्हरलेस, एडमिनलेस, डीसेंट्रलाइझ्ड आणि ओपन-सोर्स ४चॅनचा पर्याय आहे ज्यात कोणीही अमित बोर्ड तयार करून क्रिप्टोग्राफिकली मालकी घेऊ शकतो. सर्व बोर्ड त्यांच्या मालकांकडून सेल्फ-होस्टेड असतात, जे <1>plebbit नोड्स चालवतात ज्यांना वापरकर्ते पीयर-टू-पीयर कनेक्ट करतात. सर्व डेटा फक्त टेक्स्ट आहे, मीडिया/एम्बेड्स लोड करण्यासाठी लिंक्ससह. आपल्याला आवडता असलेला खालील बोर्ड क्लिक करून प्रवेश करा आणि लगेच ज्वाइन करा!", @@ -296,4 +296,4 @@ "filter_and_highlights_help": "फिल्टर आणि हायलाइट्स सहाय्य", "filter_and_highlights": "फिल्टर आणि हायलाइट्स", "boards_you_moderate": "तुम्ही ज्यांचे नियंत्रण करता अशा बोर्ड्स" -} \ No newline at end of file +} diff --git a/public/translations/ru/default.json b/public/translations/ru/default.json index 6c6077d1..5771b6ae 100644 --- a/public/translations/ru/default.json +++ b/public/translations/ru/default.json @@ -1,5 +1,5 @@ { - "what_is_5chan": "Что такое плебчан?", + "what_is_5chan": "Что такое 5chan?", "go": "идти", "or": "или", "5chan_description": "5chan - это безсерверная, безадминистративная, децентрализованная и открытая альтернатива 4chan, где любой может создавать и криптографически владеть неограниченным количеством форумов. Все форумы само-хостятся их владельцами, которые запускают узлы <1>plebbit, к которым пользователи подключаются peer-to-peer. Все данные только текстовые, включая ссылки для загрузки медиа/встроек. Не стесняйтесь нажимать на форум ниже, который вас интересует, и присоединяйтесь немедленно!", @@ -296,4 +296,4 @@ "filter_and_highlights_help": "Помощь с фильтрами и выделениями", "filter_and_highlights": "Фильтры и выделения", "boards_you_moderate": "boards, которые вы модерируете" -} \ No newline at end of file +} diff --git a/public/translations/te/default.json b/public/translations/te/default.json index e19d10ae..1b834c91 100644 --- a/public/translations/te/default.json +++ b/public/translations/te/default.json @@ -1,5 +1,5 @@ { - "what_is_5chan": "ప్లెబ్‌చాన్ ఏమిటి?", + "what_is_5chan": "5chan ఏమిటి?", "go": "వెళ్లు", "or": "లేదా", "5chan_description": "5chan ఒక సర్వర్‌లేని, అడ్మిన్‌లేని, డిసెంట్రలైజ్‌డ్ మరియు ఓపెన్-సోర్స్ 4chan వైకల్పికం, ఇక్కడ ఎవరైనా అపరిమిత బోర్డ్‌లను సృష్టించి క్రిప్టోగ్రాఫిక్‌గా కలిగి ఉండవచ్చు. అన్ని బోర్డ్‌లు వాటి యజమానులచే సెల్ఫ్-హోస్ట్ చేయబడతాయి, వారు <1>plebbit నోడ్‌లను నడుపుతారు, వీటికి వినియోగదారులు పీయర్-టు-పీయర్ కనెక్ట్ అవుతారు. అన్ని డేటా టెక్స్ట్ మాత్రమే, మీడియా/ఎంబెడ్‌లను లోడ్ చేయడానికి లింక్‌లతో సహా. మీకు ఆసక్తి కలిగించే క్రింది బోర్డ్‌పై క్లిక్ చేసి వెంటనే చేరండి!", @@ -296,4 +296,4 @@ "filter_and_highlights_help": "ఫిల్టర్లు మరియు హైలైట్ సహాయం", "filter_and_highlights": "ఫిల్టర్లు మరియు హైలైట్స్", "boards_you_moderate": "మీరు మోడరేట్ చేసే బోర్డులు" -} \ No newline at end of file +} diff --git a/public/translations/th/default.json b/public/translations/th/default.json index b4136413..50e4ecda 100644 --- a/public/translations/th/default.json +++ b/public/translations/th/default.json @@ -1,5 +1,5 @@ { - "what_is_5chan": "พล็อกไซต์คืออะไร?", + "what_is_5chan": "5chan คืออะไร?", "go": "ไป", "or": "หรือ", "5chan_description": "5chan เป็นทางเลือกที่ไม่มีเซิร์ฟเวอร์ ไม่มีแอดมิน แบบกระจายอำนาจ และโอเพนซอร์สสำหรับ 4chan ที่ใครก็สามารถสร้างและเป็นเจ้าของบอร์ดได้ไม่จำกัดด้วยการเข้ารหัส บอร์ดทั้งหมดถูกโฮสต์เองโดยเจ้าของผู้ซึ่งรันโหนด <1>plebbit ที่ผู้ใช้เชื่อมต่อแบบ peer-to-peer ข้อมูลทั้งหมดเป็นข้อความเท่านั้น รวมถึงลิงก์สำหรับโหลดสื่อ/embeds อย่าลังเลที่จะคลิกบอร์ดด้านล่างที่คุณสนใจและเข้าร่วมทันที!", @@ -296,4 +296,4 @@ "filter_and_highlights_help": "ตัวกรองและการเน้นความช่วยเหลือ", "filter_and_highlights": "ตัวกรองและไฮไลท์", "boards_you_moderate": "บอร์ดที่คุณดูแล" -} \ No newline at end of file +} diff --git a/public/translations/uk/default.json b/public/translations/uk/default.json index adec5352..aae5dfb5 100644 --- a/public/translations/uk/default.json +++ b/public/translations/uk/default.json @@ -1,5 +1,5 @@ { - "what_is_5chan": "Що таке Плебчан?", + "what_is_5chan": "Що таке 5chan?", "go": "йди", "or": "або", "5chan_description": "5chan - це безсерверний, безадміністративний, децентралізований та відкритий альтернативний 4chan, де будь-хто може створити та криптографічно володіти необмеженою кількістю форумів. Усі форуми само-хостяться їх власниками, які запускають вузли <1>plebbit, до яких користувачі підключаються peer-to-peer. Усі дані лише текстові, включаючи посилання для завантаження медіа/embeds. Не соромтеся натискати на форум нижче, який вас цікавить, і приєднуйтеся одразу!", @@ -296,4 +296,4 @@ "filter_and_highlights_help": "Допомога з фільтрами та підсвічуваннями", "filter_and_highlights": "Фільтри та виділення", "boards_you_moderate": "boards, які ви модеруватимете" -} \ No newline at end of file +} diff --git a/public/translations/ur/default.json b/public/translations/ur/default.json index d7baeacc..565254b3 100644 --- a/public/translations/ur/default.json +++ b/public/translations/ur/default.json @@ -1,5 +1,5 @@ { - "what_is_5chan": "پلیبچان کیا ہے؟", + "what_is_5chan": "5chan کیا ہے؟", "go": "جا", "or": "یا", "5chan_description": "5chan ایک سرور کے بغیر، ایڈمن کے بغیر، غیر مرکزی اور اوپن سورس 4chan کا متبادل ہے جہاں کوئی بھی لامحدود بورڈز بنا سکتا ہے اور کریپٹوگرافک طور پر ان کا مالک ہو سکتا ہے۔ تمام بورڈز ان کے مالکان کے ذریعے خود میزبانی کیے جاتے ہیں، جو <1>plebbit نوڈز چلاتے ہیں جن سے صارفین پیر-ٹو-پیر کنیکٹ ہوتے ہیں۔ تمام ڈیٹا صرف ٹیکسٹ ہے، میڈیا/ایمبیڈز لوڈ کرنے کے لیے لنکس سمیت۔ آپ کو جو بورڈ دلچسپ لگے اس پر کلک کریں اور فوراً شامل ہوں!", @@ -296,4 +296,4 @@ "filter_and_highlights_help": "فلٹرز اور ہائی لائٹس کی مدد", "filter_and_highlights": "فلٹرز اور ہائلाइटس", "boards_you_moderate": "وہ بورڈز جن کی آپ نگرانی کرتے ہیں" -} \ No newline at end of file +} diff --git a/public/translations/zh/default.json b/public/translations/zh/default.json index fe1ea986..43c0d736 100644 --- a/public/translations/zh/default.json +++ b/public/translations/zh/default.json @@ -1,5 +1,5 @@ { - "what_is_5chan": "5chan是什么?", + "what_is_5chan": "5chan是什么?", "go": "去", "or": "或者", "5chan_description": "5chan是4chan的无服务器、无管理员、去中心化和开源的替代品,任何人都可以创建和加密拥有无限的论坛。所有论坛都由其所有者自托管,他们运行<1>plebbit节点,用户以点对点方式连接。所有数据都是纯文本,包括加载媒体/嵌入的链接。随时点击下面您感兴趣的论坛,立即加入吧!", @@ -296,4 +296,4 @@ "filter_and_highlights_help": "过滤器和高亮帮助", "filter_and_highlights": "筛选器与高亮", "boards_you_moderate": "您管理的板块" -} \ No newline at end of file +} From e5c55f239702eb08918de702a8e0b10cbb756a04 Mon Sep 17 00:00:00 2001 From: plebeius Date: Mon, 20 Oct 2025 16:33:57 +0200 Subject: [PATCH 15/15] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c69d0a2f..a849b0ff 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -_Telegram group for this repo https://t.me/5chanreact_ +_Telegram group for this repo https://t.me/fivechandev # 5chan