summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYamagishi Kazutoshi <ykzts@desire.sh>2022-05-09 17:57:57 +0000
committerYamagishi Kazutoshi <ykzts@desire.sh>2022-09-11 16:05:01 +0000
commit64ee565b339eefbeb601200611f9fd08174135ef (patch)
tree6b33c9efa711ed0b820392f7eadd6bb9375ca6d7
parent0aacf00f5b77264537aa87fb8f78d7346feb1ec4 (diff)
Replace to shakapacker from webpackerdeps/shakapacker
-rw-r--r--.browserslistrc4
-rw-r--r--.circleci/config.yml4
-rw-r--r--.eslintrc.js4
-rw-r--r--.gitignore3
-rw-r--r--.yarnclean1
-rw-r--r--Gemfile2
-rw-r--r--Gemfile.lock14
-rw-r--r--Procfile.dev2
-rw-r--r--app/helpers/mascot_helper.rb2
-rw-r--r--app/javascript/about.js (renamed from app/javascript/packs/about.js)10
-rw-r--r--app/javascript/admin.js (renamed from app/javascript/packs/admin.js)8
-rw-r--r--app/javascript/application.js11
-rw-r--r--app/javascript/error.js (renamed from app/javascript/packs/error.js)4
-rw-r--r--app/javascript/mailer.js3
-rw-r--r--app/javascript/mastodon/common.js2
-rw-r--r--app/javascript/mastodon/main.js1
-rw-r--r--app/javascript/mastodon/public-path.js (renamed from app/javascript/packs/public-path.js)0
-rw-r--r--app/javascript/mastodon/service_worker/web_push_notifications.js2
-rw-r--r--app/javascript/packs/application.js11
-rw-r--r--app/javascript/packs/mailer.js3
-rw-r--r--app/javascript/public.js (renamed from app/javascript/packs/public.js)20
-rw-r--r--app/javascript/share.js (renamed from app/javascript/packs/share.js)10
-rw-r--r--app/javascript/styles/mastodon/about.scss2
-rw-r--r--app/javascript/styles/mastodon/components.scss4
-rw-r--r--app/javascript/two_factor_authentication.js (renamed from app/javascript/packs/two_factor_authentication.js)6
-rw-r--r--app/serializers/manifest_serializer.rb2
-rw-r--r--app/serializers/rest/instance_serializer.rb2
-rw-r--r--app/views/about/more.html.haml4
-rw-r--r--app/views/about/show.html.haml2
-rw-r--r--app/views/application/_sidebar.html.haml2
-rwxr-xr-xapp/views/layouts/application.html.haml6
-rw-r--r--app/views/layouts/mailer.html.haml4
-rw-r--r--app/views/notification_mailer/favourite.html.haml2
-rw-r--r--app/views/notification_mailer/follow.html.haml2
-rw-r--r--app/views/notification_mailer/follow_request.html.haml2
-rw-r--r--app/views/notification_mailer/mention.html.haml2
-rw-r--r--app/views/notification_mailer/reblog.html.haml2
-rw-r--r--app/views/shared/_og.html.haml2
-rw-r--r--app/views/user_mailer/appeal_approved.html.haml2
-rw-r--r--app/views/user_mailer/appeal_rejected.html.haml2
-rw-r--r--app/views/user_mailer/backup_ready.html.haml2
-rw-r--r--app/views/user_mailer/confirmation_instructions.html.haml2
-rw-r--r--app/views/user_mailer/email_changed.html.haml2
-rw-r--r--app/views/user_mailer/password_change.html.haml2
-rw-r--r--app/views/user_mailer/reconfirmation_instructions.html.haml2
-rw-r--r--app/views/user_mailer/reset_password_instructions.html.haml2
-rw-r--r--app/views/user_mailer/suspicious_sign_in.html.haml2
-rw-r--r--app/views/user_mailer/two_factor_disabled.html.haml2
-rw-r--r--app/views/user_mailer/two_factor_enabled.html.haml2
-rw-r--r--app/views/user_mailer/two_factor_recovery_codes_changed.html.haml2
-rw-r--r--app/views/user_mailer/warning.html.haml2
-rw-r--r--app/views/user_mailer/webauthn_credential_added.html.haml2
-rw-r--r--app/views/user_mailer/webauthn_credential_deleted.html.haml2
-rw-r--r--app/views/user_mailer/webauthn_disabled.html.haml2
-rw-r--r--app/views/user_mailer/webauthn_enabled.html.haml2
-rw-r--r--app/views/user_mailer/welcome.html.haml2
-rwxr-xr-xbin/webpacker (renamed from bin/webpack)12
-rwxr-xr-xbin/webpacker-dev-server (renamed from bin/webpack-dev-server)5
-rwxr-xr-xbin/yarn17
-rw-r--r--config/webpack/configuration.js27
-rw-r--r--config/webpack/development.js61
-rw-r--r--config/webpack/env.js6
-rw-r--r--config/webpack/environments/base.js91
-rw-r--r--config/webpack/environments/development.js39
-rw-r--r--config/webpack/environments/production.js (renamed from config/webpack/production.js)37
-rw-r--r--config/webpack/environments/test.js9
-rw-r--r--config/webpack/rules/babel.js21
-rw-r--r--config/webpack/rules/css.js28
-rw-r--r--config/webpack/rules/file.js20
-rw-r--r--config/webpack/rules/index.js16
-rw-r--r--config/webpack/rules/mark.js12
-rw-r--r--config/webpack/rules/node_modules.js6
-rw-r--r--config/webpack/rules/tesseract.js10
-rw-r--r--config/webpack/shared.js108
-rw-r--r--config/webpack/tests.js8
-rw-r--r--config/webpack/webpack.config.js14
-rw-r--r--config/webpacker.yml86
-rw-r--r--package.json34
-rw-r--r--postcss.config.js3
-rw-r--r--yarn.lock4840
80 files changed, 1747 insertions, 3966 deletions
diff --git a/.browserslistrc b/.browserslistrc
index 54dd3aaf348..d5734664cce 100644
--- a/.browserslistrc
+++ b/.browserslistrc
@@ -4,4 +4,6 @@ not IE 11
not dead
[development]
-supports es6-module
+last 1 chrome version
+last 1 firefox version
+last 1 safari version
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 2a60ae68413..ad36c3fdf37 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -65,7 +65,7 @@ jobs:
- install-ruby-dependencies:
ruby-version: '3.0'
- node/install-packages:
- cache-version: v1
+ cache-version: v2
pkg-manager: yarn
- run:
command: ./bin/rails assets:precompile
@@ -214,7 +214,7 @@ workflows:
requires:
- build
- node/run:
- cache-version: v1
+ cache-version: v2
name: test-webui
pkg-manager: yarn
requires:
diff --git a/.eslintrc.js b/.eslintrc.js
index e4ada6fe0d1..7079572d645 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -8,10 +8,6 @@ module.exports = {
jest: true,
},
- globals: {
- ATTACHMENT_HOST: false,
- },
-
parser: '@babel/eslint-parser',
plugins: [
diff --git a/.gitignore b/.gitignore
index 25c8388e16a..e75e506209e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -59,7 +59,8 @@ npm-debug.log
# Ignore yarn log files
yarn-error.log
-yarn-debug.log
+yarn-debug.log*
+.yarn-integrity
# Ignore vagrant log files
*-cloudimg-console.log
diff --git a/.yarnclean b/.yarnclean
index 0cc2b50d7be..de4acd2104b 100644
--- a/.yarnclean
+++ b/.yarnclean
@@ -44,3 +44,4 @@ Gruntfile.js
# for specific ignore
!.svgo.yml
!sass-lint/**/*.yml
+!shakapacker/**/*.yml
diff --git a/Gemfile b/Gemfile
index d90c17f14fa..25a776d11e4 100644
--- a/Gemfile
+++ b/Gemfile
@@ -84,13 +84,13 @@ gem 'sidekiq-unique-jobs', '~> 7.1'
gem 'sidekiq-bulk', '~> 0.2.0'
gem 'simple-navigation', '~> 4.4'
gem 'simple_form', '~> 5.1'
+gem 'shakapacker', '~> 6.5'
gem 'sprockets-rails', '~> 3.4', require: 'sprockets/railtie'
gem 'stoplight', '~> 3.0.0'
gem 'strong_migrations', '~> 0.7'
gem 'tty-prompt', '~> 0.23', require: false
gem 'twitter-text', '~> 3.1.0'
gem 'tzinfo-data', '~> 1.2022'
-gem 'webpacker', '~> 5.4'
gem 'webpush', git: 'https://github.com/ClearlyClaire/webpush.git', ref: 'f14a4d52e201128b1b00245d11b6de80d6cfdcd9'
gem 'webauthn', '~> 2.5'
diff --git a/Gemfile.lock b/Gemfile.lock
index 8b8a15623d2..08152e230fa 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -496,7 +496,7 @@ GEM
httpclient
json-jwt (>= 1.11.0)
rack (>= 2.1.0)
- rack-proxy (0.7.0)
+ rack-proxy (0.7.2)
rack
rack-test (2.0.2)
rack (>= 1.3)
@@ -610,6 +610,11 @@ GEM
activerecord (>= 4.0.0)
railties (>= 4.0.0)
semantic_range (3.0.0)
+ shakapacker (6.5.2)
+ activesupport (>= 5.2)
+ rack-proxy (>= 0.6.1)
+ railties (>= 5.2)
+ semantic_range (>= 2.3.0)
sidekiq (6.5.6)
connection_pool (>= 2.2.5)
rack (~> 2.0)
@@ -714,11 +719,6 @@ GEM
addressable (>= 2.8.0)
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)
- webpacker (5.4.3)
- activesupport (>= 5.2)
- rack-proxy (>= 0.6.1)
- railties (>= 5.2)
- semantic_range (>= 2.3.0)
websocket-driver (0.7.5)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5)
@@ -833,6 +833,7 @@ DEPENDENCIES
ruby-progressbar (~> 1.11)
sanitize (~> 6.0)
scenic (~> 1.6)
+ shakapacker (~> 6.5)
sidekiq (~> 6.5)
sidekiq-bulk (~> 0.2.0)
sidekiq-scheduler (~> 4.0)
@@ -851,6 +852,5 @@ DEPENDENCIES
tzinfo-data (~> 1.2022)
webauthn (~> 2.5)
webmock (~> 3.18)
- webpacker (~> 5.4)
webpush!
xorcist (~> 1.1)
diff --git a/Procfile.dev b/Procfile.dev
index ba04fb661b3..417aaa5bc87 100644
--- a/Procfile.dev
+++ b/Procfile.dev
@@ -1,4 +1,4 @@
web: env PORT=3000 RAILS_ENV=development bundle exec puma -C config/puma.rb
sidekiq: env PORT=3000 RAILS_ENV=development bundle exec sidekiq
stream: env PORT=4000 yarn run start
-webpack: ./bin/webpack-dev-server --listen-host 0.0.0.0
+webpack: env WEBPACKER_DEV_SERVER_HOST=0.0.0.0 ./bin/webpacker-dev-server
diff --git a/app/helpers/mascot_helper.rb b/app/helpers/mascot_helper.rb
index 0124c74f19b..9b35cbacc58 100644
--- a/app/helpers/mascot_helper.rb
+++ b/app/helpers/mascot_helper.rb
@@ -2,7 +2,7 @@
module MascotHelper
def mascot_url
- full_asset_url(instance_presenter.mascot&.file&.url || asset_pack_path('media/images/elephant_ui_plane.svg'))
+ full_asset_url(instance_presenter.mascot&.file&.url || asset_pack_path('static/elephant_ui_plane.svg'))
end
private
diff --git a/app/javascript/packs/about.js b/app/javascript/about.js
index 892d825ece2..c0bc139ea21 100644
--- a/app/javascript/packs/about.js
+++ b/app/javascript/about.js
@@ -1,11 +1,11 @@
-import './public-path';
-import loadPolyfills from '../mastodon/load_polyfills';
-import { start } from '../mastodon/common';
+import 'mastodon/public-path';
+import loadPolyfills from 'mastodon/load_polyfills';
+import { start } from 'mastodon/common';
start();
function loaded() {
- const TimelineContainer = require('../mastodon/containers/timeline_container').default;
+ const TimelineContainer = require('mastodon/containers/timeline_container').default;
const React = require('react');
const ReactDOM = require('react-dom');
const mountNode = document.getElementById('mastodon-timeline');
@@ -17,7 +17,7 @@ function loaded() {
}
function main() {
- const ready = require('../mastodon/ready').default;
+ const ready = require('mastodon/ready').default;
ready(loaded);
}
diff --git a/app/javascript/packs/admin.js b/app/javascript/admin.js
index b733d6b1865..d6002cae678 100644
--- a/app/javascript/packs/admin.js
+++ b/app/javascript/admin.js
@@ -1,6 +1,6 @@
-import './public-path';
+import 'mastodon/public-path';
import { delegate } from '@rails/ujs';
-import ready from '../mastodon/ready';
+import ready from 'mastodon/ready';
const batchCheckboxClassName = '.batch-checkbox input[type="checkbox"]';
@@ -170,8 +170,8 @@ ready(() => {
const componentName = element.getAttribute('data-admin-component');
const { locale, ...componentProps } = JSON.parse(element.getAttribute('data-props'));
- import('../mastodon/containers/admin_component').then(({ default: AdminComponent }) => {
- return import('../mastodon/components/admin/' + componentName).then(({ default: Component }) => {
+ import('mastodon/containers/admin_component').then(({ default: AdminComponent }) => {
+ return import('mastodon/components/admin/' + componentName).then(({ default: Component }) => {
ReactDOM.render((
<AdminComponent locale={locale}>
<Component {...componentProps} />
diff --git a/app/javascript/application.js b/app/javascript/application.js
new file mode 100644
index 00000000000..523942d78eb
--- /dev/null
+++ b/app/javascript/application.js
@@ -0,0 +1,11 @@
+import 'mastodon/public-path';
+import loadPolyfills from 'mastodon/load_polyfills';
+import { start } from 'mastodon/common';
+
+start();
+
+loadPolyfills().then(() => {
+ require('mastodon/main').default();
+}).catch(e => {
+ console.error(e);
+});
diff --git a/app/javascript/packs/error.js b/app/javascript/error.js
index 6376dc2f5df..ae98cf6fe86 100644
--- a/app/javascript/packs/error.js
+++ b/app/javascript/error.js
@@ -1,5 +1,5 @@
-import './public-path';
-import ready from '../mastodon/ready';
+import 'mastodon/public-path';
+import ready from 'mastodon/ready';
ready(() => {
const image = document.querySelector('img');
diff --git a/app/javascript/mailer.js b/app/javascript/mailer.js
new file mode 100644
index 00000000000..96993acc186
--- /dev/null
+++ b/app/javascript/mailer.js
@@ -0,0 +1,3 @@
+require('./styles/mailer.scss');
+
+require.context('./icons');
diff --git a/app/javascript/mastodon/common.js b/app/javascript/mastodon/common.js
index 6818aa5d540..d3ffe6c22a7 100644
--- a/app/javascript/mastodon/common.js
+++ b/app/javascript/mastodon/common.js
@@ -1,4 +1,4 @@
-import Rails from '@rails/ujs';
+import * as Rails from '@rails/ujs';
export function start() {
require('font-awesome/css/font-awesome.css');
diff --git a/app/javascript/mastodon/main.js b/app/javascript/mastodon/main.js
index a66975bfd6a..640a3576c98 100644
--- a/app/javascript/mastodon/main.js
+++ b/app/javascript/mastodon/main.js
@@ -39,6 +39,7 @@ function main() {
console.error(err);
});
}
+
perf.stop('main()');
});
}
diff --git a/app/javascript/packs/public-path.js b/app/javascript/mastodon/public-path.js
index f96109f4fcd..f96109f4fcd 100644
--- a/app/javascript/packs/public-path.js
+++ b/app/javascript/mastodon/public-path.js
diff --git a/app/javascript/mastodon/service_worker/web_push_notifications.js b/app/javascript/mastodon/service_worker/web_push_notifications.js
index 9b75e9b9dc7..7f1d93dd9b1 100644
--- a/app/javascript/mastodon/service_worker/web_push_notifications.js
+++ b/app/javascript/mastodon/service_worker/web_push_notifications.js
@@ -1,6 +1,6 @@
import IntlMessageFormat from 'intl-messageformat';
-import locales from './web_push_locales';
import { unescape } from 'lodash';
+import locales from './web_push_locales';
const MAX_NOTIFICATIONS = 5;
const GROUP_TAG = 'tag';
diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js
deleted file mode 100644
index 91240aecfb8..00000000000
--- a/app/javascript/packs/application.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import './public-path';
-import loadPolyfills from '../mastodon/load_polyfills';
-import { start } from '../mastodon/common';
-
-start();
-
-loadPolyfills().then(() => {
- require('../mastodon/main').default();
-}).catch(e => {
- console.error(e);
-});
diff --git a/app/javascript/packs/mailer.js b/app/javascript/packs/mailer.js
deleted file mode 100644
index a4b6d544645..00000000000
--- a/