stimulus_reflex 3.5.0.rc3 → 3.5.0.rc4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +6 -5
- data/app/assets/javascripts/stimulus_reflex.js +6 -4
- data/app/assets/javascripts/stimulus_reflex.umd.js +6 -3
- data/app/channels/stimulus_reflex/channel.rb +49 -53
- data/lib/install/yarn.rb +1 -1
- data/lib/stimulus_reflex/reflex.rb +14 -29
- data/lib/stimulus_reflex/reflex_data.rb +17 -17
- data/lib/stimulus_reflex/reflex_factory.rb +49 -26
- data/lib/stimulus_reflex/version.rb +1 -1
- data/package.json +1 -1
- data/stimulus_reflex.gemspec +1 -1
- data/yarn.lock +165 -151
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de1231151ed33d07ced1d833af4ed33e44f65715fe9efa2b47a609839cb02772
|
4
|
+
data.tar.gz: a14a7c5e9d642aca0d64bcd240b4d8f0eea0c4cdd48a4588f452fcf538453b44
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be8a19b025cb8d5b5ae75430b60386f9e2e3e0eb68e6549567aa6e2af99960bd659e51b2f9ba66d8daf324ce2ac7b1230e8efd1f3b52f69ecb7ecf6e49b9d077
|
7
|
+
data.tar.gz: b0eed2ce16618c6db978cafb7d12e4550a860c48343c7fd885fa68efe53bbe37c61f0d53755bbb3ff7715f536c5b131f2bdd0c68a782d5f67c990540dc6dd2f8
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
stimulus_reflex (3.5.0.
|
4
|
+
stimulus_reflex (3.5.0.rc4)
|
5
5
|
actioncable (>= 5.2, < 8)
|
6
6
|
actionpack (>= 5.2, < 8)
|
7
7
|
actionview (>= 5.2, < 8)
|
@@ -123,15 +123,15 @@ GEM
|
|
123
123
|
net-smtp (0.3.3)
|
124
124
|
net-protocol
|
125
125
|
nio4r (2.5.8)
|
126
|
-
nokogiri (1.
|
126
|
+
nokogiri (1.16.2-x86_64-darwin)
|
127
127
|
racc (~> 1.4)
|
128
|
-
nokogiri (1.
|
128
|
+
nokogiri (1.16.2-x86_64-linux)
|
129
129
|
racc (~> 1.4)
|
130
130
|
parallel (1.22.1)
|
131
131
|
parser (3.2.1.0)
|
132
132
|
ast (~> 2.4.1)
|
133
|
-
racc (1.7.
|
134
|
-
rack (2.2.
|
133
|
+
racc (1.7.3)
|
134
|
+
rack (2.2.8.1)
|
135
135
|
rack-test (2.1.0)
|
136
136
|
rack (>= 1.3)
|
137
137
|
rails (7.0.4.2)
|
@@ -204,6 +204,7 @@ GEM
|
|
204
204
|
PLATFORMS
|
205
205
|
x86_64-darwin-19
|
206
206
|
x86_64-darwin-22
|
207
|
+
x86_64-darwin-23
|
207
208
|
x86_64-linux
|
208
209
|
|
209
210
|
DEPENDENCIES
|
@@ -945,7 +945,7 @@ const extractDataAttributes = element => {
|
|
945
945
|
|
946
946
|
var name = "stimulus_reflex";
|
947
947
|
|
948
|
-
var version = "3.5.0-
|
948
|
+
var version = "3.5.0-rc4";
|
949
949
|
|
950
950
|
var description = "Build reactive applications with the Rails tooling you already know and love.";
|
951
951
|
|
@@ -1260,7 +1260,7 @@ const findControllerByReflexName = (reflexName, controllers) => {
|
|
1260
1260
|
const identifier = reflexNameToControllerIdentifier(extractReflexName(reflexName));
|
1261
1261
|
return identifier === controller.identifier;
|
1262
1262
|
}));
|
1263
|
-
return controller
|
1263
|
+
return controller;
|
1264
1264
|
};
|
1265
1265
|
|
1266
1266
|
const scanForReflexes = debounce((() => {
|
@@ -1281,7 +1281,8 @@ const scanForReflexesOnElement = (element, controller = null) => {
|
|
1281
1281
|
const controllerName = controller ? controller.identifier : "stimulus-reflex";
|
1282
1282
|
actions.push(`${reflexName.split("->")[0]}->${controllerName}#__perform`);
|
1283
1283
|
const parentControllerElement = element.closest(`[data-controller~=${controllerName}]`);
|
1284
|
-
|
1284
|
+
const elementPreviouslyHadStimulusReflexController = element === parentControllerElement && controllerName === "stimulus-reflex";
|
1285
|
+
if (!parentControllerElement || elementPreviouslyHadStimulusReflexController) {
|
1285
1286
|
controllers.push(controllerName);
|
1286
1287
|
}
|
1287
1288
|
}));
|
@@ -1440,6 +1441,7 @@ document.addEventListener("readystatechange", (() => {
|
|
1440
1441
|
|
1441
1442
|
var StimulusReflex = Object.freeze({
|
1442
1443
|
__proto__: null,
|
1444
|
+
StimulusReflexController: StimulusReflexController,
|
1443
1445
|
initialize: initialize,
|
1444
1446
|
reflexes: reflexes,
|
1445
1447
|
register: register,
|
@@ -1467,4 +1469,4 @@ const global = {
|
|
1467
1469
|
|
1468
1470
|
window.StimulusReflex = global;
|
1469
1471
|
|
1470
|
-
export { global as default, initialize, reflexes, register, scanForReflexes, scanForReflexesOnElement, useReflex };
|
1472
|
+
export { StimulusReflexController, global as default, initialize, reflexes, register, scanForReflexes, scanForReflexesOnElement, useReflex };
|
@@ -869,7 +869,7 @@
|
|
869
869
|
return attrs;
|
870
870
|
};
|
871
871
|
var name = "stimulus_reflex";
|
872
|
-
var version = "3.5.0-
|
872
|
+
var version = "3.5.0-rc4";
|
873
873
|
var description = "Build reactive applications with the Rails tooling you already know and love.";
|
874
874
|
var keywords = [ "ruby", "rails", "websockets", "actioncable", "turbolinks", "reactive", "cable", "ujs", "ssr", "stimulus", "reflex", "stimulus_reflex", "dom", "morphdom" ];
|
875
875
|
var homepage = "https://docs.stimulusreflex.com";
|
@@ -1152,7 +1152,7 @@
|
|
1152
1152
|
const identifier = reflexNameToControllerIdentifier(extractReflexName(reflexName));
|
1153
1153
|
return identifier === controller.identifier;
|
1154
1154
|
}));
|
1155
|
-
return controller
|
1155
|
+
return controller;
|
1156
1156
|
};
|
1157
1157
|
const scanForReflexes = debounce((() => {
|
1158
1158
|
const reflexElements = document.querySelectorAll(`[${Schema.reflex}]`);
|
@@ -1171,7 +1171,8 @@
|
|
1171
1171
|
const controllerName = controller ? controller.identifier : "stimulus-reflex";
|
1172
1172
|
actions.push(`${reflexName.split("->")[0]}->${controllerName}#__perform`);
|
1173
1173
|
const parentControllerElement = element.closest(`[data-controller~=${controllerName}]`);
|
1174
|
-
|
1174
|
+
const elementPreviouslyHadStimulusReflexController = element === parentControllerElement && controllerName === "stimulus-reflex";
|
1175
|
+
if (!parentControllerElement || elementPreviouslyHadStimulusReflexController) {
|
1175
1176
|
controllers.push(controllerName);
|
1176
1177
|
}
|
1177
1178
|
}));
|
@@ -1318,6 +1319,7 @@
|
|
1318
1319
|
}));
|
1319
1320
|
var StimulusReflex = Object.freeze({
|
1320
1321
|
__proto__: null,
|
1322
|
+
StimulusReflexController: StimulusReflexController,
|
1321
1323
|
initialize: initialize,
|
1322
1324
|
reflexes: reflexes,
|
1323
1325
|
register: register,
|
@@ -1342,6 +1344,7 @@
|
|
1342
1344
|
}
|
1343
1345
|
};
|
1344
1346
|
window.StimulusReflex = global;
|
1347
|
+
exports.StimulusReflexController = StimulusReflexController;
|
1345
1348
|
exports.default = global;
|
1346
1349
|
exports.initialize = initialize;
|
1347
1350
|
exports.reflexes = reflexes;
|
@@ -1,8 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class StimulusReflex::Channel < StimulusReflex.configuration.parent_channel.constantize
|
4
|
-
attr_reader :reflex_data
|
5
|
-
|
6
4
|
def stream_name
|
7
5
|
[params[:channel], connection.connection_identifier].reject(&:blank?).join(":")
|
8
6
|
end
|
@@ -13,76 +11,74 @@ class StimulusReflex::Channel < StimulusReflex.configuration.parent_channel.cons
|
|
13
11
|
end
|
14
12
|
|
15
13
|
def receive(data)
|
16
|
-
@reflex_data = StimulusReflex::ReflexData.new(data)
|
17
14
|
begin
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
error = exception_with_backtrace(exception)
|
23
|
-
error_message = "\e[31mReflex #{reflex_data.target} failed: #{error[:message]} [#{reflex_data.url}]\e[0m\n#{error[:stack]}"
|
15
|
+
reflex = StimulusReflex::ReflexFactory.new(self, data).call
|
16
|
+
delegate_call_to_reflex reflex
|
17
|
+
rescue => exception
|
18
|
+
error = exception_with_backtrace(exception)
|
24
19
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
20
|
+
if reflex
|
21
|
+
error_message = "\e[31mReflex #{reflex.data.target} failed: #{error[:message]} [#{reflex.url}]\e[0m\n#{error[:stack]}"
|
22
|
+
reflex.rescue_with_handler(exception)
|
23
|
+
reflex.logger&.error error_message
|
24
|
+
reflex.broadcast_error data: data, error: "#{exception} #{exception.backtrace.first.split(":in ")[0] if Rails.env.development?}"
|
25
|
+
else
|
26
|
+
error_message = "\e[31mReflex failed: #{error[:message]} \e[0m\n#{error[:stack]}"
|
27
|
+
unless exception.is_a?(StimulusReflex::VersionMismatchError)
|
28
|
+
StimulusReflex.config.logger.error error_message
|
29
|
+
end
|
33
30
|
|
34
|
-
|
35
|
-
|
31
|
+
if error_message.to_s.include? "No route matches"
|
32
|
+
initializer_path = Rails.root.join("config", "initializers", "stimulus_reflex.rb")
|
36
33
|
|
37
|
-
|
38
|
-
|
34
|
+
StimulusReflex.config.logger.warn <<~NOTE
|
35
|
+
\e[33mNOTE: StimulusReflex failed to locate a matching route and could not re-render the page.
|
39
36
|
|
40
|
-
|
41
|
-
|
37
|
+
If your app uses Rack middleware to rewrite part of the request path, you must enable those middleware modules in StimulusReflex.
|
38
|
+
The StimulusReflex initializer should be located at #{initializer_path}, or you can generate it with:
|
42
39
|
|
43
|
-
|
40
|
+
$ bundle exec rails generate stimulus_reflex:config
|
44
41
|
|
45
|
-
|
42
|
+
Configure any required middleware:
|
46
43
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
44
|
+
StimulusReflex.configure do |config|
|
45
|
+
config.middleware.use FirstRackMiddleware
|
46
|
+
config.middleware.use SecondRackMiddleware
|
47
|
+
end\e[0m
|
51
48
|
|
52
|
-
|
53
|
-
end
|
49
|
+
NOTE
|
54
50
|
end
|
55
|
-
return
|
56
51
|
end
|
52
|
+
return
|
53
|
+
end
|
57
54
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
end
|
71
|
-
end
|
72
|
-
ensure
|
73
|
-
if reflex
|
74
|
-
commit_session(reflex)
|
75
|
-
report_failed_basic_auth(reflex) if reflex.controller?
|
76
|
-
reflex.logger&.log_all_operations
|
55
|
+
if reflex.halted?
|
56
|
+
reflex.broadcast_halt data: data
|
57
|
+
elsif reflex.forbidden?
|
58
|
+
reflex.broadcast_forbid data: data
|
59
|
+
else
|
60
|
+
begin
|
61
|
+
reflex.broadcast(reflex.selectors, data)
|
62
|
+
rescue => exception
|
63
|
+
reflex.rescue_with_handler(exception)
|
64
|
+
error = exception_with_backtrace(exception)
|
65
|
+
reflex.broadcast_error data: data, error: "#{exception} #{exception.backtrace.first.split(":in ")[0] if Rails.env.development?}"
|
66
|
+
reflex.logger&.error "\e[31mReflex failed to re-render: #{error[:message]} [#{reflex.url}]\e[0m\n#{error[:stack]}"
|
77
67
|
end
|
78
68
|
end
|
69
|
+
ensure
|
70
|
+
if reflex
|
71
|
+
commit_session(reflex)
|
72
|
+
report_failed_basic_auth(reflex) if reflex.controller?
|
73
|
+
reflex.logger&.log_all_operations
|
74
|
+
end
|
79
75
|
end
|
80
76
|
|
81
77
|
private
|
82
78
|
|
83
79
|
def delegate_call_to_reflex(reflex)
|
84
|
-
method_name =
|
85
|
-
arguments =
|
80
|
+
method_name = reflex.method_name
|
81
|
+
arguments = reflex.data.arguments
|
86
82
|
method = reflex.method(method_name)
|
87
83
|
|
88
84
|
policy = StimulusReflex::ReflexMethodInvocationPolicy.new(method, arguments)
|
data/lib/install/yarn.rb
CHANGED
@@ -13,7 +13,7 @@ add = package_list.exist? ? package_list.readlines.map(&:chomp) : []
|
|
13
13
|
dev = dev_package_list.exist? ? dev_package_list.readlines.map(&:chomp) : []
|
14
14
|
drop = drop_package_list.exist? ? drop_package_list.readlines.map(&:chomp) : []
|
15
15
|
|
16
|
-
json = JSON.parse(
|
16
|
+
json = JSON.parse(package_json_path.read)
|
17
17
|
|
18
18
|
if add.present? || dev.present? || drop.present?
|
19
19
|
|
@@ -3,20 +3,6 @@
|
|
3
3
|
require "stimulus_reflex/cable_readiness"
|
4
4
|
require "stimulus_reflex/version_checker"
|
5
5
|
|
6
|
-
# TODO remove xpath_controller and xpath_element for v4
|
7
|
-
ClientAttributes = Struct.new(
|
8
|
-
:id,
|
9
|
-
:tab_id,
|
10
|
-
:reflex_controller,
|
11
|
-
:xpath_controller,
|
12
|
-
:xpath_element,
|
13
|
-
:permanent_attribute_name,
|
14
|
-
:version,
|
15
|
-
:npm_version,
|
16
|
-
:suppress_logging,
|
17
|
-
keyword_init: true
|
18
|
-
)
|
19
|
-
|
20
6
|
class StimulusReflex::Reflex
|
21
7
|
prepend StimulusReflex::CableReadiness
|
22
8
|
include StimulusReflex::VersionChecker
|
@@ -26,32 +12,27 @@ class StimulusReflex::Reflex
|
|
26
12
|
include CableReady::Identifiable
|
27
13
|
|
28
14
|
attr_accessor :payload, :headers
|
29
|
-
attr_reader :channel, :
|
30
|
-
|
31
|
-
alias_method :action_name, :method_name # for compatibility with controller libraries like Pundit that expect an action name
|
15
|
+
attr_reader :channel, :reflex_data, :broadcaster
|
32
16
|
|
33
17
|
delegate :connection, :stream_name, to: :channel
|
34
18
|
delegate :controller_class, :flash, :session, to: :request
|
35
19
|
delegate :broadcast, :broadcast_halt, :broadcast_forbid, :broadcast_error, to: :broadcaster
|
20
|
+
|
36
21
|
# TODO remove xpath_controller and xpath_element for v4
|
37
|
-
delegate :id, :tab_id, :reflex_controller, :xpath_controller, :xpath_element, :permanent_attribute_name, :version, :npm_version, :suppress_logging, to: :
|
22
|
+
delegate :url, :element, :selectors, :method_name, :id, :tab_id, :reflex_controller, :xpath_controller, :xpath_element, :permanent_attribute_name, :version, :npm_version, :suppress_logging, to: :reflex_data
|
23
|
+
# END TODO: remove
|
38
24
|
|
39
|
-
|
25
|
+
alias_method :action_name, :method_name # for compatibility with controller libraries like Pundit that expect an action name
|
26
|
+
alias_method :data, :reflex_data
|
27
|
+
|
28
|
+
def initialize(channel, reflex_data:)
|
40
29
|
@channel = channel
|
41
|
-
@
|
42
|
-
@element = element
|
43
|
-
@selectors = selectors
|
44
|
-
@method_name = method_name
|
45
|
-
@params = params
|
46
|
-
@client_attributes = ClientAttributes.new(client_attributes)
|
30
|
+
@reflex_data = reflex_data
|
47
31
|
@broadcaster = StimulusReflex::PageBroadcaster.new(self)
|
48
|
-
@logger = suppress_logging ? nil : StimulusReflex::Logger.new(self)
|
49
32
|
@payload = {}
|
50
33
|
@headers = {}
|
51
34
|
|
52
35
|
check_version!
|
53
|
-
|
54
|
-
self.params
|
55
36
|
end
|
56
37
|
|
57
38
|
# TODO: remove this for v4
|
@@ -61,6 +42,10 @@ class StimulusReflex::Reflex
|
|
61
42
|
end
|
62
43
|
# END TODO: remove
|
63
44
|
|
45
|
+
def logger
|
46
|
+
@logger ||= StimulusReflex::Logger.new(self) unless suppress_logging
|
47
|
+
end
|
48
|
+
|
64
49
|
def request
|
65
50
|
@request ||= begin
|
66
51
|
uri = URI.parse(url)
|
@@ -91,7 +76,7 @@ class StimulusReflex::Reflex
|
|
91
76
|
req = ActionDispatch::Request.new(env)
|
92
77
|
|
93
78
|
# fetch path params (controller, action, ...) and apply them
|
94
|
-
request_params = StimulusReflex::RequestParameters.new(params:
|
79
|
+
request_params = StimulusReflex::RequestParameters.new(params: reflex_data.params, req: req, url: url)
|
95
80
|
req = request_params.apply!
|
96
81
|
|
97
82
|
req
|
@@ -4,7 +4,7 @@ class StimulusReflex::ReflexData
|
|
4
4
|
attr_reader :data
|
5
5
|
|
6
6
|
def initialize(data)
|
7
|
-
@data = data
|
7
|
+
@data = data.deep_merge(data.deep_transform_keys { |k| k.to_s.underscore }).with_indifferent_access
|
8
8
|
end
|
9
9
|
|
10
10
|
def reflex_name
|
@@ -14,13 +14,13 @@ class StimulusReflex::ReflexData
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def selectors
|
17
|
-
selectors = (data[
|
18
|
-
selectors = data[
|
17
|
+
selectors = (data[:selectors] || []).select(&:present?)
|
18
|
+
selectors = data[:selectors] = ["body"] if selectors.blank?
|
19
19
|
selectors
|
20
20
|
end
|
21
21
|
|
22
22
|
def target
|
23
|
-
data[
|
23
|
+
data[:target].to_s
|
24
24
|
end
|
25
25
|
|
26
26
|
def method_name
|
@@ -28,11 +28,11 @@ class StimulusReflex::ReflexData
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def arguments
|
31
|
-
(data[
|
31
|
+
(data[:args] || []).map { |arg| object_with_indifferent_access arg } || []
|
32
32
|
end
|
33
33
|
|
34
34
|
def url
|
35
|
-
data[
|
35
|
+
data[:url].to_s
|
36
36
|
end
|
37
37
|
|
38
38
|
def element
|
@@ -40,15 +40,15 @@ class StimulusReflex::ReflexData
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def permanent_attribute_name
|
43
|
-
data[
|
43
|
+
data[:permanent_attribute_name]
|
44
44
|
end
|
45
45
|
|
46
46
|
def suppress_logging
|
47
|
-
data[
|
47
|
+
data[:suppress_logging]
|
48
48
|
end
|
49
49
|
|
50
50
|
def form_data
|
51
|
-
Rack::Utils.parse_nested_query(data[
|
51
|
+
Rack::Utils.parse_nested_query(data[:form_data])
|
52
52
|
end
|
53
53
|
|
54
54
|
def params
|
@@ -56,7 +56,7 @@ class StimulusReflex::ReflexData
|
|
56
56
|
end
|
57
57
|
|
58
58
|
def form_params
|
59
|
-
form_data.deep_merge(data[
|
59
|
+
form_data.deep_merge(data[:params] || {})
|
60
60
|
end
|
61
61
|
|
62
62
|
def url_params
|
@@ -64,33 +64,33 @@ class StimulusReflex::ReflexData
|
|
64
64
|
end
|
65
65
|
|
66
66
|
def id
|
67
|
-
data[
|
67
|
+
data[:id]
|
68
68
|
end
|
69
69
|
|
70
70
|
def tab_id
|
71
|
-
data[
|
71
|
+
data[:tab_id]
|
72
72
|
end
|
73
73
|
|
74
74
|
# TODO: remove this in v4
|
75
75
|
def xpath_controller
|
76
|
-
data[
|
76
|
+
data[:xpath_controller]
|
77
77
|
end
|
78
78
|
|
79
79
|
def xpath_element
|
80
|
-
data[
|
80
|
+
data[:xpath_element]
|
81
81
|
end
|
82
82
|
# END TODO remove
|
83
83
|
|
84
84
|
def reflex_controller
|
85
|
-
data[
|
85
|
+
data[:reflex_controller]
|
86
86
|
end
|
87
87
|
|
88
88
|
def npm_version
|
89
|
-
data[
|
89
|
+
data[:version].to_s
|
90
90
|
end
|
91
91
|
|
92
92
|
def version
|
93
|
-
|
93
|
+
npm_version.gsub("-pre", ".pre").gsub("-rc", ".rc")
|
94
94
|
end
|
95
95
|
|
96
96
|
private
|
@@ -1,36 +1,59 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class StimulusReflex::ReflexFactory
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
4
|
+
attr_reader :channel, :data
|
5
|
+
|
6
|
+
delegate :reflex_name, :method_name, to: :data
|
7
|
+
|
8
|
+
def initialize(channel, data)
|
9
|
+
@channel = channel
|
10
|
+
@data = StimulusReflex::ReflexData.new(data)
|
11
|
+
end
|
12
|
+
|
13
|
+
def call
|
14
|
+
verify_method_name!
|
15
|
+
reflex_class.new(channel, reflex_data: data)
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def verify_method_name!
|
21
|
+
return if default_reflex?
|
22
|
+
|
23
|
+
argument_error = ArgumentError.new("Reflex method '#{method_name}' is not defined on class '#{reflex_name}' or on any of its ancestors")
|
24
|
+
|
25
|
+
if reflex_method.nil?
|
26
|
+
raise argument_error
|
26
27
|
end
|
27
28
|
|
28
|
-
|
29
|
-
|
29
|
+
if !safe_ancestors.include?(reflex_method.owner)
|
30
|
+
raise argument_error
|
30
31
|
end
|
32
|
+
end
|
31
33
|
|
32
|
-
|
33
|
-
|
34
|
+
def reflex_class
|
35
|
+
@reflex_class ||= reflex_name.constantize.tap do |klass|
|
36
|
+
unless klass.ancestors.include?(StimulusReflex::Reflex)
|
37
|
+
raise ArgumentError.new("#{reflex_name} is not a StimulusReflex::Reflex")
|
38
|
+
end
|
34
39
|
end
|
35
40
|
end
|
41
|
+
|
42
|
+
def reflex_method
|
43
|
+
if reflex_class.public_instance_methods.include?(method_name.to_sym)
|
44
|
+
reflex_class.public_instance_method(method_name)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def default_reflex?
|
49
|
+
method_name == "default_reflex" && reflex_method.owner == ::StimulusReflex::Reflex
|
50
|
+
end
|
51
|
+
|
52
|
+
def safe_ancestors
|
53
|
+
# We want to include every class and module up to the `StimulusReflex::Reflex` class,
|
54
|
+
# but not the StimulusReflex::Reflex itself
|
55
|
+
reflex_class_index = reflex_class.ancestors.index(StimulusReflex::Reflex) - 1
|
56
|
+
|
57
|
+
reflex_class.ancestors.to(reflex_class_index)
|
58
|
+
end
|
36
59
|
end
|
data/package.json
CHANGED
data/stimulus_reflex.gemspec
CHANGED
data/yarn.lock
CHANGED
@@ -200,120 +200,120 @@
|
|
200
200
|
"@docsearch/css" "3.4.0"
|
201
201
|
algoliasearch "^4.0.0"
|
202
202
|
|
203
|
-
"@esbuild/android-arm64@0.
|
204
|
-
version "0.
|
205
|
-
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.
|
206
|
-
integrity sha512-
|
207
|
-
|
208
|
-
"@esbuild/android-arm@0.
|
209
|
-
version "0.
|
210
|
-
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.
|
211
|
-
integrity sha512-
|
212
|
-
|
213
|
-
"@esbuild/android-x64@0.
|
214
|
-
version "0.
|
215
|
-
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.
|
216
|
-
integrity sha512-
|
217
|
-
|
218
|
-
"@esbuild/darwin-arm64@0.
|
219
|
-
version "0.
|
220
|
-
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.
|
221
|
-
integrity sha512-
|
222
|
-
|
223
|
-
"@esbuild/darwin-x64@0.
|
224
|
-
version "0.
|
225
|
-
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.
|
226
|
-
integrity sha512-
|
227
|
-
|
228
|
-
"@esbuild/freebsd-arm64@0.
|
229
|
-
version "0.
|
230
|
-
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.
|
231
|
-
integrity sha512-
|
232
|
-
|
233
|
-
"@esbuild/freebsd-x64@0.
|
234
|
-
version "0.
|
235
|
-
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.
|
236
|
-
integrity sha512-
|
237
|
-
|
238
|
-
"@esbuild/linux-arm64@0.
|
239
|
-
version "0.
|
240
|
-
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.
|
241
|
-
integrity sha512-
|
242
|
-
|
243
|
-
"@esbuild/linux-arm@0.
|
244
|
-
version "0.
|
245
|
-
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.
|
246
|
-
integrity sha512
|
247
|
-
|
248
|
-
"@esbuild/linux-ia32@0.
|
249
|
-
version "0.
|
250
|
-
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.
|
251
|
-
integrity sha512-
|
203
|
+
"@esbuild/android-arm64@0.18.20":
|
204
|
+
version "0.18.20"
|
205
|
+
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622"
|
206
|
+
integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==
|
207
|
+
|
208
|
+
"@esbuild/android-arm@0.18.20":
|
209
|
+
version "0.18.20"
|
210
|
+
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682"
|
211
|
+
integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==
|
212
|
+
|
213
|
+
"@esbuild/android-x64@0.18.20":
|
214
|
+
version "0.18.20"
|
215
|
+
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2"
|
216
|
+
integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==
|
217
|
+
|
218
|
+
"@esbuild/darwin-arm64@0.18.20":
|
219
|
+
version "0.18.20"
|
220
|
+
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1"
|
221
|
+
integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==
|
222
|
+
|
223
|
+
"@esbuild/darwin-x64@0.18.20":
|
224
|
+
version "0.18.20"
|
225
|
+
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d"
|
226
|
+
integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==
|
227
|
+
|
228
|
+
"@esbuild/freebsd-arm64@0.18.20":
|
229
|
+
version "0.18.20"
|
230
|
+
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54"
|
231
|
+
integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==
|
232
|
+
|
233
|
+
"@esbuild/freebsd-x64@0.18.20":
|
234
|
+
version "0.18.20"
|
235
|
+
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e"
|
236
|
+
integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==
|
237
|
+
|
238
|
+
"@esbuild/linux-arm64@0.18.20":
|
239
|
+
version "0.18.20"
|
240
|
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0"
|
241
|
+
integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==
|
242
|
+
|
243
|
+
"@esbuild/linux-arm@0.18.20":
|
244
|
+
version "0.18.20"
|
245
|
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0"
|
246
|
+
integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==
|
247
|
+
|
248
|
+
"@esbuild/linux-ia32@0.18.20":
|
249
|
+
version "0.18.20"
|
250
|
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7"
|
251
|
+
integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==
|
252
252
|
|
253
253
|
"@esbuild/linux-loong64@0.14.54":
|
254
254
|
version "0.14.54"
|
255
255
|
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028"
|
256
256
|
integrity sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==
|
257
257
|
|
258
|
-
"@esbuild/linux-loong64@0.
|
259
|
-
version "0.
|
260
|
-
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.
|
261
|
-
integrity sha512-
|
262
|
-
|
263
|
-
"@esbuild/linux-mips64el@0.
|
264
|
-
version "0.
|
265
|
-
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.
|
266
|
-
integrity sha512-
|
267
|
-
|
268
|
-
"@esbuild/linux-ppc64@0.
|
269
|
-
version "0.
|
270
|
-
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.
|
271
|
-
integrity sha512
|
272
|
-
|
273
|
-
"@esbuild/linux-riscv64@0.
|
274
|
-
version "0.
|
275
|
-
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.
|
276
|
-
integrity sha512-
|
277
|
-
|
278
|
-
"@esbuild/linux-s390x@0.
|
279
|
-
version "0.
|
280
|
-
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.
|
281
|
-
integrity sha512
|
282
|
-
|
283
|
-
"@esbuild/linux-x64@0.
|
284
|
-
version "0.
|
285
|
-
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.
|
286
|
-
integrity sha512-
|
287
|
-
|
288
|
-
"@esbuild/netbsd-x64@0.
|
289
|
-
version "0.
|
290
|
-
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.
|
291
|
-
integrity sha512-
|
292
|
-
|
293
|
-
"@esbuild/openbsd-x64@0.
|
294
|
-
version "0.
|
295
|
-
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.
|
296
|
-
integrity sha512-
|
297
|
-
|
298
|
-
"@esbuild/sunos-x64@0.
|
299
|
-
version "0.
|
300
|
-
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.
|
301
|
-
integrity sha512-
|
302
|
-
|
303
|
-
"@esbuild/win32-arm64@0.
|
304
|
-
version "0.
|
305
|
-
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.
|
306
|
-
integrity sha512-
|
307
|
-
|
308
|
-
"@esbuild/win32-ia32@0.
|
309
|
-
version "0.
|
310
|
-
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.
|
311
|
-
integrity sha512-
|
312
|
-
|
313
|
-
"@esbuild/win32-x64@0.
|
314
|
-
version "0.
|
315
|
-
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.
|
316
|
-
integrity sha512-
|
258
|
+
"@esbuild/linux-loong64@0.18.20":
|
259
|
+
version "0.18.20"
|
260
|
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d"
|
261
|
+
integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==
|
262
|
+
|
263
|
+
"@esbuild/linux-mips64el@0.18.20":
|
264
|
+
version "0.18.20"
|
265
|
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231"
|
266
|
+
integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==
|
267
|
+
|
268
|
+
"@esbuild/linux-ppc64@0.18.20":
|
269
|
+
version "0.18.20"
|
270
|
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb"
|
271
|
+
integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==
|
272
|
+
|
273
|
+
"@esbuild/linux-riscv64@0.18.20":
|
274
|
+
version "0.18.20"
|
275
|
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6"
|
276
|
+
integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==
|
277
|
+
|
278
|
+
"@esbuild/linux-s390x@0.18.20":
|
279
|
+
version "0.18.20"
|
280
|
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071"
|
281
|
+
integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==
|
282
|
+
|
283
|
+
"@esbuild/linux-x64@0.18.20":
|
284
|
+
version "0.18.20"
|
285
|
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338"
|
286
|
+
integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==
|
287
|
+
|
288
|
+
"@esbuild/netbsd-x64@0.18.20":
|
289
|
+
version "0.18.20"
|
290
|
+
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1"
|
291
|
+
integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==
|
292
|
+
|
293
|
+
"@esbuild/openbsd-x64@0.18.20":
|
294
|
+
version "0.18.20"
|
295
|
+
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae"
|
296
|
+
integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==
|
297
|
+
|
298
|
+
"@esbuild/sunos-x64@0.18.20":
|
299
|
+
version "0.18.20"
|
300
|
+
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d"
|
301
|
+
integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==
|
302
|
+
|
303
|
+
"@esbuild/win32-arm64@0.18.20":
|
304
|
+
version "0.18.20"
|
305
|
+
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9"
|
306
|
+
integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==
|
307
|
+
|
308
|
+
"@esbuild/win32-ia32@0.18.20":
|
309
|
+
version "0.18.20"
|
310
|
+
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102"
|
311
|
+
integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==
|
312
|
+
|
313
|
+
"@esbuild/win32-x64@0.18.20":
|
314
|
+
version "0.18.20"
|
315
|
+
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d"
|
316
|
+
integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==
|
317
317
|
|
318
318
|
"@esm-bundle/chai@^4.3.4-fix.0":
|
319
319
|
version "4.3.4-fix.0"
|
@@ -2128,33 +2128,33 @@ esbuild-windows-arm64@0.14.54:
|
|
2128
2128
|
esbuild-windows-64 "0.14.54"
|
2129
2129
|
esbuild-windows-arm64 "0.14.54"
|
2130
2130
|
|
2131
|
-
esbuild@^0.
|
2132
|
-
version "0.
|
2133
|
-
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.
|
2134
|
-
integrity sha512-
|
2131
|
+
esbuild@^0.18.10:
|
2132
|
+
version "0.18.20"
|
2133
|
+
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6"
|
2134
|
+
integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==
|
2135
2135
|
optionalDependencies:
|
2136
|
-
"@esbuild/android-arm" "0.
|
2137
|
-
"@esbuild/android-arm64" "0.
|
2138
|
-
"@esbuild/android-x64" "0.
|
2139
|
-
"@esbuild/darwin-arm64" "0.
|
2140
|
-
"@esbuild/darwin-x64" "0.
|
2141
|
-
"@esbuild/freebsd-arm64" "0.
|
2142
|
-
"@esbuild/freebsd-x64" "0.
|
2143
|
-
"@esbuild/linux-arm" "0.
|
2144
|
-
"@esbuild/linux-arm64" "0.
|
2145
|
-
"@esbuild/linux-ia32" "0.
|
2146
|
-
"@esbuild/linux-loong64" "0.
|
2147
|
-
"@esbuild/linux-mips64el" "0.
|
2148
|
-
"@esbuild/linux-ppc64" "0.
|
2149
|
-
"@esbuild/linux-riscv64" "0.
|
2150
|
-
"@esbuild/linux-s390x" "0.
|
2151
|
-
"@esbuild/linux-x64" "0.
|
2152
|
-
"@esbuild/netbsd-x64" "0.
|
2153
|
-
"@esbuild/openbsd-x64" "0.
|
2154
|
-
"@esbuild/sunos-x64" "0.
|
2155
|
-
"@esbuild/win32-arm64" "0.
|
2156
|
-
"@esbuild/win32-ia32" "0.
|
2157
|
-
"@esbuild/win32-x64" "0.
|
2136
|
+
"@esbuild/android-arm" "0.18.20"
|
2137
|
+
"@esbuild/android-arm64" "0.18.20"
|
2138
|
+
"@esbuild/android-x64" "0.18.20"
|
2139
|
+
"@esbuild/darwin-arm64" "0.18.20"
|
2140
|
+
"@esbuild/darwin-x64" "0.18.20"
|
2141
|
+
"@esbuild/freebsd-arm64" "0.18.20"
|
2142
|
+
"@esbuild/freebsd-x64" "0.18.20"
|
2143
|
+
"@esbuild/linux-arm" "0.18.20"
|
2144
|
+
"@esbuild/linux-arm64" "0.18.20"
|
2145
|
+
"@esbuild/linux-ia32" "0.18.20"
|
2146
|
+
"@esbuild/linux-loong64" "0.18.20"
|
2147
|
+
"@esbuild/linux-mips64el" "0.18.20"
|
2148
|
+
"@esbuild/linux-ppc64" "0.18.20"
|
2149
|
+
"@esbuild/linux-riscv64" "0.18.20"
|
2150
|
+
"@esbuild/linux-s390x" "0.18.20"
|
2151
|
+
"@esbuild/linux-x64" "0.18.20"
|
2152
|
+
"@esbuild/netbsd-x64" "0.18.20"
|
2153
|
+
"@esbuild/openbsd-x64" "0.18.20"
|
2154
|
+
"@esbuild/sunos-x64" "0.18.20"
|
2155
|
+
"@esbuild/win32-arm64" "0.18.20"
|
2156
|
+
"@esbuild/win32-ia32" "0.18.20"
|
2157
|
+
"@esbuild/win32-x64" "0.18.20"
|
2158
2158
|
|
2159
2159
|
escape-html@^1.0.3:
|
2160
2160
|
version "1.0.3"
|
@@ -2839,9 +2839,9 @@ inquirer@^7.0.0:
|
|
2839
2839
|
through "^2.3.6"
|
2840
2840
|
|
2841
2841
|
ip@^1.1.5:
|
2842
|
-
version "1.1.
|
2843
|
-
resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.
|
2844
|
-
integrity sha512-
|
2842
|
+
version "1.1.9"
|
2843
|
+
resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.9.tgz#8dfbcc99a754d07f425310b86a99546b1151e396"
|
2844
|
+
integrity sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==
|
2845
2845
|
|
2846
2846
|
is-alphabetical@^1.0.0:
|
2847
2847
|
version "1.0.4"
|
@@ -3591,6 +3591,11 @@ nanoid@^3.3.6:
|
|
3591
3591
|
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
|
3592
3592
|
integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
|
3593
3593
|
|
3594
|
+
nanoid@^3.3.7:
|
3595
|
+
version "3.3.7"
|
3596
|
+
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
|
3597
|
+
integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
|
3598
|
+
|
3594
3599
|
natural-compare@^1.4.0:
|
3595
3600
|
version "1.4.0"
|
3596
3601
|
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
|
@@ -3937,7 +3942,7 @@ postcss@^7.0.0:
|
|
3937
3942
|
picocolors "^0.2.1"
|
3938
3943
|
source-map "^0.6.1"
|
3939
3944
|
|
3940
|
-
postcss@^8.1.10
|
3945
|
+
postcss@^8.1.10:
|
3941
3946
|
version "8.4.23"
|
3942
3947
|
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.23.tgz#df0aee9ac7c5e53e1075c24a3613496f9e6552ab"
|
3943
3948
|
integrity sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==
|
@@ -3946,6 +3951,15 @@ postcss@^8.1.10, postcss@^8.4.23:
|
|
3946
3951
|
picocolors "^1.0.0"
|
3947
3952
|
source-map-js "^1.0.2"
|
3948
3953
|
|
3954
|
+
postcss@^8.4.27:
|
3955
|
+
version "8.4.33"
|
3956
|
+
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742"
|
3957
|
+
integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==
|
3958
|
+
dependencies:
|
3959
|
+
nanoid "^3.3.7"
|
3960
|
+
picocolors "^1.0.0"
|
3961
|
+
source-map-js "^1.0.2"
|
3962
|
+
|
3949
3963
|
preact@^10.0.0:
|
3950
3964
|
version "10.15.0"
|
3951
3965
|
resolved "https://registry.yarnpkg.com/preact/-/preact-10.15.0.tgz#14bae0afe3547ca9d45d22fda2a4266462d31cf3"
|
@@ -4276,10 +4290,10 @@ rollup@^3.19.1:
|
|
4276
4290
|
optionalDependencies:
|
4277
4291
|
fsevents "~2.3.2"
|
4278
4292
|
|
4279
|
-
rollup@^3.
|
4280
|
-
version "3.
|
4281
|
-
resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.
|
4282
|
-
integrity sha512-
|
4293
|
+
rollup@^3.27.1:
|
4294
|
+
version "3.29.4"
|
4295
|
+
resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981"
|
4296
|
+
integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==
|
4283
4297
|
optionalDependencies:
|
4284
4298
|
fsevents "~2.3.2"
|
4285
4299
|
|
@@ -4952,13 +4966,13 @@ vfile@^4.0.0:
|
|
4952
4966
|
vfile-message "^2.0.0"
|
4953
4967
|
|
4954
4968
|
vite@^4.3.8:
|
4955
|
-
version "4.
|
4956
|
-
resolved "https://registry.yarnpkg.com/vite/-/vite-4.
|
4957
|
-
integrity sha512-
|
4969
|
+
version "4.5.2"
|
4970
|
+
resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.2.tgz#d6ea8610e099851dad8c7371599969e0f8b97e82"
|
4971
|
+
integrity sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==
|
4958
4972
|
dependencies:
|
4959
|
-
esbuild "^0.
|
4960
|
-
postcss "^8.4.
|
4961
|
-
rollup "^3.
|
4973
|
+
esbuild "^0.18.10"
|
4974
|
+
postcss "^8.4.27"
|
4975
|
+
rollup "^3.27.1"
|
4962
4976
|
optionalDependencies:
|
4963
4977
|
fsevents "~2.3.2"
|
4964
4978
|
|
@@ -5057,9 +5071,9 @@ which@^2.0.1:
|
|
5057
5071
|
isexe "^2.0.0"
|
5058
5072
|
|
5059
5073
|
word-wrap@~1.2.3:
|
5060
|
-
version "1.2.
|
5061
|
-
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.
|
5062
|
-
integrity sha512-
|
5074
|
+
version "1.2.4"
|
5075
|
+
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.4.tgz#cb4b50ec9aca570abd1f52f33cd45b6c61739a9f"
|
5076
|
+
integrity sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==
|
5063
5077
|
|
5064
5078
|
wordwrap@^1.0.0:
|
5065
5079
|
version "1.0.0"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stimulus_reflex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.5.0.
|
4
|
+
version: 3.5.0.rc4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Hopkins
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-03-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actioncable
|
@@ -396,14 +396,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
396
396
|
requirements:
|
397
397
|
- - ">="
|
398
398
|
- !ruby/object:Gem::Version
|
399
|
-
version:
|
399
|
+
version: 3.0.0
|
400
400
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
401
401
|
requirements:
|
402
|
-
- - "
|
402
|
+
- - ">="
|
403
403
|
- !ruby/object:Gem::Version
|
404
|
-
version:
|
404
|
+
version: '0'
|
405
405
|
requirements: []
|
406
|
-
rubygems_version: 3.
|
406
|
+
rubygems_version: 3.5.5
|
407
407
|
signing_key:
|
408
408
|
specification_version: 4
|
409
409
|
summary: Build reactive applications with the Rails tooling you already know and love.
|