stimulus_reflex 3.5.0.rc3 → 3.5.0.rc4
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.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.
|