mirror of
https://github.com/mastodon/mastodon.git
synced 2026-03-21 18:05:23 -05:00
Replace prettier with oxfmt (#37893)
Some checks failed
Check i18n / check-i18n (push) Waiting to run
Chromatic / Check for relevant changes (push) Waiting to run
Chromatic / Run Chromatic (push) Blocked by required conditions
CodeQL / Analyze (actions) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (ruby) (push) Waiting to run
Crowdin / Upload translations / upload-translations (push) Waiting to run
Check formatting / lint (push) Waiting to run
CSS Linting / lint (push) Waiting to run
JavaScript Linting / lint (push) Waiting to run
Ruby Linting / lint (push) Waiting to run
JavaScript Testing / test (push) Waiting to run
Historical data migration test / test (14-alpine) (push) Waiting to run
Historical data migration test / test (15-alpine) (push) Waiting to run
Historical data migration test / test (16-alpine) (push) Waiting to run
Historical data migration test / test (17-alpine) (push) Waiting to run
Ruby Testing / build (production) (push) Waiting to run
Ruby Testing / build (test) (push) Waiting to run
Ruby Testing / test (.ruby-version) (push) Blocked by required conditions
Ruby Testing / test (3.2) (push) Blocked by required conditions
Ruby Testing / test (3.3) (push) Blocked by required conditions
Ruby Testing / End to End testing (.ruby-version) (push) Blocked by required conditions
Ruby Testing / End to End testing (3.2) (push) Blocked by required conditions
Ruby Testing / End to End testing (3.3) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:8.10.2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, opensearchproject/opensearch:2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (3.2, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (3.3, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Bundler Audit / security (push) Has been cancelled
Haml Linting / lint (push) Has been cancelled
Some checks failed
Check i18n / check-i18n (push) Waiting to run
Chromatic / Check for relevant changes (push) Waiting to run
Chromatic / Run Chromatic (push) Blocked by required conditions
CodeQL / Analyze (actions) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (ruby) (push) Waiting to run
Crowdin / Upload translations / upload-translations (push) Waiting to run
Check formatting / lint (push) Waiting to run
CSS Linting / lint (push) Waiting to run
JavaScript Linting / lint (push) Waiting to run
Ruby Linting / lint (push) Waiting to run
JavaScript Testing / test (push) Waiting to run
Historical data migration test / test (14-alpine) (push) Waiting to run
Historical data migration test / test (15-alpine) (push) Waiting to run
Historical data migration test / test (16-alpine) (push) Waiting to run
Historical data migration test / test (17-alpine) (push) Waiting to run
Ruby Testing / build (production) (push) Waiting to run
Ruby Testing / build (test) (push) Waiting to run
Ruby Testing / test (.ruby-version) (push) Blocked by required conditions
Ruby Testing / test (3.2) (push) Blocked by required conditions
Ruby Testing / test (3.3) (push) Blocked by required conditions
Ruby Testing / End to End testing (.ruby-version) (push) Blocked by required conditions
Ruby Testing / End to End testing (3.2) (push) Blocked by required conditions
Ruby Testing / End to End testing (3.3) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:8.10.2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, opensearchproject/opensearch:2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (3.2, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (3.3, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Bundler Audit / security (push) Has been cancelled
Haml Linting / lint (push) Has been cancelled
This commit is contained in:
parent
8e7c3973dc
commit
e24737c612
2
.github/workflows/format-check.yml
vendored
2
.github/workflows/format-check.yml
vendored
|
|
@ -18,5 +18,5 @@ jobs:
|
||||||
- name: Set up Javascript environment
|
- name: Set up Javascript environment
|
||||||
uses: ./.github/actions/setup-javascript
|
uses: ./.github/actions/setup-javascript
|
||||||
|
|
||||||
- name: Check formatting with Prettier
|
- name: Check formatting
|
||||||
run: yarn format:check
|
run: yarn format:check
|
||||||
|
|
|
||||||
92
.oxfmtrc.json
Normal file
92
.oxfmtrc.json
Normal file
|
|
@ -0,0 +1,92 @@
|
||||||
|
{
|
||||||
|
"$schema": "./node_modules/oxfmt/configuration_schema.json",
|
||||||
|
"singleQuote": true,
|
||||||
|
"jsxSingleQuote": true,
|
||||||
|
"printWidth": 80,
|
||||||
|
"ignorePatterns": [
|
||||||
|
"/tmp",
|
||||||
|
"/coverage",
|
||||||
|
"/public/assets",
|
||||||
|
"/public/emoji",
|
||||||
|
"/public/packs",
|
||||||
|
"/public/packs-test",
|
||||||
|
"/public/system",
|
||||||
|
"/public/vite*",
|
||||||
|
|
||||||
|
"*.html",
|
||||||
|
"docker-compose.override.yml",
|
||||||
|
|
||||||
|
// Ignore config YAML files that include ERB/ruby code
|
||||||
|
"config/email.yml",
|
||||||
|
|
||||||
|
// Vendored CSS
|
||||||
|
"app/javascript/styles/mastodon/reset.scss",
|
||||||
|
|
||||||
|
// Automatically generated
|
||||||
|
"/app/javascript/mastodon/features/emoji/emoji_map.json",
|
||||||
|
"/app/javascript/mastodon/features/emoji/emoji_data.json",
|
||||||
|
"AUTHORS.md",
|
||||||
|
"/app/javascript/mastodon/locales/*.json",
|
||||||
|
"/config/locales",
|
||||||
|
".storybook/static/mockServiceWorker.js",
|
||||||
|
|
||||||
|
// do not reformat JS files as this will change too many files and cause merge conflicts with open PRs and forks
|
||||||
|
"app/javascript/**/*.js",
|
||||||
|
"app/javascript/**/*.jsx",
|
||||||
|
"streaming/**/*.js"
|
||||||
|
],
|
||||||
|
"experimentalSortPackageJson": false,
|
||||||
|
"experimentalSortImports": {
|
||||||
|
"groups": [
|
||||||
|
["builtin"],
|
||||||
|
["react"],
|
||||||
|
["react-intl"],
|
||||||
|
["react-utils"],
|
||||||
|
["redux"],
|
||||||
|
["external", "type-external"],
|
||||||
|
["internal", "type-internal"],
|
||||||
|
["mastodon-internals"],
|
||||||
|
["parent", "type-parent"],
|
||||||
|
["sibling", "type-sibling", "index", "type-index"],
|
||||||
|
["side_effect"]
|
||||||
|
],
|
||||||
|
"customGroups": [
|
||||||
|
{
|
||||||
|
"groupName": "react",
|
||||||
|
"elementNamePattern": [
|
||||||
|
"react",
|
||||||
|
"react-dom",
|
||||||
|
"react-dom/client",
|
||||||
|
"prop-types"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"groupName": "react-intl",
|
||||||
|
"elementNamePattern": ["react-intl", "intl-messageformat"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"groupName": "react-utils",
|
||||||
|
"elementNamePattern": [
|
||||||
|
"classnames",
|
||||||
|
"react-helmet",
|
||||||
|
"react-router",
|
||||||
|
"react-router-dom"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"groupName": "redux",
|
||||||
|
"elementNamePattern": [
|
||||||
|
"immutable",
|
||||||
|
"@reduxjs/toolkit",
|
||||||
|
"react-redux",
|
||||||
|
"react-immutable-proptypes",
|
||||||
|
"react-immutable-pure-component"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"groupName": "mastodon-internals",
|
||||||
|
"elementNamePattern": ["mastodon/**", "@/**"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,86 +0,0 @@
|
||||||
# See https://help.github.com/articles/ignoring-files for more about ignoring files.
|
|
||||||
#
|
|
||||||
# If you find yourself ignoring temporary files generated by your text editor
|
|
||||||
# or operating system, you probably want to add a global ignore instead:
|
|
||||||
# git config --global core.excludesfile '~/.gitignore_global'
|
|
||||||
|
|
||||||
# Ignore bundler config and downloaded libraries.
|
|
||||||
/.bundle
|
|
||||||
/vendor/bundle
|
|
||||||
|
|
||||||
# Ignore the default SQLite database.
|
|
||||||
/db/*.sqlite3
|
|
||||||
/db/*.sqlite3-journal
|
|
||||||
|
|
||||||
# Ignore all logfiles and tempfiles.
|
|
||||||
.eslintcache
|
|
||||||
/log/*
|
|
||||||
!/log/.keep
|
|
||||||
/tmp
|
|
||||||
/coverage
|
|
||||||
.env
|
|
||||||
.env.production
|
|
||||||
.env.development
|
|
||||||
/node_modules/
|
|
||||||
/build/
|
|
||||||
|
|
||||||
# Ignore Vagrant files
|
|
||||||
.vagrant/
|
|
||||||
|
|
||||||
# Ignore IDE files
|
|
||||||
.vscode/
|
|
||||||
.idea/
|
|
||||||
|
|
||||||
# Ignore postgres + redis + elasticsearch volume optionally created by docker-compose
|
|
||||||
/postgres
|
|
||||||
/postgres14
|
|
||||||
/redis
|
|
||||||
/elasticsearch
|
|
||||||
|
|
||||||
# Ignore Apple files
|
|
||||||
.DS_Store
|
|
||||||
|
|
||||||
# Ignore vim files
|
|
||||||
*~
|
|
||||||
*.swp
|
|
||||||
|
|
||||||
# Ignore log files
|
|
||||||
*.log
|
|
||||||
|
|
||||||
# Ignore Docker option files
|
|
||||||
docker-compose.override.yml
|
|
||||||
|
|
||||||
# Ignore public
|
|
||||||
/public/assets
|
|
||||||
/public/emoji
|
|
||||||
/public/packs
|
|
||||||
/public/packs-test
|
|
||||||
/public/system
|
|
||||||
/public/vite*
|
|
||||||
|
|
||||||
# Ignore emoji map file
|
|
||||||
/app/javascript/mastodon/features/emoji/emoji_map.json
|
|
||||||
/app/javascript/mastodon/features/emoji/emoji_data.json
|
|
||||||
|
|
||||||
# Ignore locale files
|
|
||||||
/app/javascript/mastodon/locales/*.json
|
|
||||||
/config/locales
|
|
||||||
|
|
||||||
# Ignore vendored CSS reset
|
|
||||||
app/javascript/styles/mastodon/reset.scss
|
|
||||||
|
|
||||||
# Ignore Javascript pending https://github.com/mastodon/mastodon/pull/23631
|
|
||||||
*.js
|
|
||||||
*.jsx
|
|
||||||
|
|
||||||
# Ignore HTML till cleaned and included in CI
|
|
||||||
*.html
|
|
||||||
|
|
||||||
# Ignore the generated AUTHORS.md
|
|
||||||
AUTHORS.md
|
|
||||||
|
|
||||||
# Process a few selected JS files
|
|
||||||
!lint-staged.config.js
|
|
||||||
|
|
||||||
# Ignore config YAML files that include ERB/ruby code prettier does not understand
|
|
||||||
/config/email.yml
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
module.exports = {
|
|
||||||
singleQuote: true,
|
|
||||||
jsxSingleQuote: true
|
|
||||||
};
|
|
||||||
|
|
@ -21,9 +21,10 @@ import { reducerWithInitialState } from '@/mastodon/reducers';
|
||||||
import { defaultMiddleware } from '@/mastodon/store/store';
|
import { defaultMiddleware } from '@/mastodon/store/store';
|
||||||
import { mockHandlers, unhandledRequestHandler } from '@/testing/api';
|
import { mockHandlers, unhandledRequestHandler } from '@/testing/api';
|
||||||
|
|
||||||
|
import { modes } from './modes';
|
||||||
|
|
||||||
import '../app/javascript/styles/application.scss';
|
import '../app/javascript/styles/application.scss';
|
||||||
import './styles.css';
|
import './styles.css';
|
||||||
import { modes } from './modes';
|
|
||||||
|
|
||||||
const localeFiles = import.meta.glob('@/mastodon/locales/*.json', {
|
const localeFiles = import.meta.glob('@/mastodon/locales/*.json', {
|
||||||
query: { as: 'json' },
|
query: { as: 'json' },
|
||||||
|
|
|
||||||
|
|
@ -366,9 +366,9 @@ on('change', '#account_statuses_cleanup_policy_enabled', ({ target }) => {
|
||||||
if (!(target instanceof HTMLInputElement) || !target.form) return;
|
if (!(target instanceof HTMLInputElement) || !target.form) return;
|
||||||
|
|
||||||
target.form
|
target.form
|
||||||
.querySelectorAll<
|
.querySelectorAll<HTMLInputElement | HTMLSelectElement>(
|
||||||
HTMLInputElement | HTMLSelectElement
|
'input:not([type=hidden], #account_statuses_cleanup_policy_enabled), select',
|
||||||
>('input:not([type=hidden], #account_statuses_cleanup_policy_enabled), select')
|
)
|
||||||
.forEach((input) => {
|
.forEach((input) => {
|
||||||
setInputDisabled(input, !target.checked);
|
setInputDisabled(input, !target.checked);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,11 @@ import { useState, useCallback, useRef, useId } from 'react';
|
||||||
|
|
||||||
import { FormattedMessage } from 'react-intl';
|
import { FormattedMessage } from 'react-intl';
|
||||||
|
|
||||||
import Overlay from 'react-overlays/Overlay';
|
|
||||||
import type {
|
import type {
|
||||||
OffsetValue,
|
OffsetValue,
|
||||||
UsePopperOptions,
|
UsePopperOptions,
|
||||||
} from 'react-overlays/esm/usePopper';
|
} from 'react-overlays/esm/usePopper';
|
||||||
|
import Overlay from 'react-overlays/Overlay';
|
||||||
|
|
||||||
import { useSelectableClick } from 'mastodon/hooks/useSelectableClick';
|
import { useSelectableClick } from 'mastodon/hooks/useSelectableClick';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,12 +13,12 @@ import { Link } from 'react-router-dom';
|
||||||
|
|
||||||
import type { Map as ImmutableMap } from 'immutable';
|
import type { Map as ImmutableMap } from 'immutable';
|
||||||
|
|
||||||
import Overlay from 'react-overlays/Overlay';
|
|
||||||
import type {
|
import type {
|
||||||
OffsetValue,
|
OffsetValue,
|
||||||
UsePopperOptions,
|
UsePopperOptions,
|
||||||
Placement,
|
Placement,
|
||||||
} from 'react-overlays/esm/usePopper';
|
} from 'react-overlays/esm/usePopper';
|
||||||
|
import Overlay from 'react-overlays/Overlay';
|
||||||
|
|
||||||
import { fetchRelationships } from 'mastodon/actions/accounts';
|
import { fetchRelationships } from 'mastodon/actions/accounts';
|
||||||
import {
|
import {
|
||||||
|
|
@ -90,7 +90,7 @@ export const DropdownMenuItemContent: React.FC<{ item: MenuItem }> = ({
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export const DropdownMenu = <Item = MenuItem,>({
|
export const DropdownMenu = <Item = MenuItem>({
|
||||||
items,
|
items,
|
||||||
loading,
|
loading,
|
||||||
scrollable,
|
scrollable,
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,11 @@ import { useEffect, useRef, useState, useCallback } from 'react';
|
||||||
|
|
||||||
import { useLocation } from 'react-router-dom';
|
import { useLocation } from 'react-router-dom';
|
||||||
|
|
||||||
import Overlay from 'react-overlays/Overlay';
|
|
||||||
import type {
|
import type {
|
||||||
OffsetValue,
|
OffsetValue,
|
||||||
UsePopperOptions,
|
UsePopperOptions,
|
||||||
} from 'react-overlays/esm/usePopper';
|
} from 'react-overlays/esm/usePopper';
|
||||||
|
import Overlay from 'react-overlays/Overlay';
|
||||||
|
|
||||||
import { HoverCardAccount } from 'mastodon/components/hover_card_account';
|
import { HoverCardAccount } from 'mastodon/components/hover_card_account';
|
||||||
import { useTimeout } from 'mastodon/hooks/useTimeout';
|
import { useTimeout } from 'mastodon/hooks/useTimeout';
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,11 @@ import { useIntl, defineMessages } from 'react-intl';
|
||||||
|
|
||||||
import { useLocation } from 'react-router-dom';
|
import { useLocation } from 'react-router-dom';
|
||||||
|
|
||||||
import Overlay from 'react-overlays/Overlay';
|
|
||||||
import type {
|
import type {
|
||||||
OffsetValue,
|
OffsetValue,
|
||||||
UsePopperOptions,
|
UsePopperOptions,
|
||||||
} from 'react-overlays/esm/usePopper';
|
} from 'react-overlays/esm/usePopper';
|
||||||
|
import Overlay from 'react-overlays/Overlay';
|
||||||
|
|
||||||
import { DropdownMenu } from 'mastodon/components/dropdown_menu';
|
import { DropdownMenu } from 'mastodon/components/dropdown_menu';
|
||||||
import { useIdentity } from 'mastodon/identity_context';
|
import { useIdentity } from 'mastodon/identity_context';
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
|
|
||||||
const currentTranslations = require(path.join(__dirname, "../app/javascript/mastodon/locales/en.json"));
|
const currentTranslations = require(
|
||||||
|
path.join(__dirname, '../app/javascript/mastodon/locales/en.json'),
|
||||||
|
);
|
||||||
|
|
||||||
exports.format = (msgs) => {
|
exports.format = (msgs) => {
|
||||||
const results = {};
|
const results = {};
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@
|
||||||
import path from 'node:path';
|
import path from 'node:path';
|
||||||
|
|
||||||
import js from '@eslint/js';
|
import js from '@eslint/js';
|
||||||
import { globalIgnores } from 'eslint/config';
|
|
||||||
import formatjs from 'eslint-plugin-formatjs';
|
import formatjs from 'eslint-plugin-formatjs';
|
||||||
import importPlugin from 'eslint-plugin-import';
|
import importPlugin from 'eslint-plugin-import';
|
||||||
import jsdoc from 'eslint-plugin-jsdoc';
|
import jsdoc from 'eslint-plugin-jsdoc';
|
||||||
|
|
@ -12,6 +11,7 @@ import promisePlugin from 'eslint-plugin-promise';
|
||||||
import react from 'eslint-plugin-react';
|
import react from 'eslint-plugin-react';
|
||||||
import reactHooks from 'eslint-plugin-react-hooks';
|
import reactHooks from 'eslint-plugin-react-hooks';
|
||||||
import storybook from 'eslint-plugin-storybook';
|
import storybook from 'eslint-plugin-storybook';
|
||||||
|
import { globalIgnores } from 'eslint/config';
|
||||||
import globals from 'globals';
|
import globals from 'globals';
|
||||||
import tseslint from 'typescript-eslint';
|
import tseslint from 'typescript-eslint';
|
||||||
|
|
||||||
|
|
@ -90,57 +90,6 @@ export const baseConfig = [
|
||||||
'import/no-relative-packages': 'error',
|
'import/no-relative-packages': 'error',
|
||||||
'import/no-self-import': 'error',
|
'import/no-self-import': 'error',
|
||||||
'import/no-useless-path-segments': 'error',
|
'import/no-useless-path-segments': 'error',
|
||||||
'import/order': [
|
|
||||||
'error',
|
|
||||||
{
|
|
||||||
alphabetize: {
|
|
||||||
order: 'asc',
|
|
||||||
},
|
|
||||||
|
|
||||||
'newlines-between': 'always',
|
|
||||||
|
|
||||||
groups: [
|
|
||||||
'builtin',
|
|
||||||
'external',
|
|
||||||
'internal',
|
|
||||||
'parent',
|
|
||||||
['index', 'sibling'],
|
|
||||||
'object',
|
|
||||||
],
|
|
||||||
|
|
||||||
pathGroups: [
|
|
||||||
{
|
|
||||||
pattern: '{react,react-dom,react-dom/client,prop-types}',
|
|
||||||
group: 'builtin',
|
|
||||||
position: 'after',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pattern: '{react-intl,intl-messageformat}',
|
|
||||||
group: 'builtin',
|
|
||||||
position: 'after',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pattern:
|
|
||||||
'{classnames,react-helmet,react-router,react-router-dom}',
|
|
||||||
group: 'external',
|
|
||||||
position: 'before',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pattern:
|
|
||||||
'{immutable,@reduxjs/toolkit,react-redux,react-immutable-proptypes,react-immutable-pure-component}',
|
|
||||||
group: 'external',
|
|
||||||
position: 'before',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pattern: '{mastodon/**}',
|
|
||||||
group: 'internal',
|
|
||||||
position: 'after',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
|
|
||||||
pathGroupsExcludedImportTypes: [],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
|
|
||||||
'jsdoc/check-types': 'off',
|
'jsdoc/check-types': 'off',
|
||||||
'jsdoc/no-undefined-types': 'off',
|
'jsdoc/no-undefined-types': 'off',
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
const config = {
|
const config = {
|
||||||
'*': 'prettier --ignore-unknown --write',
|
'*': 'oxfmt --no-error-on-unmatched-pattern',
|
||||||
'Gemfile|*.{rb,ruby,ru,rake}': 'bin/rubocop --force-exclusion -a',
|
'Gemfile|*.{rb,ruby,ru,rake}': 'bin/rubocop --force-exclusion -a',
|
||||||
'*.{js,jsx,ts,tsx}': 'eslint --fix',
|
'*.{js,jsx,ts,tsx}': 'eslint --fix',
|
||||||
'*.{css,scss}': 'stylelint --fix',
|
'*.{css,scss}': 'stylelint --fix',
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,8 @@
|
||||||
"fix:js": "eslint . --cache --fix",
|
"fix:js": "eslint . --cache --fix",
|
||||||
"fix:css": "stylelint --fix \"**/*.{css,scss}\"",
|
"fix:css": "stylelint --fix \"**/*.{css,scss}\"",
|
||||||
"fix": "yarn fix:js && yarn fix:css",
|
"fix": "yarn fix:js && yarn fix:css",
|
||||||
"format": "prettier --write --log-level warn .",
|
"format": "oxfmt",
|
||||||
"format:check": "prettier --check --ignore-unknown .",
|
"format:check": "oxfmt --check",
|
||||||
"i18n:extract": "formatjs extract 'app/javascript/**/*.{js,jsx,ts,tsx}' config/vite/plugin-sw-locales.ts --ignore '**/*.d.ts' --out-file app/javascript/mastodon/locales/en.json --format config/formatjs-formatter.js",
|
"i18n:extract": "formatjs extract 'app/javascript/**/*.{js,jsx,ts,tsx}' config/vite/plugin-sw-locales.ts --ignore '**/*.d.ts' --out-file app/javascript/mastodon/locales/en.json --format config/formatjs-formatter.js",
|
||||||
"lint:js": "cd $INIT_CWD && eslint --cache --report-unused-disable-directives",
|
"lint:js": "cd $INIT_CWD && eslint --cache --report-unused-disable-directives",
|
||||||
"lint:css": "stylelint \"**/*.{css,scss}\"",
|
"lint:css": "stylelint \"**/*.{css,scss}\"",
|
||||||
|
|
@ -180,8 +180,8 @@
|
||||||
"lint-staged": "^16.2.6",
|
"lint-staged": "^16.2.6",
|
||||||
"msw": "^2.12.1",
|
"msw": "^2.12.1",
|
||||||
"msw-storybook-addon": "^2.0.6",
|
"msw-storybook-addon": "^2.0.6",
|
||||||
|
"oxfmt": "^0.33.0",
|
||||||
"playwright": "^1.57.0",
|
"playwright": "^1.57.0",
|
||||||
"prettier": "^3.3.3",
|
|
||||||
"react-test-renderer": "^18.2.0",
|
"react-test-renderer": "^18.2.0",
|
||||||
"storybook": "^10.0.5",
|
"storybook": "^10.0.5",
|
||||||
"stylelint": "^17.0.0",
|
"stylelint": "^17.0.0",
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,9 @@
|
||||||
* @param {Map} map
|
* @param {Map} map
|
||||||
*/
|
*/
|
||||||
var generateId = function (map) {
|
var generateId = function (map) {
|
||||||
var id = 0, failCount = 0, idBuffer = new Uint32Array(1);
|
var id = 0,
|
||||||
|
failCount = 0,
|
||||||
|
idBuffer = new Uint32Array(1);
|
||||||
|
|
||||||
while (id === 0 || map.has(id)) {
|
while (id === 0 || map.has(id)) {
|
||||||
id = crypto.getRandomValues(idBuffer)[0];
|
id = crypto.getRandomValues(idBuffer)[0];
|
||||||
|
|
@ -44,7 +46,11 @@
|
||||||
window.addEventListener('message', function (e) {
|
window.addEventListener('message', function (e) {
|
||||||
var data = e.data || {};
|
var data = e.data || {};
|
||||||
|
|
||||||
if (typeof data !== 'object' || data.type !== 'setHeight' || !embeds.has(data.id)) {
|
if (
|
||||||
|
typeof data !== 'object' ||
|
||||||
|
data.type !== 'setHeight' ||
|
||||||
|
!embeds.has(data.id)
|
||||||
|
) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -72,7 +78,7 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
// Legacy embeds
|
// Legacy embeds
|
||||||
document.querySelectorAll('iframe.mastodon-embed').forEach(iframe => {
|
document.querySelectorAll('iframe.mastodon-embed').forEach((iframe) => {
|
||||||
var id = generateId(embeds);
|
var id = generateId(embeds);
|
||||||
|
|
||||||
embeds.set(id, iframe);
|
embeds.set(id, iframe);
|
||||||
|
|
@ -84,44 +90,64 @@
|
||||||
iframe.style.display = 'block';
|
iframe.style.display = 'block';
|
||||||
|
|
||||||
iframe.onload = function () {
|
iframe.onload = function () {
|
||||||
iframe.contentWindow.postMessage({
|
iframe.contentWindow.postMessage(
|
||||||
type: 'setHeight',
|
{
|
||||||
id: id,
|
type: 'setHeight',
|
||||||
}, '*');
|
id: id,
|
||||||
|
},
|
||||||
|
'*',
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
iframe.onload(); // In case the script is executing after the iframe has already loaded
|
iframe.onload(); // In case the script is executing after the iframe has already loaded
|
||||||
});
|
});
|
||||||
|
|
||||||
// New generation of embeds
|
// New generation of embeds
|
||||||
document.querySelectorAll('blockquote.mastodon-embed').forEach(container => {
|
document
|
||||||
var id = generateId(embeds);
|
.querySelectorAll('blockquote.mastodon-embed')
|
||||||
|
.forEach((container) => {
|
||||||
|
var id = generateId(embeds);
|
||||||
|
|
||||||
embeds.set(id, container);
|
embeds.set(id, container);
|
||||||
|
|
||||||
var iframe = document.createElement('iframe');
|
var iframe = document.createElement('iframe');
|
||||||
var embedUrl = new URL(container.getAttribute('data-embed-url'));
|
var embedUrl = new URL(container.getAttribute('data-embed-url'));
|
||||||
|
|
||||||
if (embedUrl.protocol !== 'https:' && embedUrl.protocol !== 'http:') return;
|
if (embedUrl.protocol !== 'https:' && embedUrl.protocol !== 'http:')
|
||||||
if (allowedPrefixes.every((allowedPrefix) => !embedUrl.toString().startsWith(allowedPrefix))) return;
|
return;
|
||||||
|
if (
|
||||||
|
allowedPrefixes.every(
|
||||||
|
(allowedPrefix) => !embedUrl.toString().startsWith(allowedPrefix),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
return;
|
||||||
|
|
||||||
iframe.src = embedUrl.toString();
|
iframe.src = embedUrl.toString();
|
||||||
iframe.width = container.clientWidth;
|
iframe.width = container.clientWidth;
|
||||||
iframe.height = 0;
|
iframe.height = 0;
|
||||||
iframe.allow = 'fullscreen';
|
iframe.allow = 'fullscreen';
|
||||||
iframe.sandbox = 'allow-scripts allow-same-origin allow-popups';
|
iframe.sandbox = 'allow-scripts allow-same-origin allow-popups';
|
||||||
iframe.style.border = 0;
|
iframe.style.border = 0;
|
||||||
iframe.style.overflow = 'hidden';
|
iframe.style.overflow = 'hidden';
|
||||||
iframe.style.display = 'block';
|
iframe.style.display = 'block';
|
||||||
|
|
||||||
iframe.onload = function () {
|
iframe.onload = function () {
|
||||||
iframe.contentWindow.postMessage({
|
iframe.contentWindow.postMessage(
|
||||||
type: 'setHeight',
|
{
|
||||||
id: id,
|
type: 'setHeight',
|
||||||
}, '*');
|
id: id,
|
||||||
};
|
},
|
||||||
|
'*',
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
container.appendChild(iframe);
|
container.appendChild(iframe);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
})((document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT' && document.currentScript.dataset.allowedPrefixes) ? document.currentScript.dataset.allowedPrefixes.split(' ') : []);
|
})(
|
||||||
|
document.currentScript &&
|
||||||
|
document.currentScript.tagName.toUpperCase() === 'SCRIPT' &&
|
||||||
|
document.currentScript.dataset.allowedPrefixes
|
||||||
|
? document.currentScript.dataset.allowedPrefixes.split(' ')
|
||||||
|
: [],
|
||||||
|
);
|
||||||
|
|
|
||||||
|
|
@ -36,20 +36,22 @@ module.exports = {
|
||||||
'property-no-unknown': [
|
'property-no-unknown': [
|
||||||
true,
|
true,
|
||||||
{
|
{
|
||||||
ignoreProperties: [
|
ignoreProperties: ['/^mso-/'],
|
||||||
'/^mso-/',
|
},
|
||||||
] },
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
files: ['app/javascript/**/*.module.scss', 'app/javascript/**/*.module.css'],
|
files: [
|
||||||
|
'app/javascript/**/*.module.scss',
|
||||||
|
'app/javascript/**/*.module.css',
|
||||||
|
],
|
||||||
rules: {
|
rules: {
|
||||||
'selector-pseudo-class-no-unknown': [
|
'selector-pseudo-class-no-unknown': [
|
||||||
true,
|
true,
|
||||||
{ ignorePseudoClasses: ['global'] },
|
{ ignorePseudoClasses: ['global'] },
|
||||||
]
|
],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import path from 'node:path';
|
|
||||||
import { readdir } from 'node:fs/promises';
|
import { readdir } from 'node:fs/promises';
|
||||||
|
import path from 'node:path';
|
||||||
|
|
||||||
import { optimizeLodashImports } from '@optimize-lodash/rollup-plugin';
|
import { optimizeLodashImports } from '@optimize-lodash/rollup-plugin';
|
||||||
import legacy from '@vitejs/plugin-legacy';
|
import legacy from '@vitejs/plugin-legacy';
|
||||||
|
|
@ -18,11 +18,11 @@ import { VitePWA } from 'vite-plugin-pwa';
|
||||||
import svgr from 'vite-plugin-svgr';
|
import svgr from 'vite-plugin-svgr';
|
||||||
import tsconfigPaths from 'vite-tsconfig-paths';
|
import tsconfigPaths from 'vite-tsconfig-paths';
|
||||||
|
|
||||||
import { MastodonServiceWorkerLocales } from './config/vite/plugin-sw-locales';
|
import { MastodonAssetsManifest } from './config/vite/plugin-assets-manifest';
|
||||||
import { MastodonEmojiCompressed } from './config/vite/plugin-emoji-compressed';
|
import { MastodonEmojiCompressed } from './config/vite/plugin-emoji-compressed';
|
||||||
import { MastodonThemes } from './config/vite/plugin-mastodon-themes';
|
import { MastodonThemes } from './config/vite/plugin-mastodon-themes';
|
||||||
import { MastodonNameLookup } from './config/vite/plugin-name-lookup';
|
import { MastodonNameLookup } from './config/vite/plugin-name-lookup';
|
||||||
import { MastodonAssetsManifest } from './config/vite/plugin-assets-manifest';
|
import { MastodonServiceWorkerLocales } from './config/vite/plugin-sw-locales';
|
||||||
|
|
||||||
const jsRoot = path.resolve(__dirname, 'app/javascript');
|
const jsRoot = path.resolve(__dirname, 'app/javascript');
|
||||||
|
|
||||||
|
|
|
||||||
220
yarn.lock
220
yarn.lock
|
|
@ -2886,10 +2886,10 @@ __metadata:
|
||||||
marky: "npm:^1.2.5"
|
marky: "npm:^1.2.5"
|
||||||
msw: "npm:^2.12.1"
|
msw: "npm:^2.12.1"
|
||||||
msw-storybook-addon: "npm:^2.0.6"
|
msw-storybook-addon: "npm:^2.0.6"
|
||||||
|
oxfmt: "npm:^0.33.0"
|
||||||
path-complete-extname: "npm:^1.0.0"
|
path-complete-extname: "npm:^1.0.0"
|
||||||
playwright: "npm:^1.57.0"
|
playwright: "npm:^1.57.0"
|
||||||
postcss-preset-env: "npm:^11.0.0"
|
postcss-preset-env: "npm:^11.0.0"
|
||||||
prettier: "npm:^3.3.3"
|
|
||||||
prop-types: "npm:^15.8.1"
|
prop-types: "npm:^15.8.1"
|
||||||
punycode: "npm:^2.3.0"
|
punycode: "npm:^2.3.0"
|
||||||
react: "npm:^18.2.0"
|
react: "npm:^18.2.0"
|
||||||
|
|
@ -3124,6 +3124,139 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@oxfmt/binding-android-arm-eabi@npm:0.33.0":
|
||||||
|
version: 0.33.0
|
||||||
|
resolution: "@oxfmt/binding-android-arm-eabi@npm:0.33.0"
|
||||||
|
conditions: os=android & cpu=arm
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@oxfmt/binding-android-arm64@npm:0.33.0":
|
||||||
|
version: 0.33.0
|
||||||
|
resolution: "@oxfmt/binding-android-arm64@npm:0.33.0"
|
||||||
|
conditions: os=android & cpu=arm64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@oxfmt/binding-darwin-arm64@npm:0.33.0":
|
||||||
|
version: 0.33.0
|
||||||
|
resolution: "@oxfmt/binding-darwin-arm64@npm:0.33.0"
|
||||||
|
conditions: os=darwin & cpu=arm64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@oxfmt/binding-darwin-x64@npm:0.33.0":
|
||||||
|
version: 0.33.0
|
||||||
|
resolution: "@oxfmt/binding-darwin-x64@npm:0.33.0"
|
||||||
|
conditions: os=darwin & cpu=x64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@oxfmt/binding-freebsd-x64@npm:0.33.0":
|
||||||
|
version: 0.33.0
|
||||||
|
resolution: "@oxfmt/binding-freebsd-x64@npm:0.33.0"
|
||||||
|
conditions: os=freebsd & cpu=x64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@oxfmt/binding-linux-arm-gnueabihf@npm:0.33.0":
|
||||||
|
version: 0.33.0
|
||||||
|
resolution: "@oxfmt/binding-linux-arm-gnueabihf@npm:0.33.0"
|
||||||
|
conditions: os=linux & cpu=arm
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@oxfmt/binding-linux-arm-musleabihf@npm:0.33.0":
|
||||||
|
version: 0.33.0
|
||||||
|
resolution: "@oxfmt/binding-linux-arm-musleabihf@npm:0.33.0"
|
||||||
|
conditions: os=linux & cpu=arm
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@oxfmt/binding-linux-arm64-gnu@npm:0.33.0":
|
||||||
|
version: 0.33.0
|
||||||
|
resolution: "@oxfmt/binding-linux-arm64-gnu@npm:0.33.0"
|
||||||
|
conditions: os=linux & cpu=arm64 & libc=glibc
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@oxfmt/binding-linux-arm64-musl@npm:0.33.0":
|
||||||
|
version: 0.33.0
|
||||||
|
resolution: "@oxfmt/binding-linux-arm64-musl@npm:0.33.0"
|
||||||
|
conditions: os=linux & cpu=arm64 & libc=musl
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@oxfmt/binding-linux-ppc64-gnu@npm:0.33.0":
|
||||||
|
version: 0.33.0
|
||||||
|
resolution: "@oxfmt/binding-linux-ppc64-gnu@npm:0.33.0"
|
||||||
|
conditions: os=linux & cpu=ppc64 & libc=glibc
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@oxfmt/binding-linux-riscv64-gnu@npm:0.33.0":
|
||||||
|
version: 0.33.0
|
||||||
|
resolution: "@oxfmt/binding-linux-riscv64-gnu@npm:0.33.0"
|
||||||
|
conditions: os=linux & cpu=riscv64 & libc=glibc
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@oxfmt/binding-linux-riscv64-musl@npm:0.33.0":
|
||||||
|
version: 0.33.0
|
||||||
|
resolution: "@oxfmt/binding-linux-riscv64-musl@npm:0.33.0"
|
||||||
|
conditions: os=linux & cpu=riscv64 & libc=musl
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@oxfmt/binding-linux-s390x-gnu@npm:0.33.0":
|
||||||
|
version: 0.33.0
|
||||||
|
resolution: "@oxfmt/binding-linux-s390x-gnu@npm:0.33.0"
|
||||||
|
conditions: os=linux & cpu=s390x & libc=glibc
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@oxfmt/binding-linux-x64-gnu@npm:0.33.0":
|
||||||
|
version: 0.33.0
|
||||||
|
resolution: "@oxfmt/binding-linux-x64-gnu@npm:0.33.0"
|
||||||
|
conditions: os=linux & cpu=x64 & libc=glibc
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@oxfmt/binding-linux-x64-musl@npm:0.33.0":
|
||||||
|
version: 0.33.0
|
||||||
|
resolution: "@oxfmt/binding-linux-x64-musl@npm:0.33.0"
|
||||||
|
conditions: os=linux & cpu=x64 & libc=musl
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@oxfmt/binding-openharmony-arm64@npm:0.33.0":
|
||||||
|
version: 0.33.0
|
||||||
|
resolution: "@oxfmt/binding-openharmony-arm64@npm:0.33.0"
|
||||||
|
conditions: os=openharmony & cpu=arm64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@oxfmt/binding-win32-arm64-msvc@npm:0.33.0":
|
||||||
|
version: 0.33.0
|
||||||
|
resolution: "@oxfmt/binding-win32-arm64-msvc@npm:0.33.0"
|
||||||
|
conditions: os=win32 & cpu=arm64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@oxfmt/binding-win32-ia32-msvc@npm:0.33.0":
|
||||||
|
version: 0.33.0
|
||||||
|
resolution: "@oxfmt/binding-win32-ia32-msvc@npm:0.33.0"
|
||||||
|
conditions: os=win32 & cpu=ia32
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@oxfmt/binding-win32-x64-msvc@npm:0.33.0":
|
||||||
|
version: 0.33.0
|
||||||
|
resolution: "@oxfmt/binding-win32-x64-msvc@npm:0.33.0"
|
||||||
|
conditions: os=win32 & cpu=x64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@parcel/watcher-android-arm64@npm:2.5.0":
|
"@parcel/watcher-android-arm64@npm:2.5.0":
|
||||||
version: 2.5.0
|
version: 2.5.0
|
||||||
resolution: "@parcel/watcher-android-arm64@npm:2.5.0"
|
resolution: "@parcel/watcher-android-arm64@npm:2.5.0"
|
||||||
|
|
@ -10274,6 +10407,75 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"oxfmt@npm:^0.33.0":
|
||||||
|
version: 0.33.0
|
||||||
|
resolution: "oxfmt@npm:0.33.0"
|
||||||
|
dependencies:
|
||||||
|
"@oxfmt/binding-android-arm-eabi": "npm:0.33.0"
|
||||||
|
"@oxfmt/binding-android-arm64": "npm:0.33.0"
|
||||||
|
"@oxfmt/binding-darwin-arm64": "npm:0.33.0"
|
||||||
|
"@oxfmt/binding-darwin-x64": "npm:0.33.0"
|
||||||
|
"@oxfmt/binding-freebsd-x64": "npm:0.33.0"
|
||||||
|
"@oxfmt/binding-linux-arm-gnueabihf": "npm:0.33.0"
|
||||||
|
"@oxfmt/binding-linux-arm-musleabihf": "npm:0.33.0"
|
||||||
|
"@oxfmt/binding-linux-arm64-gnu": "npm:0.33.0"
|
||||||
|
"@oxfmt/binding-linux-arm64-musl": "npm:0.33.0"
|
||||||
|
"@oxfmt/binding-linux-ppc64-gnu": "npm:0.33.0"
|
||||||
|
"@oxfmt/binding-linux-riscv64-gnu": "npm:0.33.0"
|
||||||
|
"@oxfmt/binding-linux-riscv64-musl": "npm:0.33.0"
|
||||||
|
"@oxfmt/binding-linux-s390x-gnu": "npm:0.33.0"
|
||||||
|
"@oxfmt/binding-linux-x64-gnu": "npm:0.33.0"
|
||||||
|
"@oxfmt/binding-linux-x64-musl": "npm:0.33.0"
|
||||||
|
"@oxfmt/binding-openharmony-arm64": "npm:0.33.0"
|
||||||
|
"@oxfmt/binding-win32-arm64-msvc": "npm:0.33.0"
|
||||||
|
"@oxfmt/binding-win32-ia32-msvc": "npm:0.33.0"
|
||||||
|
"@oxfmt/binding-win32-x64-msvc": "npm:0.33.0"
|
||||||
|
tinypool: "npm:2.1.0"
|
||||||
|
dependenciesMeta:
|
||||||
|
"@oxfmt/binding-android-arm-eabi":
|
||||||
|
optional: true
|
||||||
|
"@oxfmt/binding-android-arm64":
|
||||||
|
optional: true
|
||||||
|
"@oxfmt/binding-darwin-arm64":
|
||||||
|
optional: true
|
||||||
|
"@oxfmt/binding-darwin-x64":
|
||||||
|
optional: true
|
||||||
|
"@oxfmt/binding-freebsd-x64":
|
||||||
|
optional: true
|
||||||
|
"@oxfmt/binding-linux-arm-gnueabihf":
|
||||||
|
optional: true
|
||||||
|
"@oxfmt/binding-linux-arm-musleabihf":
|
||||||
|
optional: true
|
||||||
|
"@oxfmt/binding-linux-arm64-gnu":
|
||||||
|
optional: true
|
||||||
|
"@oxfmt/binding-linux-arm64-musl":
|
||||||
|
optional: true
|
||||||
|
"@oxfmt/binding-linux-ppc64-gnu":
|
||||||
|
optional: true
|
||||||
|
"@oxfmt/binding-linux-riscv64-gnu":
|
||||||
|
optional: true
|
||||||
|
"@oxfmt/binding-linux-riscv64-musl":
|
||||||
|
optional: true
|
||||||
|
"@oxfmt/binding-linux-s390x-gnu":
|
||||||
|
optional: true
|
||||||
|
"@oxfmt/binding-linux-x64-gnu":
|
||||||
|
optional: true
|
||||||
|
"@oxfmt/binding-linux-x64-musl":
|
||||||
|
optional: true
|
||||||
|
"@oxfmt/binding-openharmony-arm64":
|
||||||
|
optional: true
|
||||||
|
"@oxfmt/binding-win32-arm64-msvc":
|
||||||
|
optional: true
|
||||||
|
"@oxfmt/binding-win32-ia32-msvc":
|
||||||
|
optional: true
|
||||||
|
"@oxfmt/binding-win32-x64-msvc":
|
||||||
|
optional: true
|
||||||
|
bin:
|
||||||
|
oxfmt: bin/oxfmt
|
||||||
|
checksum: 10c0/77f670459a26a14844bdc9b34e7e06eae0b787138e265e28fa011eb9181f232cf784cd1c40adca1416d2af3f5c1af1ed08d3815860bb4596edcb0c4e3773d1f3
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"p-limit@npm:^3.0.2":
|
"p-limit@npm:^3.0.2":
|
||||||
version: 3.1.0
|
version: 3.1.0
|
||||||
resolution: "p-limit@npm:3.1.0"
|
resolution: "p-limit@npm:3.1.0"
|
||||||
|
|
@ -11231,15 +11433,6 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"prettier@npm:^3.3.3":
|
|
||||||
version: 3.7.4
|
|
||||||
resolution: "prettier@npm:3.7.4"
|
|
||||||
bin:
|
|
||||||
prettier: bin/prettier.cjs
|
|
||||||
checksum: 10c0/9675d2cd08eacb1faf1d1a2dbfe24bfab6a912b059fc9defdb380a408893d88213e794a40a2700bd29b140eb3172e0b07c852853f6e22f16f3374659a1a13389
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"pretty-bytes@npm:^5.3.0":
|
"pretty-bytes@npm:^5.3.0":
|
||||||
version: 5.6.0
|
version: 5.6.0
|
||||||
resolution: "pretty-bytes@npm:5.6.0"
|
resolution: "pretty-bytes@npm:5.6.0"
|
||||||
|
|
@ -13495,6 +13688,13 @@ __metadata:
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"tinypool@npm:2.1.0":
|
||||||
|
version: 2.1.0
|
||||||
|
resolution: "tinypool@npm:2.1.0"
|
||||||
|
checksum: 10c0/9fb1c760558c6264e0f4cfde96a63b12450b43f1730fbe6274aa24ddbdf488745c08924d0dea7a1303b47d555416a6415f2113898c69b6ecf731e75ac95238a5
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"tinyrainbow@npm:^2.0.0":
|
"tinyrainbow@npm:^2.0.0":
|
||||||
version: 2.0.0
|
version: 2.0.0
|
||||||
resolution: "tinyrainbow@npm:2.0.0"
|
resolution: "tinyrainbow@npm:2.0.0"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user