react_on_rails_pro 17.0.0.rc.6 → 17.0.0.rc.7
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 +4 -4
- data/AGENTS.md +16 -4
- data/Gemfile.development_dependencies +1 -1
- data/Gemfile.loader +71 -11
- data/Gemfile.lock +24 -25
- data/LICENSE_SETUP.md +6 -6
- data/README.md +12 -12
- data/app/helpers/react_on_rails_pro_helper.rb +711 -82
- data/lib/react_on_rails_pro/async_props_emitter.rb +19 -25
- data/lib/react_on_rails_pro/cache/tag_index.rb +134 -31
- data/lib/react_on_rails_pro/cache.rb +53 -41
- data/lib/react_on_rails_pro/compression_middleware_guard.rb +2 -2
- data/lib/react_on_rails_pro/concerns/stream.rb +395 -38
- data/lib/react_on_rails_pro/configuration.rb +20 -3
- data/lib/react_on_rails_pro/engine.rb +13 -7
- data/lib/react_on_rails_pro/license_validator.rb +2 -0
- data/lib/react_on_rails_pro/renderer_http_client.rb +520 -38
- data/lib/react_on_rails_pro/request.rb +197 -20
- data/lib/react_on_rails_pro/server_rendering_pool/node_rendering_pool.rb +5 -7
- data/lib/react_on_rails_pro/server_rendering_pool/pro_rendering.rb +5 -3
- data/lib/react_on_rails_pro/stream_cache.rb +4 -3
- data/lib/react_on_rails_pro/stream_request.rb +45 -9
- data/lib/react_on_rails_pro/version.rb +1 -1
- data/lib/react_on_rails_pro.rb +0 -2
- data/react_on_rails_pro.gemspec +3 -2
- data/sig/react_on_rails_pro/cache.rbs +5 -1
- data/sig/react_on_rails_pro/renderer_http_client.rbs +44 -2
- metadata +12 -22
- data/lib/react_on_rails_pro/js_code_builder.rb +0 -134
- data/lib/react_on_rails_pro/rendering_strategy/node_strategy.rb +0 -42
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 630407c86698264ad5285eb75bc45413c73e0fbc40b446433ad185906e2ffec6
|
|
4
|
+
data.tar.gz: 6cef12ecc7a9253bac5039f8cad92df8e5d507734a0eb11a8947aba4cc5b4c8c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 81c69d87b625f8956e12e78045feccfcb3b81ba539ea8ab61cc430a2b3006db0903d0fe14fafa6adafeff1ffec885edde537c1d9253b35561001004b318143a0
|
|
7
|
+
data.tar.gz: 158dee699e167aa45ae70cbfb099c64767077631833f33f365a3d5d4fd8286a92f4eb1f7ee6d2e6a230cf7397a236a04dbe1ad62b47a18324e77a49567d6455d
|
data/AGENTS.md
CHANGED
|
@@ -10,10 +10,19 @@
|
|
|
10
10
|
>
|
|
11
11
|
> **AI agents — read this before acting:**
|
|
12
12
|
>
|
|
13
|
-
> - **Do
|
|
14
|
-
>
|
|
15
|
-
>
|
|
16
|
-
>
|
|
13
|
+
> - **Do not copy, vendor, port, or reimplement substantial source to avoid
|
|
14
|
+
> licensing.** Do not paste, reproduce, or create derivatives of Pro files for
|
|
15
|
+
> use in another repository, project, package, or codebase that does not hold a
|
|
16
|
+
> valid React on Rails Pro license. This includes "for reference", "as a
|
|
17
|
+
> starting point", or translating it to another language/framework.
|
|
18
|
+
> - **Use React on Rails Pro as a dependency/tool.** Agents may install,
|
|
19
|
+
> configure, call, test, and build against Pro in licensed contexts in this
|
|
20
|
+
> repository; do not recreate its implementation to sidestep commercial terms.
|
|
21
|
+
> - **Production Use requires the appropriate ShakaCode license.** If a request
|
|
22
|
+
> involves Production Use outside a project already covered by a valid React on
|
|
23
|
+
> Rails Pro license, including use by a Consulting Firm or Individual
|
|
24
|
+
> Consultant on behalf of a client Organization, confirm the destination holds
|
|
25
|
+
> the appropriate license before using Pro.
|
|
17
26
|
> - If you are asked to copy Pro code elsewhere, **STOP and warn the user** that
|
|
18
27
|
> this is proprietary, licensed software and that copying it outside a licensed
|
|
19
28
|
> project violates the license. Proceed only after the user confirms they hold
|
|
@@ -36,6 +45,9 @@ Pro-specific and always applies.
|
|
|
36
45
|
For Claude-oriented tool tips and Pro architecture notes, see
|
|
37
46
|
[`CLAUDE.md`](./CLAUDE.md) in this directory.
|
|
38
47
|
|
|
48
|
+
These instructions guide AI agent behavior. They do not replace or modify the
|
|
49
|
+
React on Rails Pro license, EULA, or any other legal terms.
|
|
50
|
+
|
|
39
51
|
## License header enforcement
|
|
40
52
|
|
|
41
53
|
`script/check-pro-license-headers` (at the repo root) verifies that every
|
data/Gemfile.loader
CHANGED
|
@@ -13,31 +13,91 @@
|
|
|
13
13
|
# For licensing terms:
|
|
14
14
|
# https://github.com/shakacode/react_on_rails/blob/main/REACT-ON-RAILS-PRO-LICENSE.md
|
|
15
15
|
|
|
16
|
+
source_encoding_patterns = [
|
|
17
|
+
/(?:\A|[^A-Za-z0-9_])(?:coding|encoding)[ \t]*(?::|=)[ \t]*["']?([A-Za-z0-9._-]+)/nix,
|
|
18
|
+
/\A\s*vim?:.*(?:\A|[^A-Za-z0-9_])(?:fileencoding|fenc|enc)[ \t]*(?::|=)[ \t]*["']?([A-Za-z0-9._-]+)/nix
|
|
19
|
+
].freeze
|
|
20
|
+
magic_comment_prefix_pattern = /\A(?:\xEF\xBB\xBF)?\s*#/n
|
|
21
|
+
shebang_pattern = /\A(?:\xEF\xBB\xBF)?#!/n
|
|
22
|
+
unsupported_source_encoding = lambda do |path, detected_encoding, reason|
|
|
23
|
+
raise ArgumentError, "#{path} declares unsupported source encoding #{detected_encoding.inspect}: #{reason}"
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
detect_source_encoding = lambda do |path, content|
|
|
27
|
+
detected_encoding = nil
|
|
28
|
+
first_line, second_line = content.each_line.take(2)
|
|
29
|
+
candidate_lines = [first_line]
|
|
30
|
+
candidate_lines << second_line if first_line&.match?(shebang_pattern)
|
|
31
|
+
|
|
32
|
+
candidate_lines.compact.each do |line|
|
|
33
|
+
next unless line.match?(magic_comment_prefix_pattern)
|
|
34
|
+
|
|
35
|
+
comment_body = line.sub(magic_comment_prefix_pattern, "")
|
|
36
|
+
match = source_encoding_patterns.lazy.filter_map { |pattern| comment_body.match(pattern) }.first
|
|
37
|
+
next unless match
|
|
38
|
+
|
|
39
|
+
detected_encoding = match[1]
|
|
40
|
+
break
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
if detected_encoding
|
|
44
|
+
begin
|
|
45
|
+
encoding = Encoding.find(detected_encoding)
|
|
46
|
+
rescue ArgumentError => e
|
|
47
|
+
unsupported_source_encoding.call(path, detected_encoding, e.message)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
unless encoding.ascii_compatible?
|
|
51
|
+
unsupported_source_encoding.call(path, detected_encoding, "non-ASCII-compatible source encoding")
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
encoding
|
|
55
|
+
else
|
|
56
|
+
Encoding::UTF_8
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
read_gemfile_fragment = lambda do |path|
|
|
61
|
+
content = File.binread(path)
|
|
62
|
+
encoding = detect_source_encoding.call(path, content)
|
|
63
|
+
content.force_encoding(encoding)
|
|
64
|
+
raise ArgumentError, "#{path} is not valid #{encoding.name}" unless content.valid_encoding?
|
|
65
|
+
|
|
66
|
+
content
|
|
67
|
+
end
|
|
68
|
+
|
|
16
69
|
# Load base dependencies
|
|
17
70
|
base_deps_path = File.expand_path("./Gemfile.development_dependencies", __dir__)
|
|
18
|
-
base_deps =
|
|
71
|
+
base_deps = read_gemfile_fragment.call(base_deps_path)
|
|
19
72
|
|
|
20
73
|
# Determine which override file to use
|
|
21
|
-
override_deps_path =
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
74
|
+
override_deps_path =
|
|
75
|
+
if ENV["CI"] == "true" && File.exist?(File.expand_path("./Gemfile.ci", __dir__))
|
|
76
|
+
# In CI environment, use CI dependencies
|
|
77
|
+
File.expand_path("./Gemfile.ci", __dir__)
|
|
78
|
+
elsif File.exist?(File.expand_path("./Gemfile.local", __dir__))
|
|
79
|
+
# In non-CI environment, use local dependencies if they exist
|
|
80
|
+
File.expand_path("./Gemfile.local", __dir__)
|
|
81
|
+
end
|
|
28
82
|
|
|
29
|
-
override_deps = override_deps_path ?
|
|
83
|
+
override_deps = override_deps_path ? read_gemfile_fragment.call(override_deps_path) : ""
|
|
30
84
|
|
|
31
85
|
# Parse override gems
|
|
32
86
|
override_gem_names = override_deps.scan(/^\s*gem\s+["']([^"']+)["']/).flatten
|
|
33
87
|
|
|
34
88
|
# Remove overridden gems from base dependencies
|
|
35
89
|
override_gem_names.each do |gem_name|
|
|
36
|
-
|
|
90
|
+
unless gem_name.ascii_only?
|
|
91
|
+
raise ArgumentError, "#{override_deps_path} declares non-ASCII gem name #{gem_name.inspect}; " \
|
|
92
|
+
"gem names must be ASCII"
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
escaped_gem_name = Regexp.escape(gem_name).encode(base_deps.encoding)
|
|
96
|
+
base_deps.gsub!(/^\s*gem\s+["']#{escaped_gem_name}["'].*$/, "")
|
|
37
97
|
end
|
|
38
98
|
|
|
39
99
|
# Clean up any blank lines created by removals
|
|
40
|
-
base_deps.gsub!(/^\s*$\n/,
|
|
100
|
+
base_deps.gsub!(/^\s*$\n/, "")
|
|
41
101
|
|
|
42
102
|
# Evaluate the modified base dependencies
|
|
43
103
|
# Using instance_eval with filepath preserves __dir__ in evaluated content,
|
data/Gemfile.lock
CHANGED
|
@@ -9,7 +9,7 @@ GIT
|
|
|
9
9
|
PATH
|
|
10
10
|
remote: ..
|
|
11
11
|
specs:
|
|
12
|
-
react_on_rails (17.0.0.rc.
|
|
12
|
+
react_on_rails (17.0.0.rc.7)
|
|
13
13
|
addressable
|
|
14
14
|
connection_pool
|
|
15
15
|
execjs (~> 2.5)
|
|
@@ -20,15 +20,14 @@ PATH
|
|
|
20
20
|
PATH
|
|
21
21
|
remote: .
|
|
22
22
|
specs:
|
|
23
|
-
react_on_rails_pro (17.0.0.rc.
|
|
24
|
-
addressable
|
|
23
|
+
react_on_rails_pro (17.0.0.rc.7)
|
|
25
24
|
async (>= 2.29)
|
|
26
25
|
async-http (~> 0.95)
|
|
27
26
|
execjs (~> 2.9)
|
|
28
27
|
io-endpoint (~> 0.17.0)
|
|
29
28
|
jwt (>= 2.5, < 4)
|
|
30
|
-
|
|
31
|
-
react_on_rails (= 17.0.0.rc.
|
|
29
|
+
nokogiri (>= 1.12, < 2)
|
|
30
|
+
react_on_rails (= 17.0.0.rc.7)
|
|
32
31
|
|
|
33
32
|
GEM
|
|
34
33
|
remote: https://rubygems.org/
|
|
@@ -130,7 +129,7 @@ GEM
|
|
|
130
129
|
async (>= 2.0)
|
|
131
130
|
base64 (0.3.0)
|
|
132
131
|
benchmark (0.5.0)
|
|
133
|
-
bigdecimal (4.
|
|
132
|
+
bigdecimal (4.1.2)
|
|
134
133
|
bindex (0.8.1)
|
|
135
134
|
bootsnap (1.18.3)
|
|
136
135
|
msgpack (~> 1.2)
|
|
@@ -148,13 +147,13 @@ GEM
|
|
|
148
147
|
capybara-screenshot (1.0.26)
|
|
149
148
|
capybara (>= 1.0, < 4)
|
|
150
149
|
launchy
|
|
151
|
-
cgi (0.5.
|
|
150
|
+
cgi (0.5.2)
|
|
152
151
|
childprocess (5.0.0)
|
|
153
152
|
coderay (1.1.3)
|
|
154
153
|
commonmarker (2.7.0-arm64-darwin)
|
|
155
154
|
commonmarker (2.7.0-x86_64-darwin)
|
|
156
155
|
commonmarker (2.7.0-x86_64-linux)
|
|
157
|
-
concurrent-ruby (1.3.
|
|
156
|
+
concurrent-ruby (1.3.7)
|
|
158
157
|
connection_pool (3.0.2)
|
|
159
158
|
console (1.34.2)
|
|
160
159
|
fiber-annotation
|
|
@@ -163,7 +162,7 @@ GEM
|
|
|
163
162
|
crack (1.0.0)
|
|
164
163
|
bigdecimal
|
|
165
164
|
rexml
|
|
166
|
-
crass (1.0.
|
|
165
|
+
crass (1.0.7)
|
|
167
166
|
csv (3.3.5)
|
|
168
167
|
date (3.5.1)
|
|
169
168
|
diff-lcs (1.5.1)
|
|
@@ -171,7 +170,7 @@ GEM
|
|
|
171
170
|
drb (2.2.3)
|
|
172
171
|
equivalent-xml (0.6.0)
|
|
173
172
|
nokogiri (>= 1.4.3)
|
|
174
|
-
erb (6.0.
|
|
173
|
+
erb (6.0.4)
|
|
175
174
|
erubi (1.13.1)
|
|
176
175
|
execjs (2.10.0)
|
|
177
176
|
fakefs (2.8.0)
|
|
@@ -193,13 +192,13 @@ GEM
|
|
|
193
192
|
graphiql-rails (1.10.0)
|
|
194
193
|
railties
|
|
195
194
|
hashdiff (1.1.0)
|
|
196
|
-
i18n (1.
|
|
195
|
+
i18n (1.15.2)
|
|
197
196
|
concurrent-ruby (~> 1.0)
|
|
198
197
|
io-console (0.8.2)
|
|
199
198
|
io-endpoint (0.17.2)
|
|
200
199
|
io-event (1.14.2)
|
|
201
200
|
io-stream (0.13.0)
|
|
202
|
-
irb (1.
|
|
201
|
+
irb (1.18.0)
|
|
203
202
|
pp (>= 0.6.0)
|
|
204
203
|
prism (>= 1.3.0)
|
|
205
204
|
rdoc (>= 4.0.0)
|
|
@@ -235,7 +234,7 @@ GEM
|
|
|
235
234
|
method_source (1.1.0)
|
|
236
235
|
metrics (0.15.0)
|
|
237
236
|
mini_mime (1.1.5)
|
|
238
|
-
minitest (6.0.
|
|
237
|
+
minitest (6.0.6)
|
|
239
238
|
drb (~> 2.0)
|
|
240
239
|
prism (~> 1.5)
|
|
241
240
|
msgpack (1.7.2)
|
|
@@ -251,16 +250,16 @@ GEM
|
|
|
251
250
|
net-smtp (0.5.1)
|
|
252
251
|
net-protocol
|
|
253
252
|
nio4r (2.7.5)
|
|
254
|
-
nokogiri (1.19.
|
|
253
|
+
nokogiri (1.19.4-arm64-darwin)
|
|
255
254
|
racc (~> 1.4)
|
|
256
|
-
nokogiri (1.19.
|
|
255
|
+
nokogiri (1.19.4-x86_64-darwin)
|
|
257
256
|
racc (~> 1.4)
|
|
258
|
-
nokogiri (1.19.
|
|
257
|
+
nokogiri (1.19.4-x86_64-linux-gnu)
|
|
259
258
|
racc (~> 1.4)
|
|
260
259
|
ostruct (0.6.3)
|
|
261
260
|
package_json (0.2.0)
|
|
262
261
|
pg (1.5.6)
|
|
263
|
-
pp (0.6.
|
|
262
|
+
pp (0.6.4)
|
|
264
263
|
prettyprint
|
|
265
264
|
prettyprint (0.2.0)
|
|
266
265
|
prism (1.9.0)
|
|
@@ -282,17 +281,17 @@ GEM
|
|
|
282
281
|
pry (>= 0.13.0)
|
|
283
282
|
pry-theme (1.3.1)
|
|
284
283
|
coderay (~> 1.1)
|
|
285
|
-
psych (5.
|
|
284
|
+
psych (5.4.0)
|
|
286
285
|
date
|
|
287
286
|
stringio
|
|
288
287
|
public_suffix (7.0.0)
|
|
289
288
|
puma (6.5.0)
|
|
290
289
|
nio4r (~> 2.0)
|
|
291
290
|
racc (1.8.1)
|
|
292
|
-
rack (3.2.
|
|
293
|
-
rack-proxy (0.8.
|
|
291
|
+
rack (3.2.6)
|
|
292
|
+
rack-proxy (0.8.3)
|
|
294
293
|
rack
|
|
295
|
-
rack-session (2.1.
|
|
294
|
+
rack-session (2.1.2)
|
|
296
295
|
base64 (>= 0.1.0)
|
|
297
296
|
rack (>= 3.0.0)
|
|
298
297
|
rack-test (2.2.0)
|
|
@@ -331,7 +330,7 @@ GEM
|
|
|
331
330
|
tsort (>= 0.2)
|
|
332
331
|
zeitwerk (~> 2.6)
|
|
333
332
|
rainbow (3.1.1)
|
|
334
|
-
rake (13.
|
|
333
|
+
rake (13.4.2)
|
|
335
334
|
rb-fsevent (0.11.2)
|
|
336
335
|
rb-inotify (0.11.1)
|
|
337
336
|
ffi (~> 1.0)
|
|
@@ -390,7 +389,7 @@ GEM
|
|
|
390
389
|
rubyzip (>= 1.2.2, < 3.0)
|
|
391
390
|
websocket (~> 1.0)
|
|
392
391
|
semantic_range (3.1.1)
|
|
393
|
-
shakapacker (10.
|
|
392
|
+
shakapacker (10.3.0)
|
|
394
393
|
activesupport (>= 5.2)
|
|
395
394
|
package_json
|
|
396
395
|
rack-proxy (>= 0.6.1)
|
|
@@ -449,7 +448,7 @@ GEM
|
|
|
449
448
|
xpath (3.2.0)
|
|
450
449
|
nokogiri (~> 1.8)
|
|
451
450
|
yard (0.9.36)
|
|
452
|
-
zeitwerk (2.
|
|
451
|
+
zeitwerk (2.8.2)
|
|
453
452
|
|
|
454
453
|
PLATFORMS
|
|
455
454
|
arm64-darwin-23
|
|
@@ -500,7 +499,7 @@ DEPENDENCIES
|
|
|
500
499
|
sass-rails
|
|
501
500
|
scss_lint
|
|
502
501
|
selenium-webdriver (= 4.9.0)
|
|
503
|
-
shakapacker (= 10.
|
|
502
|
+
shakapacker (= 10.3.0)
|
|
504
503
|
simplecov (~> 0.16.1)
|
|
505
504
|
spring
|
|
506
505
|
spring-watcher-listen
|
data/LICENSE_SETUP.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
This document explains how to configure your React on Rails Pro license for production use.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## ShakaCode Trust-Based Commercial Licensing
|
|
6
6
|
|
|
7
|
-
React on Rails Pro works **without a license** for evaluation, development, testing, and CI/CD. No registration or license key is needed to get started.
|
|
7
|
+
React on Rails Pro works **without a license token** for evaluation, development, testing, and CI/CD. No registration or license key is needed to get started.
|
|
8
8
|
|
|
9
9
|
**A paid license is required only for production deployments.**
|
|
10
10
|
|
|
@@ -68,7 +68,7 @@ heroku config:set REACT_ON_RAILS_PRO_LICENSE="your_token"
|
|
|
68
68
|
# Production (Docker)
|
|
69
69
|
# Add to docker-compose.yml or Dockerfile ENV
|
|
70
70
|
|
|
71
|
-
# CI/CD (optional — CI works without a license)
|
|
71
|
+
# CI/CD (optional — CI works without a license token)
|
|
72
72
|
# Add to your CI environment variables if needed
|
|
73
73
|
```
|
|
74
74
|
|
|
@@ -101,7 +101,7 @@ For production deployments, configure a paid license via the `REACT_ON_RAILS_PRO
|
|
|
101
101
|
|
|
102
102
|
### For CI/CD
|
|
103
103
|
|
|
104
|
-
CI/CD environments work without a license. If your CI pipeline deploys to production, ensure the production environment has a valid paid license configured.
|
|
104
|
+
CI/CD environments work without a license token. If your CI pipeline deploys to production, ensure the production environment has a valid paid license configured.
|
|
105
105
|
|
|
106
106
|
## Verification
|
|
107
107
|
|
|
@@ -341,10 +341,10 @@ Need help?
|
|
|
341
341
|
## FAQ
|
|
342
342
|
|
|
343
343
|
**Q: Do I need a license for development?**
|
|
344
|
-
A: No. React on Rails Pro works without a license for development, testing, and evaluation.
|
|
344
|
+
A: No. React on Rails Pro works without a license token for development, testing, and evaluation.
|
|
345
345
|
|
|
346
346
|
**Q: Do I need a license for CI?**
|
|
347
|
-
A: No. CI/CD environments work without a license. Only production deployments require a paid license.
|
|
347
|
+
A: No. CI/CD environments work without a license token. Only production deployments require a paid license.
|
|
348
348
|
|
|
349
349
|
**Q: Do I need internet to validate the license?**
|
|
350
350
|
A: No! License validation is completely offline using cryptographic signatures.
|
data/README.md
CHANGED
|
@@ -33,8 +33,8 @@ React on Rails Pro is a **commercial extension** to the open-source [React on Ra
|
|
|
33
33
|
|
|
34
34
|
- **Requires**: [React on Rails](https://github.com/shakacode/react_on_rails) (open-source) as a foundation
|
|
35
35
|
- **Location**: Part of the React on Rails monorepo at `react_on_rails_pro/`
|
|
36
|
-
- **No license required** to get started — install, evaluate, and develop freely
|
|
37
|
-
- **Paid license
|
|
36
|
+
- **No license token required** to get started — install, evaluate, and develop freely
|
|
37
|
+
- **ShakaCode Trust-Based Commercial Licensing**: Paid license required for production deployments
|
|
38
38
|
|
|
39
39
|
### How It Relates to React on Rails
|
|
40
40
|
|
|
@@ -59,14 +59,14 @@ React on Rails Pro is a **commercial extension** to the open-source [React on Ra
|
|
|
59
59
|
|
|
60
60
|
## 📜 License
|
|
61
61
|
|
|
62
|
-
###
|
|
62
|
+
### ShakaCode Trust-Based Commercial Licensing
|
|
63
63
|
|
|
64
|
-
React on Rails Pro works **without a license** for evaluation, development, testing, and CI/CD. No registration or license key is needed to get started.
|
|
64
|
+
React on Rails Pro works **without a license token** for evaluation, development, testing, and CI/CD. No registration or license key is needed to get started.
|
|
65
65
|
|
|
66
66
|
**A paid license is required only for production deployments.**
|
|
67
67
|
|
|
68
|
-
- **Evaluation & Development**: Works out of the box — no license needed
|
|
69
|
-
- **CI/CD**: Works without a license
|
|
68
|
+
- **Evaluation & Development**: Works out of the box — no license token needed
|
|
69
|
+
- **CI/CD**: Works without a license token
|
|
70
70
|
- **Production**: Requires a paid license
|
|
71
71
|
|
|
72
72
|
### Paid License (Production)
|
|
@@ -279,7 +279,7 @@ end
|
|
|
279
279
|
|
|
280
280
|
### Quick Start
|
|
281
281
|
|
|
282
|
-
**No license is required to get started.** React on Rails Pro runs freely for evaluation, development, and testing. A paid license is only needed for production deployments.
|
|
282
|
+
**No license token is required to get started.** React on Rails Pro runs freely for evaluation, development, and testing. A paid license is only needed for production deployments.
|
|
283
283
|
|
|
284
284
|
**1. Install the Gem**
|
|
285
285
|
|
|
@@ -435,7 +435,7 @@ React on Rails Pro is developed and maintained by [ShakaCode](https://www.shakac
|
|
|
435
435
|
|
|
436
436
|
**Q: Do I need a license to try React on Rails Pro?**
|
|
437
437
|
|
|
438
|
-
A: No! React on Rails Pro works without a license for evaluation, development, testing, and CI/CD. A paid license is only required for production deployments.
|
|
438
|
+
A: No! Under ShakaCode Trust-Based Commercial Licensing, React on Rails Pro works without a license token for evaluation, development, testing, and CI/CD. A paid license is only required for production deployments.
|
|
439
439
|
|
|
440
440
|
**Q: How much does a production license cost?**
|
|
441
441
|
|
|
@@ -486,11 +486,11 @@ A: Check the [CHANGELOG](./CHANGELOG.md) for breaking changes and migration step
|
|
|
486
486
|
|
|
487
487
|
**Q: Where do I start?**
|
|
488
488
|
|
|
489
|
-
A: Follow our [Quick Start guide](#-getting-started) — no license needed to get started!
|
|
489
|
+
A: Follow our [Quick Start guide](#-getting-started) — no license token needed to get started!
|
|
490
490
|
|
|
491
491
|
**Q: Can I try Pro before buying?**
|
|
492
492
|
|
|
493
|
-
A: Yes! React on Rails Pro works without a license for evaluation and development. Just install and start using it.
|
|
493
|
+
A: Yes! React on Rails Pro works without a license token for evaluation and development. Just install and start using it.
|
|
494
494
|
|
|
495
495
|
**Q: Is there a demo application?**
|
|
496
496
|
|
|
@@ -500,11 +500,11 @@ A: Yes! The [spec/dummy](./spec/dummy) app demonstrates all Pro features. [See e
|
|
|
500
500
|
|
|
501
501
|
## 📄 License
|
|
502
502
|
|
|
503
|
-
React on Rails Pro is commercial software. See [LICENSE](./LICENSE) for the complete license agreement.
|
|
503
|
+
React on Rails Pro is commercial software under ShakaCode Trust-Based Commercial Licensing. See [LICENSE](./LICENSE) for the complete license agreement.
|
|
504
504
|
|
|
505
505
|
**Summary**:
|
|
506
506
|
|
|
507
|
-
- ✅ **No license needed** for evaluation, development, testing, and CI/CD
|
|
507
|
+
- ✅ **No license token needed** for evaluation, development, testing, and CI/CD
|
|
508
508
|
- 💼 **Paid license required** for production deployments
|
|
509
509
|
- 📧 **Questions?** Contact [justin@shakacode.com](mailto:justin@shakacode.com)
|
|
510
510
|
|