react_on_rails 17.1.0 → 17.2.0.rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/Gemfile.development_dependencies +2 -2
- data/Gemfile.lock +65 -73
- data/Steepfile +1 -0
- data/docs/agent/install-and-upgrade.md +8 -3
- data/docs/agent/rsc-adoption.md +3 -0
- data/lib/generators/react_on_rails/base_generator.rb +2 -1
- data/lib/generators/react_on_rails/generated_webpack_config_pair.rb +84 -0
- data/lib/generators/react_on_rails/generator_helper.rb +2 -4
- data/lib/generators/react_on_rails/generator_messages.rb +1 -1
- data/lib/generators/react_on_rails/install_generator.rb +2 -1
- data/lib/generators/react_on_rails/js_dependency_manager.rb +14 -14
- data/lib/generators/react_on_rails/pro/USAGE +14 -3
- data/lib/generators/react_on_rails/pro_generator.rb +1 -1
- data/lib/generators/react_on_rails/pro_setup.rb +41 -213
- data/lib/generators/react_on_rails/rsc_setup.rb +7 -16
- data/lib/generators/react_on_rails/templates/pro/base/config/initializers/react_on_rails_pro.rb.tt +1 -1
- data/lib/react_on_rails/agent_guardrails.rb +217 -39
- data/lib/react_on_rails/dev/process_manager.rb +14 -0
- data/lib/react_on_rails/dev/server_manager.rb +1727 -103
- data/lib/react_on_rails/doctor.rb +875 -44
- data/lib/react_on_rails/helper.rb +3 -3
- data/lib/react_on_rails/react_component/render_options.rb +5 -7
- data/lib/react_on_rails/server_rendering_pool/ruby_embedded_java_script.rb +27 -116
- data/lib/react_on_rails/utils.rb +65 -0
- data/lib/react_on_rails/version.rb +1 -1
- data/lib/react_on_rails/version_checker/lockfile_resolution.rb +170 -0
- data/lib/react_on_rails/version_checker.rb +43 -22
- data/rakelib/run_rspec.rake +6 -1
- data/sig/react_on_rails/configuration.rbs +28 -26
- data/sig/react_on_rails/controller.rbs +2 -1
- data/sig/react_on_rails/dev/process_manager.rbs +1 -0
- data/sig/react_on_rails/dev/server_manager.rbs +150 -10
- data/sig/react_on_rails/git_utils.rbs +5 -1
- data/sig/react_on_rails/locales.rbs +4 -4
- data/sig/react_on_rails/prerender_error.rbs +2 -2
- data/sig/react_on_rails/test_helper.rbs +15 -1
- data/sig/react_on_rails/utils.rbs +2 -2
- data/sig/react_on_rails/version_checker/lockfile_resolution.rbs +31 -0
- data/sig/react_on_rails/version_checker.rbs +30 -7
- metadata +4 -1
|
@@ -1,38 +1,39 @@
|
|
|
1
1
|
module ReactOnRails
|
|
2
2
|
class Configuration
|
|
3
|
-
attr_accessor node_modules_location: String?
|
|
4
|
-
attr_accessor server_bundle_js_file: String
|
|
5
|
-
attr_accessor prerender: bool
|
|
6
|
-
attr_accessor replay_console: bool
|
|
3
|
+
attr_accessor node_modules_location: (String | Pathname)?
|
|
4
|
+
attr_accessor server_bundle_js_file: String?
|
|
5
|
+
attr_accessor prerender: bool?
|
|
6
|
+
attr_accessor replay_console: bool?
|
|
7
7
|
attr_accessor trace: bool
|
|
8
8
|
attr_accessor development_mode: bool
|
|
9
|
-
attr_accessor logging_on_server: bool
|
|
10
|
-
attr_accessor server_renderer_pool_size: Integer
|
|
11
|
-
attr_accessor server_renderer_timeout: Integer
|
|
12
|
-
attr_accessor raise_on_prerender_error: bool
|
|
13
|
-
attr_accessor generated_assets_dir: String
|
|
9
|
+
attr_accessor logging_on_server: bool?
|
|
10
|
+
attr_accessor server_renderer_pool_size: Integer?
|
|
11
|
+
attr_accessor server_renderer_timeout: Integer?
|
|
12
|
+
attr_accessor raise_on_prerender_error: bool?
|
|
13
|
+
attr_accessor generated_assets_dir: String?
|
|
14
14
|
attr_accessor components_subdirectory: String?
|
|
15
15
|
attr_accessor stores_subdirectory: String?
|
|
16
|
-
attr_accessor webpack_generated_files: Array[String]
|
|
16
|
+
attr_accessor webpack_generated_files: Array[String]?
|
|
17
17
|
attr_accessor rendering_extension: String?
|
|
18
|
-
attr_accessor build_test_command: String
|
|
19
|
-
attr_accessor build_production_command: String
|
|
20
|
-
attr_accessor i18n_dir: String?
|
|
21
|
-
attr_accessor i18n_yml_dir: String?
|
|
22
|
-
attr_accessor i18n_output_format: Symbol?
|
|
18
|
+
attr_accessor build_test_command: String?
|
|
19
|
+
attr_accessor build_production_command: String?
|
|
20
|
+
attr_accessor i18n_dir: (String | Pathname)?
|
|
21
|
+
attr_accessor i18n_yml_dir: (String | Pathname)?
|
|
22
|
+
attr_accessor i18n_output_format: (String | Symbol)?
|
|
23
23
|
attr_accessor i18n_yml_safe_load_options: Hash[Symbol, untyped]?
|
|
24
|
-
attr_accessor random_dom_id: bool
|
|
25
|
-
attr_accessor auto_load_bundle: bool
|
|
26
|
-
attr_accessor same_bundle_for_client_and_server: bool
|
|
24
|
+
attr_accessor random_dom_id: bool?
|
|
25
|
+
attr_accessor auto_load_bundle: bool?
|
|
26
|
+
attr_accessor same_bundle_for_client_and_server: bool?
|
|
27
27
|
attr_accessor rendering_props_extension: String?
|
|
28
|
-
attr_accessor make_generated_server_bundle_the_entrypoint: bool
|
|
28
|
+
attr_accessor make_generated_server_bundle_the_entrypoint: bool?
|
|
29
29
|
attr_accessor generated_component_packs_loading_strategy: Symbol?
|
|
30
|
-
attr_accessor component_registry_timeout: Integer
|
|
30
|
+
attr_accessor component_registry_timeout: Integer?
|
|
31
31
|
attr_accessor server_bundle_output_path: String?
|
|
32
|
-
attr_accessor enforce_private_server_bundles: bool
|
|
32
|
+
attr_accessor enforce_private_server_bundles: bool?
|
|
33
|
+
attr_accessor check_database_on_dev_start: bool
|
|
33
34
|
|
|
34
35
|
def initialize: (
|
|
35
|
-
?node_modules_location: String?,
|
|
36
|
+
?node_modules_location: (String | Pathname)?,
|
|
36
37
|
?server_bundle_js_file: String?,
|
|
37
38
|
?prerender: bool?,
|
|
38
39
|
?replay_console: bool?,
|
|
@@ -50,9 +51,9 @@ module ReactOnRails
|
|
|
50
51
|
?build_production_command: String?,
|
|
51
52
|
?generated_component_packs_loading_strategy: Symbol?,
|
|
52
53
|
?same_bundle_for_client_and_server: bool?,
|
|
53
|
-
?i18n_dir: String?,
|
|
54
|
-
?i18n_yml_dir: String?,
|
|
55
|
-
?i18n_output_format: Symbol?,
|
|
54
|
+
?i18n_dir: (String | Pathname)?,
|
|
55
|
+
?i18n_yml_dir: (String | Pathname)?,
|
|
56
|
+
?i18n_output_format: (String | Symbol)?,
|
|
56
57
|
?i18n_yml_safe_load_options: Hash[Symbol, untyped]?,
|
|
57
58
|
?random_dom_id: bool?,
|
|
58
59
|
?rendering_props_extension: String?,
|
|
@@ -61,7 +62,8 @@ module ReactOnRails
|
|
|
61
62
|
?auto_load_bundle: bool?,
|
|
62
63
|
?component_registry_timeout: Integer?,
|
|
63
64
|
?server_bundle_output_path: String?,
|
|
64
|
-
?enforce_private_server_bundles: bool
|
|
65
|
+
?enforce_private_server_bundles: bool?,
|
|
66
|
+
?check_database_on_dev_start: bool?
|
|
65
67
|
) -> void
|
|
66
68
|
|
|
67
69
|
def setup_config_values: () -> void
|
|
@@ -3,16 +3,39 @@ module ReactOnRails
|
|
|
3
3
|
class ServerManager
|
|
4
4
|
type mode = :development | :production_like | :static | :hmr
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
# Validated `tmp/react_on_rails/dev-session.json` contents.
|
|
7
|
+
type dev_session = Hash[Symbol, untyped]
|
|
8
|
+
|
|
9
|
+
# The atomically published session handle and its canonical path.
|
|
10
|
+
type dev_session_claim = Hash[Symbol, untyped]
|
|
11
|
+
|
|
12
|
+
# Classified view of this app directory's dev session state, plus the
|
|
13
|
+
# ports the kill path may inspect.
|
|
14
|
+
type dev_session_view = Hash[Symbol, untyped]
|
|
15
|
+
|
|
16
|
+
# [status, blockers] - status is one of :verified, :recovered_stale,
|
|
17
|
+
# :nothing_running, :unverified, :refused.
|
|
18
|
+
type shutdown_result = [Symbol, Array[String]]
|
|
19
|
+
|
|
20
|
+
# Four-bucket listener scan: :owned, :foreign and :unattributable map
|
|
21
|
+
# port => pids, :unavailable is a list of ports whose probe failed.
|
|
22
|
+
type port_listener_scan = Hash[Symbol, untyped]
|
|
23
|
+
|
|
24
|
+
# Enumerated in-root Overmind socket paths plus any reason the directory
|
|
25
|
+
# could not be inspected safely.
|
|
26
|
+
type overmind_socket_discovery = { paths: Array[String], blockers: Array[String] }
|
|
27
|
+
|
|
28
|
+
def self.start: (?mode, ?String?, ?verbose: bool, ?route: String?, ?rails_env: String?, ?skip_database_check: bool, ?open_browser: bool, ?open_browser_once: bool) -> void
|
|
29
|
+
def self.kill_processes: () -> Symbol
|
|
30
|
+
def self.clean_generated_assets_and_caches: () -> bool
|
|
31
|
+
def self.killable_ports: () -> Array[Integer]
|
|
32
|
+
def self.default_killable_ports: () -> Array[Integer]
|
|
33
|
+
def self.terminate_processes: (Array[Integer], ?String) -> void
|
|
12
34
|
def self.kill_port_processes: (Array[Integer]) -> bool
|
|
13
35
|
def self.find_port_pids: (Integer) -> Array[Integer]
|
|
36
|
+
def self.find_process_pids: (String) -> Array[Integer]
|
|
14
37
|
def self.cleanup_socket_files: () -> bool
|
|
15
|
-
def self.print_kill_summary: (
|
|
38
|
+
def self.print_kill_summary: (Symbol, ?Array[String]) -> void
|
|
16
39
|
def self.show_help: () -> void
|
|
17
40
|
def self.run_from_command_line: (?Array[String]) -> void
|
|
18
41
|
|
|
@@ -24,9 +47,9 @@ module ReactOnRails
|
|
|
24
47
|
def self.help_customization: () -> String
|
|
25
48
|
def self.help_mode_details: () -> String
|
|
26
49
|
def self.help_troubleshooting: () -> String
|
|
27
|
-
def self.run_production_like: (?_verbose: bool, ?route: String?, ?rails_env: String?) -> void
|
|
28
|
-
def self.run_static_development: (String, ?verbose: bool, ?route: String?) -> void
|
|
29
|
-
def self.run_development: (String, ?verbose: bool, ?route: String?) -> void
|
|
50
|
+
def self.run_production_like: (?_verbose: bool, ?route: String?, ?rails_env: String?, ?skip_database_check: bool, ?open_browser: bool, ?open_browser_once: bool) -> void
|
|
51
|
+
def self.run_static_development: (String, ?verbose: bool, ?route: String?, ?skip_database_check: bool, ?open_browser: bool, ?open_browser_once: bool) -> void
|
|
52
|
+
def self.run_development: (String, ?verbose: bool, ?route: String?, ?skip_database_check: bool, ?open_browser: bool, ?open_browser_once: bool) -> void
|
|
30
53
|
def self.print_server_info: (String, Array[String], ?Integer, ?route: String?) -> void
|
|
31
54
|
def self.print_procfile_info: (String, ?route: String?) -> void
|
|
32
55
|
def self.procfile_port: (String) -> Integer
|
|
@@ -34,6 +57,123 @@ module ReactOnRails
|
|
|
34
57
|
def self.box_bottom: (Integer) -> String
|
|
35
58
|
def self.box_empty_line: (Integer) -> String
|
|
36
59
|
def self.format_box_line: (String, Integer) -> String
|
|
60
|
+
|
|
61
|
+
# -- Scoped dev shutdown ------------------------------------------
|
|
62
|
+
def self.dev_session_path: (String) -> String
|
|
63
|
+
def self.dev_session_lock_path: (String) -> String
|
|
64
|
+
def self.current_app_root: () -> String
|
|
65
|
+
def self.app_root_ancestor: (String) -> String?
|
|
66
|
+
def self.inside_dev_app_root?: (untyped, ?String) -> bool
|
|
67
|
+
def self.relative_to_app_root: (String, ?String) -> String
|
|
68
|
+
def self.with_dev_session: () { () -> untyped } -> untyped
|
|
69
|
+
def self.claim_dev_session: (String) -> dev_session_claim?
|
|
70
|
+
def self.write_dev_session: (String, String) -> File
|
|
71
|
+
def self.write_claimed_dev_session: (File, String, String) -> dev_session_claim?
|
|
72
|
+
def self.dev_session_handle_detached?: (String, File) -> bool
|
|
73
|
+
def self.release_dev_session_lock: (File?) -> void
|
|
74
|
+
def self.discard_partial_dev_session: (File?, String) -> void
|
|
75
|
+
def self.warn_dev_session_unrecorded: (untyped) -> void
|
|
76
|
+
def self.warn_dev_session_contended: (File, String, String) -> nil
|
|
77
|
+
def self.open_dev_session_claim_lock: (String) -> File
|
|
78
|
+
def self.abort_dev_session_claim: (String, String) -> bot
|
|
79
|
+
def self.dev_session_payload: (String) -> Hash[String, untyped]
|
|
80
|
+
def self.selected_session_ports: () -> Array[Integer]
|
|
81
|
+
def self.owned_process_group: () -> Integer?
|
|
82
|
+
def self.owned_overmind_socket_path: (String) -> String?
|
|
83
|
+
def self.default_overmind_socket_path: (String) -> String
|
|
84
|
+
def self.release_dev_session: (dev_session_claim?) -> void
|
|
85
|
+
def self.shutdown_dev_session: () -> shutdown_result
|
|
86
|
+
def self.shutdown_ports: (dev_session_view) -> Array[Integer]
|
|
87
|
+
def self.shutdown_failed?: (Symbol?) -> bool
|
|
88
|
+
def self.abort_clean_after_failed_shutdown: () -> bool
|
|
89
|
+
def self.dispatch_dev_shutdown: (dev_session_view) -> shutdown_result
|
|
90
|
+
def self.dev_session_view: (String) -> dev_session_view
|
|
91
|
+
def self.dev_session_path_absent?: (String) -> bool
|
|
92
|
+
def self.open_dev_session_read_lock: (String) -> [Symbol, untyped]
|
|
93
|
+
def self.open_existing_or_create_dev_session_lock: (String) -> File
|
|
94
|
+
def self.open_existing_dev_session_lock: (String) -> File
|
|
95
|
+
def self.open_dev_session: (String) -> [Symbol, untyped]
|
|
96
|
+
def self.classify_dev_session: (String, String, File) -> [Symbol, untyped]
|
|
97
|
+
def self.confirm_locked_dev_session: (String, File, dev_session) -> [Symbol, untyped]
|
|
98
|
+
def self.classify_released_dev_session: (String, File, dev_session) -> [Symbol, untyped]
|
|
99
|
+
def self.parse_dev_session: (untyped) -> dev_session?
|
|
100
|
+
def self.valid_dev_session_document?: (untyped) -> bool
|
|
101
|
+
def self.valid_session_root?: (untyped) -> bool
|
|
102
|
+
def self.valid_session_pid?: (untyped) -> bool
|
|
103
|
+
def self.valid_session_pgid?: (untyped) -> bool
|
|
104
|
+
def self.valid_session_ports?: (untyped) -> bool
|
|
105
|
+
def self.valid_session_socket?: (untyped) -> bool
|
|
106
|
+
def self.lock_dev_session: (File) -> Symbol
|
|
107
|
+
def self.dev_session_replaced?: (String, File) -> bool
|
|
108
|
+
def self.close_session_handle: (dev_session_view?) -> void
|
|
109
|
+
def self.shutdown_live_owner: (dev_session_view) -> shutdown_result
|
|
110
|
+
def self.unreachable_owner_message: (dev_session_view, dev_session) -> String
|
|
111
|
+
def self.request_owner_shutdown: (dev_session_view, Integer?, Array[String]) -> bool
|
|
112
|
+
def self.shutdown_steps: (dev_session_view, Integer?, Array[String]) -> Array[untyped]
|
|
113
|
+
def self.control_overmind_endpoints: (dev_session_view, String, Array[String]) -> bool
|
|
114
|
+
def self.verify_owner_shutdown: (dev_session_view, Integer?, Array[String]) -> shutdown_result
|
|
115
|
+
def self.outstanding_shutdown_blockers: (dev_session_view) -> Array[String]
|
|
116
|
+
def self.owner_shutdown_complete?: (dev_session_view, Integer?, Array[String]) -> bool
|
|
117
|
+
def self.shutdown_settled?: (dev_session_view, Integer?, Array[String]) -> bool
|
|
118
|
+
def self.shutdown_blockers: (dev_session_view, Integer?, Array[String]) -> Array[String]
|
|
119
|
+
def self.owner_release_state: (dev_session_view) -> Symbol
|
|
120
|
+
def self.session_replaced?: (dev_session_view) -> bool
|
|
121
|
+
def self.session_replaced_blocker: (dev_session_view) -> String
|
|
122
|
+
def self.owner_state_blockers: (dev_session_view) -> Array[String]
|
|
123
|
+
def self.endpoint_blockers: (String?) -> Array[String]
|
|
124
|
+
def self.leftover_owned_listeners: (dev_session_view) -> Array[String]
|
|
125
|
+
def self.remove_dev_session_file: (dev_session_view) -> bool
|
|
126
|
+
def self.shutdown_without_owner: (dev_session_view) -> shutdown_result
|
|
127
|
+
def self.shutdown_orphaned_overmind: (dev_session_view, Array[String]) -> shutdown_result
|
|
128
|
+
def self.print_kill_failure: (Symbol, Array[String]) -> void
|
|
129
|
+
def self.live_overmind_endpoint: (String, String?) -> String?
|
|
130
|
+
def self.live_overmind_endpoints: (String, String?) -> Array[String]
|
|
131
|
+
def self.overmind_endpoint_candidates: (String, String?, ?Array[String]) -> Array[String]
|
|
132
|
+
def self.overmind_socket_discovery: (String) -> overmind_socket_discovery
|
|
133
|
+
def self.failed_overmind_socket_discovery: (String, SystemCallError) -> overmind_socket_discovery
|
|
134
|
+
def self.scan_overmind_endpoints: (String, String?) -> Hash[Symbol, Array[String]]
|
|
135
|
+
def self.outstanding_overmind_endpoint_blockers: (dev_session_view) -> Array[String]
|
|
136
|
+
def self.unprobeable_endpoint_blockers: (Array[String]?) -> Array[String]
|
|
137
|
+
def self.unprobeable_endpoint_message: (String) -> String
|
|
138
|
+
def self.live_overmind_endpoint_message: (String) -> String
|
|
139
|
+
def self.overmind_endpoint_ownership: (String, ?String) -> Symbol
|
|
140
|
+
def self.overmind_endpoint_owned?: (String, ?String) -> bool
|
|
141
|
+
def self.overmind_endpoint_state: (String) -> Symbol
|
|
142
|
+
def self.probe_unix_socket: (String) -> Symbol
|
|
143
|
+
def self.overmind_endpoint_alive?: (String) -> bool
|
|
144
|
+
def self.overmind_control: (String, String, ?timeout_secs: Numeric) -> bool
|
|
145
|
+
def self.run_overmind_command: (Array[String], ?timeout_secs: Numeric) -> bool
|
|
146
|
+
def self.spawn_overmind_command: (Array[String]) -> Integer
|
|
147
|
+
def self.execute_overmind_command: (Array[String]) -> bool
|
|
148
|
+
def self.wait_for_overmind_command: (Integer, Numeric) -> (Process::Status | Symbol)?
|
|
149
|
+
def self.terminate_overmind_command: (Integer) -> void
|
|
150
|
+
def self.wait_for_overmind_group_exit: (Integer, Numeric, bool) -> [bool, bool]
|
|
151
|
+
def self.overmind_command_reaped?: (Integer) -> bool
|
|
152
|
+
def self.reap_overmind_command: (Integer) -> untyped
|
|
153
|
+
def self.signalable_pgid: (untyped) -> Integer?
|
|
154
|
+
def self.own_process_group: () -> Integer?
|
|
155
|
+
def self.signal_process_group: (Integer, String) -> bool
|
|
156
|
+
def self.process_group_alive?: (Integer) -> bool
|
|
157
|
+
def self.process_alive?: (Integer) -> bool
|
|
158
|
+
def self.classify_port_listeners: (Array[Integer]) -> port_listener_scan
|
|
159
|
+
def self.report_unsignalled_listeners: (port_listener_scan) -> void
|
|
160
|
+
def self.stop_attributed_pids: (Array[Integer]) -> void
|
|
161
|
+
def self.report_foreign_listeners: (Hash[Integer, Array[Integer]]) -> void
|
|
162
|
+
def self.report_unattributable_listeners: (Hash[Integer, Array[Integer]]) -> void
|
|
163
|
+
def self.report_unavailable_port_probes: (Array[Integer]) -> void
|
|
164
|
+
def self.attribute_pid: (Integer, String) -> Symbol
|
|
165
|
+
def self.signal_permission_attribution: (Integer) -> Symbol
|
|
166
|
+
def self.working_directory_for_pid: (Integer) -> String?
|
|
167
|
+
def self.probe_port_listeners: (Integer) -> [Array[Integer], Symbol]
|
|
168
|
+
def self.default_rails_kill_port: () -> Integer
|
|
169
|
+
def self.default_dev_server_kill_port: () -> Integer
|
|
170
|
+
def self.configured_dev_server_port: () -> Integer?
|
|
171
|
+
def self.configured_renderer_ports_for_kill: () -> Array[Integer]
|
|
172
|
+
def self.renderer_procfile_ports_for_kill: (?String) -> Array[Integer]
|
|
173
|
+
def self.renderer_procfile_default_ports: (String) -> Array[Integer]
|
|
174
|
+
def self.stale_cleanup_candidates: (String) -> Array[String]
|
|
175
|
+
def self.wait_until: (Numeric) { () -> untyped } -> bool
|
|
176
|
+
def self.monotonic_now: () -> Float
|
|
37
177
|
end
|
|
38
178
|
end
|
|
39
179
|
end
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
module ReactOnRails
|
|
2
2
|
module GitUtils
|
|
3
|
-
|
|
3
|
+
interface _MessageHandler
|
|
4
|
+
def add_error: (String message) -> void
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def self.uncommitted_changes?: (_MessageHandler message_handler, ?git_installed: bool) -> bool
|
|
4
8
|
def self.git_installed?: () -> bool
|
|
5
9
|
def self.current_branch: () -> String?
|
|
6
10
|
def self.rspec_fixture_branches: () -> Array[String]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module ReactOnRails
|
|
2
2
|
module Locales
|
|
3
3
|
def self.compile: (?force: bool) -> (ToJs | ToJson)
|
|
4
|
-
def self.check_config_directory_exists: (directory: String?, key_name: String, remove_if: String) -> void
|
|
4
|
+
def self.check_config_directory_exists: (directory: (String | Pathname)?, key_name: String, remove_if: String) -> void
|
|
5
5
|
|
|
6
6
|
class Base
|
|
7
7
|
def initialize: (?force: bool) -> void
|
|
@@ -16,15 +16,15 @@ module ReactOnRails
|
|
|
16
16
|
def files: () -> Array[String]
|
|
17
17
|
def file: (String name) -> String
|
|
18
18
|
def locale_files: () -> Array[String]
|
|
19
|
-
def i18n_dir: () -> String?
|
|
20
|
-
def i18n_yml_dir: () -> String?
|
|
19
|
+
def i18n_dir: () -> (String | Pathname)?
|
|
20
|
+
def i18n_yml_dir: () -> (String | Pathname)?
|
|
21
21
|
def default_locale: () -> String
|
|
22
22
|
def convert: () -> void
|
|
23
23
|
def generate_file: (String template, String path) -> void
|
|
24
24
|
def generate_translations: () -> [String, String]
|
|
25
25
|
def format: (untyped input) -> Symbol
|
|
26
26
|
def flatten_defaults: (Hash[untyped, untyped] val) -> Hash[Symbol, Hash[Symbol, untyped]]
|
|
27
|
-
def flatten: (Hash[
|
|
27
|
+
def flatten: [Key] (Hash[Key, untyped] translations) -> Hash[Key | Symbol, untyped]
|
|
28
28
|
def template_translations: () -> String
|
|
29
29
|
def template_default: () -> String
|
|
30
30
|
end
|
|
@@ -9,14 +9,14 @@ module ReactOnRails
|
|
|
9
9
|
attr_reader js_code: String?
|
|
10
10
|
attr_reader console_messages: String?
|
|
11
11
|
|
|
12
|
-
def initialize: (?component_name: String?, ?err: StandardError?, ?props: String?, ?js_code: String?, ?console_messages: String?) -> void
|
|
12
|
+
def initialize: (?component_name: String?, ?err: StandardError?, ?props: (String | Hash[untyped, untyped])?, ?js_code: String?, ?console_messages: String?) -> void
|
|
13
13
|
def to_honeybadger_context: () -> Hash[Symbol, untyped]
|
|
14
14
|
def raven_context: () -> Hash[Symbol, untyped]
|
|
15
15
|
def to_error_context: () -> Hash[Symbol, untyped]
|
|
16
16
|
|
|
17
17
|
private
|
|
18
18
|
|
|
19
|
-
def calc_message: (String? component_name, String? console_messages, StandardError? err, String? js_code, String? props) -> [String?, String]
|
|
19
|
+
def calc_message: (String? component_name, String? console_messages, StandardError? err, String? js_code, (String | Hash[untyped, untyped])? props) -> [String?, String]
|
|
20
20
|
def build_troubleshooting_suggestions: (String? component_name, StandardError? err, String? console_messages) -> String
|
|
21
21
|
end
|
|
22
22
|
end
|
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
module ReactOnRails
|
|
2
2
|
module TestHelper
|
|
3
|
+
interface _AssetsStatusChecker
|
|
4
|
+
def stale_generated_webpack_files: () -> Array[String | Pathname]
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
interface _AssetsCompiler
|
|
8
|
+
def compile_assets: () -> void
|
|
9
|
+
end
|
|
10
|
+
|
|
3
11
|
def self.configure_rspec_to_compile_assets: (untyped config) -> void
|
|
4
|
-
def self.ensure_assets_compiled: (
|
|
12
|
+
def self.ensure_assets_compiled: (
|
|
13
|
+
?webpack_assets_status_checker: _AssetsStatusChecker?,
|
|
14
|
+
?webpack_assets_compiler: _AssetsCompiler?,
|
|
15
|
+
?source_path: (String | Pathname)?,
|
|
16
|
+
?generated_assets_full_path: (String | Pathname)?,
|
|
17
|
+
?webpack_generated_files: Array[String]?
|
|
18
|
+
) -> void
|
|
5
19
|
def self.webpack_assets_compiled?: () -> bool
|
|
6
20
|
|
|
7
21
|
module EnsureAssetsCompiled
|
|
@@ -12,10 +12,10 @@ module ReactOnRails
|
|
|
12
12
|
def self.react_on_rails_pro_version: () -> String?
|
|
13
13
|
def self.rsc_support_enabled?: () -> bool
|
|
14
14
|
def self.full_text_errors_enabled?: () -> bool
|
|
15
|
-
def self.smart_trim: (
|
|
15
|
+
def self.smart_trim: (_ToS str, ?Integer max_length) -> String
|
|
16
16
|
def self.find_most_recent_mtime: (Array[String] files) -> Time?
|
|
17
17
|
def self.prepend_to_file_if_text_not_present: (file: String, text_to_prepend: String, regex: Regexp) -> void
|
|
18
|
-
def self.detect_package_manager: () ->
|
|
18
|
+
def self.detect_package_manager: () -> (:npm | :yarn | :pnpm | :bun)
|
|
19
19
|
def self.default_troubleshooting_section: () -> String
|
|
20
20
|
def self.server_bundle_js_file_path: () -> String
|
|
21
21
|
def self.running_on_windows?: () -> bool
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
module ReactOnRails
|
|
2
|
+
class VersionChecker
|
|
3
|
+
module LockfileResolution
|
|
4
|
+
def self.version: (String dir, String package_name) -> String?
|
|
5
|
+
def self.berry_yarn_version: (String content, String package_name) -> String?
|
|
6
|
+
def self.guard: [T] () { () -> T } -> T?
|
|
7
|
+
def self.log_ignored: (Exception error) -> void
|
|
8
|
+
|
|
9
|
+
module PnpmLockfile
|
|
10
|
+
def self.version: (String path, String package_name) -> String?
|
|
11
|
+
def self.dependencies: (Hash[String, untyped] doc) -> Hash[String, untyped]?
|
|
12
|
+
def self.project_document: (String path) -> Hash[String, untyped]?
|
|
13
|
+
def self.strip_peer_suffix: (String? version) -> String?
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
module BunLockfile
|
|
17
|
+
STRING_LITERAL: Regexp
|
|
18
|
+
LINE_COMMENT: Regexp
|
|
19
|
+
BLOCK_COMMENT: Regexp
|
|
20
|
+
TRAILING_COMMA: Regexp
|
|
21
|
+
|
|
22
|
+
def self.version: (String path, String package_name) -> String?
|
|
23
|
+
def self.jsonc_to_json: (String content) -> String
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
module BerryYarnLockfile
|
|
27
|
+
def self.version: (String content, String package_name) -> String?
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -1,12 +1,35 @@
|
|
|
1
1
|
module ReactOnRails
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
class VersionChecker
|
|
3
|
+
VERSION_PARTS_REGEX: Regexp
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
attr_reader node_package_version: untyped
|
|
6
6
|
|
|
7
|
-
def self.
|
|
8
|
-
def
|
|
9
|
-
def
|
|
10
|
-
|
|
7
|
+
def self.build: () -> VersionChecker
|
|
8
|
+
def initialize: (untyped node_package_version) -> void
|
|
9
|
+
def validate_version_and_package_compatibility!: () -> void
|
|
10
|
+
|
|
11
|
+
class NodePackageVersion
|
|
12
|
+
attr_reader package_json: untyped
|
|
13
|
+
attr_reader yarn_lock: untyped
|
|
14
|
+
attr_reader package_lock: untyped
|
|
15
|
+
|
|
16
|
+
def self.build: () -> NodePackageVersion
|
|
17
|
+
def self.package_json_path: () -> untyped
|
|
18
|
+
def self.yarn_lock_path: () -> String
|
|
19
|
+
def self.package_lock_path: () -> String
|
|
20
|
+
def initialize: (untyped package_json, ?untyped yarn_lock, ?untyped package_lock) -> void
|
|
21
|
+
def raw: () -> String?
|
|
22
|
+
def react_on_rails_package?: () -> bool
|
|
23
|
+
def react_on_rails_pro_package?: () -> bool
|
|
24
|
+
def package_name: () -> String
|
|
25
|
+
def semver_wildcard?: () -> bool
|
|
26
|
+
def special_version_string?: () -> bool
|
|
27
|
+
def wildcard_or_x_range?: () -> untyped
|
|
28
|
+
def range_operator?: () -> bool
|
|
29
|
+
def range_syntax?: () -> bool
|
|
30
|
+
def local_path_or_url?: () -> bool
|
|
31
|
+
def workspace_protocol?: () -> bool
|
|
32
|
+
def parts: () -> Array[String]?
|
|
33
|
+
end
|
|
11
34
|
end
|
|
12
35
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: react_on_rails
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 17.
|
|
4
|
+
version: 17.2.0.rc.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Justin Gordon
|
|
@@ -132,6 +132,7 @@ files:
|
|
|
132
132
|
- lib/generators/react_on_rails/base_generator.rb
|
|
133
133
|
- lib/generators/react_on_rails/demo_page_config.rb
|
|
134
134
|
- lib/generators/react_on_rails/dev_tests_generator.rb
|
|
135
|
+
- lib/generators/react_on_rails/generated_webpack_config_pair.rb
|
|
135
136
|
- lib/generators/react_on_rails/generator_helper.rb
|
|
136
137
|
- lib/generators/react_on_rails/generator_messages.rb
|
|
137
138
|
- lib/generators/react_on_rails/generator_messages/ci_section.rb
|
|
@@ -289,6 +290,7 @@ files:
|
|
|
289
290
|
- lib/react_on_rails/utils.rb
|
|
290
291
|
- lib/react_on_rails/version.rb
|
|
291
292
|
- lib/react_on_rails/version_checker.rb
|
|
293
|
+
- lib/react_on_rails/version_checker/lockfile_resolution.rb
|
|
292
294
|
- lib/react_on_rails/version_synchronizer.rb
|
|
293
295
|
- lib/react_on_rails/version_syntax_converter.rb
|
|
294
296
|
- lib/tasks/agent_guardrails.rake
|
|
@@ -337,6 +339,7 @@ files:
|
|
|
337
339
|
- sig/react_on_rails/typescript_response_types/generated_file_writer.rbs
|
|
338
340
|
- sig/react_on_rails/utils.rbs
|
|
339
341
|
- sig/react_on_rails/version_checker.rbs
|
|
342
|
+
- sig/react_on_rails/version_checker/lockfile_resolution.rbs
|
|
340
343
|
- skills/doctor-fix-loop/SKILL.md
|
|
341
344
|
- skills/install-and-upgrade/SKILL.md
|
|
342
345
|
- skills/rsc-adoption/SKILL.md
|