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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aa0bf219fe1d63080c7f653bd3496ea95f15a8e3a1a79a91dd6140de2f8415d9
4
- data.tar.gz: 8d8ea4b6fd46b87c5411abbd9c01bd6e49ab9fa0bf026dfcf59cfa270a2e00c1
3
+ metadata.gz: 630407c86698264ad5285eb75bc45413c73e0fbc40b446433ad185906e2ffec6
4
+ data.tar.gz: 6cef12ecc7a9253bac5039f8cad92df8e5d507734a0eb11a8947aba4cc5b4c8c
5
5
  SHA512:
6
- metadata.gz: 9e22fcd250f90618ccac39fabb7cbfecb60d502302c3cd1abd0d6bc3f9249c6552b0a25a9dcc235ef4d8c95c11223edc84eb9246bf67058f4ca70074756e9a8b
7
- data.tar.gz: a6891194c45e31b9ce9a39a9dc31b5cb6807fa5a76bf64844aceaff5bbaacad0eefc9668ceeccdd5d7215c30739a37792918f8355a1094b0cd3339bda8921acd
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 NOT copy, port, paste, or reproduce** any Pro file (or a derivative of
14
- > one) into another repository, project, package, or codebase that does not
15
- > hold a valid React on Rails Pro license. This includes "for reference",
16
- > "as a starting point", or translating it to another language/framework.
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
@@ -21,7 +21,7 @@ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
21
21
 
22
22
  gem "react_on_rails", path: "../"
23
23
 
24
- gem "shakapacker", "10.1.0"
24
+ gem "shakapacker", "10.3.0"
25
25
  gem "bootsnap", require: false
26
26
  gem "rails", "~> 7.1"
27
27
  gem "puma", "~> 6"
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 = File.read(base_deps_path)
71
+ base_deps = read_gemfile_fragment.call(base_deps_path)
19
72
 
20
73
  # Determine which override file to use
21
- override_deps_path = if ENV["CI"] == "true" && File.exist?(File.expand_path("./Gemfile.ci", __dir__))
22
- # In CI environment, use CI dependencies
23
- File.expand_path("./Gemfile.ci", __dir__)
24
- elsif File.exist?(File.expand_path("./Gemfile.local", __dir__))
25
- # In non-CI environment, use local dependencies if they exist
26
- File.expand_path("./Gemfile.local", __dir__)
27
- end
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 ? File.read(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
- base_deps.gsub!(/^\s*gem\s+["']#{gem_name}["'].*$/, '')
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.6)
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.6)
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
- rainbow
31
- react_on_rails (= 17.0.0.rc.6)
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.0.1)
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.1)
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.6)
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.6)
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.2)
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.14.8)
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.17.0)
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.2)
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.2-arm64-darwin)
253
+ nokogiri (1.19.4-arm64-darwin)
255
254
  racc (~> 1.4)
256
- nokogiri (1.19.2-x86_64-darwin)
255
+ nokogiri (1.19.4-x86_64-darwin)
257
256
  racc (~> 1.4)
258
- nokogiri (1.19.2-x86_64-linux-gnu)
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.3)
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.3.1)
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.5)
293
- rack-proxy (0.8.2)
291
+ rack (3.2.6)
292
+ rack-proxy (0.8.3)
294
293
  rack
295
- rack-session (2.1.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.3.1)
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.1.0)
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.7.5)
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.1.0)
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
- ## License-Optional Model
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**: Required for production deployments
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
- ### License-Optional Model
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