react-on-rails-pro-node-renderer 17.0.0-rc.10 → 17.0.0-rc.11
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.
- package/LICENSE.md +194 -0
- package/lib/master.js +13 -4
- package/lib/shared/rscPeerSupport.d.ts +1 -1
- package/lib/shared/rscPeerSupport.js +4 -4
- package/package.json +5 -4
package/LICENSE.md
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
# ShakaCode React on Rails Pro – End User License Agreement (EULA)
|
|
2
|
+
|
|
3
|
+
_Version 2.3 — 2026-07-14_\
|
|
4
|
+
© 2015–2026 ShakaCode, LLC. All rights reserved.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. Definitions
|
|
9
|
+
|
|
10
|
+
- **Organization** – the single legal entity identified in the order (e.g., GitHub Sponsors, invoice).
|
|
11
|
+
- **Licensee** – the Organization or any other person or entity exercising royalty-free rights under Section 4.
|
|
12
|
+
- **Production Use** – any use of the Software in connection with a live application, website, or service accessed by end users **other than**:
|
|
13
|
+
- evaluation or testing
|
|
14
|
+
- classroom instruction, tutorials, workshops, coursework
|
|
15
|
+
- recorded demos, livestreams, or videos
|
|
16
|
+
- personal/hobby experiments not offered as a service
|
|
17
|
+
- **Complimentary OSS License** – a license issued under Section 4.1 at no charge to a qualifying open-source Organization.
|
|
18
|
+
- **Covered HTML Document** – an HTML document containing output rendered by the integrated React on Rails Pro product.
|
|
19
|
+
- **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.
|
|
20
|
+
- **Generated Attribution** – the complete, non-visual HTML comment emitted by the Attribution Provider, including its license-status suffix.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 2. Grant of License (Per-Organization)
|
|
25
|
+
|
|
26
|
+
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.
|
|
27
|
+
|
|
28
|
+
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.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 3. Consulting Firms and Individual Consultants
|
|
33
|
+
|
|
34
|
+
- **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.
|
|
35
|
+
- **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.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 4. Non-Commercial / Educational / Demo Use (Free)
|
|
40
|
+
|
|
41
|
+
Free, royalty-free use is permitted for:
|
|
42
|
+
|
|
43
|
+
- classroom instruction, training, workshops, coursework;
|
|
44
|
+
- tutorials, blog posts, livestreams, or videos;
|
|
45
|
+
- personal/hobby projects not used in production;
|
|
46
|
+
- demo apps showcasing coding techniques.
|
|
47
|
+
|
|
48
|
+
**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.
|
|
49
|
+
|
|
50
|
+
**4.1 Open-Source Project License (Complimentary)**
|
|
51
|
+
|
|
52
|
+
ShakaCode may, at its sole discretion, issue a complimentary "oss" license to an Organization that meets **all** of the following criteria:
|
|
53
|
+
|
|
54
|
+
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).
|
|
55
|
+
2. The Organization's annual revenue (or total funding received, if pre-revenue) does not exceed USD $1,000,000.
|
|
56
|
+
3. The Organization applies by emailing [justin@shakacode.com](mailto:justin@shakacode.com) and provides truthful information about the project and Organization.
|
|
57
|
+
|
|
58
|
+
**Terms of Complimentary OSS Licenses:**
|
|
59
|
+
|
|
60
|
+
- The attribution requirement in Section 6 applies and may not be waived.
|
|
61
|
+
- Complimentary OSS Licenses are granted for a fixed term of one (1) year from the date of issuance and may be renewed upon request.
|
|
62
|
+
- 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.
|
|
63
|
+
- 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.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## 5. Restrictions
|
|
68
|
+
|
|
69
|
+
The Organization shall not:
|
|
70
|
+
|
|
71
|
+
1. redistribute or resell the Software or derivatives;
|
|
72
|
+
2. remove, obfuscate, or disable required attribution;
|
|
73
|
+
3. use the Software to build a directly competing product exposing substantially similar functionality;
|
|
74
|
+
4. **circumvent, bypass, modify, disable, or tamper with any license validation mechanisms, license checks, or authentication systems;**
|
|
75
|
+
5. **reverse engineer, decompile, or disassemble the Software for the purpose of circumventing license restrictions;**
|
|
76
|
+
6. **create, use, or distribute any tools, scripts, patches, or modifications designed to enable unauthorized use of Pro features;**
|
|
77
|
+
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.**
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 6. Product-Level Attribution (HTML Source)
|
|
82
|
+
|
|
83
|
+
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.
|
|
84
|
+
|
|
85
|
+
This requirement applies to paid Production Use, Production Use under a Complimentary OSS License, and every royalty-free use permitted by Section 4.
|
|
86
|
+
|
|
87
|
+
The Generated Attribution uses the following form, where the status suffix is generated by the Software:
|
|
88
|
+
|
|
89
|
+
```html
|
|
90
|
+
<!-- Powered by React on Rails Pro (c) ShakaCode | STATUS -->
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
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.
|
|
94
|
+
|
|
95
|
+
The Licensee may not remove, modify, obfuscate, or disable the Generated Attribution.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 7. Fees; Term; Termination
|
|
100
|
+
|
|
101
|
+
Paid subscriptions may be purchased or renewed at [pro.reactonrails.com](https://pro.reactonrails.com/) or through another ShakaCode-approved order channel.
|
|
102
|
+
|
|
103
|
+
Fees and billing terms are as agreed in the applicable order (e.g., GitHub Sponsors subscription or annual invoice).\
|
|
104
|
+
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.\
|
|
105
|
+
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.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 8. Updates & Support
|
|
110
|
+
|
|
111
|
+
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.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 9. Verification / Audit
|
|
116
|
+
|
|
117
|
+
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.
|
|
118
|
+
|
|
119
|
+
**9.1 Detailed Audits**\
|
|
120
|
+
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.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## 10. Feedback & Contributions
|
|
125
|
+
|
|
126
|
+
By submitting feedback or improvements, the Organization grants ShakaCode a worldwide, royalty-free, irrevocable license to use and incorporate them.
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 11. Intellectual Property
|
|
131
|
+
|
|
132
|
+
The Software is **licensed, not sold**. ShakaCode retains all rights, title, and interest, including all intellectual property rights.
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## 12. Confidentiality
|
|
137
|
+
|
|
138
|
+
License keys and any non-public materials are ShakaCode confidential information. The Organization will protect them with at least reasonable care.
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## 13. Warranty Disclaimer
|
|
143
|
+
|
|
144
|
+
> EXCEPT AS EXPRESSLY PROVIDED IN §8, THE SOFTWARE IS PROVIDED “AS IS,” WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## 14. Limitation of Liability
|
|
149
|
+
|
|
150
|
+
To the maximum extent permitted by law, ShakaCode is not liable for indirect, incidental, special, consequential, or punitive damages.\
|
|
151
|
+
Direct damages are limited to amounts paid in the 12 months preceding the claim.
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## 15. Indemnification
|
|
156
|
+
|
|
157
|
+
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.
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## 16. Export Compliance
|
|
162
|
+
|
|
163
|
+
The Organization agrees to comply with all applicable export laws and regulations, including restrictions on export, re-export, or redistribution of the Software.
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## 17. Attorneys’ Fees and Costs
|
|
168
|
+
|
|
169
|
+
In any enforcement or legal action arising under this Agreement, the prevailing party shall be entitled to recover reasonable attorneys’ fees and costs.
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## 18. Governing Law; Venue
|
|
174
|
+
|
|
175
|
+
This Agreement is governed by the laws of the **State of Hawaii**, USA. Exclusive jurisdiction and venue lie in the courts located therein.
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## 19. Miscellaneous
|
|
180
|
+
|
|
181
|
+
- **19.1 Severability**\
|
|
182
|
+
If any provision is held invalid or unenforceable, the remainder shall continue in full force.
|
|
183
|
+
|
|
184
|
+
- **19.2 Waiver**\
|
|
185
|
+
Failure to enforce any provision is not a waiver of rights.
|
|
186
|
+
|
|
187
|
+
- **19.3 Assignment**\
|
|
188
|
+
The Organization may not assign this Agreement without prior written consent.
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## 20. Entire Agreement; Order of Precedence
|
|
193
|
+
|
|
194
|
+
This EULA and any order (pricing/term) are the entire agreement. If there is a conflict, the order controls.
|
package/lib/master.js
CHANGED
|
@@ -104,18 +104,27 @@ function masterRun(runningConfig) {
|
|
|
104
104
|
// with Ruby's Rails.env.production? check
|
|
105
105
|
const status = (0, licenseValidator_js_1.getLicenseStatus)();
|
|
106
106
|
const isProduction = process.env.NODE_ENV === 'production' || process.env.RAILS_ENV === 'production';
|
|
107
|
-
const logLicenseIssue =
|
|
107
|
+
const logLicenseIssue = (summary, productionAction) => {
|
|
108
|
+
if (isProduction) {
|
|
109
|
+
log_js_1.default.warn(`[React on Rails Pro] ${summary}. ` +
|
|
110
|
+
'Production Use of React on Rails Pro requires an appropriate license. ' +
|
|
111
|
+
`If this deployment is Production Use, ${productionAction}`);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
log_js_1.default.info(`[React on Rails Pro] ${summary}. No license required for development/test environments.`);
|
|
115
|
+
}
|
|
116
|
+
};
|
|
108
117
|
if (status === 'valid') {
|
|
109
118
|
log_js_1.default.info('[React on Rails Pro] License validated successfully.');
|
|
110
119
|
}
|
|
111
120
|
else if (status === 'missing') {
|
|
112
|
-
logLicenseIssue('
|
|
121
|
+
logLicenseIssue('No license found', 'get a license at https://pro.reactonrails.com/');
|
|
113
122
|
}
|
|
114
123
|
else if (status === 'expired') {
|
|
115
|
-
logLicenseIssue('
|
|
124
|
+
logLicenseIssue('License has expired', 'renew your license at https://pro.reactonrails.com/');
|
|
116
125
|
}
|
|
117
126
|
else {
|
|
118
|
-
logLicenseIssue('
|
|
127
|
+
logLicenseIssue('Invalid license', 'get a license at https://pro.reactonrails.com/');
|
|
119
128
|
}
|
|
120
129
|
// Store config in app state. From now it can be loaded by any module using getConfig():
|
|
121
130
|
const config = (0, configBuilder_js_1.buildConfig)(runningConfig);
|
|
@@ -22,11 +22,11 @@ exports.RSC_PEER_SUPPORT = void 0;
|
|
|
22
22
|
// Ruby Doctor/generator constants that install and diagnose the same Pro RSC
|
|
23
23
|
// package line. The 19.2.1 line pairs with React/React DOM 19.2.7 and carries
|
|
24
24
|
// the coordinated RSC fixes required by the Pro RSC renderer path.
|
|
25
|
-
// `minimumPrereleaseVersion`
|
|
26
|
-
//
|
|
27
|
-
// tuple.
|
|
25
|
+
// Stable releases leave `minimumPrereleaseVersion` undefined so prereleases do
|
|
26
|
+
// not satisfy the package floor. A future prerelease soak may set a matching
|
|
27
|
+
// tuple temporarily.
|
|
28
28
|
exports.RSC_PEER_SUPPORT = {
|
|
29
|
-
reactOnRailsRsc: { minimumVersion: '19.2.1', minimumPrereleaseVersion:
|
|
29
|
+
reactOnRailsRsc: { minimumVersion: '19.2.1', minimumPrereleaseVersion: undefined, supportedMajor: 19 },
|
|
30
30
|
react: {
|
|
31
31
|
supportedMajor: 19,
|
|
32
32
|
supportedRanges: [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-on-rails-pro-node-renderer",
|
|
3
|
-
"version": "17.0.0-rc.
|
|
3
|
+
"version": "17.0.0-rc.11",
|
|
4
4
|
"protocolVersion": "2.0.0",
|
|
5
5
|
"description": "React on Rails Pro Node Renderer for server-side rendering",
|
|
6
6
|
"engines": {
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"./package.json": "./package.json"
|
|
31
31
|
},
|
|
32
32
|
"files": [
|
|
33
|
+
"LICENSE.md",
|
|
33
34
|
"README.md",
|
|
34
35
|
"lib/**/*.js",
|
|
35
36
|
"lib/**/*.d.ts"
|
|
@@ -71,12 +72,12 @@
|
|
|
71
72
|
"pino-pretty": "^13.0.0",
|
|
72
73
|
"react": "~19.2.7",
|
|
73
74
|
"react-dom": "~19.2.7",
|
|
74
|
-
"react-on-rails-rsc": "19.2.1
|
|
75
|
+
"react-on-rails-rsc": "19.2.1",
|
|
75
76
|
"redis": "^5.0.1",
|
|
76
77
|
"sentry-testkit": "^5.0.6",
|
|
77
78
|
"touch": "^3.1.0",
|
|
78
79
|
"typescript": "^5.4.3",
|
|
79
|
-
"react-on-rails": "17.0.0-rc.
|
|
80
|
+
"react-on-rails": "17.0.0-rc.11"
|
|
80
81
|
},
|
|
81
82
|
"peerDependencies": {
|
|
82
83
|
"@honeybadger-io/js": ">=4.0.0",
|
|
@@ -144,7 +145,7 @@
|
|
|
144
145
|
"Rails"
|
|
145
146
|
],
|
|
146
147
|
"author": "justin@shakacode.com",
|
|
147
|
-
"license": "
|
|
148
|
+
"license": "SEE LICENSE IN LICENSE.md",
|
|
148
149
|
"bugs": {
|
|
149
150
|
"url": "https://github.com/shakacode/react_on_rails/issues"
|
|
150
151
|
},
|