diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..6d1a793 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,4 @@ +node_modules +build +public +package.json diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..0f0f036 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,24 @@ +{ + "arrowParens": "always", + "bracketSpacing": true, + "endOfLine": "lf", + "htmlWhitespaceSensitivity": "css", + "insertPragma": false, + "singleAttributePerLine": false, + "bracketSameLine": false, + "jsxBracketSameLine": false, + "jsxSingleQuote": false, + "printWidth": 80, + "proseWrap": "preserve", + "quoteProps": "as-needed", + "requirePragma": false, + "semi": true, + "singleQuote": false, + "tabWidth": 2, + "trailingComma": "es5", + "useTabs": false, + "embeddedLanguageFormatting": "auto", + "vueIndentScriptAndStyle": false, + "experimentalTernaries": false, + "parser": "babel" +} diff --git a/package.json b/package.json index cd9f2c0..d0eb9e3 100644 --- a/package.json +++ b/package.json @@ -26,14 +26,15 @@ "start:userscript": "REACT_APP_CLIENT=userscript react-app-rewired start", "build:chrome": "rm -rf build/chrome && BUILD_PATH=./build/chrome REACT_APP_CLIENT=chrome react-app-rewired build && rm build/chrome/content.html", "build:edge": "rm -rf build/edge && cp -r build/chrome build/edge", - "build:thunderbird": "rm -rf build/thunderbird && BUILD_PATH=./build/thunderbird REACT_APP_CLIENT=thunderbird react-app-rewired build && rm build/thunderbird/content.html && cp ./build/thunderbird/manifest.thunderbird.json ./build/thunderbird/manifest.json && rm build/*/manifest.thunderbird.json", + "build:thunderbird": "rm -rf build/thunderbird && BUILD_PATH=./build/thunderbird REACT_APP_CLIENT=thunderbird react-app-rewired build && rm build/thunderbird/content.html && cp ./build/thunderbird/manifest.thunderbird.json ./build/thunderbird/manifest.json && rm build/*/manifest.thunderbird.json", "build:firefox": "rm -rf build/firefox && cp -r build/chrome build/firefox && cat ./build/firefox/manifest.firefox.json > ./build/firefox/manifest.json && rm build/*/manifest.firefox.json", "build:web": "rm -rf build/web && BUILD_PATH=./build/web REACT_APP_CLIENT=userscript react-app-rewired build", "build:userscript-ios": "file1=build/web/kiss-translator.user.js file2=build/web/kiss-translator-ios-safari.user.js && cp $file1 $file2 && sed -i 's|// @grant unsafeWindow|// @inject-into content|g' $file2", "build:userscript": "rm -rf build/userscript && mkdir build/userscript && cp build/web/*.user.js build/userscript/", "build:rules": "babel-node src/rules.js", - "build": "pnpm build:chrome && pnpm build:edge && pnpm build:thunderbird && pnpm build:firefox && pnpm build:web && pnpm build:userscript-ios && pnpm build:userscript && pnpm build:rules", + "build": "pnpm format && pnpm build:chrome && pnpm build:edge && pnpm build:thunderbird && pnpm build:firefox && pnpm build:web && pnpm build:userscript-ios && pnpm build:userscript && pnpm build:rules", "zip": "cd build && zip -r chrome.zip chrome && zip -r edge.zip edge && (cd firefox && zip -r ../firefox.zip .) && (cd thunderbird && zip -r ../thunderbird.zip .)", + "format": "prettier --write \"**/*.{js,json,html}\"", "test": "react-app-rewired test", "eject": "react-scripts eject" }, @@ -66,6 +67,7 @@ "@babel/node": "^7.22.19", "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@babel/preset-env": "^7.22.20", + "prettier": "3.6.2", "react-app-rewired": "^2.2.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 24ccf69..ce0217c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,16 +16,16 @@ importers: version: 11.11.1(@types/react@18.2.79)(react@18.2.0) '@emotion/styled': specifier: ^11.11.0 - version: 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.79)(react@18.2.0) + version: 11.11.0(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0) '@mui/icons-material': specifier: ^5.15.15 - version: 5.15.15(@mui/material@5.15.15)(@types/react@18.2.79)(react@18.2.0) + version: 5.15.15(@mui/material@5.15.15(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.2.79)(react@18.2.0) '@mui/lab': specifier: 5.0.0-alpha.170 - version: 5.0.0-alpha.170(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@mui/material@5.15.15)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + version: 5.0.0-alpha.170(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@mui/material@5.15.15(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/material': specifier: ^5.15.15 - version: 5.15.15(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + version: 5.15.15(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) query-string: specifier: ^8.1.0 version: 8.1.0 @@ -40,10 +40,10 @@ importers: version: 8.0.7(@types/react@18.2.79)(react@18.2.0) react-router-dom: specifier: ^6.16.0 - version: 6.16.0(react-dom@18.2.0)(react@18.2.0) + version: 6.16.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-scripts: specifier: 5.0.1 - version: 5.0.1(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@8.57.0)(react@18.2.0)(typescript@5.4.5) + version: 5.0.1(@babel/plugin-syntax-flow@7.24.1(@babel/core@7.22.20))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.22.20))(@types/babel__core@7.20.2)(eslint@8.57.0)(react@18.2.0)(type-fest@0.21.3)(typescript@5.4.5) sval: specifier: ^0.5.2 version: 0.5.2 @@ -66,9 +66,12 @@ importers: '@babel/preset-env': specifier: ^7.22.20 version: 7.22.20(@babel/core@7.22.20) + prettier: + specifier: 3.6.2 + version: 3.6.2 react-app-rewired: specifier: ^2.2.1 - version: 2.2.1(react-scripts@5.0.1) + version: 2.2.1(react-scripts@5.0.1(@babel/plugin-syntax-flow@7.24.1(@babel/core@7.22.20))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.22.20))(@types/babel__core@7.20.2)(eslint@8.57.0)(react@18.2.0)(type-fest@0.21.3)(typescript@5.4.5)) packages: @@ -1042,6 +1045,7 @@ packages: '@humanwhocodes/config-array@0.11.14': resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} @@ -1049,6 +1053,7 @@ packages: '@humanwhocodes/object-schema@2.0.3': resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead '@istanbuljs/load-nyc-config@1.1.0': resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} @@ -2780,6 +2785,7 @@ packages: eslint@8.57.0: resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true espree@9.6.1: @@ -4721,6 +4727,11 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} + prettier@3.6.2: + resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} + engines: {node: '>=14'} + hasBin: true + pretty-bytes@5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} engines: {node: '>=6'} @@ -6980,9 +6991,10 @@ snapshots: '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) '@emotion/utils': 1.2.1 '@emotion/weak-memoize': 0.3.1 - '@types/react': 18.2.79 hoist-non-react-statics: 3.3.2 react: 18.2.0 + optionalDependencies: + '@types/react': 18.2.79 '@emotion/serialize@1.1.2': dependencies: @@ -6994,7 +7006,7 @@ snapshots: '@emotion/sheet@1.2.2': {} - '@emotion/styled@11.11.0(@emotion/react@11.11.1)(@types/react@18.2.79)(react@18.2.0)': + '@emotion/styled@11.11.0(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0)': dependencies: '@babel/runtime': 7.22.15 '@emotion/babel-plugin': 11.11.0 @@ -7003,8 +7015,9 @@ snapshots: '@emotion/serialize': 1.1.2 '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) '@emotion/utils': 1.2.1 - '@types/react': 18.2.79 react: 18.2.0 + optionalDependencies: + '@types/react': 18.2.79 '@emotion/unitless@0.8.1': {} @@ -7050,7 +7063,7 @@ snapshots: '@floating-ui/core': 1.6.0 '@floating-ui/utils': 0.2.1 - '@floating-ui/react-dom@2.0.8(react-dom@18.2.0)(react@18.2.0)': + '@floating-ui/react-dom@2.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@floating-ui/dom': 1.6.3 react: 18.2.0 @@ -7281,55 +7294,55 @@ snapshots: '@leichtgewicht/ip-codec@2.0.4': {} - '@mui/base@5.0.0-beta.40(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)': + '@mui/base@5.0.0-beta.40(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.24.4 - '@floating-ui/react-dom': 2.0.8(react-dom@18.2.0)(react@18.2.0) + '@floating-ui/react-dom': 2.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/types': 7.2.14(@types/react@18.2.79) '@mui/utils': 5.15.14(@types/react@18.2.79)(react@18.2.0) '@popperjs/core': 2.11.8 - '@types/react': 18.2.79 clsx: 2.1.0 prop-types: 15.8.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.79 '@mui/core-downloads-tracker@5.15.15': {} - '@mui/icons-material@5.15.15(@mui/material@5.15.15)(@types/react@18.2.79)(react@18.2.0)': + '@mui/icons-material@5.15.15(@mui/material@5.15.15(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.2.79)(react@18.2.0)': dependencies: '@babel/runtime': 7.24.4 - '@mui/material': 5.15.15(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.79 + '@mui/material': 5.15.15(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 + optionalDependencies: + '@types/react': 18.2.79 - '@mui/lab@5.0.0-alpha.170(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@mui/material@5.15.15)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)': + '@mui/lab@5.0.0-alpha.170(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@mui/material@5.15.15(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.24.4 - '@emotion/react': 11.11.1(@types/react@18.2.79)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.79)(react@18.2.0) - '@mui/base': 5.0.0-beta.40(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) - '@mui/material': 5.15.15(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) - '@mui/system': 5.15.15(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.79)(react@18.2.0) + '@mui/base': 5.0.0-beta.40(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@mui/material': 5.15.15(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@mui/system': 5.15.15(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0) '@mui/types': 7.2.14(@types/react@18.2.79) '@mui/utils': 5.15.14(@types/react@18.2.79)(react@18.2.0) - '@types/react': 18.2.79 clsx: 2.1.0 prop-types: 15.8.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@emotion/react': 11.11.1(@types/react@18.2.79)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0) + '@types/react': 18.2.79 - '@mui/material@5.15.15(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)': + '@mui/material@5.15.15(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.24.4 - '@emotion/react': 11.11.1(@types/react@18.2.79)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.79)(react@18.2.0) - '@mui/base': 5.0.0-beta.40(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@mui/base': 5.0.0-beta.40(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mui/core-downloads-tracker': 5.15.15 - '@mui/system': 5.15.15(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.79)(react@18.2.0) + '@mui/system': 5.15.15(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0) '@mui/types': 7.2.14(@types/react@18.2.79) '@mui/utils': 5.15.14(@types/react@18.2.79)(react@18.2.0) - '@types/react': 18.2.79 '@types/react-transition-group': 4.4.10 clsx: 2.1.0 csstype: 3.1.3 @@ -7337,53 +7350,61 @@ snapshots: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-is: 18.2.0 - react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0) + react-transition-group: 4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + optionalDependencies: + '@emotion/react': 11.11.1(@types/react@18.2.79)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0) + '@types/react': 18.2.79 '@mui/private-theming@5.15.14(@types/react@18.2.79)(react@18.2.0)': dependencies: '@babel/runtime': 7.24.4 '@mui/utils': 5.15.14(@types/react@18.2.79)(react@18.2.0) - '@types/react': 18.2.79 prop-types: 15.8.1 react: 18.2.0 + optionalDependencies: + '@types/react': 18.2.79 - '@mui/styled-engine@5.15.14(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0)': + '@mui/styled-engine@5.15.14(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.24.4 '@emotion/cache': 11.11.0 - '@emotion/react': 11.11.1(@types/react@18.2.79)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.79)(react@18.2.0) csstype: 3.1.3 prop-types: 15.8.1 react: 18.2.0 + optionalDependencies: + '@emotion/react': 11.11.1(@types/react@18.2.79)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0) - '@mui/system@5.15.15(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.79)(react@18.2.0)': + '@mui/system@5.15.15(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0)': dependencies: '@babel/runtime': 7.24.4 - '@emotion/react': 11.11.1(@types/react@18.2.79)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.79)(react@18.2.0) '@mui/private-theming': 5.15.14(@types/react@18.2.79)(react@18.2.0) - '@mui/styled-engine': 5.15.14(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) + '@mui/styled-engine': 5.15.14(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0))(react@18.2.0) '@mui/types': 7.2.14(@types/react@18.2.79) '@mui/utils': 5.15.14(@types/react@18.2.79)(react@18.2.0) - '@types/react': 18.2.79 clsx: 2.1.0 csstype: 3.1.3 prop-types: 15.8.1 react: 18.2.0 + optionalDependencies: + '@emotion/react': 11.11.1(@types/react@18.2.79)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.1(@types/react@18.2.79)(react@18.2.0))(@types/react@18.2.79)(react@18.2.0) + '@types/react': 18.2.79 '@mui/types@7.2.14(@types/react@18.2.79)': - dependencies: + optionalDependencies: '@types/react': 18.2.79 '@mui/utils@5.15.14(@types/react@18.2.79)(react@18.2.0)': dependencies: '@babel/runtime': 7.24.4 '@types/prop-types': 15.7.11 - '@types/react': 18.2.79 prop-types: 15.8.1 react: 18.2.0 react-is: 18.2.0 + optionalDependencies: + '@types/react': 18.2.79 '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': dependencies: @@ -7401,7 +7422,7 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 - '@pmmmwh/react-refresh-webpack-plugin@0.5.11(react-refresh@0.11.0)(webpack-dev-server@4.15.1)(webpack@5.88.2)': + '@pmmmwh/react-refresh-webpack-plugin@0.5.11(react-refresh@0.11.0)(type-fest@0.21.3)(webpack-dev-server@4.15.1(webpack@5.88.2))(webpack@5.88.2)': dependencies: ansi-html-community: 0.0.8 common-path-prefix: 3.0.0 @@ -7414,18 +7435,22 @@ snapshots: schema-utils: 3.3.0 source-map: 0.7.4 webpack: 5.88.2 + optionalDependencies: + type-fest: 0.21.3 webpack-dev-server: 4.15.1(webpack@5.88.2) '@popperjs/core@2.11.8': {} '@remix-run/router@1.9.0': {} - '@rollup/plugin-babel@5.3.1(@babel/core@7.22.20)(rollup@2.79.1)': + '@rollup/plugin-babel@5.3.1(@babel/core@7.22.20)(@types/babel__core@7.20.2)(rollup@2.79.1)': dependencies: '@babel/core': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@rollup/pluginutils': 3.1.0(rollup@2.79.1) rollup: 2.79.1 + optionalDependencies: + '@types/babel__core': 7.20.2 '@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1)': dependencies: @@ -7725,7 +7750,7 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.0 - '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': dependencies: '@eslint-community/regexpp': 4.8.1 '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.4.5) @@ -7739,6 +7764,7 @@ snapshots: natural-compare-lite: 1.4.0 semver: 7.5.4 tsutils: 3.21.0(typescript@5.4.5) + optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color @@ -7758,6 +7784,7 @@ snapshots: '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) debug: 4.3.4 eslint: 8.57.0 + optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color @@ -7774,6 +7801,7 @@ snapshots: debug: 4.3.4 eslint: 8.57.0 tsutils: 3.21.0(typescript@5.4.5) + optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color @@ -7789,6 +7817,7 @@ snapshots: is-glob: 4.0.3 semver: 7.5.4 tsutils: 3.21.0(typescript@5.4.5) + optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color @@ -7937,7 +7966,7 @@ snapshots: - supports-color ajv-formats@2.1.1(ajv@8.12.0): - dependencies: + optionalDependencies: ajv: 8.12.0 ajv-keywords@3.5.2(ajv@6.12.6): @@ -8941,23 +8970,24 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-react-app@7.0.1(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@8.57.0)(jest@27.5.1)(typescript@5.4.5): + eslint-config-react-app@7.0.1(@babel/plugin-syntax-flow@7.24.1(@babel/core@7.22.20))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.22.20))(eslint@8.57.0)(jest@27.5.1)(typescript@5.4.5): dependencies: '@babel/core': 7.22.20 '@babel/eslint-parser': 7.22.15(@babel/core@7.22.20)(eslint@8.57.0) '@rushstack/eslint-patch': 1.4.0 - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.4.5) babel-preset-react-app: 10.0.1 confusing-browser-globals: 1.0.11 eslint: 8.57.0 - eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@8.57.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.57.0) - eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.57.0)(jest@27.5.1)(typescript@5.4.5) + eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.24.1(@babel/core@7.22.20))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.22.20))(eslint@8.57.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0) + eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(jest@27.5.1)(typescript@5.4.5) eslint-plugin-jsx-a11y: 6.7.1(eslint@8.57.0) eslint-plugin-react: 7.33.2(eslint@8.57.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0) eslint-plugin-testing-library: 5.11.1(eslint@8.57.0)(typescript@5.4.5) + optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - '@babel/plugin-syntax-flow' @@ -8975,16 +9005,17 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.4.5) debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.4.5) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@8.57.0): + eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.24.1(@babel/core@7.22.20))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.22.20))(eslint@8.57.0): dependencies: '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.22.20) '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.22.20) @@ -8992,9 +9023,8 @@ snapshots: lodash: 4.17.21 string-natural-compare: 3.0.1 - eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.57.0): + eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0): dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.4.5) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -9003,7 +9033,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) has: 1.0.3 is-core-module: 2.13.0 is-glob: 4.0.3 @@ -9013,16 +9043,19 @@ snapshots: object.values: 1.1.7 semver: 6.3.1 tsconfig-paths: 3.14.2 + optionalDependencies: + '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.4.5) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.57.0)(jest@27.5.1)(typescript@5.4.5): + eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(jest@27.5.1)(typescript@5.4.5): dependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) eslint: 8.57.0 + optionalDependencies: + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) jest: 27.5.1 transitivePeerDependencies: - supports-color @@ -9358,7 +9391,6 @@ snapshots: chokidar: 3.5.3 cosmiconfig: 6.0.0 deepmerge: 4.3.1 - eslint: 8.57.0 fs-extra: 9.1.0 glob: 7.2.3 memfs: 3.5.3 @@ -9368,6 +9400,8 @@ snapshots: tapable: 1.1.3 typescript: 5.4.5 webpack: 5.88.2 + optionalDependencies: + eslint: 8.57.0 form-data@3.0.1: dependencies: @@ -9620,12 +9654,13 @@ snapshots: http-proxy-middleware@2.0.6(@types/express@4.17.17): dependencies: - '@types/express': 4.17.17 '@types/http-proxy': 1.17.12 http-proxy: 1.18.1 is-glob: 4.0.3 is-plain-obj: 3.0.0 micromatch: 4.0.5 + optionalDependencies: + '@types/express': 4.17.17 transitivePeerDependencies: - debug @@ -10099,7 +10134,7 @@ snapshots: '@types/node': 20.6.3 jest-pnp-resolver@1.2.3(jest-resolve@27.5.1): - dependencies: + optionalDependencies: jest-resolve: 27.5.1 jest-regex-util@27.5.1: {} @@ -11157,8 +11192,9 @@ snapshots: postcss-load-config@4.0.1(postcss@8.4.30): dependencies: lilconfig: 2.1.0 - postcss: 8.4.30 yaml: 2.3.2 + optionalDependencies: + postcss: 8.4.30 postcss-loader@6.2.1(postcss@8.4.30)(webpack@5.88.2): dependencies: @@ -11435,6 +11471,8 @@ snapshots: prelude-ls@1.2.1: {} + prettier@3.6.2: {} + pretty-bytes@5.6.0: {} pretty-error@4.0.0: @@ -11525,9 +11563,9 @@ snapshots: regenerator-runtime: 0.13.11 whatwg-fetch: 3.6.19 - react-app-rewired@2.2.1(react-scripts@5.0.1): + react-app-rewired@2.2.1(react-scripts@5.0.1(@babel/plugin-syntax-flow@7.24.1(@babel/core@7.22.20))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.22.20))(@types/babel__core@7.20.2)(eslint@8.57.0)(react@18.2.0)(type-fest@0.21.3)(typescript@5.4.5)): dependencies: - react-scripts: 5.0.1(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@8.57.0)(react@18.2.0)(typescript@5.4.5) + react-scripts: 5.0.1(@babel/plugin-syntax-flow@7.24.1(@babel/core@7.22.20))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.22.20))(@types/babel__core@7.20.2)(eslint@8.57.0)(react@18.2.0)(type-fest@0.21.3)(typescript@5.4.5) semver: 5.7.2 react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.4.5)(webpack@5.88.2): @@ -11556,8 +11594,9 @@ snapshots: shell-quote: 1.8.1 strip-ansi: 6.0.1 text-table: 0.2.0 - typescript: 5.4.5 webpack: 5.88.2 + optionalDependencies: + typescript: 5.4.5 transitivePeerDependencies: - eslint - supports-color @@ -11601,7 +11640,7 @@ snapshots: react-refresh@0.11.0: {} - react-router-dom@6.16.0(react-dom@18.2.0)(react@18.2.0): + react-router-dom@6.16.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@remix-run/router': 1.9.0 react: 18.2.0 @@ -11613,10 +11652,10 @@ snapshots: '@remix-run/router': 1.9.0 react: 18.2.0 - react-scripts@5.0.1(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@8.57.0)(react@18.2.0)(typescript@5.4.5): + react-scripts@5.0.1(@babel/plugin-syntax-flow@7.24.1(@babel/core@7.22.20))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.22.20))(@types/babel__core@7.20.2)(eslint@8.57.0)(react@18.2.0)(type-fest@0.21.3)(typescript@5.4.5): dependencies: '@babel/core': 7.22.20 - '@pmmmwh/react-refresh-webpack-plugin': 0.5.11(react-refresh@0.11.0)(webpack-dev-server@4.15.1)(webpack@5.88.2) + '@pmmmwh/react-refresh-webpack-plugin': 0.5.11(react-refresh@0.11.0)(type-fest@0.21.3)(webpack-dev-server@4.15.1(webpack@5.88.2))(webpack@5.88.2) '@svgr/webpack': 5.5.0 babel-jest: 27.5.1(@babel/core@7.22.20) babel-loader: 8.3.0(@babel/core@7.22.20)(webpack@5.88.2) @@ -11631,7 +11670,7 @@ snapshots: dotenv: 10.0.0 dotenv-expand: 5.1.0 eslint: 8.57.0 - eslint-config-react-app: 7.0.1(@babel/plugin-syntax-flow@7.24.1)(@babel/plugin-transform-react-jsx@7.23.4)(eslint@8.57.0)(jest@27.5.1)(typescript@5.4.5) + eslint-config-react-app: 7.0.1(@babel/plugin-syntax-flow@7.24.1(@babel/core@7.22.20))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.22.20))(eslint@8.57.0)(jest@27.5.1)(typescript@5.4.5) eslint-webpack-plugin: 3.2.0(eslint@8.57.0)(webpack@5.88.2) file-loader: 6.2.0(webpack@5.88.2) fs-extra: 10.1.0 @@ -11659,13 +11698,13 @@ snapshots: style-loader: 3.3.3(webpack@5.88.2) tailwindcss: 3.3.3 terser-webpack-plugin: 5.3.9(webpack@5.88.2) - typescript: 5.4.5 webpack: 5.88.2 webpack-dev-server: 4.15.1(webpack@5.88.2) webpack-manifest-plugin: 4.1.1(webpack@5.88.2) - workbox-webpack-plugin: 6.6.0(webpack@5.88.2) + workbox-webpack-plugin: 6.6.0(@types/babel__core@7.20.2)(webpack@5.88.2) optionalDependencies: fsevents: 2.3.3 + typescript: 5.4.5 transitivePeerDependencies: - '@babel/plugin-syntax-flow' - '@babel/plugin-transform-react-jsx' @@ -11699,7 +11738,7 @@ snapshots: - webpack-hot-middleware - webpack-plugin-serve - react-transition-group@4.4.5(react-dom@18.2.0)(react@18.2.0): + react-transition-group@4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.24.4 dom-helpers: 5.2.1 @@ -12673,9 +12712,10 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack: 5.88.2 webpack-dev-middleware: 5.3.3(webpack@5.88.2) ws: 8.14.2 + optionalDependencies: + webpack: 5.88.2 transitivePeerDependencies: - bufferutil - debug @@ -12816,13 +12856,13 @@ snapshots: dependencies: workbox-core: 6.6.0 - workbox-build@6.6.0: + workbox-build@6.6.0(@types/babel__core@7.20.2): dependencies: '@apideck/better-ajv-errors': 0.3.6(ajv@8.12.0) '@babel/core': 7.22.20 '@babel/preset-env': 7.22.20(@babel/core@7.22.20) '@babel/runtime': 7.24.4 - '@rollup/plugin-babel': 5.3.1(@babel/core@7.22.20)(rollup@2.79.1) + '@rollup/plugin-babel': 5.3.1(@babel/core@7.22.20)(@types/babel__core@7.20.2)(rollup@2.79.1) '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1) '@rollup/plugin-replace': 2.4.2(rollup@2.79.1) '@surma/rollup-plugin-off-main-thread': 2.2.3 @@ -12915,14 +12955,14 @@ snapshots: workbox-sw@6.6.0: {} - workbox-webpack-plugin@6.6.0(webpack@5.88.2): + workbox-webpack-plugin@6.6.0(@types/babel__core@7.20.2)(webpack@5.88.2): dependencies: fast-json-stable-stringify: 2.1.0 pretty-bytes: 5.6.0 upath: 1.2.0 webpack: 5.88.2 webpack-sources: 1.4.3 - workbox-build: 6.6.0 + workbox-build: 6.6.0(@types/babel__core@7.20.2) transitivePeerDependencies: - '@types/babel__core' - supports-color diff --git a/public/content.html b/public/content.html index b9cedf7..4aae85d 100644 --- a/public/content.html +++ b/public/content.html @@ -1,4 +1,4 @@ - + @@ -16,7 +16,7 @@ } @@ -105,28 +105,26 @@

