mirror of
https://github.com/glitch-soc/mastodon.git
synced 2024-11-25 01:24:02 -05:00
Merge pull request #2653 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to 7f84bbfd92
This commit is contained in:
commit
0d55610f96
@ -5,7 +5,7 @@
|
||||
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
|
||||
|
||||
"features": {
|
||||
"ghcr.io/devcontainers/features/sshd:1": {},
|
||||
"ghcr.io/devcontainers/features/sshd:1": {}
|
||||
},
|
||||
|
||||
"runServices": ["app", "db", "redis"],
|
||||
@ -15,16 +15,16 @@
|
||||
"portsAttributes": {
|
||||
"3000": {
|
||||
"label": "web",
|
||||
"onAutoForward": "notify",
|
||||
"onAutoForward": "notify"
|
||||
},
|
||||
"4000": {
|
||||
"label": "stream",
|
||||
"onAutoForward": "silent",
|
||||
},
|
||||
"onAutoForward": "silent"
|
||||
}
|
||||
},
|
||||
|
||||
"otherPortsAttributes": {
|
||||
"onAutoForward": "silent",
|
||||
"onAutoForward": "silent"
|
||||
},
|
||||
|
||||
"remoteEnv": {
|
||||
@ -33,7 +33,7 @@
|
||||
"STREAMING_API_BASE_URL": "https://${localEnv:CODESPACE_NAME}-4000.app.github.dev",
|
||||
"DISABLE_FORGERY_REQUEST_PROTECTION": "true",
|
||||
"ES_ENABLED": "",
|
||||
"LIBRE_TRANSLATE_ENDPOINT": "",
|
||||
"LIBRE_TRANSLATE_ENDPOINT": ""
|
||||
},
|
||||
|
||||
"onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
|
||||
@ -43,7 +43,7 @@
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"settings": {},
|
||||
"extensions": ["EditorConfig.EditorConfig", "webben.browserslist"],
|
||||
},
|
||||
},
|
||||
"extensions": ["EditorConfig.EditorConfig", "webben.browserslist"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
|
||||
|
||||
"features": {
|
||||
"ghcr.io/devcontainers/features/sshd:1": {},
|
||||
"ghcr.io/devcontainers/features/sshd:1": {}
|
||||
},
|
||||
|
||||
"forwardPorts": [3000, 4000],
|
||||
@ -14,17 +14,17 @@
|
||||
"3000": {
|
||||
"label": "web",
|
||||
"onAutoForward": "notify",
|
||||
"requireLocalPort": true,
|
||||
"requireLocalPort": true
|
||||
},
|
||||
"4000": {
|
||||
"label": "stream",
|
||||
"onAutoForward": "silent",
|
||||
"requireLocalPort": true,
|
||||
},
|
||||
"requireLocalPort": true
|
||||
}
|
||||
},
|
||||
|
||||
"otherPortsAttributes": {
|
||||
"onAutoForward": "silent",
|
||||
"onAutoForward": "silent"
|
||||
},
|
||||
|
||||
"onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
|
||||
@ -34,7 +34,7 @@
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"settings": {},
|
||||
"extensions": ["EditorConfig.EditorConfig", "webben.browserslist"],
|
||||
},
|
||||
},
|
||||
"extensions": ["EditorConfig.EditorConfig", "webben.browserslist"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -355,7 +355,6 @@ module.exports = defineConfig({
|
||||
'plugin:import/typescript',
|
||||
'plugin:promise/recommended',
|
||||
'plugin:jsdoc/recommended-typescript',
|
||||
'plugin:prettier/recommended',
|
||||
],
|
||||
|
||||
parserOptions: {
|
||||
@ -364,6 +363,9 @@ module.exports = defineConfig({
|
||||
},
|
||||
|
||||
rules: {
|
||||
// Disable formatting rules that have been enabled in the base config
|
||||
'indent': 'off',
|
||||
|
||||
'import/consistent-type-specifier-style': ['error', 'prefer-top-level'],
|
||||
|
||||
'@typescript-eslint/consistent-type-definitions': ['warn', 'interface'],
|
||||
|
18
.github/workflows/format-check.yml
vendored
Normal file
18
.github/workflows/format-check.yml
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
name: Check formatting
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Javascript environment
|
||||
uses: ./.github/actions/setup-javascript
|
||||
|
||||
- name: Check formatting with Prettier
|
||||
run: yarn format:check
|
2
.github/workflows/lint-css.yml
vendored
2
.github/workflows/lint-css.yml
vendored
@ -43,4 +43,4 @@ jobs:
|
||||
- run: echo "::add-matcher::.github/stylelint-matcher.json"
|
||||
|
||||
- name: Stylelint
|
||||
run: yarn lint:sass
|
||||
run: yarn lint:css
|
||||
|
38
.github/workflows/lint-json.yml
vendored
38
.github/workflows/lint-json.yml
vendored
@ -1,38 +0,0 @@
|
||||
name: JSON Linting
|
||||
on:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'dependabot/**'
|
||||
- 'renovate/**'
|
||||
paths:
|
||||
- 'package.json'
|
||||
- 'yarn.lock'
|
||||
- '.nvmrc'
|
||||
- '.prettier*'
|
||||
- '**/*.json'
|
||||
- '.github/workflows/lint-json.yml'
|
||||
- '!app/javascript/mastodon/locales/*.json'
|
||||
|
||||
pull_request:
|
||||
paths:
|
||||
- 'package.json'
|
||||
- 'yarn.lock'
|
||||
- '.nvmrc'
|
||||
- '.prettier*'
|
||||
- '**/*.json'
|
||||
- '.github/workflows/lint-json.yml'
|
||||
- '!app/javascript/mastodon/locales/*.json'
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Javascript environment
|
||||
uses: ./.github/actions/setup-javascript
|
||||
|
||||
- name: Prettier
|
||||
run: yarn lint:json
|
38
.github/workflows/lint-md.yml
vendored
38
.github/workflows/lint-md.yml
vendored
@ -1,38 +0,0 @@
|
||||
name: Markdown Linting
|
||||
on:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'dependabot/**'
|
||||
- 'renovate/**'
|
||||
paths:
|
||||
- '.github/workflows/lint-md.yml'
|
||||
- '.nvmrc'
|
||||
- '.prettier*'
|
||||
- '**/*.md'
|
||||
- '!AUTHORS.md'
|
||||
- 'package.json'
|
||||
- 'yarn.lock'
|
||||
|
||||
pull_request:
|
||||
paths:
|
||||
- '.github/workflows/lint-md.yml'
|
||||
- '.nvmrc'
|
||||
- '.prettier*'
|
||||
- '**/*.md'
|
||||
- '!AUTHORS.md'
|
||||
- 'package.json'
|
||||
- 'yarn.lock'
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Javascript environment
|
||||
uses: ./.github/actions/setup-javascript
|
||||
|
||||
- name: Prettier
|
||||
run: yarn lint:md
|
40
.github/workflows/lint-yml.yml
vendored
40
.github/workflows/lint-yml.yml
vendored
@ -1,40 +0,0 @@
|
||||
name: YML Linting
|
||||
on:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'dependabot/**'
|
||||
- 'renovate/**'
|
||||
paths:
|
||||
- 'package.json'
|
||||
- 'yarn.lock'
|
||||
- '.nvmrc'
|
||||
- '.prettier*'
|
||||
- '**/*.yaml'
|
||||
- '**/*.yml'
|
||||
- '.github/workflows/lint-yml.yml'
|
||||
- '!config/locales/*.yml'
|
||||
|
||||
pull_request:
|
||||
paths:
|
||||
- 'package.json'
|
||||
- 'yarn.lock'
|
||||
- '.nvmrc'
|
||||
- '.prettier*'
|
||||
- '**/*.yaml'
|
||||
- '**/*.yml'
|
||||
- '.github/workflows/lint-yml.yml'
|
||||
- '!config/locales/*.yml'
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Javascript environment
|
||||
uses: ./.github/actions/setup-javascript
|
||||
|
||||
- name: Prettier
|
||||
run: yarn lint:yml
|
@ -54,6 +54,13 @@
|
||||
# Ignore Docker option files
|
||||
docker-compose.override.yml
|
||||
|
||||
# Ignore public
|
||||
/public/assets
|
||||
/public/emoji
|
||||
/public/packs
|
||||
/public/packs-test
|
||||
/public/system
|
||||
|
||||
# Ignore emoji map file
|
||||
/app/javascript/mastodon/features/emoji/emoji_map.json
|
||||
|
||||
@ -74,6 +81,7 @@ app/javascript/styles/mastodon/reset.scss
|
||||
# Ignore the generated AUTHORS.md
|
||||
AUTHORS.md
|
||||
|
||||
# Process a few selected JS files
|
||||
!lint-staged.config.js
|
||||
|
||||
# Ignore glitch-soc emoji map file
|
||||
|
@ -45,7 +45,7 @@ const hideSelectAll = () => {
|
||||
Rails.delegate(document, '#batch_checkbox_all', 'change', ({ target }) => {
|
||||
const selectAllMatchingElement = document.querySelector('.batch-table__select-all');
|
||||
|
||||
[].forEach.call(document.querySelectorAll(batchCheckboxClassName), (content) => {
|
||||
document.querySelectorAll(batchCheckboxClassName).forEach((content) => {
|
||||
content.checked = target.checked;
|
||||
});
|
||||
|
||||
@ -80,8 +80,11 @@ Rails.delegate(document, batchCheckboxClassName, 'change', () => {
|
||||
const selectAllMatchingElement = document.querySelector('.batch-table__select-all');
|
||||
|
||||
if (checkAllElement) {
|
||||
checkAllElement.checked = [].every.call(document.querySelectorAll(batchCheckboxClassName), (content) => content.checked);
|
||||
checkAllElement.indeterminate = !checkAllElement.checked && [].some.call(document.querySelectorAll(batchCheckboxClassName), (content) => content.checked);
|
||||
const allCheckboxes = Array.from(
|
||||
document.querySelectorAll(batchCheckboxClassName)
|
||||
);
|
||||
checkAllElement.checked = allCheckboxes.every((content) => content.checked);
|
||||
checkAllElement.indeterminate = !checkAllElement.checked && allCheckboxes.some((content) => content.checked);
|
||||
|
||||
if (selectAllMatchingElement) {
|
||||
if (checkAllElement.checked) {
|
||||
@ -132,11 +135,11 @@ Rails.delegate(document, '#form_admin_settings_enable_bootstrap_timeline_account
|
||||
const onChangeRegistrationMode = (target) => {
|
||||
const enabled = target.value === 'approved';
|
||||
|
||||
[].forEach.call(document.querySelectorAll('.form_admin_settings_registrations_mode .warning-hint'), (warning_hint) => {
|
||||
document.querySelectorAll('.form_admin_settings_registrations_mode .warning-hint').forEach((warning_hint) => {
|
||||
warning_hint.style.display = target.value === 'open' ? 'inline' : 'none';
|
||||
});
|
||||
|
||||
[].forEach.call(document.querySelectorAll('#form_admin_settings_require_invite_text'), (input) => {
|
||||
document.querySelectorAll('#form_admin_settings_require_invite_text').forEach((input) => {
|
||||
input.disabled = !enabled;
|
||||
if (enabled) {
|
||||
let element = input;
|
||||
@ -182,8 +185,9 @@ ready(() => {
|
||||
|
||||
const checkAllElement = document.querySelector('#batch_checkbox_all');
|
||||
if (checkAllElement) {
|
||||
checkAllElement.checked = [].every.call(document.querySelectorAll(batchCheckboxClassName), (content) => content.checked);
|
||||
checkAllElement.indeterminate = !checkAllElement.checked && [].some.call(document.querySelectorAll(batchCheckboxClassName), (content) => content.checked);
|
||||
const allCheckboxes = Array.from(document.querySelectorAll(batchCheckboxClassName));
|
||||
checkAllElement.checked = allCheckboxes.every( (content) => content.checked);
|
||||
checkAllElement.indeterminate = !checkAllElement.checked && allCheckboxes.some((content) => content.checked);
|
||||
}
|
||||
|
||||
document.querySelector('a#add-instance-button')?.addEventListener('click', (e) => {
|
||||
@ -196,7 +200,7 @@ ready(() => {
|
||||
}
|
||||
});
|
||||
|
||||
[].forEach.call(document.querySelectorAll('input[type="datetime-local"]'), element => {
|
||||
document.querySelectorAll('input[type="datetime-local"]').forEach(element => {
|
||||
if (element.value) {
|
||||
element.value = convertUTCDateTimeToLocal(element.value);
|
||||
}
|
||||
@ -206,7 +210,7 @@ ready(() => {
|
||||
});
|
||||
|
||||
Rails.delegate(document, 'form', 'submit', ({ target }) => {
|
||||
[].forEach.call(target.querySelectorAll('input[type="datetime-local"]'), element => {
|
||||
target.querySelectorAll('input[type="datetime-local"]').forEach(element => {
|
||||
if (element.value && element.validity.valid) {
|
||||
element.value = convertLocalDatetimeToUTC(element.value);
|
||||
}
|
||||
|
@ -80,7 +80,7 @@ export default class MediaContainer extends PureComponent {
|
||||
return (
|
||||
<IntlProvider>
|
||||
<>
|
||||
{[].map.call(components, (component, i) => {
|
||||
{Array.from(components).map((component, i) => {
|
||||
const componentName = component.getAttribute('data-component');
|
||||
const Component = MEDIA_COMPONENTS[componentName];
|
||||
const { media, card, poll, hashtag, ...props } = JSON.parse(component.getAttribute('data-props'));
|
||||
|
@ -36,7 +36,7 @@ Object.keys(emojiIndex.emojis).forEach(key => {
|
||||
let emoji = emojiIndex.emojis[key];
|
||||
|
||||
// Emojis with skin tone modifiers are stored like this
|
||||
if (Object.prototype.hasOwnProperty.call(emoji, '1')) {
|
||||
if (Object.hasOwn(emoji, '1')) {
|
||||
emoji = emoji['1'];
|
||||
}
|
||||
|
||||
@ -88,7 +88,7 @@ Object.keys(emojiIndex.emojis).forEach(key => {
|
||||
let emoji = emojiIndex.emojis[key];
|
||||
|
||||
// Emojis with skin tone modifiers are stored like this
|
||||
if (Object.prototype.hasOwnProperty.call(emoji, '1')) {
|
||||
if (Object.hasOwn(emoji, '1')) {
|
||||
emoji = emoji['1'];
|
||||
}
|
||||
|
||||
|
@ -135,19 +135,19 @@ function getData(emoji, skin, set) {
|
||||
}
|
||||
}
|
||||
|
||||
if (Object.prototype.hasOwnProperty.call(data.short_names, emoji)) {
|
||||
if (Object.hasOwn(data.short_names, emoji)) {
|
||||
emoji = data.short_names[emoji];
|
||||
}
|
||||
|
||||
if (Object.prototype.hasOwnProperty.call(data.emojis, emoji)) {
|
||||
if (Object.hasOwn(data.emojis, emoji)) {
|
||||
emojiData = data.emojis[emoji];
|
||||
}
|
||||
} else if (emoji.id) {
|
||||
if (Object.prototype.hasOwnProperty.call(data.short_names, emoji.id)) {
|
||||
if (Object.hasOwn(data.short_names, emoji.id)) {
|
||||
emoji.id = data.short_names[emoji.id];
|
||||
}
|
||||
|
||||
if (Object.prototype.hasOwnProperty.call(data.emojis, emoji.id)) {
|
||||
if (Object.hasOwn(data.emojis, emoji.id)) {
|
||||
emojiData = data.emojis[emoji.id];
|
||||
skin = skin || emoji.skin;
|
||||
}
|
||||
@ -216,7 +216,7 @@ function deepMerge(a, b) {
|
||||
let originalValue = a[key],
|
||||
value = originalValue;
|
||||
|
||||
if (Object.prototype.hasOwnProperty.call(b, key)) {
|
||||
if (Object.hasOwn(b, key)) {
|
||||
value = b[key];
|
||||
}
|
||||
|
||||
|
@ -4,9 +4,9 @@ import { createRoot } from 'react-dom/client';
|
||||
import ready from 'flavours/glitch/ready';
|
||||
|
||||
ready(() => {
|
||||
[].forEach.call(document.querySelectorAll('[data-admin-component]'), element => {
|
||||
document.querySelectorAll('[data-admin-component]').forEach(element => {
|
||||
const componentName = element.getAttribute('data-admin-component');
|
||||
const { ...componentProps } = JSON.parse(element.getAttribute('data-props'));
|
||||
const componentProps = JSON.parse(element.getAttribute('data-props'));
|
||||
|
||||
import('flavours/glitch/containers/admin_component').then(({ default: AdminComponent }) => {
|
||||
return import('flavours/glitch/components/admin/' + componentName).then(({ default: Component }) => {
|
||||
|
@ -68,11 +68,11 @@ function main() {
|
||||
return messageFormat.format(values);
|
||||
};
|
||||
|
||||
[].forEach.call(document.querySelectorAll('.emojify'), (content) => {
|
||||
document.querySelectorAll('.emojify').forEach((content) => {
|
||||
content.innerHTML = emojify(content.innerHTML);
|
||||
});
|
||||
|
||||
[].forEach.call(document.querySelectorAll('time.formatted'), (content) => {
|
||||
document.querySelectorAll('time.formatted').forEach((content) => {
|
||||
const datetime = new Date(content.getAttribute('datetime'));
|
||||
const formattedDate = dateTimeFormat.format(datetime);
|
||||
|
||||
@ -89,7 +89,7 @@ function main() {
|
||||
};
|
||||
const todayFormat = new IntlMessageFormat(localeData['relative_format.today'] || 'Today at {time}', locale);
|
||||
|
||||
[].forEach.call(document.querySelectorAll('time.relative-formatted'), (content) => {
|
||||
document.querySelectorAll('time.relative-formatted').forEach((content) => {
|
||||
const datetime = new Date(content.getAttribute('datetime'));
|
||||
|
||||
let formattedContent;
|
||||
@ -106,7 +106,7 @@ function main() {
|
||||
content.textContent = formattedContent;
|
||||
});
|
||||
|
||||
[].forEach.call(document.querySelectorAll('time.time-ago'), (content) => {
|
||||
document.querySelectorAll('time.time-ago').forEach((content) => {
|
||||
const datetime = new Date(content.getAttribute('datetime'));
|
||||
const now = new Date();
|
||||
|
||||
@ -122,8 +122,8 @@ function main() {
|
||||
if (reactComponents.length > 0) {
|
||||
import(/* webpackChunkName: "containers/media_container" */ 'flavours/glitch/containers/media_container')
|
||||
.then(({ default: MediaContainer }) => {
|
||||
[].forEach.call(reactComponents, (component) => {
|
||||
[].forEach.call(component.children, (child) => {
|
||||
reactComponents.forEach((component) => {
|
||||
Array.from(component.children).forEach((child) => {
|
||||
component.removeChild(child);
|
||||
});
|
||||
});
|
||||
@ -188,7 +188,7 @@ function main() {
|
||||
return false;
|
||||
});
|
||||
|
||||
[].forEach.call(document.querySelectorAll('.status__content__spoiler-link'), (spoilerLink) => {
|
||||
document.querySelectorAll('.status__content__spoiler-link').forEach((spoilerLink) => {
|
||||
const statusEl = spoilerLink.parentNode.parentNode;
|
||||
const message = (statusEl.dataset.spoiler === 'expanded') ? (localeData['status.show_less'] || 'Show less') : (localeData['status.show_more'] || 'Show more');
|
||||
spoilerLink.textContent = (new IntlMessageFormat(message, locale)).format();
|
||||
|
@ -324,6 +324,23 @@ $content-width: 840px;
|
||||
padding-bottom: 0;
|
||||
margin-bottom: 0;
|
||||
border-bottom: 0;
|
||||
|
||||
.comment {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
margin-top: 4px;
|
||||
|
||||
&.private-comment {
|
||||
display: block;
|
||||
color: $darker-text-color;
|
||||
}
|
||||
|
||||
&.public-comment {
|
||||
display: block;
|
||||
color: $secondary-text-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
& > p {
|
||||
|
@ -5729,6 +5729,7 @@ a.status-card {
|
||||
color: $darker-text-color;
|
||||
cursor: default;
|
||||
pointer-events: none;
|
||||
margin-inline-start: 16px - 2px;
|
||||
|
||||
&.active {
|
||||
pointer-events: auto;
|
||||
|
@ -40,7 +40,7 @@ function render(
|
||||
ui: React.ReactElement,
|
||||
{ locale = 'en', signedIn = true, ...renderOptions } = {},
|
||||
) {
|
||||
const Wrapper = (props: { children: React.ReactElement }) => {
|
||||
const Wrapper = (props: { children: React.ReactNode }) => {
|
||||
return (
|
||||
<MemoryRouter>
|
||||
<IntlProvider locale={locale}>
|
||||
|
@ -80,7 +80,7 @@ export default class MediaContainer extends PureComponent {
|
||||
return (
|
||||
<IntlProvider>
|
||||
<>
|
||||
{[].map.call(components, (component, i) => {
|
||||
{Array.from(components).map((component, i) => {
|
||||
const componentName = component.getAttribute('data-component');
|
||||
const Component = MEDIA_COMPONENTS[componentName];
|
||||
const { media, card, poll, hashtag, ...props } = JSON.parse(component.getAttribute('data-props'));
|
||||
|
@ -36,7 +36,7 @@ Object.keys(emojiIndex.emojis).forEach(key => {
|
||||
let emoji = emojiIndex.emojis[key];
|
||||
|
||||
// Emojis with skin tone modifiers are stored like this
|
||||
if (Object.prototype.hasOwnProperty.call(emoji, '1')) {
|
||||
if (Object.hasOwn(emoji, '1')) {
|
||||
emoji = emoji['1'];
|
||||
}
|
||||
|
||||
@ -88,7 +88,7 @@ Object.keys(emojiIndex.emojis).forEach(key => {
|
||||
let emoji = emojiIndex.emojis[key];
|
||||
|
||||
// Emojis with skin tone modifiers are stored like this
|
||||
if (Object.prototype.hasOwnProperty.call(emoji, '1')) {
|
||||
if (Object.hasOwn(emoji, '1')) {
|
||||
emoji = emoji['1'];
|
||||
}
|
||||
|
||||
|
@ -135,19 +135,19 @@ function getData(emoji, skin, set) {
|
||||
}
|
||||
}
|
||||
|
||||
if (Object.prototype.hasOwnProperty.call(data.short_names, emoji)) {
|
||||
if (Object.hasOwn(data.short_names, emoji)) {
|
||||
emoji = data.short_names[emoji];
|
||||
}
|
||||
|
||||
if (Object.prototype.hasOwnProperty.call(data.emojis, emoji)) {
|
||||
if (Object.hasOwn(data.emojis, emoji)) {
|
||||
emojiData = data.emojis[emoji];
|
||||
}
|
||||
} else if (emoji.id) {
|
||||
if (Object.prototype.hasOwnProperty.call(data.short_names, emoji.id)) {
|
||||
if (Object.hasOwn(data.short_names, emoji.id)) {
|
||||
emoji.id = data.short_names[emoji.id];
|
||||
}
|
||||
|
||||
if (Object.prototype.hasOwnProperty.call(data.emojis, emoji.id)) {
|
||||
if (Object.hasOwn(data.emojis, emoji.id)) {
|
||||
emojiData = data.emojis[emoji.id];
|
||||
skin = skin || emoji.skin;
|
||||
}
|
||||
@ -216,7 +216,7 @@ function deepMerge(a, b) {
|
||||
let originalValue = a[key],
|
||||
value = originalValue;
|
||||
|
||||
if (Object.prototype.hasOwnProperty.call(b, key)) {
|
||||
if (Object.hasOwn(b, key)) {
|
||||
value = b[key];
|
||||
}
|
||||
|
||||
|
@ -500,7 +500,7 @@
|
||||
"onboarding.share.message": "{username} naiz #Mastodon-en! Jarrai nazazu hemen: {url}",
|
||||
"onboarding.share.next_steps": "Hurrengo urrats posibleak:",
|
||||
"onboarding.share.title": "Partekatu zure profila",
|
||||
"onboarding.start.lead": "Zure Mastodoneko kontu berria prest dago. Jakin nola atera diezaioekun etekin handiena hemen:",
|
||||
"onboarding.start.lead": "Mastodonen parte zara orain, bakarra eta deszentralizatua den sare-sozialaren plataforma, non zuk, eta ez algoritmo batek, zeure esperientzia pertsonaliza dezakezun. Igaro ezazu muga soziala:",
|
||||
"onboarding.start.skip": "Urrats guztiak saltatu nahi dituzu?",
|
||||
"onboarding.start.title": "Lortu duzu!",
|
||||
"onboarding.steps.follow_people.body": "Zure jarioa zuk pertsonalizatzen duzu. Bete dezagun jende interesgarriaz.",
|
||||
|
@ -110,7 +110,7 @@
|
||||
"column.about": "درباره",
|
||||
"column.blocks": "کاربران مسدود شده",
|
||||
"column.bookmarks": "نشانکها",
|
||||
"column.community": "خط زمانی محلّی",
|
||||
"column.community": "خط زمانی محلی",
|
||||
"column.direct": "اشارههای خصوصی",
|
||||
"column.directory": "مرور نمایهها",
|
||||
"column.domain_blocks": "دامنههای مسدود شده",
|
||||
@ -131,7 +131,7 @@
|
||||
"column_header.show_settings": "نمایش تنظیمات",
|
||||
"column_header.unpin": "برداشتن سنجاق",
|
||||
"column_subheading.settings": "تنظیمات",
|
||||
"community.column_settings.local_only": "فقط محلّی",
|
||||
"community.column_settings.local_only": "فقط محلی",
|
||||
"community.column_settings.media_only": "فقط رسانه",
|
||||
"community.column_settings.remote_only": "تنها دوردست",
|
||||
"compose.language.change": "تغییر زبان",
|
||||
@ -228,7 +228,7 @@
|
||||
"empty_column.account_unavailable": "نمایهٔ موجود نیست",
|
||||
"empty_column.blocks": "هنوز کسی را مسدود نکردهاید.",
|
||||
"empty_column.bookmarked_statuses": "هنوز هیچ فرستهٔ نشانهگذاری شدهای ندارید. هنگامی که فرستهای را نشانهگذاری کنید، اینجا نشان داده خواهد شد.",
|
||||
"empty_column.community": "خط زمانی محلّی خالی است. چیزی بنویسید تا چرخش بچرخد!",
|
||||
"empty_column.community": "خط زمانی محلی خالیست. چیزی نوشته تا چرخش بچرخد!",
|
||||
"empty_column.direct": "هنوز هیچ اشاره خصوصیای ندارید. هنگامی که چنین پیامی بگیرید یا بفرستید اینجا نشان داده خواهد شد.",
|
||||
"empty_column.domain_blocks": "هنوز هیچ دامنهای مسدود نشده است.",
|
||||
"empty_column.explore_statuses": "الآن چیزی پرطرفدار نیست. بعداً دوباره بررسی کنید!",
|
||||
@ -277,6 +277,17 @@
|
||||
"follow_request.authorize": "اجازه دهید",
|
||||
"follow_request.reject": "رد کنید",
|
||||
"follow_requests.unlocked_explanation": "با این که حسابتان قفل نیست، کارکنان {domain} فکر کردند که ممکن است بخواهید درخواستها از این حسابها را به صورت دستی بازبینی کنید.",
|
||||
"follow_suggestions.curated_suggestion": "گزینش سردبیر",
|
||||
"follow_suggestions.dismiss": "دیگر نشان داده نشود",
|
||||
"follow_suggestions.hints.featured": "این نمایه به دست گروه {domain} دستچین شده.",
|
||||
"follow_suggestions.hints.friends_of_friends": "این نمایه بین کسانی که پی میگیرید محبوب است.",
|
||||
"follow_suggestions.hints.most_followed": "این نمایه روی {domain} بسیار پیگرفته شده.",
|
||||
"follow_suggestions.hints.most_interactions": "این نمایه اخیراُ روی {domain} توجّه زیادی گرفته.",
|
||||
"follow_suggestions.hints.similar_to_recently_followed": "این نمایه شبیه نمایههاییست که اخیراً پیگرفتهاید.",
|
||||
"follow_suggestions.personalized_suggestion": "پیشنهاد شخصی",
|
||||
"follow_suggestions.popular_suggestion": "پیشنهاد محبوب",
|
||||
"follow_suggestions.view_all": "دیدن همه",
|
||||
"follow_suggestions.who_to_follow": "افرادی برای پیگیری",
|
||||
"followed_tags": "برچسبهای پیگرفته",
|
||||
"footer.about": "درباره",
|
||||
"footer.directory": "فهرست نمایهها",
|
||||
@ -345,7 +356,7 @@
|
||||
"keyboard_shortcuts.home": "گشودن خط زمانی خانگی",
|
||||
"keyboard_shortcuts.hotkey": "میانبر",
|
||||
"keyboard_shortcuts.legend": "نمایش این نشانه",
|
||||
"keyboard_shortcuts.local": "گشودن خط زمانی محلّی",
|
||||
"keyboard_shortcuts.local": "گشودن خط زمانی محلی",
|
||||
"keyboard_shortcuts.mention": "اشاره به نویسنده",
|
||||
"keyboard_shortcuts.muted": "گشودن فهرست کاربران خموش",
|
||||
"keyboard_shortcuts.my_profile": "گشودن نمایهتان",
|
||||
@ -396,7 +407,7 @@
|
||||
"navigation_bar.advanced_interface": "بازکردن در رابط کاربری وب پیشرفته",
|
||||
"navigation_bar.blocks": "کاربران مسدود شده",
|
||||
"navigation_bar.bookmarks": "نشانکها",
|
||||
"navigation_bar.community_timeline": "خط زمانی محلّی",
|
||||
"navigation_bar.community_timeline": "خط زمانی محلی",
|
||||
"navigation_bar.compose": "نوشتن فرستهٔ تازه",
|
||||
"navigation_bar.direct": "اشارههای خصوصی",
|
||||
"navigation_bar.discover": "گشت و گذار",
|
||||
@ -475,8 +486,10 @@
|
||||
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
|
||||
"onboarding.follows.title": "Popular on Mastodon",
|
||||
"onboarding.profile.discoverable": "نمایه خود را قابل نمایش کنید",
|
||||
"onboarding.profile.discoverable_hint": "خواستهاید روی ماستودون کشف شوید. ممکن است فرستههایتان در نتیحهٔ جستوجوها و فرستههای داغ ظاهر شده و نمایهتان به افرادی با علایق مشابهتان پیشنهاد شود.",
|
||||
"onboarding.profile.display_name": "نام نمایشی",
|
||||
"onboarding.profile.display_name_hint": "نام کامل یا نام باحالتان…",
|
||||
"onboarding.profile.lead": "همواره میتوانید این مورد را در تنظیمات که گزینهّای شخصی سازی بیشتری نیز دارد کامل کنید.",
|
||||
"onboarding.profile.note": "درباره شما",
|
||||
"onboarding.profile.note_hint": "میتوانید افراد دیگر را @نامبردن یا #برچسب بزنید…",
|
||||
"onboarding.profile.save_and_continue": "ذخیره کن و ادامه بده",
|
||||
@ -522,6 +535,7 @@
|
||||
"privacy.private.short": "پیگیرندگان",
|
||||
"privacy.public.long": "هرکسی در و بیرون از ماستودون",
|
||||
"privacy.public.short": "عمومی",
|
||||
"privacy.unlisted.additional": "درست مثل عمومی رفتار میکند؛ جز این که فرسته در برچسبها یا خوراکهای زنده، کشف یا جستوجوی ماستودون ظاهر نخواهد شد. حتا اگر کلیّت نمایهتان اجازه داده باشد.",
|
||||
"privacy.unlisted.long": "سروصدای الگوریتمی کمتر",
|
||||
"privacy.unlisted.short": "عمومی ساکت",
|
||||
"privacy_policy.last_updated": "آخرین بهروز رسانی در {date}",
|
||||
@ -541,6 +555,7 @@
|
||||
"relative_time.minutes": "{number} دقیقه",
|
||||
"relative_time.seconds": "{number} ثانیه",
|
||||
"relative_time.today": "امروز",
|
||||
"reply_indicator.attachments": "{count, plural, one {# پیوست} other {# پیوست}}",
|
||||
"reply_indicator.cancel": "لغو",
|
||||
"reply_indicator.poll": "نظرسنجی",
|
||||
"report.block": "انسداد",
|
||||
|
@ -212,7 +212,7 @@
|
||||
"emoji_button.custom": "사용자 지정",
|
||||
"emoji_button.flags": "깃발",
|
||||
"emoji_button.food": "음식과 마실것",
|
||||
"emoji_button.label": "에모지를 추가",
|
||||
"emoji_button.label": "에모지 추가",
|
||||
"emoji_button.nature": "자연",
|
||||
"emoji_button.not_found": "해당하는 에모지가 없습니다",
|
||||
"emoji_button.objects": "물건",
|
||||
|
@ -277,7 +277,11 @@
|
||||
"follow_request.authorize": "Benarkan",
|
||||
"follow_request.reject": "Tolak",
|
||||
"follow_requests.unlocked_explanation": "Walaupun akaun anda tidak dikunci, kakitangan {domain} merasakan anda mungkin ingin menyemak permintaan ikutan daripada akaun ini secara manual.",
|
||||
"follow_suggestions.curated_suggestion": "",
|
||||
"follow_suggestions.dismiss": "Jangan papar lagi",
|
||||
"follow_suggestions.hints.featured": "Profil{domain.",
|
||||
"follow_suggestions.hints.friends_of_friends": "This profile is popular among the people you follow.",
|
||||
"follow_suggestions.hints.most_followed": ".",
|
||||
"follow_suggestions.personalized_suggestion": "Cadangan peribadi",
|
||||
"follow_suggestions.popular_suggestion": "Cadangan terkenal",
|
||||
"follow_suggestions.view_all": "Lihat semua",
|
||||
|
@ -40,7 +40,7 @@ function render(
|
||||
ui: React.ReactElement,
|
||||
{ locale = 'en', signedIn = true, ...renderOptions } = {},
|
||||
) {
|
||||
const Wrapper = (props: { children: React.ReactElement }) => {
|
||||
const Wrapper = (props: { children: React.ReactNode }) => {
|
||||
return (
|
||||
<MemoryRouter>
|
||||
<IntlProvider locale={locale}>
|
||||
|
@ -4,7 +4,7 @@ import { createRoot } from 'react-dom/client';
|
||||
import ready from '../mastodon/ready';
|
||||
|
||||
ready(() => {
|
||||
[].forEach.call(document.querySelectorAll('[data-admin-component]'), element => {
|
||||
document.querySelectorAll('[data-admin-component]').forEach(element => {
|
||||
const componentName = element.getAttribute('data-admin-component');
|
||||
const componentProps = JSON.parse(element.getAttribute('data-props'));
|
||||
|
||||
|
@ -57,11 +57,11 @@ function loaded() {
|
||||
return messageFormat.format(values);
|
||||
};
|
||||
|
||||
[].forEach.call(document.querySelectorAll('.emojify'), (content) => {
|
||||
document.querySelectorAll('.emojify').forEach((content) => {
|
||||
content.innerHTML = emojify(content.innerHTML);
|
||||
});
|
||||
|
||||
[].forEach.call(document.querySelectorAll('time.formatted'), (content) => {
|
||||
document.querySelectorAll('time.formatted').forEach((content) => {
|
||||
const datetime = new Date(content.getAttribute('datetime'));
|
||||
const formattedDate = dateTimeFormat.format(datetime);
|
||||
|
||||
@ -78,7 +78,7 @@ function loaded() {
|
||||
};
|
||||
const todayFormat = new IntlMessageFormat(localeData['relative_format.today'] || 'Today at {time}', locale);
|
||||
|
||||
[].forEach.call(document.querySelectorAll('time.relative-formatted'), (content) => {
|
||||
document.querySelectorAll('time.relative-formatted').forEach((content) => {
|
||||
const datetime = new Date(content.getAttribute('datetime'));
|
||||
|
||||
let formattedContent;
|
||||
@ -95,7 +95,7 @@ function loaded() {
|
||||
content.textContent = formattedContent;
|
||||
});
|
||||
|
||||
[].forEach.call(document.querySelectorAll('time.time-ago'), (content) => {
|
||||
document.querySelectorAll('time.time-ago').forEach((content) => {
|
||||
const datetime = new Date(content.getAttribute('datetime'));
|
||||
const now = new Date();
|
||||
|
||||
@ -112,8 +112,8 @@ function loaded() {
|
||||
if (reactComponents.length > 0) {
|
||||
import(/* webpackChunkName: "containers/media_container" */ '../mastodon/containers/media_container')
|
||||
.then(({ default: MediaContainer }) => {
|
||||
[].forEach.call(reactComponents, (component) => {
|
||||
[].forEach.call(component.children, (child) => {
|
||||
reactComponents.forEach((component) => {
|
||||
Array.from(component.children).forEach((child) => {
|
||||
component.removeChild(child);
|
||||
});
|
||||
});
|
||||
@ -169,7 +169,7 @@ function loaded() {
|
||||
return false;
|
||||
});
|
||||
|
||||
[].forEach.call(document.querySelectorAll('.status__content__spoiler-link'), (spoilerLink) => {
|
||||
document.querySelectorAll('.status__content__spoiler-link').forEach((spoilerLink) => {
|
||||
const statusEl = spoilerLink.parentNode.parentNode;
|
||||
const message = (statusEl.dataset.spoiler === 'expanded') ? (localeData['status.show_less'] || 'Show less') : (localeData['status.show_more'] || 'Show more');
|
||||
spoilerLink.textContent = (new IntlMessageFormat(message, locale)).format();
|
||||
|
@ -324,6 +324,23 @@ $content-width: 840px;
|
||||
padding-bottom: 0;
|
||||
margin-bottom: 0;
|
||||
border-bottom: 0;
|
||||
|
||||
.comment {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
margin-top: 4px;
|
||||
|
||||
&.private-comment {
|
||||
display: block;
|
||||
color: $darker-text-color;
|
||||
}
|
||||
|
||||
&.public-comment {
|
||||
display: block;
|
||||
color: $secondary-text-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
& > p {
|
||||
|
@ -5204,6 +5204,7 @@ a.status-card {
|
||||
color: $darker-text-color;
|
||||
cursor: default;
|
||||
pointer-events: none;
|
||||
margin-inline-start: 16px - 2px;
|
||||
|
||||
&.active {
|
||||
pointer-events: auto;
|
||||
|
@ -34,10 +34,10 @@ class Admin::Metrics::Measure::TagServersMeasure < Admin::Metrics::Measure::Base
|
||||
INNER JOIN accounts ON statuses.account_id = accounts.id
|
||||
WHERE statuses_tags.tag_id = :tag_id
|
||||
AND statuses.id BETWEEN :earliest_status_id AND :latest_status_id
|
||||
AND date_trunc('day', statuses.created_at)::date = axis.day
|
||||
AND date_trunc('day', statuses.created_at)::date = axis.period
|
||||
)
|
||||
FROM (
|
||||
SELECT generate_series(date_trunc('day', :start_at::timestamp)::date, date_trunc('day', :end_at::timestamp)::date, ('1 day')::interval) AS day
|
||||
SELECT generate_series(date_trunc('day', :start_at::timestamp)::date, date_trunc('day', :end_at::timestamp)::date, interval '1 day') AS period
|
||||
) as axis
|
||||
SQL
|
||||
end
|
||||
|
@ -7,6 +7,10 @@
|
||||
%small
|
||||
- if instance.domain_block
|
||||
= instance.domain_block.policies.map { |policy| t(policy, scope: 'admin.instances.content_policies.policies') }.join(' · ')
|
||||
- if instance.domain_block.public_comment.present?
|
||||
%span.comment.public-comment #{t('admin.domain_blocks.public_comment')}: #{instance.domain_block.public_comment}
|
||||
- if instance.domain_block.private_comment.present?
|
||||
%span.comment.private-comment #{t('admin.domain_blocks.private_comment')}: #{instance.domain_block.private_comment}
|
||||
- elsif instance.domain_allow
|
||||
= t('admin.accounts.whitelisted')
|
||||
- else
|
||||
|
@ -2,16 +2,17 @@
|
||||
fa:
|
||||
devise:
|
||||
confirmations:
|
||||
confirmed: نشانی ایمیل شما با موفقیت تأیید شد.
|
||||
send_instructions: تا دقایقی دیگر ایمیلی خواهید گرفت که به شما میگوید چگونه باید نشانی ایمیل خود را تأیید کنید. اگر این ایمیل نیامد، لطفاً پوشهٔ هرزنامههایتان را بررسی کنید.
|
||||
send_paranoid_instructions: اگر ایمیل شما در پایگاه دادهٔ ما موجود باشد، تا دقایقی دیگر ایمیلی خواهید گرفت که به شما میگوید چگونه باید نشانی ایمیل خود را تأیید کنید. اگر این ایمیل نیامد، لطفاً پوشهٔ هرزنامههایتان را بررسی کنید.
|
||||
confirmed: نشانی رایانامهتان با موفقیت تأیید شد.
|
||||
send_instructions: تا دقایقی دیگر رایانامهای با دستورالعمل تأیید نشانی رایانامهتان دریافت خواهید کرد. اگر این رایانامه را نگرفتید، لطفاً پوشهٔ هرزنامههایتان را بررسی کنید.
|
||||
send_paranoid_instructions: اگر نشانی رایانامهتان در پایگاه دادهمان وجود داشته باشد، تا دقایقی دیگر تا دقایقی دیگر رایانامهای با دستورالعمل تأیید نشانی رایانامهتان دریافت خواهید کرد. اگر این رایانامه را نگرفتید، لطفاً پوشهٔ هرزنامههایتان را بررسی کنید.
|
||||
failure:
|
||||
already_authenticated: همین الآن هم وارد شدهاید.
|
||||
inactive: حساب شما هنوز فعال نشده است.
|
||||
already_authenticated: از پیش وارد شدهاید.
|
||||
inactive: هنوز حسابتان فعّال نشده.
|
||||
invalid: "%{authentication_keys} یا گذرواژه نامعتبر."
|
||||
last_attempt: پیش از آن که حساب شما قفل شود، یک فرصت دیگر دارید.
|
||||
locked: حساب شما قفل شده است.
|
||||
locked: حسابتان قفل شده.
|
||||
not_found_in_database: "%{authentication_keys} یا گذرواژه نامعتبر."
|
||||
omniauth_user_creation_failure: خطای ایجاد حسابی برای این هویت.
|
||||
pending: حساب شما همچنان در دست بررسی است.
|
||||
timeout: مهلت این ورود شما به سر رسید. برای ادامه، دوباره وارد شوید.
|
||||
unauthenticated: برای ادامه باید وارد شوید یا ثبت نام کنید.
|
||||
@ -24,37 +25,42 @@ fa:
|
||||
explanation_when_pending: شما با این نشانی ایمیل برای %{host} درخواست دعوتنامه دادهاید. اگر ایمیل خود را تأیید کنید، ما درخواست شما را بررسی خواهیم کرد. تا وقتی بررسی تمام نشده، شما نمیتوانید به حساب خود وارد شوید. اگر درخواست شما رد شود، ما اطلاعاتی را که از شما داریم پاک خواهیم کرد پس نیازی به کاری از سمت شما نخواهد بود. اگر شما چنین درخواستی ندادهاید، لطفاً این ایمیل را نادیده بگیرید.
|
||||
extra_html: لطفاً همچنین <a href="%{terms_path}">قوانین کارساز</a> و <a href="%{policy_path}">شرایط خدمتمان</a> را بررسی کنید.
|
||||
subject: 'ماستودون: دستورالعمل تأیید برای %{instance}'
|
||||
title: تأیید نشانی ایمیل
|
||||
title: تأیید نشانی رایانامه
|
||||
email_changed:
|
||||
explanation: 'نشانی ایمیل حساب شما تغییر میکند به:'
|
||||
extra: اگر شما ایمیل خود را عوض نکردید، شاید کسی به حساب شما دسترسی پیدا کرده است. در این صورت لطفاً هر چه زودتر گذرواژه حسابتان را عوض کنید. اگر گذرواژهتان دیگر کار نمیکند، لطفاً با مدیر سرور تماس بگیرید.
|
||||
subject: 'ماستودون: نشانی ایمیل عوض شد'
|
||||
title: نشانی ایمیل تازه
|
||||
explanation: 'نشانی رایانامهٔ حسابتان تغییر میکند به:'
|
||||
extra: اگر رایانامهتان را عوض نکردهاید، ممکن است کسی به حسابتان دسترسی پیدا کرده باشد. لطفاً فوراُ گذرواژهتان را عوض کرده و اگر از حسابتان بیرون ماندهاید با مدیر کارساز تماس بگیرید.
|
||||
subject: 'ماستودون: رایانامه عوض شد'
|
||||
title: نشانی جدید رایانامه
|
||||
password_change:
|
||||
explanation: گذرواژه حساب شما تغییر کرد.
|
||||
extra: اگر شما گذرواژه حسابتان را تغییر ندادید، شاید کسی به حساب شما دسترسی پیدا کرده است. در این صورت لطفاً هر چه زودتر گذرواژه حسابتان را عوض کنید. اگر گذرواژهتان دیگر کار نمیکند، لطفاً با مدیر سرور تماس بگیرید.
|
||||
subject: 'ماستودون: گذرواژهتان عوض شد'
|
||||
title: گذرواژهتان عوض شد
|
||||
explanation: گذرواژهٔ حسابتان عوض شده.
|
||||
extra: اگر گذرواژهتان را عوض نکردهاید، ممکن است کسی به حسابتان دسترسی پیدا کرده باشد. لطفاً فوراُ گذرواژهتان را عوض کرده و اگر از حسابتان بیرون ماندهاید با مدیر کارساز تماس بگیرید.
|
||||
subject: 'ماستودون: گذرواژه عوض شد'
|
||||
title: گذرواژه عوض شد
|
||||
reconfirmation_instructions:
|
||||
explanation: نشانی تازه را تأیید کنید تا ایمیلتان عوض شود.
|
||||
extra: اگر شما باعث این تغییر نبودید، لطفاً این ایمیل را نادیده بگیرید. تا زمانی که شما پیوند بالا را باز نکنید، نشانی ایمیل مربوط به حساب شما عوض نخواهد شد.
|
||||
explanation: برای تغییر رایانامهتان نشانی جدید را تأیید کنید.
|
||||
extra: اگر خودتان چنین درخواستی ندادهاید لطفاً از این رایانامه چشم بپوشید. نشانی رایانامهٔ حساب ماستودون تا وقتی به پیوند بالا دسترسی پیدا نکنید عوض نخواهد شد.
|
||||
subject: 'ماستودون: تأیید رایانامه برای %{instance}'
|
||||
title: تأیید نشانی ایمیل
|
||||
title: تأیید نشانی رایانامه
|
||||
reset_password_instructions:
|
||||
action: تغییر گذرواژه
|
||||
explanation: شما گذرواژه تازهای برای حسابتان درخواست کردید.
|
||||
extra: اگر شما چنین درخواستی نکردید، لطفاً این ایمیل را نادیده بگیرید. تا زمانی که شما پیوند بالا را باز نکنید و گذرواژه تازهای نسازید، گذرواژه شما عوض نخواهد شد.
|
||||
subject: 'ماستودون: راهنمایی برای بازنشانی گذرواژه'
|
||||
explanation: درخواست گذرواژهای تازهای برای حسابتان کردهاید.
|
||||
extra: اگر خودتان چنین درخواستی ندادهاید لطفاً از این رایانامه چشم بپوشید. گذرواژهتان تا وقتی به پیوند بالا دسترسی پیدا نکرده و گذرواژهٔ جدیدی نسازید عوض نخواهد شد.
|
||||
subject: 'ماستودون: دستورالعملهای بازنشانی گذرواژه'
|
||||
title: بازنشانی گذرواژه
|
||||
two_factor_disabled:
|
||||
subject: 'ماستودون: تأیید هویت دو مرحلهای از کار افتاد'
|
||||
title: ورود دومرحلهای غیرفعال
|
||||
explanation: ورود اکنون تنها با نشانی رایانامه و گذرواژه ممکن است.
|
||||
subject: 'ماستودون: هویتسنجی دو مرحلهای از کار افتاده'
|
||||
subtitle: هویتسنجی دو مرحلهای برای حسابتان از کار افتاده.
|
||||
title: ورود دومرحلهای از کار افتاده
|
||||
two_factor_enabled:
|
||||
subject: 'ماستودون: تأیید هویت دومرحلهای به کار افتاد'
|
||||
title: ورود دومرحلهای فعال
|
||||
explanation: ورود نیازمند ژتونی تولید شده به دست کارهٔ TOTP جفتشده است.
|
||||
subject: 'ماستودون: هویتسنجی دومرحلهای به کار افتاده'
|
||||
subtitle: هویتسنجی دو عاملی برای حسابتان به کار افتاده.
|
||||
title: ورود دومرحلهای به کار افتاده
|
||||
two_factor_recovery_codes_changed:
|
||||
explanation: کدهای بازیابی پیشین نامعتبر شده و کدهای جدیدی ساخته شدند.
|
||||
subject: 'ماستودون: کدهای بازیابی برای تأیید هویت دو مرحلهای دوباره ساخته شدند'
|
||||
subtitle: کدهای بازیابی پیشین از اعتبار ساقط شده و کدهایی جدید ایجاد شدند.
|
||||
title: کدهای بازیابی تأیید هویت دو مرحلهای عوض شدهاند
|
||||
unlock_instructions:
|
||||
subject: 'ماستودون: دستورالعملهای قفلگشایی'
|
||||
@ -68,9 +74,13 @@ fa:
|
||||
subject: 'ماستودون: کلید امنیتی حذف شد'
|
||||
title: یکی از کلیدهای امنیتیتان حذف شد
|
||||
webauthn_disabled:
|
||||
explanation: هویتسنجی با کلیدهای امنیتی برای حسابتان از کار افتاده.
|
||||
extra: ورود اکنون تنها با ژتون تولید شده به دست کارهٔ TOTP جفتشده ممکن است.
|
||||
subject: 'ماستودون: تأیید هویت با کلیدهای امنیتی از کار افتاد'
|
||||
title: کلیدهای امنیتی از کار افتادند
|
||||
webauthn_enabled:
|
||||
explanation: هویتسنجی با کلیدهای امنیتی برای حسابتان به کار افتاده.
|
||||
extra: کلید امنیتیتان اکنون میتواند برای ورود استفاده شود.
|
||||
subject: 'ماستودون: تأیید هویت با کلید امنیتی به کار افتاد'
|
||||
title: کلیدهای امنیتی به کار افتادند
|
||||
omniauth_callbacks:
|
||||
@ -86,22 +96,22 @@ fa:
|
||||
destroyed: بدرود! حساب شما با موفقیت لغو شد. امیدواریم دوباره شما را ببینیم.
|
||||
signed_up: خوش آمدید! شما با موفقیت ثبت نام کردید.
|
||||
signed_up_but_inactive: خوش آمدید! با موفقیت ثبت نام کردید. ولی هنوز وارد نشدهاید؛ چرا که حسابتان هنوز فعال نشده است.
|
||||
signed_up_but_locked: خوش آمدید! با موفقیت ثبت نام کردید. ولی هنوز وارد نشدهاید؛ چرا که حسابتان قفل است.
|
||||
signed_up_but_pending: پیغامی که دارای یک پیوند برای تأیید است به نشانی ایمیل شما فرستاده شده. پس از اینکه پیوند را باز کردید، ما درخواست شما را بررسی خواهیم کرد. اگر درخواست شما پذیرفته شود، به شما خواهیم گفت.
|
||||
signed_up_but_unconfirmed: پیامی با یک پیوند تأیید به نشانی ایمیل شما فرستاده شده. لطفاً پیوند موجود در ایمیل را دنبال کنید تا حسابتان فعال شود. اگر این ایمیل نیامد، لطفاً پوشهٔ هرزنامههایتان را بررسی کنید.
|
||||
update_needs_confirmation: شما با موفقیت حسابتان را بهروز کردید، ولی لازم است که ما نشانی ایمیل تازهٔ شما را تأیید کنیم. لطفاً ایمیل خود را ببینید و پیوند موجود در ایمیل را دنبال کنید تا تا نشانی ایمیل تازهٔ شما تأیید شود. اگر این ایمیل نیامد، لطفاً پوشهٔ هرزنامههایتان را بررسی کنید.
|
||||
updated: حسابتان با موفقبت بهروز شد.
|
||||
signed_up_but_locked: با موفّقیت ثبتنام کردهاید. با این حال نمیتوان واردتان کرد؛ چرا که حسابتان قفل است.
|
||||
signed_up_but_pending: پیامی با پیوند تأیید به نشانی رایانامهتان فرستاده شده. پس از زدن پیوند درخواستتان را بازبینی خواهیم کرد. در صورت پذیرش آگاه خواهید شد.
|
||||
signed_up_but_unconfirmed: پیامی با پیوند تأیید به نشانی رایانامهتان فرستاده شده. لطفاً برای فعّال کردن حسابتان پیوند را بزنید. اگر این رایانامه را نگرفتهاید شاخهٔ هرزنامهها را بررسی کنید.
|
||||
update_needs_confirmation: حسابتان را با موفّقیت بهروز کردید؛ ولی باید نشانی رایانامهٔ جدیتان را تأیید کنیم. لطفاً رایانامهتان را بررسی کرده و برای تأیید نشانی رایانهٔ جدیدتان پیوند را بزنید. اگر این رایانامه را نگرفتهاید شاخهٔ هرزنامهها را بررسی کنید.
|
||||
updated: حسابتان با موفّقیت بهروز شد.
|
||||
sessions:
|
||||
already_signed_out: با موفقیت خارج شدید.
|
||||
signed_in: با موفقیت وارد شدید.
|
||||
signed_out: با موفقیت خارج شدید.
|
||||
already_signed_out: با موفّقیت خارج شدید.
|
||||
signed_in: با موفّقیت وارد شدید.
|
||||
signed_out: با موفّقیت خارج شدید.
|
||||
unlocks:
|
||||
send_instructions: تا دقایقی دیگر ایمیلی خواهید گرفت که به شما میگوید چگونه باید قفل حساب خود را باز کنید. اگر این ایمیل نیامد، لطفاً پوشهٔ هرزنامههایتان را بررسی کنید.
|
||||
send_paranoid_instructions: اگر حساب شما موجود باشد، تا دقایقی دیگر ایمیلی خواهید گرفت که به شما میگوید چگونه باید قفل آن را باز کنید. اگر این ایمیل نیامد، لطفاً پوشهٔ هرزنامههایتان را بررسی کنید.
|
||||
unlocked: قفل حساب شما با موفقیت باز شد. لطفاً برای ادامه وارد سیستم شوید.
|
||||
send_instructions: تا دقایقی دیگر رایانامهای با دستورالعمل قفلگشایی حسابتان دریافت خواهید کرد. اگر این رایانامه را نگرفتید، لطفاً پوشهٔ هرزنامههایتان را بررسی کنید.
|
||||
send_paranoid_instructions: اگر حسابتان وجود داشته باشد تا دقایقی دیگر رایانامهای با دستورالعمل قفلگشاییش دریافت خواهید کرد. اگر این رایانامه را نگرفتید، لطفاً پوشهٔ هرزنامههایتان را بررسی کنید.
|
||||
unlocked: حسابتان با موفّقیت قفلگشایی شد. لطفاً برای ادامه وارد شوید.
|
||||
errors:
|
||||
messages:
|
||||
already_confirmed: تأیید شده، لطفاً وارد شوید
|
||||
already_confirmed: از پیش تأیید شده. لطفاً ورود را بیازمایید
|
||||
confirmation_period_expired: باید ظرف %{period} تأیید شود، لطفاً دوباره درخواست دهید
|
||||
expired: مهلتش به سر رسید، لطفاً دوباره درخواست دهید
|
||||
not_found: پیدا نشد
|
||||
|
@ -80,7 +80,7 @@ fa:
|
||||
joined: عضو شده در
|
||||
location:
|
||||
all: همه
|
||||
local: محلّی
|
||||
local: محلی
|
||||
remote: کارسازهای دیگر
|
||||
title: مکان
|
||||
login_status: وضعیت ورود
|
||||
@ -415,13 +415,14 @@ fa:
|
||||
public_comment: یادداشت عمومی
|
||||
public_comment_hint: یادداشتی دربارهٔ محدودیت روی این دامین برای عموم، در صورتی که فهرست دامینهای محدود شده منتشر شود.
|
||||
reject_media: نپذیرفتن پروندههای رسانهای
|
||||
reject_media_hint: پروندههای رسانهای ذخیرهشدهٔ محلّی را پاک کرده و از بارگیریشان در آینده خودداری میکند. بیتأثیر روی معلقها
|
||||
reject_media_hint: پروندههای رسانهای ذخیرهشدهٔ محلی را پاک کرده و از بارگیریشان در آینده خودداری میکند. بیتأثیر روی معلّقها
|
||||
reject_reports: نپذیرفتن گزارشها
|
||||
reject_reports_hint: گزارشهایی را که از این دامنه میآید نادیده میگیرد. بیتأثیر برای معلقشدهها
|
||||
undo: واگردانی مسدودسازی دامین
|
||||
view: دیدن مسدودسازی دامنه
|
||||
email_domain_blocks:
|
||||
add_new: افزودن تازه
|
||||
allow_registrations_with_approval: اجازهٔ ثبتنام با تأیید
|
||||
attempts_over_week:
|
||||
one: "%{count} تلاش در هفتهٔ گذشته"
|
||||
other: "%{count} تلاش ورود در هفتهٔ گذشته"
|
||||
|
@ -39,14 +39,14 @@ fi:
|
||||
text: Voit valittaa varoituksesta vain kerran
|
||||
defaults:
|
||||
autofollow: Henkilöt, jotka rekisteröityvät kutsun kautta, seuraavat sinua automaattisesti
|
||||
avatar: PNG, GIF tai JPG. Enintään %{size}. Skaalataan kokoon %{dimensions} px
|
||||
avatar: WEBP, PNG, GIF tai JPG. Enintään %{size}. Skaalataan kokoon %{dimensions} px
|
||||
bot: Tämä tili suorittaa enimmäkseen automaattisia toimintoja eikä sitä ehkä valvota
|
||||
context: Ainakin yksi konteksti, jossa suodattimen pitäisi olla voimassa
|
||||
current_password: Turvallisuussyistä kirjoita nykyisen tilin salasana
|
||||
current_username: Vahvista kirjoittamalla nykyisen tilin käyttäjänimi
|
||||
digest: Lähetetään vain pitkän poissaolon jälkeen ja vain, jos olet saanut suoria viestejä poissaolosi aikana
|
||||
email: Sinulle lähetetään vahvistussähköposti
|
||||
header: PNG, GIF tai JPG. Enintään %{size}. Skaalataan kokoon %{dimensions} px
|
||||
header: WEBP, PNG, GIF tai JPG. Enintään %{size}. Skaalataan kokoon %{dimensions} px
|
||||
inbox_url: Kopioi URL-osoite haluamasi välittäjän etusivulta
|
||||
irreversible: Suodatetut julkaisut katoavat lopullisesti, vaikka suodatin poistettaisiin myöhemmin
|
||||
locale: Käyttöliittymän, sähköpostien ja puskuilmoitusten kieli
|
||||
|
@ -11,7 +11,7 @@
|
||||
"noEmit": true,
|
||||
"resolveJsonModule": true,
|
||||
"strict": false,
|
||||
"target": "ES2022",
|
||||
"target": "ES2022"
|
||||
},
|
||||
"exclude": ["**/build/*", "**/node_modules/*", "**/public/*", "**/vendor/*"],
|
||||
"exclude": ["**/build/*", "**/node_modules/*", "**/public/*", "**/vendor/*"]
|
||||
}
|
||||
|
20
package.json
20
package.json
@ -12,20 +12,16 @@
|
||||
"scripts": {
|
||||
"build:development": "cross-env RAILS_ENV=development NODE_ENV=development ./bin/webpack",
|
||||
"build:production": "cross-env RAILS_ENV=production NODE_ENV=production ./bin/webpack",
|
||||
"fix:js": "yarn lint:js --fix",
|
||||
"fix:json": "prettier --write \"**/*.{json,json5}\"",
|
||||
"fix:md": "prettier --write \"**/*.md\"",
|
||||
"fix:sass": "stylelint --fix \"**/*.{css,scss}\" && prettier --write \"**/*.{css,scss}\"",
|
||||
"fix:yml": "prettier --write \"**/*.{yaml,yml}\"",
|
||||
"fix": "yarn fix:js && yarn fix:json && yarn fix:sass && yarn fix:yml",
|
||||
"fix:js": "eslint . --ext=.js,.jsx,.ts,.tsx --cache --report-unused-disable-directives --fix",
|
||||
"fix:css": "stylelint --fix \"**/*.{css,scss}\"",
|
||||
"fix": "yarn fix:js && yarn fix:css",
|
||||
"format": "prettier --write --log-level warn .",
|
||||
"format:check": "prettier --check --ignore-unknown .",
|
||||
"i18n:extract": "formatjs extract 'app/javascript/**/*.{js,jsx,ts,tsx}' '--ignore=**/*.d.ts' --out-file app/javascript/flavours/glitch/locales/en.json --format config/formatjs-formatter.js",
|
||||
"jest": "cross-env NODE_ENV=test jest",
|
||||
"lint:js": "eslint . --ext=.js,.jsx,.ts,.tsx --cache --report-unused-disable-directives",
|
||||
"lint:json": "prettier --check \"**/*.{json,json5}\"",
|
||||
"lint:md": "prettier --check \"**/*.md\"",
|
||||
"lint:sass": "stylelint \"**/*.{css,scss}\" && prettier --check \"**/*.{css,scss}\"",
|
||||
"lint:yml": "prettier --check \"**/*.{yaml,yml}\"",
|
||||
"lint": "yarn lint:js && yarn lint:json && yarn lint:sass && yarn lint:yml",
|
||||
"lint:css": "stylelint \"**/*.{css,scss}\"",
|
||||
"lint": "yarn lint:js && yarn lint:css",
|
||||
"postversion": "git push --tags",
|
||||
"prepare": "husky",
|
||||
"start": "node ./streaming/index.js",
|
||||
@ -180,14 +176,12 @@
|
||||
"@typescript-eslint/parser": "^7.0.0",
|
||||
"babel-jest": "^29.5.0",
|
||||
"eslint": "^8.41.0",
|
||||
"eslint-config-prettier": "^9.0.0",
|
||||
"eslint-define-config": "^2.0.0",
|
||||
"eslint-import-resolver-typescript": "^3.5.5",
|
||||
"eslint-plugin-formatjs": "^4.10.1",
|
||||
"eslint-plugin-import": "~2.29.0",
|
||||
"eslint-plugin-jsdoc": "^48.0.0",
|
||||
"eslint-plugin-jsx-a11y": "~6.8.0",
|
||||
"eslint-plugin-prettier": "^5.0.0",
|
||||
"eslint-plugin-promise": "~6.1.1",
|
||||
"eslint-plugin-react": "^7.33.2",
|
||||
"eslint-plugin-react-hooks": "^4.6.0",
|
||||
|
@ -31,6 +31,8 @@
|
||||
|
||||
var iframe = iframes.get(data.id);
|
||||
|
||||
if(!iframe) return;
|
||||
|
||||
if ('source' in e && iframe.contentWindow !== e.source) {
|
||||
return;
|
||||
}
|
||||
@ -38,7 +40,7 @@
|
||||
iframe.height = data.height;
|
||||
});
|
||||
|
||||
[].forEach.call(document.querySelectorAll('iframe.mastodon-embed'), function (iframe) {
|
||||
document.querySelectorAll('iframe.mastodon-embed').forEach(iframe => {
|
||||
// select unique id for each iframe
|
||||
var id = 0, failCount = 0, idBuffer = new Uint32Array(1);
|
||||
while (id === 0 || iframes.has(id)) {
|
||||
|
@ -44,14 +44,13 @@ describe Admin::InvitesController do
|
||||
end
|
||||
|
||||
describe 'POST #deactivate_all' do
|
||||
before { Fabricate(:invite, expires_at: nil) }
|
||||
|
||||
it 'expires all invites, then redirects to admin_invites_path' do
|
||||
invites = Fabricate.times(1, :invite, expires_at: nil)
|
||||
|
||||
post :deactivate_all
|
||||
|
||||
invites.each do |invite|
|
||||
expect(invite.reload).to be_expired
|
||||
end
|
||||
expect { post :deactivate_all }
|
||||
.to change { Invite.exists?(expires_at: nil) }
|
||||
.from(true)
|
||||
.to(false)
|
||||
|
||||
expect(response).to redirect_to admin_invites_path
|
||||
end
|
||||
|
@ -192,7 +192,7 @@ const pgConfigFromEnv = (env) => {
|
||||
if (!baseConfig.password && env.DB_PASS) {
|
||||
baseConfig.password = env.DB_PASS;
|
||||
}
|
||||
} else if (Object.hasOwnProperty.call(pgConfigs, environment)) {
|
||||
} else if (Object.hasOwn(pgConfigs, environment)) {
|
||||
baseConfig = pgConfigs[environment];
|
||||
|
||||
if (env.DB_SSLMODE) {
|
||||
@ -919,7 +919,7 @@ const startServer = async () => {
|
||||
// If the payload already contains the `filtered` property, it means
|
||||
// that filtering has been applied on the ruby on rails side, as
|
||||
// such, we don't need to construct or apply the filters in streaming:
|
||||
if (Object.prototype.hasOwnProperty.call(payload, "filtered")) {
|
||||
if (Object.hasOwn(payload, "filtered")) {
|
||||
transmit(event, payload);
|
||||
return;
|
||||
}
|
||||
|
@ -6,7 +6,7 @@
|
||||
"moduleResolution": "NodeNext",
|
||||
"noUnusedParameters": false,
|
||||
"tsBuildInfoFile": "../tmp/cache/streaming/tsconfig.tsbuildinfo",
|
||||
"paths": {},
|
||||
"paths": {}
|
||||
},
|
||||
"include": ["./*.js", "./.eslintrc.cjs"],
|
||||
"include": ["./*.js", "./.eslintrc.cjs"]
|
||||
}
|
||||
|
@ -20,14 +20,14 @@
|
||||
"flavours/glitch/*": ["app/javascript/flavours/glitch/*"],
|
||||
"mastodon": ["app/javascript/mastodon"],
|
||||
"mastodon/*": ["app/javascript/mastodon/*"],
|
||||
"@/*": ["app/javascript/*"],
|
||||
},
|
||||
"@/*": ["app/javascript/*"]
|
||||
}
|
||||
},
|
||||
"include": [
|
||||
"app/javascript/mastodon",
|
||||
"app/javascript/packs",
|
||||
"app/javascript/types",
|
||||
"app/javascript/flavours/glitch",
|
||||
"app/javascript/core",
|
||||
],
|
||||
"app/javascript/core"
|
||||
]
|
||||
}
|
||||
|
307
yarn.lock
307
yarn.lock
@ -42,7 +42,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.23.5":
|
||||
"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.23.5":
|
||||
version: 7.23.5
|
||||
resolution: "@babel/code-frame@npm:7.23.5"
|
||||
dependencies:
|
||||
@ -373,6 +373,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/parser@npm:^7.22.15":
|
||||
version: 7.23.6
|
||||
resolution: "@babel/parser@npm:7.23.6"
|
||||
bin:
|
||||
parser: ./bin/babel-parser.js
|
||||
checksum: 10c0/6f76cd5ccae1fa9bcab3525b0865c6222e9c1d22f87abc69f28c5c7b2c8816a13361f5bd06bddbd5faf903f7320a8feba02545c981468acec45d12a03db7755e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.23.3":
|
||||
version: 7.23.3
|
||||
resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.23.3"
|
||||
@ -1491,7 +1500,18 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/template@npm:^7.22.15, @babel/template@npm:^7.23.9, @babel/template@npm:^7.3.3":
|
||||
"@babel/template@npm:^7.22.15, @babel/template@npm:^7.3.3":
|
||||
version: 7.22.15
|
||||
resolution: "@babel/template@npm:7.22.15"
|
||||
dependencies:
|
||||
"@babel/code-frame": "npm:^7.22.13"
|
||||
"@babel/parser": "npm:^7.22.15"
|
||||
"@babel/types": "npm:^7.22.15"
|
||||
checksum: 10c0/9312edd37cf1311d738907003f2aa321a88a42ba223c69209abe4d7111db019d321805504f606c7fd75f21c6cf9d24d0a8223104cd21ebd207e241b6c551f454
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/template@npm:^7.23.9":
|
||||
version: 7.23.9
|
||||
resolution: "@babel/template@npm:7.23.9"
|
||||
dependencies:
|
||||
@ -1520,7 +1540,18 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/types@npm:^7.0.0, @babel/types@npm:^7.0.0-beta.49, @babel/types@npm:^7.12.11, @babel/types@npm:^7.12.6, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.10, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.6, @babel/types@npm:^7.23.9, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3":
|
||||
"@babel/types@npm:^7.0.0, @babel/types@npm:^7.0.0-beta.49, @babel/types@npm:^7.12.11, @babel/types@npm:^7.12.6, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.10, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.6, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3":
|
||||
version: 7.23.6
|
||||
resolution: "@babel/types@npm:7.23.6"
|
||||
dependencies:
|
||||
"@babel/helper-string-parser": "npm:^7.23.4"
|
||||
"@babel/helper-validator-identifier": "npm:^7.22.20"
|
||||
to-fast-properties: "npm:^2.0.0"
|
||||
checksum: 10c0/42cefce8a68bd09bb5828b4764aa5586c53c60128ac2ac012e23858e1c179347a4aac9c66fc577994fbf57595227611c5ec8270bf0cfc94ff033bbfac0550b70
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/types@npm:^7.23.9":
|
||||
version: 7.23.9
|
||||
resolution: "@babel/types@npm:7.23.9"
|
||||
dependencies:
|
||||
@ -2361,14 +2392,12 @@ __metadata:
|
||||
emoji-mart: "npm:emoji-mart-lazyload@latest"
|
||||
escape-html: "npm:^1.0.3"
|
||||
eslint: "npm:^8.41.0"
|
||||
eslint-config-prettier: "npm:^9.0.0"
|
||||
eslint-define-config: "npm:^2.0.0"
|
||||
eslint-import-resolver-typescript: "npm:^3.5.5"
|
||||
eslint-plugin-formatjs: "npm:^4.10.1"
|
||||
eslint-plugin-import: "npm:~2.29.0"
|
||||
eslint-plugin-jsdoc: "npm:^48.0.0"
|
||||
eslint-plugin-jsx-a11y: "npm:~6.8.0"
|
||||
eslint-plugin-prettier: "npm:^5.0.0"
|
||||
eslint-plugin-promise: "npm:~6.1.1"
|
||||
eslint-plugin-react: "npm:^7.33.2"
|
||||
eslint-plugin-react-hooks: "npm:^4.6.0"
|
||||
@ -2575,20 +2604,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@pkgr/utils@npm:^2.4.2":
|
||||
version: 2.4.2
|
||||
resolution: "@pkgr/utils@npm:2.4.2"
|
||||
dependencies:
|
||||
cross-spawn: "npm:^7.0.3"
|
||||
fast-glob: "npm:^3.3.0"
|
||||
is-glob: "npm:^4.0.3"
|
||||
open: "npm:^9.1.0"
|
||||
picocolors: "npm:^1.0.0"
|
||||
tslib: "npm:^2.6.0"
|
||||
checksum: 10c0/7c3e68f6405a1d4c51f418d8d580e71d7bade2683d5db07e8413d8e57f7e389047eda44a2341f77a1b3085895fca7676a9d45e8812a58312524f8c4c65d501be
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@polka/url@npm:^1.0.0-next.20":
|
||||
version: 1.0.0-next.21
|
||||
resolution: "@polka/url@npm:1.0.0-next.21"
|
||||
@ -2884,8 +2899,8 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"@testing-library/jest-dom@npm:^6.0.0":
|
||||
version: 6.4.0
|
||||
resolution: "@testing-library/jest-dom@npm:6.4.0"
|
||||
version: 6.4.2
|
||||
resolution: "@testing-library/jest-dom@npm:6.4.2"
|
||||
dependencies:
|
||||
"@adobe/css-tools": "npm:^4.3.2"
|
||||
"@babel/runtime": "npm:^7.9.2"
|
||||
@ -2912,13 +2927,13 @@ __metadata:
|
||||
optional: true
|
||||
vitest:
|
||||
optional: true
|
||||
checksum: 10c0/6b7eba9ca388986a721fb12f84adf0f5534bf7ec5851982023a889c4a0afac6e9e91291bdac39e1f59a05adefd7727e30463d98b21c3da32fbfec229ccb11ef1
|
||||
checksum: 10c0/e7eba527b34ce30cde94424d2ec685bdfed51daaafb7df9b68b51aec6052e99a50c8bfe654612dacdf857a1eb81d68cf294fc89de558ee3a992bf7a6019fffcc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@testing-library/react@npm:^14.0.0":
|
||||
version: 14.1.2
|
||||
resolution: "@testing-library/react@npm:14.1.2"
|
||||
version: 14.2.1
|
||||
resolution: "@testing-library/react@npm:14.2.1"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.12.5"
|
||||
"@testing-library/dom": "npm:^9.0.0"
|
||||
@ -2926,7 +2941,7 @@ __metadata:
|
||||
peerDependencies:
|
||||
react: ^18.0.0
|
||||
react-dom: ^18.0.0
|
||||
checksum: 10c0/b5b0990d3aa0ea8b37c55804e0d5d584fc638a5c7d4df90da9a0fdb00bc981b27b6991468b2dc719982a5d0b0107a41596063ce51ad519eeab47b22bc04d6779
|
||||
checksum: 10c0/83b35cf8bf5640f1b63b32223ebc75799dc1a8e034d819120b26838fba0b0ab10bdbe6ad07dd8ae8287365f2b0c52dc9892a6fa11bb24d3e63ad97dfb7f2f296
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -4949,13 +4964,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"big-integer@npm:^1.6.44":
|
||||
version: 1.6.51
|
||||
resolution: "big-integer@npm:1.6.51"
|
||||
checksum: 10c0/c8139662d57f8833a44802f4b65be911679c569535ea73c5cfd3c1c8994eaead1b84b6f63e1db63833e4d4cacb6b6a9e5522178113dfdc8e4c81ed8436f1e8cc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"big.js@npm:^5.2.2":
|
||||
version: 5.2.2
|
||||
resolution: "big.js@npm:5.2.2"
|
||||
@ -5069,15 +5077,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"bplist-parser@npm:^0.2.0":
|
||||
version: 0.2.0
|
||||
resolution: "bplist-parser@npm:0.2.0"
|
||||
dependencies:
|
||||
big-integer: "npm:^1.6.44"
|
||||
checksum: 10c0/ce79c69e0f6efe506281e7c84e3712f7d12978991675b6e3a58a295b16f13ca81aa9b845c335614a545e0af728c8311b6aa3142af76ba1cb616af9bbac5c4a9f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"brace-expansion@npm:^1.1.7":
|
||||
version: 1.1.11
|
||||
resolution: "brace-expansion@npm:1.1.11"
|
||||
@ -5300,15 +5299,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"bundle-name@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "bundle-name@npm:3.0.0"
|
||||
dependencies:
|
||||
run-applescript: "npm:^5.0.0"
|
||||
checksum: 10c0/57bc7f8b025d83961b04db2f1eff6a87f2363c2891f3542a4b82471ff8ebb5d484af48e9784fcdb28ef1d48bb01f03d891966dc3ef58758e46ea32d750ce40f8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"bytes@npm:3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "bytes@npm:3.0.0"
|
||||
@ -6534,28 +6524,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"default-browser-id@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "default-browser-id@npm:3.0.0"
|
||||
dependencies:
|
||||
bplist-parser: "npm:^0.2.0"
|
||||
untildify: "npm:^4.0.0"
|
||||
checksum: 10c0/8db3ab882eb3e1e8b59d84c8641320e6c66d8eeb17eb4bb848b7dd549b1e6fd313988e4a13542e95fbaeff03f6e9dedc5ad191ad4df7996187753eb0d45c00b7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"default-browser@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "default-browser@npm:4.0.0"
|
||||
dependencies:
|
||||
bundle-name: "npm:^3.0.0"
|
||||
default-browser-id: "npm:^3.0.0"
|
||||
execa: "npm:^7.1.1"
|
||||
titleize: "npm:^3.0.0"
|
||||
checksum: 10c0/7c8848badc139ecf9d878e562bc4e7ab4301e51ba120b24d8dcb14739c30152115cc612065ac3ab73c02aace4afa29db5a044257b2f0cf234f16e3a58f6c925e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"default-gateway@npm:^4.2.0":
|
||||
version: 4.2.0
|
||||
resolution: "default-gateway@npm:4.2.0"
|
||||
@ -6577,13 +6545,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"define-lazy-prop@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "define-lazy-prop@npm:3.0.0"
|
||||
checksum: 10c0/5ab0b2bf3fa58b3a443140bbd4cd3db1f91b985cc8a246d330b9ac3fc0b6a325a6d82bddc0b055123d745b3f9931afeea74a5ec545439a1630b9c8512b0eeb49
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1":
|
||||
version: 1.2.1
|
||||
resolution: "define-properties@npm:1.2.1"
|
||||
@ -7308,17 +7269,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-config-prettier@npm:^9.0.0":
|
||||
version: 9.1.0
|
||||
resolution: "eslint-config-prettier@npm:9.1.0"
|
||||
peerDependencies:
|
||||
eslint: ">=7.0.0"
|
||||
bin:
|
||||
eslint-config-prettier: bin/cli.js
|
||||
checksum: 10c0/6d332694b36bc9ac6fdb18d3ca2f6ac42afa2ad61f0493e89226950a7091e38981b66bac2b47ba39d15b73fff2cd32c78b850a9cf9eed9ca9a96bfb2f3a2f10d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-define-config@npm:^2.0.0":
|
||||
version: 2.1.0
|
||||
resolution: "eslint-define-config@npm:2.1.0"
|
||||
@ -7460,26 +7410,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-plugin-prettier@npm:^5.0.0":
|
||||
version: 5.1.3
|
||||
resolution: "eslint-plugin-prettier@npm:5.1.3"
|
||||
dependencies:
|
||||
prettier-linter-helpers: "npm:^1.0.0"
|
||||
synckit: "npm:^0.8.6"
|
||||
peerDependencies:
|
||||
"@types/eslint": ">=8.0.0"
|
||||
eslint: ">=8.0.0"
|
||||
eslint-config-prettier: "*"
|
||||
prettier: ">=3.0.0"
|
||||
peerDependenciesMeta:
|
||||
"@types/eslint":
|
||||
optional: true
|
||||
eslint-config-prettier:
|
||||
optional: true
|
||||
checksum: 10c0/f45d5fc1fcfec6b0cf038a7a65ddd10a25df4fe3f9e1f6b7f0d5100e66f046a26a2492e69ee765dddf461b93c114cf2e1eb18d4970aafa6f385448985c136e09
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-plugin-promise@npm:~6.1.1":
|
||||
version: 6.1.1
|
||||
resolution: "eslint-plugin-promise@npm:6.1.1"
|
||||
@ -7768,23 +7698,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"execa@npm:^7.1.1":
|
||||
version: 7.2.0
|
||||
resolution: "execa@npm:7.2.0"
|
||||
dependencies:
|
||||
cross-spawn: "npm:^7.0.3"
|
||||
get-stream: "npm:^6.0.1"
|
||||
human-signals: "npm:^4.3.0"
|
||||
is-stream: "npm:^3.0.0"
|
||||
merge-stream: "npm:^2.0.0"
|
||||
npm-run-path: "npm:^5.1.0"
|
||||
onetime: "npm:^6.0.0"
|
||||
signal-exit: "npm:^3.0.7"
|
||||
strip-final-newline: "npm:^3.0.0"
|
||||
checksum: 10c0/098cd6a1bc26d509e5402c43f4971736450b84d058391820c6f237aeec6436963e006fd8423c9722f148c53da86aa50045929c7278b5522197dff802d10f9885
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"exif-js@npm:^2.3.0":
|
||||
version: 2.3.0
|
||||
resolution: "exif-js@npm:2.3.0"
|
||||
@ -7931,14 +7844,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"fast-diff@npm:^1.1.2":
|
||||
version: 1.3.0
|
||||
resolution: "fast-diff@npm:1.3.0"
|
||||
checksum: 10c0/5c19af237edb5d5effda008c891a18a585f74bf12953be57923f17a3a4d0979565fc64dbc73b9e20926b9d895f5b690c618cbb969af0cf022e3222471220ad29
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0, fast-glob@npm:^3.3.1, fast-glob@npm:^3.3.2":
|
||||
"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.1, fast-glob@npm:^3.3.2":
|
||||
version: 3.3.2
|
||||
resolution: "fast-glob@npm:3.3.2"
|
||||
dependencies:
|
||||
@ -8456,7 +8362,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"get-stream@npm:^6.0.0, get-stream@npm:^6.0.1":
|
||||
"get-stream@npm:^6.0.0":
|
||||
version: 6.0.1
|
||||
resolution: "get-stream@npm:6.0.1"
|
||||
checksum: 10c0/49825d57d3fd6964228e6200a58169464b8e8970489b3acdc24906c782fb7f01f9f56f8e6653c4a50713771d6658f7cfe051e5eb8c12e334138c9c918b296341
|
||||
@ -9056,13 +8962,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"human-signals@npm:^4.3.0":
|
||||
version: 4.3.1
|
||||
resolution: "human-signals@npm:4.3.1"
|
||||
checksum: 10c0/40498b33fe139f5cc4ef5d2f95eb1803d6318ac1b1c63eaf14eeed5484d26332c828de4a5a05676b6c83d7b9e57727c59addb4b1dea19cb8d71e83689e5b336c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"human-signals@npm:^5.0.0":
|
||||
version: 5.0.0
|
||||
resolution: "human-signals@npm:5.0.0"
|
||||
@ -9536,24 +9435,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-docker@npm:^2.0.0":
|
||||
version: 2.2.1
|
||||
resolution: "is-docker@npm:2.2.1"
|
||||
bin:
|
||||
is-docker: cli.js
|
||||
checksum: 10c0/e828365958d155f90c409cdbe958f64051d99e8aedc2c8c4cd7c89dcf35329daed42f7b99346f7828df013e27deb8f721cf9408ba878c76eb9e8290235fbcdcc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-docker@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "is-docker@npm:3.0.0"
|
||||
bin:
|
||||
is-docker: cli.js
|
||||
checksum: 10c0/d2c4f8e6d3e34df75a5defd44991b6068afad4835bb783b902fa12d13ebdb8f41b2a199dcb0b5ed2cb78bfee9e4c0bbdb69c2d9646f4106464674d3e697a5856
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-electron@npm:^2.2.0":
|
||||
version: 2.2.2
|
||||
resolution: "is-electron@npm:2.2.2"
|
||||
@ -9657,17 +9538,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-inside-container@npm:^1.0.0":
|
||||
version: 1.0.0
|
||||
resolution: "is-inside-container@npm:1.0.0"
|
||||
dependencies:
|
||||
is-docker: "npm:^3.0.0"
|
||||
bin:
|
||||
is-inside-container: cli.js
|
||||
checksum: 10c0/a8efb0e84f6197e6ff5c64c52890fa9acb49b7b74fed4da7c95383965da6f0fa592b4dbd5e38a79f87fc108196937acdbcd758fcefc9b140e479b39ce1fcd1cd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-lambda@npm:^1.0.1":
|
||||
version: 1.0.1
|
||||
resolution: "is-lambda@npm:1.0.1"
|
||||
@ -9911,15 +9781,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-wsl@npm:^2.2.0":
|
||||
version: 2.2.0
|
||||
resolution: "is-wsl@npm:2.2.0"
|
||||
dependencies:
|
||||
is-docker: "npm:^2.0.0"
|
||||
checksum: 10c0/a6fa2d370d21be487c0165c7a440d567274fbba1a817f2f0bfa41cc5e3af25041d84267baa22df66696956038a43973e72fca117918c91431920bdef490fa25e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"isarray@npm:0.0.1":
|
||||
version: 0.0.1
|
||||
resolution: "isarray@npm:0.0.1"
|
||||
@ -10927,28 +10788,28 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"lint-staged@npm:^15.0.0":
|
||||
version: 15.2.0
|
||||
resolution: "lint-staged@npm:15.2.0"
|
||||
version: 15.2.2
|
||||
resolution: "lint-staged@npm:15.2.2"
|
||||
dependencies:
|
||||
chalk: "npm:5.3.0"
|
||||
commander: "npm:11.1.0"
|
||||
debug: "npm:4.3.4"
|
||||
execa: "npm:8.0.1"
|
||||
lilconfig: "npm:3.0.0"
|
||||
listr2: "npm:8.0.0"
|
||||
listr2: "npm:8.0.1"
|
||||
micromatch: "npm:4.0.5"
|
||||
pidtree: "npm:0.6.0"
|
||||
string-argv: "npm:0.3.2"
|
||||
yaml: "npm:2.3.4"
|
||||
bin:
|
||||
lint-staged: bin/lint-staged.js
|
||||
checksum: 10c0/4a1ff25dd06dbd4346fd244c9a0ebb936532ba18c0caedeb895c2e232f3c6c5fd08f6667624716660bc29e3e0f9f0440a9175114394616e991ebd5fab4b1f092
|
||||
checksum: 10c0/a1ba6c7ee53e30a0f6ea9a351d95d3d0d2be916a41b561e22907e9ea513eb18cb3dbe65bff3ec13fad15777999efe56b2e2a95427e31d12a9b7e7948c3630ee2
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"listr2@npm:8.0.0":
|
||||
version: 8.0.0
|
||||
resolution: "listr2@npm:8.0.0"
|
||||
"listr2@npm:8.0.1":
|
||||
version: 8.0.1
|
||||
resolution: "listr2@npm:8.0.1"
|
||||
dependencies:
|
||||
cli-truncate: "npm:^4.0.0"
|
||||
colorette: "npm:^2.0.20"
|
||||
@ -10956,7 +10817,7 @@ __metadata:
|
||||
log-update: "npm:^6.0.0"
|
||||
rfdc: "npm:^1.3.0"
|
||||
wrap-ansi: "npm:^9.0.0"
|
||||
checksum: 10c0/6e356df9127c68b69186c927c993645223557e941a76b0bb210e35786aedc53f577df437251db804606ff37ac509c5d945289a84b3daee7fadf2e3dcb889ecc9
|
||||
checksum: 10c0/b565d6ceb3a4c2dbe0c1735c0fd907afd0d6f89de21aced8e05187b2d88ca2f8f9ebc5d743885396a00f05f13146f6be744d098a56ce0402cf1cd131485a7ff1
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -12170,18 +12031,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"open@npm:^9.1.0":
|
||||
version: 9.1.0
|
||||
resolution: "open@npm:9.1.0"
|
||||
dependencies:
|
||||
default-browser: "npm:^4.0.0"
|
||||
define-lazy-prop: "npm:^3.0.0"
|
||||
is-inside-container: "npm:^1.0.0"
|
||||
is-wsl: "npm:^2.2.0"
|
||||
checksum: 10c0/8073ec0dd8994a7a7d9bac208bd17d093993a65ce10f2eb9b62b6d3a91c9366ae903938a237c275493c130171d339f6dcbdd2a2de7e32953452c0867b97825af
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"opencollective-postinstall@npm:^2.0.2":
|
||||
version: 2.0.3
|
||||
resolution: "opencollective-postinstall@npm:2.0.3"
|
||||
@ -13309,21 +13158,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"prettier-linter-helpers@npm:^1.0.0":
|
||||
version: 1.0.0
|
||||
resolution: "prettier-linter-helpers@npm:1.0.0"
|
||||
dependencies:
|
||||
fast-diff: "npm:^1.1.2"
|
||||
checksum: 10c0/81e0027d731b7b3697ccd2129470ed9913ecb111e4ec175a12f0fcfab0096516373bf0af2fef132af50cafb0a905b74ff57996d615f59512bb9ac7378fcc64ab
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"prettier@npm:^3.0.0":
|
||||
version: 3.2.4
|
||||
resolution: "prettier@npm:3.2.4"
|
||||
version: 3.2.5
|
||||
resolution: "prettier@npm:3.2.5"
|
||||
bin:
|
||||
prettier: bin/prettier.cjs
|
||||
checksum: 10c0/88dfeb78ac6096522c9a5b81f1413d875f568420d9bb6a5e5103527912519b993f2bcdcac311fcff5718d5869671d44e4f85827d3626f3a6ce32b9abc65d88e0
|
||||
checksum: 10c0/ea327f37a7d46f2324a34ad35292af2ad4c4c3c3355da07313339d7e554320f66f65f91e856add8530157a733c6c4a897dc41b577056be5c24c40f739f5ee8c6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -14577,15 +14417,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"run-applescript@npm:^5.0.0":
|
||||
version: 5.0.0
|
||||
resolution: "run-applescript@npm:5.0.0"
|
||||
dependencies:
|
||||
execa: "npm:^5.0.0"
|
||||
checksum: 10c0/f9977db5770929f3f0db434b8e6aa266498c70dec913c84320c0a06add510cf44e3a048c44da088abee312006f9cbf572fd065cdc8f15d7682afda8755f4114c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"run-parallel@npm:^1.1.9":
|
||||
version: 1.2.0
|
||||
resolution: "run-parallel@npm:1.2.0"
|
||||
@ -15809,8 +15640,8 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"stylelint@npm:^16.0.2":
|
||||
version: 16.2.0
|
||||
resolution: "stylelint@npm:16.2.0"
|
||||
version: 16.2.1
|
||||
resolution: "stylelint@npm:16.2.1"
|
||||
dependencies:
|
||||
"@csstools/css-parser-algorithms": "npm:^2.5.0"
|
||||
"@csstools/css-tokenizer": "npm:^2.2.3"
|
||||
@ -15852,7 +15683,7 @@ __metadata:
|
||||
write-file-atomic: "npm:^5.0.1"
|
||||
bin:
|
||||
stylelint: bin/stylelint.mjs
|
||||
checksum: 10c0/6fdf0451833c11b18c9aa502f687febd6881a912ac94f39d509b894b0f74ccb636f3dac2991c69cc82dc6190731cc2fa48e307fed477d2a0fce57067cd22b572
|
||||
checksum: 10c0/eeaba06885e542c832e5cffc07b2d0dabdc5a72e6ad4d6cb3d01dcc260c29a712b0b935cbd40e059abd68a100e0563fbc617fc4c9bef3b14ecaf6eea651d9d9d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -15984,16 +15815,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"synckit@npm:^0.8.6":
|
||||
version: 0.8.6
|
||||
resolution: "synckit@npm:0.8.6"
|
||||
dependencies:
|
||||
"@pkgr/utils": "npm:^2.4.2"
|
||||
tslib: "npm:^2.6.2"
|
||||
checksum: 10c0/200528062e3915a0190a4c6b1e01436fcfdf812e2e8d977746746f3998bb4182d758af760e51b06a64f8323e705735aff7b4b3efc4a0ab5f75eaccc044a8cfcc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"table@npm:^6.8.1":
|
||||
version: 6.8.1
|
||||
resolution: "table@npm:6.8.1"
|
||||
@ -16188,13 +16009,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"titleize@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "titleize@npm:3.0.0"
|
||||
checksum: 10c0/5ae6084ba299b5782f95e3fe85ea9f0fa4d74b8ae722b6b3208157e975589fbb27733aeba4e5080fa9314a856044ef52caa61b87caea4b1baade951a55c06336
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"tmpl@npm:1.0.5":
|
||||
version: 1.0.5
|
||||
resolution: "tmpl@npm:1.0.5"
|
||||
@ -16337,7 +16151,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"tslib@npm:2.6.2, tslib@npm:^2.4.0, tslib@npm:^2.6.0, tslib@npm:^2.6.2":
|
||||
"tslib@npm:2.6.2, tslib@npm:^2.4.0":
|
||||
version: 2.6.2
|
||||
resolution: "tslib@npm:2.6.2"
|
||||
checksum: 10c0/e03a8a4271152c8b26604ed45535954c0a45296e32445b4b87f8a5abdb2421f40b59b4ca437c4346af0f28179780d604094eb64546bee2019d903d01c6c19bdb
|
||||
@ -16659,13 +16473,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"untildify@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "untildify@npm:4.0.0"
|
||||
checksum: 10c0/d758e624c707d49f76f7511d75d09a8eda7f2020d231ec52b67ff4896bcf7013be3f9522d8375f57e586e9a2e827f5641c7e06ee46ab9c435fc2b2b2e9de517a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"upath@npm:^1.1.1, upath@npm:^1.2.0":
|
||||
version: 1.2.0
|
||||
resolution: "upath@npm:1.2.0"
|
||||
|
Loading…
Reference in New Issue
Block a user