react-on-rails-rsc 19.3.0 → 19.3.1-rc.1

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.
Files changed (34) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/LICENSE.md +349 -194
  3. package/README.md +19 -5
  4. package/dist/WebpackLoader.d.ts +40 -1
  5. package/dist/WebpackLoader.d.ts.map +1 -1
  6. package/dist/WebpackLoader.js +64 -4
  7. package/dist/WebpackLoader.js.map +1 -1
  8. package/dist/WebpackPlugin.d.ts +4 -0
  9. package/dist/WebpackPlugin.d.ts.map +1 -1
  10. package/dist/WebpackPlugin.js.map +1 -1
  11. package/dist/loaderExportScan.d.ts +2 -0
  12. package/dist/loaderExportScan.d.ts.map +1 -1
  13. package/dist/loaderExportScan.js +7 -3
  14. package/dist/loaderExportScan.js.map +1 -1
  15. package/dist/react-server-dom-rspack/injection-loader.d.ts +3 -1
  16. package/dist/react-server-dom-rspack/injection-loader.d.ts.map +1 -1
  17. package/dist/react-server-dom-rspack/injection-loader.js +12 -3
  18. package/dist/react-server-dom-rspack/injection-loader.js.map +1 -1
  19. package/dist/react-server-dom-rspack/plugin.d.ts +4 -0
  20. package/dist/react-server-dom-rspack/plugin.d.ts.map +1 -1
  21. package/dist/react-server-dom-rspack/plugin.js +3 -1
  22. package/dist/react-server-dom-rspack/plugin.js.map +1 -1
  23. package/dist/webpack/RSCWebpackPlugin.d.ts +4 -0
  24. package/dist/webpack/RSCWebpackPlugin.d.ts.map +1 -1
  25. package/dist/webpack/RSCWebpackPlugin.js +4 -1
  26. package/dist/webpack/RSCWebpackPlugin.js.map +1 -1
  27. package/dist/webpack/cssWrapperRequest.d.ts +18 -0
  28. package/dist/webpack/cssWrapperRequest.d.ts.map +1 -0
  29. package/dist/webpack/cssWrapperRequest.js +27 -0
  30. package/dist/webpack/cssWrapperRequest.js.map +1 -0
  31. package/dist/webpack/rscCssWrapperLoader.d.ts +2 -3
  32. package/dist/webpack/rscCssWrapperLoader.d.ts.map +1 -1
  33. package/dist/webpack/rscCssWrapperLoader.js.map +1 -1
  34. package/package.json +8 -8
package/CHANGELOG.md CHANGED
@@ -2,6 +2,28 @@
2
2
 
3
3
  All notable changes to this package will be documented in this file.
4
4
 