You need to enable JavaScript to run this app.

- The embargo has just lifted to confirm that AmpereOne is - coming to Google Cloud with the C3A instances. + The embargo has just lifted to confirm that AmpereOne is coming to + Google Cloud with the C3A instances.
But these upcoming instances for now are only in private preview form.

Needless to say I also haven't had any AmpereOne access to check out the - performance and power efficiency of these new Arm server processors from - Ampere Computing. + performance and power efficiency of these new Arm server processors from Ampere + Computing.

- React is a JavaScript library for building user interfaces. + React is a JavaScript library for building user interfaces.


- +
- +

Shadow 1

@@ -166,15 +164,47 @@

- React Server Components (or RSC) is a new application architecture - designed by the React team. + React Server Components (or RSC) is a new application architecture designed by the + React team.

+ src="http://localhost:3000/index.html"> +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

We’ve first shared our research on RSC in an introductory talk and an RFC.




@@ -208,52 +238,10 @@

- We’ve first shared our research on RSC in an introductory talk and an - RFC. + To recap them, we are introducing a new kind of component—Server Components—that + run ahead of time and are excluded from your JavaScript bundle.

-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

- To recap them, we are introducing a new kind of component—Server - Components—that run ahead of time and are excluded from your JavaScript - bundle. -

- +


@@ -288,15 +276,14 @@

- Server Components can run during the build, letting you read from the - filesystem or fetch static content. + Server Components can run during the build, letting you read from the filesystem + or fetch static content.

@@ -315,14 +302,14 @@

- Since our last update, we have merged the React Server Components RFC - to ratify the proposal. + Since our last update, we have merged the React Server Components RFC to ratify + the proposal.