shakapacker 6.0.1 → 6.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
- data/.github/ISSUE_TEMPLATE/feature-request.md +1 -1
- data/.github/workflows/jest.yml +1 -4
- data/.github/workflows/js-lint.yml +3 -7
- data/.github/workflows/rubocop.yml +3 -20
- data/.github/workflows/ruby.yml +12 -19
- data/.node-version +1 -1
- data/.rubocop.yml +0 -1
- data/CHANGELOG.md +31 -9
- data/Gemfile.lock +1 -1
- data/README.md +29 -7
- data/docs/customizing_babel_config.md +4 -4
- data/docs/using_esbuild_loader.md +128 -0
- data/docs/using_swc_loader.md +153 -0
- data/docs/v6_upgrade.md +32 -12
- data/gemfiles/Gemfile-rails.7.0.x +12 -0
- data/lib/install/config/webpacker.yml +3 -0
- data/lib/webpacker/compiler.rb +2 -2
- data/lib/webpacker/version.rb +1 -1
- data/package/esbuild/index.js +40 -0
- data/package/rules/babel.js +23 -21
- data/package/rules/esbuild.js +23 -0
- data/package/rules/file.js +12 -1
- data/package/rules/index.js +2 -0
- data/package/rules/swc.js +23 -0
- data/package/swc/index.js +50 -0
- data/package/utils/helpers.js +19 -2
- data/package.json +3 -1
- data/test/mounted_app/test/dummy/config/webpacker.yml +1 -0
- data/test/test_app/config/webpacker.yml +1 -0
- data/webpacker.gemspec +1 -1
- data/yarn.lock +161 -1
- metadata +11 -4
data/docs/v6_upgrade.md
CHANGED
@@ -1,25 +1,45 @@
|
|
1
|
-
# Upgrading from Webpacker
|
1
|
+
# Upgrading from Webpacker v5 to Shakapacker v6
|
2
2
|
|
3
|
-
There are several substantial changes in
|
3
|
+
There are several substantial changes in Shakapacker v6 that you need to manually account for when coming from Webpacker 5. This guide will help you through it.
|
4
4
|
|
5
|
-
## Webpacker has become a slimmer wrapper around Webpack
|
5
|
+
## Webpacker/Shakapacker has become a slimmer wrapper around Webpack
|
6
6
|
|
7
7
|
By default, Webpacker 6 is focused on compiling and bundling JavaScript. This pairs with the existing asset pipeline in Rails that's setup to transpile CSS and static images using [Sprockets](https://github.com/rails/sprockets). For most developers, that's the recommended combination. But if you'd like to use Webpacker for CSS and static assets as well, please see [integrations](https://github.com/shakacode/shakapacker#integrations) for more information.
|
8
8
|
|
9
|
-
Webpacker used to configure Webpack indirectly, which lead to a [complicated secondary configuration process](https://github.com/rails/webpacker/blob/5-x-stable/docs/webpack.md). This was done in order to provide default configurations for the most popular frameworks, but ended up creating more complexity than it cured. So now Webpacker delegates all configuration directly to Webpack's default configuration setup.
|
9
|
+
Webpacker used to configure Webpack indirectly, which lead to a [complicated secondary configuration process](https://github.com/rails/webpacker/blob/5-x-stable/docs/webpack.md). This was done in order to provide default configurations for the most popular frameworks, but ended up creating more complexity than it cured. So now Webpacker delegates all configuration directly to Webpack's default configuration setup. Additionally, all major dependencies, like `webpack` and `babel` are now **peer** dependencies, so you are free to upgrade those.
|
10
10
|
|
11
|
-
|
11
|
+
While you have to configure integration with frameworks yourself, [`webpack-merge`](https://github.com/survivejs/webpack-merge) helps with this. See this example for [Vue](https://github.com/shakacode/shakapacker#other-frameworks) and scroll to the bottom for [more examples](#examples-of-v5-to-v6).
|
12
12
|
|
13
|
-
## webpacker v6.0.0.rc.6 to shakapacker
|
13
|
+
## webpacker v6.0.0.rc.6 to shakapacker v6.0.0
|
14
14
|
See an example migration here: [PR 27](https://github.com/shakacode/react_on_rails_tutorial_with_ssr_and_hmr_fast_refresh/pull/27).
|
15
15
|
|
16
|
-
### Update
|
17
|
-
|
16
|
+
### Update Steps to v6.0.0 from v6.0.0.rc.6
|
17
|
+
_If you're on webpacker v5, follow below steps to get to v6.0.0.rc.6 first._
|
18
|
+
|
19
|
+
1. Change the gem name from `webpacker` to `shakapacker` and the NPM package from `@rails/webpacker` to `shakapacker`.
|
20
|
+
1. Install the peer dependencies. Run `yarn add @babel/core @babel/plugin-transform-runtime @babel/preset-env @babel/runtime babel-loader compression-webpack-plugin terser-webpack-plugin webpack webpack-assets-manifest webpack-cli webpack-merge webpack-sources webpack-dev-server`
|
18
21
|
1. Update any scripts that called `bin/webpack` or `bin/webpack-dev-server` to `bin/webpacker` or `bin/webpacker-dev-server`
|
19
|
-
1. Update your webpack config for a single config file, `config/webpack/webpack.config.js`.
|
20
|
-
|
22
|
+
1. Update your webpack config for a single config file, `config/webpack/webpack.config.js`. If you want to use the prior style of having a separate file for each NODE_ENV, you can use this shim for `config/webpack/webpack.config.js`:
|
23
|
+
```js
|
24
|
+
const { env, webpackConfig } = require('shakapacker')
|
25
|
+
const { existsSync } = require('fs')
|
26
|
+
const { resolve } = require('path')
|
27
|
+
|
28
|
+
const envSpecificConfig = () => {
|
29
|
+
const path = resolve(__dirname, `${env.nodeEnv}.js`)
|
30
|
+
if (existsSync(path)) {
|
31
|
+
console.log(`Loading ENV specific webpack configuration file ${path}`)
|
32
|
+
return require(path)
|
33
|
+
} else {
|
34
|
+
return webpackConfig
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
module.exports = envSpecificConfig()
|
39
|
+
```
|
40
|
+
1. Update `babel.config.js` if you need JSX support. See [Customizing Babel Config](./customizing_babel_config.md)
|
21
41
|
|
22
|
-
## How to upgrade to Webpacker v6 from v5
|
42
|
+
## How to upgrade to Webpacker v6.0.0.rc.6 from v5
|
23
43
|
1. Ensure you have a clean working git branch. You will be overwriting all your files and reverting the changes that you don't want.
|
24
44
|
|
25
45
|
1. Consider changing from the v5 default for `source_entry_path` in `webpacker.yml`.
|
@@ -159,7 +179,7 @@ See an example migration here: [PR 27](https://github.com/shakacode/react_on_rai
|
|
159
179
|
|
160
180
|
1. Update any scripts that called `/bin/webpack` or `bin/webpack-dev-server` to `/bin/webpacker` or `bin/webpacker-dev-server`
|
161
181
|
|
162
|
-
1.
|
182
|
+
1. Now, follow the steps above to get to shakapacker v6 from webpacker v6.0.0.rc.6[
|
163
183
|
|
164
184
|
## Examples of v5 to v6
|
165
185
|
|
@@ -0,0 +1,12 @@
|
|
1
|
+
source "https://rubygems.org"
|
2
|
+
|
3
|
+
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
4
|
+
|
5
|
+
gemspec path: "../"
|
6
|
+
|
7
|
+
gem "rails", '~>7.0.0'
|
8
|
+
gem "arel", github: "rails/arel"
|
9
|
+
gem "rake", ">= 11.1"
|
10
|
+
gem "rack-proxy", require: false
|
11
|
+
gem "minitest", "~> 5.0"
|
12
|
+
gem "byebug"
|
@@ -15,6 +15,9 @@ default: &default
|
|
15
15
|
# Reload manifest.json on all requests so we reload latest compiled packs
|
16
16
|
cache_manifest: false
|
17
17
|
|
18
|
+
# Select loader to use, available options are 'babel' (default), 'swc' or 'esbuild'
|
19
|
+
webpack_loader: 'babel'
|
20
|
+
|
18
21
|
development:
|
19
22
|
<<: *default
|
20
23
|
compile: true
|
data/lib/webpacker/compiler.rb
CHANGED
@@ -57,8 +57,8 @@ class Webpacker::Compiler
|
|
57
57
|
Webpacker::Compiler - Slow setup for development
|
58
58
|
|
59
59
|
Prepare JS assets with either:
|
60
|
-
1. Running `bin/
|
61
|
-
2. Set `compile` to false in webpacker.yml and run `bin/
|
60
|
+
1. Running `bin/webpacker-dev-server`
|
61
|
+
2. Set `compile` to false in webpacker.yml and run `bin/webpacker -w`
|
62
62
|
MSG
|
63
63
|
end
|
64
64
|
|
data/lib/webpacker/version.rb
CHANGED
@@ -0,0 +1,40 @@
|
|
1
|
+
/* eslint global-require: 0 */
|
2
|
+
/* eslint import/no-dynamic-require: 0 */
|
3
|
+
|
4
|
+
const { resolve } = require('path')
|
5
|
+
const { existsSync } = require('fs')
|
6
|
+
const { merge } = require('webpack-merge')
|
7
|
+
|
8
|
+
const getLoaderExtension = (filename) => {
|
9
|
+
const matchData = filename.match(/\.([jt]sx?)?(\.erb)?$/)
|
10
|
+
|
11
|
+
if (!matchData) {
|
12
|
+
return 'js'
|
13
|
+
}
|
14
|
+
|
15
|
+
return matchData[1]
|
16
|
+
}
|
17
|
+
|
18
|
+
const getCustomConfig = () => {
|
19
|
+
const path = resolve('config', 'esbuild.config.js')
|
20
|
+
if (existsSync(path)) {
|
21
|
+
return require(path)
|
22
|
+
}
|
23
|
+
return {}
|
24
|
+
}
|
25
|
+
|
26
|
+
const getEsbuildLoaderConfig = (filenameToProcess) => {
|
27
|
+
const customConfig = getCustomConfig()
|
28
|
+
const defaultConfig = {
|
29
|
+
loader: require.resolve('esbuild-loader'),
|
30
|
+
options: {
|
31
|
+
loader: getLoaderExtension(filenameToProcess)
|
32
|
+
}
|
33
|
+
}
|
34
|
+
|
35
|
+
return merge(defaultConfig, customConfig)
|
36
|
+
}
|
37
|
+
|
38
|
+
module.exports = {
|
39
|
+
getEsbuildLoaderConfig
|
40
|
+
}
|
data/package/rules/babel.js
CHANGED
@@ -1,30 +1,32 @@
|
|
1
1
|
const { resolve } = require('path')
|
2
2
|
const { realpathSync } = require('fs')
|
3
|
+
const { loaderMatches } = require('../utils/helpers')
|
3
4
|
|
4
5
|
const {
|
5
6
|
source_path: sourcePath,
|
6
|
-
additional_paths: additionalPaths
|
7
|
+
additional_paths: additionalPaths,
|
8
|
+
webpack_loader: webpackLoader
|
7
9
|
} = require('../config')
|
8
10
|
const { isProduction } = require('../env')
|
9
11
|
|
10
|
-
module.exports = {
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
}
|
18
|
-
}),
|
19
|
-
exclude: /node_modules/,
|
20
|
-
use: [
|
21
|
-
{
|
22
|
-
loader: require.resolve('babel-loader'),
|
23
|
-
options: {
|
24
|
-
cacheDirectory: true,
|
25
|
-
cacheCompression: isProduction,
|
26
|
-
compact: isProduction
|
12
|
+
module.exports = loaderMatches(webpackLoader, 'babel', () => ({
|
13
|
+
test: /\.(js|jsx|mjs|ts|tsx|coffee)?(\.erb)?$/,
|
14
|
+
include: [sourcePath, ...additionalPaths].map((p) => {
|
15
|
+
try {
|
16
|
+
return realpathSync(p)
|
17
|
+
} catch (e) {
|
18
|
+
return resolve(p)
|
27
19
|
}
|
28
|
-
}
|
29
|
-
|
30
|
-
|
20
|
+
}),
|
21
|
+
exclude: /node_modules/,
|
22
|
+
use: [
|
23
|
+
{
|
24
|
+
loader: require.resolve('babel-loader'),
|
25
|
+
options: {
|
26
|
+
cacheDirectory: true,
|
27
|
+
cacheCompression: isProduction,
|
28
|
+
compact: isProduction
|
29
|
+
}
|
30
|
+
}
|
31
|
+
]
|
32
|
+
}))
|
@@ -0,0 +1,23 @@
|
|
1
|
+
const { resolve } = require('path')
|
2
|
+
const { realpathSync } = require('fs')
|
3
|
+
const { loaderMatches } = require('../utils/helpers')
|
4
|
+
const { getEsbuildLoaderConfig } = require('../esbuild')
|
5
|
+
|
6
|
+
const {
|
7
|
+
source_path: sourcePath,
|
8
|
+
additional_paths: additionalPaths,
|
9
|
+
webpack_loader: webpackLoader
|
10
|
+
} = require('../config')
|
11
|
+
|
12
|
+
module.exports = loaderMatches(webpackLoader, 'esbuild', () => ({
|
13
|
+
test: /\.(ts|tsx|js|jsx|mjs|coffee)?(\.erb)?$/,
|
14
|
+
include: [sourcePath, ...additionalPaths].map((p) => {
|
15
|
+
try {
|
16
|
+
return realpathSync(p)
|
17
|
+
} catch (e) {
|
18
|
+
return resolve(p)
|
19
|
+
}
|
20
|
+
}),
|
21
|
+
exclude: /node_modules/,
|
22
|
+
use: ({ resource }) => getEsbuildLoaderConfig(resource)
|
23
|
+
}))
|
data/package/rules/file.js
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
const { dirname, join } = require('path')
|
2
|
+
const { source_path: sourcePath } = require('../config')
|
3
|
+
|
1
4
|
module.exports = {
|
2
5
|
test: [
|
3
6
|
/\.bmp$/,
|
@@ -18,6 +21,14 @@ module.exports = {
|
|
18
21
|
exclude: [/\.(js|mjs|jsx|ts|tsx)$/],
|
19
22
|
type: 'asset/resource',
|
20
23
|
generator: {
|
21
|
-
filename:
|
24
|
+
filename: (pathData) => {
|
25
|
+
const folders = dirname(pathData.filename)
|
26
|
+
.replace(`${sourcePath}/`, '')
|
27
|
+
.split('/')
|
28
|
+
.slice(1)
|
29
|
+
|
30
|
+
const foldersWithStatic = join('static', ...folders)
|
31
|
+
return `${foldersWithStatic}/[name]-[hash][ext][query]`
|
32
|
+
}
|
22
33
|
}
|
23
34
|
}
|
data/package/rules/index.js
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
const { resolve } = require('path')
|
2
|
+
const { realpathSync } = require('fs')
|
3
|
+
const { loaderMatches } = require('../utils/helpers')
|
4
|
+
const { getSwcLoaderConfig } = require('../swc')
|
5
|
+
|
6
|
+
const {
|
7
|
+
source_path: sourcePath,
|
8
|
+
additional_paths: additionalPaths,
|
9
|
+
webpack_loader: webpackLoader
|
10
|
+
} = require('../config')
|
11
|
+
|
12
|
+
module.exports = loaderMatches(webpackLoader, 'swc', () => ({
|
13
|
+
test: /\.(ts|tsx|js|jsx|mjs|coffee)?(\.erb)?$/,
|
14
|
+
include: [sourcePath, ...additionalPaths].map((p) => {
|
15
|
+
try {
|
16
|
+
return realpathSync(p)
|
17
|
+
} catch (e) {
|
18
|
+
return resolve(p)
|
19
|
+
}
|
20
|
+
}),
|
21
|
+
exclude: /node_modules/,
|
22
|
+
use: ({ resource }) => getSwcLoaderConfig(resource)
|
23
|
+
}))
|
@@ -0,0 +1,50 @@
|
|
1
|
+
/* eslint global-require: 0 */
|
2
|
+
/* eslint import/no-dynamic-require: 0 */
|
3
|
+
|
4
|
+
const { resolve } = require('path')
|
5
|
+
const { existsSync } = require('fs')
|
6
|
+
const { merge } = require('webpack-merge')
|
7
|
+
|
8
|
+
const isJsxFile = (filename) => !!filename.match(/\.(jsx|tsx)?(\.erb)?$/)
|
9
|
+
|
10
|
+
const isTypescriptFile = (filename) => !!filename.match(/\.(ts|tsx)?(\.erb)?$/)
|
11
|
+
|
12
|
+
const getCustomConfig = () => {
|
13
|
+
const path = resolve('config', 'swc.config.js')
|
14
|
+
if (existsSync(path)) {
|
15
|
+
return require(path)
|
16
|
+
}
|
17
|
+
return {}
|
18
|
+
}
|
19
|
+
|
20
|
+
const getSwcLoaderConfig = (filenameToProcess) => {
|
21
|
+
const customConfig = getCustomConfig()
|
22
|
+
const defaultConfig = {
|
23
|
+
loader: require.resolve('swc-loader'),
|
24
|
+
options: {
|
25
|
+
jsc: {
|
26
|
+
parser: {
|
27
|
+
dynamicImport: true,
|
28
|
+
syntax: isTypescriptFile(filenameToProcess)
|
29
|
+
? 'typescript'
|
30
|
+
: 'ecmascript',
|
31
|
+
[isTypescriptFile(filenameToProcess) ? 'tsx' : 'jsx']:
|
32
|
+
isJsxFile(filenameToProcess)
|
33
|
+
}
|
34
|
+
},
|
35
|
+
sourceMaps: true,
|
36
|
+
env: {
|
37
|
+
coreJs: '3.8',
|
38
|
+
loose: true,
|
39
|
+
exclude: ['transform-typeof-symbol'],
|
40
|
+
mode: 'entry'
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
45
|
+
return merge(defaultConfig, customConfig)
|
46
|
+
}
|
47
|
+
|
48
|
+
module.exports = {
|
49
|
+
getSwcLoaderConfig
|
50
|
+
}
|
data/package/utils/helpers.js
CHANGED
@@ -27,7 +27,7 @@ const resolvedPath = (packageName) => {
|
|
27
27
|
}
|
28
28
|
}
|
29
29
|
|
30
|
-
const moduleExists = (packageName) =>
|
30
|
+
const moduleExists = (packageName) => !!resolvedPath(packageName)
|
31
31
|
|
32
32
|
const canProcess = (rule, fn) => {
|
33
33
|
const modulePath = resolvedPath(rule)
|
@@ -39,6 +39,22 @@ const canProcess = (rule, fn) => {
|
|
39
39
|
return null
|
40
40
|
}
|
41
41
|
|
42
|
+
const loaderMatches = (configLoader, loaderToCheck, fn) => {
|
43
|
+
if (configLoader !== loaderToCheck) {
|
44
|
+
return null
|
45
|
+
}
|
46
|
+
|
47
|
+
const loaderName = `${configLoader}-loader`
|
48
|
+
|
49
|
+
if (!moduleExists(loaderName)) {
|
50
|
+
throw new Error(
|
51
|
+
`Your webpacker config specified using ${configLoader}, but ${loaderName} package is not installed. Please install ${loaderName} first.`
|
52
|
+
)
|
53
|
+
}
|
54
|
+
|
55
|
+
return fn()
|
56
|
+
}
|
57
|
+
|
42
58
|
module.exports = {
|
43
59
|
chdirTestApp,
|
44
60
|
chdirCwd,
|
@@ -47,5 +63,6 @@ module.exports = {
|
|
47
63
|
ensureTrailingSlash,
|
48
64
|
canProcess,
|
49
65
|
moduleExists,
|
50
|
-
resetEnv
|
66
|
+
resetEnv,
|
67
|
+
loaderMatches
|
51
68
|
}
|
data/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "shakapacker",
|
3
|
-
"version": "6.
|
3
|
+
"version": "6.1.1",
|
4
4
|
"description": "Use webpack to manage app-like JavaScript modules in Rails",
|
5
5
|
"main": "package/index.js",
|
6
6
|
"files": [
|
@@ -32,6 +32,7 @@
|
|
32
32
|
"devDependencies": {
|
33
33
|
"babel-loader": "^8.2.2",
|
34
34
|
"compression-webpack-plugin": "^9.0.0",
|
35
|
+
"esbuild-loader": "^2.18.0",
|
35
36
|
"eslint": "^7.32.0",
|
36
37
|
"eslint-config-airbnb": "^18.2.1",
|
37
38
|
"eslint-config-prettier": "^8.3.0",
|
@@ -39,6 +40,7 @@
|
|
39
40
|
"eslint-plugin-jsx-a11y": "^6.4.1",
|
40
41
|
"eslint-plugin-react": "^7.26.0",
|
41
42
|
"jest": "^27.2.1",
|
43
|
+
"swc-loader": "^0.1.15",
|
42
44
|
"webpack": "^5.53.0",
|
43
45
|
"webpack-assets-manifest": "^5.0.6",
|
44
46
|
"webpack-merge": "^5.8.0"
|
data/webpacker.gemspec
CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
|
|
15
15
|
"source_code_uri" => "https://github.com/shakacode/shakapacker/tree/v#{npm_version}",
|
16
16
|
}
|
17
17
|
|
18
|
-
s.required_ruby_version = ">= 2.
|
18
|
+
s.required_ruby_version = ">= 2.6.0"
|
19
19
|
|
20
20
|
s.add_dependency "activesupport", ">= 5.2"
|
21
21
|
s.add_dependency "railties", ">= 5.2"
|
data/yarn.lock
CHANGED
@@ -1514,6 +1514,132 @@ es-to-primitive@^1.2.1:
|
|
1514
1514
|
is-date-object "^1.0.1"
|
1515
1515
|
is-symbol "^1.0.2"
|
1516
1516
|
|
1517
|
+
esbuild-android-arm64@0.14.18:
|
1518
|
+
version "0.14.18"
|
1519
|
+
resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.18.tgz#027a1cd57e57c6219341e116c4ac41a9952d69d1"
|
1520
|
+
integrity sha512-AuE8vIwc6QLquwykyscFk0Ji3RFczoOvjka64FJlcjLLhD6VsS584RYlQrSnPpRkv69PunUvyrBoEF7JFTJijg==
|
1521
|
+
|
1522
|
+
esbuild-darwin-64@0.14.18:
|
1523
|
+
version "0.14.18"
|
1524
|
+
resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.18.tgz#a219c50aa98b5bc08d7ce3677f5bae4b8aa5101b"
|
1525
|
+
integrity sha512-nN1XziZtDy8QYOggaXC3zu0vVh8YJpS8Bol7bHaxx0enTLDSFBCXUUJEKYpmAAJ4OZRPgjXv8NzEHHQWQvLzXg==
|
1526
|
+
|
1527
|
+
esbuild-darwin-arm64@0.14.18:
|
1528
|
+
version "0.14.18"
|
1529
|
+
resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.18.tgz#eb2d17d33c5991c183c99843698182bb702eb592"
|
1530
|
+
integrity sha512-v0i2n6TCsbxco/W1fN8RgQt3RW00Q9zJO2eqiAdmLWg6Hx0HNHloZyfhF11i7nMUUgW8r5n++ZweIXjAFPE/gQ==
|
1531
|
+
|
1532
|
+
esbuild-freebsd-64@0.14.18:
|
1533
|
+
version "0.14.18"
|
1534
|
+
resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.18.tgz#de06b6ce361bdf51fb66e59b220f67c4124cc728"
|
1535
|
+
integrity sha512-XLyJZTWbSuQJOqw867tBxvto6GjxULvWZYKs6RFHYQPCqgQ0ODLRtBmp4Fqqpde52yOe45npaaoup9IXNfr32A==
|
1536
|
+
|
1537
|
+
esbuild-freebsd-arm64@0.14.18:
|
1538
|
+
version "0.14.18"
|
1539
|
+
resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.18.tgz#59bb55cd6ac1b2b3c43536c067d8356f4ae7e310"
|
1540
|
+
integrity sha512-0ItfrR8hePnDcUXxUQxY+VfICcBfeMJCdK6mcNUXnXw6LyHjyUYXWpFXF+J18pg1/YUWRWO1HbsJ7FEwELcQIA==
|
1541
|
+
|
1542
|
+
esbuild-linux-32@0.14.18:
|
1543
|
+
version "0.14.18"
|
1544
|
+
resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.18.tgz#ff68f7ec7c8b8c7dddab4d6e65f1a1d0ff3ab0b9"
|
1545
|
+
integrity sha512-mnG84D9NsEsoQdBpBT0IsFjm5iAwnd81SP4tRMXZLl09lPvIWjHHSq6LDlb4+L5H5K5y68WC//X5Dr2MtNY3DQ==
|
1546
|
+
|
1547
|
+
esbuild-linux-64@0.14.18:
|
1548
|
+
version "0.14.18"
|
1549
|
+
resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.18.tgz#d4083d9833580090452a095cd2216100d86f3c7a"
|
1550
|
+
integrity sha512-HvExRtkeA8l/p+7Lf6aBrnLH+jTCFJTUMJxGKExh2RD8lCXGTeDJFyP+BOEetP80fuuH+Syj79+LVQ9MihdBsg==
|
1551
|
+
|
1552
|
+
esbuild-linux-arm64@0.14.18:
|
1553
|
+
version "0.14.18"
|
1554
|
+
resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.18.tgz#8ce21e188ab9fcdb512f4ada9a637014c1294bec"
|
1555
|
+
integrity sha512-CCWmilODE1ckw+M7RVqoqKWA4UB0alCyK2bv0ikEeEAwkzinlJeoe94t9CnT/ECSQ2sL+C16idsr+aUviGp7sg==
|
1556
|
+
|
1557
|
+
esbuild-linux-arm@0.14.18:
|
1558
|
+
version "0.14.18"
|
1559
|
+
resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.18.tgz#a5e1d684c451f379b1dfef7b5a2dcad84cce3f79"
|
1560
|
+
integrity sha512-+ZL8xfXVNaeaZ2Kxqlw2VYZWRDZ7NSK4zOV9GKNAtkkWURLsPUU84aUOBatRe9BH1O5FDo3LLQSlaA04ed6lhA==
|
1561
|
+
|
1562
|
+
esbuild-linux-mips64le@0.14.18:
|
1563
|
+
version "0.14.18"
|
1564
|
+
resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.18.tgz#c3890f178745a9c65bad64322be2b3611c240041"
|
1565
|
+
integrity sha512-8LjO4+6Vxz5gbyCHO4OONYMF689nLderCtzb8lG1Bncs4ZXHpo6bjvuWeTMRbGUkvAhp+P6hMTzia7RHOC53wQ==
|
1566
|
+
|
1567
|
+
esbuild-linux-ppc64le@0.14.18:
|
1568
|
+
version "0.14.18"
|
1569
|
+
resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.18.tgz#a355f515ca84839f5301f8ef745a2b329105e232"
|
1570
|
+
integrity sha512-0OJk/6iYEmF1J7LXY6+cqf6Ga5vG4an7n1nubTKce7kYqaTyNGfYcTjDZce6lnDVlZTJtwntIMszq1+ZX7Kenw==
|
1571
|
+
|
1572
|
+
esbuild-linux-s390x@0.14.18:
|
1573
|
+
version "0.14.18"
|
1574
|
+
resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.18.tgz#81721c22387912778c67495d0a34527f7a2cde66"
|
1575
|
+
integrity sha512-UNY7YKZHjY31KcNanJK4QaT2/aoIQyS+jViP3QuDRIoYAogRnc6WydylzIkkEzGMaC4fzaXOmQ8fxwpLAXK4Yg==
|
1576
|
+
|
1577
|
+
esbuild-loader@^2.18.0:
|
1578
|
+
version "2.18.0"
|
1579
|
+
resolved "https://registry.yarnpkg.com/esbuild-loader/-/esbuild-loader-2.18.0.tgz#7b9548578ab954574fd94655693d22aa5ec74120"
|
1580
|
+
integrity sha512-AKqxM3bI+gvGPV8o6NAhR+cBxVO8+dh+O0OXBHIXXwuSGumckbPWHzZ17subjBGI2YEGyJ1STH7Haj8aCrwL/w==
|
1581
|
+
dependencies:
|
1582
|
+
esbuild "^0.14.6"
|
1583
|
+
joycon "^3.0.1"
|
1584
|
+
json5 "^2.2.0"
|
1585
|
+
loader-utils "^2.0.0"
|
1586
|
+
tapable "^2.2.0"
|
1587
|
+
webpack-sources "^2.2.0"
|
1588
|
+
|
1589
|
+
esbuild-netbsd-64@0.14.18:
|
1590
|
+
version "0.14.18"
|
1591
|
+
resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.18.tgz#eaee109d527a58b582f8fa933d9cadf8840758c2"
|
1592
|
+
integrity sha512-wE/2xT9KNzLCfEBw24YbVmMmXH92cFIzrRPUlwWH9dIizjvEYYcyQ+peTMVkqzUum7pdlVLZ2CDDqAaZo/nW/w==
|
1593
|
+
|
1594
|
+
esbuild-openbsd-64@0.14.18:
|
1595
|
+
version "0.14.18"
|
1596
|
+
resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.18.tgz#96a42615f5548529b7bb32d024bb9c6fb542778c"
|
1597
|
+
integrity sha512-vdymE2jyuH/FRmTvrguCYSrq81/rUwuhMYyvt/6ibv9ac7xQ674c8qTdT+RH73sR9/2WUD/NsYxrBA/wUVTxcg==
|
1598
|
+
|
1599
|
+
esbuild-sunos-64@0.14.18:
|
1600
|
+
version "0.14.18"
|
1601
|
+
resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.18.tgz#869723d73a5f35ba2a4a6c043694d952bd4f831b"
|
1602
|
+
integrity sha512-X/Tesy6K1MdJF1d5cbzFDxrIMMn0ye+VgTQRI8P5Vo2CcKxOdckwsKUwpRAvg+VDZ6MxrSOTYS9OOoggPUjxTg==
|
1603
|
+
|
1604
|
+
esbuild-windows-32@0.14.18:
|
1605
|
+
version "0.14.18"
|
1606
|
+
resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.18.tgz#197c8833ed0f6a82055ab63861777749d0ce95c0"
|
1607
|
+
integrity sha512-glG23I/JzCL4lu7DWFUtVwqFwNwlL0g+ks+mcjjUisHcINoSXTeCNToUN0bHhzn6IlXXnggNQ38Ew/idHPM8+g==
|
1608
|
+
|
1609
|
+
esbuild-windows-64@0.14.18:
|
1610
|
+
version "0.14.18"
|
1611
|
+
resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.18.tgz#569832a99d87fc931a081fe7761c100578275be0"
|
1612
|
+
integrity sha512-zEiFKHgV/3z14wsVamV98/5mxeOwz+ecyg0pD3fWcBz9j4EOIT1Tg47axypD4QLwiKFvve9mUBYX1cD99qxOyw==
|
1613
|
+
|
1614
|
+
esbuild-windows-arm64@0.14.18:
|
1615
|
+
version "0.14.18"
|
1616
|
+
resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.18.tgz#c1991848fca7b051d1d036d0723406da9696105d"
|
1617
|
+
integrity sha512-Mh8lZFcPLat13dABN7lZThGUOn9YxoH5RYkhBq0U3WqQohHzKRhllYh7ibFixnkpMLnv8OZEbl8bGLMy03MpfA==
|
1618
|
+
|
1619
|
+
esbuild@^0.14.6:
|
1620
|
+
version "0.14.18"
|
1621
|
+
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.18.tgz#9c5f58c506ec9e0ec335d20bcb3f9dbd086d0648"
|
1622
|
+
integrity sha512-vCUoISSltnX7ax01w70pWOSQT+e55o+2P/a+A9MSTukJAt3T4aDZajcjeG4fnZbkvOEv+dkKgdkvljz6vVQD4A==
|
1623
|
+
optionalDependencies:
|
1624
|
+
esbuild-android-arm64 "0.14.18"
|
1625
|
+
esbuild-darwin-64 "0.14.18"
|
1626
|
+
esbuild-darwin-arm64 "0.14.18"
|
1627
|
+
esbuild-freebsd-64 "0.14.18"
|
1628
|
+
esbuild-freebsd-arm64 "0.14.18"
|
1629
|
+
esbuild-linux-32 "0.14.18"
|
1630
|
+
esbuild-linux-64 "0.14.18"
|
1631
|
+
esbuild-linux-arm "0.14.18"
|
1632
|
+
esbuild-linux-arm64 "0.14.18"
|
1633
|
+
esbuild-linux-mips64le "0.14.18"
|
1634
|
+
esbuild-linux-ppc64le "0.14.18"
|
1635
|
+
esbuild-linux-s390x "0.14.18"
|
1636
|
+
esbuild-netbsd-64 "0.14.18"
|
1637
|
+
esbuild-openbsd-64 "0.14.18"
|
1638
|
+
esbuild-sunos-64 "0.14.18"
|
1639
|
+
esbuild-windows-32 "0.14.18"
|
1640
|
+
esbuild-windows-64 "0.14.18"
|
1641
|
+
esbuild-windows-arm64 "0.14.18"
|
1642
|
+
|
1517
1643
|
escalade@^3.1.1:
|
1518
1644
|
version "3.1.1"
|
1519
1645
|
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
|
@@ -2684,6 +2810,11 @@ jest@^27.2.1:
|
|
2684
2810
|
import-local "^3.0.2"
|
2685
2811
|
jest-cli "^27.4.7"
|
2686
2812
|
|
2813
|
+
joycon@^3.0.1:
|
2814
|
+
version "3.1.1"
|
2815
|
+
resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03"
|
2816
|
+
integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==
|
2817
|
+
|
2687
2818
|
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
|
2688
2819
|
version "4.0.0"
|
2689
2820
|
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
|
@@ -2769,7 +2900,7 @@ json5@^1.0.1:
|
|
2769
2900
|
dependencies:
|
2770
2901
|
minimist "^1.2.0"
|
2771
2902
|
|
2772
|
-
json5@^2.1.2:
|
2903
|
+
json5@^2.1.2, json5@^2.2.0:
|
2773
2904
|
version "2.2.0"
|
2774
2905
|
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
|
2775
2906
|
integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
|
@@ -2841,6 +2972,15 @@ loader-utils@^1.4.0:
|
|
2841
2972
|
emojis-list "^3.0.0"
|
2842
2973
|
json5 "^1.0.1"
|
2843
2974
|
|
2975
|
+
loader-utils@^2.0.0:
|
2976
|
+
version "2.0.2"
|
2977
|
+
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129"
|
2978
|
+
integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==
|
2979
|
+
dependencies:
|
2980
|
+
big.js "^5.2.2"
|
2981
|
+
emojis-list "^3.0.0"
|
2982
|
+
json5 "^2.1.2"
|
2983
|
+
|
2844
2984
|
locate-path@^2.0.0:
|
2845
2985
|
version "2.0.0"
|
2846
2986
|
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
|
@@ -3478,6 +3618,11 @@ slice-ansi@^4.0.0:
|
|
3478
3618
|
astral-regex "^2.0.0"
|
3479
3619
|
is-fullwidth-code-point "^3.0.0"
|
3480
3620
|
|
3621
|
+
source-list-map@^2.0.1:
|
3622
|
+
version "2.0.1"
|
3623
|
+
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
|
3624
|
+
integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
|
3625
|
+
|
3481
3626
|
source-map-support@^0.5.6, source-map-support@~0.5.20:
|
3482
3627
|
version "0.5.21"
|
3483
3628
|
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
|
@@ -3621,6 +3766,13 @@ supports-preserve-symlinks-flag@^1.0.0:
|
|
3621
3766
|
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
|
3622
3767
|
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
|
3623
3768
|
|
3769
|
+
swc-loader@^0.1.15:
|
3770
|
+
version "0.1.15"
|
3771
|
+
resolved "https://registry.yarnpkg.com/swc-loader/-/swc-loader-0.1.15.tgz#cb9c630ccfbb46dabc5aebc5560cced658e32992"
|
3772
|
+
integrity sha512-cn1WPIeQJvXM4bbo3OwdEIapsQ4uUGOfyFj0h2+2+brT0k76DCGnZXDE2KmcqTd2JSQ+b61z2NPMib7eEwMYYw==
|
3773
|
+
dependencies:
|
3774
|
+
loader-utils "^2.0.0"
|
3775
|
+
|
3624
3776
|
symbol-tree@^3.2.4:
|
3625
3777
|
version "3.2.4"
|
3626
3778
|
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
|
@@ -3865,6 +4017,14 @@ webpack-merge@^5.8.0:
|
|
3865
4017
|
clone-deep "^4.0.1"
|
3866
4018
|
wildcard "^2.0.0"
|
3867
4019
|
|
4020
|
+
webpack-sources@^2.2.0:
|
4021
|
+
version "2.3.1"
|
4022
|
+
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd"
|
4023
|
+
integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==
|
4024
|
+
dependencies:
|
4025
|
+
source-list-map "^2.0.1"
|
4026
|
+
source-map "^0.6.1"
|
4027
|
+
|
3868
4028
|
webpack-sources@^3.2.2:
|
3869
4029
|
version "3.2.3"
|
3870
4030
|
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
|