5
+ ## [Unreleased]
6
+
7
+ ## [19.3.1-rc.1] - 2026-10-07
8
+
9
+ ### Changed
10
+
11
+ * License: `react-on-rails-rsc` is governed by The React on Rails Pro License 3.0 (based on trust, free for small organizations; replaces EULA 2.3).
12
+
13
+ ### Fixed
14
+ - Fixed CSS wrapper builds for client modules using configured proposal syntax by passing `parserPlugins` from both RSC plugins to the wrapper export scan. ([#240])
15
+ - Fixed `react-on-rails-rsc/WebpackLoader` failing RSC bundle builds with `SyntaxError: Unexpected token '/' ... is not valid JSON` when a `"use server"` (or other stock-path directive) module ends with a `//# sourceMappingURL=` comment — the shape npm packages publish. The loader now routes the stock node-loader's requests instead of answering every one with the module's own source: a sourcemap request is always answered with a valid empty map (real `.map`/inline-map passthrough is deliberately not implemented — tracked in [#239]), and any other requested module URL (`export *` resolution) is served from the bundler's input filesystem. ([#236])
16
+
17
+ ## [19.3.1-rc.0] - 2026-09-19
18
+
19
+ ### Breaking Changes
20
+ - Opened the React 19.3 Flight line by depending on stock `react-server-dom-webpack@~19.3.0` and raising the `react` and `react-dom` peer floors to `^19.3.0`. Published `19.3.0` remains the React 19.2.8 line; apps still on React 19.2.8 must pin exact `react-on-rails-rsc@19.3.0` instead of taking this patch. ([#235])
21
+
22
+ **Migration Guide:**
23
+
24
+ 1. Upgrade application `react`, `react-dom`, and `react-server-dom-webpack` together to 19.3.0 so the nested Flight runtime matches React and a second Flight copy is not installed.
25
+ 2. Keep exact `react-on-rails-rsc@19.3.0` while the app remains on React 19.2.8. Do not treat `19.3.1-rc.0` as a drop-in patch for that line. This candidate publishes to npm `next` only; `latest` stays on `19.3.0` until the downstream gate accepts the final.
26
+
5
27
  ## [19.3.0] - 2026-09-16
6
28
 
7
29
  ### Breaking Changes
@@ -85,12 +107,18 @@ All notable changes to this package will be documented in this file.
85
107
  ### Security
86
108
  - Updated the vendored `react-server-dom-webpack` runtime from React 19.0.3 to the React 19.0.7 security level, applying the React 19.0.4 fixes for CVE-2025-55183, CVE-2025-55184, and CVE-2025-67779 plus the React 19.0.7 reply-decoding denial-of-service fixes for CVE-2026-23869 (GHSA-479c-33wc-g2pg) and CVE-2026-23870 (GHSA-rv78-f8rc-xrxh). Note: the upstream CVE-2026-23869 fix changes the reply wire format for nested `FormData`, so client and server must both run the patched runtime shipped by this package. ([#48]) ([#86])
87
109
 
110
+ [Unreleased]: https://github.com/shakacode/react_on_rails_rsc/compare/19.3.1-rc.1...HEAD
111
+ [19.3.1-rc.1]: https://github.com/shakacode/react_on_rails_rsc/compare/19.3.1-rc.0...19.3.1-rc.1
112
+ [19.3.1-rc.0]: https://github.com/shakacode/react_on_rails_rsc/compare/19.3.0...19.3.1-rc.0
88
113
  [19.3.0]: https://github.com/shakacode/react_on_rails_rsc/compare/19.2.1...19.3.0
89
114
  [19.2.1]: https://github.com/shakacode/react_on_rails_rsc/compare/19.2.0...19.2.1
90
115
  [19.2.0]: https://github.com/shakacode/react_on_rails_rsc/compare/19.0.5...19.2.0
91
116
  [19.0.5]: https://github.com/shakacode/react_on_rails_rsc/compare/19.0.4...19.0.5
92
117
 
93
118
  [#203]: https://github.com/shakacode/react_on_rails_rsc/pull/203
119
+ [#235]: https://github.com/shakacode/react_on_rails_rsc/pull/235
120
+ [#236]: https://github.com/shakacode/react_on_rails_rsc/pull/236
121
+ [#239]: https://github.com/shakacode/react_on_rails_rsc/issues/239
94
122
  [#207]: https://github.com/shakacode/react_on_rails_rsc/pull/207
95
123
  [#120]: https://github.com/shakacode/react_on_rails_rsc/pull/120
96
124
  [#140]: https://github.com/shakacode/react_on_rails_rsc/pull/140
@@ -138,3 +166,4 @@ All notable changes to this package will be documented in this file.
138
166
  [#223]: https://github.com/shakacode/react_on_rails_rsc/pull/223
139
167
  [#228]: https://github.com/shakacode/react_on_rails_rsc/pull/228
140
168
  [#230]: https://github.com/shakacode/react_on_rails_rsc/pull/230
169
+ [#240]: https://github.com/shakacode/react_on_rails_rsc/pull/240
package/LICENSE.md CHANGED
@@ -1,10 +1,14 @@
1
1
  # react-on-rails-rsc License
2
2
 
3
3
  Beginning with version `19.2.1`, the `react-on-rails-rsc` npm package is a
4
- commercially licensed related component of React on Rails Pro. Production Use
5
- requires the appropriate paid subscription or Complimentary OSS License. The
6
- royalty-free uses defined in Section 4 remain permitted subject to the EULA,
7
- including its attribution requirement.
4
+ commercially licensed related component of React on Rails Pro. Releases that
5
+ include this license file are governed by The React on Rails Pro License,
6
+ version 3.0, reproduced below: free in development, test, CI, and staging for
7
+ everyone; free in production for small organizations, charities, educational
8
+ institutions, and hospitals; a subscription for other production use. No
9
+ license key is needed to run it. This package does not generate or insert the
10
+ Generated Attribution and has no independent obligation to insert one (Section
11
+ 8). Earlier releases retain the terms included in their packages.
8
12
 
9
13
  The package includes portions of Meta's `ReactFlightWebpackPlugin` in
10
14
  `src/webpack/RSCWebpackPlugin.ts`. Those portions remain governed by the Meta
@@ -12,200 +16,351 @@ MIT notice reproduced after the canonical commercial terms.
12
16
 
13
17
  ## Canonical Commercial Terms
14
18
 
15
- # ShakaCode React on Rails Pro – End User License Agreement (EULA)
19
+ # The React on Rails Pro License
20
+
21
+ The React on Rails Pro License, version 3.0, an application of ShakaCode
22
+ Trust-Based Commercial Licensing.
23
+
24
+ Copyright (c) 2015-2026 ShakaCode LLC, a Hawaii limited liability company
25
+ ("ShakaCode").
26
+
27
+ SPDX-License-Identifier: LicenseRef-ReactOnRailsPro
28
+
29
+ ## Plain-language summary (informative, not part of the terms)
30
+
31
+ React on Rails Pro is trust-based: no license key is needed to run it,
32
+ nothing phones home, and a missing key never blocks, slows, or changes
33
+ how your app runs. Reading the source, development, test, CI, staging,
34
+ review apps, education, personal projects, and open-source work are free
35
+ for everyone, at any organization size. Production use is also free if
36
+ you can answer yes to all three questions: *Do fewer than 10 people work
37
+ for your organization (counting all affiliates)? Was its revenue in the
38
+ last twelve months under US $1M? Has it raised under US $1M in outside
39
+ capital, ever?* Charities, educational institutions, and hospitals are
40
+ free at any size. If any answer is no and you are none of those,
41
+ production use requires a paid subscription, and one subscription covers
42
+ your whole organization: every application, environment, and developer.
43
+ See https://pro.reactonrails.com/. Every page rendered with Pro carries
44
+ one HTML comment naming the product and its license status; the license
45
+ key that comes with a subscription makes it read `Licensed`. Once a
46
+ version ships under these terms, those terms govern that version
47
+ permanently.
48
+
49
+ ## 1. Acceptance
50
+
51
+ By using the software, you agree to these terms. If you use the software
52
+ on behalf of an organization, you represent that you have authority to
53
+ bind that organization, and "you" includes it.
54
+
55
+ ## 2. Definitions
56
+
57
+ **"Software"** means React on Rails Pro: the `react_on_rails_pro` Ruby
58
+ gem, the `react-on-rails-pro` and `react-on-rails-pro-node-renderer` npm
59
+ packages, and any other component ShakaCode distributes under these
60
+ terms. The open-source React on Rails core that the software builds on is
61
+ licensed separately under the MIT License.
62
+
63
+ **"Control"** means ownership of more than 50% of the voting interests of
64
+ an entity, or the power to direct its management or policies, by contract
65
+ or otherwise.
66
+
67
+ **"Your organization"** means you together with every entity that Controls
68
+ you, that you Control, or that is under common Control with you. Teams,
69
+ departments, and other sub-units are not separate organizations.
70
+
71
+ **"Small Organization"** means an organization for which all of the
72
+ following are true, counted across the entire organization as defined
73
+ above:
74
+
75
+ a. fewer than 10 individuals perform paid work for it or on its products
76
+ and services, whether directly or through staffing, outsourcing, or
77
+ services arrangements, counted as full-time equivalents;
78
+ b. its total gross revenue, measured over the twelve months ending with
79
+ the most recently completed calendar quarter, was less than
80
+ US $1,000,000; and
81
+ c. it has received less than US $1,000,000 in aggregate outside capital
82
+ over its lifetime (equity, tokens, convertible instruments, venture or
83
+ investor debt, accelerator funding, and grants or donations, other than
84
+ academic research or charitable grants to accredited academic or
85
+ nonprofit institutions) from sources other than its own operating
86
+ revenue and its founders' personal funds. Ordinary-course bank and
87
+ trade credit do not count.
88
+
89
+ Government entities, other than public educational institutions, are not
90
+ Small Organizations.
91
+
92
+ **"Charity"** means an organization recognized as charitable or
93
+ public-benefit under the law of the jurisdiction where it is organized (for
94
+ example, a US 501(c)(3) organization or its equivalent elsewhere), no part
95
+ of whose net earnings benefits any private person.
96
+
97
+ **"Educational Institution"** means a school, college, university, or
98
+ other institution whose principal purpose is teaching or academic
99
+ research, whether public or private, including its libraries, research
100
+ institutes, and teaching hospitals.
101
+
102
+ **"Hospital"** means an institution licensed to provide inpatient
103
+ medical care to the public, whether public, non-profit, or private,
104
+ including its clinics and medical research units.
105
+
106
+ Charity, Educational Institution, and Hospital status belongs to the
107
+ qualifying entity and to affiliates that qualify on their own; it does
108
+ not extend to for-profit affiliates, spin-offs, or commercial ventures
109
+ that are not themselves one of these.
110
+
111
+ **"Production use"** means running the software to serve an application,
112
+ website, or service to its end users, whether those users are the public,
113
+ your customers, or your own staff. Development, test, continuous
114
+ integration, staging, preview, review-app, and other non-production
115
+ environments are not production use.
116
+
117
+ **"Generated Attribution"** means the HTML comment the software emits
118
+ once in each document it renders, in the form
119
+ `<!-- Powered by React on Rails Pro (c) ShakaCode | STATUS -->`, where
120
+ STATUS is generated by the software from the license status.
121
+
122
+ **"Subscription"** means an active paid React on Rails Pro subscription
123
+ purchased at https://pro.reactonrails.com/, through another order channel
124
+ ShakaCode designates (for example a designated GitHub Sponsors tier or an
125
+ invoice), or under a separate written agreement with ShakaCode.
126
+ Sponsorships and donations that ShakaCode has not designated as
127
+ subscriptions are appreciated but are not Subscriptions and grant no
128
+ production-use rights.
129
+
130
+ **"License key"** means the optional credential ShakaCode issues that
131
+ identifies your organization in the software's license-status logs and in
132
+ the Generated Attribution. A license key is identity, not enforcement.
133
+
134
+ ## 3. Copyright grant
135
+
136
+ ShakaCode grants you a non-exclusive, worldwide, royalty-free license to
137
+ use, copy, modify, and create derivative works of the software, and to
138
+ include it in the builds and deployments of your organization's own
139
+ applications, in each case only as allowed by these terms. You may share
140
+ copies with contractors and service providers working on those
141
+ applications, who must observe these terms. You may not distribute the
142
+ software or your modifications as a standalone product or library, or as
143
+ part of a product whose purpose is to provide the software's
144
+ functionality to others (see Section 7).
145
+
146
+ ## 4. Free uses
147
+
148
+ The following uses are free of charge for anyone, at any organization
149
+ size:
150
+
151
+ a. reading and studying the source code;
152
+ b. development, test, continuous integration, staging, preview,
153
+ review-app, and every other non-production environment, without time
154
+ limit;
155
+ c. evaluating the software in production for up to 45 days per
156
+ organization (not per version, person, or application), solely to
157
+ decide whether to adopt it;
158
+ d. education and training of people, tutorials, demonstrations, and
159
+ academic research, in each case not directed at developing or
160
+ operating your organization's own products or services;
161
+ e. personal and hobby projects;
162
+ f. developing and operating a public open-source project distributed
163
+ under a license approved by the Open Source Initiative, where the
164
+ software runs as part of that project's own publicly available code
165
+ and primarily for that project's benefit, and not for the development
166
+ or operation of a proprietary product or service.
167
+
168
+ In addition, **all production use is free of charge for a Small
169
+ Organization, a Charity, an Educational Institution, or a Hospital, at
170
+ any size for the last three.** If your organization is one of these,
171
+ nothing in Section 5 applies to you.
172
+
173
+ ## 5. Paid uses
174
+
175
+ Production use by an organization that is not a Small Organization, a
176
+ Charity, an Educational Institution, or a Hospital requires a
177
+ Subscription. This includes, without limitation, production use beyond
178
+ the Section 4(c) evaluation window, internal applications used only by
179
+ your staff, and applications you operate for your customers.
180
+
181
+ In any conflict between Section 4 and this Section 5, use described in
182
+ this Section 5 is production use and is not a free use under Section
183
+ 4(b), (c), or (d).
184
+
185
+ **Client work.** If you use the software to build or run an application
186
+ for a client, the use is attributed to the organization whose business
187
+ the application ultimately serves, traced through any intermediaries.
188
+ That organization's status determines whether the use is free or paid,
189
+ and any required Subscription must be held by, or purchased for the
190
+ benefit of and identifying, that organization. You may rely on a client's
191
+ written self-certification of its status. A consulting firm's or agency's
192
+ own applications are attributed to the firm or agency.
193
+
194
+ ## 6. Subscriptions
195
+
196
+ One Subscription covers your whole organization: every application,
197
+ environment, server, and developer of your organization, with no per-seat
198
+ or per-application charge. A Subscription is governed by the subscription
199
+ terms, order form, or other agreement under which it is purchased; if
200
+ that agreement conflicts with these terms, that agreement controls. While
201
+ a Subscription is active, ShakaCode provides software updates and
202
+ reasonable support through its published channels; no response or
203
+ resolution times are guaranteed unless an order or separate agreement
204
+ says so. If a required Subscription expires or is terminated, your
205
+ production use remains licensed for 30 days while you renew or wind down,
206
+ and the software keeps running either way. ShakaCode and you may enter a
207
+ separate written agreement that supplements or supersedes these terms.
208
+
209
+ ## 7. No hosted or embedded offering
210
+
211
+ You may not provide the software or its rendering functionality to third
212
+ parties as a hosted, managed, embedded, or bundled offering, for example
213
+ a platform that builds or runs other organizations' React on Rails
214
+ applications, without a separate written agreement with ShakaCode. Each
215
+ organization whose applications use the software must independently
216
+ qualify for free use or hold its own Subscription. Running your own
217
+ applications for your own users, customers, or staff is not an offering
218
+ to third parties.
219
+
220
+ ## 8. Attribution and license status
221
+
222
+ Every HTML document rendered with the software must retain exactly one
223
+ complete, unmodified Generated Attribution in its source. You may not
224
+ remove, alter, obscure, or suppress it, in free and paid use alike. With
225
+ a valid license key the status reads `Licensed`; without a key it reads
226
+ `UNLICENSED`; an expired or malformed key reads `LICENSE EXPIRED` or
227
+ `INVALID LICENSE`. An `UNLICENSED` status is not by itself a violation,
228
+ because free uses need no key. The software never blocks, degrades, or
229
+ reports your use based on license status; it only labels and logs it.
230
+ Keep your license key private: it identifies your organization. A related
231
+ component that does not itself generate or insert the Generated
232
+ Attribution, such as `react-on-rails-rsc`, has no obligation to insert a
233
+ second one.
234
+
235
+ ## 9. Trust, self-certification, and true-up
236
+
237
+ These terms are enforced by trust, not technology: the software contains
238
+ no activation, no usage telemetry, and no runtime lockout, and a license
239
+ key only changes what the status says. You are responsible for
240
+ determining in good faith whether your use is free or paid. ShakaCode
241
+ encourages every organization, free and paid alike, to register at
242
+ https://pro.reactonrails.com/ (free of charge). Registration is optional
243
+ and is never a condition of any free use.
244
+
245
+ If your organization stops qualifying as a Small Organization, your
246
+ production use remains licensed for 60 days after the change; after that,
247
+ continued production use requires a Subscription. No payment is owed for
248
+ use during that window, and the obligation is not avoided by
249
+ re-qualification within 12 months of the change.
250
+
251
+ If you discover in good faith that past use required a Subscription,
252
+ purchasing the applicable Subscription within 60 days of discovery is
253
+ full compliance, and no back payment is owed for the good-faith period.
254
+ If your organization made production use requiring a Subscription
255
+ without a good-faith basis for treating it as free, ShakaCode may require
256
+ payment of the applicable subscription fees for the period of that use,
257
+ up to 24 months.
258
+
259
+ You must not misrepresent your organization, its size or status, or your
260
+ license status, whether in a registration, in the software's
261
+ configuration, or in the Generated Attribution.
262
+
263
+ ## 10. Redistribution and notices
264
+
265
+ Copies of the software and derivative works that these terms allow you to
266
+ make must remain under these same terms and must retain these terms, all
267
+ copyright and attribution notices, and the SPDX identifier.
268
+
269
+ ## 11. Patents
270
+
271
+ ShakaCode grants you a license under any patent claims it can license that
272
+ are necessarily infringed by the software, only for uses allowed by these
273
+ terms. This patent license ends immediately if you or your organization
274
+ initiate a patent claim (excluding counterclaims and cross-claims filed in
275
+ response to a patent claim first brought against you) alleging that the
276
+ software infringes a patent.
277
+
278
+ ## 12. Trademarks
279
+
280
+ These terms grant no rights in the names, logos, or trademarks of
281
+ ShakaCode, React on Rails, or React on Rails Pro, except for the
282
+ attribution required by these terms and truthful factual references.
283
+
284
+ ## 13. Per-version terms, breach, and cure
285
+
286
+ These terms apply per version: the terms delivered with a version of the
287
+ software govern that version permanently, and patch and security releases
288
+ of a version line remain under that line's terms. Later versions may be
289
+ offered under different terms.
290
+
291
+ If you breach these terms, your license ends automatically 30 days after
292
+ ShakaCode provides written notice of the breach, unless you cure it within
293
+ that period; upon cure, your license is reinstated retroactively. Curing
294
+ continued production use during a lapsed Subscription includes payment of
295
+ the applicable fees for the lapsed period.
296
+
297
+ ## 14. Feedback
298
+
299
+ If you submit feedback, suggestions, or improvements to ShakaCode, you
300
+ grant ShakaCode a worldwide, royalty-free, irrevocable license to use and
301
+ incorporate them.
302
+
303
+ ## 15. Disclaimer and limitation of liability
16
304
 
17
- _Version 2.3 — 2026-07-14_\
18
- © 2015–2026 ShakaCode, LLC. All rights reserved.
19
-
20
- ---
21
-
22
- ## 1. Definitions
23
-
24
- - **Organization** – the single legal entity identified in the order (e.g., GitHub Sponsors, invoice).
25
- - **Licensee** – the Organization or any other person or entity exercising royalty-free rights under Section 4.
26
- - **Production Use** – any use of the Software in connection with a live application, website, or service accessed by end users **other than**:
27
- - evaluation or testing
28
- - classroom instruction, tutorials, workshops, coursework
29
- - recorded demos, livestreams, or videos
30
- - personal/hobby experiments not offered as a service
31
- - **Complimentary OSS License** – a license issued under Section 4.1 at no charge to a qualifying open-source Organization.
32
- - **Covered HTML Document** – an HTML document containing output rendered by the integrated React on Rails Pro product.
33
- - **Attribution Provider** – the part of the integrated React on Rails Pro product that generates and inserts the Generated Attribution on behalf of the product as a whole.
34
- - **Generated Attribution** – the complete, non-visual HTML comment emitted by the Attribution Provider, including its license-status suffix.
35
-
36
- ---
37
-
38
- ## 2. Grant of License (Per-Organization)
39
-
40
- Subject to this Agreement, ShakaCode grants the subscribing Organization a **non-exclusive, non-transferable** license, during the applicable license term, to install, internally modify, and use React on Rails Pro (“Software”) in the Organization’s own applications, websites, and services, whether accessed internally or by public end users.
41
-
42
- This grant does not permit redistribution or sublicensing of the Software, offering the Software itself to third parties, or using one Organization’s license for another Organization or consulting client.
43
-
44
- ---
45
-
46
- ## 3. Consulting Firms and Individual Consultants
47
-
48
- - **Consulting Firms** – this license covers only the firm’s own applications, websites, and services, whether accessed internally or by public end users. Each client Organization requires its own license for any Production Use.
49
- - **Individual Consultants** – this license covers only the consultant’s own applications, websites, and services personally operated by them, not client Organizations. Each client Organization must obtain its own license.
50
-
51
- ---
52
-
53
- ## 4. Non-Commercial / Educational / Demo Use (Free)
54
-
55
- Free, royalty-free use is permitted for:
56
-
57
- - classroom instruction, training, workshops, coursework;
58
- - tutorials, blog posts, livestreams, or videos;
59
- - personal/hobby projects not used in production;
60
- - demo apps showcasing coding techniques.
61
-
62
- **Note:** This clause does **not** permit any Production Use by any entity (commercial, non-profit, or individual). All Production Use requires a paid subscription under this Agreement, except as provided in Section 4.1.
63
-
64
- **4.1 Open-Source Project License (Complimentary)**
65
-
66
- ShakaCode may, at its sole discretion, issue a complimentary "oss" license to an Organization that meets **all** of the following criteria:
67
-
68
- 1. The Organization deploys the Software as part of a project whose source code is publicly available under an [OSI-approved license](https://opensource.org/licenses).
69
- 2. The Organization's annual revenue (or total funding received, if pre-revenue) does not exceed USD $1,000,000.
70
- 3. The Organization applies by emailing [justin@shakacode.com](mailto:justin@shakacode.com) and provides truthful information about the project and Organization.
71
-
72
- **Terms of Complimentary OSS Licenses:**
73
-
74
- - The attribution requirement in Section 6 applies and may not be waived.
75
- - Complimentary OSS Licenses are granted for a fixed term of one (1) year from the date of issuance and may be renewed upon request.
76
- - ShakaCode may revoke a Complimentary OSS License (i) immediately upon written notice if the Organization violates this Agreement, or (ii) on thirty (30) days' written notice if the Organization no longer meets the eligibility criteria.
77
- - All other terms of this Agreement apply (including Sections 5, 7, 9, and 12), subject to the modifications for Complimentary OSS Licenses in Section 7.
78
-
79
- ---
80
-
81
- ## 5. Restrictions
82
-
83
- The Organization shall not:
84
-
85
- 1. redistribute or resell the Software or derivatives;
86
- 2. remove, obfuscate, or disable required attribution;
87
- 3. use the Software to build a directly competing product exposing substantially similar functionality;
88
- 4. **circumvent, bypass, modify, disable, or tamper with any license validation mechanisms, license checks, or authentication systems;**
89
- 5. **reverse engineer, decompile, or disassemble the Software for the purpose of circumventing license restrictions;**
90
- 6. **create, use, or distribute any tools, scripts, patches, or modifications designed to enable unauthorized use of Pro features;**
91
- 7. **access or use the Software outside the rights granted by this Agreement, including any Production Use without a valid, active paid or Complimentary OSS License.**
92
-
93
- ---
94
-
95
- ## 6. Product-Level Attribution (HTML Source)
96
-
97
- Every Covered HTML Document must retain exactly one complete, unmodified Generated Attribution in its HTML source. The Attribution Provider emits this comment once on behalf of the integrated React on Rails Pro product. A related component, including `react-on-rails-rsc`, has no independent obligation to insert another attribution comment when it does not control the HTML document or generate or insert the Generated Attribution.
98
-
99
- This requirement applies to paid Production Use, Production Use under a Complimentary OSS License, and every royalty-free use permitted by Section 4.
100
-
101
- The Generated Attribution uses the following form, where the status suffix is generated by the Software:
102
-
103
- ```html
104
- <!-- Powered by React on Rails Pro (c) ShakaCode | STATUS -->
305
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
306
+ IMPLIED, INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
307
+ PURPOSE, TITLE, AND NON-INFRINGEMENT. TO THE MAXIMUM EXTENT PERMITTED BY
308
+ LAW, SHAKACODE WILL NOT BE LIABLE FOR ANY INDIRECT, SPECIAL, INCIDENTAL,
309
+ OR CONSEQUENTIAL DAMAGES ARISING FROM OR RELATED TO THE SOFTWARE OR THESE
310
+ TERMS, AND SHAKACODE'S TOTAL LIABILITY WILL NOT EXCEED THE AMOUNTS YOU
311
+ PAID SHAKACODE FOR THE SOFTWARE IN THE TWELVE MONTHS BEFORE THE CLAIM
312
+ AROSE.
313
+
314
+ ## 16. Assignment, governing law, and miscellaneous
315
+
316
+ You may assign these terms, together with any active Subscription, to a
317
+ successor in connection with a merger, acquisition, or sale of
318
+ substantially all assets, upon notice to ShakaCode; these terms are
319
+ otherwise non-transferable. These terms are governed by the laws of the
320
+ State of Hawaii, USA, excluding its conflict-of-law rules, with exclusive
321
+ jurisdiction and venue in the state and federal courts located in
322
+ Honolulu, Hawaii. If a provision of these terms is unenforceable, the
323
+ remainder stays in effect. These terms, together with any subscription
324
+ agreement or order, are the entire agreement about the software; if they
325
+ conflict, the order controls.
326
+
327
+ ## 17. Questions and commercial licensing
328
+
329
+ contact@shakacode.com · https://pro.reactonrails.com/ ·
330
+ https://github.com/shakacode/commercial-licensing
331
+
332
+ ## Machine-readable summary (informative)
333
+
334
+ ```yaml
335
+ license_name: The React on Rails Pro License 3.0
336
+ spdx_identifier: LicenseRef-ReactOnRailsPro
337
+ type: trust-based commercial
338
+ free_production_use_if_all:
339
+ max_org_headcount_fte: 10 # exclusive; whole control group
340
+ max_ttm_revenue_usd: 1000000 # exclusive; trailing 12 months
341
+ max_lifetime_outside_capital_usd: 1000000 # exclusive
342
+ free_production_use_if_any:
343
+ - charity # recognized charitable / public-benefit org, any size
344
+ - educational_institution # school, college, university, any size
345
+ - hospital # licensed inpatient care provider, any size
346
+ always_free: [read, study, development, test, ci, staging, preview, review_apps, evaluate_in_production_45_days, education, personal, oss_projects]
347
+ paid: production use by any other organization; one subscription per organization, unlimited applications and developers
348
+ license_key: optional # identity only; sets the attribution status; never required for free use
349
+ runtime_enforcement: none # no activation, no telemetry, no lockout; status is logged and labeled
350
+ attribution_required: true # one HTML comment per rendered document
351
+ subscription_lapse_grace_days: 30
352
+ outgrow_free_line_grace_days: 60
353
+ per_version_terms: true
354
+ pricing_url: https://pro.reactonrails.com/
355
+ register_url: https://pro.reactonrails.com/
356
+ contact: contact@shakacode.com
105
357
  ```
106
358
 
107
- For a valid license credential, the status suffix is `Licensed` and does not identify the Organization. Expired, invalid, and missing license credentials use `LICENSE EXPIRED`, `INVALID LICENSE`, and `UNLICENSED`, respectively. `UNLICENSED` indicates that no license credential was present; that status alone does not establish a violation because the use may be permitted by Section 4.
108
-
109
- The Licensee may not remove, modify, obfuscate, or disable the Generated Attribution.
110
-
111
- ---
112
-
113
- ## 7. Fees; Term; Termination
114
-
115
- Paid subscriptions may be purchased or renewed at [pro.reactonrails.com](https://pro.reactonrails.com/) or through another ShakaCode-approved order channel.
116
-
117
- Fees and billing terms are as agreed in the applicable order (e.g., GitHub Sponsors subscription or annual invoice).\
118
- For paid subscriptions, the license remains active only while fees are paid. ShakaCode may suspend or terminate for non-payment or material breach. Complimentary OSS Licenses remain active for the term specified in the grant, subject to the revocation terms in Section 4.1.\
119
- Upon termination, lapse, or revocation, the Organization must immediately cease use and remove the Software (including derivatives) from all Production systems and repositories, except for (a) non-commercial uses explicitly permitted in Section 4, or (b) Complimentary OSS Licenses revoked under Section 4.1(ii) for eligibility changes, in which case the Organization has thirty (30) days from written notice to comply.
120
-
121
- ---
122
-
123
- ## 8. Updates & Support
124
-
125
- While subscribed, the Organization receives software updates and reasonable support (email or issue tracker, business hours). No specific response or resolution times are guaranteed unless set out in an order or separate SLA.
126
-
127
- ---
128
-
129
- ## 9. Verification / Audit
130
-
131
- If ShakaCode reasonably suspects non-compliance, the Organization will cooperate in good faith to verify compliance, including enabling inspection for attribution presence and providing a usage statement. ShakaCode will use commercially reasonable efforts to minimize disruption.
132
-
133
- **9.1 Detailed Audits**\
134
- ShakaCode or a certified auditor acting on its behalf may, upon reasonable request and at ShakaCode’s expense, audit the Organization’s use of the Software to verify compliance with this Agreement. Audits may be conducted by mail, electronically, or by in-person visits during regular business hours and shall minimize disruption to the Organization’s business. If the audit reveals a material unauthorized use, the Organization shall reimburse ShakaCode for reasonable audit costs.
135
-
136
- ---
137
-
138
- ## 10. Feedback & Contributions
139
-
140
- By submitting feedback or improvements, the Organization grants ShakaCode a worldwide, royalty-free, irrevocable license to use and incorporate them.
141
-
142
- ---
143
-
144
- ## 11. Intellectual Property
145
-
146
- The Software is **licensed, not sold**. ShakaCode retains all rights, title, and interest, including all intellectual property rights.
147
-
148
- ---
149
-
150
- ## 12. Confidentiality
151
-
152
- License keys and any non-public materials are ShakaCode confidential information. The Organization will protect them with at least reasonable care.
153
-
154
- ---
155
-
156
- ## 13. Warranty Disclaimer
157
-
158
- > EXCEPT AS EXPRESSLY PROVIDED IN §8, THE SOFTWARE IS PROVIDED “AS IS,” WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED.
159
-
160
- ---
161
-
162
- ## 14. Limitation of Liability
163
-
164
- To the maximum extent permitted by law, ShakaCode is not liable for indirect, incidental, special, consequential, or punitive damages.\
165
- Direct damages are limited to amounts paid in the 12 months preceding the claim.
166
-
167
- ---
168
-
169
- ## 15. Indemnification
170
-
171
- The Organization agrees to defend, indemnify, and hold harmless ShakaCode and its affiliates from any claims, losses, damages, liabilities, costs, or expenses (including legal fees) arising out of the Organization’s use of the Software or breach of this Agreement.
172
-
173
- ---
174
-
175
- ## 16. Export Compliance
176
-
177
- The Organization agrees to comply with all applicable export laws and regulations, including restrictions on export, re-export, or redistribution of the Software.
178
-
179
- ---
180
-
181
- ## 17. Attorneys’ Fees and Costs
182
-
183
- In any enforcement or legal action arising under this Agreement, the prevailing party shall be entitled to recover reasonable attorneys’ fees and costs.
184
-
185
- ---
186
-
187
- ## 18. Governing Law; Venue
188
-
189
- This Agreement is governed by the laws of the **State of Hawaii**, USA. Exclusive jurisdiction and venue lie in the courts located therein.
190
-
191
- ---
192
-
193
- ## 19. Miscellaneous
194
-
195
- - **19.1 Severability**\
196
- If any provision is held invalid or unenforceable, the remainder shall continue in full force.
197
-
198
- - **19.2 Waiver**\
199
- Failure to enforce any provision is not a waiver of rights.
200
-
201
- - **19.3 Assignment**\
202
- The Organization may not assign this Agreement without prior written consent.
203
-
204
- ---
205
-
206
- ## 20. Entire Agreement; Order of Precedence
359
+ ## Version history (informative)
207
360
 
208
- This EULA and any order (pricing/term) are the entire agreement. If there is a conflict, the order controls.
361
+ Version 3.0 replaces the React on Rails Pro End User License Agreement,
362
+ version 2.3 (2026-07-14), for releases shipped under these terms. Releases
363
+ shipped under earlier terms remain under those terms.
209
364
 
210
365
  ## Third-Party Notices
211
366
 
package/README.md CHANGED
@@ -27,6 +27,16 @@ documentation boundary and links to package-maintainer runbooks.
27
27
 
28
28
  ## Package Contents
29
29
 
30
+ When enabling `cssWrapper` on `RSCWebpackPlugin` or `RSCRspackPlugin`, maintainers
31
+ can set `parserPlugins` to the same extra `@babel/parser` plugins used by the RSC
32
+ loader's export scan. For example, use
33
+ `parserPlugins: [['pipelineOperator', { proposal: 'hack', topicToken: '#' }]]`
34
+ for pipeline syntax. Plugin names and exact `[name, options]` tuples are accepted;
35
+ omitting the option preserves the default parser configuration. This option only
36
+ controls parsing of raw client modules, including star re-export targets; the
37
+ application still needs its own Babel/SWC transform to compile proposal syntax.
38
+ Configure the loader and plugin consistently so their export scans agree.
39
+
30
40
  This package provides internal tooling for React Server Components integration:
31
41
  - Webpack plugin for manifesting client components
32
42
  - Webpack loader for bundling server components
@@ -39,12 +49,16 @@ Maintainer policy lives in [`internal/docs/versioning.md`](internal/docs/version
39
49
 
40
50
  ## License
41
51
 
42
- Starting with version `19.2.1`, this package is offered as a related software
43
- component of React on Rails Pro under commercial terms. Production Use requires
44
- an appropriate paid subscription or Complimentary OSS License; the license also
45
- permits the free non-commercial, educational, and demo uses it defines. See
52
+ Starting with version `19.2.1`, this package is offered as a commercially
53
+ licensed related software component of React on Rails Pro. Releases that
54
+ include The React on Rails Pro License, version 3.0, follow these terms: free
55
+ in development, test, CI, and staging for everyone, free in production for
56
+ small organizations, charities, educational institutions, and hospitals,
57
+ and a subscription for other production use ($1,800 per year per organization,
58
+ see https://reactonrails.com/pricing/). No license key is needed to run it. See
46
59
  [LICENSE.md](LICENSE.md) for the exact terms and the Meta notice that applies to
47
- the derived Webpack plugin portions.
60
+ the derived Webpack plugin portions. Earlier releases retain the terms included
61
+ in their packages.
48
62
 
49
63
  ## Releasing
50
64