spree_vpago 0.1.0.pre.beta → 2.0.4.pre.beta1
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/.github/workflows/test_and_publish_gem.yml +2 -0
- data/Gemfile.lock +25 -23
- data/app/assets/javascripts/vpago/vpago_payments/user_informers/firebase.js +1686 -1426
- data/app/controllers/spree/admin/payment_methods_controller_decorator.rb +9 -1
- data/app/controllers/spree/vpago_payments_controller.rb +12 -2
- data/app/javascripts/queue_processor.js +33 -0
- data/app/javascripts/queue_processor.test.js +88 -0
- data/app/javascripts/vpago/vpago_payments/user_informers/firebase.js +92 -13
- data/app/jobs/vpago/payment_capturer_job.rb +11 -0
- data/app/jobs/vpago/payment_processor_job.rb +3 -0
- data/app/models/vpago/address_decorator.rb +10 -0
- data/app/models/vpago/order_decorator.rb +13 -1
- data/app/models/vpago/payment_decorator.rb +18 -1
- data/app/overrides/spree/admin/payment_methods/index/payment_methods_tabs.html.erb.deface +7 -1
- data/app/overrides/spree/admin/payment_methods/index/tenant_body.html.erb.deface +5 -0
- data/app/overrides/spree/admin/payment_methods/index/tenant_header.html.erb.deface +5 -0
- data/app/serializers/spree/v2/storefront/payment_serializer_decorator.rb +1 -1
- data/app/services/vpago/payment_processable.rb +54 -0
- data/app/services/vpago/payment_processor.rb +58 -41
- data/app/services/vpago/payment_url_constructor.rb +1 -1
- data/app/services/vpago/user_informers/firebase.rb +21 -16
- data/app/views/spree/admin/shared/_payment_methods_tabs.html.erb +7 -0
- data/app/views/spree/vpago_payments/processing.html.erb +36 -23
- data/lib/spree_vpago/version.rb +1 -1
- data/lib/vpago/payway_v2/base.rb +8 -8
- data/lib/vpago/payway_v2/checkout.rb +2 -2
- data/node_modules/.yarn-integrity +93 -2
- data/package.json +6 -1
- data/yarn.lock +556 -2
- metadata +9 -2
@@ -9,35 +9,40 @@ module Vpago
|
|
9
9
|
@order = order
|
10
10
|
end
|
11
11
|
|
12
|
-
def payment_is_processing(processing
|
13
|
-
def order_is_processing(processing
|
14
|
-
def order_is_completed(processing
|
15
|
-
def order_process_failed(processing:,
|
16
|
-
def payment_is_refunded(processing:,
|
17
|
-
def payment_process_failed(processing:,
|
18
|
-
|
19
|
-
def notify(
|
12
|
+
def payment_is_processing(processing:) = notify(:payment_is_processing, processing)
|
13
|
+
def order_is_processing(processing:) = notify(:order_is_processing, processing)
|
14
|
+
def order_is_completed(processing:) = notify(:order_is_completed, processing)
|
15
|
+
def order_process_failed(processing:, reason_code:, reason_message: nil) = notify(:order_process_failed, processing, reason_code, reason_message)
|
16
|
+
def payment_is_refunded(processing:, reason_code:, reason_message: nil) = notify(:payment_is_refunded, processing, reason_code, reason_message)
|
17
|
+
def payment_process_failed(processing:, reason_code:, reason_message: nil) = notify(:payment_process_failed, processing, reason_code, reason_message)
|
18
|
+
|
19
|
+
def notify(message_code, processing, reason_code = nil, reason_message = nil)
|
20
20
|
order.reload
|
21
21
|
|
22
22
|
data = {
|
23
23
|
processing: processing,
|
24
|
-
message_code:
|
25
|
-
|
24
|
+
message_code: message_code,
|
25
|
+
reason_code: reason_code,
|
26
|
+
reason_message: reason_message,
|
26
27
|
order_state: order.state,
|
27
28
|
payment_state: order.payment_state,
|
28
29
|
updated_at: Time.current
|
29
30
|
}.compact
|
30
31
|
|
31
32
|
firestore_reference.set(data, merge: true)
|
32
|
-
firestore_reference.col('histories').doc(
|
33
|
+
firestore_reference.col('histories').doc(message_code).set(data)
|
33
34
|
end
|
34
35
|
|
35
36
|
def firestore_reference
|
36
|
-
|
37
|
-
firestore.col('statuses')
|
38
|
-
|
39
|
-
|
40
|
-
|
37
|
+
order_created_date = order.created_at.strftime('%Y-%m-%d')
|
38
|
+
@firestore_reference ||= firestore.col('statuses')
|
39
|
+
.doc('cart')
|
40
|
+
.col(order_created_date)
|
41
|
+
.doc(order.number)
|
42
|
+
end
|
43
|
+
|
44
|
+
def document_reference_path
|
45
|
+
firestore_reference.path.split('/documents').last
|
41
46
|
end
|
42
47
|
|
43
48
|
def firestore
|
@@ -12,4 +12,11 @@
|
|
12
12
|
admin_payment_methods_url(tab: :vendors),
|
13
13
|
class: "nav-link #{'active' if params[:tab] == 'vendors' }" %>
|
14
14
|
<% end if can?(:admin, Spree::PaymentMethod) %>
|
15
|
+
|
16
|
+
<%= content_tag :li, class: 'nav-item' do %>
|
17
|
+
<%= link_to_with_icon 'building.svg',
|
18
|
+
Spree.t(:tenants),
|
19
|
+
admin_payment_methods_url(tab: :tenants),
|
20
|
+
class: "nav-link #{'active' if params[:tab] == 'tenants' }" %>
|
21
|
+
<% end if can?(:admin, Spree::PaymentMethod) %>
|
15
22
|
<% end %>
|
@@ -1,49 +1,62 @@
|
|
1
1
|
<h1 id="status">THIS IS CURRENT STATE</h1>
|
2
|
-
<p id="
|
2
|
+
<p id="reason_code"></p>
|
3
|
+
<p id="processing"></p>
|
4
|
+
<p id="reason_message"></p>
|
3
5
|
|
4
6
|
<script>
|
5
7
|
document.addEventListener("DOMContentLoaded", function() {
|
6
8
|
let firebaseConfigs = <%= Rails.application.credentials.firebase_web_config.to_json.html_safe %>;
|
7
|
-
|
9
|
+
|
10
|
+
window.requestProcessPayment({
|
11
|
+
url: "<%= @payment.process_payment_url %>",
|
12
|
+
params: <%= params.except(:action, :controller, :amp).to_json.html_safe %>,
|
13
|
+
maxRetries: 5,
|
14
|
+
retryDelayMs: 1000,
|
15
|
+
})
|
8
16
|
|
9
17
|
window.listenToProcessingState({
|
10
18
|
firebaseConfigs: firebaseConfigs,
|
11
|
-
|
12
|
-
onPaymentIsProcessing: function (orderState, paymentState,
|
19
|
+
documentReferencePath: "<%= payment.user_informer.document_reference_path %>",
|
20
|
+
onPaymentIsProcessing: function (orderState, paymentState, processing, reasonCode, reasonMessage) {
|
13
21
|
document.getElementById("status").innerText = "Payment is processing";
|
14
|
-
document.getElementById("
|
22
|
+
document.getElementById("reason_code").innerText = reasonCode;
|
23
|
+
document.getElementById("processing").innerText = processing ? "Processing..." : "No more process.";
|
24
|
+
document.getElementById("reason_message").innerText = reasonMessage;
|
15
25
|
},
|
16
|
-
onOrderIsProcessing: function (orderState, paymentState,
|
26
|
+
onOrderIsProcessing: function (orderState, paymentState, processing, reasonCode, reasonMessage) {
|
17
27
|
document.getElementById("status").innerText = "Order is processing";
|
18
|
-
document.getElementById("
|
28
|
+
document.getElementById("reason_code").innerText = reasonCode;
|
29
|
+
document.getElementById("processing").innerText = processing ? "Processing..." : "No more process.";
|
30
|
+
document.getElementById("reason_message").innerText = reasonMessage;
|
19
31
|
},
|
20
|
-
onOrderIsCompleted: function (orderState, paymentState,
|
32
|
+
onOrderIsCompleted: function (orderState, paymentState, processing, reasonCode, reasonMessage) {
|
21
33
|
document.getElementById("status").innerText = "Order is completed";
|
22
|
-
document.getElementById("
|
34
|
+
document.getElementById("reason_code").innerText = reasonCode;
|
35
|
+
document.getElementById("processing").innerText = processing ? "Processing..." : "No more process.";
|
36
|
+
document.getElementById("reason_message").innerText = reasonMessage;
|
23
37
|
},
|
24
|
-
onOrderProcessFailed: function (orderState, paymentState,
|
38
|
+
onOrderProcessFailed: function (orderState, paymentState, processing, reasonCode, reasonMessage) {
|
25
39
|
document.getElementById("status").innerText = "Order process failed";
|
26
|
-
document.getElementById("
|
40
|
+
document.getElementById("reason_code").innerText = reasonCode;
|
41
|
+
document.getElementById("processing").innerText = processing ? "Processing..." : "No more process.";
|
42
|
+
document.getElementById("reason_message").innerText = reasonMessage;
|
27
43
|
},
|
28
|
-
onPaymentIsRefunded: function (orderState, paymentState,
|
44
|
+
onPaymentIsRefunded: function (orderState, paymentState, processing, reasonCode, reasonMessage) {
|
29
45
|
document.getElementById("status").innerText = "Payment is refunded";
|
30
|
-
document.getElementById("
|
46
|
+
document.getElementById("reason_code").innerText = reasonCode;
|
47
|
+
document.getElementById("processing").innerText = processing ? "Processing..." : "No more process.";
|
48
|
+
document.getElementById("reason_message").innerText = reasonMessage
|
31
49
|
},
|
32
|
-
onPaymentProcessFailed: function (orderState, paymentState,
|
50
|
+
onPaymentProcessFailed: function (orderState, paymentState, processing, reasonCode, reasonMessage) {
|
33
51
|
document.getElementById("status").innerText = "Payment process failed";
|
34
|
-
document.getElementById("
|
52
|
+
document.getElementById("reason_code").innerText = reasonCode;
|
53
|
+
document.getElementById("processing").innerText = processing ? "Processing..." : "No more process.";
|
54
|
+
document.getElementById("reason_message").innerText = reasonMessage;
|
35
55
|
},
|
36
|
-
onCompleted: function (orderState, paymentState,
|
56
|
+
onCompleted: function (orderState, paymentState, processing, reasonCode, reasonMessage) {
|
37
57
|
let successPath = "<%= @payment.success_url %>";
|
38
58
|
window.location.href = successPath;
|
39
59
|
},
|
40
60
|
});
|
41
61
|
});
|
42
|
-
|
43
|
-
window.requestProcessPayment({
|
44
|
-
url: "<%= @payment.process_payment_url %>",
|
45
|
-
params: <%= params.except(:action, :controller, :amp).to_json.html_safe %>,
|
46
|
-
maxRetries: 5,
|
47
|
-
retryDelayMs: 1000,
|
48
|
-
})
|
49
62
|
</script>
|
data/lib/spree_vpago/version.rb
CHANGED
data/lib/vpago/payway_v2/base.rb
CHANGED
@@ -46,16 +46,17 @@ module Vpago
|
|
46
46
|
@payment.number
|
47
47
|
end
|
48
48
|
|
49
|
+
# optional
|
49
50
|
def email
|
50
51
|
@payment.order.email.presence || ENV.fetch('DEFAULT_EMAIL_FOR_PAYMENT', nil)
|
51
52
|
end
|
52
53
|
|
53
54
|
def first_name
|
54
|
-
@payment.order.billing_address
|
55
|
+
@payment.order.billing_address&.first_name&.strip
|
55
56
|
end
|
56
57
|
|
57
58
|
def last_name
|
58
|
-
@payment.order.billing_address
|
59
|
+
@payment.order.billing_address&.last_name&.strip
|
59
60
|
end
|
60
61
|
|
61
62
|
def return_url
|
@@ -79,12 +80,9 @@ module Vpago
|
|
79
80
|
Vpago::Payway::CARD_TYPES.index(card_option).nil? ? Vpago::Payway::CARD_TYPE_ABAPAY : card_option
|
80
81
|
end
|
81
82
|
|
82
|
-
|
83
|
-
'+855'
|
84
|
-
end
|
85
|
-
|
83
|
+
# optional
|
86
84
|
def phone
|
87
|
-
@payment.order.billing_address
|
85
|
+
@payment.order.billing_address&.phone
|
88
86
|
end
|
89
87
|
|
90
88
|
def api_key
|
@@ -128,8 +126,10 @@ module Vpago
|
|
128
126
|
end
|
129
127
|
|
130
128
|
def hash_data
|
131
|
-
result = "#{req_time}#{merchant_id}#{transaction_id}#{amount}#{first_name}#{last_name}
|
129
|
+
result = "#{req_time}#{merchant_id}#{transaction_id}#{amount}#{first_name}#{last_name}"
|
132
130
|
|
131
|
+
result += email if email.present?
|
132
|
+
result += phone if phone.present?
|
133
133
|
result += type if type.present?
|
134
134
|
result += payment_option if payment_option.present?
|
135
135
|
result += return_url if return_url.present?
|
@@ -10,8 +10,6 @@ module Vpago
|
|
10
10
|
type: type,
|
11
11
|
firstname: first_name,
|
12
12
|
lastname: last_name,
|
13
|
-
email: email,
|
14
|
-
phone: phone,
|
15
13
|
payment_option: payment_option,
|
16
14
|
return_url: return_url,
|
17
15
|
continue_success_url: continue_success_url,
|
@@ -19,6 +17,8 @@ module Vpago
|
|
19
17
|
hash: hash_hmac
|
20
18
|
}
|
21
19
|
|
20
|
+
result[:email] = email unless email.nil?
|
21
|
+
result[:phone] = phone unless phone.nil?
|
22
22
|
result[:return_deeplink] = return_deeplink unless return_deeplink.nil?
|
23
23
|
result[:view_type] = view_type unless view_type.nil?
|
24
24
|
result[:payout] = payout unless payout.nil?
|
@@ -7,8 +7,10 @@
|
|
7
7
|
"linkedModules": [],
|
8
8
|
"topLevelPatterns": [
|
9
9
|
"@spree/dashboard@^0.2.1",
|
10
|
+
"chai@^5.2.0",
|
10
11
|
"esbuild@^0.24.2",
|
11
|
-
"firebase@^11.2.0"
|
12
|
+
"firebase@^11.2.0",
|
13
|
+
"mocha@^11.1.0"
|
12
14
|
],
|
13
15
|
"lockfileEntries": {
|
14
16
|
"@esbuild/aix-ppc64@0.24.2": "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz#38848d3e25afe842a7943643cbcd387cc6e13461",
|
@@ -85,6 +87,8 @@
|
|
85
87
|
"@hotwired/stimulus@^3.0.1": "https://registry.yarnpkg.com/@hotwired/stimulus/-/stimulus-3.2.2.tgz#071aab59c600fed95b97939e605ff261a4251608",
|
86
88
|
"@hotwired/turbo-rails@^7.1.3": "https://registry.yarnpkg.com/@hotwired/turbo-rails/-/turbo-rails-7.3.0.tgz#422c21752509f3edcd6c7b2725bbe9e157815f51",
|
87
89
|
"@hotwired/turbo@^7.3.0": "https://registry.yarnpkg.com/@hotwired/turbo/-/turbo-7.3.0.tgz#2226000fff1aabda9fd9587474565c9929dbf15d",
|
90
|
+
"@isaacs/cliui@^8.0.2": "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550",
|
91
|
+
"@pkgjs/parseargs@^0.11.0": "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33",
|
88
92
|
"@protobufjs/aspromise@^1.1.1": "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf",
|
89
93
|
"@protobufjs/aspromise@^1.1.2": "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf",
|
90
94
|
"@protobufjs/base64@^1.1.2": "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735",
|
@@ -102,45 +106,132 @@
|
|
102
106
|
"@spree/dashboard@^0.2.1": "https://registry.yarnpkg.com/@spree/dashboard/-/dashboard-0.2.1.tgz#6a799c6e6c696b72a88fa67f9edb4a55dca31d1a",
|
103
107
|
"@types/node@>=12.12.47": "https://registry.yarnpkg.com/@types/node/-/node-22.13.5.tgz#23add1d71acddab2c6a4d31db89c0f98d330b511",
|
104
108
|
"@types/node@>=13.7.0": "https://registry.yarnpkg.com/@types/node/-/node-22.13.5.tgz#23add1d71acddab2c6a4d31db89c0f98d330b511",
|
109
|
+
"ansi-colors@^4.1.3": "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b",
|
105
110
|
"ansi-regex@^5.0.1": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304",
|
111
|
+
"ansi-regex@^6.0.1": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654",
|
106
112
|
"ansi-styles@^4.0.0": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937",
|
113
|
+
"ansi-styles@^4.1.0": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937",
|
114
|
+
"ansi-styles@^6.1.0": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5",
|
115
|
+
"anymatch@~3.1.2": "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e",
|
116
|
+
"argparse@^2.0.1": "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38",
|
117
|
+
"assertion-error@^2.0.1": "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7",
|
118
|
+
"balanced-match@^1.0.0": "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee",
|
119
|
+
"binary-extensions@^2.0.0": "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522",
|
107
120
|
"bootstrap@4.6.1": "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.6.1.tgz#bc25380c2c14192374e8dec07cf01b2742d222a2",
|
121
|
+
"brace-expansion@^2.0.1": "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae",
|
122
|
+
"braces@~3.0.2": "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789",
|
123
|
+
"browser-stdout@^1.3.1": "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60",
|
124
|
+
"camelcase@^6.0.0": "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a",
|
125
|
+
"chai@^5.2.0": "https://registry.yarnpkg.com/chai/-/chai-5.2.0.tgz#1358ee106763624114addf84ab02697e411c9c05",
|
126
|
+
"chalk@^4.1.0": "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01",
|
127
|
+
"check-error@^2.1.1": "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc",
|
128
|
+
"chokidar@^3.5.3": "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b",
|
108
129
|
"cliui@^8.0.1": "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa",
|
109
130
|
"color-convert@^2.0.1": "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3",
|
110
131
|
"color-name@~1.1.4": "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2",
|
132
|
+
"cross-spawn@^7.0.6": "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f",
|
133
|
+
"debug@^4.3.5": "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a",
|
134
|
+
"decamelize@^4.0.0": "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837",
|
135
|
+
"deep-eql@^5.0.1": "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341",
|
136
|
+
"diff@^5.2.0": "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531",
|
137
|
+
"eastasianwidth@^0.2.0": "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb",
|
111
138
|
"emoji-regex@^8.0.0": "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37",
|
139
|
+
"emoji-regex@^9.2.2": "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72",
|
112
140
|
"esbuild@^0.24.2": "https://registry.yarnpkg.com/esbuild/-/esbuild-0.24.2.tgz#b5b55bee7de017bff5fb8a4e3e44f2ebe2c3567d",
|
113
141
|
"escalade@^3.1.1": "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5",
|
142
|
+
"escape-string-regexp@^4.0.0": "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34",
|
114
143
|
"faye-websocket@0.11.4": "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da",
|
144
|
+
"fill-range@^7.1.1": "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292",
|
145
|
+
"find-up@^5.0.0": "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc",
|
115
146
|
"firebase@^11.2.0": "https://registry.yarnpkg.com/firebase/-/firebase-11.3.1.tgz#1507b2b1e3af17418fbe009e82d7bc30a6b5117c",
|
147
|
+
"flat@^5.0.2": "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241",
|
116
148
|
"flatpickr@4.6.9": "https://registry.yarnpkg.com/flatpickr/-/flatpickr-4.6.9.tgz#9a13383e8a6814bda5d232eae3fcdccb97dc1499",
|
149
|
+
"foreground-child@^3.1.0": "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f",
|
150
|
+
"fsevents@~2.3.2": "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6",
|
117
151
|
"get-caller-file@^2.0.5": "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e",
|
152
|
+
"glob-parent@~5.1.2": "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4",
|
153
|
+
"glob@^10.4.5": "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956",
|
154
|
+
"has-flag@^4.0.0": "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b",
|
155
|
+
"he@^1.2.0": "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f",
|
118
156
|
"http-parser-js@>=0.5.1": "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.9.tgz#b817b3ca0edea6236225000d795378707c169cec",
|
119
157
|
"idb@7.1.1": "https://registry.yarnpkg.com/idb/-/idb-7.1.1.tgz#d910ded866d32c7ced9befc5bfdf36f572ced72b",
|
158
|
+
"is-binary-path@~2.1.0": "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09",
|
159
|
+
"is-extglob@^2.1.1": "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2",
|
120
160
|
"is-fullwidth-code-point@^3.0.0": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d",
|
161
|
+
"is-glob@^4.0.1": "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084",
|
162
|
+
"is-glob@~4.0.1": "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084",
|
163
|
+
"is-number@^7.0.0": "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b",
|
164
|
+
"is-plain-obj@^2.1.0": "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287",
|
165
|
+
"is-unicode-supported@^0.1.0": "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7",
|
166
|
+
"isexe@^2.0.0": "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10",
|
167
|
+
"jackspeak@^3.1.2": "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a",
|
121
168
|
"jquery@3.5.1": "https://registry.yarnpkg.com/jquery/-/jquery-3.5.1.tgz#d7b4d08e1bfdb86ad2f1a3d039ea17304717abb5",
|
169
|
+
"js-yaml@^4.1.0": "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602",
|
170
|
+
"locate-path@^6.0.0": "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286",
|
122
171
|
"lodash.camelcase@^4.3.0": "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6",
|
172
|
+
"log-symbols@^4.1.0": "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503",
|
123
173
|
"long@^5.0.0": "https://registry.yarnpkg.com/long/-/long-5.3.1.tgz#9d4222d3213f38a5ec809674834e0f0ab21abe96",
|
174
|
+
"loupe@^3.1.0": "https://registry.yarnpkg.com/loupe/-/loupe-3.1.3.tgz#042a8f7986d77f3d0f98ef7990a2b2fef18b0fd2",
|
175
|
+
"lru-cache@^10.2.0": "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119",
|
176
|
+
"minimatch@^5.1.6": "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96",
|
177
|
+
"minimatch@^9.0.4": "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5",
|
178
|
+
"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707",
|
179
|
+
"minipass@^7.1.2": "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707",
|
180
|
+
"mocha@^11.1.0": "https://registry.yarnpkg.com/mocha/-/mocha-11.1.0.tgz#20d7c6ac4d6d6bcb60a8aa47971fca74c65c3c66",
|
181
|
+
"ms@^2.1.3": "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2",
|
182
|
+
"normalize-path@^3.0.0": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65",
|
183
|
+
"normalize-path@~3.0.0": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65",
|
184
|
+
"p-limit@^3.0.2": "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b",
|
185
|
+
"p-locate@^5.0.0": "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834",
|
186
|
+
"package-json-from-dist@^1.0.0": "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505",
|
187
|
+
"path-exists@^4.0.0": "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3",
|
188
|
+
"path-key@^3.1.0": "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375",
|
189
|
+
"path-scurry@^1.11.1": "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2",
|
190
|
+
"pathval@^2.0.0": "https://registry.yarnpkg.com/pathval/-/pathval-2.0.0.tgz#7e2550b422601d4f6b8e26f1301bc8f15a741a25",
|
191
|
+
"picomatch@^2.0.4": "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42",
|
192
|
+
"picomatch@^2.2.1": "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42",
|
124
193
|
"popper.js@1.16.1": "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b",
|
125
194
|
"protobufjs@^7.2.5": "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.4.0.tgz#7efe324ce9b3b61c82aae5de810d287bc08a248a",
|
195
|
+
"randombytes@^2.1.0": "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a",
|
196
|
+
"readdirp@~3.6.0": "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7",
|
126
197
|
"require-directory@^2.1.1": "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42",
|
127
198
|
"safe-buffer@>=5.1.0": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6",
|
199
|
+
"safe-buffer@^5.1.0": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6",
|
200
|
+
"serialize-javascript@^6.0.2": "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2",
|
201
|
+
"shebang-command@^2.0.0": "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea",
|
202
|
+
"shebang-regex@^3.0.0": "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172",
|
203
|
+
"signal-exit@^4.0.1": "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04",
|
128
204
|
"sortablejs@^1.14.0": "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.15.6.tgz#ff93699493f5b8ab8d828f933227b4988df1d393",
|
129
205
|
"stimulus-sortable@^3.1.0": "https://registry.yarnpkg.com/stimulus-sortable/-/stimulus-sortable-3.3.0.tgz#92b4ef4697fcd7a10cc4f898dccc45e9065fb0a0",
|
206
|
+
"string-width-cjs@npm:string-width@^4.2.0": "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010",
|
130
207
|
"string-width@^4.1.0": "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010",
|
131
208
|
"string-width@^4.2.0": "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010",
|
132
209
|
"string-width@^4.2.3": "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010",
|
210
|
+
"string-width@^5.0.1": "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794",
|
211
|
+
"string-width@^5.1.2": "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794",
|
212
|
+
"strip-ansi-cjs@npm:strip-ansi@^6.0.1": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9",
|
133
213
|
"strip-ansi@^6.0.0": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9",
|
134
214
|
"strip-ansi@^6.0.1": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9",
|
215
|
+
"strip-ansi@^7.0.1": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45",
|
216
|
+
"strip-json-comments@^3.1.1": "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006",
|
217
|
+
"supports-color@^7.1.0": "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da",
|
218
|
+
"supports-color@^8.1.1": "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c",
|
219
|
+
"to-regex-range@^5.0.1": "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4",
|
135
220
|
"tslib@^2.1.0": "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f",
|
136
221
|
"undici-types@~6.20.0": "https://registry.yarnpkg.com/undici-types/-/undici-types-6.20.0.tgz#8171bf22c1f588d1554d55bf204bc624af388433",
|
137
222
|
"web-vitals@^4.2.4": "https://registry.yarnpkg.com/web-vitals/-/web-vitals-4.2.4.tgz#1d20bc8590a37769bd0902b289550936069184b7",
|
138
223
|
"websocket-driver@>=0.5.1": "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760",
|
139
224
|
"websocket-extensions@>=0.1.1": "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42",
|
225
|
+
"which@^2.0.1": "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1",
|
226
|
+
"workerpool@^6.5.1": "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544",
|
227
|
+
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43",
|
140
228
|
"wrap-ansi@^7.0.0": "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43",
|
229
|
+
"wrap-ansi@^8.1.0": "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214",
|
141
230
|
"y18n@^5.0.5": "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55",
|
142
231
|
"yargs-parser@^21.1.1": "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35",
|
143
|
-
"yargs@^
|
232
|
+
"yargs-unparser@^2.0.0": "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb",
|
233
|
+
"yargs@^17.7.2": "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269",
|
234
|
+
"yocto-queue@^0.1.0": "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
|
144
235
|
},
|
145
236
|
"files": [],
|
146
237
|
"artifacts": {}
|