react_on_rails 16.6.0.rc.1 → 16.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bd57c5ba417fed762b468a17579ea7bdf04bb314730eb62e9b2ae210fd873c9c
|
|
4
|
+
data.tar.gz: a860a8fafb5f17aaf1bb9f07d519a3d73bbc6f3b997b44d7398c7fce7e4c45ab
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 36ac38e9d74615e2970df360ce082bbfc625624347deaf0ddddf4756c21c112a76572795652ccd94f8f0cc05e8bbf51b6499a68a36c61a0e32eac06b17268721
|
|
7
|
+
data.tar.gz: 6a084e79ce8b4b8b5f9328d3243d71d740a2f34291f07c57fc56e33985d75242015171fc7c15b74a36545dc40263e603ece9cb0d4d722e4d624060fb56c14726
|
data/Gemfile.lock
CHANGED
|
@@ -52,29 +52,39 @@ module ReactOnRails
|
|
|
52
52
|
# Include this module in generator classes and call setup_js_dependencies
|
|
53
53
|
# to handle all JS dependency installation via package_json gem.
|
|
54
54
|
module JsDependencyManager
|
|
55
|
+
# Third-party dependencies are pinned to ^major.0.0 ranges to prevent breaking
|
|
56
|
+
# changes from uncontrolled major version bumps (e.g., peer dependency conflicts)
|
|
57
|
+
# while still allowing minor/patch updates. Pre-1.0 packages are left bare since
|
|
58
|
+
# ^0.x ranges pin to the minor version, which is too narrow.
|
|
59
|
+
# Exception: SWC deps are pinned to match Shakapacker's own version constraints
|
|
60
|
+
# (swc-loader@^0.2.0 is pre-1.0 but deliberately pinned for Shakapacker compat).
|
|
61
|
+
#
|
|
62
|
+
# Update these pins deliberately when adopting a new major version.
|
|
63
|
+
|
|
55
64
|
# Core React dependencies required for React on Rails
|
|
56
65
|
# Note: @babel/preset-react is handled separately in BABEL_REACT_DEPENDENCIES
|
|
57
66
|
# and is added only when SWC is not the active transpiler.
|
|
58
67
|
REACT_DEPENDENCIES = %w[
|
|
59
|
-
react
|
|
60
|
-
react-dom
|
|
61
|
-
prop-types
|
|
68
|
+
react@^19.0.0
|
|
69
|
+
react-dom@^19.0.0
|
|
70
|
+
prop-types@^15.0.0
|
|
62
71
|
].freeze
|
|
63
72
|
|
|
64
73
|
# Babel preset needed by the generated babel.config.js for non-SWC setups.
|
|
65
74
|
BABEL_REACT_DEPENDENCIES = %w[
|
|
66
|
-
@babel/preset-react
|
|
75
|
+
@babel/preset-react@^7.0.0
|
|
67
76
|
].freeze
|
|
68
77
|
|
|
69
78
|
# CSS processing dependencies for webpack
|
|
70
79
|
CSS_DEPENDENCIES = %w[
|
|
71
|
-
css-loader
|
|
72
|
-
css-minimizer-webpack-plugin
|
|
73
|
-
mini-css-extract-plugin
|
|
74
|
-
style-loader
|
|
80
|
+
css-loader@^7.0.0
|
|
81
|
+
css-minimizer-webpack-plugin@^8.0.0
|
|
82
|
+
mini-css-extract-plugin@^2.0.0
|
|
83
|
+
style-loader@^4.0.0
|
|
75
84
|
].freeze
|
|
76
85
|
|
|
77
86
|
# Development-only dependencies for hot reloading (Webpack)
|
|
87
|
+
# Both packages are pre-1.0, so left bare (see pinning note above).
|
|
78
88
|
DEV_DEPENDENCIES = %w[
|
|
79
89
|
@pmmmwh/react-refresh-webpack-plugin
|
|
80
90
|
react-refresh
|
|
@@ -82,14 +92,15 @@ module ReactOnRails
|
|
|
82
92
|
|
|
83
93
|
# Rspack core dependencies (only installed when --rspack flag is used)
|
|
84
94
|
RSPACK_DEPENDENCIES = %w[
|
|
85
|
-
@rspack/core
|
|
86
|
-
rspack-manifest-plugin
|
|
95
|
+
@rspack/core@^1.0.0
|
|
96
|
+
rspack-manifest-plugin@^5.0.0
|
|
87
97
|
].freeze
|
|
88
98
|
|
|
89
99
|
# Rspack development dependencies for hot reloading
|
|
100
|
+
# react-refresh is pre-1.0, so left bare (see pinning note above).
|
|
90
101
|
RSPACK_DEV_DEPENDENCIES = %w[
|
|
91
|
-
@rspack/cli
|
|
92
|
-
@rspack/plugin-react-refresh
|
|
102
|
+
@rspack/cli@^1.0.0
|
|
103
|
+
@rspack/plugin-react-refresh@^1.0.0
|
|
93
104
|
react-refresh
|
|
94
105
|
].freeze
|
|
95
106
|
|
|
@@ -100,16 +111,17 @@ module ReactOnRails
|
|
|
100
111
|
# - If users choose javascript_transpiler: 'babel', they should manually add @babel/preset-typescript
|
|
101
112
|
# and configure it in their babel.config.js
|
|
102
113
|
TYPESCRIPT_DEPENDENCIES = %w[
|
|
103
|
-
typescript
|
|
104
|
-
@types/react
|
|
105
|
-
@types/react-dom
|
|
114
|
+
typescript@^6.0.0
|
|
115
|
+
@types/react@^19.0.0
|
|
116
|
+
@types/react-dom@^19.0.0
|
|
106
117
|
].freeze
|
|
107
118
|
|
|
108
119
|
# SWC transpiler dependencies (for Shakapacker 9.3.0+ default transpiler)
|
|
109
120
|
# SWC is ~20x faster than Babel and is the default for new Shakapacker installations
|
|
121
|
+
# Version ranges match Shakapacker's own constraints.
|
|
110
122
|
SWC_DEPENDENCIES = %w[
|
|
111
|
-
@swc/core
|
|
112
|
-
swc-loader
|
|
123
|
+
@swc/core@^1.3.0
|
|
124
|
+
swc-loader@^0.2.0
|
|
113
125
|
].freeze
|
|
114
126
|
|
|
115
127
|
# React on Rails Pro dependencies (only installed when --pro or --rsc flag is used)
|
|
@@ -222,7 +234,8 @@ module ReactOnRails
|
|
|
222
234
|
# RSC requires React 19.0.x specifically (not 19.1.x or later)
|
|
223
235
|
# Pin to ~19.0.4 to allow patch updates while staying within 19.0.x
|
|
224
236
|
react_deps = if respond_to?(:use_rsc?) && use_rsc?
|
|
225
|
-
["react@#{RSC_REACT_VERSION_RANGE}", "react-dom@#{RSC_REACT_VERSION_RANGE}",
|
|
237
|
+
["react@#{RSC_REACT_VERSION_RANGE}", "react-dom@#{RSC_REACT_VERSION_RANGE}",
|
|
238
|
+
"prop-types@^15.0.0"]
|
|
226
239
|
else
|
|
227
240
|
REACT_DEPENDENCIES
|
|
228
241
|
end
|
|
@@ -6,14 +6,17 @@ require "json"
|
|
|
6
6
|
|
|
7
7
|
# Script to switch between webpack and rspack bundlers
|
|
8
8
|
class BundlerSwitcher
|
|
9
|
+
# Pinned to ^major.0.0 to prevent peer dependency conflicts from major version bumps.
|
|
10
|
+
# Pre-1.0 packages are left bare since ^0.x pins to the minor version.
|
|
11
|
+
# webpack-cli pinned to ^6 (not ^7) to stay within Shakapacker's supported peer range.
|
|
9
12
|
WEBPACK_DEPS = {
|
|
10
|
-
dependencies: %w[webpack webpack-assets-manifest webpack-merge],
|
|
11
|
-
dev_dependencies: %w[webpack-cli webpack-dev-server @pmmmwh/react-refresh-webpack-plugin]
|
|
13
|
+
dependencies: %w[webpack@^5.0.0 webpack-assets-manifest@^6.0.0 webpack-merge@^6.0.0],
|
|
14
|
+
dev_dependencies: %w[webpack-cli@^6.0.0 webpack-dev-server@^5.0.0 @pmmmwh/react-refresh-webpack-plugin]
|
|
12
15
|
}.freeze
|
|
13
16
|
|
|
14
17
|
RSPACK_DEPS = {
|
|
15
|
-
dependencies: %w[@rspack/core rspack-manifest-plugin],
|
|
16
|
-
dev_dependencies: %w[@rspack/cli @rspack/plugin-react-refresh]
|
|
18
|
+
dependencies: %w[@rspack/core@^1.0.0 rspack-manifest-plugin@^5.0.0],
|
|
19
|
+
dev_dependencies: %w[@rspack/cli@^1.0.0 @rspack/plugin-react-refresh@^1.0.0]
|
|
17
20
|
}.freeze
|
|
18
21
|
|
|
19
22
|
def initialize(target_bundler)
|
|
@@ -83,11 +86,14 @@ class BundlerSwitcher
|
|
|
83
86
|
remove_deps = @target_bundler == "rspack" ? WEBPACK_DEPS : RSPACK_DEPS
|
|
84
87
|
|
|
85
88
|
# Remove old bundler dependencies
|
|
89
|
+
# Strip version suffix (e.g., "webpack@^5.0.0" -> "webpack") since package.json keys are bare names.
|
|
90
|
+
# The regex handles scoped (@scope/name@ver) and unscoped (name@ver) packages, and is a no-op for
|
|
91
|
+
# bare names without a version suffix (e.g., "@pmmmwh/react-refresh-webpack-plugin" stays unchanged).
|
|
86
92
|
remove_deps[:dependencies].each do |dep|
|
|
87
|
-
package_json["dependencies"]&.delete(dep)
|
|
93
|
+
package_json["dependencies"]&.delete(dep[%r{\A(@[^/]+/[^@]+|[^@]+)}])
|
|
88
94
|
end
|
|
89
95
|
remove_deps[:dev_dependencies].each do |dep|
|
|
90
|
-
package_json["devDependencies"]&.delete(dep)
|
|
96
|
+
package_json["devDependencies"]&.delete(dep[%r{\A(@[^/]+/[^@]+|[^@]+)}])
|
|
91
97
|
end
|
|
92
98
|
|
|
93
99
|
puts "✅ Removed #{@target_bundler == 'rspack' ? 'webpack' : 'rspack'} dependencies"
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: react_on_rails
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 16.6.0
|
|
4
|
+
version: 16.6.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Justin Gordon
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-04-
|
|
11
|
+
date: 2026-04-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: addressable
|